Merge "Session2Token: Fix issues with TYPE_SESSION_SERVICE"
diff --git a/Android.bp b/Android.bp
index 54b6619..f032e62 100644
--- a/Android.bp
+++ b/Android.bp
@@ -191,10 +191,6 @@
         "core/java/android/hardware/input/IInputDevicesChangedListener.aidl",
         "core/java/android/hardware/input/ITabletModeChangedListener.aidl",
         "core/java/android/hardware/iris/IIrisService.aidl",
-        "core/java/android/hardware/location/IActivityRecognitionHardware.aidl",
-        "core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl",
-        "core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl",
-        "core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl",
         "core/java/android/hardware/location/IGeofenceHardware.aidl",
         "core/java/android/hardware/location/IGeofenceHardwareCallback.aidl",
         "core/java/android/hardware/location/IGeofenceHardwareMonitorCallback.aidl",
@@ -358,6 +354,8 @@
         "core/java/android/service/textclassifier/ITextLanguageCallback.aidl",
         "core/java/android/service/textclassifier/ITextLinksCallback.aidl",
         "core/java/android/service/textclassifier/ITextSelectionCallback.aidl",
+        "core/java/android/service/attention/IAttentionService.aidl",
+        "core/java/android/service/attention/IAttentionCallback.aidl",
         "core/java/android/view/accessibility/IAccessibilityInteractionConnection.aidl",
         "core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl",
         "core/java/android/view/accessibility/IAccessibilityManager.aidl",
diff --git a/Android.mk b/Android.mk
index e3cc275..9f7bf99 100644
--- a/Android.mk
+++ b/Android.mk
@@ -80,6 +80,8 @@
 # ==== hiddenapi lists =======================================
 .KATI_RESTAT: $(INTERNAL_PLATFORM_HIDDENAPI_FLAGS)
 $(INTERNAL_PLATFORM_HIDDENAPI_FLAGS): \
+    PRIVATE_FLAGS_INPUTS := $(PRIVATE_FLAGS_INPUTS) $(SOONG_HIDDENAPI_FLAGS)
+$(INTERNAL_PLATFORM_HIDDENAPI_FLAGS): \
     frameworks/base/tools/hiddenapi/generate_hiddenapi_lists.py \
     frameworks/base/config/hiddenapi-greylist.txt \
     frameworks/base/config/hiddenapi-greylist-max-p.txt \
@@ -87,7 +89,8 @@
     frameworks/base/config/hiddenapi-force-blacklist.txt \
     $(INTERNAL_PLATFORM_HIDDENAPI_PUBLIC_LIST) \
     $(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST) \
-    $(INTERNAL_PLATFORM_REMOVED_DEX_API_FILE)
+    $(INTERNAL_PLATFORM_REMOVED_DEX_API_FILE) \
+    $(SOONG_HIDDENAPI_FLAGS)
 	frameworks/base/tools/hiddenapi/generate_hiddenapi_lists.py \
 	    --public $(INTERNAL_PLATFORM_HIDDENAPI_PUBLIC_LIST) \
 	    --private $(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST) \
diff --git a/api/current.txt b/api/current.txt
index ae84d93..6122e52 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package android {
 
   public final class Manifest {
@@ -6,183 +7,183 @@
 
   public static final class Manifest.permission {
     ctor public Manifest.permission();
-    field public static final java.lang.String ACCEPT_HANDOVER = "android.permission.ACCEPT_HANDOVER";
-    field public static final java.lang.String ACCESS_BACKGROUND_LOCATION = "android.permission.ACCESS_BACKGROUND_LOCATION";
-    field public static final java.lang.String ACCESS_CHECKIN_PROPERTIES = "android.permission.ACCESS_CHECKIN_PROPERTIES";
-    field public static final java.lang.String ACCESS_COARSE_LOCATION = "android.permission.ACCESS_COARSE_LOCATION";
-    field public static final java.lang.String ACCESS_FINE_LOCATION = "android.permission.ACCESS_FINE_LOCATION";
-    field public static final java.lang.String ACCESS_LOCATION_EXTRA_COMMANDS = "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS";
-    field public static final java.lang.String ACCESS_MEDIA_LOCATION = "android.permission.ACCESS_MEDIA_LOCATION";
-    field public static final java.lang.String ACCESS_NETWORK_STATE = "android.permission.ACCESS_NETWORK_STATE";
-    field public static final java.lang.String ACCESS_NOTIFICATION_POLICY = "android.permission.ACCESS_NOTIFICATION_POLICY";
-    field public static final java.lang.String ACCESS_WIFI_STATE = "android.permission.ACCESS_WIFI_STATE";
-    field public static final java.lang.String ACCOUNT_MANAGER = "android.permission.ACCOUNT_MANAGER";
-    field public static final java.lang.String ACTIVITY_RECOGNITION = "android.permission.ACTIVITY_RECOGNITION";
-    field public static final java.lang.String ADD_VOICEMAIL = "com.android.voicemail.permission.ADD_VOICEMAIL";
-    field public static final java.lang.String ANSWER_PHONE_CALLS = "android.permission.ANSWER_PHONE_CALLS";
-    field public static final java.lang.String BATTERY_STATS = "android.permission.BATTERY_STATS";
-    field public static final java.lang.String BIND_ACCESSIBILITY_SERVICE = "android.permission.BIND_ACCESSIBILITY_SERVICE";
-    field public static final java.lang.String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET";
-    field public static final java.lang.String BIND_AUTOFILL_SERVICE = "android.permission.BIND_AUTOFILL_SERVICE";
-    field public static final java.lang.String BIND_CALL_REDIRECTION_SERVICE = "android.permission.BIND_CALL_REDIRECTION_SERVICE";
-    field public static final deprecated java.lang.String BIND_CARRIER_MESSAGING_SERVICE = "android.permission.BIND_CARRIER_MESSAGING_SERVICE";
-    field public static final java.lang.String BIND_CARRIER_SERVICES = "android.permission.BIND_CARRIER_SERVICES";
-    field public static final java.lang.String BIND_CHOOSER_TARGET_SERVICE = "android.permission.BIND_CHOOSER_TARGET_SERVICE";
-    field public static final java.lang.String BIND_CONDITION_PROVIDER_SERVICE = "android.permission.BIND_CONDITION_PROVIDER_SERVICE";
-    field public static final java.lang.String BIND_DEVICE_ADMIN = "android.permission.BIND_DEVICE_ADMIN";
-    field public static final java.lang.String BIND_DREAM_SERVICE = "android.permission.BIND_DREAM_SERVICE";
-    field public static final java.lang.String BIND_INCALL_SERVICE = "android.permission.BIND_INCALL_SERVICE";
-    field public static final java.lang.String BIND_INPUT_METHOD = "android.permission.BIND_INPUT_METHOD";
-    field public static final java.lang.String BIND_MIDI_DEVICE_SERVICE = "android.permission.BIND_MIDI_DEVICE_SERVICE";
-    field public static final java.lang.String BIND_NFC_SERVICE = "android.permission.BIND_NFC_SERVICE";
-    field public static final java.lang.String BIND_NOTIFICATION_LISTENER_SERVICE = "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE";
-    field public static final java.lang.String BIND_PRINT_SERVICE = "android.permission.BIND_PRINT_SERVICE";
-    field public static final java.lang.String BIND_QUICK_SETTINGS_TILE = "android.permission.BIND_QUICK_SETTINGS_TILE";
-    field public static final java.lang.String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS";
-    field public static final java.lang.String BIND_SCREENING_SERVICE = "android.permission.BIND_SCREENING_SERVICE";
-    field public static final java.lang.String BIND_SMS_APP_SERVICE = "android.permission.BIND_SMS_APP_SERVICE";
-    field public static final java.lang.String BIND_TELECOM_CONNECTION_SERVICE = "android.permission.BIND_TELECOM_CONNECTION_SERVICE";
-    field public static final java.lang.String BIND_TEXT_SERVICE = "android.permission.BIND_TEXT_SERVICE";
-    field public static final java.lang.String BIND_TV_INPUT = "android.permission.BIND_TV_INPUT";
-    field public static final java.lang.String BIND_VISUAL_VOICEMAIL_SERVICE = "android.permission.BIND_VISUAL_VOICEMAIL_SERVICE";
-    field public static final java.lang.String BIND_VOICE_INTERACTION = "android.permission.BIND_VOICE_INTERACTION";
-    field public static final java.lang.String BIND_VPN_SERVICE = "android.permission.BIND_VPN_SERVICE";
-    field public static final java.lang.String BIND_VR_LISTENER_SERVICE = "android.permission.BIND_VR_LISTENER_SERVICE";
-    field public static final java.lang.String BIND_WALLPAPER = "android.permission.BIND_WALLPAPER";
-    field public static final java.lang.String BLUETOOTH = "android.permission.BLUETOOTH";
-    field public static final java.lang.String BLUETOOTH_ADMIN = "android.permission.BLUETOOTH_ADMIN";
-    field public static final java.lang.String BLUETOOTH_PRIVILEGED = "android.permission.BLUETOOTH_PRIVILEGED";
-    field public static final java.lang.String BODY_SENSORS = "android.permission.BODY_SENSORS";
-    field public static final java.lang.String BROADCAST_PACKAGE_REMOVED = "android.permission.BROADCAST_PACKAGE_REMOVED";
-    field public static final java.lang.String BROADCAST_SMS = "android.permission.BROADCAST_SMS";
-    field public static final java.lang.String BROADCAST_STICKY = "android.permission.BROADCAST_STICKY";
-    field public static final java.lang.String BROADCAST_WAP_PUSH = "android.permission.BROADCAST_WAP_PUSH";
-    field public static final java.lang.String CALL_COMPANION_APP = "android.permission.CALL_COMPANION_APP";
-    field public static final java.lang.String CALL_PHONE = "android.permission.CALL_PHONE";
-    field public static final java.lang.String CALL_PRIVILEGED = "android.permission.CALL_PRIVILEGED";
-    field public static final java.lang.String CAMERA = "android.permission.CAMERA";
-    field public static final java.lang.String CAPTURE_AUDIO_OUTPUT = "android.permission.CAPTURE_AUDIO_OUTPUT";
-    field public static final java.lang.String CHANGE_COMPONENT_ENABLED_STATE = "android.permission.CHANGE_COMPONENT_ENABLED_STATE";
-    field public static final java.lang.String CHANGE_CONFIGURATION = "android.permission.CHANGE_CONFIGURATION";
-    field public static final java.lang.String CHANGE_NETWORK_STATE = "android.permission.CHANGE_NETWORK_STATE";
-    field public static final java.lang.String CHANGE_WIFI_MULTICAST_STATE = "android.permission.CHANGE_WIFI_MULTICAST_STATE";
-    field public static final java.lang.String CHANGE_WIFI_STATE = "android.permission.CHANGE_WIFI_STATE";
-    field public static final java.lang.String CLEAR_APP_CACHE = "android.permission.CLEAR_APP_CACHE";
-    field public static final java.lang.String CONTROL_LOCATION_UPDATES = "android.permission.CONTROL_LOCATION_UPDATES";
-    field public static final java.lang.String DELETE_CACHE_FILES = "android.permission.DELETE_CACHE_FILES";
-    field public static final java.lang.String DELETE_PACKAGES = "android.permission.DELETE_PACKAGES";
-    field public static final java.lang.String DIAGNOSTIC = "android.permission.DIAGNOSTIC";
-    field public static final java.lang.String DISABLE_KEYGUARD = "android.permission.DISABLE_KEYGUARD";
-    field public static final java.lang.String DUMP = "android.permission.DUMP";
-    field public static final java.lang.String EXPAND_STATUS_BAR = "android.permission.EXPAND_STATUS_BAR";
-    field public static final java.lang.String FACTORY_TEST = "android.permission.FACTORY_TEST";
-    field public static final java.lang.String FOREGROUND_SERVICE = "android.permission.FOREGROUND_SERVICE";
-    field public static final java.lang.String GET_ACCOUNTS = "android.permission.GET_ACCOUNTS";
-    field public static final java.lang.String GET_ACCOUNTS_PRIVILEGED = "android.permission.GET_ACCOUNTS_PRIVILEGED";
-    field public static final java.lang.String GET_AND_REQUEST_SCREEN_LOCK_COMPLEXITY = "android.permission.GET_AND_REQUEST_SCREEN_LOCK_COMPLEXITY";
-    field public static final java.lang.String GET_PACKAGE_SIZE = "android.permission.GET_PACKAGE_SIZE";
-    field public static final deprecated java.lang.String GET_TASKS = "android.permission.GET_TASKS";
-    field public static final java.lang.String GLOBAL_SEARCH = "android.permission.GLOBAL_SEARCH";
-    field public static final java.lang.String INSTALL_LOCATION_PROVIDER = "android.permission.INSTALL_LOCATION_PROVIDER";
-    field public static final java.lang.String INSTALL_PACKAGES = "android.permission.INSTALL_PACKAGES";
-    field public static final java.lang.String INSTALL_SHORTCUT = "com.android.launcher.permission.INSTALL_SHORTCUT";
-    field public static final java.lang.String INSTANT_APP_FOREGROUND_SERVICE = "android.permission.INSTANT_APP_FOREGROUND_SERVICE";
-    field public static final java.lang.String INTERNET = "android.permission.INTERNET";
-    field public static final java.lang.String KILL_BACKGROUND_PROCESSES = "android.permission.KILL_BACKGROUND_PROCESSES";
-    field public static final java.lang.String LOCATION_HARDWARE = "android.permission.LOCATION_HARDWARE";
-    field public static final java.lang.String MANAGE_DOCUMENTS = "android.permission.MANAGE_DOCUMENTS";
-    field public static final java.lang.String MANAGE_OWN_CALLS = "android.permission.MANAGE_OWN_CALLS";
-    field public static final java.lang.String MASTER_CLEAR = "android.permission.MASTER_CLEAR";
-    field public static final java.lang.String MEDIA_CONTENT_CONTROL = "android.permission.MEDIA_CONTENT_CONTROL";
-    field public static final java.lang.String MODIFY_AUDIO_SETTINGS = "android.permission.MODIFY_AUDIO_SETTINGS";
-    field public static final java.lang.String MODIFY_PHONE_STATE = "android.permission.MODIFY_PHONE_STATE";
-    field public static final java.lang.String MOUNT_FORMAT_FILESYSTEMS = "android.permission.MOUNT_FORMAT_FILESYSTEMS";
-    field public static final java.lang.String MOUNT_UNMOUNT_FILESYSTEMS = "android.permission.MOUNT_UNMOUNT_FILESYSTEMS";
-    field public static final java.lang.String NFC = "android.permission.NFC";
-    field public static final java.lang.String NFC_TRANSACTION_EVENT = "android.permission.NFC_TRANSACTION_EVENT";
-    field public static final java.lang.String PACKAGE_USAGE_STATS = "android.permission.PACKAGE_USAGE_STATS";
-    field public static final deprecated java.lang.String PERSISTENT_ACTIVITY = "android.permission.PERSISTENT_ACTIVITY";
-    field public static final java.lang.String PROCESS_OUTGOING_CALLS = "android.permission.PROCESS_OUTGOING_CALLS";
-    field public static final java.lang.String READ_CALENDAR = "android.permission.READ_CALENDAR";
-    field public static final java.lang.String READ_CALL_LOG = "android.permission.READ_CALL_LOG";
-    field public static final java.lang.String READ_CONTACTS = "android.permission.READ_CONTACTS";
-    field public static final deprecated java.lang.String READ_EXTERNAL_STORAGE = "android.permission.READ_EXTERNAL_STORAGE";
-    field public static final deprecated java.lang.String READ_INPUT_STATE = "android.permission.READ_INPUT_STATE";
-    field public static final java.lang.String READ_LOGS = "android.permission.READ_LOGS";
-    field public static final java.lang.String READ_MEDIA_AUDIO = "android.permission.READ_MEDIA_AUDIO";
-    field public static final java.lang.String READ_MEDIA_IMAGES = "android.permission.READ_MEDIA_IMAGES";
-    field public static final java.lang.String READ_MEDIA_VIDEO = "android.permission.READ_MEDIA_VIDEO";
-    field public static final java.lang.String READ_PHONE_NUMBERS = "android.permission.READ_PHONE_NUMBERS";
-    field public static final java.lang.String READ_PHONE_STATE = "android.permission.READ_PHONE_STATE";
-    field public static final java.lang.String READ_SMS = "android.permission.READ_SMS";
-    field public static final java.lang.String READ_SYNC_SETTINGS = "android.permission.READ_SYNC_SETTINGS";
-    field public static final java.lang.String READ_SYNC_STATS = "android.permission.READ_SYNC_STATS";
-    field public static final java.lang.String READ_VOICEMAIL = "com.android.voicemail.permission.READ_VOICEMAIL";
-    field public static final java.lang.String REBOOT = "android.permission.REBOOT";
-    field public static final java.lang.String RECEIVE_BOOT_COMPLETED = "android.permission.RECEIVE_BOOT_COMPLETED";
-    field public static final java.lang.String RECEIVE_MMS = "android.permission.RECEIVE_MMS";
-    field public static final java.lang.String RECEIVE_SMS = "android.permission.RECEIVE_SMS";
-    field public static final java.lang.String RECEIVE_WAP_PUSH = "android.permission.RECEIVE_WAP_PUSH";
-    field public static final java.lang.String RECORD_AUDIO = "android.permission.RECORD_AUDIO";
-    field public static final java.lang.String REORDER_TASKS = "android.permission.REORDER_TASKS";
-    field public static final java.lang.String REQUEST_COMPANION_RUN_IN_BACKGROUND = "android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND";
-    field public static final java.lang.String REQUEST_COMPANION_USE_DATA_IN_BACKGROUND = "android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND";
-    field public static final java.lang.String REQUEST_DELETE_PACKAGES = "android.permission.REQUEST_DELETE_PACKAGES";
-    field public static final java.lang.String REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS";
-    field public static final java.lang.String REQUEST_INSTALL_PACKAGES = "android.permission.REQUEST_INSTALL_PACKAGES";
-    field public static final deprecated java.lang.String RESTART_PACKAGES = "android.permission.RESTART_PACKAGES";
-    field public static final java.lang.String SEND_RESPOND_VIA_MESSAGE = "android.permission.SEND_RESPOND_VIA_MESSAGE";
-    field public static final java.lang.String SEND_SMS = "android.permission.SEND_SMS";
-    field public static final java.lang.String SET_ALARM = "com.android.alarm.permission.SET_ALARM";
-    field public static final java.lang.String SET_ALWAYS_FINISH = "android.permission.SET_ALWAYS_FINISH";
-    field public static final java.lang.String SET_ANIMATION_SCALE = "android.permission.SET_ANIMATION_SCALE";
-    field public static final java.lang.String SET_DEBUG_APP = "android.permission.SET_DEBUG_APP";
-    field public static final deprecated java.lang.String SET_PREFERRED_APPLICATIONS = "android.permission.SET_PREFERRED_APPLICATIONS";
-    field public static final java.lang.String SET_PROCESS_LIMIT = "android.permission.SET_PROCESS_LIMIT";
-    field public static final java.lang.String SET_TIME = "android.permission.SET_TIME";
-    field public static final java.lang.String SET_TIME_ZONE = "android.permission.SET_TIME_ZONE";
-    field public static final java.lang.String SET_WALLPAPER = "android.permission.SET_WALLPAPER";
-    field public static final java.lang.String SET_WALLPAPER_HINTS = "android.permission.SET_WALLPAPER_HINTS";
-    field public static final java.lang.String SIGNAL_PERSISTENT_PROCESSES = "android.permission.SIGNAL_PERSISTENT_PROCESSES";
-    field public static final java.lang.String SMS_FINANCIAL_TRANSACTIONS = "android.permission.SMS_FINANCIAL_TRANSACTIONS";
-    field public static final java.lang.String STATUS_BAR = "android.permission.STATUS_BAR";
-    field public static final java.lang.String SYSTEM_ALERT_WINDOW = "android.permission.SYSTEM_ALERT_WINDOW";
-    field public static final java.lang.String TRANSMIT_IR = "android.permission.TRANSMIT_IR";
-    field public static final java.lang.String UNINSTALL_SHORTCUT = "com.android.launcher.permission.UNINSTALL_SHORTCUT";
-    field public static final java.lang.String UPDATE_DEVICE_STATS = "android.permission.UPDATE_DEVICE_STATS";
-    field public static final java.lang.String USE_BIOMETRIC = "android.permission.USE_BIOMETRIC";
-    field public static final deprecated java.lang.String USE_FINGERPRINT = "android.permission.USE_FINGERPRINT";
-    field public static final java.lang.String USE_FULL_SCREEN_INTENT = "android.permission.USE_FULL_SCREEN_INTENT";
-    field public static final java.lang.String USE_SIP = "android.permission.USE_SIP";
-    field public static final java.lang.String VIBRATE = "android.permission.VIBRATE";
-    field public static final java.lang.String WAKE_LOCK = "android.permission.WAKE_LOCK";
-    field public static final java.lang.String WRITE_APN_SETTINGS = "android.permission.WRITE_APN_SETTINGS";
-    field public static final java.lang.String WRITE_CALENDAR = "android.permission.WRITE_CALENDAR";
-    field public static final java.lang.String WRITE_CALL_LOG = "android.permission.WRITE_CALL_LOG";
-    field public static final java.lang.String WRITE_CONTACTS = "android.permission.WRITE_CONTACTS";
-    field public static final deprecated java.lang.String WRITE_EXTERNAL_STORAGE = "android.permission.WRITE_EXTERNAL_STORAGE";
-    field public static final java.lang.String WRITE_GSERVICES = "android.permission.WRITE_GSERVICES";
-    field public static final java.lang.String WRITE_SECURE_SETTINGS = "android.permission.WRITE_SECURE_SETTINGS";
-    field public static final java.lang.String WRITE_SETTINGS = "android.permission.WRITE_SETTINGS";
-    field public static final java.lang.String WRITE_SYNC_SETTINGS = "android.permission.WRITE_SYNC_SETTINGS";
-    field public static final java.lang.String WRITE_VOICEMAIL = "com.android.voicemail.permission.WRITE_VOICEMAIL";
+    field public static final String ACCEPT_HANDOVER = "android.permission.ACCEPT_HANDOVER";
+    field public static final String ACCESS_BACKGROUND_LOCATION = "android.permission.ACCESS_BACKGROUND_LOCATION";
+    field public static final String ACCESS_CHECKIN_PROPERTIES = "android.permission.ACCESS_CHECKIN_PROPERTIES";
+    field public static final String ACCESS_COARSE_LOCATION = "android.permission.ACCESS_COARSE_LOCATION";
+    field public static final String ACCESS_FINE_LOCATION = "android.permission.ACCESS_FINE_LOCATION";
+    field public static final String ACCESS_LOCATION_EXTRA_COMMANDS = "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS";
+    field public static final String ACCESS_MEDIA_LOCATION = "android.permission.ACCESS_MEDIA_LOCATION";
+    field public static final String ACCESS_NETWORK_STATE = "android.permission.ACCESS_NETWORK_STATE";
+    field public static final String ACCESS_NOTIFICATION_POLICY = "android.permission.ACCESS_NOTIFICATION_POLICY";
+    field public static final String ACCESS_WIFI_STATE = "android.permission.ACCESS_WIFI_STATE";
+    field public static final String ACCOUNT_MANAGER = "android.permission.ACCOUNT_MANAGER";
+    field public static final String ACTIVITY_RECOGNITION = "android.permission.ACTIVITY_RECOGNITION";
+    field public static final String ADD_VOICEMAIL = "com.android.voicemail.permission.ADD_VOICEMAIL";
+    field public static final String ANSWER_PHONE_CALLS = "android.permission.ANSWER_PHONE_CALLS";
+    field public static final String BATTERY_STATS = "android.permission.BATTERY_STATS";
+    field public static final String BIND_ACCESSIBILITY_SERVICE = "android.permission.BIND_ACCESSIBILITY_SERVICE";
+    field public static final String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET";
+    field public static final String BIND_AUTOFILL_SERVICE = "android.permission.BIND_AUTOFILL_SERVICE";
+    field public static final String BIND_CALL_REDIRECTION_SERVICE = "android.permission.BIND_CALL_REDIRECTION_SERVICE";
+    field @Deprecated public static final String BIND_CARRIER_MESSAGING_SERVICE = "android.permission.BIND_CARRIER_MESSAGING_SERVICE";
+    field public static final String BIND_CARRIER_SERVICES = "android.permission.BIND_CARRIER_SERVICES";
+    field public static final String BIND_CHOOSER_TARGET_SERVICE = "android.permission.BIND_CHOOSER_TARGET_SERVICE";
+    field public static final String BIND_CONDITION_PROVIDER_SERVICE = "android.permission.BIND_CONDITION_PROVIDER_SERVICE";
+    field public static final String BIND_DEVICE_ADMIN = "android.permission.BIND_DEVICE_ADMIN";
+    field public static final String BIND_DREAM_SERVICE = "android.permission.BIND_DREAM_SERVICE";
+    field public static final String BIND_INCALL_SERVICE = "android.permission.BIND_INCALL_SERVICE";
+    field public static final String BIND_INPUT_METHOD = "android.permission.BIND_INPUT_METHOD";
+    field public static final String BIND_MIDI_DEVICE_SERVICE = "android.permission.BIND_MIDI_DEVICE_SERVICE";
+    field public static final String BIND_NFC_SERVICE = "android.permission.BIND_NFC_SERVICE";
+    field public static final String BIND_NOTIFICATION_LISTENER_SERVICE = "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE";
+    field public static final String BIND_PRINT_SERVICE = "android.permission.BIND_PRINT_SERVICE";
+    field public static final String BIND_QUICK_SETTINGS_TILE = "android.permission.BIND_QUICK_SETTINGS_TILE";
+    field public static final String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS";
+    field public static final String BIND_SCREENING_SERVICE = "android.permission.BIND_SCREENING_SERVICE";
+    field public static final String BIND_SMS_APP_SERVICE = "android.permission.BIND_SMS_APP_SERVICE";
+    field public static final String BIND_TELECOM_CONNECTION_SERVICE = "android.permission.BIND_TELECOM_CONNECTION_SERVICE";
+    field public static final String BIND_TEXT_SERVICE = "android.permission.BIND_TEXT_SERVICE";
+    field public static final String BIND_TV_INPUT = "android.permission.BIND_TV_INPUT";
+    field public static final String BIND_VISUAL_VOICEMAIL_SERVICE = "android.permission.BIND_VISUAL_VOICEMAIL_SERVICE";
+    field public static final String BIND_VOICE_INTERACTION = "android.permission.BIND_VOICE_INTERACTION";
+    field public static final String BIND_VPN_SERVICE = "android.permission.BIND_VPN_SERVICE";
+    field public static final String BIND_VR_LISTENER_SERVICE = "android.permission.BIND_VR_LISTENER_SERVICE";
+    field public static final String BIND_WALLPAPER = "android.permission.BIND_WALLPAPER";
+    field public static final String BLUETOOTH = "android.permission.BLUETOOTH";
+    field public static final String BLUETOOTH_ADMIN = "android.permission.BLUETOOTH_ADMIN";
+    field public static final String BLUETOOTH_PRIVILEGED = "android.permission.BLUETOOTH_PRIVILEGED";
+    field public static final String BODY_SENSORS = "android.permission.BODY_SENSORS";
+    field public static final String BROADCAST_PACKAGE_REMOVED = "android.permission.BROADCAST_PACKAGE_REMOVED";
+    field public static final String BROADCAST_SMS = "android.permission.BROADCAST_SMS";
+    field public static final String BROADCAST_STICKY = "android.permission.BROADCAST_STICKY";
+    field public static final String BROADCAST_WAP_PUSH = "android.permission.BROADCAST_WAP_PUSH";
+    field public static final String CALL_COMPANION_APP = "android.permission.CALL_COMPANION_APP";
+    field public static final String CALL_PHONE = "android.permission.CALL_PHONE";
+    field public static final String CALL_PRIVILEGED = "android.permission.CALL_PRIVILEGED";
+    field public static final String CAMERA = "android.permission.CAMERA";
+    field public static final String CAPTURE_AUDIO_OUTPUT = "android.permission.CAPTURE_AUDIO_OUTPUT";
+    field public static final String CHANGE_COMPONENT_ENABLED_STATE = "android.permission.CHANGE_COMPONENT_ENABLED_STATE";
+    field public static final String CHANGE_CONFIGURATION = "android.permission.CHANGE_CONFIGURATION";
+    field public static final String CHANGE_NETWORK_STATE = "android.permission.CHANGE_NETWORK_STATE";
+    field public static final String CHANGE_WIFI_MULTICAST_STATE = "android.permission.CHANGE_WIFI_MULTICAST_STATE";
+    field public static final String CHANGE_WIFI_STATE = "android.permission.CHANGE_WIFI_STATE";
+    field public static final String CLEAR_APP_CACHE = "android.permission.CLEAR_APP_CACHE";
+    field public static final String CONTROL_LOCATION_UPDATES = "android.permission.CONTROL_LOCATION_UPDATES";
+    field public static final String DELETE_CACHE_FILES = "android.permission.DELETE_CACHE_FILES";
+    field public static final String DELETE_PACKAGES = "android.permission.DELETE_PACKAGES";
+    field public static final String DIAGNOSTIC = "android.permission.DIAGNOSTIC";
+    field public static final String DISABLE_KEYGUARD = "android.permission.DISABLE_KEYGUARD";
+    field public static final String DUMP = "android.permission.DUMP";
+    field public static final String EXPAND_STATUS_BAR = "android.permission.EXPAND_STATUS_BAR";
+    field public static final String FACTORY_TEST = "android.permission.FACTORY_TEST";
+    field public static final String FOREGROUND_SERVICE = "android.permission.FOREGROUND_SERVICE";
+    field public static final String GET_ACCOUNTS = "android.permission.GET_ACCOUNTS";
+    field public static final String GET_ACCOUNTS_PRIVILEGED = "android.permission.GET_ACCOUNTS_PRIVILEGED";
+    field public static final String GET_AND_REQUEST_SCREEN_LOCK_COMPLEXITY = "android.permission.GET_AND_REQUEST_SCREEN_LOCK_COMPLEXITY";
+    field public static final String GET_PACKAGE_SIZE = "android.permission.GET_PACKAGE_SIZE";
+    field @Deprecated public static final String GET_TASKS = "android.permission.GET_TASKS";
+    field public static final String GLOBAL_SEARCH = "android.permission.GLOBAL_SEARCH";
+    field public static final String INSTALL_LOCATION_PROVIDER = "android.permission.INSTALL_LOCATION_PROVIDER";
+    field public static final String INSTALL_PACKAGES = "android.permission.INSTALL_PACKAGES";
+    field public static final String INSTALL_SHORTCUT = "com.android.launcher.permission.INSTALL_SHORTCUT";
+    field public static final String INSTANT_APP_FOREGROUND_SERVICE = "android.permission.INSTANT_APP_FOREGROUND_SERVICE";
+    field public static final String INTERNET = "android.permission.INTERNET";
+    field public static final String KILL_BACKGROUND_PROCESSES = "android.permission.KILL_BACKGROUND_PROCESSES";
+    field public static final String LOCATION_HARDWARE = "android.permission.LOCATION_HARDWARE";
+    field public static final String MANAGE_DOCUMENTS = "android.permission.MANAGE_DOCUMENTS";
+    field public static final String MANAGE_OWN_CALLS = "android.permission.MANAGE_OWN_CALLS";
+    field public static final String MASTER_CLEAR = "android.permission.MASTER_CLEAR";
+    field public static final String MEDIA_CONTENT_CONTROL = "android.permission.MEDIA_CONTENT_CONTROL";
+    field public static final String MODIFY_AUDIO_SETTINGS = "android.permission.MODIFY_AUDIO_SETTINGS";
+    field public static final String MODIFY_PHONE_STATE = "android.permission.MODIFY_PHONE_STATE";
+    field public static final String MOUNT_FORMAT_FILESYSTEMS = "android.permission.MOUNT_FORMAT_FILESYSTEMS";
+    field public static final String MOUNT_UNMOUNT_FILESYSTEMS = "android.permission.MOUNT_UNMOUNT_FILESYSTEMS";
+    field public static final String NFC = "android.permission.NFC";
+    field public static final String NFC_TRANSACTION_EVENT = "android.permission.NFC_TRANSACTION_EVENT";
+    field public static final String PACKAGE_USAGE_STATS = "android.permission.PACKAGE_USAGE_STATS";
+    field @Deprecated public static final String PERSISTENT_ACTIVITY = "android.permission.PERSISTENT_ACTIVITY";
+    field public static final String PROCESS_OUTGOING_CALLS = "android.permission.PROCESS_OUTGOING_CALLS";
+    field public static final String READ_CALENDAR = "android.permission.READ_CALENDAR";
+    field public static final String READ_CALL_LOG = "android.permission.READ_CALL_LOG";
+    field public static final String READ_CONTACTS = "android.permission.READ_CONTACTS";
+    field @Deprecated public static final String READ_EXTERNAL_STORAGE = "android.permission.READ_EXTERNAL_STORAGE";
+    field @Deprecated public static final String READ_INPUT_STATE = "android.permission.READ_INPUT_STATE";
+    field public static final String READ_LOGS = "android.permission.READ_LOGS";
+    field public static final String READ_MEDIA_AUDIO = "android.permission.READ_MEDIA_AUDIO";
+    field public static final String READ_MEDIA_IMAGES = "android.permission.READ_MEDIA_IMAGES";
+    field public static final String READ_MEDIA_VIDEO = "android.permission.READ_MEDIA_VIDEO";
+    field public static final String READ_PHONE_NUMBERS = "android.permission.READ_PHONE_NUMBERS";
+    field public static final String READ_PHONE_STATE = "android.permission.READ_PHONE_STATE";
+    field public static final String READ_SMS = "android.permission.READ_SMS";
+    field public static final String READ_SYNC_SETTINGS = "android.permission.READ_SYNC_SETTINGS";
+    field public static final String READ_SYNC_STATS = "android.permission.READ_SYNC_STATS";
+    field public static final String READ_VOICEMAIL = "com.android.voicemail.permission.READ_VOICEMAIL";
+    field public static final String REBOOT = "android.permission.REBOOT";
+    field public static final String RECEIVE_BOOT_COMPLETED = "android.permission.RECEIVE_BOOT_COMPLETED";
+    field public static final String RECEIVE_MMS = "android.permission.RECEIVE_MMS";
+    field public static final String RECEIVE_SMS = "android.permission.RECEIVE_SMS";
+    field public static final String RECEIVE_WAP_PUSH = "android.permission.RECEIVE_WAP_PUSH";
+    field public static final String RECORD_AUDIO = "android.permission.RECORD_AUDIO";
+    field public static final String REORDER_TASKS = "android.permission.REORDER_TASKS";
+    field public static final String REQUEST_COMPANION_RUN_IN_BACKGROUND = "android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND";
+    field public static final String REQUEST_COMPANION_USE_DATA_IN_BACKGROUND = "android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND";
+    field public static final String REQUEST_DELETE_PACKAGES = "android.permission.REQUEST_DELETE_PACKAGES";
+    field public static final String REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS";
+    field public static final String REQUEST_INSTALL_PACKAGES = "android.permission.REQUEST_INSTALL_PACKAGES";
+    field @Deprecated public static final String RESTART_PACKAGES = "android.permission.RESTART_PACKAGES";
+    field public static final String SEND_RESPOND_VIA_MESSAGE = "android.permission.SEND_RESPOND_VIA_MESSAGE";
+    field public static final String SEND_SMS = "android.permission.SEND_SMS";
+    field public static final String SET_ALARM = "com.android.alarm.permission.SET_ALARM";
+    field public static final String SET_ALWAYS_FINISH = "android.permission.SET_ALWAYS_FINISH";
+    field public static final String SET_ANIMATION_SCALE = "android.permission.SET_ANIMATION_SCALE";
+    field public static final String SET_DEBUG_APP = "android.permission.SET_DEBUG_APP";
+    field @Deprecated public static final String SET_PREFERRED_APPLICATIONS = "android.permission.SET_PREFERRED_APPLICATIONS";
+    field public static final String SET_PROCESS_LIMIT = "android.permission.SET_PROCESS_LIMIT";
+    field public static final String SET_TIME = "android.permission.SET_TIME";
+    field public static final String SET_TIME_ZONE = "android.permission.SET_TIME_ZONE";
+    field public static final String SET_WALLPAPER = "android.permission.SET_WALLPAPER";
+    field public static final String SET_WALLPAPER_HINTS = "android.permission.SET_WALLPAPER_HINTS";
+    field public static final String SIGNAL_PERSISTENT_PROCESSES = "android.permission.SIGNAL_PERSISTENT_PROCESSES";
+    field public static final String SMS_FINANCIAL_TRANSACTIONS = "android.permission.SMS_FINANCIAL_TRANSACTIONS";
+    field public static final String STATUS_BAR = "android.permission.STATUS_BAR";
+    field public static final String SYSTEM_ALERT_WINDOW = "android.permission.SYSTEM_ALERT_WINDOW";
+    field public static final String TRANSMIT_IR = "android.permission.TRANSMIT_IR";
+    field public static final String UNINSTALL_SHORTCUT = "com.android.launcher.permission.UNINSTALL_SHORTCUT";
+    field public static final String UPDATE_DEVICE_STATS = "android.permission.UPDATE_DEVICE_STATS";
+    field public static final String USE_BIOMETRIC = "android.permission.USE_BIOMETRIC";
+    field @Deprecated public static final String USE_FINGERPRINT = "android.permission.USE_FINGERPRINT";
+    field public static final String USE_FULL_SCREEN_INTENT = "android.permission.USE_FULL_SCREEN_INTENT";
+    field public static final String USE_SIP = "android.permission.USE_SIP";
+    field public static final String VIBRATE = "android.permission.VIBRATE";
+    field public static final String WAKE_LOCK = "android.permission.WAKE_LOCK";
+    field public static final String WRITE_APN_SETTINGS = "android.permission.WRITE_APN_SETTINGS";
+    field public static final String WRITE_CALENDAR = "android.permission.WRITE_CALENDAR";
+    field public static final String WRITE_CALL_LOG = "android.permission.WRITE_CALL_LOG";
+    field public static final String WRITE_CONTACTS = "android.permission.WRITE_CONTACTS";
+    field @Deprecated public static final String WRITE_EXTERNAL_STORAGE = "android.permission.WRITE_EXTERNAL_STORAGE";
+    field public static final String WRITE_GSERVICES = "android.permission.WRITE_GSERVICES";
+    field public static final String WRITE_SECURE_SETTINGS = "android.permission.WRITE_SECURE_SETTINGS";
+    field public static final String WRITE_SETTINGS = "android.permission.WRITE_SETTINGS";
+    field public static final String WRITE_SYNC_SETTINGS = "android.permission.WRITE_SYNC_SETTINGS";
+    field public static final String WRITE_VOICEMAIL = "com.android.voicemail.permission.WRITE_VOICEMAIL";
   }
 
   public static final class Manifest.permission_group {
     ctor public Manifest.permission_group();
-    field public static final java.lang.String ACTIVITY_RECOGNITION = "android.permission-group.ACTIVITY_RECOGNITION";
-    field public static final java.lang.String CALENDAR = "android.permission-group.CALENDAR";
-    field public static final java.lang.String CALL_LOG = "android.permission-group.CALL_LOG";
-    field public static final java.lang.String CAMERA = "android.permission-group.CAMERA";
-    field public static final java.lang.String CONTACTS = "android.permission-group.CONTACTS";
-    field public static final java.lang.String LOCATION = "android.permission-group.LOCATION";
-    field public static final java.lang.String MEDIA_AURAL = "android.permission-group.MEDIA_AURAL";
-    field public static final java.lang.String MEDIA_VISUAL = "android.permission-group.MEDIA_VISUAL";
-    field public static final java.lang.String MICROPHONE = "android.permission-group.MICROPHONE";
-    field public static final java.lang.String PHONE = "android.permission-group.PHONE";
-    field public static final java.lang.String SENSORS = "android.permission-group.SENSORS";
-    field public static final java.lang.String SMS = "android.permission-group.SMS";
-    field public static final deprecated java.lang.String STORAGE = "android.permission-group.STORAGE";
+    field public static final String ACTIVITY_RECOGNITION = "android.permission-group.ACTIVITY_RECOGNITION";
+    field public static final String CALENDAR = "android.permission-group.CALENDAR";
+    field public static final String CALL_LOG = "android.permission-group.CALL_LOG";
+    field public static final String CAMERA = "android.permission-group.CAMERA";
+    field public static final String CONTACTS = "android.permission-group.CONTACTS";
+    field public static final String LOCATION = "android.permission-group.LOCATION";
+    field public static final String MEDIA_AURAL = "android.permission-group.MEDIA_AURAL";
+    field public static final String MEDIA_VISUAL = "android.permission-group.MEDIA_VISUAL";
+    field public static final String MICROPHONE = "android.permission-group.MICROPHONE";
+    field public static final String PHONE = "android.permission-group.PHONE";
+    field public static final String SENSORS = "android.permission-group.SENSORS";
+    field public static final String SMS = "android.permission-group.SMS";
+    field @Deprecated public static final String STORAGE = "android.permission-group.STORAGE";
   }
 
   public final class R {
@@ -293,8 +294,8 @@
     field public static final int alphabeticShortcut = 16843235; // 0x10101e3
     field public static final int alwaysDrawnWithCache = 16842991; // 0x10100ef
     field public static final int alwaysRetainTaskState = 16843267; // 0x1010203
-    field public static final deprecated int amPmBackgroundColor = 16843941; // 0x10104a5
-    field public static final deprecated int amPmTextColor = 16843940; // 0x10104a4
+    field @Deprecated public static final int amPmBackgroundColor = 16843941; // 0x10104a5
+    field @Deprecated public static final int amPmTextColor = 16843940; // 0x10104a4
     field public static final int ambientShadowAlpha = 16843966; // 0x10104be
     field public static final int angle = 16843168; // 0x10101a0
     field public static final int animateFirstView = 16843477; // 0x10102d5
@@ -304,7 +305,7 @@
     field public static final int animationCache = 16842989; // 0x10100ed
     field public static final int animationDuration = 16843026; // 0x1010112
     field public static final int animationOrder = 16843214; // 0x10101ce
-    field public static final deprecated int animationResolution = 16843546; // 0x101031a
+    field @Deprecated public static final int animationResolution = 16843546; // 0x101031a
     field public static final int antialias = 16843034; // 0x101011a
     field public static final int anyDensity = 16843372; // 0x101026c
     field public static final int apduServiceBanner = 16843757; // 0x10103ed
@@ -324,7 +325,7 @@
     field public static final int autoSizeStepGranularity = 16844086; // 0x1010536
     field public static final int autoSizeTextType = 16844085; // 0x1010535
     field public static final int autoStart = 16843445; // 0x10102b5
-    field public static final deprecated int autoText = 16843114; // 0x101016a
+    field @Deprecated public static final int autoText = 16843114; // 0x101016a
     field public static final int autoUrlDetect = 16843404; // 0x101028c
     field public static final int autoVerify = 16844014; // 0x10104ee
     field public static final int autofillHints = 16844118; // 0x1010556
@@ -377,14 +378,14 @@
     field public static final int canControlMagnification = 16844039; // 0x1010507
     field public static final int canPerformGestures = 16844045; // 0x101050d
     field public static final int canRecord = 16844060; // 0x101051c
-    field public static final deprecated int canRequestEnhancedWebAccessibility = 16843736; // 0x10103d8
+    field @Deprecated public static final int canRequestEnhancedWebAccessibility = 16843736; // 0x10103d8
     field public static final int canRequestFilterKeyEvents = 16843737; // 0x10103d9
     field public static final int canRequestFingerprintGestures = 16844109; // 0x101054d
     field public static final int canRequestTouchExplorationMode = 16843735; // 0x10103d7
     field public static final int canRetrieveWindowContent = 16843653; // 0x1010385
     field public static final int candidatesTextStyleSpans = 16843312; // 0x1010230
     field public static final int cantSaveState = 16844142; // 0x101056e
-    field public static final deprecated int capitalize = 16843113; // 0x1010169
+    field @Deprecated public static final int capitalize = 16843113; // 0x1010169
     field public static final int category = 16843752; // 0x10103e8
     field public static final int centerBright = 16842956; // 0x10100cc
     field public static final int centerColor = 16843275; // 0x101020b
@@ -417,7 +418,7 @@
     field public static final int clipOrientation = 16843274; // 0x101020a
     field public static final int clipToPadding = 16842987; // 0x10100eb
     field public static final int closeIcon = 16843905; // 0x1010481
-    field public static final deprecated int codes = 16843330; // 0x1010242
+    field @Deprecated public static final int codes = 16843330; // 0x1010242
     field public static final int collapseColumns = 16843083; // 0x101014b
     field public static final int collapseContentDescription = 16843984; // 0x10104d0
     field public static final int collapseIcon = 16844031; // 0x10104ff
@@ -491,8 +492,8 @@
     field public static final int datePickerMode = 16843955; // 0x10104b3
     field public static final int datePickerStyle = 16843612; // 0x101035c
     field public static final int dateTextAppearance = 16843593; // 0x1010349
-    field public static final deprecated int dayOfWeekBackground = 16843924; // 0x1010494
-    field public static final deprecated int dayOfWeekTextAppearance = 16843925; // 0x1010495
+    field @Deprecated public static final int dayOfWeekBackground = 16843924; // 0x1010494
+    field @Deprecated public static final int dayOfWeekTextAppearance = 16843925; // 0x1010495
     field public static final int debuggable = 16842767; // 0x101000f
     field public static final int defaultFocusHighlightEnabled = 16844130; // 0x1010562
     field public static final int defaultHeight = 16844021; // 0x10104f5
@@ -519,7 +520,7 @@
     field public static final int digits = 16843110; // 0x1010166
     field public static final int directBootAware = 16844037; // 0x1010505
     field public static final int direction = 16843217; // 0x10101d1
-    field public static final deprecated int directionDescriptions = 16843681; // 0x10103a1
+    field @Deprecated public static final int directionDescriptions = 16843681; // 0x10103a1
     field public static final int directionPriority = 16843218; // 0x10101d2
     field public static final int disableDependentsState = 16843249; // 0x10101f1
     field public static final int disabledAlpha = 16842803; // 0x1010033
@@ -559,7 +560,7 @@
     field public static final int editTextColor = 16843601; // 0x1010351
     field public static final int editTextPreferenceStyle = 16842898; // 0x1010092
     field public static final int editTextStyle = 16842862; // 0x101006e
-    field public static final deprecated int editable = 16843115; // 0x101016b
+    field @Deprecated public static final int editable = 16843115; // 0x101016b
     field public static final int editorExtras = 16843300; // 0x1010224
     field public static final int elegantTextHeight = 16843869; // 0x101045d
     field public static final int elevation = 16843840; // 0x1010440
@@ -571,7 +572,7 @@
     field public static final int endColor = 16843166; // 0x101019e
     field public static final int endX = 16844050; // 0x1010512
     field public static final int endY = 16844051; // 0x1010513
-    field public static final deprecated int endYear = 16843133; // 0x101017d
+    field @Deprecated public static final int endYear = 16843133; // 0x101017d
     field public static final int enterFadeDuration = 16843532; // 0x101030c
     field public static final int entries = 16842930; // 0x10100b2
     field public static final int entryValues = 16843256; // 0x10101f8
@@ -630,7 +631,7 @@
     field public static final int focusable = 16842970; // 0x10100da
     field public static final int focusableInTouchMode = 16842971; // 0x10100db
     field public static final int focusedByDefault = 16844100; // 0x1010544
-    field public static final deprecated int focusedMonthDateColor = 16843587; // 0x1010343
+    field @Deprecated public static final int focusedMonthDateColor = 16843587; // 0x1010343
     field public static final int font = 16844082; // 0x1010532
     field public static final int fontFamily = 16843692; // 0x10103ac
     field public static final int fontFeatureSettings = 16843959; // 0x10104b7
@@ -705,20 +706,20 @@
     field public static final int hardwareAccelerated = 16843475; // 0x10102d3
     field public static final int hasCode = 16842764; // 0x101000c
     field public static final int hasFragileUserData = 16844192; // 0x10105a0
-    field public static final deprecated int headerAmPmTextAppearance = 16843936; // 0x10104a0
+    field @Deprecated public static final int headerAmPmTextAppearance = 16843936; // 0x10104a0
     field public static final int headerBackground = 16843055; // 0x101012f
-    field public static final deprecated int headerDayOfMonthTextAppearance = 16843927; // 0x1010497
+    field @Deprecated public static final int headerDayOfMonthTextAppearance = 16843927; // 0x1010497
     field public static final int headerDividersEnabled = 16843310; // 0x101022e
-    field public static final deprecated int headerMonthTextAppearance = 16843926; // 0x1010496
-    field public static final deprecated int headerTimeTextAppearance = 16843935; // 0x101049f
-    field public static final deprecated int headerYearTextAppearance = 16843928; // 0x1010498
+    field @Deprecated public static final int headerMonthTextAppearance = 16843926; // 0x1010496
+    field @Deprecated public static final int headerTimeTextAppearance = 16843935; // 0x101049f
+    field @Deprecated public static final int headerYearTextAppearance = 16843928; // 0x1010498
     field public static final int height = 16843093; // 0x1010155
     field public static final int hideOnContentScroll = 16843843; // 0x1010443
     field public static final int hint = 16843088; // 0x1010150
     field public static final int homeAsUpIndicator = 16843531; // 0x101030b
     field public static final int homeLayout = 16843549; // 0x101031d
     field public static final int horizontalDivider = 16843053; // 0x101012d
-    field public static final deprecated int horizontalGap = 16843327; // 0x101023f
+    field @Deprecated public static final int horizontalGap = 16843327; // 0x101023f
     field public static final int horizontalScrollViewStyle = 16843603; // 0x1010353
     field public static final int horizontalSpacing = 16843028; // 0x1010114
     field public static final int host = 16842792; // 0x1010028
@@ -726,7 +727,7 @@
     field public static final int hotSpotY = 16844056; // 0x1010518
     field public static final int hyphenationFrequency = 16843998; // 0x10104de
     field public static final int icon = 16842754; // 0x1010002
-    field public static final deprecated int iconPreview = 16843337; // 0x1010249
+    field @Deprecated public static final int iconPreview = 16843337; // 0x1010249
     field public static final int iconSpaceReserved = 16844129; // 0x1010561
     field public static final int iconTint = 16844126; // 0x101055e
     field public static final int iconTintMode = 16844127; // 0x101055f
@@ -769,7 +770,7 @@
     field public static final int initialLayout = 16843345; // 0x1010251
     field public static final int innerRadius = 16843359; // 0x101025f
     field public static final int innerRadiusRatio = 16843163; // 0x101019b
-    field public static final deprecated int inputMethod = 16843112; // 0x1010168
+    field @Deprecated public static final int inputMethod = 16843112; // 0x1010168
     field public static final int inputType = 16843296; // 0x1010220
     field public static final int inset = 16843957; // 0x10104b5
     field public static final int insetBottom = 16843194; // 0x10101ba
@@ -787,12 +788,12 @@
     field public static final int isGame = 16843764; // 0x10103f4
     field public static final int isIndicator = 16843079; // 0x1010147
     field public static final int isLightTheme = 16844176; // 0x1010590
-    field public static final deprecated int isModifier = 16843334; // 0x1010246
-    field public static final deprecated int isRepeatable = 16843336; // 0x1010248
+    field @Deprecated public static final int isModifier = 16843334; // 0x1010246
+    field @Deprecated public static final int isRepeatable = 16843336; // 0x1010248
     field public static final int isScrollContainer = 16843342; // 0x101024e
     field public static final int isSplitRequired = 16844177; // 0x1010591
     field public static final int isStatic = 16844122; // 0x101055a
-    field public static final deprecated int isSticky = 16843335; // 0x1010247
+    field @Deprecated public static final int isSticky = 16843335; // 0x1010247
     field public static final int isolatedProcess = 16843689; // 0x10103a9
     field public static final int isolatedSplits = 16844107; // 0x101054b
     field public static final int itemBackground = 16843056; // 0x1010130
@@ -802,27 +803,27 @@
     field public static final int justificationMode = 16844135; // 0x1010567
     field public static final int keepScreenOn = 16843286; // 0x1010216
     field public static final int key = 16843240; // 0x10101e8
-    field public static final deprecated int keyBackground = 16843315; // 0x1010233
-    field public static final deprecated int keyEdgeFlags = 16843333; // 0x1010245
-    field public static final deprecated int keyHeight = 16843326; // 0x101023e
-    field public static final deprecated int keyIcon = 16843340; // 0x101024c
-    field public static final deprecated int keyLabel = 16843339; // 0x101024b
-    field public static final deprecated int keyOutputText = 16843338; // 0x101024a
-    field public static final deprecated int keyPreviewHeight = 16843321; // 0x1010239
-    field public static final deprecated int keyPreviewLayout = 16843319; // 0x1010237
-    field public static final deprecated int keyPreviewOffset = 16843320; // 0x1010238
+    field @Deprecated public static final int keyBackground = 16843315; // 0x1010233
+    field @Deprecated public static final int keyEdgeFlags = 16843333; // 0x1010245
+    field @Deprecated public static final int keyHeight = 16843326; // 0x101023e
+    field @Deprecated public static final int keyIcon = 16843340; // 0x101024c
+    field @Deprecated public static final int keyLabel = 16843339; // 0x101024b
+    field @Deprecated public static final int keyOutputText = 16843338; // 0x101024a
+    field @Deprecated public static final int keyPreviewHeight = 16843321; // 0x1010239
+    field @Deprecated public static final int keyPreviewLayout = 16843319; // 0x1010237
+    field @Deprecated public static final int keyPreviewOffset = 16843320; // 0x1010238
     field public static final int keySet = 16843739; // 0x10103db
-    field public static final deprecated int keyTextColor = 16843318; // 0x1010236
-    field public static final deprecated int keyTextSize = 16843316; // 0x1010234
-    field public static final deprecated int keyWidth = 16843325; // 0x101023d
+    field @Deprecated public static final int keyTextColor = 16843318; // 0x1010236
+    field @Deprecated public static final int keyTextSize = 16843316; // 0x1010234
+    field @Deprecated public static final int keyWidth = 16843325; // 0x101023d
     field public static final int keyboardLayout = 16843691; // 0x10103ab
-    field public static final deprecated int keyboardMode = 16843341; // 0x101024d
+    field @Deprecated public static final int keyboardMode = 16843341; // 0x101024d
     field public static final int keyboardNavigationCluster = 16844096; // 0x1010540
     field public static final int keycode = 16842949; // 0x10100c5
     field public static final int killAfterRestore = 16843420; // 0x101029c
     field public static final int label = 16842753; // 0x1010001
     field public static final int labelFor = 16843718; // 0x10103c6
-    field public static final deprecated int labelTextSize = 16843317; // 0x1010235
+    field @Deprecated public static final int labelTextSize = 16843317; // 0x1010235
     field public static final int languageTag = 16844040; // 0x1010508
     field public static final int largeHeap = 16843610; // 0x101035a
     field public static final int largeScreens = 16843398; // 0x1010286
@@ -984,7 +985,7 @@
     field public static final int numbersInnerTextColor = 16844001; // 0x10104e1
     field public static final int numbersSelectorColor = 16843939; // 0x10104a3
     field public static final int numbersTextColor = 16843937; // 0x10104a1
-    field public static final deprecated int numeric = 16843109; // 0x1010165
+    field @Deprecated public static final int numeric = 16843109; // 0x1010165
     field public static final int numericModifiers = 16844111; // 0x101054f
     field public static final int numericShortcut = 16843236; // 0x10101e4
     field public static final int offset = 16844052; // 0x1010514
@@ -1027,7 +1028,7 @@
     field public static final int panelFullBackground = 16842847; // 0x101005f
     field public static final int panelTextAppearance = 16842850; // 0x1010062
     field public static final int parentActivityName = 16843687; // 0x10103a7
-    field public static final deprecated int password = 16843100; // 0x101015c
+    field @Deprecated public static final int password = 16843100; // 0x101015c
     field public static final int path = 16842794; // 0x101002a
     field public static final int pathData = 16843781; // 0x1010405
     field public static final int pathPattern = 16842796; // 0x101002c
@@ -1041,18 +1042,18 @@
     field public static final int persistent = 16842765; // 0x101000d
     field public static final int persistentDrawingCache = 16842990; // 0x10100ee
     field public static final int persistentWhenFeatureAvailable = 16844131; // 0x1010563
-    field public static final deprecated int phoneNumber = 16843111; // 0x1010167
+    field @Deprecated public static final int phoneNumber = 16843111; // 0x1010167
     field public static final int pivotX = 16843189; // 0x10101b5
     field public static final int pivotY = 16843190; // 0x10101b6
     field public static final int pointerIcon = 16844041; // 0x1010509
     field public static final int popupAnimationStyle = 16843465; // 0x10102c9
     field public static final int popupBackground = 16843126; // 0x1010176
-    field public static final deprecated int popupCharacters = 16843332; // 0x1010244
+    field @Deprecated public static final int popupCharacters = 16843332; // 0x1010244
     field public static final int popupElevation = 16843916; // 0x101048c
     field public static final int popupEnterTransition = 16844063; // 0x101051f
     field public static final int popupExitTransition = 16844064; // 0x1010520
-    field public static final deprecated int popupKeyboard = 16843331; // 0x1010243
-    field public static final deprecated int popupLayout = 16843323; // 0x101023b
+    field @Deprecated public static final int popupKeyboard = 16843331; // 0x1010243
+    field @Deprecated public static final int popupLayout = 16843323; // 0x101023b
     field public static final int popupMenuStyle = 16843520; // 0x1010300
     field public static final int popupTheme = 16843945; // 0x10104a9
     field public static final int popupWindowStyle = 16842870; // 0x1010076
@@ -1135,7 +1136,7 @@
     field public static final int resizeableActivity = 16844022; // 0x10104f6
     field public static final int resource = 16842789; // 0x1010025
     field public static final int restoreAnyVersion = 16843450; // 0x10102ba
-    field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d
+    field @Deprecated public static final int restoreNeedsApplication = 16843421; // 0x101029d
     field public static final int restrictedAccountType = 16843733; // 0x10103d5
     field public static final int restrictionType = 16843923; // 0x1010493
     field public static final int resumeWhilePausing = 16843954; // 0x10104b2
@@ -1151,7 +1152,7 @@
     field public static final int roundIcon = 16844076; // 0x101052c
     field public static final int rowCount = 16843637; // 0x1010375
     field public static final int rowDelay = 16843216; // 0x10101d0
-    field public static final deprecated int rowEdgeFlags = 16843329; // 0x1010241
+    field @Deprecated public static final int rowEdgeFlags = 16843329; // 0x1010241
     field public static final int rowHeight = 16843058; // 0x1010132
     field public static final int rowOrderPreserved = 16843638; // 0x1010376
     field public static final int saveEnabled = 16842983; // 0x10100e7
@@ -1183,7 +1184,7 @@
     field public static final int scrollbarTrackVertical = 16842855; // 0x1010067
     field public static final int scrollbars = 16842974; // 0x10100de
     field public static final int scrollingCache = 16843006; // 0x10100fe
-    field public static final deprecated int searchButtonText = 16843269; // 0x1010205
+    field @Deprecated public static final int searchButtonText = 16843269; // 0x1010205
     field public static final int searchHintIcon = 16843988; // 0x10104d4
     field public static final int searchIcon = 16843907; // 0x1010483
     field public static final int searchMode = 16843221; // 0x10101d5
@@ -1205,8 +1206,8 @@
     field public static final int selectable = 16843238; // 0x10101e6
     field public static final int selectableItemBackground = 16843534; // 0x101030e
     field public static final int selectableItemBackgroundBorderless = 16843868; // 0x101045c
-    field public static final deprecated int selectedDateVerticalBar = 16843591; // 0x1010347
-    field public static final deprecated int selectedWeekBackgroundColor = 16843586; // 0x1010342
+    field @Deprecated public static final int selectedDateVerticalBar = 16843591; // 0x1010347
+    field @Deprecated public static final int selectedWeekBackgroundColor = 16843586; // 0x1010342
     field public static final int selectionDividerHeight = 16844190; // 0x101059e
     field public static final int sessionService = 16843837; // 0x101043d
     field public static final int settingsActivity = 16843301; // 0x1010225
@@ -1231,14 +1232,14 @@
     field public static final int showDividers = 16843561; // 0x1010329
     field public static final int showForAllUsers = 16844015; // 0x10104ef
     field public static final int showMetadataInPreview = 16844079; // 0x101052f
-    field public static final deprecated int showOnLockScreen = 16843721; // 0x10103c9
+    field @Deprecated public static final int showOnLockScreen = 16843721; // 0x10103c9
     field public static final int showSilent = 16843259; // 0x10101fb
     field public static final int showText = 16843949; // 0x10104ad
-    field public static final deprecated int showWeekNumber = 16843582; // 0x101033e
+    field @Deprecated public static final int showWeekNumber = 16843582; // 0x101033e
     field public static final int showWhenLocked = 16844137; // 0x1010569
-    field public static final deprecated int shownWeekCount = 16843585; // 0x1010341
+    field @Deprecated public static final int shownWeekCount = 16843585; // 0x1010341
     field public static final int shrinkColumns = 16843082; // 0x101014a
-    field public static final deprecated int singleLine = 16843101; // 0x101015d
+    field @Deprecated public static final int singleLine = 16843101; // 0x101015d
     field public static final int singleLineTitle = 16844124; // 0x101055c
     field public static final int singleUser = 16843711; // 0x10103bf
     field public static final int slideEdge = 16843824; // 0x1010430
@@ -1269,7 +1270,7 @@
     field public static final int startOffset = 16843198; // 0x10101be
     field public static final int startX = 16844048; // 0x1010510
     field public static final int startY = 16844049; // 0x1010511
-    field public static final deprecated int startYear = 16843132; // 0x101017c
+    field @Deprecated public static final int startYear = 16843132; // 0x101017c
     field public static final int stateListAnimator = 16843848; // 0x1010448
     field public static final int stateNotNeeded = 16842774; // 0x1010016
     field public static final int state_above_anchor = 16842922; // 0x10100aa
@@ -1287,7 +1288,7 @@
     field public static final int state_focused = 16842908; // 0x101009c
     field public static final int state_hovered = 16843623; // 0x1010367
     field public static final int state_last = 16842918; // 0x10100a6
-    field public static final deprecated int state_long_pressable = 16843324; // 0x101023c
+    field @Deprecated public static final int state_long_pressable = 16843324; // 0x101023c
     field public static final int state_middle = 16842917; // 0x10100a5
     field public static final int state_multiline = 16843597; // 0x101034d
     field public static final int state_pressed = 16842919; // 0x10100a7
@@ -1346,12 +1347,12 @@
     field public static final int tag = 16842961; // 0x10100d1
     field public static final int targetActivity = 16843266; // 0x1010202
     field public static final int targetClass = 16842799; // 0x101002f
-    field public static final deprecated int targetDescriptions = 16843680; // 0x10103a0
+    field @Deprecated public static final int targetDescriptions = 16843680; // 0x10103a0
     field public static final int targetId = 16843740; // 0x10103dc
     field public static final int targetName = 16843853; // 0x101044d
     field public static final int targetPackage = 16842785; // 0x1010021
     field public static final int targetProcesses = 16844097; // 0x1010541
-    field public static final deprecated int targetSandboxVersion = 16844108; // 0x101054c
+    field @Deprecated public static final int targetSandboxVersion = 16844108; // 0x101054c
     field public static final int targetSdkVersion = 16843376; // 0x1010270
     field public static final int taskAffinity = 16842770; // 0x1010012
     field public static final int taskCloseEnterAnimation = 16842942; // 0x10100be
@@ -1503,7 +1504,7 @@
     field public static final int typeface = 16842902; // 0x1010096
     field public static final int uiOptions = 16843672; // 0x1010398
     field public static final int uncertainGestureColor = 16843382; // 0x1010276
-    field public static final deprecated int unfocusedMonthDateColor = 16843588; // 0x1010344
+    field @Deprecated public static final int unfocusedMonthDateColor = 16843588; // 0x1010344
     field public static final int unselectedAlpha = 16843278; // 0x101020e
     field public static final int updatePeriodMillis = 16843344; // 0x1010250
     field public static final int usageInfoRequired = 16844185; // 0x1010599
@@ -1525,9 +1526,9 @@
     field public static final int versionCodeMajor = 16844150; // 0x1010576
     field public static final int versionMajor = 16844151; // 0x1010577
     field public static final int versionName = 16843292; // 0x101021c
-    field public static final deprecated int verticalCorrection = 16843322; // 0x101023a
+    field @Deprecated public static final int verticalCorrection = 16843322; // 0x101023a
     field public static final int verticalDivider = 16843054; // 0x101012e
-    field public static final deprecated int verticalGap = 16843328; // 0x1010240
+    field @Deprecated public static final int verticalGap = 16843328; // 0x1010240
     field public static final int verticalScrollbarPosition = 16843572; // 0x1010334
     field public static final int verticalSpacing = 16843029; // 0x1010115
     field public static final int viewportHeight = 16843779; // 0x1010403
@@ -1553,8 +1554,8 @@
     field public static final int webTextViewStyle = 16843449; // 0x10102b9
     field public static final int webViewStyle = 16842885; // 0x1010085
     field public static final int weekDayTextAppearance = 16843592; // 0x1010348
-    field public static final deprecated int weekNumberColor = 16843589; // 0x1010345
-    field public static final deprecated int weekSeparatorLineColor = 16843590; // 0x1010346
+    field @Deprecated public static final int weekNumberColor = 16843589; // 0x1010345
+    field @Deprecated public static final int weekSeparatorLineColor = 16843590; // 0x1010346
     field public static final int weightSum = 16843048; // 0x1010128
     field public static final int widgetCategory = 16843716; // 0x10103c4
     field public static final int widgetFeatures = 16844153; // 0x1010579
@@ -1617,8 +1618,8 @@
     field public static final int x = 16842924; // 0x10100ac
     field public static final int xlargeScreens = 16843455; // 0x10102bf
     field public static final int y = 16842925; // 0x10100ad
-    field public static final deprecated int yearListItemTextAppearance = 16843929; // 0x1010499
-    field public static final deprecated int yearListSelectorColor = 16843930; // 0x101049a
+    field @Deprecated public static final int yearListItemTextAppearance = 16843929; // 0x1010499
+    field @Deprecated public static final int yearListSelectorColor = 16843930; // 0x101049a
     field public static final int yesNoPreferenceStyle = 16842896; // 0x1010090
     field public static final int zAdjustment = 16843201; // 0x10101c1
   }
@@ -1643,17 +1644,17 @@
     field public static final int holo_purple = 17170458; // 0x106001a
     field public static final int holo_red_dark = 17170455; // 0x1060017
     field public static final int holo_red_light = 17170454; // 0x1060016
-    field public static final deprecated int primary_text_dark = 17170433; // 0x1060001
-    field public static final deprecated int primary_text_dark_nodisable = 17170434; // 0x1060002
-    field public static final deprecated int primary_text_light = 17170435; // 0x1060003
-    field public static final deprecated int primary_text_light_nodisable = 17170436; // 0x1060004
-    field public static final deprecated int secondary_text_dark = 17170437; // 0x1060005
-    field public static final deprecated int secondary_text_dark_nodisable = 17170438; // 0x1060006
-    field public static final deprecated int secondary_text_light = 17170439; // 0x1060007
-    field public static final deprecated int secondary_text_light_nodisable = 17170440; // 0x1060008
+    field @Deprecated public static final int primary_text_dark = 17170433; // 0x1060001
+    field @Deprecated public static final int primary_text_dark_nodisable = 17170434; // 0x1060002
+    field @Deprecated public static final int primary_text_light = 17170435; // 0x1060003
+    field @Deprecated public static final int primary_text_light_nodisable = 17170436; // 0x1060004
+    field @Deprecated public static final int secondary_text_dark = 17170437; // 0x1060005
+    field @Deprecated public static final int secondary_text_dark_nodisable = 17170438; // 0x1060006
+    field @Deprecated public static final int secondary_text_light = 17170439; // 0x1060007
+    field @Deprecated public static final int secondary_text_light_nodisable = 17170440; // 0x1060008
     field public static final int tab_indicator_text = 17170441; // 0x1060009
-    field public static final deprecated int tertiary_text_dark = 17170448; // 0x1060010
-    field public static final deprecated int tertiary_text_light = 17170449; // 0x1060011
+    field @Deprecated public static final int tertiary_text_dark = 17170448; // 0x1060010
+    field @Deprecated public static final int tertiary_text_light = 17170449; // 0x1060011
     field public static final int transparent = 17170445; // 0x106000d
     field public static final int white = 17170443; // 0x106000b
     field public static final int widget_edittext_dark = 17170442; // 0x106000a
@@ -1823,14 +1824,14 @@
     field public static final int stat_sys_download = 17301633; // 0x1080081
     field public static final int stat_sys_download_done = 17301634; // 0x1080082
     field public static final int stat_sys_headset = 17301635; // 0x1080083
-    field public static final deprecated int stat_sys_phone_call = 17301636; // 0x1080084
-    field public static final deprecated int stat_sys_phone_call_forward = 17301637; // 0x1080085
-    field public static final deprecated int stat_sys_phone_call_on_hold = 17301638; // 0x1080086
+    field @Deprecated public static final int stat_sys_phone_call = 17301636; // 0x1080084
+    field @Deprecated public static final int stat_sys_phone_call_forward = 17301637; // 0x1080085
+    field @Deprecated public static final int stat_sys_phone_call_on_hold = 17301638; // 0x1080086
     field public static final int stat_sys_speakerphone = 17301639; // 0x1080087
     field public static final int stat_sys_upload = 17301640; // 0x1080088
     field public static final int stat_sys_upload_done = 17301641; // 0x1080089
-    field public static final deprecated int stat_sys_vp_phone_call = 17301671; // 0x10800a7
-    field public static final deprecated int stat_sys_vp_phone_call_on_hold = 17301672; // 0x10800a8
+    field @Deprecated public static final int stat_sys_vp_phone_call = 17301671; // 0x10800a7
+    field @Deprecated public static final int stat_sys_vp_phone_call_on_hold = 17301672; // 0x10800a8
     field public static final int stat_sys_warning = 17301642; // 0x108008a
     field public static final int status_bar_item_app_background = 17301643; // 0x108008b
     field public static final int status_bar_item_background = 17301644; // 0x108008c
@@ -1895,7 +1896,7 @@
     field public static final int input = 16908297; // 0x1020009
     field public static final int inputArea = 16908318; // 0x102001e
     field public static final int inputExtractEditText = 16908325; // 0x1020025
-    field public static final deprecated int keyboardView = 16908326; // 0x1020026
+    field @Deprecated public static final int keyboardView = 16908326; // 0x1020026
     field public static final int list = 16908298; // 0x102000a
     field public static final int list_container = 16908351; // 0x102003f
     field public static final int mask = 16908334; // 0x102002e
@@ -2077,13 +2078,13 @@
     field public static final int TextAppearance_DeviceDefault_Widget = 16974265; // 0x10301b9
     field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Menu = 16974286; // 0x10301ce
     field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle = 16974279; // 0x10301c7
-    field public static final deprecated int TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle_Inverse = 16974283; // 0x10301cb
+    field @Deprecated public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle_Inverse = 16974283; // 0x10301cb
     field public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Title = 16974278; // 0x10301c6
-    field public static final deprecated int TextAppearance_DeviceDefault_Widget_ActionBar_Title_Inverse = 16974282; // 0x10301ca
+    field @Deprecated public static final int TextAppearance_DeviceDefault_Widget_ActionBar_Title_Inverse = 16974282; // 0x10301ca
     field public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle = 16974281; // 0x10301c9
-    field public static final deprecated int TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle_Inverse = 16974285; // 0x10301cd
+    field @Deprecated public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle_Inverse = 16974285; // 0x10301cd
     field public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Title = 16974280; // 0x10301c8
-    field public static final deprecated int TextAppearance_DeviceDefault_Widget_ActionMode_Title_Inverse = 16974284; // 0x10301cc
+    field @Deprecated public static final int TextAppearance_DeviceDefault_Widget_ActionMode_Title_Inverse = 16974284; // 0x10301cc
     field public static final int TextAppearance_DeviceDefault_Widget_Button = 16974266; // 0x10301ba
     field public static final int TextAppearance_DeviceDefault_Widget_DropDownHint = 16974271; // 0x10301bf
     field public static final int TextAppearance_DeviceDefault_Widget_DropDownItem = 16974272; // 0x10301c0
@@ -2260,34 +2261,34 @@
     field public static final int Theme_DeviceDefault_Wallpaper = 16974140; // 0x103013c
     field public static final int Theme_DeviceDefault_Wallpaper_NoTitleBar = 16974141; // 0x103013d
     field public static final int Theme_Dialog = 16973835; // 0x103000b
-    field public static final deprecated int Theme_Holo = 16973931; // 0x103006b
-    field public static final deprecated int Theme_Holo_Dialog = 16973935; // 0x103006f
-    field public static final deprecated int Theme_Holo_DialogWhenLarge = 16973943; // 0x1030077
-    field public static final deprecated int Theme_Holo_DialogWhenLarge_NoActionBar = 16973944; // 0x1030078
-    field public static final deprecated int Theme_Holo_Dialog_MinWidth = 16973936; // 0x1030070
-    field public static final deprecated int Theme_Holo_Dialog_NoActionBar = 16973937; // 0x1030071
-    field public static final deprecated int Theme_Holo_Dialog_NoActionBar_MinWidth = 16973938; // 0x1030072
-    field public static final deprecated int Theme_Holo_InputMethod = 16973951; // 0x103007f
-    field public static final deprecated int Theme_Holo_Light = 16973934; // 0x103006e
-    field public static final deprecated int Theme_Holo_Light_DarkActionBar = 16974105; // 0x1030119
-    field public static final deprecated int Theme_Holo_Light_Dialog = 16973939; // 0x1030073
-    field public static final deprecated int Theme_Holo_Light_DialogWhenLarge = 16973945; // 0x1030079
-    field public static final deprecated int Theme_Holo_Light_DialogWhenLarge_NoActionBar = 16973946; // 0x103007a
-    field public static final deprecated int Theme_Holo_Light_Dialog_MinWidth = 16973940; // 0x1030074
-    field public static final deprecated int Theme_Holo_Light_Dialog_NoActionBar = 16973941; // 0x1030075
-    field public static final deprecated int Theme_Holo_Light_Dialog_NoActionBar_MinWidth = 16973942; // 0x1030076
-    field public static final deprecated int Theme_Holo_Light_NoActionBar = 16974064; // 0x10300f0
-    field public static final deprecated int Theme_Holo_Light_NoActionBar_Fullscreen = 16974065; // 0x10300f1
-    field public static final deprecated int Theme_Holo_Light_NoActionBar_Overscan = 16974302; // 0x10301de
-    field public static final deprecated int Theme_Holo_Light_NoActionBar_TranslucentDecor = 16974306; // 0x10301e2
-    field public static final deprecated int Theme_Holo_Light_Panel = 16973948; // 0x103007c
-    field public static final deprecated int Theme_Holo_NoActionBar = 16973932; // 0x103006c
-    field public static final deprecated int Theme_Holo_NoActionBar_Fullscreen = 16973933; // 0x103006d
-    field public static final deprecated int Theme_Holo_NoActionBar_Overscan = 16974301; // 0x10301dd
-    field public static final deprecated int Theme_Holo_NoActionBar_TranslucentDecor = 16974305; // 0x10301e1
-    field public static final deprecated int Theme_Holo_Panel = 16973947; // 0x103007b
-    field public static final deprecated int Theme_Holo_Wallpaper = 16973949; // 0x103007d
-    field public static final deprecated int Theme_Holo_Wallpaper_NoTitleBar = 16973950; // 0x103007e
+    field @Deprecated public static final int Theme_Holo = 16973931; // 0x103006b
+    field @Deprecated public static final int Theme_Holo_Dialog = 16973935; // 0x103006f
+    field @Deprecated public static final int Theme_Holo_DialogWhenLarge = 16973943; // 0x1030077
+    field @Deprecated public static final int Theme_Holo_DialogWhenLarge_NoActionBar = 16973944; // 0x1030078
+    field @Deprecated public static final int Theme_Holo_Dialog_MinWidth = 16973936; // 0x1030070
+    field @Deprecated public static final int Theme_Holo_Dialog_NoActionBar = 16973937; // 0x1030071
+    field @Deprecated public static final int Theme_Holo_Dialog_NoActionBar_MinWidth = 16973938; // 0x1030072
+    field @Deprecated public static final int Theme_Holo_InputMethod = 16973951; // 0x103007f
+    field @Deprecated public static final int Theme_Holo_Light = 16973934; // 0x103006e
+    field @Deprecated public static final int Theme_Holo_Light_DarkActionBar = 16974105; // 0x1030119
+    field @Deprecated public static final int Theme_Holo_Light_Dialog = 16973939; // 0x1030073
+    field @Deprecated public static final int Theme_Holo_Light_DialogWhenLarge = 16973945; // 0x1030079
+    field @Deprecated public static final int Theme_Holo_Light_DialogWhenLarge_NoActionBar = 16973946; // 0x103007a
+    field @Deprecated public static final int Theme_Holo_Light_Dialog_MinWidth = 16973940; // 0x1030074
+    field @Deprecated public static final int Theme_Holo_Light_Dialog_NoActionBar = 16973941; // 0x1030075
+    field @Deprecated public static final int Theme_Holo_Light_Dialog_NoActionBar_MinWidth = 16973942; // 0x1030076
+    field @Deprecated public static final int Theme_Holo_Light_NoActionBar = 16974064; // 0x10300f0
+    field @Deprecated public static final int Theme_Holo_Light_NoActionBar_Fullscreen = 16974065; // 0x10300f1
+    field @Deprecated public static final int Theme_Holo_Light_NoActionBar_Overscan = 16974302; // 0x10301de
+    field @Deprecated public static final int Theme_Holo_Light_NoActionBar_TranslucentDecor = 16974306; // 0x10301e2
+    field @Deprecated public static final int Theme_Holo_Light_Panel = 16973948; // 0x103007c
+    field @Deprecated public static final int Theme_Holo_NoActionBar = 16973932; // 0x103006c
+    field @Deprecated public static final int Theme_Holo_NoActionBar_Fullscreen = 16973933; // 0x103006d
+    field @Deprecated public static final int Theme_Holo_NoActionBar_Overscan = 16974301; // 0x10301dd
+    field @Deprecated public static final int Theme_Holo_NoActionBar_TranslucentDecor = 16974305; // 0x10301e1
+    field @Deprecated public static final int Theme_Holo_Panel = 16973947; // 0x103007b
+    field @Deprecated public static final int Theme_Holo_Wallpaper = 16973949; // 0x103007d
+    field @Deprecated public static final int Theme_Holo_Wallpaper_NoTitleBar = 16973950; // 0x103007e
     field public static final int Theme_InputMethod = 16973908; // 0x1030054
     field public static final int Theme_Light = 16973836; // 0x103000c
     field public static final int Theme_Light_NoTitleBar = 16973837; // 0x103000d
@@ -2401,18 +2402,18 @@
     field public static final int Widget_DeviceDefault_Light = 16974196; // 0x1030174
     field public static final int Widget_DeviceDefault_Light_ActionBar = 16974243; // 0x10301a3
     field public static final int Widget_DeviceDefault_Light_ActionBar_Solid = 16974247; // 0x10301a7
-    field public static final deprecated int Widget_DeviceDefault_Light_ActionBar_Solid_Inverse = 16974248; // 0x10301a8
+    field @Deprecated public static final int Widget_DeviceDefault_Light_ActionBar_Solid_Inverse = 16974248; // 0x10301a8
     field public static final int Widget_DeviceDefault_Light_ActionBar_TabBar = 16974246; // 0x10301a6
-    field public static final deprecated int Widget_DeviceDefault_Light_ActionBar_TabBar_Inverse = 16974249; // 0x10301a9
+    field @Deprecated public static final int Widget_DeviceDefault_Light_ActionBar_TabBar_Inverse = 16974249; // 0x10301a9
     field public static final int Widget_DeviceDefault_Light_ActionBar_TabText = 16974245; // 0x10301a5
-    field public static final deprecated int Widget_DeviceDefault_Light_ActionBar_TabText_Inverse = 16974251; // 0x10301ab
+    field @Deprecated public static final int Widget_DeviceDefault_Light_ActionBar_TabText_Inverse = 16974251; // 0x10301ab
     field public static final int Widget_DeviceDefault_Light_ActionBar_TabView = 16974244; // 0x10301a4
-    field public static final deprecated int Widget_DeviceDefault_Light_ActionBar_TabView_Inverse = 16974250; // 0x10301aa
+    field @Deprecated public static final int Widget_DeviceDefault_Light_ActionBar_TabView_Inverse = 16974250; // 0x10301aa
     field public static final int Widget_DeviceDefault_Light_ActionButton = 16974239; // 0x103019f
     field public static final int Widget_DeviceDefault_Light_ActionButton_CloseMode = 16974242; // 0x10301a2
     field public static final int Widget_DeviceDefault_Light_ActionButton_Overflow = 16974240; // 0x10301a0
     field public static final int Widget_DeviceDefault_Light_ActionMode = 16974241; // 0x10301a1
-    field public static final deprecated int Widget_DeviceDefault_Light_ActionMode_Inverse = 16974252; // 0x10301ac
+    field @Deprecated public static final int Widget_DeviceDefault_Light_ActionMode_Inverse = 16974252; // 0x10301ac
     field public static final int Widget_DeviceDefault_Light_AutoCompleteTextView = 16974203; // 0x103017b
     field public static final int Widget_DeviceDefault_Light_Button = 16974197; // 0x1030175
     field public static final int Widget_DeviceDefault_Light_Button_Borderless_Small = 16974201; // 0x1030179
@@ -2606,7 +2607,7 @@
     field public static final int Widget_Holo_WebView = 16973993; // 0x10300a9
     field public static final int Widget_ImageButton = 16973862; // 0x1030026
     field public static final int Widget_ImageWell = 16973861; // 0x1030025
-    field public static final deprecated int Widget_KeyboardView = 16973911; // 0x1030057
+    field @Deprecated public static final int Widget_KeyboardView = 16973911; // 0x1030057
     field public static final int Widget_ListPopupWindow = 16973957; // 0x1030085
     field public static final int Widget_ListView = 16973870; // 0x103002e
     field public static final int Widget_ListView_DropDown = 16973872; // 0x1030030
@@ -2795,12 +2796,12 @@
 
   public final class AccessibilityButtonController {
     method public boolean isAccessibilityButtonAvailable();
-    method public void registerAccessibilityButtonCallback(android.accessibilityservice.AccessibilityButtonController.AccessibilityButtonCallback);
-    method public void registerAccessibilityButtonCallback(android.accessibilityservice.AccessibilityButtonController.AccessibilityButtonCallback, android.os.Handler);
-    method public void unregisterAccessibilityButtonCallback(android.accessibilityservice.AccessibilityButtonController.AccessibilityButtonCallback);
+    method public void registerAccessibilityButtonCallback(@NonNull android.accessibilityservice.AccessibilityButtonController.AccessibilityButtonCallback);
+    method public void registerAccessibilityButtonCallback(@NonNull android.accessibilityservice.AccessibilityButtonController.AccessibilityButtonCallback, @NonNull android.os.Handler);
+    method public void unregisterAccessibilityButtonCallback(@NonNull android.accessibilityservice.AccessibilityButtonController.AccessibilityButtonCallback);
   }
 
-  public static abstract class AccessibilityButtonController.AccessibilityButtonCallback {
+  public abstract static class AccessibilityButtonController.AccessibilityButtonCallback {
     ctor public AccessibilityButtonController.AccessibilityButtonCallback();
     method public void onAvailabilityChanged(android.accessibilityservice.AccessibilityButtonController, boolean);
     method public void onClicked(android.accessibilityservice.AccessibilityButtonController);
@@ -2809,14 +2810,14 @@
   public abstract class AccessibilityService extends android.app.Service {
     ctor public AccessibilityService();
     method public final void disableSelf();
-    method public final boolean dispatchGesture(android.accessibilityservice.GestureDescription, android.accessibilityservice.AccessibilityService.GestureResultCallback, android.os.Handler);
+    method public final boolean dispatchGesture(@NonNull android.accessibilityservice.GestureDescription, @Nullable android.accessibilityservice.AccessibilityService.GestureResultCallback, @Nullable android.os.Handler);
     method public android.view.accessibility.AccessibilityNodeInfo findFocus(int);
-    method public final android.accessibilityservice.AccessibilityButtonController getAccessibilityButtonController();
-    method public final android.accessibilityservice.FingerprintGestureController getFingerprintGestureController();
-    method public final android.accessibilityservice.AccessibilityService.MagnificationController getMagnificationController();
+    method @NonNull public final android.accessibilityservice.AccessibilityButtonController getAccessibilityButtonController();
+    method @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) @NonNull public final android.accessibilityservice.FingerprintGestureController getFingerprintGestureController();
+    method @NonNull public final android.accessibilityservice.AccessibilityService.MagnificationController getMagnificationController();
     method public android.view.accessibility.AccessibilityNodeInfo getRootInActiveWindow();
     method public final android.accessibilityservice.AccessibilityServiceInfo getServiceInfo();
-    method public final android.accessibilityservice.AccessibilityService.SoftKeyboardController getSoftKeyboardController();
+    method @NonNull public final android.accessibilityservice.AccessibilityService.SoftKeyboardController getSoftKeyboardController();
     method public java.util.List<android.view.accessibility.AccessibilityWindowInfo> getWindows();
     method public abstract void onAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
     method public final android.os.IBinder onBind(android.content.Intent);
@@ -2851,70 +2852,70 @@
     field public static final int GLOBAL_ACTION_RECENTS = 3; // 0x3
     field public static final int GLOBAL_ACTION_TAKE_SCREENSHOT = 9; // 0x9
     field public static final int GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN = 7; // 0x7
-    field public static final java.lang.String SERVICE_INTERFACE = "android.accessibilityservice.AccessibilityService";
-    field public static final java.lang.String SERVICE_META_DATA = "android.accessibilityservice";
+    field public static final String SERVICE_INTERFACE = "android.accessibilityservice.AccessibilityService";
+    field public static final String SERVICE_META_DATA = "android.accessibilityservice";
     field public static final int SHOW_MODE_AUTO = 0; // 0x0
     field public static final int SHOW_MODE_HIDDEN = 1; // 0x1
     field public static final int SHOW_MODE_IGNORE_HARD_KEYBOARD = 2; // 0x2
   }
 
-  public static abstract class AccessibilityService.GestureResultCallback {
+  public abstract static class AccessibilityService.GestureResultCallback {
     ctor public AccessibilityService.GestureResultCallback();
     method public void onCancelled(android.accessibilityservice.GestureDescription);
     method public void onCompleted(android.accessibilityservice.GestureDescription);
   }
 
   public static final class AccessibilityService.MagnificationController {
-    method public void addListener(android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener);
-    method public void addListener(android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener, android.os.Handler);
+    method public void addListener(@NonNull android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener);
+    method public void addListener(@NonNull android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener, @Nullable android.os.Handler);
     method public float getCenterX();
     method public float getCenterY();
-    method public android.graphics.Region getMagnificationRegion();
+    method @NonNull public android.graphics.Region getMagnificationRegion();
     method public float getScale();
-    method public boolean removeListener(android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener);
+    method public boolean removeListener(@NonNull android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener);
     method public boolean reset(boolean);
     method public boolean setCenter(float, float, boolean);
     method public boolean setScale(float, boolean);
   }
 
-  public static abstract interface AccessibilityService.MagnificationController.OnMagnificationChangedListener {
-    method public abstract void onMagnificationChanged(android.accessibilityservice.AccessibilityService.MagnificationController, android.graphics.Region, float, float, float);
+  public static interface AccessibilityService.MagnificationController.OnMagnificationChangedListener {
+    method public void onMagnificationChanged(@NonNull android.accessibilityservice.AccessibilityService.MagnificationController, @NonNull android.graphics.Region, float, float, float);
   }
 
   public static final class AccessibilityService.SoftKeyboardController {
-    method public void addOnShowModeChangedListener(android.accessibilityservice.AccessibilityService.SoftKeyboardController.OnShowModeChangedListener);
-    method public void addOnShowModeChangedListener(android.accessibilityservice.AccessibilityService.SoftKeyboardController.OnShowModeChangedListener, android.os.Handler);
+    method public void addOnShowModeChangedListener(@NonNull android.accessibilityservice.AccessibilityService.SoftKeyboardController.OnShowModeChangedListener);
+    method public void addOnShowModeChangedListener(@NonNull android.accessibilityservice.AccessibilityService.SoftKeyboardController.OnShowModeChangedListener, @Nullable android.os.Handler);
     method public int getShowMode();
-    method public boolean removeOnShowModeChangedListener(android.accessibilityservice.AccessibilityService.SoftKeyboardController.OnShowModeChangedListener);
+    method public boolean removeOnShowModeChangedListener(@NonNull android.accessibilityservice.AccessibilityService.SoftKeyboardController.OnShowModeChangedListener);
     method public boolean setShowMode(int);
   }
 
-  public static abstract interface AccessibilityService.SoftKeyboardController.OnShowModeChangedListener {
-    method public abstract void onShowModeChanged(android.accessibilityservice.AccessibilityService.SoftKeyboardController, int);
+  public static interface AccessibilityService.SoftKeyboardController.OnShowModeChangedListener {
+    method public void onShowModeChanged(@NonNull android.accessibilityservice.AccessibilityService.SoftKeyboardController, int);
   }
 
   public class AccessibilityServiceInfo implements android.os.Parcelable {
     ctor public AccessibilityServiceInfo();
-    method public static java.lang.String capabilityToString(int);
+    method public static String capabilityToString(int);
     method public int describeContents();
-    method public static java.lang.String feedbackTypeToString(int);
-    method public static java.lang.String flagToString(int);
-    method public deprecated boolean getCanRetrieveWindowContent();
+    method public static String feedbackTypeToString(int);
+    method public static String flagToString(int);
+    method @Deprecated public boolean getCanRetrieveWindowContent();
     method public int getCapabilities();
-    method public deprecated java.lang.String getDescription();
-    method public java.lang.String getId();
+    method @Deprecated public String getDescription();
+    method public String getId();
     method public int getInteractiveUiTimeoutMillis();
     method public int getNonInteractiveUiTimeoutMillis();
     method public android.content.pm.ResolveInfo getResolveInfo();
-    method public java.lang.String getSettingsActivityName();
-    method public java.lang.String loadDescription(android.content.pm.PackageManager);
-    method public java.lang.CharSequence loadSummary(android.content.pm.PackageManager);
-    method public void setInteractiveUiTimeoutMillis(int);
-    method public void setNonInteractiveUiTimeoutMillis(int);
+    method public String getSettingsActivityName();
+    method public String loadDescription(android.content.pm.PackageManager);
+    method public CharSequence loadSummary(android.content.pm.PackageManager);
+    method public void setInteractiveUiTimeoutMillis(@IntRange(from=0) int);
+    method public void setNonInteractiveUiTimeoutMillis(@IntRange(from=0) int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CAPABILITY_CAN_CONTROL_MAGNIFICATION = 16; // 0x10
     field public static final int CAPABILITY_CAN_PERFORM_GESTURES = 32; // 0x20
-    field public static final deprecated int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
+    field @Deprecated public static final int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
     field public static final int CAPABILITY_CAN_REQUEST_FILTER_KEY_EVENTS = 8; // 0x8
     field public static final int CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES = 64; // 0x40
     field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
@@ -2932,7 +2933,7 @@
     field public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 2; // 0x2
     field public static final int FLAG_REPORT_VIEW_IDS = 16; // 0x10
     field public static final int FLAG_REQUEST_ACCESSIBILITY_BUTTON = 256; // 0x100
-    field public static final deprecated int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 8; // 0x8
+    field @Deprecated public static final int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 8; // 0x8
     field public static final int FLAG_REQUEST_FILTER_KEY_EVENTS = 32; // 0x20
     field public static final int FLAG_REQUEST_FINGERPRINT_GESTURES = 512; // 0x200
     field public static final int FLAG_REQUEST_SHORTCUT_WARNING_DIALOG_SPOKEN_FEEDBACK = 1024; // 0x400
@@ -2942,12 +2943,12 @@
     field public int feedbackType;
     field public int flags;
     field public long notificationTimeout;
-    field public java.lang.String[] packageNames;
+    field public String[] packageNames;
   }
 
   public final class FingerprintGestureController {
     method public boolean isGestureDetectionAvailable();
-    method public void registerFingerprintGestureCallback(android.accessibilityservice.FingerprintGestureController.FingerprintGestureCallback, android.os.Handler);
+    method public void registerFingerprintGestureCallback(@NonNull android.accessibilityservice.FingerprintGestureController.FingerprintGestureCallback, @Nullable android.os.Handler);
     method public void unregisterFingerprintGestureCallback(android.accessibilityservice.FingerprintGestureController.FingerprintGestureCallback);
     field public static final int FINGERPRINT_GESTURE_SWIPE_DOWN = 8; // 0x8
     field public static final int FINGERPRINT_GESTURE_SWIPE_LEFT = 2; // 0x2
@@ -2955,7 +2956,7 @@
     field public static final int FINGERPRINT_GESTURE_SWIPE_UP = 4; // 0x4
   }
 
-  public static abstract class FingerprintGestureController.FingerprintGestureCallback {
+  public abstract static class FingerprintGestureController.FingerprintGestureCallback {
     ctor public FingerprintGestureController.FingerprintGestureCallback();
     method public void onGestureDetected(int);
     method public void onGestureDetectionAvailabilityChanged(boolean);
@@ -2964,19 +2965,19 @@
   public final class GestureDescription {
     method public static long getMaxGestureDuration();
     method public static int getMaxStrokeCount();
-    method public android.accessibilityservice.GestureDescription.StrokeDescription getStroke(int);
+    method public android.accessibilityservice.GestureDescription.StrokeDescription getStroke(@IntRange(from=0) int);
     method public int getStrokeCount();
   }
 
   public static class GestureDescription.Builder {
     ctor public GestureDescription.Builder();
-    method public android.accessibilityservice.GestureDescription.Builder addStroke(android.accessibilityservice.GestureDescription.StrokeDescription);
+    method public android.accessibilityservice.GestureDescription.Builder addStroke(@NonNull android.accessibilityservice.GestureDescription.StrokeDescription);
     method public android.accessibilityservice.GestureDescription build();
   }
 
   public static class GestureDescription.StrokeDescription {
-    ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long);
-    ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long, boolean);
+    ctor public GestureDescription.StrokeDescription(@NonNull android.graphics.Path, @IntRange(from=0) long, @IntRange(from=0) long);
+    ctor public GestureDescription.StrokeDescription(@NonNull android.graphics.Path, @IntRange(from=0) long, @IntRange(from=0) long, boolean);
     method public android.accessibilityservice.GestureDescription.StrokeDescription continueStroke(android.graphics.Path, long, long, boolean);
     method public long getDuration();
     method public android.graphics.Path getPath();
@@ -2990,32 +2991,32 @@
 
   public abstract class AbstractAccountAuthenticator {
     ctor public AbstractAccountAuthenticator(android.content.Context);
-    method public abstract android.os.Bundle addAccount(android.accounts.AccountAuthenticatorResponse, java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle) throws android.accounts.NetworkErrorException;
+    method public abstract android.os.Bundle addAccount(android.accounts.AccountAuthenticatorResponse, String, String, String[], android.os.Bundle) throws android.accounts.NetworkErrorException;
     method public android.os.Bundle addAccountFromCredentials(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, android.os.Bundle) throws android.accounts.NetworkErrorException;
     method public abstract android.os.Bundle confirmCredentials(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, android.os.Bundle) throws android.accounts.NetworkErrorException;
-    method public abstract android.os.Bundle editProperties(android.accounts.AccountAuthenticatorResponse, java.lang.String);
-    method public android.os.Bundle finishSession(android.accounts.AccountAuthenticatorResponse, java.lang.String, android.os.Bundle) throws android.accounts.NetworkErrorException;
+    method public abstract android.os.Bundle editProperties(android.accounts.AccountAuthenticatorResponse, String);
+    method public android.os.Bundle finishSession(android.accounts.AccountAuthenticatorResponse, String, android.os.Bundle) throws android.accounts.NetworkErrorException;
     method public android.os.Bundle getAccountCredentialsForCloning(android.accounts.AccountAuthenticatorResponse, android.accounts.Account) throws android.accounts.NetworkErrorException;
     method public android.os.Bundle getAccountRemovalAllowed(android.accounts.AccountAuthenticatorResponse, android.accounts.Account) throws android.accounts.NetworkErrorException;
-    method public abstract android.os.Bundle getAuthToken(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, java.lang.String, android.os.Bundle) throws android.accounts.NetworkErrorException;
-    method public abstract java.lang.String getAuthTokenLabel(java.lang.String);
+    method public abstract android.os.Bundle getAuthToken(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, String, android.os.Bundle) throws android.accounts.NetworkErrorException;
+    method public abstract String getAuthTokenLabel(String);
     method public final android.os.IBinder getIBinder();
-    method public abstract android.os.Bundle hasFeatures(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, java.lang.String[]) throws android.accounts.NetworkErrorException;
-    method public android.os.Bundle isCredentialsUpdateSuggested(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, java.lang.String) throws android.accounts.NetworkErrorException;
-    method public android.os.Bundle startAddAccountSession(android.accounts.AccountAuthenticatorResponse, java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle) throws android.accounts.NetworkErrorException;
-    method public android.os.Bundle startUpdateCredentialsSession(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, java.lang.String, android.os.Bundle) throws android.accounts.NetworkErrorException;
-    method public abstract android.os.Bundle updateCredentials(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, java.lang.String, android.os.Bundle) throws android.accounts.NetworkErrorException;
-    field public static final java.lang.String KEY_CUSTOM_TOKEN_EXPIRY = "android.accounts.expiry";
+    method public abstract android.os.Bundle hasFeatures(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, String[]) throws android.accounts.NetworkErrorException;
+    method public android.os.Bundle isCredentialsUpdateSuggested(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, String) throws android.accounts.NetworkErrorException;
+    method public android.os.Bundle startAddAccountSession(android.accounts.AccountAuthenticatorResponse, String, String, String[], android.os.Bundle) throws android.accounts.NetworkErrorException;
+    method public android.os.Bundle startUpdateCredentialsSession(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, String, android.os.Bundle) throws android.accounts.NetworkErrorException;
+    method public abstract android.os.Bundle updateCredentials(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, String, android.os.Bundle) throws android.accounts.NetworkErrorException;
+    field public static final String KEY_CUSTOM_TOKEN_EXPIRY = "android.accounts.expiry";
   }
 
   public class Account implements android.os.Parcelable {
-    ctor public Account(java.lang.String, java.lang.String);
+    ctor public Account(String, String);
     ctor public Account(android.os.Parcel);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.accounts.Account> CREATOR;
-    field public final java.lang.String name;
-    field public final java.lang.String type;
+    field public final String name;
+    field public final String type;
   }
 
   public class AccountAuthenticatorActivity extends android.app.Activity {
@@ -3026,7 +3027,7 @@
   public class AccountAuthenticatorResponse implements android.os.Parcelable {
     ctor public AccountAuthenticatorResponse(android.os.Parcel);
     method public int describeContents();
-    method public void onError(int, java.lang.String);
+    method public void onError(int, String);
     method public void onRequestContinued();
     method public void onResult(android.os.Bundle);
     method public void writeToParcel(android.os.Parcel, int);
@@ -3034,55 +3035,55 @@
   }
 
   public class AccountManager {
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> addAccount(java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
-    method public boolean addAccountExplicitly(android.accounts.Account, java.lang.String, android.os.Bundle);
-    method public boolean addAccountExplicitly(android.accounts.Account, java.lang.String, android.os.Bundle, java.util.Map<java.lang.String, java.lang.Integer>);
-    method public void addOnAccountsUpdatedListener(android.accounts.OnAccountsUpdateListener, android.os.Handler, boolean);
-    method public void addOnAccountsUpdatedListener(android.accounts.OnAccountsUpdateListener, android.os.Handler, boolean, java.lang.String[]);
-    method public java.lang.String blockingGetAuthToken(android.accounts.Account, java.lang.String, boolean) throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException;
-    method public void clearPassword(android.accounts.Account);
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> confirmCredentials(android.accounts.Account, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> editProperties(java.lang.String, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method @RequiresPermission(value="android.permission.MANAGE_ACCOUNTS", apis="..22") public android.accounts.AccountManagerFuture<android.os.Bundle> addAccount(String, String, String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method @RequiresPermission(value="android.permission.AUTHENTICATE_ACCOUNTS", apis="..22") public boolean addAccountExplicitly(android.accounts.Account, String, android.os.Bundle);
+    method public boolean addAccountExplicitly(android.accounts.Account, String, android.os.Bundle, java.util.Map<java.lang.String,java.lang.Integer>);
+    method @RequiresPermission(value="android.permission.GET_ACCOUNTS", apis="..22") public void addOnAccountsUpdatedListener(android.accounts.OnAccountsUpdateListener, android.os.Handler, boolean);
+    method public void addOnAccountsUpdatedListener(android.accounts.OnAccountsUpdateListener, android.os.Handler, boolean, String[]);
+    method @RequiresPermission(value="android.permission.USE_CREDENTIALS", apis="..22") public String blockingGetAuthToken(android.accounts.Account, String, boolean) throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException;
+    method @RequiresPermission(value="android.permission.MANAGE_ACCOUNTS", apis="..22") public void clearPassword(android.accounts.Account);
+    method @RequiresPermission(value="android.permission.MANAGE_ACCOUNTS", apis="..22") public android.accounts.AccountManagerFuture<android.os.Bundle> confirmCredentials(android.accounts.Account, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method @RequiresPermission(value="android.permission.MANAGE_ACCOUNTS", apis="..22") public android.accounts.AccountManagerFuture<android.os.Bundle> editProperties(String, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
     method public android.accounts.AccountManagerFuture<android.os.Bundle> finishSession(android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
     method public static android.accounts.AccountManager get(android.content.Context);
-    method public int getAccountVisibility(android.accounts.Account, java.lang.String);
-    method public android.accounts.Account[] getAccounts();
-    method public java.util.Map<android.accounts.Account, java.lang.Integer> getAccountsAndVisibilityForPackage(java.lang.String, java.lang.String);
-    method public android.accounts.Account[] getAccountsByType(java.lang.String);
-    method public android.accounts.AccountManagerFuture<android.accounts.Account[]> getAccountsByTypeAndFeatures(java.lang.String, java.lang.String[], android.accounts.AccountManagerCallback<android.accounts.Account[]>, android.os.Handler);
-    method public android.accounts.Account[] getAccountsByTypeForPackage(java.lang.String, java.lang.String);
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> getAuthToken(android.accounts.Account, java.lang.String, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
-    method public deprecated android.accounts.AccountManagerFuture<android.os.Bundle> getAuthToken(android.accounts.Account, java.lang.String, boolean, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> getAuthToken(android.accounts.Account, java.lang.String, android.os.Bundle, boolean, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> getAuthTokenByFeatures(java.lang.String, java.lang.String, java.lang.String[], android.app.Activity, android.os.Bundle, android.os.Bundle, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method public int getAccountVisibility(android.accounts.Account, String);
+    method @NonNull @RequiresPermission(value="android.permission.GET_ACCOUNTS", apis="..22") public android.accounts.Account[] getAccounts();
+    method public java.util.Map<android.accounts.Account,java.lang.Integer> getAccountsAndVisibilityForPackage(String, String);
+    method @NonNull @RequiresPermission(value="android.permission.GET_ACCOUNTS", apis="..22") public android.accounts.Account[] getAccountsByType(String);
+    method public android.accounts.AccountManagerFuture<android.accounts.Account[]> getAccountsByTypeAndFeatures(String, String[], android.accounts.AccountManagerCallback<android.accounts.Account[]>, android.os.Handler);
+    method @NonNull public android.accounts.Account[] getAccountsByTypeForPackage(String, String);
+    method @RequiresPermission(value="android.permission.USE_CREDENTIALS", apis="..22") public android.accounts.AccountManagerFuture<android.os.Bundle> getAuthToken(android.accounts.Account, String, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method @Deprecated @RequiresPermission(value="android.permission.USE_CREDENTIALS", apis="..22") public android.accounts.AccountManagerFuture<android.os.Bundle> getAuthToken(android.accounts.Account, String, boolean, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method @RequiresPermission(value="android.permission.USE_CREDENTIALS", apis="..22") public android.accounts.AccountManagerFuture<android.os.Bundle> getAuthToken(android.accounts.Account, String, android.os.Bundle, boolean, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method @RequiresPermission(value="android.permission.MANAGE_ACCOUNTS", apis="..22") public android.accounts.AccountManagerFuture<android.os.Bundle> getAuthTokenByFeatures(String, String, String[], android.app.Activity, android.os.Bundle, android.os.Bundle, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
     method public android.accounts.AuthenticatorDescription[] getAuthenticatorTypes();
-    method public java.util.Map<java.lang.String, java.lang.Integer> getPackagesAndVisibilityForAccount(android.accounts.Account);
-    method public java.lang.String getPassword(android.accounts.Account);
-    method public java.lang.String getPreviousName(android.accounts.Account);
-    method public java.lang.String getUserData(android.accounts.Account, java.lang.String);
-    method public android.accounts.AccountManagerFuture<java.lang.Boolean> hasFeatures(android.accounts.Account, java.lang.String[], android.accounts.AccountManagerCallback<java.lang.Boolean>, android.os.Handler);
-    method public void invalidateAuthToken(java.lang.String, java.lang.String);
-    method public android.accounts.AccountManagerFuture<java.lang.Boolean> isCredentialsUpdateSuggested(android.accounts.Account, java.lang.String, android.accounts.AccountManagerCallback<java.lang.Boolean>, android.os.Handler);
-    method public static deprecated android.content.Intent newChooseAccountIntent(android.accounts.Account, java.util.ArrayList<android.accounts.Account>, java.lang.String[], boolean, java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle);
-    method public static android.content.Intent newChooseAccountIntent(android.accounts.Account, java.util.List<android.accounts.Account>, java.lang.String[], java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle);
-    method public boolean notifyAccountAuthenticated(android.accounts.Account);
-    method public java.lang.String peekAuthToken(android.accounts.Account, java.lang.String);
-    method public deprecated android.accounts.AccountManagerFuture<java.lang.Boolean> removeAccount(android.accounts.Account, android.accounts.AccountManagerCallback<java.lang.Boolean>, android.os.Handler);
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> removeAccount(android.accounts.Account, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
-    method public boolean removeAccountExplicitly(android.accounts.Account);
+    method public java.util.Map<java.lang.String,java.lang.Integer> getPackagesAndVisibilityForAccount(android.accounts.Account);
+    method @RequiresPermission(value="android.permission.AUTHENTICATE_ACCOUNTS", apis="..22") public String getPassword(android.accounts.Account);
+    method public String getPreviousName(android.accounts.Account);
+    method @RequiresPermission(value="android.permission.AUTHENTICATE_ACCOUNTS", apis="..22") public String getUserData(android.accounts.Account, String);
+    method public android.accounts.AccountManagerFuture<java.lang.Boolean> hasFeatures(android.accounts.Account, String[], android.accounts.AccountManagerCallback<java.lang.Boolean>, android.os.Handler);
+    method @RequiresPermission(anyOf={"android.permission.MANAGE_ACCOUNTS", "android.permission.USE_CREDENTIALS"}, apis="..22") public void invalidateAuthToken(String, String);
+    method public android.accounts.AccountManagerFuture<java.lang.Boolean> isCredentialsUpdateSuggested(android.accounts.Account, String, android.accounts.AccountManagerCallback<java.lang.Boolean>, android.os.Handler);
+    method @Deprecated public static android.content.Intent newChooseAccountIntent(android.accounts.Account, java.util.ArrayList<android.accounts.Account>, String[], boolean, String, String, String[], android.os.Bundle);
+    method public static android.content.Intent newChooseAccountIntent(android.accounts.Account, java.util.List<android.accounts.Account>, String[], String, String, String[], android.os.Bundle);
+    method @RequiresPermission(value="android.permission.AUTHENTICATE_ACCOUNTS", apis="..22") public boolean notifyAccountAuthenticated(android.accounts.Account);
+    method @RequiresPermission(value="android.permission.AUTHENTICATE_ACCOUNTS", apis="..22") public String peekAuthToken(android.accounts.Account, String);
+    method @Deprecated @RequiresPermission(value="android.permission.MANAGE_ACCOUNTS", apis="..22") public android.accounts.AccountManagerFuture<java.lang.Boolean> removeAccount(android.accounts.Account, android.accounts.AccountManagerCallback<java.lang.Boolean>, android.os.Handler);
+    method @RequiresPermission(value="android.permission.MANAGE_ACCOUNTS", apis="..22") public android.accounts.AccountManagerFuture<android.os.Bundle> removeAccount(android.accounts.Account, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method @RequiresPermission(value="android.permission.AUTHENTICATE_ACCOUNTS", apis="..22") public boolean removeAccountExplicitly(android.accounts.Account);
     method public void removeOnAccountsUpdatedListener(android.accounts.OnAccountsUpdateListener);
-    method public android.accounts.AccountManagerFuture<android.accounts.Account> renameAccount(android.accounts.Account, java.lang.String, android.accounts.AccountManagerCallback<android.accounts.Account>, android.os.Handler);
-    method public boolean setAccountVisibility(android.accounts.Account, java.lang.String, int);
-    method public void setAuthToken(android.accounts.Account, java.lang.String, java.lang.String);
-    method public void setPassword(android.accounts.Account, java.lang.String);
-    method public void setUserData(android.accounts.Account, java.lang.String, java.lang.String);
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> startAddAccountSession(java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> startUpdateCredentialsSession(android.accounts.Account, java.lang.String, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> updateCredentials(android.accounts.Account, java.lang.String, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
-    field public static final java.lang.String ACTION_ACCOUNT_REMOVED = "android.accounts.action.ACCOUNT_REMOVED";
-    field public static final java.lang.String ACTION_AUTHENTICATOR_INTENT = "android.accounts.AccountAuthenticator";
-    field public static final java.lang.String AUTHENTICATOR_ATTRIBUTES_NAME = "account-authenticator";
-    field public static final java.lang.String AUTHENTICATOR_META_DATA_NAME = "android.accounts.AccountAuthenticator";
+    method @RequiresPermission(value="android.permission.AUTHENTICATE_ACCOUNTS", apis="..22") public android.accounts.AccountManagerFuture<android.accounts.Account> renameAccount(android.accounts.Account, @Size(min=1) String, android.accounts.AccountManagerCallback<android.accounts.Account>, android.os.Handler);
+    method public boolean setAccountVisibility(android.accounts.Account, String, int);
+    method @RequiresPermission(value="android.permission.AUTHENTICATE_ACCOUNTS", apis="..22") public void setAuthToken(android.accounts.Account, String, String);
+    method @RequiresPermission(value="android.permission.AUTHENTICATE_ACCOUNTS", apis="..22") public void setPassword(android.accounts.Account, String);
+    method @RequiresPermission(value="android.permission.AUTHENTICATE_ACCOUNTS", apis="..22") public void setUserData(android.accounts.Account, String, String);
+    method public android.accounts.AccountManagerFuture<android.os.Bundle> startAddAccountSession(String, String, String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method public android.accounts.AccountManagerFuture<android.os.Bundle> startUpdateCredentialsSession(android.accounts.Account, String, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method @RequiresPermission(value="android.permission.MANAGE_ACCOUNTS", apis="..22") public android.accounts.AccountManagerFuture<android.os.Bundle> updateCredentials(android.accounts.Account, String, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    field public static final String ACTION_ACCOUNT_REMOVED = "android.accounts.action.ACCOUNT_REMOVED";
+    field public static final String ACTION_AUTHENTICATOR_INTENT = "android.accounts.AccountAuthenticator";
+    field public static final String AUTHENTICATOR_ATTRIBUTES_NAME = "account-authenticator";
+    field public static final String AUTHENTICATOR_META_DATA_NAME = "android.accounts.AccountAuthenticator";
     field public static final int ERROR_CODE_BAD_ARGUMENTS = 7; // 0x7
     field public static final int ERROR_CODE_BAD_AUTHENTICATION = 9; // 0x9
     field public static final int ERROR_CODE_BAD_REQUEST = 8; // 0x8
@@ -3091,30 +3092,30 @@
     field public static final int ERROR_CODE_NETWORK_ERROR = 3; // 0x3
     field public static final int ERROR_CODE_REMOTE_EXCEPTION = 1; // 0x1
     field public static final int ERROR_CODE_UNSUPPORTED_OPERATION = 6; // 0x6
-    field public static final java.lang.String KEY_ACCOUNTS = "accounts";
-    field public static final java.lang.String KEY_ACCOUNT_AUTHENTICATOR_RESPONSE = "accountAuthenticatorResponse";
-    field public static final java.lang.String KEY_ACCOUNT_MANAGER_RESPONSE = "accountManagerResponse";
-    field public static final java.lang.String KEY_ACCOUNT_NAME = "authAccount";
-    field public static final java.lang.String KEY_ACCOUNT_SESSION_BUNDLE = "accountSessionBundle";
-    field public static final java.lang.String KEY_ACCOUNT_STATUS_TOKEN = "accountStatusToken";
-    field public static final java.lang.String KEY_ACCOUNT_TYPE = "accountType";
-    field public static final java.lang.String KEY_ANDROID_PACKAGE_NAME = "androidPackageName";
-    field public static final java.lang.String KEY_AUTHENTICATOR_TYPES = "authenticator_types";
-    field public static final java.lang.String KEY_AUTHTOKEN = "authtoken";
-    field public static final java.lang.String KEY_AUTH_FAILED_MESSAGE = "authFailedMessage";
-    field public static final java.lang.String KEY_AUTH_TOKEN_LABEL = "authTokenLabelKey";
-    field public static final java.lang.String KEY_BOOLEAN_RESULT = "booleanResult";
-    field public static final java.lang.String KEY_CALLER_PID = "callerPid";
-    field public static final java.lang.String KEY_CALLER_UID = "callerUid";
-    field public static final java.lang.String KEY_ERROR_CODE = "errorCode";
-    field public static final java.lang.String KEY_ERROR_MESSAGE = "errorMessage";
-    field public static final java.lang.String KEY_INTENT = "intent";
-    field public static final java.lang.String KEY_LAST_AUTHENTICATED_TIME = "lastAuthenticatedTime";
-    field public static final java.lang.String KEY_PASSWORD = "password";
-    field public static final java.lang.String KEY_USERDATA = "userdata";
-    field public static final deprecated java.lang.String LOGIN_ACCOUNTS_CHANGED_ACTION = "android.accounts.LOGIN_ACCOUNTS_CHANGED";
-    field public static final java.lang.String PACKAGE_NAME_KEY_LEGACY_NOT_VISIBLE = "android:accounts:key_legacy_not_visible";
-    field public static final java.lang.String PACKAGE_NAME_KEY_LEGACY_VISIBLE = "android:accounts:key_legacy_visible";
+    field public static final String KEY_ACCOUNTS = "accounts";
+    field public static final String KEY_ACCOUNT_AUTHENTICATOR_RESPONSE = "accountAuthenticatorResponse";
+    field public static final String KEY_ACCOUNT_MANAGER_RESPONSE = "accountManagerResponse";
+    field public static final String KEY_ACCOUNT_NAME = "authAccount";
+    field public static final String KEY_ACCOUNT_SESSION_BUNDLE = "accountSessionBundle";
+    field public static final String KEY_ACCOUNT_STATUS_TOKEN = "accountStatusToken";
+    field public static final String KEY_ACCOUNT_TYPE = "accountType";
+    field public static final String KEY_ANDROID_PACKAGE_NAME = "androidPackageName";
+    field public static final String KEY_AUTHENTICATOR_TYPES = "authenticator_types";
+    field public static final String KEY_AUTHTOKEN = "authtoken";
+    field public static final String KEY_AUTH_FAILED_MESSAGE = "authFailedMessage";
+    field public static final String KEY_AUTH_TOKEN_LABEL = "authTokenLabelKey";
+    field public static final String KEY_BOOLEAN_RESULT = "booleanResult";
+    field public static final String KEY_CALLER_PID = "callerPid";
+    field public static final String KEY_CALLER_UID = "callerUid";
+    field public static final String KEY_ERROR_CODE = "errorCode";
+    field public static final String KEY_ERROR_MESSAGE = "errorMessage";
+    field public static final String KEY_INTENT = "intent";
+    field public static final String KEY_LAST_AUTHENTICATED_TIME = "lastAuthenticatedTime";
+    field public static final String KEY_PASSWORD = "password";
+    field public static final String KEY_USERDATA = "userdata";
+    field @Deprecated public static final String LOGIN_ACCOUNTS_CHANGED_ACTION = "android.accounts.LOGIN_ACCOUNTS_CHANGED";
+    field public static final String PACKAGE_NAME_KEY_LEGACY_NOT_VISIBLE = "android:accounts:key_legacy_not_visible";
+    field public static final String PACKAGE_NAME_KEY_LEGACY_VISIBLE = "android:accounts:key_legacy_visible";
     field public static final int VISIBILITY_NOT_VISIBLE = 3; // 0x3
     field public static final int VISIBILITY_UNDEFINED = 0; // 0x0
     field public static final int VISIBILITY_USER_MANAGED_NOT_VISIBLE = 4; // 0x4
@@ -3122,64 +3123,64 @@
     field public static final int VISIBILITY_VISIBLE = 1; // 0x1
   }
 
-  public abstract interface AccountManagerCallback<V> {
-    method public abstract void run(android.accounts.AccountManagerFuture<V>);
+  public interface AccountManagerCallback<V> {
+    method public void run(android.accounts.AccountManagerFuture<V>);
   }
 
-  public abstract interface AccountManagerFuture<V> {
-    method public abstract boolean cancel(boolean);
-    method public abstract V getResult() throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException;
-    method public abstract V getResult(long, java.util.concurrent.TimeUnit) throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException;
-    method public abstract boolean isCancelled();
-    method public abstract boolean isDone();
+  public interface AccountManagerFuture<V> {
+    method public boolean cancel(boolean);
+    method public V getResult() throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException;
+    method public V getResult(long, java.util.concurrent.TimeUnit) throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException;
+    method public boolean isCancelled();
+    method public boolean isDone();
   }
 
   public class AccountsException extends java.lang.Exception {
     ctor public AccountsException();
-    ctor public AccountsException(java.lang.String);
-    ctor public AccountsException(java.lang.String, java.lang.Throwable);
-    ctor public AccountsException(java.lang.Throwable);
+    ctor public AccountsException(String);
+    ctor public AccountsException(String, Throwable);
+    ctor public AccountsException(Throwable);
   }
 
   public class AuthenticatorDescription implements android.os.Parcelable {
-    ctor public AuthenticatorDescription(java.lang.String, java.lang.String, int, int, int, int, boolean);
-    ctor public AuthenticatorDescription(java.lang.String, java.lang.String, int, int, int, int);
+    ctor public AuthenticatorDescription(String, String, int, int, int, int, boolean);
+    ctor public AuthenticatorDescription(String, String, int, int, int, int);
     method public int describeContents();
-    method public static android.accounts.AuthenticatorDescription newKey(java.lang.String);
+    method public static android.accounts.AuthenticatorDescription newKey(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.accounts.AuthenticatorDescription> CREATOR;
     field public final int accountPreferencesId;
     field public final boolean customTokens;
     field public final int iconId;
     field public final int labelId;
-    field public final java.lang.String packageName;
+    field public final String packageName;
     field public final int smallIconId;
-    field public final java.lang.String type;
+    field public final String type;
   }
 
   public class AuthenticatorException extends android.accounts.AccountsException {
     ctor public AuthenticatorException();
-    ctor public AuthenticatorException(java.lang.String);
-    ctor public AuthenticatorException(java.lang.String, java.lang.Throwable);
-    ctor public AuthenticatorException(java.lang.Throwable);
+    ctor public AuthenticatorException(String);
+    ctor public AuthenticatorException(String, Throwable);
+    ctor public AuthenticatorException(Throwable);
   }
 
   public class NetworkErrorException extends android.accounts.AccountsException {
     ctor public NetworkErrorException();
-    ctor public NetworkErrorException(java.lang.String);
-    ctor public NetworkErrorException(java.lang.String, java.lang.Throwable);
-    ctor public NetworkErrorException(java.lang.Throwable);
+    ctor public NetworkErrorException(String);
+    ctor public NetworkErrorException(String, Throwable);
+    ctor public NetworkErrorException(Throwable);
   }
 
-  public abstract interface OnAccountsUpdateListener {
-    method public abstract void onAccountsUpdated(android.accounts.Account[]);
+  public interface OnAccountsUpdateListener {
+    method public void onAccountsUpdated(android.accounts.Account[]);
   }
 
   public class OperationCanceledException extends android.accounts.AccountsException {
     ctor public OperationCanceledException();
-    ctor public OperationCanceledException(java.lang.String);
-    ctor public OperationCanceledException(java.lang.String, java.lang.Throwable);
-    ctor public OperationCanceledException(java.lang.Throwable);
+    ctor public OperationCanceledException(String);
+    ctor public OperationCanceledException(String, Throwable);
+    ctor public OperationCanceledException(Throwable);
   }
 
 }
@@ -3209,30 +3210,30 @@
     method public abstract android.animation.Animator setDuration(long);
     method public abstract void setInterpolator(android.animation.TimeInterpolator);
     method public abstract void setStartDelay(long);
-    method public void setTarget(java.lang.Object);
+    method public void setTarget(@Nullable Object);
     method public void setupEndValues();
     method public void setupStartValues();
     method public void start();
     field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
   }
 
-  public static abstract interface Animator.AnimatorListener {
-    method public abstract void onAnimationCancel(android.animation.Animator);
+  public static interface Animator.AnimatorListener {
+    method public void onAnimationCancel(android.animation.Animator);
     method public default void onAnimationEnd(android.animation.Animator, boolean);
-    method public abstract void onAnimationEnd(android.animation.Animator);
-    method public abstract void onAnimationRepeat(android.animation.Animator);
+    method public void onAnimationEnd(android.animation.Animator);
+    method public void onAnimationRepeat(android.animation.Animator);
     method public default void onAnimationStart(android.animation.Animator, boolean);
-    method public abstract void onAnimationStart(android.animation.Animator);
+    method public void onAnimationStart(android.animation.Animator);
   }
 
-  public static abstract interface Animator.AnimatorPauseListener {
-    method public abstract void onAnimationPause(android.animation.Animator);
-    method public abstract void onAnimationResume(android.animation.Animator);
+  public static interface Animator.AnimatorPauseListener {
+    method public void onAnimationPause(android.animation.Animator);
+    method public void onAnimationResume(android.animation.Animator);
   }
 
   public class AnimatorInflater {
     ctor public AnimatorInflater();
-    method public static android.animation.Animator loadAnimator(android.content.Context, int) throws android.content.res.Resources.NotFoundException;
+    method public static android.animation.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
     method public static android.animation.StateListAnimator loadStateListAnimator(android.content.Context, int) throws android.content.res.Resources.NotFoundException;
   }
 
@@ -3275,35 +3276,35 @@
 
   public class ArgbEvaluator implements android.animation.TypeEvaluator {
     ctor public ArgbEvaluator();
-    method public java.lang.Object evaluate(float, java.lang.Object, java.lang.Object);
+    method public Object evaluate(float, Object, Object);
   }
 
-  public abstract class BidirectionalTypeConverter<T, V> extends android.animation.TypeConverter {
-    ctor public BidirectionalTypeConverter(java.lang.Class<T>, java.lang.Class<V>);
+  public abstract class BidirectionalTypeConverter<T, V> extends android.animation.TypeConverter<T,V> {
+    ctor public BidirectionalTypeConverter(Class<T>, Class<V>);
     method public abstract T convertBack(V);
-    method public android.animation.BidirectionalTypeConverter<V, T> invert();
+    method public android.animation.BidirectionalTypeConverter<V,T> invert();
   }
 
-  public class FloatArrayEvaluator implements android.animation.TypeEvaluator {
+  public class FloatArrayEvaluator implements android.animation.TypeEvaluator<float[]> {
     ctor public FloatArrayEvaluator();
     ctor public FloatArrayEvaluator(float[]);
     method public float[] evaluate(float, float[], float[]);
   }
 
-  public class FloatEvaluator implements android.animation.TypeEvaluator {
+  public class FloatEvaluator implements android.animation.TypeEvaluator<java.lang.Number> {
     ctor public FloatEvaluator();
-    method public java.lang.Float evaluate(float, java.lang.Number, java.lang.Number);
+    method public Float evaluate(float, Number, Number);
   }
 
-  public class IntArrayEvaluator implements android.animation.TypeEvaluator {
+  public class IntArrayEvaluator implements android.animation.TypeEvaluator<int[]> {
     ctor public IntArrayEvaluator();
     ctor public IntArrayEvaluator(int[]);
     method public int[] evaluate(float, int[], int[]);
   }
 
-  public class IntEvaluator implements android.animation.TypeEvaluator {
+  public class IntEvaluator implements android.animation.TypeEvaluator<java.lang.Integer> {
     ctor public IntEvaluator();
-    method public java.lang.Integer evaluate(float, java.lang.Integer, java.lang.Integer);
+    method public Integer evaluate(float, Integer, Integer);
   }
 
   public abstract class Keyframe implements java.lang.Cloneable {
@@ -3311,18 +3312,18 @@
     method public abstract android.animation.Keyframe clone();
     method public float getFraction();
     method public android.animation.TimeInterpolator getInterpolator();
-    method public java.lang.Class getType();
-    method public abstract java.lang.Object getValue();
+    method public Class getType();
+    method public abstract Object getValue();
     method public boolean hasValue();
     method public static android.animation.Keyframe ofFloat(float, float);
     method public static android.animation.Keyframe ofFloat(float);
     method public static android.animation.Keyframe ofInt(float, int);
     method public static android.animation.Keyframe ofInt(float);
-    method public static android.animation.Keyframe ofObject(float, java.lang.Object);
+    method public static android.animation.Keyframe ofObject(float, Object);
     method public static android.animation.Keyframe ofObject(float);
     method public void setFraction(float);
     method public void setInterpolator(android.animation.TimeInterpolator);
-    method public abstract void setValue(java.lang.Object);
+    method public abstract void setValue(Object);
   }
 
   public class LayoutTransition {
@@ -3337,7 +3338,7 @@
     method public long getStagger(int);
     method public long getStartDelay(int);
     method public java.util.List<android.animation.LayoutTransition.TransitionListener> getTransitionListeners();
-    method public deprecated void hideChild(android.view.ViewGroup, android.view.View);
+    method @Deprecated public void hideChild(android.view.ViewGroup, android.view.View);
     method public void hideChild(android.view.ViewGroup, android.view.View, int);
     method public boolean isChangingLayout();
     method public boolean isRunning();
@@ -3351,7 +3352,7 @@
     method public void setInterpolator(int, android.animation.TimeInterpolator);
     method public void setStagger(int, long);
     method public void setStartDelay(int, long);
-    method public deprecated void showChild(android.view.ViewGroup, android.view.View);
+    method @Deprecated public void showChild(android.view.ViewGroup, android.view.View);
     method public void showChild(android.view.ViewGroup, android.view.View, int);
     field public static final int APPEARING = 2; // 0x2
     field public static final int CHANGE_APPEARING = 0; // 0x0
@@ -3360,45 +3361,45 @@
     field public static final int DISAPPEARING = 3; // 0x3
   }
 
-  public static abstract interface LayoutTransition.TransitionListener {
-    method public abstract void endTransition(android.animation.LayoutTransition, android.view.ViewGroup, android.view.View, int);
-    method public abstract void startTransition(android.animation.LayoutTransition, android.view.ViewGroup, android.view.View, int);
+  public static interface LayoutTransition.TransitionListener {
+    method public void endTransition(android.animation.LayoutTransition, android.view.ViewGroup, android.view.View, int);
+    method public void startTransition(android.animation.LayoutTransition, android.view.ViewGroup, android.view.View, int);
   }
 
   public final class ObjectAnimator extends android.animation.ValueAnimator {
     ctor public ObjectAnimator();
     method public android.animation.ObjectAnimator clone();
-    method public java.lang.String getPropertyName();
-    method public java.lang.Object getTarget();
-    method public static android.animation.ObjectAnimator ofArgb(java.lang.Object, java.lang.String, int...);
-    method public static <T> android.animation.ObjectAnimator ofArgb(T, android.util.Property<T, java.lang.Integer>, int...);
-    method public static android.animation.ObjectAnimator ofFloat(java.lang.Object, java.lang.String, float...);
-    method public static android.animation.ObjectAnimator ofFloat(java.lang.Object, java.lang.String, java.lang.String, android.graphics.Path);
-    method public static <T> android.animation.ObjectAnimator ofFloat(T, android.util.Property<T, java.lang.Float>, float...);
-    method public static <T> android.animation.ObjectAnimator ofFloat(T, android.util.Property<T, java.lang.Float>, android.util.Property<T, java.lang.Float>, android.graphics.Path);
-    method public static android.animation.ObjectAnimator ofInt(java.lang.Object, java.lang.String, int...);
-    method public static android.animation.ObjectAnimator ofInt(java.lang.Object, java.lang.String, java.lang.String, android.graphics.Path);
-    method public static <T> android.animation.ObjectAnimator ofInt(T, android.util.Property<T, java.lang.Integer>, int...);
-    method public static <T> android.animation.ObjectAnimator ofInt(T, android.util.Property<T, java.lang.Integer>, android.util.Property<T, java.lang.Integer>, android.graphics.Path);
-    method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, float[][]);
-    method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.graphics.Path);
-    method public static <T> android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.animation.TypeConverter<T, float[]>, android.animation.TypeEvaluator<T>, T...);
-    method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, int[][]);
-    method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.graphics.Path);
-    method public static <T> android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.animation.TypeConverter<T, int[]>, android.animation.TypeEvaluator<T>, T...);
-    method public static android.animation.ObjectAnimator ofObject(java.lang.Object, java.lang.String, android.animation.TypeEvaluator, java.lang.Object...);
-    method public static android.animation.ObjectAnimator ofObject(java.lang.Object, java.lang.String, android.animation.TypeConverter<android.graphics.PointF, ?>, android.graphics.Path);
-    method public static <T, V> android.animation.ObjectAnimator ofObject(T, android.util.Property<T, V>, android.animation.TypeEvaluator<V>, V...);
-    method public static <T, V, P> android.animation.ObjectAnimator ofObject(T, android.util.Property<T, P>, android.animation.TypeConverter<V, P>, android.animation.TypeEvaluator<V>, V...);
-    method public static <T, V> android.animation.ObjectAnimator ofObject(T, android.util.Property<T, V>, android.animation.TypeConverter<android.graphics.PointF, V>, android.graphics.Path);
-    method public static android.animation.ObjectAnimator ofPropertyValuesHolder(java.lang.Object, android.animation.PropertyValuesHolder...);
+    method @Nullable public String getPropertyName();
+    method @Nullable public Object getTarget();
+    method public static android.animation.ObjectAnimator ofArgb(Object, String, int...);
+    method public static <T> android.animation.ObjectAnimator ofArgb(T, android.util.Property<T,java.lang.Integer>, int...);
+    method public static android.animation.ObjectAnimator ofFloat(Object, String, float...);
+    method public static android.animation.ObjectAnimator ofFloat(Object, String, String, android.graphics.Path);
+    method public static <T> android.animation.ObjectAnimator ofFloat(T, android.util.Property<T,java.lang.Float>, float...);
+    method public static <T> android.animation.ObjectAnimator ofFloat(T, android.util.Property<T,java.lang.Float>, android.util.Property<T,java.lang.Float>, android.graphics.Path);
+    method public static android.animation.ObjectAnimator ofInt(Object, String, int...);
+    method public static android.animation.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
+    method public static <T> android.animation.ObjectAnimator ofInt(T, android.util.Property<T,java.lang.Integer>, int...);
+    method public static <T> android.animation.ObjectAnimator ofInt(T, android.util.Property<T,java.lang.Integer>, android.util.Property<T,java.lang.Integer>, android.graphics.Path);
+    method public static android.animation.ObjectAnimator ofMultiFloat(Object, String, float[][]);
+    method public static android.animation.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> android.animation.ObjectAnimator ofMultiFloat(Object, String, android.animation.TypeConverter<T,float[]>, android.animation.TypeEvaluator<T>, T...);
+    method public static android.animation.ObjectAnimator ofMultiInt(Object, String, int[][]);
+    method public static android.animation.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> android.animation.ObjectAnimator ofMultiInt(Object, String, android.animation.TypeConverter<T,int[]>, android.animation.TypeEvaluator<T>, T...);
+    method public static android.animation.ObjectAnimator ofObject(Object, String, android.animation.TypeEvaluator, java.lang.Object...);
+    method @NonNull public static android.animation.ObjectAnimator ofObject(Object, String, @Nullable android.animation.TypeConverter<android.graphics.PointF,?>, android.graphics.Path);
+    method @NonNull @java.lang.SafeVarargs public static <T, V> android.animation.ObjectAnimator ofObject(T, android.util.Property<T,V>, android.animation.TypeEvaluator<V>, V...);
+    method @NonNull @java.lang.SafeVarargs public static <T, V, P> android.animation.ObjectAnimator ofObject(T, android.util.Property<T,P>, android.animation.TypeConverter<V,P>, android.animation.TypeEvaluator<V>, V...);
+    method @NonNull public static <T, V> android.animation.ObjectAnimator ofObject(T, @NonNull android.util.Property<T,V>, @Nullable android.animation.TypeConverter<android.graphics.PointF,V>, android.graphics.Path);
+    method @NonNull public static android.animation.ObjectAnimator ofPropertyValuesHolder(Object, android.animation.PropertyValuesHolder...);
     method public void setAutoCancel(boolean);
-    method public android.animation.ObjectAnimator setDuration(long);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(java.lang.String);
+    method @NonNull public android.animation.ObjectAnimator setDuration(long);
+    method public void setProperty(@NonNull android.util.Property);
+    method public void setPropertyName(@NonNull String);
   }
 
-  public class PointFEvaluator implements android.animation.TypeEvaluator {
+  public class PointFEvaluator implements android.animation.TypeEvaluator<android.graphics.PointF> {
     ctor public PointFEvaluator();
     ctor public PointFEvaluator(android.graphics.PointF);
     method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
@@ -3406,26 +3407,26 @@
 
   public class PropertyValuesHolder implements java.lang.Cloneable {
     method public android.animation.PropertyValuesHolder clone();
-    method public java.lang.String getPropertyName();
-    method public static android.animation.PropertyValuesHolder ofFloat(java.lang.String, float...);
-    method public static android.animation.PropertyValuesHolder ofFloat(android.util.Property<?, java.lang.Float>, float...);
-    method public static android.animation.PropertyValuesHolder ofInt(java.lang.String, int...);
-    method public static android.animation.PropertyValuesHolder ofInt(android.util.Property<?, java.lang.Integer>, int...);
-    method public static android.animation.PropertyValuesHolder ofKeyframe(java.lang.String, android.animation.Keyframe...);
+    method public String getPropertyName();
+    method public static android.animation.PropertyValuesHolder ofFloat(String, float...);
+    method public static android.animation.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float>, float...);
+    method public static android.animation.PropertyValuesHolder ofInt(String, int...);
+    method public static android.animation.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer>, int...);
+    method public static android.animation.PropertyValuesHolder ofKeyframe(String, android.animation.Keyframe...);
     method public static android.animation.PropertyValuesHolder ofKeyframe(android.util.Property, android.animation.Keyframe...);
-    method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, float[][]);
-    method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.graphics.Path);
-    method public static <V> android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter<V, float[]>, android.animation.TypeEvaluator<V>, V...);
-    method public static <T> android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter<T, float[]>, android.animation.TypeEvaluator<T>, android.animation.Keyframe...);
-    method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, int[][]);
-    method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.graphics.Path);
-    method public static <V> android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter<V, int[]>, android.animation.TypeEvaluator<V>, V...);
-    method public static <T> android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter<T, int[]>, android.animation.TypeEvaluator<T>, android.animation.Keyframe...);
-    method public static android.animation.PropertyValuesHolder ofObject(java.lang.String, android.animation.TypeEvaluator, java.lang.Object...);
-    method public static android.animation.PropertyValuesHolder ofObject(java.lang.String, android.animation.TypeConverter<android.graphics.PointF, ?>, android.graphics.Path);
-    method public static <V> android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeEvaluator<V>, V...);
-    method public static <T, V> android.animation.PropertyValuesHolder ofObject(android.util.Property<?, V>, android.animation.TypeConverter<T, V>, android.animation.TypeEvaluator<T>, T...);
-    method public static <V> android.animation.PropertyValuesHolder ofObject(android.util.Property<?, V>, android.animation.TypeConverter<android.graphics.PointF, V>, android.graphics.Path);
+    method public static android.animation.PropertyValuesHolder ofMultiFloat(String, float[][]);
+    method public static android.animation.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> android.animation.PropertyValuesHolder ofMultiFloat(String, android.animation.TypeConverter<V,float[]>, android.animation.TypeEvaluator<V>, V...);
+    method public static <T> android.animation.PropertyValuesHolder ofMultiFloat(String, android.animation.TypeConverter<T,float[]>, android.animation.TypeEvaluator<T>, android.animation.Keyframe...);
+    method public static android.animation.PropertyValuesHolder ofMultiInt(String, int[][]);
+    method public static android.animation.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> android.animation.PropertyValuesHolder ofMultiInt(String, android.animation.TypeConverter<V,int[]>, android.animation.TypeEvaluator<V>, V...);
+    method public static <T> android.animation.PropertyValuesHolder ofMultiInt(String, android.animation.TypeConverter<T,int[]>, android.animation.TypeEvaluator<T>, android.animation.Keyframe...);
+    method public static android.animation.PropertyValuesHolder ofObject(String, android.animation.TypeEvaluator, java.lang.Object...);
+    method public static android.animation.PropertyValuesHolder ofObject(String, android.animation.TypeConverter<android.graphics.PointF,?>, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeEvaluator<V>, V...);
+    method @java.lang.SafeVarargs public static <T, V> android.animation.PropertyValuesHolder ofObject(android.util.Property<?,V>, android.animation.TypeConverter<T,V>, android.animation.TypeEvaluator<T>, T...);
+    method public static <V> android.animation.PropertyValuesHolder ofObject(android.util.Property<?,V>, android.animation.TypeConverter<android.graphics.PointF,V>, android.graphics.Path);
     method public void setConverter(android.animation.TypeConverter);
     method public void setEvaluator(android.animation.TypeEvaluator);
     method public void setFloatValues(float...);
@@ -3433,10 +3434,10 @@
     method public void setKeyframes(android.animation.Keyframe...);
     method public void setObjectValues(java.lang.Object...);
     method public void setProperty(android.util.Property);
-    method public void setPropertyName(java.lang.String);
+    method public void setPropertyName(String);
   }
 
-  public class RectEvaluator implements android.animation.TypeEvaluator {
+  public class RectEvaluator implements android.animation.TypeEvaluator<android.graphics.Rect> {
     ctor public RectEvaluator();
     ctor public RectEvaluator(android.graphics.Rect);
     method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
@@ -3454,21 +3455,21 @@
     method public void setTimeListener(android.animation.TimeAnimator.TimeListener);
   }
 
-  public static abstract interface TimeAnimator.TimeListener {
-    method public abstract void onTimeUpdate(android.animation.TimeAnimator, long, long);
+  public static interface TimeAnimator.TimeListener {
+    method public void onTimeUpdate(android.animation.TimeAnimator, long, long);
   }
 
-  public abstract interface TimeInterpolator {
-    method public abstract float getInterpolation(float);
+  public interface TimeInterpolator {
+    method public float getInterpolation(float);
   }
 
   public abstract class TypeConverter<T, V> {
-    ctor public TypeConverter(java.lang.Class<T>, java.lang.Class<V>);
+    ctor public TypeConverter(Class<T>, Class<V>);
     method public abstract V convert(T);
   }
 
-  public abstract interface TypeEvaluator<T> {
-    method public abstract T evaluate(float, T, T);
+  public interface TypeEvaluator<T> {
+    method public T evaluate(float, T, T);
   }
 
   public class ValueAnimator extends android.animation.Animator {
@@ -3477,8 +3478,8 @@
     method public static boolean areAnimatorsEnabled();
     method public android.animation.ValueAnimator clone();
     method public float getAnimatedFraction();
-    method public java.lang.Object getAnimatedValue();
-    method public java.lang.Object getAnimatedValue(java.lang.String);
+    method public Object getAnimatedValue();
+    method public Object getAnimatedValue(String);
     method public long getCurrentPlayTime();
     method public long getDuration();
     method public static long getFrameDelay();
@@ -3513,18 +3514,20 @@
     field public static final int REVERSE = 2; // 0x2
   }
 
-  public static abstract interface ValueAnimator.AnimatorUpdateListener {
-    method public abstract void onAnimationUpdate(android.animation.ValueAnimator);
+  public static interface ValueAnimator.AnimatorUpdateListener {
+    method public void onAnimationUpdate(android.animation.ValueAnimator);
   }
 
 }
 
 package android.annotation {
 
-  public abstract class SuppressLint implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.LOCAL_VARIABLE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface SuppressLint {
+    method public abstract String[] value();
   }
 
-  public abstract class TargetApi implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.FIELD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface TargetApi {
+    method public abstract int value();
   }
 
 }
@@ -3534,37 +3537,37 @@
   public abstract class ActionBar {
     ctor public ActionBar();
     method public abstract void addOnMenuVisibilityListener(android.app.ActionBar.OnMenuVisibilityListener);
-    method public abstract deprecated void addTab(android.app.ActionBar.Tab);
-    method public abstract deprecated void addTab(android.app.ActionBar.Tab, boolean);
-    method public abstract deprecated void addTab(android.app.ActionBar.Tab, int);
-    method public abstract deprecated void addTab(android.app.ActionBar.Tab, int, boolean);
+    method @Deprecated public abstract void addTab(android.app.ActionBar.Tab);
+    method @Deprecated public abstract void addTab(android.app.ActionBar.Tab, boolean);
+    method @Deprecated public abstract void addTab(android.app.ActionBar.Tab, int);
+    method @Deprecated public abstract void addTab(android.app.ActionBar.Tab, int, boolean);
     method public abstract android.view.View getCustomView();
     method public abstract int getDisplayOptions();
     method public float getElevation();
     method public abstract int getHeight();
     method public int getHideOffset();
-    method public abstract deprecated int getNavigationItemCount();
-    method public abstract deprecated int getNavigationMode();
-    method public abstract deprecated int getSelectedNavigationIndex();
-    method public abstract deprecated android.app.ActionBar.Tab getSelectedTab();
-    method public abstract java.lang.CharSequence getSubtitle();
-    method public abstract deprecated android.app.ActionBar.Tab getTabAt(int);
-    method public abstract deprecated int getTabCount();
+    method @Deprecated public abstract int getNavigationItemCount();
+    method @Deprecated public abstract int getNavigationMode();
+    method @Deprecated public abstract int getSelectedNavigationIndex();
+    method @Deprecated public abstract android.app.ActionBar.Tab getSelectedTab();
+    method public abstract CharSequence getSubtitle();
+    method @Deprecated public abstract android.app.ActionBar.Tab getTabAt(int);
+    method @Deprecated public abstract int getTabCount();
     method public android.content.Context getThemedContext();
-    method public abstract java.lang.CharSequence getTitle();
+    method public abstract CharSequence getTitle();
     method public abstract void hide();
     method public boolean isHideOnContentScrollEnabled();
     method public abstract boolean isShowing();
-    method public abstract deprecated android.app.ActionBar.Tab newTab();
-    method public abstract deprecated void removeAllTabs();
+    method @Deprecated public abstract android.app.ActionBar.Tab newTab();
+    method @Deprecated public abstract void removeAllTabs();
     method public abstract void removeOnMenuVisibilityListener(android.app.ActionBar.OnMenuVisibilityListener);
-    method public abstract deprecated void removeTab(android.app.ActionBar.Tab);
-    method public abstract deprecated void removeTabAt(int);
-    method public abstract deprecated void selectTab(android.app.ActionBar.Tab);
-    method public abstract void setBackgroundDrawable(android.graphics.drawable.Drawable);
+    method @Deprecated public abstract void removeTab(android.app.ActionBar.Tab);
+    method @Deprecated public abstract void removeTabAt(int);
+    method @Deprecated public abstract void selectTab(android.app.ActionBar.Tab);
+    method public abstract void setBackgroundDrawable(@Nullable android.graphics.drawable.Drawable);
     method public abstract void setCustomView(android.view.View);
     method public abstract void setCustomView(android.view.View, android.app.ActionBar.LayoutParams);
-    method public abstract void setCustomView(int);
+    method public abstract void setCustomView(@LayoutRes int);
     method public abstract void setDisplayHomeAsUpEnabled(boolean);
     method public abstract void setDisplayOptions(int);
     method public abstract void setDisplayOptions(int, int);
@@ -3575,79 +3578,79 @@
     method public void setElevation(float);
     method public void setHideOffset(int);
     method public void setHideOnContentScrollEnabled(boolean);
-    method public void setHomeActionContentDescription(java.lang.CharSequence);
-    method public void setHomeActionContentDescription(int);
+    method public void setHomeActionContentDescription(CharSequence);
+    method public void setHomeActionContentDescription(@StringRes int);
     method public void setHomeAsUpIndicator(android.graphics.drawable.Drawable);
-    method public void setHomeAsUpIndicator(int);
+    method public void setHomeAsUpIndicator(@DrawableRes int);
     method public void setHomeButtonEnabled(boolean);
-    method public abstract void setIcon(int);
+    method public abstract void setIcon(@DrawableRes int);
     method public abstract void setIcon(android.graphics.drawable.Drawable);
-    method public abstract deprecated void setListNavigationCallbacks(android.widget.SpinnerAdapter, android.app.ActionBar.OnNavigationListener);
-    method public abstract void setLogo(int);
+    method @Deprecated public abstract void setListNavigationCallbacks(android.widget.SpinnerAdapter, android.app.ActionBar.OnNavigationListener);
+    method public abstract void setLogo(@DrawableRes int);
     method public abstract void setLogo(android.graphics.drawable.Drawable);
-    method public abstract deprecated void setNavigationMode(int);
-    method public abstract deprecated void setSelectedNavigationItem(int);
+    method @Deprecated public abstract void setNavigationMode(int);
+    method @Deprecated public abstract void setSelectedNavigationItem(int);
     method public void setSplitBackgroundDrawable(android.graphics.drawable.Drawable);
     method public void setStackedBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public abstract void setSubtitle(java.lang.CharSequence);
-    method public abstract void setSubtitle(int);
-    method public abstract void setTitle(java.lang.CharSequence);
-    method public abstract void setTitle(int);
+    method public abstract void setSubtitle(CharSequence);
+    method public abstract void setSubtitle(@StringRes int);
+    method public abstract void setTitle(CharSequence);
+    method public abstract void setTitle(@StringRes int);
     method public abstract void show();
     field public static final int DISPLAY_HOME_AS_UP = 4; // 0x4
     field public static final int DISPLAY_SHOW_CUSTOM = 16; // 0x10
     field public static final int DISPLAY_SHOW_HOME = 2; // 0x2
     field public static final int DISPLAY_SHOW_TITLE = 8; // 0x8
     field public static final int DISPLAY_USE_LOGO = 1; // 0x1
-    field public static final deprecated int NAVIGATION_MODE_LIST = 1; // 0x1
-    field public static final deprecated int NAVIGATION_MODE_STANDARD = 0; // 0x0
-    field public static final deprecated int NAVIGATION_MODE_TABS = 2; // 0x2
+    field @Deprecated public static final int NAVIGATION_MODE_LIST = 1; // 0x1
+    field @Deprecated public static final int NAVIGATION_MODE_STANDARD = 0; // 0x0
+    field @Deprecated public static final int NAVIGATION_MODE_TABS = 2; // 0x2
   }
 
   public static class ActionBar.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
-    ctor public ActionBar.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public ActionBar.LayoutParams(@NonNull android.content.Context, android.util.AttributeSet);
     ctor public ActionBar.LayoutParams(int, int);
     ctor public ActionBar.LayoutParams(int, int, int);
     ctor public ActionBar.LayoutParams(int);
     ctor public ActionBar.LayoutParams(android.app.ActionBar.LayoutParams);
     ctor public ActionBar.LayoutParams(android.view.ViewGroup.LayoutParams);
-    field public int gravity;
+    field @android.view.ViewDebug.ExportedProperty(category="layout", mapping={@android.view.ViewDebug.IntToString(from=0xffffffff, to="NONE"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.NO_GRAVITY, to="NONE"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.TOP, to="TOP"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.BOTTOM, to="BOTTOM"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.LEFT, to="LEFT"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.RIGHT, to="RIGHT"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.START, to="START"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.END, to="END"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.CENTER_VERTICAL, to="CENTER_VERTICAL"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.FILL_VERTICAL, to="FILL_VERTICAL"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.CENTER_HORIZONTAL, to="CENTER_HORIZONTAL"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.FILL_HORIZONTAL, to="FILL_HORIZONTAL"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.CENTER, to="CENTER"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.FILL, to="FILL")}) public int gravity;
   }
 
-  public static abstract interface ActionBar.OnMenuVisibilityListener {
-    method public abstract void onMenuVisibilityChanged(boolean);
+  public static interface ActionBar.OnMenuVisibilityListener {
+    method public void onMenuVisibilityChanged(boolean);
   }
 
-  public static abstract deprecated interface ActionBar.OnNavigationListener {
-    method public abstract boolean onNavigationItemSelected(int, long);
+  @Deprecated public static interface ActionBar.OnNavigationListener {
+    method @Deprecated public boolean onNavigationItemSelected(int, long);
   }
 
-  public static abstract deprecated class ActionBar.Tab {
-    ctor public ActionBar.Tab();
-    method public abstract java.lang.CharSequence getContentDescription();
-    method public abstract android.view.View getCustomView();
-    method public abstract android.graphics.drawable.Drawable getIcon();
-    method public abstract int getPosition();
-    method public abstract java.lang.Object getTag();
-    method public abstract java.lang.CharSequence getText();
-    method public abstract void select();
-    method public abstract android.app.ActionBar.Tab setContentDescription(int);
-    method public abstract android.app.ActionBar.Tab setContentDescription(java.lang.CharSequence);
-    method public abstract android.app.ActionBar.Tab setCustomView(android.view.View);
-    method public abstract android.app.ActionBar.Tab setCustomView(int);
-    method public abstract android.app.ActionBar.Tab setIcon(android.graphics.drawable.Drawable);
-    method public abstract android.app.ActionBar.Tab setIcon(int);
-    method public abstract android.app.ActionBar.Tab setTabListener(android.app.ActionBar.TabListener);
-    method public abstract android.app.ActionBar.Tab setTag(java.lang.Object);
-    method public abstract android.app.ActionBar.Tab setText(java.lang.CharSequence);
-    method public abstract android.app.ActionBar.Tab setText(int);
-    field public static final int INVALID_POSITION = -1; // 0xffffffff
+  @Deprecated public abstract static class ActionBar.Tab {
+    ctor @Deprecated public ActionBar.Tab();
+    method @Deprecated public abstract CharSequence getContentDescription();
+    method @Deprecated public abstract android.view.View getCustomView();
+    method @Deprecated public abstract android.graphics.drawable.Drawable getIcon();
+    method @Deprecated public abstract int getPosition();
+    method @Deprecated public abstract Object getTag();
+    method @Deprecated public abstract CharSequence getText();
+    method @Deprecated public abstract void select();
+    method @Deprecated public abstract android.app.ActionBar.Tab setContentDescription(@StringRes int);
+    method @Deprecated public abstract android.app.ActionBar.Tab setContentDescription(CharSequence);
+    method @Deprecated public abstract android.app.ActionBar.Tab setCustomView(android.view.View);
+    method @Deprecated public abstract android.app.ActionBar.Tab setCustomView(@LayoutRes int);
+    method @Deprecated public abstract android.app.ActionBar.Tab setIcon(android.graphics.drawable.Drawable);
+    method @Deprecated public abstract android.app.ActionBar.Tab setIcon(@DrawableRes int);
+    method @Deprecated public abstract android.app.ActionBar.Tab setTabListener(android.app.ActionBar.TabListener);
+    method @Deprecated public abstract android.app.ActionBar.Tab setTag(Object);
+    method @Deprecated public abstract android.app.ActionBar.Tab setText(CharSequence);
+    method @Deprecated public abstract android.app.ActionBar.Tab setText(@StringRes int);
+    field @Deprecated public static final int INVALID_POSITION = -1; // 0xffffffff
   }
 
-  public static abstract deprecated interface ActionBar.TabListener {
-    method public abstract void onTabReselected(android.app.ActionBar.Tab, android.app.FragmentTransaction);
-    method public abstract void onTabSelected(android.app.ActionBar.Tab, android.app.FragmentTransaction);
-    method public abstract void onTabUnselected(android.app.ActionBar.Tab, android.app.FragmentTransaction);
+  @Deprecated public static interface ActionBar.TabListener {
+    method @Deprecated public void onTabReselected(android.app.ActionBar.Tab, android.app.FragmentTransaction);
+    method @Deprecated public void onTabSelected(android.app.ActionBar.Tab, android.app.FragmentTransaction);
+    method @Deprecated public void onTabUnselected(android.app.ActionBar.Tab, android.app.FragmentTransaction);
   }
 
   public class Activity extends android.view.ContextThemeWrapper implements android.content.ComponentCallbacks2 android.view.KeyEvent.Callback android.view.LayoutInflater.Factory2 android.view.View.OnCreateContextMenuListener android.view.Window.Callback {
@@ -3655,8 +3658,8 @@
     method public void addContentView(android.view.View, android.view.ViewGroup.LayoutParams);
     method public void closeContextMenu();
     method public void closeOptionsMenu();
-    method public android.app.PendingIntent createPendingResult(int, android.content.Intent, int);
-    method public final deprecated void dismissDialog(int);
+    method public android.app.PendingIntent createPendingResult(int, @NonNull android.content.Intent, int);
+    method @Deprecated public final void dismissDialog(int);
     method public final void dismissKeyboardShortcutsHelper();
     method public boolean dispatchGenericMotionEvent(android.view.MotionEvent);
     method public boolean dispatchKeyEvent(android.view.KeyEvent);
@@ -3664,43 +3667,43 @@
     method public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
     method public boolean dispatchTouchEvent(android.view.MotionEvent);
     method public boolean dispatchTrackballEvent(android.view.MotionEvent);
-    method public void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public deprecated void enterPictureInPictureMode();
-    method public boolean enterPictureInPictureMode(android.app.PictureInPictureParams);
-    method public <T extends android.view.View> T findViewById(int);
+    method public void dump(@NonNull String, @Nullable java.io.FileDescriptor, @NonNull java.io.PrintWriter, @Nullable String[]);
+    method @Deprecated public void enterPictureInPictureMode();
+    method public boolean enterPictureInPictureMode(@NonNull android.app.PictureInPictureParams);
+    method public <T extends android.view.View> T findViewById(@IdRes int);
     method public void finish();
     method public void finishActivity(int);
-    method public void finishActivityFromChild(android.app.Activity, int);
+    method public void finishActivityFromChild(@NonNull android.app.Activity, int);
     method public void finishAffinity();
     method public void finishAfterTransition();
     method public void finishAndRemoveTask();
     method public void finishFromChild(android.app.Activity);
-    method public android.app.ActionBar getActionBar();
+    method @Nullable public android.app.ActionBar getActionBar();
     method public final android.app.Application getApplication();
-    method public android.content.ComponentName getCallingActivity();
-    method public java.lang.String getCallingPackage();
+    method @Nullable public android.content.ComponentName getCallingActivity();
+    method @Nullable public String getCallingPackage();
     method public int getChangingConfigurations();
     method public android.content.ComponentName getComponentName();
     method public android.transition.Scene getContentScene();
     method public android.transition.TransitionManager getContentTransitionManager();
-    method public android.view.View getCurrentFocus();
-    method public deprecated android.app.FragmentManager getFragmentManager();
+    method @Nullable public android.view.View getCurrentFocus();
+    method @Deprecated public android.app.FragmentManager getFragmentManager();
     method public android.content.Intent getIntent();
-    method public java.lang.Object getLastNonConfigurationInstance();
-    method public android.view.LayoutInflater getLayoutInflater();
-    method public deprecated android.app.LoaderManager getLoaderManager();
-    method public java.lang.String getLocalClassName();
+    method @Nullable public Object getLastNonConfigurationInstance();
+    method @NonNull public android.view.LayoutInflater getLayoutInflater();
+    method @Deprecated public android.app.LoaderManager getLoaderManager();
+    method @NonNull public String getLocalClassName();
     method public int getMaxNumPictureInPictureActions();
     method public final android.media.session.MediaController getMediaController();
-    method public android.view.MenuInflater getMenuInflater();
+    method @NonNull public android.view.MenuInflater getMenuInflater();
     method public final android.app.Activity getParent();
-    method public android.content.Intent getParentActivityIntent();
+    method @Nullable public android.content.Intent getParentActivityIntent();
     method public android.content.SharedPreferences getPreferences(int);
-    method public android.net.Uri getReferrer();
+    method @Nullable public android.net.Uri getReferrer();
     method public int getRequestedOrientation();
     method public final android.view.SearchEvent getSearchEvent();
     method public int getTaskId();
-    method public final java.lang.CharSequence getTitle();
+    method public final CharSequence getTitle();
     method public final int getTitleColor();
     method public android.app.VoiceInteractor getVoiceInteractor();
     method public final int getVolumeControlStream();
@@ -3720,36 +3723,36 @@
     method public boolean isTaskRoot();
     method public boolean isVoiceInteraction();
     method public boolean isVoiceInteractionRoot();
-    method public final deprecated android.database.Cursor managedQuery(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
+    method @Deprecated public final android.database.Cursor managedQuery(android.net.Uri, String[], String, String[], String);
     method public boolean moveTaskToBack(boolean);
     method public boolean navigateUpTo(android.content.Intent);
     method public boolean navigateUpToFromChild(android.app.Activity, android.content.Intent);
-    method public void onActionModeFinished(android.view.ActionMode);
-    method public void onActionModeStarted(android.view.ActionMode);
+    method @CallSuper public void onActionModeFinished(android.view.ActionMode);
+    method @CallSuper public void onActionModeStarted(android.view.ActionMode);
     method public void onActivityReenter(int, android.content.Intent);
     method protected void onActivityResult(int, int, android.content.Intent);
-    method public deprecated void onAttachFragment(android.app.Fragment);
+    method @Deprecated public void onAttachFragment(android.app.Fragment);
     method public void onAttachedToWindow();
     method public void onBackPressed();
-    method protected void onChildTitleChanged(android.app.Activity, java.lang.CharSequence);
-    method public void onConfigurationChanged(android.content.res.Configuration);
+    method protected void onChildTitleChanged(android.app.Activity, CharSequence);
+    method public void onConfigurationChanged(@NonNull android.content.res.Configuration);
     method public void onContentChanged();
-    method public boolean onContextItemSelected(android.view.MenuItem);
-    method public void onContextMenuClosed(android.view.Menu);
-    method protected void onCreate(android.os.Bundle);
-    method public void onCreate(android.os.Bundle, android.os.PersistableBundle);
+    method public boolean onContextItemSelected(@NonNull android.view.MenuItem);
+    method public void onContextMenuClosed(@NonNull android.view.Menu);
+    method @MainThread @CallSuper protected void onCreate(@Nullable android.os.Bundle);
+    method public void onCreate(@Nullable android.os.Bundle, @Nullable android.os.PersistableBundle);
     method public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo);
-    method public java.lang.CharSequence onCreateDescription();
-    method protected deprecated android.app.Dialog onCreateDialog(int);
-    method protected deprecated android.app.Dialog onCreateDialog(int, android.os.Bundle);
+    method @Nullable public CharSequence onCreateDescription();
+    method @Deprecated protected android.app.Dialog onCreateDialog(int);
+    method @Deprecated @Nullable protected android.app.Dialog onCreateDialog(int, android.os.Bundle);
     method public void onCreateNavigateUpTaskStack(android.app.TaskStackBuilder);
     method public boolean onCreateOptionsMenu(android.view.Menu);
-    method public boolean onCreatePanelMenu(int, android.view.Menu);
-    method public android.view.View onCreatePanelView(int);
-    method public deprecated boolean onCreateThumbnail(android.graphics.Bitmap, android.graphics.Canvas);
-    method public android.view.View onCreateView(java.lang.String, android.content.Context, android.util.AttributeSet);
-    method public android.view.View onCreateView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet);
-    method protected void onDestroy();
+    method public boolean onCreatePanelMenu(int, @NonNull android.view.Menu);
+    method @Nullable public android.view.View onCreatePanelView(int);
+    method @Deprecated public boolean onCreateThumbnail(android.graphics.Bitmap, android.graphics.Canvas);
+    method @Nullable public android.view.View onCreateView(@NonNull String, @NonNull android.content.Context, @NonNull android.util.AttributeSet);
+    method @Nullable public android.view.View onCreateView(@Nullable android.view.View, @NonNull String, @NonNull android.content.Context, @NonNull android.util.AttributeSet);
+    method @CallSuper protected void onDestroy();
     method public void onDetachedFromWindow();
     method public void onEnterAnimationComplete();
     method public boolean onGenericMotionEvent(android.view.MotionEvent);
@@ -3761,74 +3764,74 @@
     method public void onLocalVoiceInteractionStarted();
     method public void onLocalVoiceInteractionStopped();
     method public void onLowMemory();
-    method public boolean onMenuItemSelected(int, android.view.MenuItem);
-    method public boolean onMenuOpened(int, android.view.Menu);
+    method public boolean onMenuItemSelected(int, @NonNull android.view.MenuItem);
+    method public boolean onMenuOpened(int, @NonNull android.view.Menu);
     method public void onMultiWindowModeChanged(boolean, android.content.res.Configuration);
-    method public deprecated void onMultiWindowModeChanged(boolean);
+    method @Deprecated public void onMultiWindowModeChanged(boolean);
     method public boolean onNavigateUp();
     method public boolean onNavigateUpFromChild(android.app.Activity);
     method protected void onNewIntent(android.content.Intent);
-    method public boolean onOptionsItemSelected(android.view.MenuItem);
+    method public boolean onOptionsItemSelected(@NonNull android.view.MenuItem);
     method public void onOptionsMenuClosed(android.view.Menu);
-    method public void onPanelClosed(int, android.view.Menu);
-    method protected void onPause();
+    method public void onPanelClosed(int, @NonNull android.view.Menu);
+    method @CallSuper protected void onPause();
     method public void onPictureInPictureModeChanged(boolean, android.content.res.Configuration);
-    method public deprecated void onPictureInPictureModeChanged(boolean);
-    method protected void onPostCreate(android.os.Bundle);
-    method public void onPostCreate(android.os.Bundle, android.os.PersistableBundle);
-    method protected void onPostResume();
-    method protected deprecated void onPrepareDialog(int, android.app.Dialog);
-    method protected deprecated void onPrepareDialog(int, android.app.Dialog, android.os.Bundle);
+    method @Deprecated public void onPictureInPictureModeChanged(boolean);
+    method @CallSuper protected void onPostCreate(@Nullable android.os.Bundle);
+    method public void onPostCreate(@Nullable android.os.Bundle, @Nullable android.os.PersistableBundle);
+    method @CallSuper protected void onPostResume();
+    method @Deprecated protected void onPrepareDialog(int, android.app.Dialog);
+    method @Deprecated protected void onPrepareDialog(int, android.app.Dialog, android.os.Bundle);
     method public void onPrepareNavigateUpTaskStack(android.app.TaskStackBuilder);
     method public boolean onPrepareOptionsMenu(android.view.Menu);
-    method public boolean onPreparePanel(int, android.view.View, android.view.Menu);
+    method public boolean onPreparePanel(int, @Nullable android.view.View, @NonNull android.view.Menu);
     method public void onProvideAssistContent(android.app.assist.AssistContent);
     method public void onProvideAssistData(android.os.Bundle);
     method public android.net.Uri onProvideReferrer();
-    method public void onRequestPermissionsResult(int, java.lang.String[], int[]);
-    method protected void onRestart();
-    method protected void onRestoreInstanceState(android.os.Bundle);
-    method public void onRestoreInstanceState(android.os.Bundle, android.os.PersistableBundle);
-    method protected void onResume();
-    method public java.lang.Object onRetainNonConfigurationInstance();
-    method protected void onSaveInstanceState(android.os.Bundle);
-    method public void onSaveInstanceState(android.os.Bundle, android.os.PersistableBundle);
-    method public boolean onSearchRequested(android.view.SearchEvent);
+    method public void onRequestPermissionsResult(int, @NonNull String[], @NonNull int[]);
+    method @CallSuper protected void onRestart();
+    method protected void onRestoreInstanceState(@NonNull android.os.Bundle);
+    method public void onRestoreInstanceState(@Nullable android.os.Bundle, @Nullable android.os.PersistableBundle);
+    method @CallSuper protected void onResume();
+    method public Object onRetainNonConfigurationInstance();
+    method protected void onSaveInstanceState(@NonNull android.os.Bundle);
+    method public void onSaveInstanceState(@NonNull android.os.Bundle, @NonNull android.os.PersistableBundle);
+    method public boolean onSearchRequested(@Nullable android.view.SearchEvent);
     method public boolean onSearchRequested();
-    method protected void onStart();
-    method public deprecated void onStateNotSaved();
-    method protected void onStop();
-    method protected void onTitleChanged(java.lang.CharSequence, int);
+    method @CallSuper protected void onStart();
+    method @Deprecated public void onStateNotSaved();
+    method @CallSuper protected void onStop();
+    method protected void onTitleChanged(CharSequence, int);
     method public boolean onTouchEvent(android.view.MotionEvent);
     method public boolean onTrackballEvent(android.view.MotionEvent);
     method public void onTrimMemory(int);
     method public void onUserInteraction();
     method protected void onUserLeaveHint();
-    method public deprecated void onVisibleBehindCanceled();
+    method @Deprecated @CallSuper public void onVisibleBehindCanceled();
     method public void onWindowAttributesChanged(android.view.WindowManager.LayoutParams);
     method public void onWindowFocusChanged(boolean);
-    method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback);
-    method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback, int);
+    method @Nullable public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback);
+    method @Nullable public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback, int);
     method public void openContextMenu(android.view.View);
     method public void openOptionsMenu();
     method public void overridePendingTransition(int, int);
     method public void postponeEnterTransition();
     method public void recreate();
-    method public void registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks);
+    method public void registerActivityLifecycleCallbacks(@NonNull android.app.Application.ActivityLifecycleCallbacks);
     method public void registerForContextMenu(android.view.View);
     method public boolean releaseInstance();
-    method public final deprecated void removeDialog(int);
+    method @Deprecated public final void removeDialog(int);
     method public void reportFullyDrawn();
     method public android.view.DragAndDropPermissions requestDragAndDropPermissions(android.view.DragEvent);
-    method public final void requestPermissions(java.lang.String[], int);
+    method public final void requestPermissions(@NonNull String[], int);
     method public final void requestShowKeyboardShortcuts();
-    method public deprecated boolean requestVisibleBehind(boolean);
+    method @Deprecated public boolean requestVisibleBehind(boolean);
     method public final boolean requestWindowFeature(int);
-    method public final <T extends android.view.View> T requireViewById(int);
-    method public final void runOnUiThread(java.lang.Runnable);
-    method public void setActionBar(android.widget.Toolbar);
+    method @NonNull public final <T extends android.view.View> T requireViewById(@IdRes int);
+    method public final void runOnUiThread(Runnable);
+    method public void setActionBar(@Nullable android.widget.Toolbar);
     method public void setContentTransitionManager(android.transition.TransitionManager);
-    method public void setContentView(int);
+    method public void setContentView(@LayoutRes int);
     method public void setContentView(android.view.View);
     method public void setContentView(android.view.View, android.view.ViewGroup.LayoutParams);
     method public final void setDefaultKeyMode(int);
@@ -3836,63 +3839,63 @@
     method public void setExitSharedElementCallback(android.app.SharedElementCallback);
     method public final void setFeatureDrawable(int, android.graphics.drawable.Drawable);
     method public final void setFeatureDrawableAlpha(int, int);
-    method public final void setFeatureDrawableResource(int, int);
+    method public final void setFeatureDrawableResource(int, @DrawableRes int);
     method public final void setFeatureDrawableUri(int, android.net.Uri);
     method public void setFinishOnTouchOutside(boolean);
     method public void setImmersive(boolean);
     method public void setIntent(android.content.Intent);
     method public final void setMediaController(android.media.session.MediaController);
-    method public void setPictureInPictureParams(android.app.PictureInPictureParams);
-    method public final deprecated void setProgress(int);
-    method public final deprecated void setProgressBarIndeterminate(boolean);
-    method public final deprecated void setProgressBarIndeterminateVisibility(boolean);
-    method public final deprecated void setProgressBarVisibility(boolean);
+    method public void setPictureInPictureParams(@NonNull android.app.PictureInPictureParams);
+    method @Deprecated public final void setProgress(int);
+    method @Deprecated public final void setProgressBarIndeterminate(boolean);
+    method @Deprecated public final void setProgressBarIndeterminateVisibility(boolean);
+    method @Deprecated public final void setProgressBarVisibility(boolean);
     method public void setRequestedOrientation(int);
     method public final void setResult(int);
     method public final void setResult(int, android.content.Intent);
-    method public final deprecated void setSecondaryProgress(int);
+    method @Deprecated public final void setSecondaryProgress(int);
     method public void setShowWhenLocked(boolean);
     method public void setTaskDescription(android.app.ActivityManager.TaskDescription);
-    method public void setTitle(java.lang.CharSequence);
+    method public void setTitle(CharSequence);
     method public void setTitle(int);
-    method public deprecated void setTitleColor(int);
+    method @Deprecated public void setTitleColor(int);
     method public void setTurnScreenOn(boolean);
     method public void setVisible(boolean);
     method public final void setVolumeControlStream(int);
-    method public void setVrModeEnabled(boolean, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public boolean shouldShowRequestPermissionRationale(java.lang.String);
+    method public void setVrModeEnabled(boolean, @NonNull android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public boolean shouldShowRequestPermissionRationale(@NonNull String);
     method public boolean shouldUpRecreateTask(android.content.Intent);
     method public boolean showAssist(android.os.Bundle);
-    method public final deprecated void showDialog(int);
-    method public final deprecated boolean showDialog(int, android.os.Bundle);
+    method @Deprecated public final void showDialog(int);
+    method @Deprecated public final boolean showDialog(int, android.os.Bundle);
     method public void showLockTaskEscapeMessage();
-    method public android.view.ActionMode startActionMode(android.view.ActionMode.Callback);
-    method public android.view.ActionMode startActionMode(android.view.ActionMode.Callback, int);
-    method public void startActivityForResult(android.content.Intent, int);
-    method public void startActivityForResult(android.content.Intent, int, android.os.Bundle);
-    method public void startActivityFromChild(android.app.Activity, android.content.Intent, int);
-    method public void startActivityFromChild(android.app.Activity, android.content.Intent, int, android.os.Bundle);
-    method public deprecated void startActivityFromFragment(android.app.Fragment, android.content.Intent, int);
-    method public deprecated void startActivityFromFragment(android.app.Fragment, android.content.Intent, int, android.os.Bundle);
-    method public boolean startActivityIfNeeded(android.content.Intent, int);
-    method public boolean startActivityIfNeeded(android.content.Intent, int, android.os.Bundle);
-    method public void startIntentSenderForResult(android.content.IntentSender, int, android.content.Intent, int, int, int) throws android.content.IntentSender.SendIntentException;
-    method public void startIntentSenderForResult(android.content.IntentSender, int, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+    method @Nullable public android.view.ActionMode startActionMode(android.view.ActionMode.Callback);
+    method @Nullable public android.view.ActionMode startActionMode(android.view.ActionMode.Callback, int);
+    method public void startActivityForResult(@RequiresPermission android.content.Intent, int);
+    method public void startActivityForResult(@RequiresPermission android.content.Intent, int, @Nullable android.os.Bundle);
+    method public void startActivityFromChild(@NonNull android.app.Activity, @RequiresPermission android.content.Intent, int);
+    method public void startActivityFromChild(@NonNull android.app.Activity, @RequiresPermission android.content.Intent, int, @Nullable android.os.Bundle);
+    method @Deprecated public void startActivityFromFragment(@NonNull android.app.Fragment, @RequiresPermission android.content.Intent, int);
+    method @Deprecated public void startActivityFromFragment(@NonNull android.app.Fragment, @RequiresPermission android.content.Intent, int, @Nullable android.os.Bundle);
+    method public boolean startActivityIfNeeded(@RequiresPermission @NonNull android.content.Intent, int);
+    method public boolean startActivityIfNeeded(@RequiresPermission @NonNull android.content.Intent, int, @Nullable android.os.Bundle);
+    method public void startIntentSenderForResult(android.content.IntentSender, int, @Nullable android.content.Intent, int, int, int) throws android.content.IntentSender.SendIntentException;
+    method public void startIntentSenderForResult(android.content.IntentSender, int, @Nullable android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
     method public void startIntentSenderFromChild(android.app.Activity, android.content.IntentSender, int, android.content.Intent, int, int, int) throws android.content.IntentSender.SendIntentException;
-    method public void startIntentSenderFromChild(android.app.Activity, android.content.IntentSender, int, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+    method public void startIntentSenderFromChild(android.app.Activity, android.content.IntentSender, int, android.content.Intent, int, int, int, @Nullable android.os.Bundle) throws android.content.IntentSender.SendIntentException;
     method public void startLocalVoiceInteraction(android.os.Bundle);
     method public void startLockTask();
-    method public deprecated void startManagingCursor(android.database.Cursor);
-    method public boolean startNextMatchingActivity(android.content.Intent);
-    method public boolean startNextMatchingActivity(android.content.Intent, android.os.Bundle);
+    method @Deprecated public void startManagingCursor(android.database.Cursor);
+    method public boolean startNextMatchingActivity(@RequiresPermission @NonNull android.content.Intent);
+    method public boolean startNextMatchingActivity(@RequiresPermission @NonNull android.content.Intent, @Nullable android.os.Bundle);
     method public void startPostponedEnterTransition();
-    method public void startSearch(java.lang.String, boolean, android.os.Bundle, boolean);
+    method public void startSearch(@Nullable String, boolean, @Nullable android.os.Bundle, boolean);
     method public void stopLocalVoiceInteraction();
     method public void stopLockTask();
-    method public deprecated void stopManagingCursor(android.database.Cursor);
+    method @Deprecated public void stopManagingCursor(android.database.Cursor);
     method public void takeKeyEvents(boolean);
-    method public void triggerSearch(java.lang.String, android.os.Bundle);
-    method public void unregisterActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks);
+    method public void triggerSearch(String, @Nullable android.os.Bundle);
+    method public void unregisterActivityLifecycleCallbacks(@NonNull android.app.Application.ActivityLifecycleCallbacks);
     method public void unregisterForContextMenu(android.view.View);
     field public static final int DEFAULT_KEYS_DIALER = 1; // 0x1
     field public static final int DEFAULT_KEYS_DISABLE = 0; // 0x0
@@ -3905,18 +3908,18 @@
     field public static final int RESULT_OK = -1; // 0xffffffff
   }
 
-  public deprecated class ActivityGroup extends android.app.Activity {
-    ctor public ActivityGroup();
-    ctor public ActivityGroup(boolean);
-    method public android.app.Activity getCurrentActivity();
-    method public final android.app.LocalActivityManager getLocalActivityManager();
+  @Deprecated public class ActivityGroup extends android.app.Activity {
+    ctor @Deprecated public ActivityGroup();
+    ctor @Deprecated public ActivityGroup(boolean);
+    method @Deprecated public android.app.Activity getCurrentActivity();
+    method @Deprecated public final android.app.LocalActivityManager getLocalActivityManager();
   }
 
   public class ActivityManager {
-    method public int addAppTask(android.app.Activity, android.content.Intent, android.app.ActivityManager.TaskDescription, android.graphics.Bitmap);
+    method public int addAppTask(@NonNull android.app.Activity, @NonNull android.content.Intent, @Nullable android.app.ActivityManager.TaskDescription, @NonNull android.graphics.Bitmap);
     method public boolean clearApplicationUserData();
     method public void clearWatchHeapLimit();
-    method public void dumpPackageState(java.io.FileDescriptor, java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.DUMP) public void dumpPackageState(java.io.FileDescriptor, String);
     method public android.util.Size getAppTaskThumbnailSize();
     method public java.util.List<android.app.ActivityManager.AppTask> getAppTasks();
     method public android.content.pm.ConfigurationInfo getDeviceConfigurationInfo();
@@ -3929,28 +3932,28 @@
     method public static void getMyMemoryState(android.app.ActivityManager.RunningAppProcessInfo);
     method public android.os.Debug.MemoryInfo[] getProcessMemoryInfo(int[]);
     method public java.util.List<android.app.ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState();
-    method public deprecated java.util.List<android.app.ActivityManager.RecentTaskInfo> getRecentTasks(int, int) throws java.lang.SecurityException;
+    method @Deprecated public java.util.List<android.app.ActivityManager.RecentTaskInfo> getRecentTasks(int, int) throws java.lang.SecurityException;
     method public java.util.List<android.app.ActivityManager.RunningAppProcessInfo> getRunningAppProcesses();
     method public android.app.PendingIntent getRunningServiceControlPanel(android.content.ComponentName) throws java.lang.SecurityException;
-    method public deprecated java.util.List<android.app.ActivityManager.RunningServiceInfo> getRunningServices(int) throws java.lang.SecurityException;
-    method public deprecated java.util.List<android.app.ActivityManager.RunningTaskInfo> getRunningTasks(int) throws java.lang.SecurityException;
+    method @Deprecated public java.util.List<android.app.ActivityManager.RunningServiceInfo> getRunningServices(int) throws java.lang.SecurityException;
+    method @Deprecated public java.util.List<android.app.ActivityManager.RunningTaskInfo> getRunningTasks(int) throws java.lang.SecurityException;
     method public boolean isActivityStartAllowedOnDisplay(android.content.Context, int, android.content.Intent);
     method public boolean isBackgroundRestricted();
-    method public deprecated boolean isInLockTaskMode();
+    method @Deprecated public boolean isInLockTaskMode();
     method public boolean isLowRamDevice();
     method public static boolean isRunningInTestHarness();
     method public static boolean isUserAMonkey();
-    method public void killBackgroundProcesses(java.lang.String);
-    method public void moveTaskToFront(int, int);
-    method public void moveTaskToFront(int, int, android.os.Bundle);
-    method public deprecated void restartPackage(java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.KILL_BACKGROUND_PROCESSES) public void killBackgroundProcesses(String);
+    method @RequiresPermission(android.Manifest.permission.REORDER_TASKS) public void moveTaskToFront(int, int);
+    method @RequiresPermission(android.Manifest.permission.REORDER_TASKS) public void moveTaskToFront(int, int, android.os.Bundle);
+    method @Deprecated public void restartPackage(String);
     method public static void setVrThread(int);
     method public void setWatchHeapLimit(long);
-    field public static final java.lang.String ACTION_REPORT_HEAP_LIMIT = "android.app.action.REPORT_HEAP_LIMIT";
+    field public static final String ACTION_REPORT_HEAP_LIMIT = "android.app.action.REPORT_HEAP_LIMIT";
     field public static final int LOCK_TASK_MODE_LOCKED = 1; // 0x1
     field public static final int LOCK_TASK_MODE_NONE = 0; // 0x0
     field public static final int LOCK_TASK_MODE_PINNED = 2; // 0x2
-    field public static final java.lang.String META_HOME_ALTERNATE = "android.app.home.alternate";
+    field public static final String META_HOME_ALTERNATE = "android.app.home.alternate";
     field public static final int MOVE_TASK_NO_USER_ACTION = 2; // 0x2
     field public static final int MOVE_TASK_WITH_HOME = 1; // 0x1
     field public static final int RECENT_IGNORE_UNAVAILABLE = 2; // 0x2
@@ -3988,12 +3991,12 @@
     field public static final int NO_ERROR = 0; // 0x0
     field public int condition;
     field public byte[] crashData;
-    field public java.lang.String longMsg;
+    field public String longMsg;
     field public int pid;
-    field public java.lang.String processName;
-    field public java.lang.String shortMsg;
-    field public java.lang.String stackTrace;
-    field public java.lang.String tag;
+    field public String processName;
+    field public String shortMsg;
+    field public String stackTrace;
+    field public String tag;
     field public int uid;
   }
 
@@ -4003,23 +4006,23 @@
     method public void readFromParcel(android.os.Parcel);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.ActivityManager.RecentTaskInfo> CREATOR;
-    field public deprecated int affiliatedTaskId;
-    field public deprecated java.lang.CharSequence description;
-    field public deprecated int id;
-    field public deprecated int persistentId;
+    field @Deprecated public int affiliatedTaskId;
+    field @Deprecated public CharSequence description;
+    field @Deprecated public int id;
+    field @Deprecated public int persistentId;
   }
 
   public static class ActivityManager.RunningAppProcessInfo implements android.os.Parcelable {
     ctor public ActivityManager.RunningAppProcessInfo();
-    ctor public ActivityManager.RunningAppProcessInfo(java.lang.String, int, java.lang.String[]);
+    ctor public ActivityManager.RunningAppProcessInfo(String, int, String[]);
     method public int describeContents();
     method public void readFromParcel(android.os.Parcel);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.ActivityManager.RunningAppProcessInfo> CREATOR;
-    field public static final deprecated int IMPORTANCE_BACKGROUND = 400; // 0x190
+    field @Deprecated public static final int IMPORTANCE_BACKGROUND = 400; // 0x190
     field public static final int IMPORTANCE_CACHED = 400; // 0x190
     field public static final int IMPORTANCE_CANT_SAVE_STATE = 350; // 0x15e
-    field public static final deprecated int IMPORTANCE_EMPTY = 500; // 0x1f4
+    field @Deprecated public static final int IMPORTANCE_EMPTY = 500; // 0x1f4
     field public static final int IMPORTANCE_FOREGROUND = 100; // 0x64
     field public static final int IMPORTANCE_FOREGROUND_SERVICE = 125; // 0x7d
     field public static final int IMPORTANCE_GONE = 1000; // 0x3e8
@@ -4027,7 +4030,7 @@
     field public static final int IMPORTANCE_PERCEPTIBLE_PRE_26 = 130; // 0x82
     field public static final int IMPORTANCE_SERVICE = 300; // 0x12c
     field public static final int IMPORTANCE_TOP_SLEEPING = 325; // 0x145
-    field public static final deprecated int IMPORTANCE_TOP_SLEEPING_PRE_28 = 150; // 0x96
+    field @Deprecated public static final int IMPORTANCE_TOP_SLEEPING_PRE_28 = 150; // 0x96
     field public static final int IMPORTANCE_VISIBLE = 200; // 0xc8
     field public static final int REASON_PROVIDER_IN_USE = 1; // 0x1
     field public static final int REASON_SERVICE_IN_USE = 2; // 0x2
@@ -4039,8 +4042,8 @@
     field public int lastTrimLevel;
     field public int lru;
     field public int pid;
-    field public java.lang.String[] pkgList;
-    field public java.lang.String processName;
+    field public String[] pkgList;
+    field public String processName;
     field public int uid;
   }
 
@@ -4057,13 +4060,13 @@
     field public long activeSince;
     field public int clientCount;
     field public int clientLabel;
-    field public java.lang.String clientPackage;
+    field public String clientPackage;
     field public int crashCount;
     field public int flags;
     field public boolean foreground;
     field public long lastActivityTime;
     field public int pid;
-    field public java.lang.String process;
+    field public String process;
     field public long restarting;
     field public android.content.ComponentName service;
     field public boolean started;
@@ -4076,23 +4079,23 @@
     method public void readFromParcel(android.os.Parcel);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.ActivityManager.RunningTaskInfo> CREATOR;
-    field public deprecated java.lang.CharSequence description;
-    field public deprecated int id;
-    field public deprecated int numRunning;
-    field public deprecated android.graphics.Bitmap thumbnail;
+    field @Deprecated public CharSequence description;
+    field @Deprecated public int id;
+    field @Deprecated public int numRunning;
+    field @Deprecated public android.graphics.Bitmap thumbnail;
   }
 
   public static class ActivityManager.TaskDescription implements android.os.Parcelable {
-    ctor public deprecated ActivityManager.TaskDescription(java.lang.String, android.graphics.Bitmap, int);
-    ctor public ActivityManager.TaskDescription(java.lang.String, int, int);
-    ctor public deprecated ActivityManager.TaskDescription(java.lang.String, android.graphics.Bitmap);
-    ctor public ActivityManager.TaskDescription(java.lang.String, int);
-    ctor public ActivityManager.TaskDescription(java.lang.String);
+    ctor @Deprecated public ActivityManager.TaskDescription(String, android.graphics.Bitmap, int);
+    ctor public ActivityManager.TaskDescription(String, @DrawableRes int, int);
+    ctor @Deprecated public ActivityManager.TaskDescription(String, android.graphics.Bitmap);
+    ctor public ActivityManager.TaskDescription(String, @DrawableRes int);
+    ctor public ActivityManager.TaskDescription(String);
     ctor public ActivityManager.TaskDescription();
     ctor public ActivityManager.TaskDescription(android.app.ActivityManager.TaskDescription);
     method public int describeContents();
     method public android.graphics.Bitmap getIcon();
-    method public java.lang.String getLabel();
+    method public String getLabel();
     method public int getPrimaryColor();
     method public void readFromParcel(android.os.Parcel);
     method public void writeToParcel(android.os.Parcel, int);
@@ -4100,26 +4103,26 @@
   }
 
   public class ActivityOptions {
-    method public android.graphics.Rect getLaunchBounds();
+    method @Nullable public android.graphics.Rect getLaunchBounds();
     method public int getLaunchDisplayId();
     method public boolean getLockTaskMode();
     method public static android.app.ActivityOptions makeBasic();
     method public static android.app.ActivityOptions makeClipRevealAnimation(android.view.View, int, int, int, int);
     method public static android.app.ActivityOptions makeCustomAnimation(android.content.Context, int, int);
     method public static android.app.ActivityOptions makeScaleUpAnimation(android.view.View, int, int, int, int);
-    method public static android.app.ActivityOptions makeSceneTransitionAnimation(android.app.Activity, android.view.View, java.lang.String);
-    method public static android.app.ActivityOptions makeSceneTransitionAnimation(android.app.Activity, android.util.Pair<android.view.View, java.lang.String>...);
+    method public static android.app.ActivityOptions makeSceneTransitionAnimation(android.app.Activity, android.view.View, String);
+    method @java.lang.SafeVarargs public static android.app.ActivityOptions makeSceneTransitionAnimation(android.app.Activity, android.util.Pair<android.view.View,java.lang.String>...);
     method public static android.app.ActivityOptions makeTaskLaunchBehind();
     method public static android.app.ActivityOptions makeThumbnailScaleUpAnimation(android.view.View, android.graphics.Bitmap, int, int);
     method public void requestUsageTimeReport(android.app.PendingIntent);
     method public android.app.ActivityOptions setAppVerificationBundle(android.os.Bundle);
-    method public android.app.ActivityOptions setLaunchBounds(android.graphics.Rect);
+    method public android.app.ActivityOptions setLaunchBounds(@Nullable android.graphics.Rect);
     method public android.app.ActivityOptions setLaunchDisplayId(int);
     method public android.app.ActivityOptions setLockTaskEnabled(boolean);
     method public android.os.Bundle toBundle();
     method public void update(android.app.ActivityOptions);
-    field public static final java.lang.String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time";
-    field public static final java.lang.String EXTRA_USAGE_TIME_REPORT_PACKAGES = "android.usage_time_packages";
+    field public static final String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time";
+    field public static final String EXTRA_USAGE_TIME_REPORT_PACKAGES = "android.usage_time_packages";
   }
 
   public class AlarmManager {
@@ -4127,19 +4130,19 @@
     method public void cancel(android.app.AlarmManager.OnAlarmListener);
     method public android.app.AlarmManager.AlarmClockInfo getNextAlarmClock();
     method public void set(int, long, android.app.PendingIntent);
-    method public void set(int, long, java.lang.String, android.app.AlarmManager.OnAlarmListener, android.os.Handler);
+    method public void set(int, long, String, android.app.AlarmManager.OnAlarmListener, android.os.Handler);
     method public void setAlarmClock(android.app.AlarmManager.AlarmClockInfo, android.app.PendingIntent);
     method public void setAndAllowWhileIdle(int, long, android.app.PendingIntent);
     method public void setExact(int, long, android.app.PendingIntent);
-    method public void setExact(int, long, java.lang.String, android.app.AlarmManager.OnAlarmListener, android.os.Handler);
+    method public void setExact(int, long, String, android.app.AlarmManager.OnAlarmListener, android.os.Handler);
     method public void setExactAndAllowWhileIdle(int, long, android.app.PendingIntent);
     method public void setInexactRepeating(int, long, long, android.app.PendingIntent);
     method public void setRepeating(int, long, long, android.app.PendingIntent);
-    method public void setTime(long);
-    method public void setTimeZone(java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.SET_TIME) public void setTime(long);
+    method @RequiresPermission(android.Manifest.permission.SET_TIME_ZONE) public void setTimeZone(String);
     method public void setWindow(int, long, long, android.app.PendingIntent);
-    method public void setWindow(int, long, long, java.lang.String, android.app.AlarmManager.OnAlarmListener, android.os.Handler);
-    field public static final java.lang.String ACTION_NEXT_ALARM_CLOCK_CHANGED = "android.app.action.NEXT_ALARM_CLOCK_CHANGED";
+    method public void setWindow(int, long, long, String, android.app.AlarmManager.OnAlarmListener, android.os.Handler);
+    field public static final String ACTION_NEXT_ALARM_CLOCK_CHANGED = "android.app.action.NEXT_ALARM_CLOCK_CHANGED";
     field public static final int ELAPSED_REALTIME = 3; // 0x3
     field public static final int ELAPSED_REALTIME_WAKEUP = 2; // 0x2
     field public static final long INTERVAL_DAY = 86400000L; // 0x5265c00L
@@ -4160,37 +4163,37 @@
     field public static final android.os.Parcelable.Creator<android.app.AlarmManager.AlarmClockInfo> CREATOR;
   }
 
-  public static abstract interface AlarmManager.OnAlarmListener {
-    method public abstract void onAlarm();
+  public static interface AlarmManager.OnAlarmListener {
+    method public void onAlarm();
   }
 
   public class AlertDialog extends android.app.Dialog implements android.content.DialogInterface {
     ctor protected AlertDialog(android.content.Context);
     ctor protected AlertDialog(android.content.Context, boolean, android.content.DialogInterface.OnCancelListener);
-    ctor protected AlertDialog(android.content.Context, int);
+    ctor protected AlertDialog(android.content.Context, @StyleRes int);
     method public android.widget.Button getButton(int);
     method public android.widget.ListView getListView();
-    method public void setButton(int, java.lang.CharSequence, android.os.Message);
-    method public void setButton(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public deprecated void setButton(java.lang.CharSequence, android.os.Message);
-    method public deprecated void setButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public deprecated void setButton2(java.lang.CharSequence, android.os.Message);
-    method public deprecated void setButton2(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public deprecated void setButton3(java.lang.CharSequence, android.os.Message);
-    method public deprecated void setButton3(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
+    method public void setButton(int, CharSequence, android.os.Message);
+    method public void setButton(int, CharSequence, android.content.DialogInterface.OnClickListener);
+    method @Deprecated public void setButton(CharSequence, android.os.Message);
+    method @Deprecated public void setButton(CharSequence, android.content.DialogInterface.OnClickListener);
+    method @Deprecated public void setButton2(CharSequence, android.os.Message);
+    method @Deprecated public void setButton2(CharSequence, android.content.DialogInterface.OnClickListener);
+    method @Deprecated public void setButton3(CharSequence, android.os.Message);
+    method @Deprecated public void setButton3(CharSequence, android.content.DialogInterface.OnClickListener);
     method public void setCustomTitle(android.view.View);
-    method public void setIcon(int);
+    method public void setIcon(@DrawableRes int);
     method public void setIcon(android.graphics.drawable.Drawable);
-    method public void setIconAttribute(int);
+    method public void setIconAttribute(@AttrRes int);
     method public void setInverseBackgroundForced(boolean);
-    method public void setMessage(java.lang.CharSequence);
+    method public void setMessage(CharSequence);
     method public void setView(android.view.View);
     method public void setView(android.view.View, int, int, int, int);
-    field public static final deprecated int THEME_DEVICE_DEFAULT_DARK = 4; // 0x4
-    field public static final deprecated int THEME_DEVICE_DEFAULT_LIGHT = 5; // 0x5
-    field public static final deprecated int THEME_HOLO_DARK = 2; // 0x2
-    field public static final deprecated int THEME_HOLO_LIGHT = 3; // 0x3
-    field public static final deprecated int THEME_TRADITIONAL = 1; // 0x1
+    field @Deprecated public static final int THEME_DEVICE_DEFAULT_DARK = 4; // 0x4
+    field @Deprecated public static final int THEME_DEVICE_DEFAULT_LIGHT = 5; // 0x5
+    field @Deprecated public static final int THEME_HOLO_DARK = 2; // 0x2
+    field @Deprecated public static final int THEME_HOLO_LIGHT = 3; // 0x3
+    field @Deprecated public static final int THEME_TRADITIONAL = 1; // 0x1
   }
 
   public static class AlertDialog.Builder {
@@ -4200,35 +4203,35 @@
     method public android.content.Context getContext();
     method public android.app.AlertDialog.Builder setAdapter(android.widget.ListAdapter, android.content.DialogInterface.OnClickListener);
     method public android.app.AlertDialog.Builder setCancelable(boolean);
-    method public android.app.AlertDialog.Builder setCursor(android.database.Cursor, android.content.DialogInterface.OnClickListener, java.lang.String);
+    method public android.app.AlertDialog.Builder setCursor(android.database.Cursor, android.content.DialogInterface.OnClickListener, String);
     method public android.app.AlertDialog.Builder setCustomTitle(android.view.View);
-    method public android.app.AlertDialog.Builder setIcon(int);
+    method public android.app.AlertDialog.Builder setIcon(@DrawableRes int);
     method public android.app.AlertDialog.Builder setIcon(android.graphics.drawable.Drawable);
-    method public android.app.AlertDialog.Builder setIconAttribute(int);
-    method public deprecated android.app.AlertDialog.Builder setInverseBackgroundForced(boolean);
-    method public android.app.AlertDialog.Builder setItems(int, android.content.DialogInterface.OnClickListener);
-    method public android.app.AlertDialog.Builder setItems(java.lang.CharSequence[], android.content.DialogInterface.OnClickListener);
-    method public android.app.AlertDialog.Builder setMessage(int);
-    method public android.app.AlertDialog.Builder setMessage(java.lang.CharSequence);
-    method public android.app.AlertDialog.Builder setMultiChoiceItems(int, boolean[], android.content.DialogInterface.OnMultiChoiceClickListener);
-    method public android.app.AlertDialog.Builder setMultiChoiceItems(java.lang.CharSequence[], boolean[], android.content.DialogInterface.OnMultiChoiceClickListener);
-    method public android.app.AlertDialog.Builder setMultiChoiceItems(android.database.Cursor, java.lang.String, java.lang.String, android.content.DialogInterface.OnMultiChoiceClickListener);
-    method public android.app.AlertDialog.Builder setNegativeButton(int, android.content.DialogInterface.OnClickListener);
-    method public android.app.AlertDialog.Builder setNegativeButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public android.app.AlertDialog.Builder setNeutralButton(int, android.content.DialogInterface.OnClickListener);
-    method public android.app.AlertDialog.Builder setNeutralButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setIconAttribute(@AttrRes int);
+    method @Deprecated public android.app.AlertDialog.Builder setInverseBackgroundForced(boolean);
+    method public android.app.AlertDialog.Builder setItems(@ArrayRes int, android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setItems(CharSequence[], android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setMessage(@StringRes int);
+    method public android.app.AlertDialog.Builder setMessage(CharSequence);
+    method public android.app.AlertDialog.Builder setMultiChoiceItems(@ArrayRes int, boolean[], android.content.DialogInterface.OnMultiChoiceClickListener);
+    method public android.app.AlertDialog.Builder setMultiChoiceItems(CharSequence[], boolean[], android.content.DialogInterface.OnMultiChoiceClickListener);
+    method public android.app.AlertDialog.Builder setMultiChoiceItems(android.database.Cursor, String, String, android.content.DialogInterface.OnMultiChoiceClickListener);
+    method public android.app.AlertDialog.Builder setNegativeButton(@StringRes int, android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setNegativeButton(CharSequence, android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setNeutralButton(@StringRes int, android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setNeutralButton(CharSequence, android.content.DialogInterface.OnClickListener);
     method public android.app.AlertDialog.Builder setOnCancelListener(android.content.DialogInterface.OnCancelListener);
     method public android.app.AlertDialog.Builder setOnDismissListener(android.content.DialogInterface.OnDismissListener);
     method public android.app.AlertDialog.Builder setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener);
     method public android.app.AlertDialog.Builder setOnKeyListener(android.content.DialogInterface.OnKeyListener);
-    method public android.app.AlertDialog.Builder setPositiveButton(int, android.content.DialogInterface.OnClickListener);
-    method public android.app.AlertDialog.Builder setPositiveButton(java.lang.CharSequence, android.content.DialogInterface.OnClickListener);
-    method public android.app.AlertDialog.Builder setSingleChoiceItems(int, int, android.content.DialogInterface.OnClickListener);
-    method public android.app.AlertDialog.Builder setSingleChoiceItems(android.database.Cursor, int, java.lang.String, android.content.DialogInterface.OnClickListener);
-    method public android.app.AlertDialog.Builder setSingleChoiceItems(java.lang.CharSequence[], int, android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setPositiveButton(@StringRes int, android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setPositiveButton(CharSequence, android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setSingleChoiceItems(@ArrayRes int, int, android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setSingleChoiceItems(android.database.Cursor, int, String, android.content.DialogInterface.OnClickListener);
+    method public android.app.AlertDialog.Builder setSingleChoiceItems(CharSequence[], int, android.content.DialogInterface.OnClickListener);
     method public android.app.AlertDialog.Builder setSingleChoiceItems(android.widget.ListAdapter, int, android.content.DialogInterface.OnClickListener);
-    method public android.app.AlertDialog.Builder setTitle(int);
-    method public android.app.AlertDialog.Builder setTitle(java.lang.CharSequence);
+    method public android.app.AlertDialog.Builder setTitle(@StringRes int);
+    method public android.app.AlertDialog.Builder setTitle(CharSequence);
     method public android.app.AlertDialog.Builder setView(int);
     method public android.app.AlertDialog.Builder setView(android.view.View);
     method public android.app.AlertDialog show();
@@ -4241,125 +4244,125 @@
   public class AppComponentFactory {
     ctor public AppComponentFactory();
     method public android.content.pm.ApplicationInfo getApplicationInfo();
-    method public android.app.Activity instantiateActivity(java.lang.ClassLoader, java.lang.String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public android.app.Application instantiateApplication(java.lang.ClassLoader, java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public java.lang.ClassLoader instantiateClassLoader(java.lang.ClassLoader);
-    method public android.content.ContentProvider instantiateProvider(java.lang.ClassLoader, java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public android.content.BroadcastReceiver instantiateReceiver(java.lang.ClassLoader, java.lang.String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public android.app.Service instantiateService(java.lang.ClassLoader, java.lang.String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    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 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;
   }
 
   public class AppOpsManager {
-    method public deprecated int checkOp(java.lang.String, int, java.lang.String);
-    method public deprecated int checkOpNoThrow(java.lang.String, int, java.lang.String);
-    method public void checkPackage(int, java.lang.String);
-    method public void finishOp(java.lang.String, int, java.lang.String);
-    method public int noteOp(java.lang.String, int, java.lang.String);
-    method public int noteOpNoThrow(java.lang.String, int, java.lang.String);
-    method public int noteProxyOp(java.lang.String, java.lang.String);
-    method public int noteProxyOpNoThrow(java.lang.String, java.lang.String);
-    method public static java.lang.String permissionToOp(java.lang.String);
-    method public int startOp(java.lang.String, int, java.lang.String);
-    method public int startOpNoThrow(java.lang.String, int, java.lang.String);
-    method public void startWatchingMode(java.lang.String, java.lang.String, android.app.AppOpsManager.OnOpChangedListener);
-    method public void startWatchingMode(java.lang.String, java.lang.String, int, android.app.AppOpsManager.OnOpChangedListener);
+    method @Deprecated public int checkOp(String, int, String);
+    method @Deprecated public int checkOpNoThrow(String, int, String);
+    method public void checkPackage(int, String);
+    method public void finishOp(String, int, String);
+    method public int noteOp(String, int, String);
+    method public int noteOpNoThrow(String, int, String);
+    method public int noteProxyOp(String, String);
+    method public int noteProxyOpNoThrow(String, String);
+    method public static String permissionToOp(String);
+    method public int startOp(String, int, String);
+    method public int startOpNoThrow(String, int, String);
+    method public void startWatchingMode(String, String, android.app.AppOpsManager.OnOpChangedListener);
+    method public void startWatchingMode(String, String, int, android.app.AppOpsManager.OnOpChangedListener);
     method public void stopWatchingMode(android.app.AppOpsManager.OnOpChangedListener);
-    method public int unsafeCheckOp(java.lang.String, int, java.lang.String);
-    method public int unsafeCheckOpNoThrow(java.lang.String, int, java.lang.String);
-    method public int unsafeCheckOpRaw(java.lang.String, int, java.lang.String);
+    method public int unsafeCheckOp(String, int, String);
+    method public int unsafeCheckOpNoThrow(String, int, String);
+    method public int unsafeCheckOpRaw(String, int, String);
     field public static final int MODE_ALLOWED = 0; // 0x0
     field public static final int MODE_DEFAULT = 3; // 0x3
     field public static final int MODE_ERRORED = 2; // 0x2
     field public static final int MODE_FOREGROUND = 4; // 0x4
     field public static final int MODE_IGNORED = 1; // 0x1
-    field public static final java.lang.String OPSTR_ADD_VOICEMAIL = "android:add_voicemail";
-    field public static final java.lang.String OPSTR_ANSWER_PHONE_CALLS = "android:answer_phone_calls";
-    field public static final java.lang.String OPSTR_BODY_SENSORS = "android:body_sensors";
-    field public static final java.lang.String OPSTR_CALL_PHONE = "android:call_phone";
-    field public static final java.lang.String OPSTR_CAMERA = "android:camera";
-    field public static final java.lang.String OPSTR_COARSE_LOCATION = "android:coarse_location";
-    field public static final java.lang.String OPSTR_FINE_LOCATION = "android:fine_location";
-    field public static final java.lang.String OPSTR_GET_USAGE_STATS = "android:get_usage_stats";
-    field public static final java.lang.String OPSTR_MOCK_LOCATION = "android:mock_location";
-    field public static final java.lang.String OPSTR_MONITOR_HIGH_POWER_LOCATION = "android:monitor_location_high_power";
-    field public static final java.lang.String OPSTR_MONITOR_LOCATION = "android:monitor_location";
-    field public static final java.lang.String OPSTR_PICTURE_IN_PICTURE = "android:picture_in_picture";
-    field public static final java.lang.String OPSTR_PROCESS_OUTGOING_CALLS = "android:process_outgoing_calls";
-    field public static final java.lang.String OPSTR_READ_CALENDAR = "android:read_calendar";
-    field public static final java.lang.String OPSTR_READ_CALL_LOG = "android:read_call_log";
-    field public static final java.lang.String OPSTR_READ_CELL_BROADCASTS = "android:read_cell_broadcasts";
-    field public static final java.lang.String OPSTR_READ_CONTACTS = "android:read_contacts";
-    field public static final java.lang.String OPSTR_READ_EXTERNAL_STORAGE = "android:read_external_storage";
-    field public static final java.lang.String OPSTR_READ_PHONE_NUMBERS = "android:read_phone_numbers";
-    field public static final java.lang.String OPSTR_READ_PHONE_STATE = "android:read_phone_state";
-    field public static final java.lang.String OPSTR_READ_SMS = "android:read_sms";
-    field public static final java.lang.String OPSTR_RECEIVE_MMS = "android:receive_mms";
-    field public static final java.lang.String OPSTR_RECEIVE_SMS = "android:receive_sms";
-    field public static final java.lang.String OPSTR_RECEIVE_WAP_PUSH = "android:receive_wap_push";
-    field public static final java.lang.String OPSTR_RECORD_AUDIO = "android:record_audio";
-    field public static final java.lang.String OPSTR_SEND_SMS = "android:send_sms";
-    field public static final java.lang.String OPSTR_SYSTEM_ALERT_WINDOW = "android:system_alert_window";
-    field public static final java.lang.String OPSTR_USE_FINGERPRINT = "android:use_fingerprint";
-    field public static final java.lang.String OPSTR_USE_SIP = "android:use_sip";
-    field public static final java.lang.String OPSTR_WRITE_CALENDAR = "android:write_calendar";
-    field public static final java.lang.String OPSTR_WRITE_CALL_LOG = "android:write_call_log";
-    field public static final java.lang.String OPSTR_WRITE_CONTACTS = "android:write_contacts";
-    field public static final java.lang.String OPSTR_WRITE_EXTERNAL_STORAGE = "android:write_external_storage";
-    field public static final java.lang.String OPSTR_WRITE_SETTINGS = "android:write_settings";
+    field public static final String OPSTR_ADD_VOICEMAIL = "android:add_voicemail";
+    field public static final String OPSTR_ANSWER_PHONE_CALLS = "android:answer_phone_calls";
+    field public static final String OPSTR_BODY_SENSORS = "android:body_sensors";
+    field public static final String OPSTR_CALL_PHONE = "android:call_phone";
+    field public static final String OPSTR_CAMERA = "android:camera";
+    field public static final String OPSTR_COARSE_LOCATION = "android:coarse_location";
+    field public static final String OPSTR_FINE_LOCATION = "android:fine_location";
+    field public static final String OPSTR_GET_USAGE_STATS = "android:get_usage_stats";
+    field public static final String OPSTR_MOCK_LOCATION = "android:mock_location";
+    field public static final String OPSTR_MONITOR_HIGH_POWER_LOCATION = "android:monitor_location_high_power";
+    field public static final String OPSTR_MONITOR_LOCATION = "android:monitor_location";
+    field public static final String OPSTR_PICTURE_IN_PICTURE = "android:picture_in_picture";
+    field public static final String OPSTR_PROCESS_OUTGOING_CALLS = "android:process_outgoing_calls";
+    field public static final String OPSTR_READ_CALENDAR = "android:read_calendar";
+    field public static final String OPSTR_READ_CALL_LOG = "android:read_call_log";
+    field public static final String OPSTR_READ_CELL_BROADCASTS = "android:read_cell_broadcasts";
+    field public static final String OPSTR_READ_CONTACTS = "android:read_contacts";
+    field public static final String OPSTR_READ_EXTERNAL_STORAGE = "android:read_external_storage";
+    field public static final String OPSTR_READ_PHONE_NUMBERS = "android:read_phone_numbers";
+    field public static final String OPSTR_READ_PHONE_STATE = "android:read_phone_state";
+    field public static final String OPSTR_READ_SMS = "android:read_sms";
+    field public static final String OPSTR_RECEIVE_MMS = "android:receive_mms";
+    field public static final String OPSTR_RECEIVE_SMS = "android:receive_sms";
+    field public static final String OPSTR_RECEIVE_WAP_PUSH = "android:receive_wap_push";
+    field public static final String OPSTR_RECORD_AUDIO = "android:record_audio";
+    field public static final String OPSTR_SEND_SMS = "android:send_sms";
+    field public static final String OPSTR_SYSTEM_ALERT_WINDOW = "android:system_alert_window";
+    field public static final String OPSTR_USE_FINGERPRINT = "android:use_fingerprint";
+    field public static final String OPSTR_USE_SIP = "android:use_sip";
+    field public static final String OPSTR_WRITE_CALENDAR = "android:write_calendar";
+    field public static final String OPSTR_WRITE_CALL_LOG = "android:write_call_log";
+    field public static final String OPSTR_WRITE_CONTACTS = "android:write_contacts";
+    field public static final String OPSTR_WRITE_EXTERNAL_STORAGE = "android:write_external_storage";
+    field public static final String OPSTR_WRITE_SETTINGS = "android:write_settings";
     field public static final int WATCH_FOREGROUND_CHANGES = 1; // 0x1
   }
 
-  public static abstract interface AppOpsManager.OnOpChangedListener {
-    method public abstract void onOpChanged(java.lang.String, java.lang.String);
+  public static interface AppOpsManager.OnOpChangedListener {
+    method public void onOpChanged(String, String);
   }
 
   public class Application extends android.content.ContextWrapper implements android.content.ComponentCallbacks2 {
     ctor public Application();
-    method public static java.lang.String getProcessName();
-    method public void onConfigurationChanged(android.content.res.Configuration);
-    method public void onCreate();
-    method public void onLowMemory();
-    method public void onTerminate();
-    method public void onTrimMemory(int);
+    method public static String getProcessName();
+    method @CallSuper public void onConfigurationChanged(@NonNull android.content.res.Configuration);
+    method @CallSuper public void onCreate();
+    method @CallSuper public void onLowMemory();
+    method @CallSuper public void onTerminate();
+    method @CallSuper public void onTrimMemory(int);
     method public void registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks);
     method public void registerOnProvideAssistDataListener(android.app.Application.OnProvideAssistDataListener);
     method public void unregisterActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks);
     method public void unregisterOnProvideAssistDataListener(android.app.Application.OnProvideAssistDataListener);
   }
 
-  public static abstract interface Application.ActivityLifecycleCallbacks {
-    method public abstract void onActivityCreated(android.app.Activity, android.os.Bundle);
-    method public abstract void onActivityDestroyed(android.app.Activity);
-    method public abstract void onActivityPaused(android.app.Activity);
-    method public default void onActivityPostCreated(android.app.Activity, android.os.Bundle);
-    method public default void onActivityPostDestroyed(android.app.Activity);
-    method public default void onActivityPostPaused(android.app.Activity);
-    method public default void onActivityPostResumed(android.app.Activity);
-    method public default void onActivityPostSaveInstanceState(android.app.Activity, android.os.Bundle);
-    method public default void onActivityPostStarted(android.app.Activity);
-    method public default void onActivityPostStopped(android.app.Activity);
-    method public default void onActivityPreCreated(android.app.Activity, android.os.Bundle);
-    method public default void onActivityPreDestroyed(android.app.Activity);
-    method public default void onActivityPrePaused(android.app.Activity);
-    method public default void onActivityPreResumed(android.app.Activity);
-    method public default void onActivityPreSaveInstanceState(android.app.Activity, android.os.Bundle);
-    method public default void onActivityPreStarted(android.app.Activity);
-    method public default void onActivityPreStopped(android.app.Activity);
-    method public abstract void onActivityResumed(android.app.Activity);
-    method public abstract void onActivitySaveInstanceState(android.app.Activity, android.os.Bundle);
-    method public abstract void onActivityStarted(android.app.Activity);
-    method public abstract void onActivityStopped(android.app.Activity);
+  public static interface Application.ActivityLifecycleCallbacks {
+    method public void onActivityCreated(@NonNull android.app.Activity, @Nullable android.os.Bundle);
+    method public void onActivityDestroyed(@NonNull android.app.Activity);
+    method public void onActivityPaused(@NonNull android.app.Activity);
+    method public default void onActivityPostCreated(@NonNull android.app.Activity, @Nullable android.os.Bundle);
+    method public default void onActivityPostDestroyed(@NonNull android.app.Activity);
+    method public default void onActivityPostPaused(@NonNull android.app.Activity);
+    method public default void onActivityPostResumed(@NonNull android.app.Activity);
+    method public default void onActivityPostSaveInstanceState(@NonNull android.app.Activity, @NonNull android.os.Bundle);
+    method public default void onActivityPostStarted(@NonNull android.app.Activity);
+    method public default void onActivityPostStopped(@NonNull android.app.Activity);
+    method public default void onActivityPreCreated(@NonNull android.app.Activity, @Nullable android.os.Bundle);
+    method public default void onActivityPreDestroyed(@NonNull android.app.Activity);
+    method public default void onActivityPrePaused(@NonNull android.app.Activity);
+    method public default void onActivityPreResumed(@NonNull android.app.Activity);
+    method public default void onActivityPreSaveInstanceState(@NonNull android.app.Activity, @NonNull android.os.Bundle);
+    method public default void onActivityPreStarted(@NonNull android.app.Activity);
+    method public default void onActivityPreStopped(@NonNull android.app.Activity);
+    method public void onActivityResumed(@NonNull android.app.Activity);
+    method public void onActivitySaveInstanceState(@NonNull android.app.Activity, @NonNull android.os.Bundle);
+    method public void onActivityStarted(@NonNull android.app.Activity);
+    method public void onActivityStopped(@NonNull android.app.Activity);
   }
 
-  public static abstract interface Application.OnProvideAssistDataListener {
-    method public abstract void onProvideAssistData(android.app.Activity, android.os.Bundle);
+  public static interface Application.OnProvideAssistDataListener {
+    method public void onProvideAssistData(android.app.Activity, android.os.Bundle);
   }
 
   public class ApplicationErrorReport implements android.os.Parcelable {
     ctor public ApplicationErrorReport();
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
-    method public static android.content.ComponentName getErrorReportReceiver(android.content.Context, java.lang.String, int);
+    method public void dump(android.util.Printer, String);
+    method public static android.content.ComponentName getErrorReportReceiver(android.content.Context, String, int);
     method public void readFromParcel(android.os.Parcel);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.ApplicationErrorReport> CREATOR;
@@ -4371,9 +4374,9 @@
     field public android.app.ApplicationErrorReport.AnrInfo anrInfo;
     field public android.app.ApplicationErrorReport.BatteryInfo batteryInfo;
     field public android.app.ApplicationErrorReport.CrashInfo crashInfo;
-    field public java.lang.String installerPackageName;
-    field public java.lang.String packageName;
-    field public java.lang.String processName;
+    field public String installerPackageName;
+    field public String packageName;
+    field public String processName;
     field public android.app.ApplicationErrorReport.RunningServiceInfo runningServiceInfo;
     field public boolean systemApp;
     field public long time;
@@ -4383,50 +4386,50 @@
   public static class ApplicationErrorReport.AnrInfo {
     ctor public ApplicationErrorReport.AnrInfo();
     ctor public ApplicationErrorReport.AnrInfo(android.os.Parcel);
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public void writeToParcel(android.os.Parcel, int);
-    field public java.lang.String activity;
-    field public java.lang.String cause;
-    field public java.lang.String info;
+    field public String activity;
+    field public String cause;
+    field public String info;
   }
 
   public static class ApplicationErrorReport.BatteryInfo {
     ctor public ApplicationErrorReport.BatteryInfo();
     ctor public ApplicationErrorReport.BatteryInfo(android.os.Parcel);
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public void writeToParcel(android.os.Parcel, int);
-    field public java.lang.String checkinDetails;
+    field public String checkinDetails;
     field public long durationMicros;
-    field public java.lang.String usageDetails;
+    field public String usageDetails;
     field public int usagePercent;
   }
 
   public static class ApplicationErrorReport.CrashInfo {
     ctor public ApplicationErrorReport.CrashInfo();
-    ctor public ApplicationErrorReport.CrashInfo(java.lang.Throwable);
+    ctor public ApplicationErrorReport.CrashInfo(Throwable);
     ctor public ApplicationErrorReport.CrashInfo(android.os.Parcel);
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public void writeToParcel(android.os.Parcel, int);
-    field public java.lang.String exceptionClassName;
-    field public java.lang.String exceptionMessage;
-    field public java.lang.String stackTrace;
-    field public java.lang.String throwClassName;
-    field public java.lang.String throwFileName;
+    field public String exceptionClassName;
+    field public String exceptionMessage;
+    field public String stackTrace;
+    field public String throwClassName;
+    field public String throwFileName;
     field public int throwLineNumber;
-    field public java.lang.String throwMethodName;
+    field public String throwMethodName;
   }
 
   public static class ApplicationErrorReport.RunningServiceInfo {
     ctor public ApplicationErrorReport.RunningServiceInfo();
     ctor public ApplicationErrorReport.RunningServiceInfo(android.os.Parcel);
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public void writeToParcel(android.os.Parcel, int);
     field public long durationMillis;
-    field public java.lang.String serviceDetails;
+    field public String serviceDetails;
   }
 
   public final class AuthenticationRequiredException extends java.lang.SecurityException implements android.os.Parcelable {
-    ctor public AuthenticationRequiredException(java.lang.Throwable, android.app.PendingIntent);
+    ctor public AuthenticationRequiredException(Throwable, android.app.PendingIntent);
     method public int describeContents();
     method public android.app.PendingIntent getUserAction();
     method public void writeToParcel(android.os.Parcel, int);
@@ -4434,15 +4437,15 @@
   }
 
   public final class AutomaticZenRule implements android.os.Parcelable {
-    ctor public deprecated AutomaticZenRule(java.lang.String, android.content.ComponentName, android.net.Uri, int, boolean);
-    ctor public AutomaticZenRule(java.lang.String, android.content.ComponentName, android.content.ComponentName, android.net.Uri, android.service.notification.ZenPolicy, int, boolean);
+    ctor @Deprecated public AutomaticZenRule(String, android.content.ComponentName, android.net.Uri, int, boolean);
+    ctor public AutomaticZenRule(String, android.content.ComponentName, android.content.ComponentName, android.net.Uri, android.service.notification.ZenPolicy, int, boolean);
     ctor public AutomaticZenRule(android.os.Parcel);
     method public int describeContents();
     method public android.net.Uri getConditionId();
     method public android.content.ComponentName getConfigurationActivity();
     method public long getCreationTime();
     method public int getInterruptionFilter();
-    method public java.lang.String getName();
+    method public String getName();
     method public android.content.ComponentName getOwner();
     method public android.service.notification.ZenPolicy getZenPolicy();
     method public boolean isEnabled();
@@ -4450,171 +4453,172 @@
     method public void setConfigurationActivity(android.content.ComponentName);
     method public void setEnabled(boolean);
     method public void setInterruptionFilter(int);
-    method public void setName(java.lang.String);
+    method public void setName(String);
     method public void setZenPolicy(android.service.notification.ZenPolicy);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.AutomaticZenRule> CREATOR;
   }
 
   public class DatePickerDialog extends android.app.AlertDialog implements android.widget.DatePicker.OnDateChangedListener android.content.DialogInterface.OnClickListener {
-    ctor public DatePickerDialog(android.content.Context);
-    ctor public DatePickerDialog(android.content.Context, int);
-    ctor public DatePickerDialog(android.content.Context, android.app.DatePickerDialog.OnDateSetListener, int, int, int);
-    ctor public DatePickerDialog(android.content.Context, int, android.app.DatePickerDialog.OnDateSetListener, int, int, int);
-    method public android.widget.DatePicker getDatePicker();
-    method public void onClick(android.content.DialogInterface, int);
-    method public void onDateChanged(android.widget.DatePicker, int, int, int);
-    method public void setOnDateSetListener(android.app.DatePickerDialog.OnDateSetListener);
+    ctor public DatePickerDialog(@NonNull android.content.Context);
+    ctor public DatePickerDialog(@NonNull android.content.Context, @StyleRes int);
+    ctor public DatePickerDialog(@NonNull android.content.Context, @Nullable android.app.DatePickerDialog.OnDateSetListener, int, int, int);
+    ctor public DatePickerDialog(@NonNull android.content.Context, @StyleRes int, @Nullable android.app.DatePickerDialog.OnDateSetListener, int, int, int);
+    method @NonNull public android.widget.DatePicker getDatePicker();
+    method public void onClick(@NonNull android.content.DialogInterface, int);
+    method public void onDateChanged(@NonNull android.widget.DatePicker, int, int, int);
+    method public void setOnDateSetListener(@Nullable android.app.DatePickerDialog.OnDateSetListener);
     method public void updateDate(int, int, int);
   }
 
-  public static abstract interface DatePickerDialog.OnDateSetListener {
-    method public abstract void onDateSet(android.widget.DatePicker, int, int, int);
+  public static interface DatePickerDialog.OnDateSetListener {
+    method public void onDateSet(android.widget.DatePicker, int, int, int);
   }
 
   public class Dialog implements android.content.DialogInterface android.view.KeyEvent.Callback android.view.View.OnCreateContextMenuListener android.view.Window.Callback {
-    ctor public Dialog(android.content.Context);
-    ctor public Dialog(android.content.Context, int);
-    ctor protected Dialog(android.content.Context, boolean, android.content.DialogInterface.OnCancelListener);
-    method public void addContentView(android.view.View, android.view.ViewGroup.LayoutParams);
+    ctor public Dialog(@NonNull android.content.Context);
+    ctor public Dialog(@NonNull android.content.Context, @StyleRes int);
+    ctor protected Dialog(@NonNull android.content.Context, boolean, @Nullable android.content.DialogInterface.OnCancelListener);
+    method public void addContentView(@NonNull android.view.View, @Nullable android.view.ViewGroup.LayoutParams);
     method public void cancel();
     method public void closeOptionsMenu();
     method public void create();
     method public void dismiss();
-    method public boolean dispatchGenericMotionEvent(android.view.MotionEvent);
-    method public boolean dispatchKeyEvent(android.view.KeyEvent);
-    method public boolean dispatchKeyShortcutEvent(android.view.KeyEvent);
-    method public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
-    method public boolean dispatchTouchEvent(android.view.MotionEvent);
-    method public boolean dispatchTrackballEvent(android.view.MotionEvent);
-    method public <T extends android.view.View> T findViewById(int);
-    method public android.app.ActionBar getActionBar();
-    method public final android.content.Context getContext();
-    method public android.view.View getCurrentFocus();
-    method public android.view.LayoutInflater getLayoutInflater();
-    method public final android.app.Activity getOwnerActivity();
-    method public final android.view.SearchEvent getSearchEvent();
+    method public boolean dispatchGenericMotionEvent(@NonNull android.view.MotionEvent);
+    method public boolean dispatchKeyEvent(@NonNull android.view.KeyEvent);
+    method public boolean dispatchKeyShortcutEvent(@NonNull android.view.KeyEvent);
+    method public boolean dispatchPopulateAccessibilityEvent(@NonNull android.view.accessibility.AccessibilityEvent);
+    method public boolean dispatchTouchEvent(@NonNull android.view.MotionEvent);
+    method public boolean dispatchTrackballEvent(@NonNull android.view.MotionEvent);
+    method public <T extends android.view.View> T findViewById(@IdRes int);
+    method @Nullable public android.app.ActionBar getActionBar();
+    method @NonNull public final android.content.Context getContext();
+    method @Nullable public android.view.View getCurrentFocus();
+    method @NonNull public android.view.LayoutInflater getLayoutInflater();
+    method @Nullable public final android.app.Activity getOwnerActivity();
+    method @Nullable public final android.view.SearchEvent getSearchEvent();
     method public final int getVolumeControlStream();
-    method public android.view.Window getWindow();
+    method @Nullable public android.view.Window getWindow();
     method public void hide();
     method public void invalidateOptionsMenu();
     method public boolean isShowing();
-    method public void onActionModeFinished(android.view.ActionMode);
-    method public void onActionModeStarted(android.view.ActionMode);
+    method @CallSuper public void onActionModeFinished(android.view.ActionMode);
+    method @CallSuper public void onActionModeStarted(android.view.ActionMode);
     method public void onAttachedToWindow();
     method public void onBackPressed();
     method public void onContentChanged();
-    method public boolean onContextItemSelected(android.view.MenuItem);
-    method public void onContextMenuClosed(android.view.Menu);
+    method public boolean onContextItemSelected(@NonNull android.view.MenuItem);
+    method public void onContextMenuClosed(@NonNull android.view.Menu);
     method protected void onCreate(android.os.Bundle);
     method public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo);
-    method public boolean onCreateOptionsMenu(android.view.Menu);
-    method public boolean onCreatePanelMenu(int, android.view.Menu);
+    method public boolean onCreateOptionsMenu(@NonNull android.view.Menu);
+    method public boolean onCreatePanelMenu(int, @NonNull android.view.Menu);
     method public android.view.View onCreatePanelView(int);
     method public void onDetachedFromWindow();
-    method public boolean onGenericMotionEvent(android.view.MotionEvent);
-    method public boolean onKeyDown(int, android.view.KeyEvent);
-    method public boolean onKeyLongPress(int, android.view.KeyEvent);
-    method public boolean onKeyMultiple(int, int, android.view.KeyEvent);
-    method public boolean onKeyShortcut(int, android.view.KeyEvent);
-    method public boolean onKeyUp(int, android.view.KeyEvent);
-    method public boolean onMenuItemSelected(int, android.view.MenuItem);
-    method public boolean onMenuOpened(int, android.view.Menu);
-    method public boolean onOptionsItemSelected(android.view.MenuItem);
-    method public void onOptionsMenuClosed(android.view.Menu);
-    method public void onPanelClosed(int, android.view.Menu);
-    method public boolean onPrepareOptionsMenu(android.view.Menu);
-    method public boolean onPreparePanel(int, android.view.View, android.view.Menu);
-    method public void onRestoreInstanceState(android.os.Bundle);
-    method public android.os.Bundle onSaveInstanceState();
-    method public boolean onSearchRequested(android.view.SearchEvent);
+    method public boolean onGenericMotionEvent(@NonNull android.view.MotionEvent);
+    method public boolean onKeyDown(int, @NonNull android.view.KeyEvent);
+    method public boolean onKeyLongPress(int, @NonNull android.view.KeyEvent);
+    method public boolean onKeyMultiple(int, int, @NonNull android.view.KeyEvent);
+    method public boolean onKeyShortcut(int, @NonNull android.view.KeyEvent);
+    method public boolean onKeyUp(int, @NonNull android.view.KeyEvent);
+    method public boolean onMenuItemSelected(int, @NonNull android.view.MenuItem);
+    method public boolean onMenuOpened(int, @NonNull android.view.Menu);
+    method public boolean onOptionsItemSelected(@NonNull android.view.MenuItem);
+    method public void onOptionsMenuClosed(@NonNull android.view.Menu);
+    method public void onPanelClosed(int, @NonNull android.view.Menu);
+    method public boolean onPrepareOptionsMenu(@NonNull android.view.Menu);
+    method public boolean onPreparePanel(int, @Nullable android.view.View, @NonNull android.view.Menu);
+    method public void onRestoreInstanceState(@NonNull android.os.Bundle);
+    method @NonNull public android.os.Bundle onSaveInstanceState();
+    method public boolean onSearchRequested(@NonNull android.view.SearchEvent);
     method public boolean onSearchRequested();
     method protected void onStart();
     method protected void onStop();
-    method public boolean onTouchEvent(android.view.MotionEvent);
-    method public boolean onTrackballEvent(android.view.MotionEvent);
+    method public boolean onTouchEvent(@NonNull android.view.MotionEvent);
+    method public boolean onTrackballEvent(@NonNull android.view.MotionEvent);
     method public void onWindowAttributesChanged(android.view.WindowManager.LayoutParams);
     method public void onWindowFocusChanged(boolean);
     method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback);
     method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback, int);
-    method public void openContextMenu(android.view.View);
+    method public void openContextMenu(@NonNull android.view.View);
     method public void openOptionsMenu();
-    method public void registerForContextMenu(android.view.View);
+    method public void registerForContextMenu(@NonNull android.view.View);
     method public final boolean requestWindowFeature(int);
-    method public final <T extends android.view.View> T requireViewById(int);
-    method public void setCancelMessage(android.os.Message);
+    method @NonNull public final <T extends android.view.View> T requireViewById(@IdRes int);
+    method public void setCancelMessage(@Nullable android.os.Message);
     method public void setCancelable(boolean);
     method public void setCanceledOnTouchOutside(boolean);
-    method public void setContentView(int);
-    method public void setContentView(android.view.View);
-    method public void setContentView(android.view.View, android.view.ViewGroup.LayoutParams);
-    method public void setDismissMessage(android.os.Message);
-    method public final void setFeatureDrawable(int, android.graphics.drawable.Drawable);
+    method public void setContentView(@LayoutRes int);
+    method public void setContentView(@NonNull android.view.View);
+    method public void setContentView(@NonNull android.view.View, @Nullable android.view.ViewGroup.LayoutParams);
+    method public void setDismissMessage(@Nullable android.os.Message);
+    method public final void setFeatureDrawable(int, @Nullable android.graphics.drawable.Drawable);
     method public final void setFeatureDrawableAlpha(int, int);
-    method public final void setFeatureDrawableResource(int, int);
-    method public final void setFeatureDrawableUri(int, android.net.Uri);
-    method public void setOnCancelListener(android.content.DialogInterface.OnCancelListener);
-    method public void setOnDismissListener(android.content.DialogInterface.OnDismissListener);
-    method public void setOnKeyListener(android.content.DialogInterface.OnKeyListener);
-    method public void setOnShowListener(android.content.DialogInterface.OnShowListener);
-    method public final void setOwnerActivity(android.app.Activity);
-    method public void setTitle(java.lang.CharSequence);
-    method public void setTitle(int);
+    method public final void setFeatureDrawableResource(int, @DrawableRes int);
+    method public final void setFeatureDrawableUri(int, @Nullable android.net.Uri);
+    method public void setOnCancelListener(@Nullable android.content.DialogInterface.OnCancelListener);
+    method public void setOnDismissListener(@Nullable android.content.DialogInterface.OnDismissListener);
+    method public void setOnKeyListener(@Nullable android.content.DialogInterface.OnKeyListener);
+    method public void setOnShowListener(@Nullable android.content.DialogInterface.OnShowListener);
+    method public final void setOwnerActivity(@NonNull android.app.Activity);
+    method public void setTitle(@Nullable CharSequence);
+    method public void setTitle(@StringRes int);
     method public final void setVolumeControlStream(int);
     method public void show();
     method public void takeKeyEvents(boolean);
-    method public void unregisterForContextMenu(android.view.View);
+    method public void unregisterForContextMenu(@NonNull android.view.View);
   }
 
-  public deprecated class DialogFragment extends android.app.Fragment implements android.content.DialogInterface.OnCancelListener android.content.DialogInterface.OnDismissListener {
-    ctor public DialogFragment();
-    method public void dismiss();
-    method public void dismissAllowingStateLoss();
-    method public android.app.Dialog getDialog();
-    method public boolean getShowsDialog();
-    method public int getTheme();
-    method public boolean isCancelable();
-    method public void onCancel(android.content.DialogInterface);
-    method public android.app.Dialog onCreateDialog(android.os.Bundle);
-    method public void onDismiss(android.content.DialogInterface);
-    method public void setCancelable(boolean);
-    method public void setShowsDialog(boolean);
-    method public void setStyle(int, int);
-    method public void show(android.app.FragmentManager, java.lang.String);
-    method public int show(android.app.FragmentTransaction, java.lang.String);
-    field public static final int STYLE_NORMAL = 0; // 0x0
-    field public static final int STYLE_NO_FRAME = 2; // 0x2
-    field public static final int STYLE_NO_INPUT = 3; // 0x3
-    field public static final int STYLE_NO_TITLE = 1; // 0x1
+  @Deprecated public class DialogFragment extends android.app.Fragment implements android.content.DialogInterface.OnCancelListener android.content.DialogInterface.OnDismissListener {
+    ctor @Deprecated public DialogFragment();
+    method @Deprecated public void dismiss();
+    method @Deprecated public void dismissAllowingStateLoss();
+    method @Deprecated public android.app.Dialog getDialog();
+    method @Deprecated public boolean getShowsDialog();
+    method @Deprecated public int getTheme();
+    method @Deprecated public boolean isCancelable();
+    method @Deprecated public void onCancel(android.content.DialogInterface);
+    method @Deprecated public android.app.Dialog onCreateDialog(android.os.Bundle);
+    method @Deprecated public void onDismiss(android.content.DialogInterface);
+    method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle);
+    method @Deprecated public void setCancelable(boolean);
+    method @Deprecated public void setShowsDialog(boolean);
+    method @Deprecated public void setStyle(int, int);
+    method @Deprecated public void show(android.app.FragmentManager, String);
+    method @Deprecated public int show(android.app.FragmentTransaction, String);
+    field @Deprecated public static final int STYLE_NORMAL = 0; // 0x0
+    field @Deprecated public static final int STYLE_NO_FRAME = 2; // 0x2
+    field @Deprecated public static final int STYLE_NO_INPUT = 3; // 0x3
+    field @Deprecated public static final int STYLE_NO_TITLE = 1; // 0x1
   }
 
   public class DownloadManager {
-    method public long addCompletedDownload(java.lang.String, java.lang.String, boolean, java.lang.String, java.lang.String, long, boolean);
-    method public long addCompletedDownload(java.lang.String, java.lang.String, boolean, java.lang.String, java.lang.String, long, boolean, android.net.Uri, android.net.Uri);
+    method public long addCompletedDownload(String, String, boolean, String, String, long, boolean);
+    method public long addCompletedDownload(String, String, boolean, String, String, long, boolean, android.net.Uri, android.net.Uri);
     method public long enqueue(android.app.DownloadManager.Request);
-    method public static java.lang.Long getMaxBytesOverMobile(android.content.Context);
-    method public java.lang.String getMimeTypeForDownloadedFile(long);
-    method public static java.lang.Long getRecommendedMaxBytesOverMobile(android.content.Context);
+    method public static Long getMaxBytesOverMobile(android.content.Context);
+    method public String getMimeTypeForDownloadedFile(long);
+    method public static Long getRecommendedMaxBytesOverMobile(android.content.Context);
     method public android.net.Uri getUriForDownloadedFile(long);
     method public android.os.ParcelFileDescriptor openDownloadedFile(long) throws java.io.FileNotFoundException;
     method public android.database.Cursor query(android.app.DownloadManager.Query);
     method public int remove(long...);
-    field public static final java.lang.String ACTION_DOWNLOAD_COMPLETE = "android.intent.action.DOWNLOAD_COMPLETE";
-    field public static final java.lang.String ACTION_NOTIFICATION_CLICKED = "android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED";
-    field public static final java.lang.String ACTION_VIEW_DOWNLOADS = "android.intent.action.VIEW_DOWNLOADS";
-    field public static final java.lang.String COLUMN_BYTES_DOWNLOADED_SO_FAR = "bytes_so_far";
-    field public static final java.lang.String COLUMN_DESCRIPTION = "description";
-    field public static final java.lang.String COLUMN_ID = "_id";
-    field public static final java.lang.String COLUMN_LAST_MODIFIED_TIMESTAMP = "last_modified_timestamp";
-    field public static final deprecated java.lang.String COLUMN_LOCAL_FILENAME = "local_filename";
-    field public static final java.lang.String COLUMN_LOCAL_URI = "local_uri";
-    field public static final java.lang.String COLUMN_MEDIAPROVIDER_URI = "mediaprovider_uri";
-    field public static final java.lang.String COLUMN_MEDIA_TYPE = "media_type";
-    field public static final java.lang.String COLUMN_REASON = "reason";
-    field public static final java.lang.String COLUMN_STATUS = "status";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_TOTAL_SIZE_BYTES = "total_size";
-    field public static final java.lang.String COLUMN_URI = "uri";
+    field public static final String ACTION_DOWNLOAD_COMPLETE = "android.intent.action.DOWNLOAD_COMPLETE";
+    field public static final String ACTION_NOTIFICATION_CLICKED = "android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED";
+    field public static final String ACTION_VIEW_DOWNLOADS = "android.intent.action.VIEW_DOWNLOADS";
+    field public static final String COLUMN_BYTES_DOWNLOADED_SO_FAR = "bytes_so_far";
+    field public static final String COLUMN_DESCRIPTION = "description";
+    field public static final String COLUMN_ID = "_id";
+    field public static final String COLUMN_LAST_MODIFIED_TIMESTAMP = "last_modified_timestamp";
+    field @Deprecated public static final String COLUMN_LOCAL_FILENAME = "local_filename";
+    field public static final String COLUMN_LOCAL_URI = "local_uri";
+    field public static final String COLUMN_MEDIAPROVIDER_URI = "mediaprovider_uri";
+    field public static final String COLUMN_MEDIA_TYPE = "media_type";
+    field public static final String COLUMN_REASON = "reason";
+    field public static final String COLUMN_STATUS = "status";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_TOTAL_SIZE_BYTES = "total_size";
+    field public static final String COLUMN_URI = "uri";
     field public static final int ERROR_CANNOT_RESUME = 1008; // 0x3f0
     field public static final int ERROR_DEVICE_NOT_FOUND = 1007; // 0x3ef
     field public static final int ERROR_FILE_ALREADY_EXISTS = 1009; // 0x3f1
@@ -4624,9 +4628,9 @@
     field public static final int ERROR_TOO_MANY_REDIRECTS = 1005; // 0x3ed
     field public static final int ERROR_UNHANDLED_HTTP_CODE = 1002; // 0x3ea
     field public static final int ERROR_UNKNOWN = 1000; // 0x3e8
-    field public static final java.lang.String EXTRA_DOWNLOAD_ID = "extra_download_id";
-    field public static final java.lang.String EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS = "extra_click_download_ids";
-    field public static final java.lang.String INTENT_EXTRAS_SORT_BY_SIZE = "android.app.DownloadManager.extra_sortBySize";
+    field public static final String EXTRA_DOWNLOAD_ID = "extra_download_id";
+    field public static final String EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS = "extra_click_download_ids";
+    field public static final String INTENT_EXTRAS_SORT_BY_SIZE = "android.app.DownloadManager.extra_sortBySize";
     field public static final int PAUSED_QUEUED_FOR_WIFI = 3; // 0x3
     field public static final int PAUSED_UNKNOWN = 4; // 0x4
     field public static final int PAUSED_WAITING_FOR_NETWORK = 2; // 0x2
@@ -4646,21 +4650,21 @@
 
   public static class DownloadManager.Request {
     ctor public DownloadManager.Request(android.net.Uri);
-    method public android.app.DownloadManager.Request addRequestHeader(java.lang.String, java.lang.String);
+    method public android.app.DownloadManager.Request addRequestHeader(String, String);
     method public void allowScanningByMediaScanner();
     method public android.app.DownloadManager.Request setAllowedNetworkTypes(int);
     method public android.app.DownloadManager.Request setAllowedOverMetered(boolean);
     method public android.app.DownloadManager.Request setAllowedOverRoaming(boolean);
-    method public android.app.DownloadManager.Request setDescription(java.lang.CharSequence);
-    method public android.app.DownloadManager.Request setDestinationInExternalFilesDir(android.content.Context, java.lang.String, java.lang.String);
-    method public android.app.DownloadManager.Request setDestinationInExternalPublicDir(java.lang.String, java.lang.String);
+    method public android.app.DownloadManager.Request setDescription(CharSequence);
+    method public android.app.DownloadManager.Request setDestinationInExternalFilesDir(android.content.Context, String, String);
+    method public android.app.DownloadManager.Request setDestinationInExternalPublicDir(String, String);
     method public android.app.DownloadManager.Request setDestinationUri(android.net.Uri);
-    method public android.app.DownloadManager.Request setMimeType(java.lang.String);
+    method public android.app.DownloadManager.Request setMimeType(String);
     method public android.app.DownloadManager.Request setNotificationVisibility(int);
     method public android.app.DownloadManager.Request setRequiresCharging(boolean);
     method public android.app.DownloadManager.Request setRequiresDeviceIdle(boolean);
-    method public deprecated android.app.DownloadManager.Request setShowRunningNotification(boolean);
-    method public android.app.DownloadManager.Request setTitle(java.lang.CharSequence);
+    method @Deprecated public android.app.DownloadManager.Request setShowRunningNotification(boolean);
+    method public android.app.DownloadManager.Request setTitle(CharSequence);
     method public android.app.DownloadManager.Request setVisibleInDownloadsUi(boolean);
     field public static final int NETWORK_MOBILE = 1; // 0x1
     field public static final int NETWORK_WIFI = 2; // 0x2
@@ -4684,314 +4688,314 @@
     method public void setSelectedGroup(int);
   }
 
-  public deprecated class Fragment implements android.content.ComponentCallbacks2 android.view.View.OnCreateContextMenuListener {
-    ctor public Fragment();
-    method public void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public final boolean equals(java.lang.Object);
-    method public final android.app.Activity getActivity();
-    method public boolean getAllowEnterTransitionOverlap();
-    method public boolean getAllowReturnTransitionOverlap();
-    method public final android.os.Bundle getArguments();
-    method public final android.app.FragmentManager getChildFragmentManager();
-    method public android.content.Context getContext();
-    method public android.transition.Transition getEnterTransition();
-    method public android.transition.Transition getExitTransition();
-    method public final android.app.FragmentManager getFragmentManager();
-    method public final java.lang.Object getHost();
-    method public final int getId();
-    method public final android.view.LayoutInflater getLayoutInflater();
-    method public deprecated android.app.LoaderManager getLoaderManager();
-    method public final android.app.Fragment getParentFragment();
-    method public android.transition.Transition getReenterTransition();
-    method public final android.content.res.Resources getResources();
-    method public final boolean getRetainInstance();
-    method public android.transition.Transition getReturnTransition();
-    method public android.transition.Transition getSharedElementEnterTransition();
-    method public android.transition.Transition getSharedElementReturnTransition();
-    method public final java.lang.String getString(int);
-    method public final java.lang.String getString(int, java.lang.Object...);
-    method public final java.lang.String getTag();
-    method public final android.app.Fragment getTargetFragment();
-    method public final int getTargetRequestCode();
-    method public final java.lang.CharSequence getText(int);
-    method public boolean getUserVisibleHint();
-    method public android.view.View getView();
-    method public final int hashCode();
-    method public static android.app.Fragment instantiate(android.content.Context, java.lang.String);
-    method public static android.app.Fragment instantiate(android.content.Context, java.lang.String, android.os.Bundle);
-    method public final boolean isAdded();
-    method public final boolean isDetached();
-    method public final boolean isHidden();
-    method public final boolean isInLayout();
-    method public final boolean isRemoving();
-    method public final boolean isResumed();
-    method public final boolean isStateSaved();
-    method public final boolean isVisible();
-    method public void onActivityCreated(android.os.Bundle);
-    method public void onActivityResult(int, int, android.content.Intent);
-    method public void onAttach(android.content.Context);
-    method public deprecated void onAttach(android.app.Activity);
-    method public void onAttachFragment(android.app.Fragment);
-    method public void onConfigurationChanged(android.content.res.Configuration);
-    method public boolean onContextItemSelected(android.view.MenuItem);
-    method public void onCreate(android.os.Bundle);
-    method public android.animation.Animator onCreateAnimator(int, boolean, int);
-    method public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo);
-    method public void onCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
-    method public android.view.View onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle);
-    method public void onDestroy();
-    method public void onDestroyOptionsMenu();
-    method public void onDestroyView();
-    method public void onDetach();
-    method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle);
-    method public void onHiddenChanged(boolean);
-    method public deprecated void onInflate(android.util.AttributeSet, android.os.Bundle);
-    method public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle);
-    method public deprecated void onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle);
-    method public void onLowMemory();
-    method public void onMultiWindowModeChanged(boolean, android.content.res.Configuration);
-    method public deprecated void onMultiWindowModeChanged(boolean);
-    method public boolean onOptionsItemSelected(android.view.MenuItem);
-    method public void onOptionsMenuClosed(android.view.Menu);
-    method public void onPause();
-    method public void onPictureInPictureModeChanged(boolean, android.content.res.Configuration);
-    method public deprecated void onPictureInPictureModeChanged(boolean);
-    method public void onPrepareOptionsMenu(android.view.Menu);
-    method public void onRequestPermissionsResult(int, java.lang.String[], int[]);
-    method public void onResume();
-    method public void onSaveInstanceState(android.os.Bundle);
-    method public void onStart();
-    method public void onStop();
-    method public void onTrimMemory(int);
-    method public void onViewCreated(android.view.View, android.os.Bundle);
-    method public void onViewStateRestored(android.os.Bundle);
-    method public void postponeEnterTransition();
-    method public void registerForContextMenu(android.view.View);
-    method public final void requestPermissions(java.lang.String[], int);
-    method public void setAllowEnterTransitionOverlap(boolean);
-    method public void setAllowReturnTransitionOverlap(boolean);
-    method public void setArguments(android.os.Bundle);
-    method public void setEnterSharedElementCallback(android.app.SharedElementCallback);
-    method public void setEnterTransition(android.transition.Transition);
-    method public void setExitSharedElementCallback(android.app.SharedElementCallback);
-    method public void setExitTransition(android.transition.Transition);
-    method public void setHasOptionsMenu(boolean);
-    method public void setInitialSavedState(android.app.Fragment.SavedState);
-    method public void setMenuVisibility(boolean);
-    method public void setReenterTransition(android.transition.Transition);
-    method public void setRetainInstance(boolean);
-    method public void setReturnTransition(android.transition.Transition);
-    method public void setSharedElementEnterTransition(android.transition.Transition);
-    method public void setSharedElementReturnTransition(android.transition.Transition);
-    method public void setTargetFragment(android.app.Fragment, int);
-    method public void setUserVisibleHint(boolean);
-    method public boolean shouldShowRequestPermissionRationale(java.lang.String);
-    method public void startActivity(android.content.Intent);
-    method public void startActivity(android.content.Intent, android.os.Bundle);
-    method public void startActivityForResult(android.content.Intent, int);
-    method public void startActivityForResult(android.content.Intent, int, android.os.Bundle);
-    method public void startIntentSenderForResult(android.content.IntentSender, int, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
-    method public void startPostponedEnterTransition();
-    method public void unregisterForContextMenu(android.view.View);
+  @Deprecated public class Fragment implements android.content.ComponentCallbacks2 android.view.View.OnCreateContextMenuListener {
+    ctor @Deprecated public Fragment();
+    method @Deprecated public void dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]);
+    method @Deprecated public final boolean equals(Object);
+    method @Deprecated public final android.app.Activity getActivity();
+    method @Deprecated public boolean getAllowEnterTransitionOverlap();
+    method @Deprecated public boolean getAllowReturnTransitionOverlap();
+    method @Deprecated public final android.os.Bundle getArguments();
+    method @Deprecated public final android.app.FragmentManager getChildFragmentManager();
+    method @Deprecated public android.content.Context getContext();
+    method @Deprecated public android.transition.Transition getEnterTransition();
+    method @Deprecated public android.transition.Transition getExitTransition();
+    method @Deprecated public final android.app.FragmentManager getFragmentManager();
+    method @Deprecated @Nullable public final Object getHost();
+    method @Deprecated public final int getId();
+    method @Deprecated public final android.view.LayoutInflater getLayoutInflater();
+    method @Deprecated public android.app.LoaderManager getLoaderManager();
+    method @Deprecated public final android.app.Fragment getParentFragment();
+    method @Deprecated public android.transition.Transition getReenterTransition();
+    method @Deprecated public final android.content.res.Resources getResources();
+    method @Deprecated public final boolean getRetainInstance();
+    method @Deprecated public android.transition.Transition getReturnTransition();
+    method @Deprecated public android.transition.Transition getSharedElementEnterTransition();
+    method @Deprecated public android.transition.Transition getSharedElementReturnTransition();
+    method @Deprecated public final String getString(@StringRes int);
+    method @Deprecated public final String getString(@StringRes int, java.lang.Object...);
+    method @Deprecated public final String getTag();
+    method @Deprecated public final android.app.Fragment getTargetFragment();
+    method @Deprecated public final int getTargetRequestCode();
+    method @Deprecated public final CharSequence getText(@StringRes int);
+    method @Deprecated public boolean getUserVisibleHint();
+    method @Deprecated @Nullable public android.view.View getView();
+    method @Deprecated public final int hashCode();
+    method @Deprecated public static android.app.Fragment instantiate(android.content.Context, String);
+    method @Deprecated public static android.app.Fragment instantiate(android.content.Context, String, @Nullable android.os.Bundle);
+    method @Deprecated public final boolean isAdded();
+    method @Deprecated public final boolean isDetached();
+    method @Deprecated public final boolean isHidden();
+    method @Deprecated public final boolean isInLayout();
+    method @Deprecated public final boolean isRemoving();
+    method @Deprecated public final boolean isResumed();
+    method @Deprecated public final boolean isStateSaved();
+    method @Deprecated public final boolean isVisible();
+    method @Deprecated @CallSuper public void onActivityCreated(@Nullable android.os.Bundle);
+    method @Deprecated public void onActivityResult(int, int, android.content.Intent);
+    method @Deprecated @CallSuper public void onAttach(android.content.Context);
+    method @Deprecated @CallSuper public void onAttach(android.app.Activity);
+    method @Deprecated public void onAttachFragment(android.app.Fragment);
+    method @Deprecated @CallSuper public void onConfigurationChanged(android.content.res.Configuration);
+    method @Deprecated public boolean onContextItemSelected(android.view.MenuItem);
+    method @Deprecated @CallSuper public void onCreate(@Nullable android.os.Bundle);
+    method @Deprecated public android.animation.Animator onCreateAnimator(int, boolean, int);
+    method @Deprecated public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo);
+    method @Deprecated public void onCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
+    method @Deprecated @Nullable public android.view.View onCreateView(android.view.LayoutInflater, @Nullable android.view.ViewGroup, android.os.Bundle);
+    method @Deprecated @CallSuper public void onDestroy();
+    method @Deprecated public void onDestroyOptionsMenu();
+    method @Deprecated @CallSuper public void onDestroyView();
+    method @Deprecated @CallSuper public void onDetach();
+    method @Deprecated public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle);
+    method @Deprecated public void onHiddenChanged(boolean);
+    method @Deprecated @CallSuper public void onInflate(android.util.AttributeSet, android.os.Bundle);
+    method @Deprecated @CallSuper public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle);
+    method @Deprecated @CallSuper public void onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle);
+    method @Deprecated @CallSuper public void onLowMemory();
+    method @Deprecated public void onMultiWindowModeChanged(boolean, android.content.res.Configuration);
+    method @Deprecated public void onMultiWindowModeChanged(boolean);
+    method @Deprecated public boolean onOptionsItemSelected(android.view.MenuItem);
+    method @Deprecated public void onOptionsMenuClosed(android.view.Menu);
+    method @Deprecated @CallSuper public void onPause();
+    method @Deprecated public void onPictureInPictureModeChanged(boolean, android.content.res.Configuration);
+    method @Deprecated public void onPictureInPictureModeChanged(boolean);
+    method @Deprecated public void onPrepareOptionsMenu(android.view.Menu);
+    method @Deprecated public void onRequestPermissionsResult(int, @NonNull String[], @NonNull int[]);
+    method @Deprecated @CallSuper public void onResume();
+    method @Deprecated public void onSaveInstanceState(android.os.Bundle);
+    method @Deprecated @CallSuper public void onStart();
+    method @Deprecated @CallSuper public void onStop();
+    method @Deprecated @CallSuper public void onTrimMemory(int);
+    method @Deprecated public void onViewCreated(android.view.View, @Nullable android.os.Bundle);
+    method @Deprecated @CallSuper public void onViewStateRestored(android.os.Bundle);
+    method @Deprecated public void postponeEnterTransition();
+    method @Deprecated public void registerForContextMenu(android.view.View);
+    method @Deprecated public final void requestPermissions(@NonNull String[], int);
+    method @Deprecated public void setAllowEnterTransitionOverlap(boolean);
+    method @Deprecated public void setAllowReturnTransitionOverlap(boolean);
+    method @Deprecated public void setArguments(android.os.Bundle);
+    method @Deprecated public void setEnterSharedElementCallback(android.app.SharedElementCallback);
+    method @Deprecated public void setEnterTransition(android.transition.Transition);
+    method @Deprecated public void setExitSharedElementCallback(android.app.SharedElementCallback);
+    method @Deprecated public void setExitTransition(android.transition.Transition);
+    method @Deprecated public void setHasOptionsMenu(boolean);
+    method @Deprecated public void setInitialSavedState(android.app.Fragment.SavedState);
+    method @Deprecated public void setMenuVisibility(boolean);
+    method @Deprecated public void setReenterTransition(android.transition.Transition);
+    method @Deprecated public void setRetainInstance(boolean);
+    method @Deprecated public void setReturnTransition(android.transition.Transition);
+    method @Deprecated public void setSharedElementEnterTransition(android.transition.Transition);
+    method @Deprecated public void setSharedElementReturnTransition(android.transition.Transition);
+    method @Deprecated public void setTargetFragment(android.app.Fragment, int);
+    method @Deprecated public void setUserVisibleHint(boolean);
+    method @Deprecated public boolean shouldShowRequestPermissionRationale(@NonNull String);
+    method @Deprecated public void startActivity(android.content.Intent);
+    method @Deprecated public void startActivity(android.content.Intent, android.os.Bundle);
+    method @Deprecated public void startActivityForResult(android.content.Intent, int);
+    method @Deprecated public void startActivityForResult(android.content.Intent, int, android.os.Bundle);
+    method @Deprecated public void startIntentSenderForResult(android.content.IntentSender, int, @Nullable android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+    method @Deprecated public void startPostponedEnterTransition();
+    method @Deprecated public void unregisterForContextMenu(android.view.View);
   }
 
-  public static deprecated class Fragment.InstantiationException extends android.util.AndroidRuntimeException {
-    ctor public Fragment.InstantiationException(java.lang.String, java.lang.Exception);
+  @Deprecated public static class Fragment.InstantiationException extends android.util.AndroidRuntimeException {
+    ctor @Deprecated public Fragment.InstantiationException(String, Exception);
   }
 
-  public static deprecated class Fragment.SavedState implements android.os.Parcelable {
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.ClassLoaderCreator<android.app.Fragment.SavedState> CREATOR;
+  @Deprecated public static class Fragment.SavedState implements android.os.Parcelable {
+    method @Deprecated public int describeContents();
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.ClassLoaderCreator<android.app.Fragment.SavedState> CREATOR;
   }
 
-  public deprecated class FragmentBreadCrumbs extends android.view.ViewGroup implements android.app.FragmentManager.OnBackStackChangedListener {
-    ctor public FragmentBreadCrumbs(android.content.Context);
-    ctor public FragmentBreadCrumbs(android.content.Context, android.util.AttributeSet);
-    ctor public FragmentBreadCrumbs(android.content.Context, android.util.AttributeSet, int);
-    method public void onBackStackChanged();
-    method public void setActivity(android.app.Activity);
-    method public void setMaxVisible(int);
-    method public void setOnBreadCrumbClickListener(android.app.FragmentBreadCrumbs.OnBreadCrumbClickListener);
-    method public void setParentTitle(java.lang.CharSequence, java.lang.CharSequence, android.view.View.OnClickListener);
-    method public void setTitle(java.lang.CharSequence, java.lang.CharSequence);
+  @Deprecated public class FragmentBreadCrumbs extends android.view.ViewGroup implements android.app.FragmentManager.OnBackStackChangedListener {
+    ctor @Deprecated public FragmentBreadCrumbs(android.content.Context);
+    ctor @Deprecated public FragmentBreadCrumbs(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public FragmentBreadCrumbs(android.content.Context, android.util.AttributeSet, int);
+    method @Deprecated public void onBackStackChanged();
+    method @Deprecated public void setActivity(android.app.Activity);
+    method @Deprecated public void setMaxVisible(int);
+    method @Deprecated public void setOnBreadCrumbClickListener(android.app.FragmentBreadCrumbs.OnBreadCrumbClickListener);
+    method @Deprecated public void setParentTitle(CharSequence, CharSequence, android.view.View.OnClickListener);
+    method @Deprecated public void setTitle(CharSequence, CharSequence);
   }
 
-  public static abstract deprecated interface FragmentBreadCrumbs.OnBreadCrumbClickListener {
-    method public abstract boolean onBreadCrumbClick(android.app.FragmentManager.BackStackEntry, int);
+  @Deprecated public static interface FragmentBreadCrumbs.OnBreadCrumbClickListener {
+    method @Deprecated public boolean onBreadCrumbClick(android.app.FragmentManager.BackStackEntry, int);
   }
 
-  public abstract deprecated class FragmentContainer {
-    ctor public FragmentContainer();
-    method public abstract <T extends android.view.View> T onFindViewById(int);
-    method public abstract boolean onHasView();
+  @Deprecated public abstract class FragmentContainer {
+    ctor @Deprecated public FragmentContainer();
+    method @Deprecated @Nullable public abstract <T extends android.view.View> T onFindViewById(@IdRes int);
+    method @Deprecated public abstract boolean onHasView();
   }
 
-  public deprecated class FragmentController {
-    method public void attachHost(android.app.Fragment);
-    method public static final android.app.FragmentController createController(android.app.FragmentHostCallback<?>);
-    method public void dispatchActivityCreated();
-    method public void dispatchConfigurationChanged(android.content.res.Configuration);
-    method public boolean dispatchContextItemSelected(android.view.MenuItem);
-    method public void dispatchCreate();
-    method public boolean dispatchCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
-    method public void dispatchDestroy();
-    method public void dispatchDestroyView();
-    method public void dispatchLowMemory();
-    method public deprecated void dispatchMultiWindowModeChanged(boolean);
-    method public void dispatchMultiWindowModeChanged(boolean, android.content.res.Configuration);
-    method public boolean dispatchOptionsItemSelected(android.view.MenuItem);
-    method public void dispatchOptionsMenuClosed(android.view.Menu);
-    method public void dispatchPause();
-    method public deprecated void dispatchPictureInPictureModeChanged(boolean);
-    method public void dispatchPictureInPictureModeChanged(boolean, android.content.res.Configuration);
-    method public boolean dispatchPrepareOptionsMenu(android.view.Menu);
-    method public void dispatchResume();
-    method public void dispatchStart();
-    method public void dispatchStop();
-    method public void dispatchTrimMemory(int);
-    method public void doLoaderDestroy();
-    method public void doLoaderStart();
-    method public void doLoaderStop(boolean);
-    method public void dumpLoaders(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public boolean execPendingActions();
-    method public android.app.Fragment findFragmentByWho(java.lang.String);
-    method public android.app.FragmentManager getFragmentManager();
-    method public android.app.LoaderManager getLoaderManager();
-    method public void noteStateNotSaved();
-    method public android.view.View onCreateView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet);
-    method public void reportLoaderStart();
-    method public deprecated void restoreAllState(android.os.Parcelable, java.util.List<android.app.Fragment>);
-    method public void restoreAllState(android.os.Parcelable, android.app.FragmentManagerNonConfig);
-    method public void restoreLoaderNonConfig(android.util.ArrayMap<java.lang.String, android.app.LoaderManager>);
-    method public android.util.ArrayMap<java.lang.String, android.app.LoaderManager> retainLoaderNonConfig();
-    method public android.app.FragmentManagerNonConfig retainNestedNonConfig();
-    method public deprecated java.util.List<android.app.Fragment> retainNonConfig();
-    method public android.os.Parcelable saveAllState();
+  @Deprecated public class FragmentController {
+    method @Deprecated public void attachHost(android.app.Fragment);
+    method @Deprecated public static final android.app.FragmentController createController(android.app.FragmentHostCallback<?>);
+    method @Deprecated public void dispatchActivityCreated();
+    method @Deprecated public void dispatchConfigurationChanged(android.content.res.Configuration);
+    method @Deprecated public boolean dispatchContextItemSelected(android.view.MenuItem);
+    method @Deprecated public void dispatchCreate();
+    method @Deprecated public boolean dispatchCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
+    method @Deprecated public void dispatchDestroy();
+    method @Deprecated public void dispatchDestroyView();
+    method @Deprecated public void dispatchLowMemory();
+    method @Deprecated public void dispatchMultiWindowModeChanged(boolean);
+    method @Deprecated public void dispatchMultiWindowModeChanged(boolean, android.content.res.Configuration);
+    method @Deprecated public boolean dispatchOptionsItemSelected(android.view.MenuItem);
+    method @Deprecated public void dispatchOptionsMenuClosed(android.view.Menu);
+    method @Deprecated public void dispatchPause();
+    method @Deprecated public void dispatchPictureInPictureModeChanged(boolean);
+    method @Deprecated public void dispatchPictureInPictureModeChanged(boolean, android.content.res.Configuration);
+    method @Deprecated public boolean dispatchPrepareOptionsMenu(android.view.Menu);
+    method @Deprecated public void dispatchResume();
+    method @Deprecated public void dispatchStart();
+    method @Deprecated public void dispatchStop();
+    method @Deprecated public void dispatchTrimMemory(int);
+    method @Deprecated public void doLoaderDestroy();
+    method @Deprecated public void doLoaderStart();
+    method @Deprecated public void doLoaderStop(boolean);
+    method @Deprecated public void dumpLoaders(String, java.io.FileDescriptor, java.io.PrintWriter, String[]);
+    method @Deprecated public boolean execPendingActions();
+    method @Deprecated @Nullable public android.app.Fragment findFragmentByWho(String);
+    method @Deprecated public android.app.FragmentManager getFragmentManager();
+    method @Deprecated public android.app.LoaderManager getLoaderManager();
+    method @Deprecated public void noteStateNotSaved();
+    method @Deprecated public android.view.View onCreateView(android.view.View, String, android.content.Context, android.util.AttributeSet);
+    method @Deprecated public void reportLoaderStart();
+    method @Deprecated public void restoreAllState(android.os.Parcelable, java.util.List<android.app.Fragment>);
+    method @Deprecated public void restoreAllState(android.os.Parcelable, android.app.FragmentManagerNonConfig);
+    method @Deprecated public void restoreLoaderNonConfig(android.util.ArrayMap<java.lang.String,android.app.LoaderManager>);
+    method @Deprecated public android.util.ArrayMap<java.lang.String,android.app.LoaderManager> retainLoaderNonConfig();
+    method @Deprecated public android.app.FragmentManagerNonConfig retainNestedNonConfig();
+    method @Deprecated public java.util.List<android.app.Fragment> retainNonConfig();
+    method @Deprecated public android.os.Parcelable saveAllState();
   }
 
-  public abstract deprecated class FragmentHostCallback<E> extends android.app.FragmentContainer {
-    ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int);
-    method public void onAttachFragment(android.app.Fragment);
-    method public void onDump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public <T extends android.view.View> T onFindViewById(int);
-    method public abstract E onGetHost();
-    method public android.view.LayoutInflater onGetLayoutInflater();
-    method public int onGetWindowAnimations();
-    method public boolean onHasView();
-    method public boolean onHasWindowAnimations();
-    method public void onInvalidateOptionsMenu();
-    method public void onRequestPermissionsFromFragment(android.app.Fragment, java.lang.String[], int);
-    method public boolean onShouldSaveFragmentState(android.app.Fragment);
-    method public void onStartActivityFromFragment(android.app.Fragment, android.content.Intent, int, android.os.Bundle);
-    method public void onStartIntentSenderFromFragment(android.app.Fragment, android.content.IntentSender, int, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
-    method public boolean onUseFragmentManagerInflaterFactory();
+  @Deprecated public abstract class FragmentHostCallback<E> extends android.app.FragmentContainer {
+    ctor @Deprecated public FragmentHostCallback(android.content.Context, android.os.Handler, int);
+    method @Deprecated public void onAttachFragment(android.app.Fragment);
+    method @Deprecated public void onDump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]);
+    method @Deprecated @Nullable public <T extends android.view.View> T onFindViewById(int);
+    method @Deprecated @Nullable public abstract E onGetHost();
+    method @Deprecated public android.view.LayoutInflater onGetLayoutInflater();
+    method @Deprecated public int onGetWindowAnimations();
+    method @Deprecated public boolean onHasView();
+    method @Deprecated public boolean onHasWindowAnimations();
+    method @Deprecated public void onInvalidateOptionsMenu();
+    method @Deprecated public void onRequestPermissionsFromFragment(@NonNull android.app.Fragment, @NonNull String[], int);
+    method @Deprecated public boolean onShouldSaveFragmentState(android.app.Fragment);
+    method @Deprecated public void onStartActivityFromFragment(android.app.Fragment, android.content.Intent, int, android.os.Bundle);
+    method @Deprecated public void onStartIntentSenderFromFragment(android.app.Fragment, android.content.IntentSender, int, @Nullable android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+    method @Deprecated public boolean onUseFragmentManagerInflaterFactory();
   }
 
-  public abstract deprecated class FragmentManager {
-    ctor public FragmentManager();
-    method public abstract void addOnBackStackChangedListener(android.app.FragmentManager.OnBackStackChangedListener);
-    method public abstract android.app.FragmentTransaction beginTransaction();
-    method public abstract void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public static void enableDebugLogging(boolean);
-    method public abstract boolean executePendingTransactions();
-    method public abstract android.app.Fragment findFragmentById(int);
-    method public abstract android.app.Fragment findFragmentByTag(java.lang.String);
-    method public abstract android.app.FragmentManager.BackStackEntry getBackStackEntryAt(int);
-    method public abstract int getBackStackEntryCount();
-    method public abstract android.app.Fragment getFragment(android.os.Bundle, java.lang.String);
-    method public abstract java.util.List<android.app.Fragment> getFragments();
-    method public abstract android.app.Fragment getPrimaryNavigationFragment();
-    method public void invalidateOptionsMenu();
-    method public abstract boolean isDestroyed();
-    method public abstract boolean isStateSaved();
-    method public abstract void popBackStack();
-    method public abstract void popBackStack(java.lang.String, int);
-    method public abstract void popBackStack(int, int);
-    method public abstract boolean popBackStackImmediate();
-    method public abstract boolean popBackStackImmediate(java.lang.String, int);
-    method public abstract boolean popBackStackImmediate(int, int);
-    method public abstract void putFragment(android.os.Bundle, java.lang.String, android.app.Fragment);
-    method public abstract void registerFragmentLifecycleCallbacks(android.app.FragmentManager.FragmentLifecycleCallbacks, boolean);
-    method public abstract void removeOnBackStackChangedListener(android.app.FragmentManager.OnBackStackChangedListener);
-    method public abstract android.app.Fragment.SavedState saveFragmentInstanceState(android.app.Fragment);
-    method public abstract void unregisterFragmentLifecycleCallbacks(android.app.FragmentManager.FragmentLifecycleCallbacks);
-    field public static final int POP_BACK_STACK_INCLUSIVE = 1; // 0x1
+  @Deprecated public abstract class FragmentManager {
+    ctor @Deprecated public FragmentManager();
+    method @Deprecated public abstract void addOnBackStackChangedListener(android.app.FragmentManager.OnBackStackChangedListener);
+    method @Deprecated public abstract android.app.FragmentTransaction beginTransaction();
+    method @Deprecated public abstract void dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]);
+    method @Deprecated public static void enableDebugLogging(boolean);
+    method @Deprecated public abstract boolean executePendingTransactions();
+    method @Deprecated public abstract android.app.Fragment findFragmentById(int);
+    method @Deprecated public abstract android.app.Fragment findFragmentByTag(String);
+    method @Deprecated public abstract android.app.FragmentManager.BackStackEntry getBackStackEntryAt(int);
+    method @Deprecated public abstract int getBackStackEntryCount();
+    method @Deprecated public abstract android.app.Fragment getFragment(android.os.Bundle, String);
+    method @Deprecated public abstract java.util.List<android.app.Fragment> getFragments();
+    method @Deprecated public abstract android.app.Fragment getPrimaryNavigationFragment();
+    method @Deprecated public void invalidateOptionsMenu();
+    method @Deprecated public abstract boolean isDestroyed();
+    method @Deprecated public abstract boolean isStateSaved();
+    method @Deprecated public abstract void popBackStack();
+    method @Deprecated public abstract void popBackStack(String, int);
+    method @Deprecated public abstract void popBackStack(int, int);
+    method @Deprecated public abstract boolean popBackStackImmediate();
+    method @Deprecated public abstract boolean popBackStackImmediate(String, int);
+    method @Deprecated public abstract boolean popBackStackImmediate(int, int);
+    method @Deprecated public abstract void putFragment(android.os.Bundle, String, android.app.Fragment);
+    method @Deprecated public abstract void registerFragmentLifecycleCallbacks(android.app.FragmentManager.FragmentLifecycleCallbacks, boolean);
+    method @Deprecated public abstract void removeOnBackStackChangedListener(android.app.FragmentManager.OnBackStackChangedListener);
+    method @Deprecated public abstract android.app.Fragment.SavedState saveFragmentInstanceState(android.app.Fragment);
+    method @Deprecated public abstract void unregisterFragmentLifecycleCallbacks(android.app.FragmentManager.FragmentLifecycleCallbacks);
+    field @Deprecated public static final int POP_BACK_STACK_INCLUSIVE = 1; // 0x1
   }
 
-  public static abstract deprecated interface FragmentManager.BackStackEntry {
-    method public abstract java.lang.CharSequence getBreadCrumbShortTitle();
-    method public abstract int getBreadCrumbShortTitleRes();
-    method public abstract java.lang.CharSequence getBreadCrumbTitle();
-    method public abstract int getBreadCrumbTitleRes();
-    method public abstract int getId();
-    method public abstract java.lang.String getName();
+  @Deprecated public static interface FragmentManager.BackStackEntry {
+    method @Deprecated public CharSequence getBreadCrumbShortTitle();
+    method @Deprecated public int getBreadCrumbShortTitleRes();
+    method @Deprecated public CharSequence getBreadCrumbTitle();
+    method @Deprecated public int getBreadCrumbTitleRes();
+    method @Deprecated public int getId();
+    method @Deprecated public String getName();
   }
 
-  public static abstract deprecated class FragmentManager.FragmentLifecycleCallbacks {
-    ctor public FragmentManager.FragmentLifecycleCallbacks();
-    method public void onFragmentActivityCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
-    method public void onFragmentAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
-    method public void onFragmentCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
-    method public void onFragmentDestroyed(android.app.FragmentManager, android.app.Fragment);
-    method public void onFragmentDetached(android.app.FragmentManager, android.app.Fragment);
-    method public void onFragmentPaused(android.app.FragmentManager, android.app.Fragment);
-    method public void onFragmentPreAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
-    method public void onFragmentPreCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
-    method public void onFragmentResumed(android.app.FragmentManager, android.app.Fragment);
-    method public void onFragmentSaveInstanceState(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
-    method public void onFragmentStarted(android.app.FragmentManager, android.app.Fragment);
-    method public void onFragmentStopped(android.app.FragmentManager, android.app.Fragment);
-    method public void onFragmentViewCreated(android.app.FragmentManager, android.app.Fragment, android.view.View, android.os.Bundle);
-    method public void onFragmentViewDestroyed(android.app.FragmentManager, android.app.Fragment);
+  @Deprecated public abstract static class FragmentManager.FragmentLifecycleCallbacks {
+    ctor @Deprecated public FragmentManager.FragmentLifecycleCallbacks();
+    method @Deprecated public void onFragmentActivityCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
+    method @Deprecated public void onFragmentAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
+    method @Deprecated public void onFragmentCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
+    method @Deprecated public void onFragmentDestroyed(android.app.FragmentManager, android.app.Fragment);
+    method @Deprecated public void onFragmentDetached(android.app.FragmentManager, android.app.Fragment);
+    method @Deprecated public void onFragmentPaused(android.app.FragmentManager, android.app.Fragment);
+    method @Deprecated public void onFragmentPreAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
+    method @Deprecated public void onFragmentPreCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
+    method @Deprecated public void onFragmentResumed(android.app.FragmentManager, android.app.Fragment);
+    method @Deprecated public void onFragmentSaveInstanceState(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
+    method @Deprecated public void onFragmentStarted(android.app.FragmentManager, android.app.Fragment);
+    method @Deprecated public void onFragmentStopped(android.app.FragmentManager, android.app.Fragment);
+    method @Deprecated public void onFragmentViewCreated(android.app.FragmentManager, android.app.Fragment, android.view.View, android.os.Bundle);
+    method @Deprecated public void onFragmentViewDestroyed(android.app.FragmentManager, android.app.Fragment);
   }
 
-  public static abstract deprecated interface FragmentManager.OnBackStackChangedListener {
-    method public abstract void onBackStackChanged();
+  @Deprecated public static interface FragmentManager.OnBackStackChangedListener {
+    method @Deprecated public void onBackStackChanged();
   }
 
-  public deprecated class FragmentManagerNonConfig {
+  @Deprecated public class FragmentManagerNonConfig {
   }
 
-  public abstract deprecated class FragmentTransaction {
-    ctor public FragmentTransaction();
-    method public abstract android.app.FragmentTransaction add(android.app.Fragment, java.lang.String);
-    method public abstract android.app.FragmentTransaction add(int, android.app.Fragment);
-    method public abstract android.app.FragmentTransaction add(int, android.app.Fragment, java.lang.String);
-    method public abstract android.app.FragmentTransaction addSharedElement(android.view.View, java.lang.String);
-    method public abstract android.app.FragmentTransaction addToBackStack(java.lang.String);
-    method public abstract android.app.FragmentTransaction attach(android.app.Fragment);
-    method public abstract int commit();
-    method public abstract int commitAllowingStateLoss();
-    method public abstract void commitNow();
-    method public abstract void commitNowAllowingStateLoss();
-    method public abstract android.app.FragmentTransaction detach(android.app.Fragment);
-    method public abstract android.app.FragmentTransaction disallowAddToBackStack();
-    method public abstract android.app.FragmentTransaction hide(android.app.Fragment);
-    method public abstract boolean isAddToBackStackAllowed();
-    method public abstract boolean isEmpty();
-    method public abstract android.app.FragmentTransaction remove(android.app.Fragment);
-    method public abstract android.app.FragmentTransaction replace(int, android.app.Fragment);
-    method public abstract android.app.FragmentTransaction replace(int, android.app.Fragment, java.lang.String);
-    method public abstract android.app.FragmentTransaction runOnCommit(java.lang.Runnable);
-    method public abstract android.app.FragmentTransaction setBreadCrumbShortTitle(int);
-    method public abstract android.app.FragmentTransaction setBreadCrumbShortTitle(java.lang.CharSequence);
-    method public abstract android.app.FragmentTransaction setBreadCrumbTitle(int);
-    method public abstract android.app.FragmentTransaction setBreadCrumbTitle(java.lang.CharSequence);
-    method public abstract android.app.FragmentTransaction setCustomAnimations(int, int);
-    method public abstract android.app.FragmentTransaction setCustomAnimations(int, int, int, int);
-    method public abstract android.app.FragmentTransaction setPrimaryNavigationFragment(android.app.Fragment);
-    method public abstract android.app.FragmentTransaction setReorderingAllowed(boolean);
-    method public abstract android.app.FragmentTransaction setTransition(int);
-    method public abstract android.app.FragmentTransaction setTransitionStyle(int);
-    method public abstract android.app.FragmentTransaction show(android.app.Fragment);
-    field public static final int TRANSIT_ENTER_MASK = 4096; // 0x1000
-    field public static final int TRANSIT_EXIT_MASK = 8192; // 0x2000
-    field public static final int TRANSIT_FRAGMENT_CLOSE = 8194; // 0x2002
-    field public static final int TRANSIT_FRAGMENT_FADE = 4099; // 0x1003
-    field public static final int TRANSIT_FRAGMENT_OPEN = 4097; // 0x1001
-    field public static final int TRANSIT_NONE = 0; // 0x0
-    field public static final int TRANSIT_UNSET = -1; // 0xffffffff
+  @Deprecated public abstract class FragmentTransaction {
+    ctor @Deprecated public FragmentTransaction();
+    method @Deprecated public abstract android.app.FragmentTransaction add(android.app.Fragment, String);
+    method @Deprecated public abstract android.app.FragmentTransaction add(@IdRes int, android.app.Fragment);
+    method @Deprecated public abstract android.app.FragmentTransaction add(@IdRes int, android.app.Fragment, String);
+    method @Deprecated public abstract android.app.FragmentTransaction addSharedElement(android.view.View, String);
+    method @Deprecated public abstract android.app.FragmentTransaction addToBackStack(@Nullable String);
+    method @Deprecated public abstract android.app.FragmentTransaction attach(android.app.Fragment);
+    method @Deprecated public abstract int commit();
+    method @Deprecated public abstract int commitAllowingStateLoss();
+    method @Deprecated public abstract void commitNow();
+    method @Deprecated public abstract void commitNowAllowingStateLoss();
+    method @Deprecated public abstract android.app.FragmentTransaction detach(android.app.Fragment);
+    method @Deprecated public abstract android.app.FragmentTransaction disallowAddToBackStack();
+    method @Deprecated public abstract android.app.FragmentTransaction hide(android.app.Fragment);
+    method @Deprecated public abstract boolean isAddToBackStackAllowed();
+    method @Deprecated public abstract boolean isEmpty();
+    method @Deprecated public abstract android.app.FragmentTransaction remove(android.app.Fragment);
+    method @Deprecated public abstract android.app.FragmentTransaction replace(@IdRes int, android.app.Fragment);
+    method @Deprecated public abstract android.app.FragmentTransaction replace(@IdRes int, android.app.Fragment, String);
+    method @Deprecated public abstract android.app.FragmentTransaction runOnCommit(Runnable);
+    method @Deprecated public abstract android.app.FragmentTransaction setBreadCrumbShortTitle(@StringRes int);
+    method @Deprecated public abstract android.app.FragmentTransaction setBreadCrumbShortTitle(CharSequence);
+    method @Deprecated public abstract android.app.FragmentTransaction setBreadCrumbTitle(@StringRes int);
+    method @Deprecated public abstract android.app.FragmentTransaction setBreadCrumbTitle(CharSequence);
+    method @Deprecated public abstract android.app.FragmentTransaction setCustomAnimations(@AnimatorRes int, @AnimatorRes int);
+    method @Deprecated public abstract android.app.FragmentTransaction setCustomAnimations(@AnimatorRes int, @AnimatorRes int, @AnimatorRes int, @AnimatorRes int);
+    method @Deprecated public abstract android.app.FragmentTransaction setPrimaryNavigationFragment(android.app.Fragment);
+    method @Deprecated public abstract android.app.FragmentTransaction setReorderingAllowed(boolean);
+    method @Deprecated public abstract android.app.FragmentTransaction setTransition(int);
+    method @Deprecated public abstract android.app.FragmentTransaction setTransitionStyle(@StyleRes int);
+    method @Deprecated public abstract android.app.FragmentTransaction show(android.app.Fragment);
+    field @Deprecated public static final int TRANSIT_ENTER_MASK = 4096; // 0x1000
+    field @Deprecated public static final int TRANSIT_EXIT_MASK = 8192; // 0x2000
+    field @Deprecated public static final int TRANSIT_FRAGMENT_CLOSE = 8194; // 0x2002
+    field @Deprecated public static final int TRANSIT_FRAGMENT_FADE = 4099; // 0x1003
+    field @Deprecated public static final int TRANSIT_FRAGMENT_OPEN = 4097; // 0x1001
+    field @Deprecated public static final int TRANSIT_NONE = 0; // 0x0
+    field @Deprecated public static final int TRANSIT_UNSET = -1; // 0xffffffff
   }
 
   public class Instrumentation {
@@ -4999,21 +5003,21 @@
     method public android.os.TestLooperManager acquireLooperManager(android.os.Looper);
     method public void addMonitor(android.app.Instrumentation.ActivityMonitor);
     method public android.app.Instrumentation.ActivityMonitor addMonitor(android.content.IntentFilter, android.app.Instrumentation.ActivityResult, boolean);
-    method public android.app.Instrumentation.ActivityMonitor addMonitor(java.lang.String, android.app.Instrumentation.ActivityResult, boolean);
+    method public android.app.Instrumentation.ActivityMonitor addMonitor(String, android.app.Instrumentation.ActivityResult, boolean);
     method public void addResults(android.os.Bundle);
     method public void callActivityOnCreate(android.app.Activity, android.os.Bundle);
     method public void callActivityOnCreate(android.app.Activity, android.os.Bundle, android.os.PersistableBundle);
     method public void callActivityOnDestroy(android.app.Activity);
     method public void callActivityOnNewIntent(android.app.Activity, android.content.Intent);
     method public void callActivityOnPause(android.app.Activity);
-    method public void callActivityOnPostCreate(android.app.Activity, android.os.Bundle);
-    method public void callActivityOnPostCreate(android.app.Activity, android.os.Bundle, android.os.PersistableBundle);
+    method public void callActivityOnPostCreate(@NonNull android.app.Activity, @Nullable android.os.Bundle);
+    method public void callActivityOnPostCreate(@NonNull android.app.Activity, @Nullable android.os.Bundle, @Nullable android.os.PersistableBundle);
     method public void callActivityOnRestart(android.app.Activity);
-    method public void callActivityOnRestoreInstanceState(android.app.Activity, android.os.Bundle);
-    method public void callActivityOnRestoreInstanceState(android.app.Activity, android.os.Bundle, android.os.PersistableBundle);
+    method public void callActivityOnRestoreInstanceState(@NonNull android.app.Activity, @NonNull android.os.Bundle);
+    method public void callActivityOnRestoreInstanceState(@NonNull android.app.Activity, @Nullable android.os.Bundle, @Nullable android.os.PersistableBundle);
     method public void callActivityOnResume(android.app.Activity);
-    method public void callActivityOnSaveInstanceState(android.app.Activity, android.os.Bundle);
-    method public void callActivityOnSaveInstanceState(android.app.Activity, android.os.Bundle, android.os.PersistableBundle);
+    method public void callActivityOnSaveInstanceState(@NonNull android.app.Activity, @NonNull android.os.Bundle);
+    method public void callActivityOnSaveInstanceState(@NonNull android.app.Activity, @NonNull android.os.Bundle, @NonNull android.os.PersistableBundle);
     method public void callActivityOnStart(android.app.Activity);
     method public void callActivityOnStop(android.app.Activity);
     method public void callActivityOnUserLeaving(android.app.Activity);
@@ -5025,51 +5029,51 @@
     method public android.os.Bundle getBinderCounts();
     method public android.content.ComponentName getComponentName();
     method public android.content.Context getContext();
-    method public java.lang.String getProcessName();
+    method public String getProcessName();
     method public android.content.Context getTargetContext();
     method public android.app.UiAutomation getUiAutomation();
     method public android.app.UiAutomation getUiAutomation(int);
     method public boolean invokeContextMenuAction(android.app.Activity, int, int);
     method public boolean invokeMenuActionSync(android.app.Activity, int, int);
     method public boolean isProfiling();
-    method public android.app.Activity newActivity(java.lang.Class<?>, android.content.Context, android.os.IBinder, android.app.Application, android.content.Intent, android.content.pm.ActivityInfo, java.lang.CharSequence, android.app.Activity, java.lang.String, java.lang.Object) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public android.app.Activity newActivity(java.lang.ClassLoader, java.lang.String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public android.app.Application newApplication(java.lang.ClassLoader, java.lang.String, android.content.Context) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public static android.app.Application newApplication(java.lang.Class<?>, android.content.Context) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.app.Activity newActivity(Class<?>, android.content.Context, android.os.IBinder, android.app.Application, android.content.Intent, android.content.pm.ActivityInfo, CharSequence, android.app.Activity, String, Object) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.app.Activity newActivity(ClassLoader, String, android.content.Intent) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public android.app.Application newApplication(ClassLoader, String, android.content.Context) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public static android.app.Application newApplication(Class<?>, android.content.Context) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
     method public void onCreate(android.os.Bundle);
     method public void onDestroy();
-    method public boolean onException(java.lang.Object, java.lang.Throwable);
+    method public boolean onException(Object, Throwable);
     method public void onStart();
     method public void removeMonitor(android.app.Instrumentation.ActivityMonitor);
-    method public void runOnMainSync(java.lang.Runnable);
+    method public void runOnMainSync(Runnable);
     method public void sendCharacterSync(int);
     method public void sendKeyDownUpSync(int);
     method public void sendKeySync(android.view.KeyEvent);
     method public void sendPointerSync(android.view.MotionEvent);
     method public void sendStatus(int, android.os.Bundle);
-    method public void sendStringSync(java.lang.String);
+    method public void sendStringSync(String);
     method public void sendTrackballEventSync(android.view.MotionEvent);
     method public void setAutomaticPerformanceSnapshots();
     method public void setInTouchMode(boolean);
     method public void start();
     method public android.app.Activity startActivitySync(android.content.Intent);
-    method public android.app.Activity startActivitySync(android.content.Intent, android.os.Bundle);
-    method public deprecated void startAllocCounting();
+    method @NonNull public android.app.Activity startActivitySync(@NonNull android.content.Intent, @Nullable android.os.Bundle);
+    method @Deprecated public void startAllocCounting();
     method public void startPerformanceSnapshot();
     method public void startProfiling();
-    method public deprecated void stopAllocCounting();
+    method @Deprecated public void stopAllocCounting();
     method public void stopProfiling();
-    method public void waitForIdle(java.lang.Runnable);
+    method public void waitForIdle(Runnable);
     method public void waitForIdleSync();
     method public android.app.Activity waitForMonitor(android.app.Instrumentation.ActivityMonitor);
     method public android.app.Activity waitForMonitorWithTimeout(android.app.Instrumentation.ActivityMonitor, long);
-    field public static final java.lang.String REPORT_KEY_IDENTIFIER = "id";
-    field public static final java.lang.String REPORT_KEY_STREAMRESULT = "stream";
+    field public static final String REPORT_KEY_IDENTIFIER = "id";
+    field public static final String REPORT_KEY_STREAMRESULT = "stream";
   }
 
   public static class Instrumentation.ActivityMonitor {
     ctor public Instrumentation.ActivityMonitor(android.content.IntentFilter, android.app.Instrumentation.ActivityResult, boolean);
-    ctor public Instrumentation.ActivityMonitor(java.lang.String, android.app.Instrumentation.ActivityResult, boolean);
+    ctor public Instrumentation.ActivityMonitor(String, android.app.Instrumentation.ActivityResult, boolean);
     ctor public Instrumentation.ActivityMonitor();
     method public final android.content.IntentFilter getFilter();
     method public final int getHits();
@@ -5088,39 +5092,39 @@
   }
 
   public abstract class IntentService extends android.app.Service {
-    ctor public IntentService(java.lang.String);
-    method public android.os.IBinder onBind(android.content.Intent);
-    method protected abstract void onHandleIntent(android.content.Intent);
-    method public void onStart(android.content.Intent, int);
+    ctor public IntentService(String);
+    method @Nullable public android.os.IBinder onBind(android.content.Intent);
+    method @WorkerThread protected abstract void onHandleIntent(@Nullable android.content.Intent);
+    method public void onStart(@Nullable android.content.Intent, int);
     method public void setIntentRedelivery(boolean);
   }
 
   public class KeyguardManager {
-    method public android.content.Intent createConfirmDeviceCredentialIntent(java.lang.CharSequence, java.lang.CharSequence);
-    method public deprecated void exitKeyguardSecurely(android.app.KeyguardManager.OnKeyguardExitResult);
-    method public deprecated boolean inKeyguardRestrictedInputMode();
+    method public android.content.Intent createConfirmDeviceCredentialIntent(CharSequence, CharSequence);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.DISABLE_KEYGUARD) public void exitKeyguardSecurely(android.app.KeyguardManager.OnKeyguardExitResult);
+    method @Deprecated public boolean inKeyguardRestrictedInputMode();
     method public boolean isDeviceLocked();
     method public boolean isDeviceSecure();
     method public boolean isKeyguardLocked();
     method public boolean isKeyguardSecure();
-    method public deprecated android.app.KeyguardManager.KeyguardLock newKeyguardLock(java.lang.String);
-    method public void requestDismissKeyguard(android.app.Activity, android.app.KeyguardManager.KeyguardDismissCallback);
+    method @Deprecated public android.app.KeyguardManager.KeyguardLock newKeyguardLock(String);
+    method public void requestDismissKeyguard(@NonNull android.app.Activity, @Nullable android.app.KeyguardManager.KeyguardDismissCallback);
   }
 
-  public static abstract class KeyguardManager.KeyguardDismissCallback {
+  public abstract static class KeyguardManager.KeyguardDismissCallback {
     ctor public KeyguardManager.KeyguardDismissCallback();
     method public void onDismissCancelled();
     method public void onDismissError();
     method public void onDismissSucceeded();
   }
 
-  public deprecated class KeyguardManager.KeyguardLock {
-    method public void disableKeyguard();
-    method public void reenableKeyguard();
+  @Deprecated public class KeyguardManager.KeyguardLock {
+    method @Deprecated @RequiresPermission(android.Manifest.permission.DISABLE_KEYGUARD) public void disableKeyguard();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.DISABLE_KEYGUARD) public void reenableKeyguard();
   }
 
-  public static abstract deprecated interface KeyguardManager.OnKeyguardExitResult {
-    method public abstract void onKeyguardExitResult(boolean);
+  @Deprecated public static interface KeyguardManager.OnKeyguardExitResult {
+    method @Deprecated public void onKeyguardExitResult(boolean);
   }
 
   public abstract class LauncherActivity extends android.app.ListActivity {
@@ -5140,11 +5144,11 @@
 
   public static class LauncherActivity.ListItem {
     ctor public LauncherActivity.ListItem();
-    field public java.lang.String className;
+    field public String className;
     field public android.os.Bundle extras;
     field public android.graphics.drawable.Drawable icon;
-    field public java.lang.CharSequence label;
-    field public java.lang.String packageName;
+    field public CharSequence label;
+    field public String packageName;
     field public android.content.pm.ResolveInfo resolveInfo;
   }
 
@@ -5159,50 +5163,50 @@
     method public void setSelection(int);
   }
 
-  public deprecated class ListFragment extends android.app.Fragment {
-    ctor public ListFragment();
-    method public android.widget.ListAdapter getListAdapter();
-    method public android.widget.ListView getListView();
-    method public long getSelectedItemId();
-    method public int getSelectedItemPosition();
-    method public void onListItemClick(android.widget.ListView, android.view.View, int, long);
-    method public void setEmptyText(java.lang.CharSequence);
-    method public void setListAdapter(android.widget.ListAdapter);
-    method public void setListShown(boolean);
-    method public void setListShownNoAnimation(boolean);
-    method public void setSelection(int);
+  @Deprecated public class ListFragment extends android.app.Fragment {
+    ctor @Deprecated public ListFragment();
+    method @Deprecated public android.widget.ListAdapter getListAdapter();
+    method @Deprecated public android.widget.ListView getListView();
+    method @Deprecated public long getSelectedItemId();
+    method @Deprecated public int getSelectedItemPosition();
+    method @Deprecated public void onListItemClick(android.widget.ListView, android.view.View, int, long);
+    method @Deprecated public void setEmptyText(CharSequence);
+    method @Deprecated public void setListAdapter(android.widget.ListAdapter);
+    method @Deprecated public void setListShown(boolean);
+    method @Deprecated public void setListShownNoAnimation(boolean);
+    method @Deprecated public void setSelection(int);
   }
 
-  public abstract deprecated class LoaderManager {
-    ctor public LoaderManager();
-    method public abstract void destroyLoader(int);
-    method public abstract void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public static void enableDebugLogging(boolean);
-    method public abstract <D> android.content.Loader<D> getLoader(int);
-    method public abstract <D> android.content.Loader<D> initLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks<D>);
-    method public abstract <D> android.content.Loader<D> restartLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks<D>);
+  @Deprecated public abstract class LoaderManager {
+    ctor @Deprecated public LoaderManager();
+    method @Deprecated public abstract void destroyLoader(int);
+    method @Deprecated public abstract void dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]);
+    method @Deprecated public static void enableDebugLogging(boolean);
+    method @Deprecated public abstract <D> android.content.Loader<D> getLoader(int);
+    method @Deprecated public abstract <D> android.content.Loader<D> initLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks<D>);
+    method @Deprecated public abstract <D> android.content.Loader<D> restartLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks<D>);
   }
 
-  public static abstract deprecated interface LoaderManager.LoaderCallbacks<D> {
-    method public abstract android.content.Loader<D> onCreateLoader(int, android.os.Bundle);
-    method public abstract void onLoadFinished(android.content.Loader<D>, D);
-    method public abstract void onLoaderReset(android.content.Loader<D>);
+  @Deprecated public static interface LoaderManager.LoaderCallbacks<D> {
+    method @Deprecated public android.content.Loader<D> onCreateLoader(int, android.os.Bundle);
+    method @Deprecated public void onLoadFinished(android.content.Loader<D>, D);
+    method @Deprecated public void onLoaderReset(android.content.Loader<D>);
   }
 
-  public deprecated class LocalActivityManager {
-    ctor public LocalActivityManager(android.app.Activity, boolean);
-    method public android.view.Window destroyActivity(java.lang.String, boolean);
-    method public void dispatchCreate(android.os.Bundle);
-    method public void dispatchDestroy(boolean);
-    method public void dispatchPause(boolean);
-    method public void dispatchResume();
-    method public void dispatchStop();
-    method public android.app.Activity getActivity(java.lang.String);
-    method public android.app.Activity getCurrentActivity();
-    method public java.lang.String getCurrentId();
-    method public void removeAllActivities();
-    method public android.os.Bundle saveInstanceState();
-    method public android.view.Window startActivity(java.lang.String, android.content.Intent);
+  @Deprecated public class LocalActivityManager {
+    ctor @Deprecated public LocalActivityManager(android.app.Activity, boolean);
+    method @Deprecated public android.view.Window destroyActivity(String, boolean);
+    method @Deprecated public void dispatchCreate(android.os.Bundle);
+    method @Deprecated public void dispatchDestroy(boolean);
+    method @Deprecated public void dispatchPause(boolean);
+    method @Deprecated public void dispatchResume();
+    method @Deprecated public void dispatchStop();
+    method @Deprecated public android.app.Activity getActivity(String);
+    method @Deprecated public android.app.Activity getCurrentActivity();
+    method @Deprecated public String getCurrentId();
+    method @Deprecated public void removeAllActivities();
+    method @Deprecated public android.os.Bundle saveInstanceState();
+    method @Deprecated public android.view.Window startActivity(String, android.content.Intent);
   }
 
   public class MediaRouteActionProvider extends android.view.ActionProvider {
@@ -5234,149 +5238,149 @@
     method public void surfaceCreated(android.view.SurfaceHolder);
     method public void surfaceDestroyed(android.view.SurfaceHolder);
     method public void surfaceRedrawNeeded(android.view.SurfaceHolder);
-    field public static final java.lang.String META_DATA_FUNC_NAME = "android.app.func_name";
-    field public static final java.lang.String META_DATA_LIB_NAME = "android.app.lib_name";
+    field public static final String META_DATA_FUNC_NAME = "android.app.func_name";
+    field public static final String META_DATA_LIB_NAME = "android.app.lib_name";
   }
 
   public class Notification implements android.os.Parcelable {
     ctor public Notification();
-    ctor public deprecated Notification(int, java.lang.CharSequence, long);
+    ctor @Deprecated public Notification(int, CharSequence, long);
     ctor public Notification(android.os.Parcel);
     method public android.app.Notification clone();
     method public int describeContents();
     method public boolean getAllowSystemGeneratedContextualActions();
     method public int getBadgeIconType();
     method public android.app.Notification.BubbleMetadata getBubbleMetadata();
-    method public java.lang.String getChannelId();
-    method public java.lang.String getGroup();
+    method public String getChannelId();
+    method public String getGroup();
     method public int getGroupAlertBehavior();
     method public android.graphics.drawable.Icon getLargeIcon();
-    method public java.lang.CharSequence getSettingsText();
-    method public java.lang.String getShortcutId();
+    method public CharSequence getSettingsText();
+    method public String getShortcutId();
     method public android.graphics.drawable.Icon getSmallIcon();
-    method public java.lang.String getSortKey();
+    method public String getSortKey();
     method public long getTimeoutAfter();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.media.AudioAttributes AUDIO_ATTRIBUTES_DEFAULT;
     field public static final int BADGE_ICON_LARGE = 2; // 0x2
     field public static final int BADGE_ICON_NONE = 0; // 0x0
     field public static final int BADGE_ICON_SMALL = 1; // 0x1
-    field public static final java.lang.String CATEGORY_ALARM = "alarm";
-    field public static final java.lang.String CATEGORY_CALL = "call";
-    field public static final java.lang.String CATEGORY_EMAIL = "email";
-    field public static final java.lang.String CATEGORY_ERROR = "err";
-    field public static final java.lang.String CATEGORY_EVENT = "event";
-    field public static final java.lang.String CATEGORY_MESSAGE = "msg";
-    field public static final java.lang.String CATEGORY_NAVIGATION = "navigation";
-    field public static final java.lang.String CATEGORY_PROGRESS = "progress";
-    field public static final java.lang.String CATEGORY_PROMO = "promo";
-    field public static final java.lang.String CATEGORY_RECOMMENDATION = "recommendation";
-    field public static final java.lang.String CATEGORY_REMINDER = "reminder";
-    field public static final java.lang.String CATEGORY_SERVICE = "service";
-    field public static final java.lang.String CATEGORY_SOCIAL = "social";
-    field public static final java.lang.String CATEGORY_STATUS = "status";
-    field public static final java.lang.String CATEGORY_SYSTEM = "sys";
-    field public static final java.lang.String CATEGORY_TRANSPORT = "transport";
-    field public static final int COLOR_DEFAULT = 0; // 0x0
+    field public static final String CATEGORY_ALARM = "alarm";
+    field public static final String CATEGORY_CALL = "call";
+    field public static final String CATEGORY_EMAIL = "email";
+    field public static final String CATEGORY_ERROR = "err";
+    field public static final String CATEGORY_EVENT = "event";
+    field public static final String CATEGORY_MESSAGE = "msg";
+    field public static final String CATEGORY_NAVIGATION = "navigation";
+    field public static final String CATEGORY_PROGRESS = "progress";
+    field public static final String CATEGORY_PROMO = "promo";
+    field public static final String CATEGORY_RECOMMENDATION = "recommendation";
+    field public static final String CATEGORY_REMINDER = "reminder";
+    field public static final String CATEGORY_SERVICE = "service";
+    field public static final String CATEGORY_SOCIAL = "social";
+    field public static final String CATEGORY_STATUS = "status";
+    field public static final String CATEGORY_SYSTEM = "sys";
+    field public static final String CATEGORY_TRANSPORT = "transport";
+    field @ColorInt public static final int COLOR_DEFAULT = 0; // 0x0
     field public static final android.os.Parcelable.Creator<android.app.Notification> CREATOR;
     field public static final int DEFAULT_ALL = -1; // 0xffffffff
     field public static final int DEFAULT_LIGHTS = 4; // 0x4
     field public static final int DEFAULT_SOUND = 1; // 0x1
     field public static final int DEFAULT_VIBRATE = 2; // 0x2
-    field public static final java.lang.String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
-    field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
-    field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText";
-    field public static final java.lang.String EXTRA_CHANNEL_GROUP_ID = "android.intent.extra.CHANNEL_GROUP_ID";
-    field public static final java.lang.String EXTRA_CHANNEL_ID = "android.intent.extra.CHANNEL_ID";
-    field public static final java.lang.String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
-    field public static final java.lang.String EXTRA_COLORIZED = "android.colorized";
-    field public static final java.lang.String EXTRA_COMPACT_ACTIONS = "android.compactActions";
-    field public static final java.lang.String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
-    field public static final java.lang.String EXTRA_HISTORIC_MESSAGES = "android.messages.historic";
-    field public static final java.lang.String EXTRA_INFO_TEXT = "android.infoText";
-    field public static final java.lang.String EXTRA_IS_GROUP_CONVERSATION = "android.isGroupConversation";
-    field public static final deprecated java.lang.String EXTRA_LARGE_ICON = "android.largeIcon";
-    field public static final java.lang.String EXTRA_LARGE_ICON_BIG = "android.largeIcon.big";
-    field public static final java.lang.String EXTRA_MEDIA_SESSION = "android.mediaSession";
-    field public static final java.lang.String EXTRA_MESSAGES = "android.messages";
-    field public static final java.lang.String EXTRA_MESSAGING_PERSON = "android.messagingUser";
-    field public static final java.lang.String EXTRA_NOTIFICATION_ID = "android.intent.extra.NOTIFICATION_ID";
-    field public static final java.lang.String EXTRA_NOTIFICATION_TAG = "android.intent.extra.NOTIFICATION_TAG";
-    field public static final deprecated java.lang.String EXTRA_PEOPLE = "android.people";
-    field public static final java.lang.String EXTRA_PEOPLE_LIST = "android.people.list";
-    field public static final java.lang.String EXTRA_PICTURE = "android.picture";
-    field public static final java.lang.String EXTRA_PROGRESS = "android.progress";
-    field public static final java.lang.String EXTRA_PROGRESS_INDETERMINATE = "android.progressIndeterminate";
-    field public static final java.lang.String EXTRA_PROGRESS_MAX = "android.progressMax";
-    field public static final java.lang.String EXTRA_REMOTE_INPUT_DRAFT = "android.remoteInputDraft";
-    field public static final java.lang.String EXTRA_REMOTE_INPUT_HISTORY = "android.remoteInputHistory";
-    field public static final deprecated java.lang.String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName";
-    field public static final java.lang.String EXTRA_SHOW_CHRONOMETER = "android.showChronometer";
-    field public static final java.lang.String EXTRA_SHOW_WHEN = "android.showWhen";
-    field public static final deprecated java.lang.String EXTRA_SMALL_ICON = "android.icon";
-    field public static final java.lang.String EXTRA_SUB_TEXT = "android.subText";
-    field public static final java.lang.String EXTRA_SUMMARY_TEXT = "android.summaryText";
-    field public static final java.lang.String EXTRA_TEMPLATE = "android.template";
-    field public static final java.lang.String EXTRA_TEXT = "android.text";
-    field public static final java.lang.String EXTRA_TEXT_LINES = "android.textLines";
-    field public static final java.lang.String EXTRA_TITLE = "android.title";
-    field public static final java.lang.String EXTRA_TITLE_BIG = "android.title.big";
+    field public static final String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
+    field public static final String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
+    field public static final String EXTRA_BIG_TEXT = "android.bigText";
+    field public static final String EXTRA_CHANNEL_GROUP_ID = "android.intent.extra.CHANNEL_GROUP_ID";
+    field public static final String EXTRA_CHANNEL_ID = "android.intent.extra.CHANNEL_ID";
+    field public static final String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
+    field public static final String EXTRA_COLORIZED = "android.colorized";
+    field public static final String EXTRA_COMPACT_ACTIONS = "android.compactActions";
+    field public static final String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
+    field public static final String EXTRA_HISTORIC_MESSAGES = "android.messages.historic";
+    field public static final String EXTRA_INFO_TEXT = "android.infoText";
+    field public static final String EXTRA_IS_GROUP_CONVERSATION = "android.isGroupConversation";
+    field @Deprecated public static final String EXTRA_LARGE_ICON = "android.largeIcon";
+    field public static final String EXTRA_LARGE_ICON_BIG = "android.largeIcon.big";
+    field public static final String EXTRA_MEDIA_SESSION = "android.mediaSession";
+    field public static final String EXTRA_MESSAGES = "android.messages";
+    field public static final String EXTRA_MESSAGING_PERSON = "android.messagingUser";
+    field public static final String EXTRA_NOTIFICATION_ID = "android.intent.extra.NOTIFICATION_ID";
+    field public static final String EXTRA_NOTIFICATION_TAG = "android.intent.extra.NOTIFICATION_TAG";
+    field @Deprecated public static final String EXTRA_PEOPLE = "android.people";
+    field public static final String EXTRA_PEOPLE_LIST = "android.people.list";
+    field public static final String EXTRA_PICTURE = "android.picture";
+    field public static final String EXTRA_PROGRESS = "android.progress";
+    field public static final String EXTRA_PROGRESS_INDETERMINATE = "android.progressIndeterminate";
+    field public static final String EXTRA_PROGRESS_MAX = "android.progressMax";
+    field public static final String EXTRA_REMOTE_INPUT_DRAFT = "android.remoteInputDraft";
+    field public static final String EXTRA_REMOTE_INPUT_HISTORY = "android.remoteInputHistory";
+    field @Deprecated public static final String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName";
+    field public static final String EXTRA_SHOW_CHRONOMETER = "android.showChronometer";
+    field public static final String EXTRA_SHOW_WHEN = "android.showWhen";
+    field @Deprecated public static final String EXTRA_SMALL_ICON = "android.icon";
+    field public static final String EXTRA_SUB_TEXT = "android.subText";
+    field public static final String EXTRA_SUMMARY_TEXT = "android.summaryText";
+    field public static final String EXTRA_TEMPLATE = "android.template";
+    field public static final String EXTRA_TEXT = "android.text";
+    field public static final String EXTRA_TEXT_LINES = "android.textLines";
+    field public static final String EXTRA_TITLE = "android.title";
+    field public static final String EXTRA_TITLE_BIG = "android.title.big";
     field public static final int FLAG_AUTO_CANCEL = 16; // 0x10
     field public static final int FLAG_FOREGROUND_SERVICE = 64; // 0x40
     field public static final int FLAG_GROUP_SUMMARY = 512; // 0x200
-    field public static final deprecated int FLAG_HIGH_PRIORITY = 128; // 0x80
+    field @Deprecated public static final int FLAG_HIGH_PRIORITY = 128; // 0x80
     field public static final int FLAG_INSISTENT = 4; // 0x4
     field public static final int FLAG_LOCAL_ONLY = 256; // 0x100
     field public static final int FLAG_NO_CLEAR = 32; // 0x20
     field public static final int FLAG_ONGOING_EVENT = 2; // 0x2
     field public static final int FLAG_ONLY_ALERT_ONCE = 8; // 0x8
-    field public static final deprecated int FLAG_SHOW_LIGHTS = 1; // 0x1
+    field @Deprecated public static final int FLAG_SHOW_LIGHTS = 1; // 0x1
     field public static final int GROUP_ALERT_ALL = 0; // 0x0
     field public static final int GROUP_ALERT_CHILDREN = 2; // 0x2
     field public static final int GROUP_ALERT_SUMMARY = 1; // 0x1
-    field public static final java.lang.String INTENT_CATEGORY_NOTIFICATION_PREFERENCES = "android.intent.category.NOTIFICATION_PREFERENCES";
-    field public static final deprecated int PRIORITY_DEFAULT = 0; // 0x0
-    field public static final deprecated int PRIORITY_HIGH = 1; // 0x1
-    field public static final deprecated int PRIORITY_LOW = -1; // 0xffffffff
-    field public static final deprecated int PRIORITY_MAX = 2; // 0x2
-    field public static final deprecated int PRIORITY_MIN = -2; // 0xfffffffe
-    field public static final deprecated int STREAM_DEFAULT = -1; // 0xffffffff
+    field public static final String INTENT_CATEGORY_NOTIFICATION_PREFERENCES = "android.intent.category.NOTIFICATION_PREFERENCES";
+    field @Deprecated public static final int PRIORITY_DEFAULT = 0; // 0x0
+    field @Deprecated public static final int PRIORITY_HIGH = 1; // 0x1
+    field @Deprecated public static final int PRIORITY_LOW = -1; // 0xffffffff
+    field @Deprecated public static final int PRIORITY_MAX = 2; // 0x2
+    field @Deprecated public static final int PRIORITY_MIN = -2; // 0xfffffffe
+    field @Deprecated public static final int STREAM_DEFAULT = -1; // 0xffffffff
     field public static final int VISIBILITY_PRIVATE = 0; // 0x0
     field public static final int VISIBILITY_PUBLIC = 1; // 0x1
     field public static final int VISIBILITY_SECRET = -1; // 0xffffffff
     field public android.app.Notification.Action[] actions;
-    field public deprecated android.media.AudioAttributes audioAttributes;
-    field public deprecated int audioStreamType;
-    field public deprecated android.widget.RemoteViews bigContentView;
-    field public java.lang.String category;
-    field public int color;
+    field @Deprecated public android.media.AudioAttributes audioAttributes;
+    field @Deprecated public int audioStreamType;
+    field @Deprecated public android.widget.RemoteViews bigContentView;
+    field public String category;
+    field @ColorInt public int color;
     field public android.app.PendingIntent contentIntent;
-    field public deprecated android.widget.RemoteViews contentView;
-    field public deprecated int defaults;
+    field @Deprecated public android.widget.RemoteViews contentView;
+    field @Deprecated public int defaults;
     field public android.app.PendingIntent deleteIntent;
     field public android.os.Bundle extras;
     field public int flags;
     field public android.app.PendingIntent fullScreenIntent;
-    field public deprecated android.widget.RemoteViews headsUpContentView;
-    field public deprecated int icon;
+    field @Deprecated public android.widget.RemoteViews headsUpContentView;
+    field @Deprecated @DrawableRes public int icon;
     field public int iconLevel;
-    field public deprecated android.graphics.Bitmap largeIcon;
-    field public deprecated int ledARGB;
-    field public deprecated int ledOffMS;
-    field public deprecated int ledOnMS;
+    field @Deprecated public android.graphics.Bitmap largeIcon;
+    field @Deprecated @ColorInt public int ledARGB;
+    field @Deprecated public int ledOffMS;
+    field @Deprecated public int ledOnMS;
     field public int number;
-    field public deprecated int priority;
+    field @Deprecated public int priority;
     field public android.app.Notification publicVersion;
-    field public deprecated android.net.Uri sound;
-    field public java.lang.CharSequence tickerText;
-    field public deprecated android.widget.RemoteViews tickerView;
-    field public deprecated long[] vibrate;
+    field @Deprecated public android.net.Uri sound;
+    field public CharSequence tickerText;
+    field @Deprecated public android.widget.RemoteViews tickerView;
+    field @Deprecated public long[] vibrate;
     field public int visibility;
     field public long when;
   }
 
   public static class Notification.Action implements android.os.Parcelable {
-    ctor public deprecated Notification.Action(int, java.lang.CharSequence, android.app.PendingIntent);
+    ctor @Deprecated public Notification.Action(int, CharSequence, android.app.PendingIntent);
     method public android.app.Notification.Action clone();
     method public int describeContents();
     method public boolean getAllowGeneratedReplies();
@@ -5400,13 +5404,13 @@
     field public static final int SEMANTIC_ACTION_THUMBS_UP = 8; // 0x8
     field public static final int SEMANTIC_ACTION_UNMUTE = 7; // 0x7
     field public android.app.PendingIntent actionIntent;
-    field public deprecated int icon;
-    field public java.lang.CharSequence title;
+    field @Deprecated public int icon;
+    field public CharSequence title;
   }
 
   public static final class Notification.Action.Builder {
-    ctor public deprecated Notification.Action.Builder(int, java.lang.CharSequence, android.app.PendingIntent);
-    ctor public Notification.Action.Builder(android.graphics.drawable.Icon, java.lang.CharSequence, android.app.PendingIntent);
+    ctor @Deprecated public Notification.Action.Builder(int, CharSequence, android.app.PendingIntent);
+    ctor public Notification.Action.Builder(android.graphics.drawable.Icon, CharSequence, android.app.PendingIntent);
     ctor public Notification.Action.Builder(android.app.Notification.Action);
     method public android.app.Notification.Action.Builder addExtras(android.os.Bundle);
     method public android.app.Notification.Action.Builder addRemoteInput(android.app.RemoteInput);
@@ -5418,8 +5422,8 @@
     method public android.app.Notification.Action.Builder setSemanticAction(int);
   }
 
-  public static abstract interface Notification.Action.Extender {
-    method public abstract android.app.Notification.Action.Builder extend(android.app.Notification.Action.Builder);
+  public static interface Notification.Action.Extender {
+    method public android.app.Notification.Action.Builder extend(android.app.Notification.Action.Builder);
   }
 
   public static final class Notification.Action.WearableExtender implements android.app.Notification.Action.Extender {
@@ -5427,36 +5431,36 @@
     ctor public Notification.Action.WearableExtender(android.app.Notification.Action);
     method public android.app.Notification.Action.WearableExtender clone();
     method public android.app.Notification.Action.Builder extend(android.app.Notification.Action.Builder);
-    method public deprecated java.lang.CharSequence getCancelLabel();
-    method public deprecated java.lang.CharSequence getConfirmLabel();
+    method @Deprecated public CharSequence getCancelLabel();
+    method @Deprecated public CharSequence getConfirmLabel();
     method public boolean getHintDisplayActionInline();
     method public boolean getHintLaunchesActivity();
-    method public deprecated java.lang.CharSequence getInProgressLabel();
+    method @Deprecated public CharSequence getInProgressLabel();
     method public boolean isAvailableOffline();
     method public android.app.Notification.Action.WearableExtender setAvailableOffline(boolean);
-    method public deprecated android.app.Notification.Action.WearableExtender setCancelLabel(java.lang.CharSequence);
-    method public deprecated android.app.Notification.Action.WearableExtender setConfirmLabel(java.lang.CharSequence);
+    method @Deprecated public android.app.Notification.Action.WearableExtender setCancelLabel(CharSequence);
+    method @Deprecated public android.app.Notification.Action.WearableExtender setConfirmLabel(CharSequence);
     method public android.app.Notification.Action.WearableExtender setHintDisplayActionInline(boolean);
     method public android.app.Notification.Action.WearableExtender setHintLaunchesActivity(boolean);
-    method public deprecated android.app.Notification.Action.WearableExtender setInProgressLabel(java.lang.CharSequence);
+    method @Deprecated public android.app.Notification.Action.WearableExtender setInProgressLabel(CharSequence);
   }
 
   public static class Notification.BigPictureStyle extends android.app.Notification.Style {
     ctor public Notification.BigPictureStyle();
-    ctor public deprecated Notification.BigPictureStyle(android.app.Notification.Builder);
+    ctor @Deprecated public Notification.BigPictureStyle(android.app.Notification.Builder);
     method public android.app.Notification.BigPictureStyle bigLargeIcon(android.graphics.Bitmap);
     method public android.app.Notification.BigPictureStyle bigLargeIcon(android.graphics.drawable.Icon);
     method public android.app.Notification.BigPictureStyle bigPicture(android.graphics.Bitmap);
-    method public android.app.Notification.BigPictureStyle setBigContentTitle(java.lang.CharSequence);
-    method public android.app.Notification.BigPictureStyle setSummaryText(java.lang.CharSequence);
+    method public android.app.Notification.BigPictureStyle setBigContentTitle(CharSequence);
+    method public android.app.Notification.BigPictureStyle setSummaryText(CharSequence);
   }
 
   public static class Notification.BigTextStyle extends android.app.Notification.Style {
     ctor public Notification.BigTextStyle();
-    ctor public deprecated Notification.BigTextStyle(android.app.Notification.Builder);
-    method public android.app.Notification.BigTextStyle bigText(java.lang.CharSequence);
-    method public android.app.Notification.BigTextStyle setBigContentTitle(java.lang.CharSequence);
-    method public android.app.Notification.BigTextStyle setSummaryText(java.lang.CharSequence);
+    ctor @Deprecated public Notification.BigTextStyle(android.app.Notification.Builder);
+    method public android.app.Notification.BigTextStyle bigText(CharSequence);
+    method public android.app.Notification.BigTextStyle setBigContentTitle(CharSequence);
+    method public android.app.Notification.BigTextStyle setSummaryText(CharSequence);
   }
 
   public static final class Notification.BubbleMetadata implements android.os.Parcelable {
@@ -5464,7 +5468,7 @@
     method public int getDesiredHeight();
     method public android.graphics.drawable.Icon getIcon();
     method public android.app.PendingIntent getIntent();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence getTitle();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.Notification.BubbleMetadata> CREATOR;
   }
@@ -5475,16 +5479,16 @@
     method public android.app.Notification.BubbleMetadata.Builder setDesiredHeight(int);
     method public android.app.Notification.BubbleMetadata.Builder setIcon(android.graphics.drawable.Icon);
     method public android.app.Notification.BubbleMetadata.Builder setIntent(android.app.PendingIntent);
-    method public android.app.Notification.BubbleMetadata.Builder setTitle(java.lang.CharSequence);
+    method public android.app.Notification.BubbleMetadata.Builder setTitle(CharSequence);
   }
 
   public static class Notification.Builder {
-    ctor public Notification.Builder(android.content.Context, java.lang.String);
-    ctor public deprecated Notification.Builder(android.content.Context);
-    method public deprecated android.app.Notification.Builder addAction(int, java.lang.CharSequence, android.app.PendingIntent);
+    ctor public Notification.Builder(android.content.Context, String);
+    ctor @Deprecated public Notification.Builder(android.content.Context);
+    method @Deprecated public android.app.Notification.Builder addAction(int, CharSequence, android.app.PendingIntent);
     method public android.app.Notification.Builder addAction(android.app.Notification.Action);
     method public android.app.Notification.Builder addExtras(android.os.Bundle);
-    method public deprecated android.app.Notification.Builder addPerson(java.lang.String);
+    method @Deprecated public android.app.Notification.Builder addPerson(String);
     method public android.app.Notification.Builder addPerson(android.app.Person);
     method public android.app.Notification build();
     method public android.widget.RemoteViews createBigContentView();
@@ -5492,7 +5496,7 @@
     method public android.widget.RemoteViews createHeadsUpContentView();
     method public android.app.Notification.Builder extend(android.app.Notification.Extender);
     method public android.os.Bundle getExtras();
-    method public deprecated android.app.Notification getNotification();
+    method @Deprecated public android.app.Notification getNotification();
     method public android.app.Notification.Style getStyle();
     method public static android.app.Notification.Builder recoverBuilder(android.content.Context, android.app.Notification);
     method public android.app.Notification.Builder setActions(android.app.Notification.Action...);
@@ -5500,54 +5504,54 @@
     method public android.app.Notification.Builder setAutoCancel(boolean);
     method public android.app.Notification.Builder setBadgeIconType(int);
     method public android.app.Notification.Builder setBubbleMetadata(android.app.Notification.BubbleMetadata);
-    method public android.app.Notification.Builder setCategory(java.lang.String);
-    method public android.app.Notification.Builder setChannelId(java.lang.String);
+    method public android.app.Notification.Builder setCategory(String);
+    method public android.app.Notification.Builder setChannelId(String);
     method public android.app.Notification.Builder setChronometerCountDown(boolean);
-    method public android.app.Notification.Builder setColor(int);
+    method public android.app.Notification.Builder setColor(@ColorInt int);
     method public android.app.Notification.Builder setColorized(boolean);
-    method public deprecated android.app.Notification.Builder setContent(android.widget.RemoteViews);
-    method public deprecated android.app.Notification.Builder setContentInfo(java.lang.CharSequence);
+    method @Deprecated public android.app.Notification.Builder setContent(android.widget.RemoteViews);
+    method @Deprecated public android.app.Notification.Builder setContentInfo(CharSequence);
     method public android.app.Notification.Builder setContentIntent(android.app.PendingIntent);
-    method public android.app.Notification.Builder setContentText(java.lang.CharSequence);
-    method public android.app.Notification.Builder setContentTitle(java.lang.CharSequence);
+    method public android.app.Notification.Builder setContentText(CharSequence);
+    method public android.app.Notification.Builder setContentTitle(CharSequence);
     method public android.app.Notification.Builder setCustomBigContentView(android.widget.RemoteViews);
     method public android.app.Notification.Builder setCustomContentView(android.widget.RemoteViews);
     method public android.app.Notification.Builder setCustomHeadsUpContentView(android.widget.RemoteViews);
-    method public deprecated android.app.Notification.Builder setDefaults(int);
+    method @Deprecated public android.app.Notification.Builder setDefaults(int);
     method public android.app.Notification.Builder setDeleteIntent(android.app.PendingIntent);
     method public android.app.Notification.Builder setExtras(android.os.Bundle);
     method public android.app.Notification.Builder setFullScreenIntent(android.app.PendingIntent, boolean);
-    method public android.app.Notification.Builder setGroup(java.lang.String);
+    method public android.app.Notification.Builder setGroup(String);
     method public android.app.Notification.Builder setGroupAlertBehavior(int);
     method public android.app.Notification.Builder setGroupSummary(boolean);
     method public android.app.Notification.Builder setLargeIcon(android.graphics.Bitmap);
     method public android.app.Notification.Builder setLargeIcon(android.graphics.drawable.Icon);
-    method public deprecated android.app.Notification.Builder setLights(int, int, int);
+    method @Deprecated public android.app.Notification.Builder setLights(@ColorInt int, int, int);
     method public android.app.Notification.Builder setLocalOnly(boolean);
     method public android.app.Notification.Builder setNumber(int);
     method public android.app.Notification.Builder setOngoing(boolean);
     method public android.app.Notification.Builder setOnlyAlertOnce(boolean);
-    method public deprecated android.app.Notification.Builder setPriority(int);
+    method @Deprecated public android.app.Notification.Builder setPriority(int);
     method public android.app.Notification.Builder setProgress(int, int, boolean);
     method public android.app.Notification.Builder setPublicVersion(android.app.Notification);
-    method public android.app.Notification.Builder setRemoteInputHistory(java.lang.CharSequence[]);
-    method public android.app.Notification.Builder setSettingsText(java.lang.CharSequence);
-    method public android.app.Notification.Builder setShortcutId(java.lang.String);
+    method public android.app.Notification.Builder setRemoteInputHistory(CharSequence[]);
+    method public android.app.Notification.Builder setSettingsText(CharSequence);
+    method public android.app.Notification.Builder setShortcutId(String);
     method public android.app.Notification.Builder setShowWhen(boolean);
-    method public android.app.Notification.Builder setSmallIcon(int);
-    method public android.app.Notification.Builder setSmallIcon(int, int);
+    method public android.app.Notification.Builder setSmallIcon(@DrawableRes int);
+    method public android.app.Notification.Builder setSmallIcon(@DrawableRes int, int);
     method public android.app.Notification.Builder setSmallIcon(android.graphics.drawable.Icon);
-    method public android.app.Notification.Builder setSortKey(java.lang.String);
-    method public deprecated android.app.Notification.Builder setSound(android.net.Uri);
-    method public deprecated android.app.Notification.Builder setSound(android.net.Uri, int);
-    method public deprecated android.app.Notification.Builder setSound(android.net.Uri, android.media.AudioAttributes);
+    method public android.app.Notification.Builder setSortKey(String);
+    method @Deprecated public android.app.Notification.Builder setSound(android.net.Uri);
+    method @Deprecated public android.app.Notification.Builder setSound(android.net.Uri, int);
+    method @Deprecated public android.app.Notification.Builder setSound(android.net.Uri, android.media.AudioAttributes);
     method public android.app.Notification.Builder setStyle(android.app.Notification.Style);
-    method public android.app.Notification.Builder setSubText(java.lang.CharSequence);
-    method public android.app.Notification.Builder setTicker(java.lang.CharSequence);
-    method public deprecated android.app.Notification.Builder setTicker(java.lang.CharSequence, android.widget.RemoteViews);
+    method public android.app.Notification.Builder setSubText(CharSequence);
+    method public android.app.Notification.Builder setTicker(CharSequence);
+    method @Deprecated public android.app.Notification.Builder setTicker(CharSequence, android.widget.RemoteViews);
     method public android.app.Notification.Builder setTimeoutAfter(long);
     method public android.app.Notification.Builder setUsesChronometer(boolean);
-    method public deprecated android.app.Notification.Builder setVibrate(long[]);
+    method @Deprecated public android.app.Notification.Builder setVibrate(long[]);
     method public android.app.Notification.Builder setVisibility(int);
     method public android.app.Notification.Builder setWhen(long);
   }
@@ -5556,17 +5560,17 @@
     ctor public Notification.CarExtender();
     ctor public Notification.CarExtender(android.app.Notification);
     method public android.app.Notification.Builder extend(android.app.Notification.Builder);
-    method public int getColor();
+    method @ColorInt public int getColor();
     method public android.graphics.Bitmap getLargeIcon();
     method public android.app.Notification.CarExtender.UnreadConversation getUnreadConversation();
-    method public android.app.Notification.CarExtender setColor(int);
+    method public android.app.Notification.CarExtender setColor(@ColorInt int);
     method public android.app.Notification.CarExtender setLargeIcon(android.graphics.Bitmap);
     method public android.app.Notification.CarExtender setUnreadConversation(android.app.Notification.CarExtender.UnreadConversation);
   }
 
   public static class Notification.CarExtender.Builder {
-    ctor public Notification.CarExtender.Builder(java.lang.String);
-    method public android.app.Notification.CarExtender.Builder addMessage(java.lang.String);
+    ctor public Notification.CarExtender.Builder(String);
+    method public android.app.Notification.CarExtender.Builder addMessage(String);
     method public android.app.Notification.CarExtender.UnreadConversation build();
     method public android.app.Notification.CarExtender.Builder setLatestTimestamp(long);
     method public android.app.Notification.CarExtender.Builder setReadPendingIntent(android.app.PendingIntent);
@@ -5575,9 +5579,9 @@
 
   public static class Notification.CarExtender.UnreadConversation {
     method public long getLatestTimestamp();
-    method public java.lang.String[] getMessages();
-    method public java.lang.String getParticipant();
-    method public java.lang.String[] getParticipants();
+    method public String[] getMessages();
+    method public String getParticipant();
+    method public String[] getParticipants();
     method public android.app.PendingIntent getReadPendingIntent();
     method public android.app.RemoteInput getRemoteInput();
     method public android.app.PendingIntent getReplyPendingIntent();
@@ -5591,63 +5595,63 @@
     ctor public Notification.DecoratedMediaCustomViewStyle();
   }
 
-  public static abstract interface Notification.Extender {
-    method public abstract android.app.Notification.Builder extend(android.app.Notification.Builder);
+  public static interface Notification.Extender {
+    method public android.app.Notification.Builder extend(android.app.Notification.Builder);
   }
 
   public static class Notification.InboxStyle extends android.app.Notification.Style {
     ctor public Notification.InboxStyle();
-    ctor public deprecated Notification.InboxStyle(android.app.Notification.Builder);
-    method public android.app.Notification.InboxStyle addLine(java.lang.CharSequence);
-    method public android.app.Notification.InboxStyle setBigContentTitle(java.lang.CharSequence);
-    method public android.app.Notification.InboxStyle setSummaryText(java.lang.CharSequence);
+    ctor @Deprecated public Notification.InboxStyle(android.app.Notification.Builder);
+    method public android.app.Notification.InboxStyle addLine(CharSequence);
+    method public android.app.Notification.InboxStyle setBigContentTitle(CharSequence);
+    method public android.app.Notification.InboxStyle setSummaryText(CharSequence);
   }
 
   public static class Notification.MediaStyle extends android.app.Notification.Style {
     ctor public Notification.MediaStyle();
-    ctor public deprecated Notification.MediaStyle(android.app.Notification.Builder);
+    ctor @Deprecated public Notification.MediaStyle(android.app.Notification.Builder);
     method public android.app.Notification.MediaStyle setMediaSession(android.media.session.MediaSession.Token);
     method public android.app.Notification.MediaStyle setShowActionsInCompactView(int...);
   }
 
   public static class Notification.MessagingStyle extends android.app.Notification.Style {
-    ctor public deprecated Notification.MessagingStyle(java.lang.CharSequence);
-    ctor public Notification.MessagingStyle(android.app.Person);
+    ctor @Deprecated public Notification.MessagingStyle(@NonNull CharSequence);
+    ctor public Notification.MessagingStyle(@NonNull android.app.Person);
     method public android.app.Notification.MessagingStyle addHistoricMessage(android.app.Notification.MessagingStyle.Message);
-    method public deprecated android.app.Notification.MessagingStyle addMessage(java.lang.CharSequence, long, java.lang.CharSequence);
-    method public android.app.Notification.MessagingStyle addMessage(java.lang.CharSequence, long, android.app.Person);
+    method @Deprecated public android.app.Notification.MessagingStyle addMessage(CharSequence, long, CharSequence);
+    method public android.app.Notification.MessagingStyle addMessage(@NonNull CharSequence, long, @Nullable android.app.Person);
     method public android.app.Notification.MessagingStyle addMessage(android.app.Notification.MessagingStyle.Message);
-    method public java.lang.CharSequence getConversationTitle();
+    method @Nullable public CharSequence getConversationTitle();
     method public java.util.List<android.app.Notification.MessagingStyle.Message> getHistoricMessages();
     method public java.util.List<android.app.Notification.MessagingStyle.Message> getMessages();
-    method public android.app.Person getUser();
-    method public deprecated java.lang.CharSequence getUserDisplayName();
+    method @NonNull public android.app.Person getUser();
+    method @Deprecated public CharSequence getUserDisplayName();
     method public boolean isGroupConversation();
-    method public android.app.Notification.MessagingStyle setConversationTitle(java.lang.CharSequence);
+    method public android.app.Notification.MessagingStyle setConversationTitle(@Nullable CharSequence);
     method public android.app.Notification.MessagingStyle setGroupConversation(boolean);
     field public static final int MAXIMUM_RETAINED_MESSAGES = 25; // 0x19
   }
 
   public static final class Notification.MessagingStyle.Message {
-    ctor public deprecated Notification.MessagingStyle.Message(java.lang.CharSequence, long, java.lang.CharSequence);
-    ctor public Notification.MessagingStyle.Message(java.lang.CharSequence, long, android.app.Person);
-    method public java.lang.String getDataMimeType();
+    ctor @Deprecated public Notification.MessagingStyle.Message(CharSequence, long, CharSequence);
+    ctor public Notification.MessagingStyle.Message(@NonNull CharSequence, long, @Nullable android.app.Person);
+    method public String getDataMimeType();
     method public android.net.Uri getDataUri();
     method public android.os.Bundle getExtras();
-    method public deprecated java.lang.CharSequence getSender();
-    method public android.app.Person getSenderPerson();
-    method public java.lang.CharSequence getText();
+    method @Deprecated public CharSequence getSender();
+    method @Nullable public android.app.Person getSenderPerson();
+    method public CharSequence getText();
     method public long getTimestamp();
-    method public android.app.Notification.MessagingStyle.Message setData(java.lang.String, android.net.Uri);
+    method public android.app.Notification.MessagingStyle.Message setData(String, android.net.Uri);
   }
 
-  public static abstract class Notification.Style {
+  public abstract static class Notification.Style {
     ctor public Notification.Style();
     method public android.app.Notification build();
     method protected void checkBuilder();
     method protected android.widget.RemoteViews getStandardView(int);
-    method protected void internalSetBigContentTitle(java.lang.CharSequence);
-    method protected void internalSetSummaryText(java.lang.CharSequence);
+    method protected void internalSetBigContentTitle(CharSequence);
+    method protected void internalSetSummaryText(CharSequence);
     method public void setBuilder(android.app.Notification.Builder);
     field protected android.app.Notification.Builder mBuilder;
   }
@@ -5657,63 +5661,63 @@
     ctor public Notification.WearableExtender(android.app.Notification);
     method public android.app.Notification.WearableExtender addAction(android.app.Notification.Action);
     method public android.app.Notification.WearableExtender addActions(java.util.List<android.app.Notification.Action>);
-    method public deprecated android.app.Notification.WearableExtender addPage(android.app.Notification);
-    method public deprecated android.app.Notification.WearableExtender addPages(java.util.List<android.app.Notification>);
+    method @Deprecated public android.app.Notification.WearableExtender addPage(android.app.Notification);
+    method @Deprecated public android.app.Notification.WearableExtender addPages(java.util.List<android.app.Notification>);
     method public android.app.Notification.WearableExtender clearActions();
-    method public deprecated android.app.Notification.WearableExtender clearPages();
+    method @Deprecated public android.app.Notification.WearableExtender clearPages();
     method public android.app.Notification.WearableExtender clone();
     method public android.app.Notification.Builder extend(android.app.Notification.Builder);
     method public java.util.List<android.app.Notification.Action> getActions();
-    method public deprecated android.graphics.Bitmap getBackground();
-    method public java.lang.String getBridgeTag();
+    method @Deprecated public android.graphics.Bitmap getBackground();
+    method public String getBridgeTag();
     method public int getContentAction();
-    method public deprecated int getContentIcon();
-    method public deprecated int getContentIconGravity();
+    method @Deprecated public int getContentIcon();
+    method @Deprecated public int getContentIconGravity();
     method public boolean getContentIntentAvailableOffline();
-    method public deprecated int getCustomContentHeight();
-    method public deprecated int getCustomSizePreset();
-    method public java.lang.String getDismissalId();
-    method public deprecated android.app.PendingIntent getDisplayIntent();
-    method public deprecated int getGravity();
-    method public deprecated boolean getHintAmbientBigPicture();
-    method public deprecated boolean getHintAvoidBackgroundClipping();
+    method @Deprecated public int getCustomContentHeight();
+    method @Deprecated public int getCustomSizePreset();
+    method public String getDismissalId();
+    method @Deprecated public android.app.PendingIntent getDisplayIntent();
+    method @Deprecated public int getGravity();
+    method @Deprecated public boolean getHintAmbientBigPicture();
+    method @Deprecated public boolean getHintAvoidBackgroundClipping();
     method public boolean getHintContentIntentLaunchesActivity();
-    method public deprecated boolean getHintHideIcon();
-    method public deprecated int getHintScreenTimeout();
-    method public deprecated boolean getHintShowBackgroundOnly();
-    method public deprecated java.util.List<android.app.Notification> getPages();
+    method @Deprecated public boolean getHintHideIcon();
+    method @Deprecated public int getHintScreenTimeout();
+    method @Deprecated public boolean getHintShowBackgroundOnly();
+    method @Deprecated public java.util.List<android.app.Notification> getPages();
     method public boolean getStartScrollBottom();
-    method public deprecated android.app.Notification.WearableExtender setBackground(android.graphics.Bitmap);
-    method public android.app.Notification.WearableExtender setBridgeTag(java.lang.String);
+    method @Deprecated public android.app.Notification.WearableExtender setBackground(android.graphics.Bitmap);
+    method public android.app.Notification.WearableExtender setBridgeTag(String);
     method public android.app.Notification.WearableExtender setContentAction(int);
-    method public deprecated android.app.Notification.WearableExtender setContentIcon(int);
-    method public deprecated android.app.Notification.WearableExtender setContentIconGravity(int);
+    method @Deprecated public android.app.Notification.WearableExtender setContentIcon(int);
+    method @Deprecated public android.app.Notification.WearableExtender setContentIconGravity(int);
     method public android.app.Notification.WearableExtender setContentIntentAvailableOffline(boolean);
-    method public deprecated android.app.Notification.WearableExtender setCustomContentHeight(int);
-    method public deprecated android.app.Notification.WearableExtender setCustomSizePreset(int);
-    method public android.app.Notification.WearableExtender setDismissalId(java.lang.String);
-    method public deprecated android.app.Notification.WearableExtender setDisplayIntent(android.app.PendingIntent);
-    method public deprecated android.app.Notification.WearableExtender setGravity(int);
-    method public deprecated android.app.Notification.WearableExtender setHintAmbientBigPicture(boolean);
-    method public deprecated android.app.Notification.WearableExtender setHintAvoidBackgroundClipping(boolean);
+    method @Deprecated public android.app.Notification.WearableExtender setCustomContentHeight(int);
+    method @Deprecated public android.app.Notification.WearableExtender setCustomSizePreset(int);
+    method public android.app.Notification.WearableExtender setDismissalId(String);
+    method @Deprecated public android.app.Notification.WearableExtender setDisplayIntent(android.app.PendingIntent);
+    method @Deprecated public android.app.Notification.WearableExtender setGravity(int);
+    method @Deprecated public android.app.Notification.WearableExtender setHintAmbientBigPicture(boolean);
+    method @Deprecated public android.app.Notification.WearableExtender setHintAvoidBackgroundClipping(boolean);
     method public android.app.Notification.WearableExtender setHintContentIntentLaunchesActivity(boolean);
-    method public deprecated android.app.Notification.WearableExtender setHintHideIcon(boolean);
-    method public deprecated android.app.Notification.WearableExtender setHintScreenTimeout(int);
-    method public deprecated android.app.Notification.WearableExtender setHintShowBackgroundOnly(boolean);
+    method @Deprecated public android.app.Notification.WearableExtender setHintHideIcon(boolean);
+    method @Deprecated public android.app.Notification.WearableExtender setHintScreenTimeout(int);
+    method @Deprecated public android.app.Notification.WearableExtender setHintShowBackgroundOnly(boolean);
     method public android.app.Notification.WearableExtender setStartScrollBottom(boolean);
-    field public static final deprecated int SCREEN_TIMEOUT_LONG = -1; // 0xffffffff
-    field public static final deprecated int SCREEN_TIMEOUT_SHORT = 0; // 0x0
-    field public static final deprecated int SIZE_DEFAULT = 0; // 0x0
-    field public static final deprecated int SIZE_FULL_SCREEN = 5; // 0x5
-    field public static final deprecated int SIZE_LARGE = 4; // 0x4
-    field public static final deprecated int SIZE_MEDIUM = 3; // 0x3
-    field public static final deprecated int SIZE_SMALL = 2; // 0x2
-    field public static final deprecated int SIZE_XSMALL = 1; // 0x1
+    field @Deprecated public static final int SCREEN_TIMEOUT_LONG = -1; // 0xffffffff
+    field @Deprecated public static final int SCREEN_TIMEOUT_SHORT = 0; // 0x0
+    field @Deprecated public static final int SIZE_DEFAULT = 0; // 0x0
+    field @Deprecated public static final int SIZE_FULL_SCREEN = 5; // 0x5
+    field @Deprecated public static final int SIZE_LARGE = 4; // 0x4
+    field @Deprecated public static final int SIZE_MEDIUM = 3; // 0x3
+    field @Deprecated public static final int SIZE_SMALL = 2; // 0x2
+    field @Deprecated public static final int SIZE_XSMALL = 1; // 0x1
     field public static final int UNSET_ACTION_INDEX = -1; // 0xffffffff
   }
 
   public final class NotificationChannel implements android.os.Parcelable {
-    ctor public NotificationChannel(java.lang.String, java.lang.CharSequence, int);
+    ctor public NotificationChannel(String, CharSequence, int);
     method public boolean canBubble();
     method public boolean canBypassDnd();
     method public boolean canShowBadge();
@@ -5721,24 +5725,24 @@
     method public void enableLights(boolean);
     method public void enableVibration(boolean);
     method public android.media.AudioAttributes getAudioAttributes();
-    method public java.lang.String getDescription();
-    method public java.lang.String getGroup();
-    method public java.lang.String getId();
+    method public String getDescription();
+    method public String getGroup();
+    method public String getId();
     method public int getImportance();
     method public int getLightColor();
     method public int getLockscreenVisibility();
-    method public java.lang.CharSequence getName();
+    method public CharSequence getName();
     method public android.net.Uri getSound();
     method public long[] getVibrationPattern();
     method public boolean hasUserSetImportance();
     method public void setAllowBubbles(boolean);
     method public void setBypassDnd(boolean);
-    method public void setDescription(java.lang.String);
-    method public void setGroup(java.lang.String);
+    method public void setDescription(String);
+    method public void setGroup(String);
     method public void setImportance(int);
     method public void setLightColor(int);
     method public void setLockscreenVisibility(int);
-    method public void setName(java.lang.CharSequence);
+    method public void setName(CharSequence);
     method public void setShowBadge(boolean);
     method public void setSound(android.net.Uri, android.media.AudioAttributes);
     method public void setVibrationPattern(long[]);
@@ -5746,71 +5750,71 @@
     method public boolean shouldVibrate();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.NotificationChannel> CREATOR;
-    field public static final java.lang.String DEFAULT_CHANNEL_ID = "miscellaneous";
+    field public static final String DEFAULT_CHANNEL_ID = "miscellaneous";
   }
 
   public final class NotificationChannelGroup implements android.os.Parcelable {
-    ctor public NotificationChannelGroup(java.lang.String, java.lang.CharSequence);
+    ctor public NotificationChannelGroup(String, CharSequence);
     method public android.app.NotificationChannelGroup clone();
     method public int describeContents();
     method public java.util.List<android.app.NotificationChannel> getChannels();
-    method public java.lang.String getDescription();
-    method public java.lang.String getId();
-    method public java.lang.CharSequence getName();
+    method public String getDescription();
+    method public String getId();
+    method public CharSequence getName();
     method public boolean isBlocked();
-    method public void setDescription(java.lang.String);
+    method public void setDescription(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.NotificationChannelGroup> CREATOR;
   }
 
   public class NotificationManager {
-    method public java.lang.String addAutomaticZenRule(android.app.AutomaticZenRule);
+    method public String addAutomaticZenRule(android.app.AutomaticZenRule);
     method public boolean areBubblesAllowed();
     method public boolean areNotificationsEnabled();
-    method public boolean canNotifyAsPackage(java.lang.String);
+    method public boolean canNotifyAsPackage(String);
     method public void cancel(int);
-    method public void cancel(java.lang.String, int);
+    method public void cancel(String, int);
     method public void cancelAll();
-    method public void createNotificationChannel(android.app.NotificationChannel);
-    method public void createNotificationChannelGroup(android.app.NotificationChannelGroup);
-    method public void createNotificationChannelGroups(java.util.List<android.app.NotificationChannelGroup>);
-    method public void createNotificationChannels(java.util.List<android.app.NotificationChannel>);
-    method public void deleteNotificationChannel(java.lang.String);
-    method public void deleteNotificationChannelGroup(java.lang.String);
+    method public void createNotificationChannel(@NonNull android.app.NotificationChannel);
+    method public void createNotificationChannelGroup(@NonNull android.app.NotificationChannelGroup);
+    method public void createNotificationChannelGroups(@NonNull java.util.List<android.app.NotificationChannelGroup>);
+    method public void createNotificationChannels(@NonNull java.util.List<android.app.NotificationChannel>);
+    method public void deleteNotificationChannel(String);
+    method public void deleteNotificationChannelGroup(String);
     method public android.service.notification.StatusBarNotification[] getActiveNotifications();
-    method public android.app.AutomaticZenRule getAutomaticZenRule(java.lang.String);
-    method public java.util.Map<java.lang.String, android.app.AutomaticZenRule> getAutomaticZenRules();
+    method public android.app.AutomaticZenRule getAutomaticZenRule(String);
+    method public java.util.Map<java.lang.String,android.app.AutomaticZenRule> getAutomaticZenRules();
     method public final int getCurrentInterruptionFilter();
     method public int getImportance();
-    method public android.app.NotificationChannel getNotificationChannel(java.lang.String);
-    method public android.app.NotificationChannelGroup getNotificationChannelGroup(java.lang.String);
+    method public android.app.NotificationChannel getNotificationChannel(String);
+    method public android.app.NotificationChannelGroup getNotificationChannelGroup(String);
     method public java.util.List<android.app.NotificationChannelGroup> getNotificationChannelGroups();
     method public java.util.List<android.app.NotificationChannel> getNotificationChannels();
-    method public java.lang.String getNotificationDelegate();
+    method @Nullable public String getNotificationDelegate();
     method public android.app.NotificationManager.Policy getNotificationPolicy();
     method public boolean isNotificationListenerAccessGranted(android.content.ComponentName);
     method public boolean isNotificationPolicyAccessGranted();
     method public void notify(int, android.app.Notification);
-    method public void notify(java.lang.String, int, android.app.Notification);
-    method public void notifyAsPackage(java.lang.String, java.lang.String, int, android.app.Notification);
-    method public boolean removeAutomaticZenRule(java.lang.String);
+    method public void notify(String, int, android.app.Notification);
+    method public void notifyAsPackage(@NonNull String, @NonNull String, int, android.app.Notification);
+    method public boolean removeAutomaticZenRule(String);
     method public void revokeNotificationDelegate();
-    method public void setAutomaticZenRuleState(java.lang.String, android.service.notification.Condition);
+    method public void setAutomaticZenRuleState(String, android.service.notification.Condition);
     method public final void setInterruptionFilter(int);
-    method public void setNotificationDelegate(java.lang.String);
-    method public void setNotificationPolicy(android.app.NotificationManager.Policy);
-    method public boolean updateAutomaticZenRule(java.lang.String, android.app.AutomaticZenRule);
-    field public static final java.lang.String ACTION_APP_BLOCK_STATE_CHANGED = "android.app.action.APP_BLOCK_STATE_CHANGED";
-    field public static final java.lang.String ACTION_AUTOMATIC_ZEN_RULE = "android.app.action.AUTOMATIC_ZEN_RULE";
-    field public static final java.lang.String ACTION_INTERRUPTION_FILTER_CHANGED = "android.app.action.INTERRUPTION_FILTER_CHANGED";
-    field public static final java.lang.String ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED = "android.app.action.NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED";
-    field public static final java.lang.String ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED = "android.app.action.NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED";
-    field public static final java.lang.String ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED = "android.app.action.NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED";
-    field public static final java.lang.String ACTION_NOTIFICATION_POLICY_CHANGED = "android.app.action.NOTIFICATION_POLICY_CHANGED";
-    field public static final java.lang.String EXTRA_AUTOMATIC_RULE_ID = "android.app.extra.AUTOMATIC_RULE_ID";
-    field public static final java.lang.String EXTRA_BLOCKED_STATE = "android.app.extra.BLOCKED_STATE";
-    field public static final java.lang.String EXTRA_NOTIFICATION_CHANNEL_GROUP_ID = "android.app.extra.NOTIFICATION_CHANNEL_GROUP_ID";
-    field public static final java.lang.String EXTRA_NOTIFICATION_CHANNEL_ID = "android.app.extra.NOTIFICATION_CHANNEL_ID";
+    method public void setNotificationDelegate(@NonNull String);
+    method public void setNotificationPolicy(@NonNull android.app.NotificationManager.Policy);
+    method public boolean updateAutomaticZenRule(String, android.app.AutomaticZenRule);
+    field public static final String ACTION_APP_BLOCK_STATE_CHANGED = "android.app.action.APP_BLOCK_STATE_CHANGED";
+    field public static final String ACTION_AUTOMATIC_ZEN_RULE = "android.app.action.AUTOMATIC_ZEN_RULE";
+    field public static final String ACTION_INTERRUPTION_FILTER_CHANGED = "android.app.action.INTERRUPTION_FILTER_CHANGED";
+    field public static final String ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED = "android.app.action.NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED";
+    field public static final String ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED = "android.app.action.NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED";
+    field public static final String ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED = "android.app.action.NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED";
+    field public static final String ACTION_NOTIFICATION_POLICY_CHANGED = "android.app.action.NOTIFICATION_POLICY_CHANGED";
+    field public static final String EXTRA_AUTOMATIC_RULE_ID = "android.app.extra.AUTOMATIC_RULE_ID";
+    field public static final String EXTRA_BLOCKED_STATE = "android.app.extra.BLOCKED_STATE";
+    field public static final String EXTRA_NOTIFICATION_CHANNEL_GROUP_ID = "android.app.extra.NOTIFICATION_CHANNEL_GROUP_ID";
+    field public static final String EXTRA_NOTIFICATION_CHANNEL_ID = "android.app.extra.NOTIFICATION_CHANNEL_ID";
     field public static final int IMPORTANCE_DEFAULT = 3; // 0x3
     field public static final int IMPORTANCE_HIGH = 4; // 0x4
     field public static final int IMPORTANCE_LOW = 2; // 0x2
@@ -5823,17 +5827,17 @@
     field public static final int INTERRUPTION_FILTER_NONE = 3; // 0x3
     field public static final int INTERRUPTION_FILTER_PRIORITY = 2; // 0x2
     field public static final int INTERRUPTION_FILTER_UNKNOWN = 0; // 0x0
-    field public static final java.lang.String META_DATA_AUTOMATIC_RULE_TYPE = "android.app.automatic.ruleType";
-    field public static final java.lang.String META_DATA_RULE_INSTANCE_LIMIT = "android.app.zen.automatic.ruleInstanceLimit";
+    field public static final String META_DATA_AUTOMATIC_RULE_TYPE = "android.app.automatic.ruleType";
+    field public static final String META_DATA_RULE_INSTANCE_LIMIT = "android.app.zen.automatic.ruleInstanceLimit";
   }
 
   public static class NotificationManager.Policy implements android.os.Parcelable {
     ctor public NotificationManager.Policy(int, int, int);
     ctor public NotificationManager.Policy(int, int, int, int);
     method public int describeContents();
-    method public static java.lang.String priorityCategoriesToString(int);
-    method public static java.lang.String prioritySendersToString(int);
-    method public static java.lang.String suppressedEffectsToString(int);
+    method public static String priorityCategoriesToString(int);
+    method public static String prioritySendersToString(int);
+    method public static String suppressedEffectsToString(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.NotificationManager.Policy> CREATOR;
     field public static final int PRIORITY_CATEGORY_ALARMS = 32; // 0x20
@@ -5853,8 +5857,8 @@
     field public static final int SUPPRESSED_EFFECT_LIGHTS = 8; // 0x8
     field public static final int SUPPRESSED_EFFECT_NOTIFICATION_LIST = 256; // 0x100
     field public static final int SUPPRESSED_EFFECT_PEEK = 16; // 0x10
-    field public static final deprecated int SUPPRESSED_EFFECT_SCREEN_OFF = 1; // 0x1
-    field public static final deprecated int SUPPRESSED_EFFECT_SCREEN_ON = 2; // 0x2
+    field @Deprecated public static final int SUPPRESSED_EFFECT_SCREEN_OFF = 1; // 0x1
+    field @Deprecated public static final int SUPPRESSED_EFFECT_SCREEN_ON = 2; // 0x2
     field public static final int SUPPRESSED_EFFECT_STATUS_BAR = 32; // 0x20
     field public final int priorityCallSenders;
     field public final int priorityCategories;
@@ -5865,27 +5869,27 @@
   public final class PendingIntent implements android.os.Parcelable {
     method public void cancel();
     method public int describeContents();
-    method public static android.app.PendingIntent getActivities(android.content.Context, int, android.content.Intent[], int);
-    method public static android.app.PendingIntent getActivities(android.content.Context, int, android.content.Intent[], int, android.os.Bundle);
+    method public static android.app.PendingIntent getActivities(android.content.Context, int, @NonNull android.content.Intent[], int);
+    method public static android.app.PendingIntent getActivities(android.content.Context, int, @NonNull android.content.Intent[], int, @Nullable android.os.Bundle);
     method public static android.app.PendingIntent getActivity(android.content.Context, int, android.content.Intent, int);
-    method public static android.app.PendingIntent getActivity(android.content.Context, int, android.content.Intent, int, android.os.Bundle);
+    method public static android.app.PendingIntent getActivity(android.content.Context, int, @NonNull android.content.Intent, int, @Nullable android.os.Bundle);
     method public static android.app.PendingIntent getBroadcast(android.content.Context, int, android.content.Intent, int);
-    method public java.lang.String getCreatorPackage();
+    method @Nullable public String getCreatorPackage();
     method public int getCreatorUid();
-    method public android.os.UserHandle getCreatorUserHandle();
-    method public static android.app.PendingIntent getForegroundService(android.content.Context, int, android.content.Intent, int);
+    method @Nullable public android.os.UserHandle getCreatorUserHandle();
+    method public static android.app.PendingIntent getForegroundService(android.content.Context, int, @NonNull android.content.Intent, int);
     method public android.content.IntentSender getIntentSender();
-    method public static android.app.PendingIntent getService(android.content.Context, int, android.content.Intent, int);
-    method public deprecated java.lang.String getTargetPackage();
-    method public static android.app.PendingIntent readPendingIntentOrNullFromParcel(android.os.Parcel);
+    method public static android.app.PendingIntent getService(android.content.Context, int, @NonNull android.content.Intent, int);
+    method @Deprecated public String getTargetPackage();
+    method @Nullable public static android.app.PendingIntent readPendingIntentOrNullFromParcel(@NonNull android.os.Parcel);
     method public void send() throws android.app.PendingIntent.CanceledException;
     method public void send(int) throws android.app.PendingIntent.CanceledException;
-    method public void send(android.content.Context, int, android.content.Intent) throws android.app.PendingIntent.CanceledException;
-    method public void send(int, android.app.PendingIntent.OnFinished, android.os.Handler) throws android.app.PendingIntent.CanceledException;
-    method public void send(android.content.Context, int, android.content.Intent, android.app.PendingIntent.OnFinished, android.os.Handler) throws android.app.PendingIntent.CanceledException;
-    method public void send(android.content.Context, int, android.content.Intent, android.app.PendingIntent.OnFinished, android.os.Handler, java.lang.String) throws android.app.PendingIntent.CanceledException;
-    method public void send(android.content.Context, int, android.content.Intent, android.app.PendingIntent.OnFinished, android.os.Handler, java.lang.String, android.os.Bundle) throws android.app.PendingIntent.CanceledException;
-    method public static void writePendingIntentOrNullToParcel(android.app.PendingIntent, android.os.Parcel);
+    method public void send(android.content.Context, int, @Nullable android.content.Intent) throws android.app.PendingIntent.CanceledException;
+    method public void send(int, @Nullable android.app.PendingIntent.OnFinished, @Nullable android.os.Handler) throws android.app.PendingIntent.CanceledException;
+    method public void send(android.content.Context, int, @Nullable android.content.Intent, @Nullable android.app.PendingIntent.OnFinished, @Nullable android.os.Handler) throws android.app.PendingIntent.CanceledException;
+    method public void send(android.content.Context, int, @Nullable android.content.Intent, @Nullable android.app.PendingIntent.OnFinished, @Nullable android.os.Handler, @Nullable String) throws android.app.PendingIntent.CanceledException;
+    method public void send(android.content.Context, int, @Nullable android.content.Intent, @Nullable android.app.PendingIntent.OnFinished, @Nullable android.os.Handler, @Nullable String, @Nullable android.os.Bundle) throws android.app.PendingIntent.CanceledException;
+    method public static void writePendingIntentOrNullToParcel(@Nullable android.app.PendingIntent, @NonNull android.os.Parcel);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.PendingIntent> CREATOR;
     field public static final int FLAG_CANCEL_CURRENT = 268435456; // 0x10000000
@@ -5897,20 +5901,20 @@
 
   public static class PendingIntent.CanceledException extends android.util.AndroidException {
     ctor public PendingIntent.CanceledException();
-    ctor public PendingIntent.CanceledException(java.lang.String);
-    ctor public PendingIntent.CanceledException(java.lang.Exception);
+    ctor public PendingIntent.CanceledException(String);
+    ctor public PendingIntent.CanceledException(Exception);
   }
 
-  public static abstract interface PendingIntent.OnFinished {
-    method public abstract void onSendFinished(android.app.PendingIntent, android.content.Intent, int, java.lang.String, android.os.Bundle);
+  public static interface PendingIntent.OnFinished {
+    method public void onSendFinished(android.app.PendingIntent, android.content.Intent, int, String, android.os.Bundle);
   }
 
   public final class Person implements android.os.Parcelable {
     method public int describeContents();
-    method public android.graphics.drawable.Icon getIcon();
-    method public java.lang.String getKey();
-    method public java.lang.CharSequence getName();
-    method public java.lang.String getUri();
+    method @Nullable public android.graphics.drawable.Icon getIcon();
+    method @Nullable public String getKey();
+    method @Nullable public CharSequence getName();
+    method @Nullable public String getUri();
     method public boolean isBot();
     method public boolean isImportant();
     method public android.app.Person.Builder toBuilder();
@@ -5920,13 +5924,13 @@
 
   public static class Person.Builder {
     ctor public Person.Builder();
-    method public android.app.Person build();
-    method public android.app.Person.Builder setBot(boolean);
-    method public android.app.Person.Builder setIcon(android.graphics.drawable.Icon);
-    method public android.app.Person.Builder setImportant(boolean);
-    method public android.app.Person.Builder setKey(java.lang.String);
-    method public android.app.Person.Builder setName(java.lang.CharSequence);
-    method public android.app.Person.Builder setUri(java.lang.String);
+    method @NonNull public android.app.Person build();
+    method @NonNull public android.app.Person.Builder setBot(boolean);
+    method @NonNull public android.app.Person.Builder setIcon(@Nullable android.graphics.drawable.Icon);
+    method @NonNull public android.app.Person.Builder setImportant(boolean);
+    method @NonNull public android.app.Person.Builder setKey(@Nullable String);
+    method @NonNull public android.app.Person.Builder setName(@Nullable CharSequence);
+    method @NonNull public android.app.Person.Builder setUri(@Nullable String);
   }
 
   public final class PictureInPictureParams implements android.os.Parcelable {
@@ -5952,51 +5956,51 @@
     method public void onDisplayRemoved();
   }
 
-  public deprecated class ProgressDialog extends android.app.AlertDialog {
-    ctor public ProgressDialog(android.content.Context);
-    ctor public ProgressDialog(android.content.Context, int);
-    method public int getMax();
-    method public int getProgress();
-    method public int getSecondaryProgress();
-    method public void incrementProgressBy(int);
-    method public void incrementSecondaryProgressBy(int);
-    method public boolean isIndeterminate();
-    method public void onStart();
-    method public void setIndeterminate(boolean);
-    method public void setIndeterminateDrawable(android.graphics.drawable.Drawable);
-    method public void setMax(int);
-    method public void setProgress(int);
-    method public void setProgressDrawable(android.graphics.drawable.Drawable);
-    method public void setProgressNumberFormat(java.lang.String);
-    method public void setProgressPercentFormat(java.text.NumberFormat);
-    method public void setProgressStyle(int);
-    method public void setSecondaryProgress(int);
-    method public static android.app.ProgressDialog show(android.content.Context, java.lang.CharSequence, java.lang.CharSequence);
-    method public static android.app.ProgressDialog show(android.content.Context, java.lang.CharSequence, java.lang.CharSequence, boolean);
-    method public static android.app.ProgressDialog show(android.content.Context, java.lang.CharSequence, java.lang.CharSequence, boolean, boolean);
-    method public static android.app.ProgressDialog show(android.content.Context, java.lang.CharSequence, java.lang.CharSequence, boolean, boolean, android.content.DialogInterface.OnCancelListener);
-    field public static final int STYLE_HORIZONTAL = 1; // 0x1
-    field public static final int STYLE_SPINNER = 0; // 0x0
+  @Deprecated public class ProgressDialog extends android.app.AlertDialog {
+    ctor @Deprecated public ProgressDialog(android.content.Context);
+    ctor @Deprecated public ProgressDialog(android.content.Context, int);
+    method @Deprecated public int getMax();
+    method @Deprecated public int getProgress();
+    method @Deprecated public int getSecondaryProgress();
+    method @Deprecated public void incrementProgressBy(int);
+    method @Deprecated public void incrementSecondaryProgressBy(int);
+    method @Deprecated public boolean isIndeterminate();
+    method @Deprecated public void onStart();
+    method @Deprecated public void setIndeterminate(boolean);
+    method @Deprecated public void setIndeterminateDrawable(android.graphics.drawable.Drawable);
+    method @Deprecated public void setMax(int);
+    method @Deprecated public void setProgress(int);
+    method @Deprecated public void setProgressDrawable(android.graphics.drawable.Drawable);
+    method @Deprecated public void setProgressNumberFormat(String);
+    method @Deprecated public void setProgressPercentFormat(java.text.NumberFormat);
+    method @Deprecated public void setProgressStyle(int);
+    method @Deprecated public void setSecondaryProgress(int);
+    method @Deprecated public static android.app.ProgressDialog show(android.content.Context, CharSequence, CharSequence);
+    method @Deprecated public static android.app.ProgressDialog show(android.content.Context, CharSequence, CharSequence, boolean);
+    method @Deprecated public static android.app.ProgressDialog show(android.content.Context, CharSequence, CharSequence, boolean, boolean);
+    method @Deprecated public static android.app.ProgressDialog show(android.content.Context, CharSequence, CharSequence, boolean, boolean, android.content.DialogInterface.OnCancelListener);
+    field @Deprecated public static final int STYLE_HORIZONTAL = 1; // 0x1
+    field @Deprecated public static final int STYLE_SPINNER = 0; // 0x0
   }
 
   public final class RecoverableSecurityException extends java.lang.SecurityException implements android.os.Parcelable {
-    ctor public RecoverableSecurityException(java.lang.Throwable, java.lang.CharSequence, android.app.RemoteAction);
+    ctor public RecoverableSecurityException(@NonNull Throwable, @NonNull CharSequence, @NonNull android.app.RemoteAction);
     method public int describeContents();
-    method public android.app.RemoteAction getUserAction();
-    method public java.lang.CharSequence getUserMessage();
+    method @NonNull public android.app.RemoteAction getUserAction();
+    method @NonNull public CharSequence getUserMessage();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.RecoverableSecurityException> CREATOR;
   }
 
   public final class RemoteAction implements android.os.Parcelable {
-    ctor public RemoteAction(android.graphics.drawable.Icon, java.lang.CharSequence, java.lang.CharSequence, android.app.PendingIntent);
+    ctor public RemoteAction(@NonNull android.graphics.drawable.Icon, @NonNull CharSequence, @NonNull CharSequence, @NonNull android.app.PendingIntent);
     method public android.app.RemoteAction clone();
     method public int describeContents();
-    method public void dump(java.lang.String, java.io.PrintWriter);
-    method public android.app.PendingIntent getActionIntent();
-    method public java.lang.CharSequence getContentDescription();
-    method public android.graphics.drawable.Icon getIcon();
-    method public java.lang.CharSequence getTitle();
+    method public void dump(String, java.io.PrintWriter);
+    method @NonNull public android.app.PendingIntent getActionIntent();
+    method @NonNull public CharSequence getContentDescription();
+    method @NonNull public android.graphics.drawable.Icon getIcon();
+    method @NonNull public CharSequence getTitle();
     method public boolean isEnabled();
     method public void setEnabled(boolean);
     method public void setShouldShowIcon(boolean);
@@ -6006,17 +6010,17 @@
   }
 
   public final class RemoteInput implements android.os.Parcelable {
-    method public static void addDataResultToIntent(android.app.RemoteInput, android.content.Intent, java.util.Map<java.lang.String, android.net.Uri>);
+    method public static void addDataResultToIntent(android.app.RemoteInput, android.content.Intent, java.util.Map<java.lang.String,android.net.Uri>);
     method public static void addResultsToIntent(android.app.RemoteInput[], android.content.Intent, android.os.Bundle);
     method public int describeContents();
     method public boolean getAllowFreeFormInput();
     method public java.util.Set<java.lang.String> getAllowedDataTypes();
-    method public java.lang.CharSequence[] getChoices();
-    method public static java.util.Map<java.lang.String, android.net.Uri> getDataResultsFromIntent(android.content.Intent, java.lang.String);
+    method public CharSequence[] getChoices();
+    method public static java.util.Map<java.lang.String,android.net.Uri> getDataResultsFromIntent(android.content.Intent, String);
     method public int getEditChoicesBeforeSending();
     method public android.os.Bundle getExtras();
-    method public java.lang.CharSequence getLabel();
-    method public java.lang.String getResultKey();
+    method public CharSequence getLabel();
+    method public String getResultKey();
     method public static android.os.Bundle getResultsFromIntent(android.content.Intent);
     method public static int getResultsSource(android.content.Intent);
     method public boolean isDataOnly();
@@ -6026,95 +6030,95 @@
     field public static final int EDIT_CHOICES_BEFORE_SENDING_AUTO = 0; // 0x0
     field public static final int EDIT_CHOICES_BEFORE_SENDING_DISABLED = 1; // 0x1
     field public static final int EDIT_CHOICES_BEFORE_SENDING_ENABLED = 2; // 0x2
-    field public static final java.lang.String EXTRA_RESULTS_DATA = "android.remoteinput.resultsData";
-    field public static final java.lang.String RESULTS_CLIP_LABEL = "android.remoteinput.results";
+    field public static final String EXTRA_RESULTS_DATA = "android.remoteinput.resultsData";
+    field public static final String RESULTS_CLIP_LABEL = "android.remoteinput.results";
     field public static final int SOURCE_CHOICE = 1; // 0x1
     field public static final int SOURCE_FREE_FORM_INPUT = 0; // 0x0
   }
 
   public static final class RemoteInput.Builder {
-    ctor public RemoteInput.Builder(java.lang.String);
-    method public android.app.RemoteInput.Builder addExtras(android.os.Bundle);
-    method public android.app.RemoteInput build();
-    method public android.os.Bundle getExtras();
-    method public android.app.RemoteInput.Builder setAllowDataType(java.lang.String, boolean);
-    method public android.app.RemoteInput.Builder setAllowFreeFormInput(boolean);
-    method public android.app.RemoteInput.Builder setChoices(java.lang.CharSequence[]);
-    method public android.app.RemoteInput.Builder setEditChoicesBeforeSending(int);
-    method public android.app.RemoteInput.Builder setLabel(java.lang.CharSequence);
+    ctor public RemoteInput.Builder(@NonNull String);
+    method @NonNull public android.app.RemoteInput.Builder addExtras(@NonNull android.os.Bundle);
+    method @NonNull public android.app.RemoteInput build();
+    method @NonNull public android.os.Bundle getExtras();
+    method @NonNull public android.app.RemoteInput.Builder setAllowDataType(@NonNull String, boolean);
+    method @NonNull public android.app.RemoteInput.Builder setAllowFreeFormInput(boolean);
+    method @NonNull public android.app.RemoteInput.Builder setChoices(@Nullable CharSequence[]);
+    method @NonNull public android.app.RemoteInput.Builder setEditChoicesBeforeSending(int);
+    method @NonNull public android.app.RemoteInput.Builder setLabel(@Nullable CharSequence);
   }
 
   public class SearchManager implements android.content.DialogInterface.OnCancelListener android.content.DialogInterface.OnDismissListener {
     method public android.content.ComponentName getGlobalSearchActivity();
     method public android.app.SearchableInfo getSearchableInfo(android.content.ComponentName);
     method public java.util.List<android.app.SearchableInfo> getSearchablesInGlobalSearch();
-    method public deprecated void onCancel(android.content.DialogInterface);
-    method public deprecated void onDismiss(android.content.DialogInterface);
+    method @Deprecated public void onCancel(android.content.DialogInterface);
+    method @Deprecated public void onDismiss(android.content.DialogInterface);
     method public void setOnCancelListener(android.app.SearchManager.OnCancelListener);
     method public void setOnDismissListener(android.app.SearchManager.OnDismissListener);
-    method public void startSearch(java.lang.String, boolean, android.content.ComponentName, android.os.Bundle, boolean);
+    method public void startSearch(String, boolean, android.content.ComponentName, android.os.Bundle, boolean);
     method public void stopSearch();
-    method public void triggerSearch(java.lang.String, android.content.ComponentName, android.os.Bundle);
-    field public static final java.lang.String ACTION_KEY = "action_key";
-    field public static final java.lang.String ACTION_MSG = "action_msg";
-    field public static final java.lang.String APP_DATA = "app_data";
-    field public static final java.lang.String CURSOR_EXTRA_KEY_IN_PROGRESS = "in_progress";
-    field public static final java.lang.String EXTRA_DATA_KEY = "intent_extra_data_key";
-    field public static final java.lang.String EXTRA_NEW_SEARCH = "new_search";
-    field public static final java.lang.String EXTRA_SELECT_QUERY = "select_query";
-    field public static final java.lang.String EXTRA_WEB_SEARCH_PENDINGINTENT = "web_search_pendingintent";
+    method public void triggerSearch(String, android.content.ComponentName, android.os.Bundle);
+    field public static final String ACTION_KEY = "action_key";
+    field public static final String ACTION_MSG = "action_msg";
+    field public static final String APP_DATA = "app_data";
+    field public static final String CURSOR_EXTRA_KEY_IN_PROGRESS = "in_progress";
+    field public static final String EXTRA_DATA_KEY = "intent_extra_data_key";
+    field public static final String EXTRA_NEW_SEARCH = "new_search";
+    field public static final String EXTRA_SELECT_QUERY = "select_query";
+    field public static final String EXTRA_WEB_SEARCH_PENDINGINTENT = "web_search_pendingintent";
     field public static final int FLAG_QUERY_REFINEMENT = 1; // 0x1
-    field public static final java.lang.String INTENT_ACTION_GLOBAL_SEARCH = "android.search.action.GLOBAL_SEARCH";
-    field public static final java.lang.String INTENT_ACTION_SEARCHABLES_CHANGED = "android.search.action.SEARCHABLES_CHANGED";
-    field public static final java.lang.String INTENT_ACTION_SEARCH_SETTINGS = "android.search.action.SEARCH_SETTINGS";
-    field public static final java.lang.String INTENT_ACTION_SEARCH_SETTINGS_CHANGED = "android.search.action.SETTINGS_CHANGED";
-    field public static final java.lang.String INTENT_ACTION_WEB_SEARCH_SETTINGS = "android.search.action.WEB_SEARCH_SETTINGS";
-    field public static final java.lang.String INTENT_GLOBAL_SEARCH_ACTIVITY_CHANGED = "android.search.action.GLOBAL_SEARCH_ACTIVITY_CHANGED";
+    field public static final String INTENT_ACTION_GLOBAL_SEARCH = "android.search.action.GLOBAL_SEARCH";
+    field public static final String INTENT_ACTION_SEARCHABLES_CHANGED = "android.search.action.SEARCHABLES_CHANGED";
+    field public static final String INTENT_ACTION_SEARCH_SETTINGS = "android.search.action.SEARCH_SETTINGS";
+    field public static final String INTENT_ACTION_SEARCH_SETTINGS_CHANGED = "android.search.action.SETTINGS_CHANGED";
+    field public static final String INTENT_ACTION_WEB_SEARCH_SETTINGS = "android.search.action.WEB_SEARCH_SETTINGS";
+    field public static final String INTENT_GLOBAL_SEARCH_ACTIVITY_CHANGED = "android.search.action.GLOBAL_SEARCH_ACTIVITY_CHANGED";
     field public static final char MENU_KEY = 115; // 0x0073 's'
     field public static final int MENU_KEYCODE = 47; // 0x2f
-    field public static final java.lang.String QUERY = "query";
-    field public static final java.lang.String SHORTCUT_MIME_TYPE = "vnd.android.cursor.item/vnd.android.search.suggest";
-    field public static final java.lang.String SUGGEST_COLUMN_AUDIO_CHANNEL_CONFIG = "suggest_audio_channel_config";
-    field public static final java.lang.String SUGGEST_COLUMN_CONTENT_TYPE = "suggest_content_type";
-    field public static final java.lang.String SUGGEST_COLUMN_DURATION = "suggest_duration";
-    field public static final java.lang.String SUGGEST_COLUMN_FLAGS = "suggest_flags";
-    field public static final java.lang.String SUGGEST_COLUMN_FORMAT = "suggest_format";
-    field public static final java.lang.String SUGGEST_COLUMN_ICON_1 = "suggest_icon_1";
-    field public static final java.lang.String SUGGEST_COLUMN_ICON_2 = "suggest_icon_2";
-    field public static final java.lang.String SUGGEST_COLUMN_INTENT_ACTION = "suggest_intent_action";
-    field public static final java.lang.String SUGGEST_COLUMN_INTENT_DATA = "suggest_intent_data";
-    field public static final java.lang.String SUGGEST_COLUMN_INTENT_DATA_ID = "suggest_intent_data_id";
-    field public static final java.lang.String SUGGEST_COLUMN_INTENT_EXTRA_DATA = "suggest_intent_extra_data";
-    field public static final java.lang.String SUGGEST_COLUMN_IS_LIVE = "suggest_is_live";
-    field public static final java.lang.String SUGGEST_COLUMN_LAST_ACCESS_HINT = "suggest_last_access_hint";
-    field public static final java.lang.String SUGGEST_COLUMN_PRODUCTION_YEAR = "suggest_production_year";
-    field public static final java.lang.String SUGGEST_COLUMN_PURCHASE_PRICE = "suggest_purchase_price";
-    field public static final java.lang.String SUGGEST_COLUMN_QUERY = "suggest_intent_query";
-    field public static final java.lang.String SUGGEST_COLUMN_RATING_SCORE = "suggest_rating_score";
-    field public static final java.lang.String SUGGEST_COLUMN_RATING_STYLE = "suggest_rating_style";
-    field public static final java.lang.String SUGGEST_COLUMN_RENTAL_PRICE = "suggest_rental_price";
-    field public static final java.lang.String SUGGEST_COLUMN_RESULT_CARD_IMAGE = "suggest_result_card_image";
-    field public static final java.lang.String SUGGEST_COLUMN_SHORTCUT_ID = "suggest_shortcut_id";
-    field public static final java.lang.String SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING = "suggest_spinner_while_refreshing";
-    field public static final java.lang.String SUGGEST_COLUMN_TEXT_1 = "suggest_text_1";
-    field public static final java.lang.String SUGGEST_COLUMN_TEXT_2 = "suggest_text_2";
-    field public static final java.lang.String SUGGEST_COLUMN_TEXT_2_URL = "suggest_text_2_url";
-    field public static final java.lang.String SUGGEST_COLUMN_VIDEO_HEIGHT = "suggest_video_height";
-    field public static final java.lang.String SUGGEST_COLUMN_VIDEO_WIDTH = "suggest_video_width";
-    field public static final java.lang.String SUGGEST_MIME_TYPE = "vnd.android.cursor.dir/vnd.android.search.suggest";
-    field public static final java.lang.String SUGGEST_NEVER_MAKE_SHORTCUT = "_-1";
-    field public static final java.lang.String SUGGEST_PARAMETER_LIMIT = "limit";
-    field public static final java.lang.String SUGGEST_URI_PATH_QUERY = "search_suggest_query";
-    field public static final java.lang.String SUGGEST_URI_PATH_SHORTCUT = "search_suggest_shortcut";
-    field public static final java.lang.String USER_QUERY = "user_query";
+    field public static final String QUERY = "query";
+    field public static final String SHORTCUT_MIME_TYPE = "vnd.android.cursor.item/vnd.android.search.suggest";
+    field public static final String SUGGEST_COLUMN_AUDIO_CHANNEL_CONFIG = "suggest_audio_channel_config";
+    field public static final String SUGGEST_COLUMN_CONTENT_TYPE = "suggest_content_type";
+    field public static final String SUGGEST_COLUMN_DURATION = "suggest_duration";
+    field public static final String SUGGEST_COLUMN_FLAGS = "suggest_flags";
+    field public static final String SUGGEST_COLUMN_FORMAT = "suggest_format";
+    field public static final String SUGGEST_COLUMN_ICON_1 = "suggest_icon_1";
+    field public static final String SUGGEST_COLUMN_ICON_2 = "suggest_icon_2";
+    field public static final String SUGGEST_COLUMN_INTENT_ACTION = "suggest_intent_action";
+    field public static final String SUGGEST_COLUMN_INTENT_DATA = "suggest_intent_data";
+    field public static final String SUGGEST_COLUMN_INTENT_DATA_ID = "suggest_intent_data_id";
+    field public static final String SUGGEST_COLUMN_INTENT_EXTRA_DATA = "suggest_intent_extra_data";
+    field public static final String SUGGEST_COLUMN_IS_LIVE = "suggest_is_live";
+    field public static final String SUGGEST_COLUMN_LAST_ACCESS_HINT = "suggest_last_access_hint";
+    field public static final String SUGGEST_COLUMN_PRODUCTION_YEAR = "suggest_production_year";
+    field public static final String SUGGEST_COLUMN_PURCHASE_PRICE = "suggest_purchase_price";
+    field public static final String SUGGEST_COLUMN_QUERY = "suggest_intent_query";
+    field public static final String SUGGEST_COLUMN_RATING_SCORE = "suggest_rating_score";
+    field public static final String SUGGEST_COLUMN_RATING_STYLE = "suggest_rating_style";
+    field public static final String SUGGEST_COLUMN_RENTAL_PRICE = "suggest_rental_price";
+    field public static final String SUGGEST_COLUMN_RESULT_CARD_IMAGE = "suggest_result_card_image";
+    field public static final String SUGGEST_COLUMN_SHORTCUT_ID = "suggest_shortcut_id";
+    field public static final String SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING = "suggest_spinner_while_refreshing";
+    field public static final String SUGGEST_COLUMN_TEXT_1 = "suggest_text_1";
+    field public static final String SUGGEST_COLUMN_TEXT_2 = "suggest_text_2";
+    field public static final String SUGGEST_COLUMN_TEXT_2_URL = "suggest_text_2_url";
+    field public static final String SUGGEST_COLUMN_VIDEO_HEIGHT = "suggest_video_height";
+    field public static final String SUGGEST_COLUMN_VIDEO_WIDTH = "suggest_video_width";
+    field public static final String SUGGEST_MIME_TYPE = "vnd.android.cursor.dir/vnd.android.search.suggest";
+    field public static final String SUGGEST_NEVER_MAKE_SHORTCUT = "_-1";
+    field public static final String SUGGEST_PARAMETER_LIMIT = "limit";
+    field public static final String SUGGEST_URI_PATH_QUERY = "search_suggest_query";
+    field public static final String SUGGEST_URI_PATH_SHORTCUT = "search_suggest_shortcut";
+    field public static final String USER_QUERY = "user_query";
   }
 
-  public static abstract interface SearchManager.OnCancelListener {
-    method public abstract void onCancel();
+  public static interface SearchManager.OnCancelListener {
+    method public void onCancel();
   }
 
-  public static abstract interface SearchManager.OnDismissListener {
-    method public abstract void onDismiss();
+  public static interface SearchManager.OnDismissListener {
+    method public void onDismiss();
   }
 
   public final class SearchableInfo implements android.os.Parcelable {
@@ -6125,17 +6129,17 @@
     method public int getInputType();
     method public android.content.ComponentName getSearchActivity();
     method public int getSettingsDescriptionId();
-    method public java.lang.String getSuggestAuthority();
-    method public java.lang.String getSuggestIntentAction();
-    method public java.lang.String getSuggestIntentData();
-    method public java.lang.String getSuggestPackage();
-    method public java.lang.String getSuggestPath();
-    method public java.lang.String getSuggestSelection();
+    method public String getSuggestAuthority();
+    method public String getSuggestIntentAction();
+    method public String getSuggestIntentData();
+    method public String getSuggestPackage();
+    method public String getSuggestPath();
+    method public String getSuggestSelection();
     method public int getSuggestThreshold();
-    method public int getVoiceLanguageId();
-    method public int getVoiceLanguageModeId();
+    method @StringRes public int getVoiceLanguageId();
+    method @StringRes public int getVoiceLanguageModeId();
     method public int getVoiceMaxResults();
-    method public int getVoicePromptTextId();
+    method @StringRes public int getVoicePromptTextId();
     method public boolean getVoiceSearchEnabled();
     method public boolean getVoiceSearchLaunchRecognizer();
     method public boolean getVoiceSearchLaunchWebSearch();
@@ -6149,15 +6153,15 @@
 
   public abstract class Service extends android.content.ContextWrapper implements android.content.ComponentCallbacks2 {
     ctor public Service();
-    method protected void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
+    method protected void dump(java.io.FileDescriptor, java.io.PrintWriter, String[]);
     method public final android.app.Application getApplication();
-    method public abstract android.os.IBinder onBind(android.content.Intent);
+    method @Nullable public abstract android.os.IBinder onBind(android.content.Intent);
     method public void onConfigurationChanged(android.content.res.Configuration);
     method public void onCreate();
     method public void onDestroy();
     method public void onLowMemory();
     method public void onRebind(android.content.Intent);
-    method public deprecated void onStart(android.content.Intent, int);
+    method @Deprecated public void onStart(android.content.Intent, int);
     method public int onStartCommand(android.content.Intent, int, int);
     method public void onTaskRemoved(android.content.Intent);
     method public void onTrimMemory(int);
@@ -6183,15 +6187,15 @@
     ctor public SharedElementCallback();
     method public android.os.Parcelable onCaptureSharedElementSnapshot(android.view.View, android.graphics.Matrix, android.graphics.RectF);
     method public android.view.View onCreateSnapshotView(android.content.Context, android.os.Parcelable);
-    method public void onMapSharedElements(java.util.List<java.lang.String>, java.util.Map<java.lang.String, android.view.View>);
+    method public void onMapSharedElements(java.util.List<java.lang.String>, java.util.Map<java.lang.String,android.view.View>);
     method public void onRejectSharedElements(java.util.List<android.view.View>);
     method public void onSharedElementEnd(java.util.List<java.lang.String>, java.util.List<android.view.View>, java.util.List<android.view.View>);
     method public void onSharedElementStart(java.util.List<java.lang.String>, java.util.List<android.view.View>, java.util.List<android.view.View>);
     method public void onSharedElementsArrived(java.util.List<java.lang.String>, java.util.List<android.view.View>, android.app.SharedElementCallback.OnSharedElementsReadyListener);
   }
 
-  public static abstract interface SharedElementCallback.OnSharedElementsReadyListener {
-    method public abstract void onSharedElementsReady();
+  public static interface SharedElementCallback.OnSharedElementsReadyListener {
+    method public void onSharedElementsReady();
   }
 
   public class SmsAppService extends android.app.Service {
@@ -6199,12 +6203,12 @@
     method public final android.os.IBinder onBind(android.content.Intent);
   }
 
-  public deprecated class TabActivity extends android.app.ActivityGroup {
-    ctor public TabActivity();
-    method public android.widget.TabHost getTabHost();
-    method public android.widget.TabWidget getTabWidget();
-    method public void setDefaultTab(java.lang.String);
-    method public void setDefaultTab(int);
+  @Deprecated public class TabActivity extends android.app.ActivityGroup {
+    ctor @Deprecated public TabActivity();
+    method @Deprecated public android.widget.TabHost getTabHost();
+    method @Deprecated public android.widget.TabWidget getTabWidget();
+    method @Deprecated public void setDefaultTab(String);
+    method @Deprecated public void setDefaultTab(int);
   }
 
   public class TaskInfo {
@@ -6222,12 +6226,12 @@
     method public android.app.TaskStackBuilder addNextIntent(android.content.Intent);
     method public android.app.TaskStackBuilder addNextIntentWithParentStack(android.content.Intent);
     method public android.app.TaskStackBuilder addParentStack(android.app.Activity);
-    method public android.app.TaskStackBuilder addParentStack(java.lang.Class<?>);
+    method public android.app.TaskStackBuilder addParentStack(Class<?>);
     method public android.app.TaskStackBuilder addParentStack(android.content.ComponentName);
     method public static android.app.TaskStackBuilder create(android.content.Context);
     method public android.content.Intent editIntentAt(int);
     method public int getIntentCount();
-    method public android.content.Intent[] getIntents();
+    method @NonNull public android.content.Intent[] getIntents();
     method public android.app.PendingIntent getPendingIntent(int, int);
     method public android.app.PendingIntent getPendingIntent(int, int, android.os.Bundle);
     method public void startActivities();
@@ -6242,8 +6246,8 @@
     method public void updateTime(int, int);
   }
 
-  public static abstract interface TimePickerDialog.OnTimeSetListener {
-    method public abstract void onTimeSet(android.widget.TimePicker, int, int);
+  public static interface TimePickerDialog.OnTimeSetListener {
+    method public void onTimeSet(android.widget.TimePicker, int, int);
   }
 
   public final class UiAutomation {
@@ -6252,20 +6256,20 @@
     method public void clearWindowAnimationFrameStats();
     method public boolean clearWindowContentFrameStats(int);
     method public void dropShellPermissionIdentity();
-    method public android.view.accessibility.AccessibilityEvent executeAndWaitForEvent(java.lang.Runnable, android.app.UiAutomation.AccessibilityEventFilter, long) throws java.util.concurrent.TimeoutException;
-    method public android.os.ParcelFileDescriptor executeShellCommand(java.lang.String);
+    method public android.view.accessibility.AccessibilityEvent executeAndWaitForEvent(Runnable, android.app.UiAutomation.AccessibilityEventFilter, long) throws java.util.concurrent.TimeoutException;
+    method public android.os.ParcelFileDescriptor executeShellCommand(String);
     method public android.view.accessibility.AccessibilityNodeInfo findFocus(int);
     method public android.view.accessibility.AccessibilityNodeInfo getRootInActiveWindow();
     method public android.accessibilityservice.AccessibilityServiceInfo getServiceInfo();
     method public android.view.WindowAnimationFrameStats getWindowAnimationFrameStats();
     method public android.view.WindowContentFrameStats getWindowContentFrameStats(int);
     method public java.util.List<android.view.accessibility.AccessibilityWindowInfo> getWindows();
-    method public void grantRuntimePermission(java.lang.String, java.lang.String);
-    method public void grantRuntimePermissionAsUser(java.lang.String, java.lang.String, android.os.UserHandle);
+    method public void grantRuntimePermission(String, String);
+    method public void grantRuntimePermissionAsUser(String, String, android.os.UserHandle);
     method public boolean injectInputEvent(android.view.InputEvent, boolean);
     method public boolean performGlobalAction(int);
-    method public void revokeRuntimePermission(java.lang.String, java.lang.String);
-    method public void revokeRuntimePermissionAsUser(java.lang.String, java.lang.String, android.os.UserHandle);
+    method public void revokeRuntimePermission(String, String);
+    method public void revokeRuntimePermissionAsUser(String, String, android.os.UserHandle);
     method public void setOnAccessibilityEventListener(android.app.UiAutomation.OnAccessibilityEventListener);
     method public boolean setRotation(int);
     method public void setRunAsMonkey(boolean);
@@ -6281,12 +6285,12 @@
     field public static final int ROTATION_UNFREEZE = -2; // 0xfffffffe
   }
 
-  public static abstract interface UiAutomation.AccessibilityEventFilter {
-    method public abstract boolean accept(android.view.accessibility.AccessibilityEvent);
+  public static interface UiAutomation.AccessibilityEventFilter {
+    method public boolean accept(android.view.accessibility.AccessibilityEvent);
   }
 
-  public static abstract interface UiAutomation.OnAccessibilityEventListener {
-    method public abstract void onAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
+  public static interface UiAutomation.OnAccessibilityEventListener {
+    method public void onAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
   }
 
   public class UiModeManager {
@@ -6295,10 +6299,10 @@
     method public int getCurrentModeType();
     method public int getNightMode();
     method public void setNightMode(int);
-    field public static java.lang.String ACTION_ENTER_CAR_MODE;
-    field public static java.lang.String ACTION_ENTER_DESK_MODE;
-    field public static java.lang.String ACTION_EXIT_CAR_MODE;
-    field public static java.lang.String ACTION_EXIT_DESK_MODE;
+    field public static String ACTION_ENTER_CAR_MODE;
+    field public static String ACTION_ENTER_DESK_MODE;
+    field public static String ACTION_EXIT_CAR_MODE;
+    field public static String ACTION_EXIT_DESK_MODE;
     field public static final int DISABLE_CAR_MODE_GO_HOME = 1; // 0x1
     field public static final int ENABLE_CAR_MODE_ALLOW_SLEEP = 2; // 0x2
     field public static final int ENABLE_CAR_MODE_GO_CAR_HOME = 1; // 0x1
@@ -6308,68 +6312,68 @@
   }
 
   public final class VoiceInteractor {
-    method public android.app.VoiceInteractor.Request getActiveRequest(java.lang.String);
+    method public android.app.VoiceInteractor.Request getActiveRequest(String);
     method public android.app.VoiceInteractor.Request[] getActiveRequests();
     method public boolean submitRequest(android.app.VoiceInteractor.Request);
-    method public boolean submitRequest(android.app.VoiceInteractor.Request, java.lang.String);
-    method public boolean[] supportsCommands(java.lang.String[]);
+    method public boolean submitRequest(android.app.VoiceInteractor.Request, String);
+    method public boolean[] supportsCommands(String[]);
   }
 
   public static class VoiceInteractor.AbortVoiceRequest extends android.app.VoiceInteractor.Request {
-    ctor public VoiceInteractor.AbortVoiceRequest(android.app.VoiceInteractor.Prompt, android.os.Bundle);
+    ctor public VoiceInteractor.AbortVoiceRequest(@Nullable android.app.VoiceInteractor.Prompt, @Nullable android.os.Bundle);
     method public void onAbortResult(android.os.Bundle);
   }
 
   public static class VoiceInteractor.CommandRequest extends android.app.VoiceInteractor.Request {
-    ctor public VoiceInteractor.CommandRequest(java.lang.String, android.os.Bundle);
+    ctor public VoiceInteractor.CommandRequest(String, android.os.Bundle);
     method public void onCommandResult(boolean, android.os.Bundle);
   }
 
   public static class VoiceInteractor.CompleteVoiceRequest extends android.app.VoiceInteractor.Request {
-    ctor public VoiceInteractor.CompleteVoiceRequest(android.app.VoiceInteractor.Prompt, android.os.Bundle);
+    ctor public VoiceInteractor.CompleteVoiceRequest(@Nullable android.app.VoiceInteractor.Prompt, @Nullable android.os.Bundle);
     method public void onCompleteResult(android.os.Bundle);
   }
 
   public static class VoiceInteractor.ConfirmationRequest extends android.app.VoiceInteractor.Request {
-    ctor public VoiceInteractor.ConfirmationRequest(android.app.VoiceInteractor.Prompt, android.os.Bundle);
+    ctor public VoiceInteractor.ConfirmationRequest(@Nullable android.app.VoiceInteractor.Prompt, @Nullable android.os.Bundle);
     method public void onConfirmationResult(boolean, android.os.Bundle);
   }
 
   public static class VoiceInteractor.PickOptionRequest extends android.app.VoiceInteractor.Request {
-    ctor public VoiceInteractor.PickOptionRequest(android.app.VoiceInteractor.Prompt, android.app.VoiceInteractor.PickOptionRequest.Option[], android.os.Bundle);
+    ctor public VoiceInteractor.PickOptionRequest(@Nullable android.app.VoiceInteractor.Prompt, android.app.VoiceInteractor.PickOptionRequest.Option[], @Nullable android.os.Bundle);
     method public void onPickOptionResult(boolean, android.app.VoiceInteractor.PickOptionRequest.Option[], android.os.Bundle);
   }
 
   public static final class VoiceInteractor.PickOptionRequest.Option implements android.os.Parcelable {
-    ctor public VoiceInteractor.PickOptionRequest.Option(java.lang.CharSequence, int);
-    method public android.app.VoiceInteractor.PickOptionRequest.Option addSynonym(java.lang.CharSequence);
+    ctor public VoiceInteractor.PickOptionRequest.Option(CharSequence, int);
+    method public android.app.VoiceInteractor.PickOptionRequest.Option addSynonym(CharSequence);
     method public int countSynonyms();
     method public int describeContents();
     method public android.os.Bundle getExtras();
     method public int getIndex();
-    method public java.lang.CharSequence getLabel();
-    method public java.lang.CharSequence getSynonymAt(int);
+    method public CharSequence getLabel();
+    method public CharSequence getSynonymAt(int);
     method public void setExtras(android.os.Bundle);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.VoiceInteractor.PickOptionRequest.Option> CREATOR;
   }
 
   public static class VoiceInteractor.Prompt implements android.os.Parcelable {
-    ctor public VoiceInteractor.Prompt(java.lang.CharSequence[], java.lang.CharSequence);
-    ctor public VoiceInteractor.Prompt(java.lang.CharSequence);
+    ctor public VoiceInteractor.Prompt(@NonNull CharSequence[], @NonNull CharSequence);
+    ctor public VoiceInteractor.Prompt(@NonNull CharSequence);
     method public int countVoicePrompts();
     method public int describeContents();
-    method public java.lang.CharSequence getVisualPrompt();
-    method public java.lang.CharSequence getVoicePromptAt(int);
+    method @NonNull public CharSequence getVisualPrompt();
+    method @NonNull public CharSequence getVoicePromptAt(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.VoiceInteractor.Prompt> CREATOR;
   }
 
-  public static abstract class VoiceInteractor.Request {
+  public abstract static class VoiceInteractor.Request {
     method public void cancel();
     method public android.app.Activity getActivity();
     method public android.content.Context getContext();
-    method public java.lang.String getName();
+    method public String getName();
     method public void onAttached(android.app.Activity);
     method public void onCancel();
     method public void onDetached();
@@ -6377,13 +6381,13 @@
 
   public final class WallpaperColors implements android.os.Parcelable {
     ctor public WallpaperColors(android.os.Parcel);
-    ctor public WallpaperColors(android.graphics.Color, android.graphics.Color, android.graphics.Color);
+    ctor public WallpaperColors(@NonNull android.graphics.Color, @Nullable android.graphics.Color, @Nullable android.graphics.Color);
     method public int describeContents();
-    method public static android.app.WallpaperColors fromBitmap(android.graphics.Bitmap);
+    method public static android.app.WallpaperColors fromBitmap(@NonNull android.graphics.Bitmap);
     method public static android.app.WallpaperColors fromDrawable(android.graphics.drawable.Drawable);
-    method public android.graphics.Color getPrimaryColor();
-    method public android.graphics.Color getSecondaryColor();
-    method public android.graphics.Color getTertiaryColor();
+    method @NonNull public android.graphics.Color getPrimaryColor();
+    method @Nullable public android.graphics.Color getSecondaryColor();
+    method @Nullable public android.graphics.Color getTertiaryColor();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR;
   }
@@ -6391,20 +6395,20 @@
   public final class WallpaperInfo implements android.os.Parcelable {
     ctor public WallpaperInfo(android.content.Context, android.content.pm.ResolveInfo) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public android.content.ComponentName getComponent();
-    method public java.lang.String getPackageName();
+    method public String getPackageName();
     method public android.content.pm.ServiceInfo getServiceInfo();
-    method public java.lang.String getServiceName();
-    method public java.lang.String getSettingsActivity();
+    method public String getServiceName();
+    method public String getSettingsActivity();
     method public android.net.Uri getSettingsSliceUri();
     method public boolean getShowMetadataInPreview();
-    method public java.lang.CharSequence loadAuthor(android.content.pm.PackageManager) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.CharSequence loadContextDescription(android.content.pm.PackageManager) throws android.content.res.Resources.NotFoundException;
+    method public CharSequence loadAuthor(android.content.pm.PackageManager) throws android.content.res.Resources.NotFoundException;
+    method public CharSequence loadContextDescription(android.content.pm.PackageManager) throws android.content.res.Resources.NotFoundException;
     method public android.net.Uri loadContextUri(android.content.pm.PackageManager) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.CharSequence loadDescription(android.content.pm.PackageManager) throws android.content.res.Resources.NotFoundException;
+    method public CharSequence loadDescription(android.content.pm.PackageManager) throws android.content.res.Resources.NotFoundException;
     method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
-    method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
+    method public CharSequence loadLabel(android.content.pm.PackageManager);
     method public android.graphics.drawable.Drawable loadThumbnail(android.content.pm.PackageManager);
     method public boolean supportsMultipleDisplays();
     method public void writeToParcel(android.os.Parcel, int);
@@ -6412,10 +6416,10 @@
   }
 
   public class WallpaperManager {
-    method public void addOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener, android.os.Handler);
-    method public void clear() throws java.io.IOException;
-    method public void clear(int) throws java.io.IOException;
-    method public void clearWallpaper();
+    method public void addOnColorsChangedListener(@NonNull android.app.WallpaperManager.OnColorsChangedListener, @NonNull android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public void clear() throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public void clear(int) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public void clearWallpaper();
     method public void clearWallpaperOffsets(android.os.IBinder);
     method public void forgetLoadedWallpaper();
     method public android.graphics.drawable.Drawable getBuiltInDrawable();
@@ -6426,45 +6430,45 @@
     method public int getDesiredMinimumHeight();
     method public int getDesiredMinimumWidth();
     method public android.graphics.drawable.Drawable getDrawable();
-    method public android.graphics.drawable.Drawable getFastDrawable();
+    method @RequiresPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) public android.graphics.drawable.Drawable getFastDrawable();
     method public static android.app.WallpaperManager getInstance(android.content.Context);
-    method public android.app.WallpaperColors getWallpaperColors(int);
-    method public android.os.ParcelFileDescriptor getWallpaperFile(int);
+    method @Nullable public android.app.WallpaperColors getWallpaperColors(int);
+    method @RequiresPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) public android.os.ParcelFileDescriptor getWallpaperFile(int);
     method public int getWallpaperId(int);
     method public android.app.WallpaperInfo getWallpaperInfo();
-    method public boolean hasResourceWallpaper(int);
+    method public boolean hasResourceWallpaper(@RawRes int);
     method public boolean isSetWallpaperAllowed();
     method public boolean isWallpaperSupported();
     method public android.graphics.drawable.Drawable peekDrawable();
-    method public android.graphics.drawable.Drawable peekFastDrawable();
-    method public void removeOnColorsChangedListener(android.app.WallpaperManager.OnColorsChangedListener);
-    method public void sendWallpaperCommand(android.os.IBinder, java.lang.String, int, int, int, android.os.Bundle);
-    method public void setBitmap(android.graphics.Bitmap) throws java.io.IOException;
-    method public int setBitmap(android.graphics.Bitmap, android.graphics.Rect, boolean) throws java.io.IOException;
-    method public int setBitmap(android.graphics.Bitmap, android.graphics.Rect, boolean, int) throws java.io.IOException;
-    method public void setDisplayPadding(android.graphics.Rect);
-    method public void setResource(int) throws java.io.IOException;
-    method public int setResource(int, int) throws java.io.IOException;
-    method public void setStream(java.io.InputStream) throws java.io.IOException;
-    method public int setStream(java.io.InputStream, android.graphics.Rect, boolean) throws java.io.IOException;
-    method public int setStream(java.io.InputStream, android.graphics.Rect, boolean, int) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) public android.graphics.drawable.Drawable peekFastDrawable();
+    method public void removeOnColorsChangedListener(@NonNull android.app.WallpaperManager.OnColorsChangedListener);
+    method public void sendWallpaperCommand(android.os.IBinder, String, int, int, int, android.os.Bundle);
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public void setBitmap(android.graphics.Bitmap) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public int setBitmap(android.graphics.Bitmap, android.graphics.Rect, boolean) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public int setBitmap(android.graphics.Bitmap, android.graphics.Rect, boolean, int) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER_HINTS) public void setDisplayPadding(android.graphics.Rect);
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public void setResource(@RawRes int) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public int setResource(@RawRes int, int) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public void setStream(java.io.InputStream) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public int setStream(java.io.InputStream, android.graphics.Rect, boolean) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER) public int setStream(java.io.InputStream, android.graphics.Rect, boolean, int) throws java.io.IOException;
     method public void setWallpaperOffsetSteps(float, float);
     method public void setWallpaperOffsets(android.os.IBinder, float, float);
     method public void suggestDesiredDimensions(int, int);
-    field public static final java.lang.String ACTION_CHANGE_LIVE_WALLPAPER = "android.service.wallpaper.CHANGE_LIVE_WALLPAPER";
-    field public static final java.lang.String ACTION_CROP_AND_SET_WALLPAPER = "android.service.wallpaper.CROP_AND_SET_WALLPAPER";
-    field public static final java.lang.String ACTION_LIVE_WALLPAPER_CHOOSER = "android.service.wallpaper.LIVE_WALLPAPER_CHOOSER";
-    field public static final java.lang.String COMMAND_DROP = "android.home.drop";
-    field public static final java.lang.String COMMAND_SECONDARY_TAP = "android.wallpaper.secondaryTap";
-    field public static final java.lang.String COMMAND_TAP = "android.wallpaper.tap";
-    field public static final java.lang.String EXTRA_LIVE_WALLPAPER_COMPONENT = "android.service.wallpaper.extra.LIVE_WALLPAPER_COMPONENT";
+    field public static final String ACTION_CHANGE_LIVE_WALLPAPER = "android.service.wallpaper.CHANGE_LIVE_WALLPAPER";
+    field public static final String ACTION_CROP_AND_SET_WALLPAPER = "android.service.wallpaper.CROP_AND_SET_WALLPAPER";
+    field public static final String ACTION_LIVE_WALLPAPER_CHOOSER = "android.service.wallpaper.LIVE_WALLPAPER_CHOOSER";
+    field public static final String COMMAND_DROP = "android.home.drop";
+    field public static final String COMMAND_SECONDARY_TAP = "android.wallpaper.secondaryTap";
+    field public static final String COMMAND_TAP = "android.wallpaper.tap";
+    field public static final String EXTRA_LIVE_WALLPAPER_COMPONENT = "android.service.wallpaper.extra.LIVE_WALLPAPER_COMPONENT";
     field public static final int FLAG_LOCK = 2; // 0x2
     field public static final int FLAG_SYSTEM = 1; // 0x1
-    field public static final java.lang.String WALLPAPER_PREVIEW_META_DATA = "android.wallpaper.preview";
+    field public static final String WALLPAPER_PREVIEW_META_DATA = "android.wallpaper.preview";
   }
 
-  public static abstract interface WallpaperManager.OnColorsChangedListener {
-    method public abstract void onColorsChanged(android.app.WallpaperColors, int);
+  public static interface WallpaperManager.OnColorsChangedListener {
+    method public void onColorsChanged(android.app.WallpaperColors, int);
   }
 
 }
@@ -6480,7 +6484,7 @@
 
   public class DelegatedAdminReceiver extends android.content.BroadcastReceiver {
     ctor public DelegatedAdminReceiver();
-    method public java.lang.String onChoosePrivateKeyAlias(android.content.Context, android.content.Intent, int, android.net.Uri, java.lang.String);
+    method public String onChoosePrivateKeyAlias(android.content.Context, android.content.Intent, int, android.net.Uri, String);
     method public void onNetworkLogsAvailable(android.content.Context, android.content.Intent, long, int);
     method public void onReceive(android.content.Context, android.content.Intent);
   }
@@ -6488,16 +6492,16 @@
   public final class DeviceAdminInfo implements android.os.Parcelable {
     ctor public DeviceAdminInfo(android.content.Context, android.content.pm.ResolveInfo) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public android.content.pm.ActivityInfo getActivityInfo();
-    method public android.content.ComponentName getComponent();
-    method public java.lang.String getPackageName();
-    method public java.lang.String getReceiverName();
-    method public java.lang.String getTagForPolicy(int);
+    method @NonNull public android.content.ComponentName getComponent();
+    method public String getPackageName();
+    method public String getReceiverName();
+    method public String getTagForPolicy(int);
     method public boolean isVisible();
-    method public java.lang.CharSequence loadDescription(android.content.pm.PackageManager) throws android.content.res.Resources.NotFoundException;
+    method public CharSequence loadDescription(android.content.pm.PackageManager) throws android.content.res.Resources.NotFoundException;
     method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
-    method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
+    method public CharSequence loadLabel(android.content.pm.PackageManager);
     method public boolean supportsTransferOwnership();
     method public boolean usesPolicy(int);
     method public void writeToParcel(android.os.Parcel, int);
@@ -6518,53 +6522,53 @@
     method public android.app.admin.DevicePolicyManager getManager(android.content.Context);
     method public android.content.ComponentName getWho(android.content.Context);
     method public void onBugreportFailed(android.content.Context, android.content.Intent, int);
-    method public void onBugreportShared(android.content.Context, android.content.Intent, java.lang.String);
+    method public void onBugreportShared(android.content.Context, android.content.Intent, String);
     method public void onBugreportSharingDeclined(android.content.Context, android.content.Intent);
-    method public java.lang.String onChoosePrivateKeyAlias(android.content.Context, android.content.Intent, int, android.net.Uri, java.lang.String);
-    method public java.lang.CharSequence onDisableRequested(android.content.Context, android.content.Intent);
+    method public String onChoosePrivateKeyAlias(android.content.Context, android.content.Intent, int, android.net.Uri, String);
+    method public CharSequence onDisableRequested(android.content.Context, android.content.Intent);
     method public void onDisabled(android.content.Context, android.content.Intent);
     method public void onEnabled(android.content.Context, android.content.Intent);
-    method public void onLockTaskModeEntering(android.content.Context, android.content.Intent, java.lang.String);
+    method public void onLockTaskModeEntering(android.content.Context, android.content.Intent, String);
     method public void onLockTaskModeExiting(android.content.Context, android.content.Intent);
     method public void onNetworkLogsAvailable(android.content.Context, android.content.Intent, long, int);
-    method public deprecated void onPasswordChanged(android.content.Context, android.content.Intent);
+    method @Deprecated public void onPasswordChanged(android.content.Context, android.content.Intent);
     method public void onPasswordChanged(android.content.Context, android.content.Intent, android.os.UserHandle);
-    method public deprecated void onPasswordExpiring(android.content.Context, android.content.Intent);
+    method @Deprecated public void onPasswordExpiring(android.content.Context, android.content.Intent);
     method public void onPasswordExpiring(android.content.Context, android.content.Intent, android.os.UserHandle);
-    method public deprecated void onPasswordFailed(android.content.Context, android.content.Intent);
+    method @Deprecated public void onPasswordFailed(android.content.Context, android.content.Intent);
     method public void onPasswordFailed(android.content.Context, android.content.Intent, android.os.UserHandle);
-    method public deprecated void onPasswordSucceeded(android.content.Context, android.content.Intent);
+    method @Deprecated public void onPasswordSucceeded(android.content.Context, android.content.Intent);
     method public void onPasswordSucceeded(android.content.Context, android.content.Intent, android.os.UserHandle);
     method public void onProfileProvisioningComplete(android.content.Context, android.content.Intent);
-    method public deprecated void onReadyForUserInitialization(android.content.Context, android.content.Intent);
+    method @Deprecated public void onReadyForUserInitialization(android.content.Context, android.content.Intent);
     method public void onReceive(android.content.Context, android.content.Intent);
     method public void onSecurityLogsAvailable(android.content.Context, android.content.Intent);
     method public void onSystemUpdatePending(android.content.Context, android.content.Intent, long);
     method public void onTransferAffiliatedProfileOwnershipComplete(android.content.Context, android.os.UserHandle);
-    method public void onTransferOwnershipComplete(android.content.Context, android.os.PersistableBundle);
-    method public void onUserAdded(android.content.Context, android.content.Intent, android.os.UserHandle);
-    method public void onUserRemoved(android.content.Context, android.content.Intent, android.os.UserHandle);
-    method public void onUserStarted(android.content.Context, android.content.Intent, android.os.UserHandle);
-    method public void onUserStopped(android.content.Context, android.content.Intent, android.os.UserHandle);
-    method public void onUserSwitched(android.content.Context, android.content.Intent, android.os.UserHandle);
-    field public static final java.lang.String ACTION_CHOOSE_PRIVATE_KEY_ALIAS = "android.app.action.CHOOSE_PRIVATE_KEY_ALIAS";
-    field public static final java.lang.String ACTION_DEVICE_ADMIN_DISABLED = "android.app.action.DEVICE_ADMIN_DISABLED";
-    field public static final java.lang.String ACTION_DEVICE_ADMIN_DISABLE_REQUESTED = "android.app.action.DEVICE_ADMIN_DISABLE_REQUESTED";
-    field public static final java.lang.String ACTION_DEVICE_ADMIN_ENABLED = "android.app.action.DEVICE_ADMIN_ENABLED";
-    field public static final java.lang.String ACTION_LOCK_TASK_ENTERING = "android.app.action.LOCK_TASK_ENTERING";
-    field public static final java.lang.String ACTION_LOCK_TASK_EXITING = "android.app.action.LOCK_TASK_EXITING";
-    field public static final java.lang.String ACTION_NETWORK_LOGS_AVAILABLE = "android.app.action.NETWORK_LOGS_AVAILABLE";
-    field public static final java.lang.String ACTION_PASSWORD_CHANGED = "android.app.action.ACTION_PASSWORD_CHANGED";
-    field public static final java.lang.String ACTION_PASSWORD_EXPIRING = "android.app.action.ACTION_PASSWORD_EXPIRING";
-    field public static final java.lang.String ACTION_PASSWORD_FAILED = "android.app.action.ACTION_PASSWORD_FAILED";
-    field public static final java.lang.String ACTION_PASSWORD_SUCCEEDED = "android.app.action.ACTION_PASSWORD_SUCCEEDED";
-    field public static final java.lang.String ACTION_PROFILE_PROVISIONING_COMPLETE = "android.app.action.PROFILE_PROVISIONING_COMPLETE";
+    method public void onTransferOwnershipComplete(@NonNull android.content.Context, @Nullable android.os.PersistableBundle);
+    method public void onUserAdded(android.content.Context, android.content.Intent, @NonNull android.os.UserHandle);
+    method public void onUserRemoved(android.content.Context, android.content.Intent, @NonNull android.os.UserHandle);
+    method public void onUserStarted(android.content.Context, android.content.Intent, @NonNull android.os.UserHandle);
+    method public void onUserStopped(android.content.Context, android.content.Intent, @NonNull android.os.UserHandle);
+    method public void onUserSwitched(android.content.Context, android.content.Intent, @NonNull android.os.UserHandle);
+    field public static final String ACTION_CHOOSE_PRIVATE_KEY_ALIAS = "android.app.action.CHOOSE_PRIVATE_KEY_ALIAS";
+    field public static final String ACTION_DEVICE_ADMIN_DISABLED = "android.app.action.DEVICE_ADMIN_DISABLED";
+    field public static final String ACTION_DEVICE_ADMIN_DISABLE_REQUESTED = "android.app.action.DEVICE_ADMIN_DISABLE_REQUESTED";
+    field public static final String ACTION_DEVICE_ADMIN_ENABLED = "android.app.action.DEVICE_ADMIN_ENABLED";
+    field public static final String ACTION_LOCK_TASK_ENTERING = "android.app.action.LOCK_TASK_ENTERING";
+    field public static final String ACTION_LOCK_TASK_EXITING = "android.app.action.LOCK_TASK_EXITING";
+    field public static final String ACTION_NETWORK_LOGS_AVAILABLE = "android.app.action.NETWORK_LOGS_AVAILABLE";
+    field public static final String ACTION_PASSWORD_CHANGED = "android.app.action.ACTION_PASSWORD_CHANGED";
+    field public static final String ACTION_PASSWORD_EXPIRING = "android.app.action.ACTION_PASSWORD_EXPIRING";
+    field public static final String ACTION_PASSWORD_FAILED = "android.app.action.ACTION_PASSWORD_FAILED";
+    field public static final String ACTION_PASSWORD_SUCCEEDED = "android.app.action.ACTION_PASSWORD_SUCCEEDED";
+    field public static final String ACTION_PROFILE_PROVISIONING_COMPLETE = "android.app.action.PROFILE_PROVISIONING_COMPLETE";
     field public static final int BUGREPORT_FAILURE_FAILED_COMPLETING = 0; // 0x0
     field public static final int BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE = 1; // 0x1
-    field public static final java.lang.String DEVICE_ADMIN_META_DATA = "android.app.device_admin";
-    field public static final java.lang.String EXTRA_DISABLE_WARNING = "android.app.extra.DISABLE_WARNING";
-    field public static final java.lang.String EXTRA_LOCK_TASK_PACKAGE = "android.app.extra.LOCK_TASK_PACKAGE";
-    field public static final java.lang.String EXTRA_TRANSFER_OWNERSHIP_ADMIN_EXTRAS_BUNDLE = "android.app.extra.TRANSFER_OWNERSHIP_ADMIN_EXTRAS_BUNDLE";
+    field public static final String DEVICE_ADMIN_META_DATA = "android.app.device_admin";
+    field public static final String EXTRA_DISABLE_WARNING = "android.app.extra.DISABLE_WARNING";
+    field public static final String EXTRA_LOCK_TASK_PACKAGE = "android.app.extra.LOCK_TASK_PACKAGE";
+    field public static final String EXTRA_TRANSFER_OWNERSHIP_ADMIN_EXTRAS_BUNDLE = "android.app.extra.TRANSFER_OWNERSHIP_ADMIN_EXTRAS_BUNDLE";
   }
 
   public class DeviceAdminService extends android.app.Service {
@@ -6573,291 +6577,291 @@
   }
 
   public class DevicePolicyManager {
-    method public void addCrossProfileCalendarPackage(android.content.ComponentName, java.lang.String);
-    method public void addCrossProfileIntentFilter(android.content.ComponentName, android.content.IntentFilter, int);
-    method public boolean addCrossProfileWidgetProvider(android.content.ComponentName, java.lang.String);
-    method public int addOverrideApn(android.content.ComponentName, android.telephony.data.ApnSetting);
-    method public void addPersistentPreferredActivity(android.content.ComponentName, android.content.IntentFilter, android.content.ComponentName);
-    method public void addUserRestriction(android.content.ComponentName, java.lang.String);
-    method public boolean bindDeviceAdminServiceAsUser(android.content.ComponentName, android.content.Intent, android.content.ServiceConnection, int, android.os.UserHandle);
-    method public void clearApplicationUserData(android.content.ComponentName, java.lang.String, java.util.concurrent.Executor, android.app.admin.DevicePolicyManager.OnClearApplicationUserDataListener);
-    method public void clearCrossProfileIntentFilters(android.content.ComponentName);
-    method public deprecated void clearDeviceOwnerApp(java.lang.String);
-    method public void clearPackagePersistentPreferredActivities(android.content.ComponentName, java.lang.String);
-    method public deprecated void clearProfileOwner(android.content.ComponentName);
+    method public void addCrossProfileCalendarPackage(@NonNull android.content.ComponentName, @NonNull String);
+    method public void addCrossProfileIntentFilter(@NonNull android.content.ComponentName, android.content.IntentFilter, int);
+    method public boolean addCrossProfileWidgetProvider(@NonNull android.content.ComponentName, String);
+    method public int addOverrideApn(@NonNull android.content.ComponentName, @NonNull android.telephony.data.ApnSetting);
+    method public void addPersistentPreferredActivity(@NonNull android.content.ComponentName, android.content.IntentFilter, @NonNull android.content.ComponentName);
+    method public void addUserRestriction(@NonNull android.content.ComponentName, String);
+    method public boolean bindDeviceAdminServiceAsUser(@NonNull android.content.ComponentName, android.content.Intent, @NonNull android.content.ServiceConnection, int, @NonNull android.os.UserHandle);
+    method public void clearApplicationUserData(@NonNull android.content.ComponentName, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.app.admin.DevicePolicyManager.OnClearApplicationUserDataListener);
+    method public void clearCrossProfileIntentFilters(@NonNull android.content.ComponentName);
+    method @Deprecated public void clearDeviceOwnerApp(String);
+    method public void clearPackagePersistentPreferredActivities(@NonNull android.content.ComponentName, String);
+    method @Deprecated public void clearProfileOwner(@NonNull android.content.ComponentName);
     method public boolean clearResetPasswordToken(android.content.ComponentName);
-    method public void clearUserRestriction(android.content.ComponentName, java.lang.String);
-    method public android.content.Intent createAdminSupportIntent(java.lang.String);
-    method public android.os.UserHandle createAndManageUser(android.content.ComponentName, java.lang.String, android.content.ComponentName, android.os.PersistableBundle, int);
-    method public void enableSystemApp(android.content.ComponentName, java.lang.String);
-    method public int enableSystemApp(android.content.ComponentName, android.content.Intent);
-    method public android.security.AttestedKeyPair generateKeyPair(android.content.ComponentName, java.lang.String, android.security.keystore.KeyGenParameterSpec, int);
-    method public java.lang.String[] getAccountTypesWithManagementDisabled();
-    method public java.util.List<android.content.ComponentName> getActiveAdmins();
-    method public java.util.Set<java.lang.String> getAffiliationIds(android.content.ComponentName);
-    method public java.lang.String getAlwaysOnVpnPackage(android.content.ComponentName);
-    method public android.os.Bundle getApplicationRestrictions(android.content.ComponentName, java.lang.String);
-    method public deprecated java.lang.String getApplicationRestrictionsManagingPackage(android.content.ComponentName);
+    method public void clearUserRestriction(@NonNull android.content.ComponentName, String);
+    method public android.content.Intent createAdminSupportIntent(@NonNull String);
+    method @Nullable public android.os.UserHandle createAndManageUser(@NonNull android.content.ComponentName, @NonNull String, @NonNull android.content.ComponentName, @Nullable android.os.PersistableBundle, int);
+    method public void enableSystemApp(@NonNull android.content.ComponentName, String);
+    method public int enableSystemApp(@NonNull android.content.ComponentName, android.content.Intent);
+    method public android.security.AttestedKeyPair generateKeyPair(@Nullable android.content.ComponentName, @NonNull String, @NonNull android.security.keystore.KeyGenParameterSpec, int);
+    method @Nullable public String[] getAccountTypesWithManagementDisabled();
+    method @Nullable public java.util.List<android.content.ComponentName> getActiveAdmins();
+    method @NonNull public java.util.Set<java.lang.String> getAffiliationIds(@NonNull android.content.ComponentName);
+    method @Nullable public String getAlwaysOnVpnPackage(@NonNull android.content.ComponentName);
+    method @WorkerThread @NonNull public android.os.Bundle getApplicationRestrictions(@Nullable android.content.ComponentName, String);
+    method @Deprecated @Nullable public String getApplicationRestrictionsManagingPackage(@NonNull android.content.ComponentName);
     method public boolean getAutoTimeRequired();
-    method public java.util.List<android.os.UserHandle> getBindDeviceAdminTargetUsers(android.content.ComponentName);
-    method public boolean getBluetoothContactSharingDisabled(android.content.ComponentName);
-    method public boolean getCameraDisabled(android.content.ComponentName);
-    method public deprecated java.lang.String getCertInstallerPackage(android.content.ComponentName) throws java.lang.SecurityException;
-    method public java.util.Set<java.lang.String> getCrossProfileCalendarPackages(android.content.ComponentName);
-    method public boolean getCrossProfileCallerIdDisabled(android.content.ComponentName);
-    method public boolean getCrossProfileContactsSearchDisabled(android.content.ComponentName);
-    method public java.util.List<java.lang.String> getCrossProfileWidgetProviders(android.content.ComponentName);
+    method @NonNull public java.util.List<android.os.UserHandle> getBindDeviceAdminTargetUsers(@NonNull android.content.ComponentName);
+    method public boolean getBluetoothContactSharingDisabled(@NonNull android.content.ComponentName);
+    method public boolean getCameraDisabled(@Nullable android.content.ComponentName);
+    method @Deprecated @Nullable public String getCertInstallerPackage(@NonNull android.content.ComponentName) throws java.lang.SecurityException;
+    method @NonNull public java.util.Set<java.lang.String> getCrossProfileCalendarPackages(@NonNull android.content.ComponentName);
+    method public boolean getCrossProfileCallerIdDisabled(@NonNull android.content.ComponentName);
+    method public boolean getCrossProfileContactsSearchDisabled(@NonNull android.content.ComponentName);
+    method @NonNull public java.util.List<java.lang.String> getCrossProfileWidgetProviders(@NonNull android.content.ComponentName);
     method public int getCurrentFailedPasswordAttempts();
-    method public java.util.List<java.lang.String> getDelegatePackages(android.content.ComponentName, java.lang.String);
-    method public java.util.List<java.lang.String> getDelegatedScopes(android.content.ComponentName, java.lang.String);
-    method public java.lang.CharSequence getDeviceOwnerLockScreenInfo();
-    method public java.lang.CharSequence getEndUserSessionMessage(android.content.ComponentName);
-    method public java.lang.String getGlobalPrivateDnsHost(android.content.ComponentName);
-    method public int getGlobalPrivateDnsMode(android.content.ComponentName);
-    method public java.util.List<byte[]> getInstalledCaCerts(android.content.ComponentName);
-    method public java.util.List<java.lang.String> getKeepUninstalledPackages(android.content.ComponentName);
-    method public int getKeyguardDisabledFeatures(android.content.ComponentName);
-    method public int getLockTaskFeatures(android.content.ComponentName);
-    method public java.lang.String[] getLockTaskPackages(android.content.ComponentName);
-    method public java.lang.CharSequence getLongSupportMessage(android.content.ComponentName);
-    method public int getMaximumFailedPasswordsForWipe(android.content.ComponentName);
-    method public long getMaximumTimeToLock(android.content.ComponentName);
-    method public java.util.List<java.lang.String> getMeteredDataDisabledPackages(android.content.ComponentName);
-    method public int getOrganizationColor(android.content.ComponentName);
-    method public java.lang.CharSequence getOrganizationName(android.content.ComponentName);
-    method public java.util.List<android.telephony.data.ApnSetting> getOverrideApns(android.content.ComponentName);
-    method public android.app.admin.DevicePolicyManager getParentProfileInstance(android.content.ComponentName);
-    method public int getPasswordComplexity();
-    method public long getPasswordExpiration(android.content.ComponentName);
-    method public long getPasswordExpirationTimeout(android.content.ComponentName);
-    method public int getPasswordHistoryLength(android.content.ComponentName);
+    method @Nullable public java.util.List<java.lang.String> getDelegatePackages(@NonNull android.content.ComponentName, @NonNull String);
+    method @NonNull public java.util.List<java.lang.String> getDelegatedScopes(@Nullable android.content.ComponentName, @NonNull String);
+    method public CharSequence getDeviceOwnerLockScreenInfo();
+    method public CharSequence getEndUserSessionMessage(@NonNull android.content.ComponentName);
+    method public String getGlobalPrivateDnsHost(@NonNull android.content.ComponentName);
+    method public int getGlobalPrivateDnsMode(@NonNull android.content.ComponentName);
+    method @NonNull public java.util.List<byte[]> getInstalledCaCerts(@Nullable android.content.ComponentName);
+    method @Nullable public java.util.List<java.lang.String> getKeepUninstalledPackages(@Nullable android.content.ComponentName);
+    method public int getKeyguardDisabledFeatures(@Nullable android.content.ComponentName);
+    method public int getLockTaskFeatures(@NonNull android.content.ComponentName);
+    method @NonNull public String[] getLockTaskPackages(@NonNull android.content.ComponentName);
+    method @Nullable public CharSequence getLongSupportMessage(@NonNull android.content.ComponentName);
+    method public int getMaximumFailedPasswordsForWipe(@Nullable android.content.ComponentName);
+    method public long getMaximumTimeToLock(@Nullable android.content.ComponentName);
+    method @NonNull public java.util.List<java.lang.String> getMeteredDataDisabledPackages(@NonNull android.content.ComponentName);
+    method @ColorInt public int getOrganizationColor(@NonNull android.content.ComponentName);
+    method @Nullable public CharSequence getOrganizationName(@NonNull android.content.ComponentName);
+    method public java.util.List<android.telephony.data.ApnSetting> getOverrideApns(@NonNull android.content.ComponentName);
+    method @NonNull public android.app.admin.DevicePolicyManager getParentProfileInstance(@NonNull android.content.ComponentName);
+    method @RequiresPermission(android.Manifest.permission.GET_AND_REQUEST_SCREEN_LOCK_COMPLEXITY) public int getPasswordComplexity();
+    method public long getPasswordExpiration(@Nullable android.content.ComponentName);
+    method public long getPasswordExpirationTimeout(@Nullable android.content.ComponentName);
+    method public int getPasswordHistoryLength(@Nullable android.content.ComponentName);
     method public int getPasswordMaximumLength(int);
-    method public int getPasswordMinimumLength(android.content.ComponentName);
-    method public int getPasswordMinimumLetters(android.content.ComponentName);
-    method public int getPasswordMinimumLowerCase(android.content.ComponentName);
-    method public int getPasswordMinimumNonLetter(android.content.ComponentName);
-    method public int getPasswordMinimumNumeric(android.content.ComponentName);
-    method public int getPasswordMinimumSymbols(android.content.ComponentName);
-    method public int getPasswordMinimumUpperCase(android.content.ComponentName);
-    method public int getPasswordQuality(android.content.ComponentName);
-    method public android.app.admin.SystemUpdateInfo getPendingSystemUpdate(android.content.ComponentName);
-    method public int getPermissionGrantState(android.content.ComponentName, java.lang.String, java.lang.String);
+    method public int getPasswordMinimumLength(@Nullable android.content.ComponentName);
+    method public int getPasswordMinimumLetters(@Nullable android.content.ComponentName);
+    method public int getPasswordMinimumLowerCase(@Nullable android.content.ComponentName);
+    method public int getPasswordMinimumNonLetter(@Nullable android.content.ComponentName);
+    method public int getPasswordMinimumNumeric(@Nullable android.content.ComponentName);
+    method public int getPasswordMinimumSymbols(@Nullable android.content.ComponentName);
+    method public int getPasswordMinimumUpperCase(@Nullable android.content.ComponentName);
+    method public int getPasswordQuality(@Nullable android.content.ComponentName);
+    method @Nullable public android.app.admin.SystemUpdateInfo getPendingSystemUpdate(@NonNull android.content.ComponentName);
+    method public int getPermissionGrantState(@Nullable android.content.ComponentName, String, String);
     method public int getPermissionPolicy(android.content.ComponentName);
-    method public java.util.List<java.lang.String> getPermittedAccessibilityServices(android.content.ComponentName);
-    method public java.util.List<java.lang.String> getPermittedCrossProfileNotificationListeners(android.content.ComponentName);
-    method public java.util.List<java.lang.String> getPermittedInputMethods(android.content.ComponentName);
-    method public long getRequiredStrongAuthTimeout(android.content.ComponentName);
-    method public boolean getScreenCaptureDisabled(android.content.ComponentName);
-    method public java.util.List<android.os.UserHandle> getSecondaryUsers(android.content.ComponentName);
-    method public java.lang.CharSequence getShortSupportMessage(android.content.ComponentName);
-    method public java.lang.CharSequence getStartUserSessionMessage(android.content.ComponentName);
-    method public boolean getStorageEncryption(android.content.ComponentName);
+    method @Nullable public java.util.List<java.lang.String> getPermittedAccessibilityServices(@NonNull android.content.ComponentName);
+    method @Nullable public java.util.List<java.lang.String> getPermittedCrossProfileNotificationListeners(@NonNull android.content.ComponentName);
+    method @Nullable public java.util.List<java.lang.String> getPermittedInputMethods(@NonNull android.content.ComponentName);
+    method public long getRequiredStrongAuthTimeout(@Nullable android.content.ComponentName);
+    method public boolean getScreenCaptureDisabled(@Nullable android.content.ComponentName);
+    method public java.util.List<android.os.UserHandle> getSecondaryUsers(@NonNull android.content.ComponentName);
+    method public CharSequence getShortSupportMessage(@NonNull android.content.ComponentName);
+    method public CharSequence getStartUserSessionMessage(@NonNull android.content.ComponentName);
+    method public boolean getStorageEncryption(@Nullable android.content.ComponentName);
     method public int getStorageEncryptionStatus();
-    method public android.app.admin.SystemUpdatePolicy getSystemUpdatePolicy();
-    method public android.os.PersistableBundle getTransferOwnershipBundle();
-    method public java.util.List<android.os.PersistableBundle> getTrustAgentConfiguration(android.content.ComponentName, android.content.ComponentName);
-    method public android.os.Bundle getUserRestrictions(android.content.ComponentName);
-    method public java.lang.String getWifiMacAddress(android.content.ComponentName);
-    method public boolean hasCaCertInstalled(android.content.ComponentName, byte[]);
-    method public boolean hasGrantedPolicy(android.content.ComponentName, int);
-    method public boolean installCaCert(android.content.ComponentName, byte[]);
-    method public boolean installExistingPackage(android.content.ComponentName, java.lang.String);
-    method public boolean installKeyPair(android.content.ComponentName, java.security.PrivateKey, java.security.cert.Certificate, java.lang.String);
-    method public boolean installKeyPair(android.content.ComponentName, java.security.PrivateKey, java.security.cert.Certificate[], java.lang.String, boolean);
-    method public boolean installKeyPair(android.content.ComponentName, java.security.PrivateKey, java.security.cert.Certificate[], java.lang.String, int);
-    method public void installSystemUpdate(android.content.ComponentName, android.net.Uri, java.util.concurrent.Executor, android.app.admin.DevicePolicyManager.InstallUpdateCallback);
+    method @Nullable public android.app.admin.SystemUpdatePolicy getSystemUpdatePolicy();
+    method @Nullable public android.os.PersistableBundle getTransferOwnershipBundle();
+    method @Nullable public java.util.List<android.os.PersistableBundle> getTrustAgentConfiguration(@Nullable android.content.ComponentName, @NonNull android.content.ComponentName);
+    method @NonNull public android.os.Bundle getUserRestrictions(@NonNull android.content.ComponentName);
+    method @Nullable public String getWifiMacAddress(@NonNull android.content.ComponentName);
+    method public boolean hasCaCertInstalled(@Nullable android.content.ComponentName, byte[]);
+    method public boolean hasGrantedPolicy(@NonNull android.content.ComponentName, int);
+    method public boolean installCaCert(@Nullable android.content.ComponentName, byte[]);
+    method public boolean installExistingPackage(@NonNull android.content.ComponentName, String);
+    method public boolean installKeyPair(@Nullable android.content.ComponentName, @NonNull java.security.PrivateKey, @NonNull java.security.cert.Certificate, @NonNull String);
+    method public boolean installKeyPair(@Nullable android.content.ComponentName, @NonNull java.security.PrivateKey, @NonNull java.security.cert.Certificate[], @NonNull String, boolean);
+    method public boolean installKeyPair(@Nullable android.content.ComponentName, @NonNull java.security.PrivateKey, @NonNull java.security.cert.Certificate[], @NonNull String, int);
+    method public void installSystemUpdate(@NonNull android.content.ComponentName, @NonNull android.net.Uri, @NonNull java.util.concurrent.Executor, @NonNull android.app.admin.DevicePolicyManager.InstallUpdateCallback);
     method public boolean isActivePasswordSufficient();
-    method public boolean isAdminActive(android.content.ComponentName);
+    method public boolean isAdminActive(@NonNull android.content.ComponentName);
     method public boolean isAffiliatedUser();
-    method public boolean isApplicationHidden(android.content.ComponentName, java.lang.String);
-    method public boolean isBackupServiceEnabled(android.content.ComponentName);
-    method public deprecated boolean isCallerApplicationRestrictionsManagingPackage();
+    method public boolean isApplicationHidden(@NonNull android.content.ComponentName, String);
+    method public boolean isBackupServiceEnabled(@NonNull android.content.ComponentName);
+    method @Deprecated public boolean isCallerApplicationRestrictionsManagingPackage();
     method public boolean isDeviceIdAttestationSupported();
-    method public boolean isDeviceOwnerApp(java.lang.String);
-    method public boolean isEphemeralUser(android.content.ComponentName);
-    method public boolean isLockTaskPermitted(java.lang.String);
+    method public boolean isDeviceOwnerApp(String);
+    method public boolean isEphemeralUser(@NonNull android.content.ComponentName);
+    method public boolean isLockTaskPermitted(String);
     method public boolean isLogoutEnabled();
-    method public boolean isManagedProfile(android.content.ComponentName);
-    method public boolean isMasterVolumeMuted(android.content.ComponentName);
-    method public boolean isNetworkLoggingEnabled(android.content.ComponentName);
-    method public boolean isOverrideApnEnabled(android.content.ComponentName);
-    method public boolean isPackageSuspended(android.content.ComponentName, java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public boolean isProfileOwnerApp(java.lang.String);
-    method public boolean isProvisioningAllowed(java.lang.String);
+    method public boolean isManagedProfile(@NonNull android.content.ComponentName);
+    method public boolean isMasterVolumeMuted(@NonNull android.content.ComponentName);
+    method public boolean isNetworkLoggingEnabled(@Nullable android.content.ComponentName);
+    method public boolean isOverrideApnEnabled(@NonNull android.content.ComponentName);
+    method public boolean isPackageSuspended(@NonNull android.content.ComponentName, String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public boolean isProfileOwnerApp(String);
+    method public boolean isProvisioningAllowed(@NonNull String);
     method public boolean isResetPasswordTokenActive(android.content.ComponentName);
-    method public boolean isSecurityLoggingEnabled(android.content.ComponentName);
-    method public boolean isUninstallBlocked(android.content.ComponentName, java.lang.String);
-    method public boolean isUsingUnifiedPassword(android.content.ComponentName);
+    method public boolean isSecurityLoggingEnabled(@Nullable android.content.ComponentName);
+    method public boolean isUninstallBlocked(@Nullable android.content.ComponentName, String);
+    method public boolean isUsingUnifiedPassword(@NonNull android.content.ComponentName);
     method public void lockNow();
     method public void lockNow(int);
-    method public int logoutUser(android.content.ComponentName);
-    method public void reboot(android.content.ComponentName);
-    method public void removeActiveAdmin(android.content.ComponentName);
-    method public boolean removeCrossProfileCalendarPackage(android.content.ComponentName, java.lang.String);
-    method public boolean removeCrossProfileWidgetProvider(android.content.ComponentName, java.lang.String);
-    method public boolean removeKeyPair(android.content.ComponentName, java.lang.String);
-    method public boolean removeOverrideApn(android.content.ComponentName, int);
-    method public boolean removeUser(android.content.ComponentName, android.os.UserHandle);
-    method public boolean requestBugreport(android.content.ComponentName);
-    method public boolean resetPassword(java.lang.String, int);
-    method public boolean resetPasswordWithToken(android.content.ComponentName, java.lang.String, byte[], int);
-    method public java.util.List<android.app.admin.NetworkEvent> retrieveNetworkLogs(android.content.ComponentName, long);
-    method public java.util.List<android.app.admin.SecurityLog.SecurityEvent> retrievePreRebootSecurityLogs(android.content.ComponentName);
-    method public java.util.List<android.app.admin.SecurityLog.SecurityEvent> retrieveSecurityLogs(android.content.ComponentName);
-    method public void setAccountManagementDisabled(android.content.ComponentName, java.lang.String, boolean);
-    method public void setAffiliationIds(android.content.ComponentName, java.util.Set<java.lang.String>);
-    method public void setAlwaysOnVpnPackage(android.content.ComponentName, java.lang.String, boolean) throws android.content.pm.PackageManager.NameNotFoundException, java.lang.UnsupportedOperationException;
-    method public boolean setApplicationHidden(android.content.ComponentName, java.lang.String, boolean);
-    method public void setApplicationRestrictions(android.content.ComponentName, java.lang.String, android.os.Bundle);
-    method public deprecated void setApplicationRestrictionsManagingPackage(android.content.ComponentName, java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public void setAutoTimeRequired(android.content.ComponentName, boolean);
-    method public void setBackupServiceEnabled(android.content.ComponentName, boolean);
-    method public void setBluetoothContactSharingDisabled(android.content.ComponentName, boolean);
-    method public void setCameraDisabled(android.content.ComponentName, boolean);
-    method public deprecated void setCertInstallerPackage(android.content.ComponentName, java.lang.String) throws java.lang.SecurityException;
-    method public void setCrossProfileCallerIdDisabled(android.content.ComponentName, boolean);
-    method public void setCrossProfileContactsSearchDisabled(android.content.ComponentName, boolean);
-    method public void setDelegatedScopes(android.content.ComponentName, java.lang.String, java.util.List<java.lang.String>);
-    method public void setDeviceOwnerLockScreenInfo(android.content.ComponentName, java.lang.CharSequence);
-    method public void setEndUserSessionMessage(android.content.ComponentName, java.lang.CharSequence);
-    method public int setGlobalPrivateDns(android.content.ComponentName, int, java.lang.String);
-    method public void setGlobalSetting(android.content.ComponentName, java.lang.String, java.lang.String);
-    method public void setKeepUninstalledPackages(android.content.ComponentName, java.util.List<java.lang.String>);
-    method public boolean setKeyPairCertificate(android.content.ComponentName, java.lang.String, java.util.List<java.security.cert.Certificate>, boolean);
-    method public boolean setKeyguardDisabled(android.content.ComponentName, boolean);
-    method public void setKeyguardDisabledFeatures(android.content.ComponentName, int);
-    method public void setLockTaskFeatures(android.content.ComponentName, int);
-    method public void setLockTaskPackages(android.content.ComponentName, java.lang.String[]) throws java.lang.SecurityException;
-    method public void setLogoutEnabled(android.content.ComponentName, boolean);
-    method public void setLongSupportMessage(android.content.ComponentName, java.lang.CharSequence);
-    method public void setMasterVolumeMuted(android.content.ComponentName, boolean);
-    method public void setMaximumFailedPasswordsForWipe(android.content.ComponentName, int);
-    method public void setMaximumTimeToLock(android.content.ComponentName, long);
-    method public java.util.List<java.lang.String> setMeteredDataDisabledPackages(android.content.ComponentName, java.util.List<java.lang.String>);
-    method public void setNetworkLoggingEnabled(android.content.ComponentName, boolean);
-    method public void setOrganizationColor(android.content.ComponentName, int);
-    method public void setOrganizationName(android.content.ComponentName, java.lang.CharSequence);
-    method public void setOverrideApnsEnabled(android.content.ComponentName, boolean);
-    method public java.lang.String[] setPackagesSuspended(android.content.ComponentName, java.lang.String[], boolean);
-    method public void setPasswordExpirationTimeout(android.content.ComponentName, long);
-    method public void setPasswordHistoryLength(android.content.ComponentName, int);
-    method public void setPasswordMinimumLength(android.content.ComponentName, int);
-    method public void setPasswordMinimumLetters(android.content.ComponentName, int);
-    method public void setPasswordMinimumLowerCase(android.content.ComponentName, int);
-    method public void setPasswordMinimumNonLetter(android.content.ComponentName, int);
-    method public void setPasswordMinimumNumeric(android.content.ComponentName, int);
-    method public void setPasswordMinimumSymbols(android.content.ComponentName, int);
-    method public void setPasswordMinimumUpperCase(android.content.ComponentName, int);
-    method public void setPasswordQuality(android.content.ComponentName, int);
-    method public boolean setPermissionGrantState(android.content.ComponentName, java.lang.String, java.lang.String, int);
-    method public void setPermissionPolicy(android.content.ComponentName, int);
-    method public boolean setPermittedAccessibilityServices(android.content.ComponentName, java.util.List<java.lang.String>);
-    method public boolean setPermittedCrossProfileNotificationListeners(android.content.ComponentName, java.util.List<java.lang.String>);
-    method public boolean setPermittedInputMethods(android.content.ComponentName, java.util.List<java.lang.String>);
-    method public void setProfileEnabled(android.content.ComponentName);
-    method public void setProfileName(android.content.ComponentName, java.lang.String);
-    method public void setRecommendedGlobalProxy(android.content.ComponentName, android.net.ProxyInfo);
-    method public void setRequiredStrongAuthTimeout(android.content.ComponentName, long);
+    method public int logoutUser(@NonNull android.content.ComponentName);
+    method public void reboot(@NonNull android.content.ComponentName);
+    method public void removeActiveAdmin(@NonNull android.content.ComponentName);
+    method public boolean removeCrossProfileCalendarPackage(@NonNull android.content.ComponentName, @NonNull String);
+    method public boolean removeCrossProfileWidgetProvider(@NonNull android.content.ComponentName, String);
+    method public boolean removeKeyPair(@Nullable android.content.ComponentName, @NonNull String);
+    method public boolean removeOverrideApn(@NonNull android.content.ComponentName, int);
+    method public boolean removeUser(@NonNull android.content.ComponentName, @NonNull android.os.UserHandle);
+    method public boolean requestBugreport(@NonNull android.content.ComponentName);
+    method public boolean resetPassword(String, int);
+    method public boolean resetPasswordWithToken(@NonNull android.content.ComponentName, String, byte[], int);
+    method @Nullable public java.util.List<android.app.admin.NetworkEvent> retrieveNetworkLogs(@Nullable android.content.ComponentName, long);
+    method @Nullable public java.util.List<android.app.admin.SecurityLog.SecurityEvent> retrievePreRebootSecurityLogs(@NonNull android.content.ComponentName);
+    method @Nullable public java.util.List<android.app.admin.SecurityLog.SecurityEvent> retrieveSecurityLogs(@NonNull android.content.ComponentName);
+    method public void setAccountManagementDisabled(@NonNull android.content.ComponentName, String, boolean);
+    method public void setAffiliationIds(@NonNull android.content.ComponentName, @NonNull java.util.Set<java.lang.String>);
+    method public void setAlwaysOnVpnPackage(@NonNull android.content.ComponentName, @Nullable String, boolean) throws android.content.pm.PackageManager.NameNotFoundException, java.lang.UnsupportedOperationException;
+    method public boolean setApplicationHidden(@NonNull android.content.ComponentName, String, boolean);
+    method @WorkerThread public void setApplicationRestrictions(@Nullable android.content.ComponentName, String, android.os.Bundle);
+    method @Deprecated public void setApplicationRestrictionsManagingPackage(@NonNull android.content.ComponentName, @Nullable String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public void setAutoTimeRequired(@NonNull android.content.ComponentName, boolean);
+    method public void setBackupServiceEnabled(@NonNull android.content.ComponentName, boolean);
+    method public void setBluetoothContactSharingDisabled(@NonNull android.content.ComponentName, boolean);
+    method public void setCameraDisabled(@NonNull android.content.ComponentName, boolean);
+    method @Deprecated public void setCertInstallerPackage(@NonNull android.content.ComponentName, @Nullable String) throws java.lang.SecurityException;
+    method public void setCrossProfileCallerIdDisabled(@NonNull android.content.ComponentName, boolean);
+    method public void setCrossProfileContactsSearchDisabled(@NonNull android.content.ComponentName, boolean);
+    method public void setDelegatedScopes(@NonNull android.content.ComponentName, @NonNull String, @NonNull java.util.List<java.lang.String>);
+    method public void setDeviceOwnerLockScreenInfo(@NonNull android.content.ComponentName, CharSequence);
+    method public void setEndUserSessionMessage(@NonNull android.content.ComponentName, @Nullable CharSequence);
+    method public int setGlobalPrivateDns(@NonNull android.content.ComponentName, int, @Nullable String);
+    method public void setGlobalSetting(@NonNull android.content.ComponentName, String, String);
+    method public void setKeepUninstalledPackages(@Nullable android.content.ComponentName, @NonNull java.util.List<java.lang.String>);
+    method public boolean setKeyPairCertificate(@Nullable android.content.ComponentName, @NonNull String, @NonNull java.util.List<java.security.cert.Certificate>, boolean);
+    method public boolean setKeyguardDisabled(@NonNull android.content.ComponentName, boolean);
+    method public void setKeyguardDisabledFeatures(@NonNull android.content.ComponentName, int);
+    method public void setLockTaskFeatures(@NonNull android.content.ComponentName, int);
+    method public void setLockTaskPackages(@NonNull android.content.ComponentName, @NonNull String[]) throws java.lang.SecurityException;
+    method public void setLogoutEnabled(@NonNull android.content.ComponentName, boolean);
+    method public void setLongSupportMessage(@NonNull android.content.ComponentName, @Nullable CharSequence);
+    method public void setMasterVolumeMuted(@NonNull android.content.ComponentName, boolean);
+    method public void setMaximumFailedPasswordsForWipe(@NonNull android.content.ComponentName, int);
+    method public void setMaximumTimeToLock(@NonNull android.content.ComponentName, long);
+    method @NonNull public java.util.List<java.lang.String> setMeteredDataDisabledPackages(@NonNull android.content.ComponentName, @NonNull java.util.List<java.lang.String>);
+    method public void setNetworkLoggingEnabled(@Nullable android.content.ComponentName, boolean);
+    method public void setOrganizationColor(@NonNull android.content.ComponentName, int);
+    method public void setOrganizationName(@NonNull android.content.ComponentName, @Nullable CharSequence);
+    method public void setOverrideApnsEnabled(@NonNull android.content.ComponentName, boolean);
+    method @NonNull public String[] setPackagesSuspended(@NonNull android.content.ComponentName, @NonNull String[], boolean);
+    method public void setPasswordExpirationTimeout(@NonNull android.content.ComponentName, long);
+    method public void setPasswordHistoryLength(@NonNull android.content.ComponentName, int);
+    method public void setPasswordMinimumLength(@NonNull android.content.ComponentName, int);
+    method public void setPasswordMinimumLetters(@NonNull android.content.ComponentName, int);
+    method public void setPasswordMinimumLowerCase(@NonNull android.content.ComponentName, int);
+    method public void setPasswordMinimumNonLetter(@NonNull android.content.ComponentName, int);
+    method public void setPasswordMinimumNumeric(@NonNull android.content.ComponentName, int);
+    method public void setPasswordMinimumSymbols(@NonNull android.content.ComponentName, int);
+    method public void setPasswordMinimumUpperCase(@NonNull android.content.ComponentName, int);
+    method public void setPasswordQuality(@NonNull android.content.ComponentName, int);
+    method public boolean setPermissionGrantState(@NonNull android.content.ComponentName, String, String, int);
+    method public void setPermissionPolicy(@NonNull android.content.ComponentName, int);
+    method public boolean setPermittedAccessibilityServices(@NonNull android.content.ComponentName, java.util.List<java.lang.String>);
+    method public boolean setPermittedCrossProfileNotificationListeners(@NonNull android.content.ComponentName, @Nullable java.util.List<java.lang.String>);
+    method public boolean setPermittedInputMethods(@NonNull android.content.ComponentName, java.util.List<java.lang.String>);
+    method public void setProfileEnabled(@NonNull android.content.ComponentName);
+    method public void setProfileName(@NonNull android.content.ComponentName, String);
+    method public void setRecommendedGlobalProxy(@NonNull android.content.ComponentName, @Nullable android.net.ProxyInfo);
+    method public void setRequiredStrongAuthTimeout(@NonNull android.content.ComponentName, long);
     method public boolean setResetPasswordToken(android.content.ComponentName, byte[]);
-    method public void setRestrictionsProvider(android.content.ComponentName, android.content.ComponentName);
-    method public void setScreenCaptureDisabled(android.content.ComponentName, boolean);
-    method public void setSecureSetting(android.content.ComponentName, java.lang.String, java.lang.String);
-    method public void setSecurityLoggingEnabled(android.content.ComponentName, boolean);
-    method public void setShortSupportMessage(android.content.ComponentName, java.lang.CharSequence);
-    method public void setStartUserSessionMessage(android.content.ComponentName, java.lang.CharSequence);
-    method public boolean setStatusBarDisabled(android.content.ComponentName, boolean);
-    method public int setStorageEncryption(android.content.ComponentName, boolean);
-    method public void setSystemSetting(android.content.ComponentName, java.lang.String, java.lang.String);
-    method public void setSystemUpdatePolicy(android.content.ComponentName, android.app.admin.SystemUpdatePolicy);
-    method public boolean setTime(android.content.ComponentName, long);
-    method public boolean setTimeZone(android.content.ComponentName, java.lang.String);
-    method public void setTrustAgentConfiguration(android.content.ComponentName, android.content.ComponentName, android.os.PersistableBundle);
-    method public void setUninstallBlocked(android.content.ComponentName, java.lang.String, boolean);
-    method public void setUserIcon(android.content.ComponentName, android.graphics.Bitmap);
-    method public int startUserInBackground(android.content.ComponentName, android.os.UserHandle);
-    method public int stopUser(android.content.ComponentName, android.os.UserHandle);
-    method public boolean switchUser(android.content.ComponentName, android.os.UserHandle);
-    method public void transferOwnership(android.content.ComponentName, android.content.ComponentName, android.os.PersistableBundle);
-    method public void uninstallAllUserCaCerts(android.content.ComponentName);
-    method public void uninstallCaCert(android.content.ComponentName, byte[]);
-    method public boolean updateOverrideApn(android.content.ComponentName, int, android.telephony.data.ApnSetting);
+    method public void setRestrictionsProvider(@NonNull android.content.ComponentName, @Nullable android.content.ComponentName);
+    method public void setScreenCaptureDisabled(@NonNull android.content.ComponentName, boolean);
+    method public void setSecureSetting(@NonNull android.content.ComponentName, String, String);
+    method public void setSecurityLoggingEnabled(@NonNull android.content.ComponentName, boolean);
+    method public void setShortSupportMessage(@NonNull android.content.ComponentName, @Nullable CharSequence);
+    method public void setStartUserSessionMessage(@NonNull android.content.ComponentName, @Nullable CharSequence);
+    method public boolean setStatusBarDisabled(@NonNull android.content.ComponentName, boolean);
+    method public int setStorageEncryption(@NonNull android.content.ComponentName, boolean);
+    method public void setSystemSetting(@NonNull android.content.ComponentName, @NonNull String, String);
+    method public void setSystemUpdatePolicy(@NonNull android.content.ComponentName, android.app.admin.SystemUpdatePolicy);
+    method public boolean setTime(@NonNull android.content.ComponentName, long);
+    method public boolean setTimeZone(@NonNull android.content.ComponentName, String);
+    method public void setTrustAgentConfiguration(@NonNull android.content.ComponentName, @NonNull android.content.ComponentName, android.os.PersistableBundle);
+    method public void setUninstallBlocked(@Nullable android.content.ComponentName, String, boolean);
+    method public void setUserIcon(@NonNull android.content.ComponentName, android.graphics.Bitmap);
+    method public int startUserInBackground(@NonNull android.content.ComponentName, @NonNull android.os.UserHandle);
+    method public int stopUser(@NonNull android.content.ComponentName, @NonNull android.os.UserHandle);
+    method public boolean switchUser(@NonNull android.content.ComponentName, @Nullable android.os.UserHandle);
+    method public void transferOwnership(@NonNull android.content.ComponentName, @NonNull android.content.ComponentName, @Nullable android.os.PersistableBundle);
+    method public void uninstallAllUserCaCerts(@Nullable android.content.ComponentName);
+    method public void uninstallCaCert(@Nullable android.content.ComponentName, byte[]);
+    method public boolean updateOverrideApn(@NonNull android.content.ComponentName, int, @NonNull android.telephony.data.ApnSetting);
     method public void wipeData(int);
-    method public void wipeData(int, java.lang.CharSequence);
-    field public static final java.lang.String ACTION_ADD_DEVICE_ADMIN = "android.app.action.ADD_DEVICE_ADMIN";
-    field public static final java.lang.String ACTION_ADMIN_POLICY_COMPLIANCE = "android.app.action.ADMIN_POLICY_COMPLIANCE";
-    field public static final java.lang.String ACTION_APPLICATION_DELEGATION_SCOPES_CHANGED = "android.app.action.APPLICATION_DELEGATION_SCOPES_CHANGED";
-    field public static final java.lang.String ACTION_DEVICE_ADMIN_SERVICE = "android.app.action.DEVICE_ADMIN_SERVICE";
-    field public static final java.lang.String ACTION_DEVICE_OWNER_CHANGED = "android.app.action.DEVICE_OWNER_CHANGED";
-    field public static final java.lang.String ACTION_GET_PROVISIONING_MODE = "android.app.action.GET_PROVISIONING_MODE";
-    field public static final java.lang.String ACTION_MANAGED_PROFILE_PROVISIONED = "android.app.action.MANAGED_PROFILE_PROVISIONED";
-    field public static final java.lang.String ACTION_PROFILE_OWNER_CHANGED = "android.app.action.PROFILE_OWNER_CHANGED";
-    field public static final java.lang.String ACTION_PROVISIONING_SUCCESSFUL = "android.app.action.PROVISIONING_SUCCESSFUL";
-    field public static final java.lang.String ACTION_PROVISION_MANAGED_DEVICE = "android.app.action.PROVISION_MANAGED_DEVICE";
-    field public static final java.lang.String ACTION_PROVISION_MANAGED_PROFILE = "android.app.action.PROVISION_MANAGED_PROFILE";
-    field public static final java.lang.String ACTION_SET_NEW_PARENT_PROFILE_PASSWORD = "android.app.action.SET_NEW_PARENT_PROFILE_PASSWORD";
-    field public static final java.lang.String ACTION_SET_NEW_PASSWORD = "android.app.action.SET_NEW_PASSWORD";
-    field public static final java.lang.String ACTION_START_ENCRYPTION = "android.app.action.START_ENCRYPTION";
-    field public static final java.lang.String ACTION_SYSTEM_UPDATE_POLICY_CHANGED = "android.app.action.SYSTEM_UPDATE_POLICY_CHANGED";
-    field public static final java.lang.String DELEGATION_APP_RESTRICTIONS = "delegation-app-restrictions";
-    field public static final java.lang.String DELEGATION_BLOCK_UNINSTALL = "delegation-block-uninstall";
-    field public static final java.lang.String DELEGATION_CERT_INSTALL = "delegation-cert-install";
-    field public static final java.lang.String DELEGATION_CERT_SELECTION = "delegation-cert-selection";
-    field public static final java.lang.String DELEGATION_ENABLE_SYSTEM_APP = "delegation-enable-system-app";
-    field public static final java.lang.String DELEGATION_INSTALL_EXISTING_PACKAGE = "delegation-install-existing-package";
-    field public static final java.lang.String DELEGATION_KEEP_UNINSTALLED_PACKAGES = "delegation-keep-uninstalled-packages";
-    field public static final java.lang.String DELEGATION_NETWORK_LOGGING = "delegation-network-logging";
-    field public static final java.lang.String DELEGATION_PACKAGE_ACCESS = "delegation-package-access";
-    field public static final java.lang.String DELEGATION_PACKAGE_INSTALLATION = "delegation-package-installation";
-    field public static final java.lang.String DELEGATION_PERMISSION_GRANT = "delegation-permission-grant";
+    method public void wipeData(int, CharSequence);
+    field public static final String ACTION_ADD_DEVICE_ADMIN = "android.app.action.ADD_DEVICE_ADMIN";
+    field public static final String ACTION_ADMIN_POLICY_COMPLIANCE = "android.app.action.ADMIN_POLICY_COMPLIANCE";
+    field public static final String ACTION_APPLICATION_DELEGATION_SCOPES_CHANGED = "android.app.action.APPLICATION_DELEGATION_SCOPES_CHANGED";
+    field public static final String ACTION_DEVICE_ADMIN_SERVICE = "android.app.action.DEVICE_ADMIN_SERVICE";
+    field public static final String ACTION_DEVICE_OWNER_CHANGED = "android.app.action.DEVICE_OWNER_CHANGED";
+    field public static final String ACTION_GET_PROVISIONING_MODE = "android.app.action.GET_PROVISIONING_MODE";
+    field public static final String ACTION_MANAGED_PROFILE_PROVISIONED = "android.app.action.MANAGED_PROFILE_PROVISIONED";
+    field public static final String ACTION_PROFILE_OWNER_CHANGED = "android.app.action.PROFILE_OWNER_CHANGED";
+    field public static final String ACTION_PROVISIONING_SUCCESSFUL = "android.app.action.PROVISIONING_SUCCESSFUL";
+    field public static final String ACTION_PROVISION_MANAGED_DEVICE = "android.app.action.PROVISION_MANAGED_DEVICE";
+    field public static final String ACTION_PROVISION_MANAGED_PROFILE = "android.app.action.PROVISION_MANAGED_PROFILE";
+    field public static final String ACTION_SET_NEW_PARENT_PROFILE_PASSWORD = "android.app.action.SET_NEW_PARENT_PROFILE_PASSWORD";
+    field public static final String ACTION_SET_NEW_PASSWORD = "android.app.action.SET_NEW_PASSWORD";
+    field public static final String ACTION_START_ENCRYPTION = "android.app.action.START_ENCRYPTION";
+    field public static final String ACTION_SYSTEM_UPDATE_POLICY_CHANGED = "android.app.action.SYSTEM_UPDATE_POLICY_CHANGED";
+    field public static final String DELEGATION_APP_RESTRICTIONS = "delegation-app-restrictions";
+    field public static final String DELEGATION_BLOCK_UNINSTALL = "delegation-block-uninstall";
+    field public static final String DELEGATION_CERT_INSTALL = "delegation-cert-install";
+    field public static final String DELEGATION_CERT_SELECTION = "delegation-cert-selection";
+    field public static final String DELEGATION_ENABLE_SYSTEM_APP = "delegation-enable-system-app";
+    field public static final String DELEGATION_INSTALL_EXISTING_PACKAGE = "delegation-install-existing-package";
+    field public static final String DELEGATION_KEEP_UNINSTALLED_PACKAGES = "delegation-keep-uninstalled-packages";
+    field public static final String DELEGATION_NETWORK_LOGGING = "delegation-network-logging";
+    field public static final String DELEGATION_PACKAGE_ACCESS = "delegation-package-access";
+    field public static final String DELEGATION_PACKAGE_INSTALLATION = "delegation-package-installation";
+    field public static final String DELEGATION_PERMISSION_GRANT = "delegation-permission-grant";
     field public static final int ENCRYPTION_STATUS_ACTIVATING = 2; // 0x2
     field public static final int ENCRYPTION_STATUS_ACTIVE = 3; // 0x3
     field public static final int ENCRYPTION_STATUS_ACTIVE_DEFAULT_KEY = 4; // 0x4
     field public static final int ENCRYPTION_STATUS_ACTIVE_PER_USER = 5; // 0x5
     field public static final int ENCRYPTION_STATUS_INACTIVE = 1; // 0x1
     field public static final int ENCRYPTION_STATUS_UNSUPPORTED = 0; // 0x0
-    field public static final java.lang.String EXTRA_ADD_EXPLANATION = "android.app.extra.ADD_EXPLANATION";
-    field public static final java.lang.String EXTRA_DELEGATION_SCOPES = "android.app.extra.DELEGATION_SCOPES";
-    field public static final java.lang.String EXTRA_DEVICE_ADMIN = "android.app.extra.DEVICE_ADMIN";
-    field public static final java.lang.String EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE = "android.app.extra.PROVISIONING_ACCOUNT_TO_MIGRATE";
-    field public static final java.lang.String EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE = "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE";
-    field public static final java.lang.String EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME = "android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME";
-    field public static final java.lang.String EXTRA_PROVISIONING_DEVICE_ADMIN_MINIMUM_VERSION_CODE = "android.app.extra.PROVISIONING_DEVICE_ADMIN_MINIMUM_VERSION_CODE";
-    field public static final java.lang.String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM";
-    field public static final java.lang.String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_COOKIE_HEADER = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_COOKIE_HEADER";
-    field public static final java.lang.String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION";
-    field public static final deprecated java.lang.String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME";
-    field public static final java.lang.String EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM = "android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM";
-    field public static final java.lang.String EXTRA_PROVISIONING_DISCLAIMERS = "android.app.extra.PROVISIONING_DISCLAIMERS";
-    field public static final java.lang.String EXTRA_PROVISIONING_DISCLAIMER_CONTENT = "android.app.extra.PROVISIONING_DISCLAIMER_CONTENT";
-    field public static final java.lang.String EXTRA_PROVISIONING_DISCLAIMER_HEADER = "android.app.extra.PROVISIONING_DISCLAIMER_HEADER";
-    field public static final deprecated java.lang.String EXTRA_PROVISIONING_EMAIL_ADDRESS = "android.app.extra.PROVISIONING_EMAIL_ADDRESS";
-    field public static final java.lang.String EXTRA_PROVISIONING_IMEI = "android.app.extra.PROVISIONING_IMEI";
-    field public static final java.lang.String EXTRA_PROVISIONING_KEEP_ACCOUNT_ON_MIGRATION = "android.app.extra.PROVISIONING_KEEP_ACCOUNT_ON_MIGRATION";
-    field public static final java.lang.String EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED = "android.app.extra.PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED";
-    field public static final java.lang.String EXTRA_PROVISIONING_LOCALE = "android.app.extra.PROVISIONING_LOCALE";
-    field public static final java.lang.String EXTRA_PROVISIONING_LOCAL_TIME = "android.app.extra.PROVISIONING_LOCAL_TIME";
-    field public static final java.lang.String EXTRA_PROVISIONING_LOGO_URI = "android.app.extra.PROVISIONING_LOGO_URI";
-    field public static final java.lang.String EXTRA_PROVISIONING_MAIN_COLOR = "android.app.extra.PROVISIONING_MAIN_COLOR";
-    field public static final java.lang.String EXTRA_PROVISIONING_MODE = "android.app.extra.PROVISIONING_MODE";
-    field public static final java.lang.String EXTRA_PROVISIONING_SERIAL_NUMBER = "android.app.extra.PROVISIONING_SERIAL_NUMBER";
-    field public static final java.lang.String EXTRA_PROVISIONING_SKIP_ENCRYPTION = "android.app.extra.PROVISIONING_SKIP_ENCRYPTION";
-    field public static final java.lang.String EXTRA_PROVISIONING_SKIP_USER_CONSENT = "android.app.extra.PROVISIONING_SKIP_USER_CONSENT";
-    field public static final java.lang.String EXTRA_PROVISIONING_TIME_ZONE = "android.app.extra.PROVISIONING_TIME_ZONE";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_ANONYMOUS_IDENTITY = "android.app.extra.PROVISIONING_WIFI_ANONYMOUS_IDENTITY";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_CA_CERTIFICATE = "android.app.extra.PROVISIONING_WIFI_CA_CERTIFICATE";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_DOMAIN = "android.app.extra.PROVISIONING_WIFI_DOMAIN";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_EAP_METHOD = "android.app.extra.PROVISIONING_WIFI_EAP_METHOD";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_HIDDEN = "android.app.extra.PROVISIONING_WIFI_HIDDEN";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_IDENTITY = "android.app.extra.PROVISIONING_WIFI_IDENTITY";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_PAC_URL = "android.app.extra.PROVISIONING_WIFI_PAC_URL";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_PASSWORD = "android.app.extra.PROVISIONING_WIFI_PASSWORD";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_PHASE2_AUTH = "android.app.extra.PROVISIONING_WIFI_PHASE2_AUTH";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_PROXY_BYPASS = "android.app.extra.PROVISIONING_WIFI_PROXY_BYPASS";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_PROXY_HOST = "android.app.extra.PROVISIONING_WIFI_PROXY_HOST";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_PROXY_PORT = "android.app.extra.PROVISIONING_WIFI_PROXY_PORT";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_SECURITY_TYPE = "android.app.extra.PROVISIONING_WIFI_SECURITY_TYPE";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_SSID = "android.app.extra.PROVISIONING_WIFI_SSID";
-    field public static final java.lang.String EXTRA_PROVISIONING_WIFI_USER_CERTIFICATE = "android.app.extra.PROVISIONING_WIFI_USER_CERTIFICATE";
+    field public static final String EXTRA_ADD_EXPLANATION = "android.app.extra.ADD_EXPLANATION";
+    field public static final String EXTRA_DELEGATION_SCOPES = "android.app.extra.DELEGATION_SCOPES";
+    field public static final String EXTRA_DEVICE_ADMIN = "android.app.extra.DEVICE_ADMIN";
+    field public static final String EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE = "android.app.extra.PROVISIONING_ACCOUNT_TO_MIGRATE";
+    field public static final String EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE = "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE";
+    field public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME = "android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME";
+    field public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_MINIMUM_VERSION_CODE = "android.app.extra.PROVISIONING_DEVICE_ADMIN_MINIMUM_VERSION_CODE";
+    field public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM";
+    field public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_COOKIE_HEADER = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_COOKIE_HEADER";
+    field public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION";
+    field @Deprecated public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME";
+    field public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM = "android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM";
+    field public static final String EXTRA_PROVISIONING_DISCLAIMERS = "android.app.extra.PROVISIONING_DISCLAIMERS";
+    field public static final String EXTRA_PROVISIONING_DISCLAIMER_CONTENT = "android.app.extra.PROVISIONING_DISCLAIMER_CONTENT";
+    field public static final String EXTRA_PROVISIONING_DISCLAIMER_HEADER = "android.app.extra.PROVISIONING_DISCLAIMER_HEADER";
+    field @Deprecated public static final String EXTRA_PROVISIONING_EMAIL_ADDRESS = "android.app.extra.PROVISIONING_EMAIL_ADDRESS";
+    field public static final String EXTRA_PROVISIONING_IMEI = "android.app.extra.PROVISIONING_IMEI";
+    field public static final String EXTRA_PROVISIONING_KEEP_ACCOUNT_ON_MIGRATION = "android.app.extra.PROVISIONING_KEEP_ACCOUNT_ON_MIGRATION";
+    field public static final String EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED = "android.app.extra.PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED";
+    field public static final String EXTRA_PROVISIONING_LOCALE = "android.app.extra.PROVISIONING_LOCALE";
+    field public static final String EXTRA_PROVISIONING_LOCAL_TIME = "android.app.extra.PROVISIONING_LOCAL_TIME";
+    field public static final String EXTRA_PROVISIONING_LOGO_URI = "android.app.extra.PROVISIONING_LOGO_URI";
+    field public static final String EXTRA_PROVISIONING_MAIN_COLOR = "android.app.extra.PROVISIONING_MAIN_COLOR";
+    field public static final String EXTRA_PROVISIONING_MODE = "android.app.extra.PROVISIONING_MODE";
+    field public static final String EXTRA_PROVISIONING_SERIAL_NUMBER = "android.app.extra.PROVISIONING_SERIAL_NUMBER";
+    field public static final String EXTRA_PROVISIONING_SKIP_ENCRYPTION = "android.app.extra.PROVISIONING_SKIP_ENCRYPTION";
+    field public static final String EXTRA_PROVISIONING_SKIP_USER_CONSENT = "android.app.extra.PROVISIONING_SKIP_USER_CONSENT";
+    field public static final String EXTRA_PROVISIONING_TIME_ZONE = "android.app.extra.PROVISIONING_TIME_ZONE";
+    field public static final String EXTRA_PROVISIONING_WIFI_ANONYMOUS_IDENTITY = "android.app.extra.PROVISIONING_WIFI_ANONYMOUS_IDENTITY";
+    field public static final String EXTRA_PROVISIONING_WIFI_CA_CERTIFICATE = "android.app.extra.PROVISIONING_WIFI_CA_CERTIFICATE";
+    field public static final String EXTRA_PROVISIONING_WIFI_DOMAIN = "android.app.extra.PROVISIONING_WIFI_DOMAIN";
+    field public static final String EXTRA_PROVISIONING_WIFI_EAP_METHOD = "android.app.extra.PROVISIONING_WIFI_EAP_METHOD";
+    field public static final String EXTRA_PROVISIONING_WIFI_HIDDEN = "android.app.extra.PROVISIONING_WIFI_HIDDEN";
+    field public static final String EXTRA_PROVISIONING_WIFI_IDENTITY = "android.app.extra.PROVISIONING_WIFI_IDENTITY";
+    field public static final String EXTRA_PROVISIONING_WIFI_PAC_URL = "android.app.extra.PROVISIONING_WIFI_PAC_URL";
+    field public static final String EXTRA_PROVISIONING_WIFI_PASSWORD = "android.app.extra.PROVISIONING_WIFI_PASSWORD";
+    field public static final String EXTRA_PROVISIONING_WIFI_PHASE2_AUTH = "android.app.extra.PROVISIONING_WIFI_PHASE2_AUTH";
+    field public static final String EXTRA_PROVISIONING_WIFI_PROXY_BYPASS = "android.app.extra.PROVISIONING_WIFI_PROXY_BYPASS";
+    field public static final String EXTRA_PROVISIONING_WIFI_PROXY_HOST = "android.app.extra.PROVISIONING_WIFI_PROXY_HOST";
+    field public static final String EXTRA_PROVISIONING_WIFI_PROXY_PORT = "android.app.extra.PROVISIONING_WIFI_PROXY_PORT";
+    field public static final String EXTRA_PROVISIONING_WIFI_SECURITY_TYPE = "android.app.extra.PROVISIONING_WIFI_SECURITY_TYPE";
+    field public static final String EXTRA_PROVISIONING_WIFI_SSID = "android.app.extra.PROVISIONING_WIFI_SSID";
+    field public static final String EXTRA_PROVISIONING_WIFI_USER_CERTIFICATE = "android.app.extra.PROVISIONING_WIFI_USER_CERTIFICATE";
     field public static final int FLAG_EVICT_CREDENTIAL_ENCRYPTION_KEY = 1; // 0x1
     field public static final int FLAG_MANAGED_CAN_ACCESS_PARENT = 2; // 0x2
     field public static final int FLAG_PARENT_CAN_ACCESS_MANAGED = 1; // 0x1
@@ -6888,7 +6892,7 @@
     field public static final int LOCK_TASK_FEATURE_OVERVIEW = 8; // 0x8
     field public static final int LOCK_TASK_FEATURE_SYSTEM_INFO = 1; // 0x1
     field public static final int MAKE_USER_EPHEMERAL = 2; // 0x2
-    field public static final java.lang.String MIME_TYPE_PROVISIONING_NFC = "application/com.android.managedprovisioning";
+    field public static final String MIME_TYPE_PROVISIONING_NFC = "application/com.android.managedprovisioning";
     field public static final int PASSWORD_COMPLEXITY_HIGH = 327680; // 0x50000
     field public static final int PASSWORD_COMPLEXITY_LOW = 65536; // 0x10000
     field public static final int PASSWORD_COMPLEXITY_MEDIUM = 196608; // 0x30000
@@ -6907,8 +6911,8 @@
     field public static final int PERMISSION_POLICY_AUTO_DENY = 2; // 0x2
     field public static final int PERMISSION_POLICY_AUTO_GRANT = 1; // 0x1
     field public static final int PERMISSION_POLICY_PROMPT = 0; // 0x0
-    field public static final java.lang.String POLICY_DISABLE_CAMERA = "policy_disable_camera";
-    field public static final java.lang.String POLICY_DISABLE_SCREEN_CAPTURE = "policy_disable_screen_capture";
+    field public static final String POLICY_DISABLE_CAMERA = "policy_disable_camera";
+    field public static final String POLICY_DISABLE_SCREEN_CAPTURE = "policy_disable_screen_capture";
     field public static final int PRIVATE_DNS_MODE_OFF = 1; // 0x1
     field public static final int PRIVATE_DNS_MODE_OPPORTUNISTIC = 2; // 0x2
     field public static final int PRIVATE_DNS_MODE_PROVIDER_HOSTNAME = 3; // 0x3
@@ -6927,9 +6931,9 @@
     field public static final int WIPE_RESET_PROTECTION_DATA = 2; // 0x2
   }
 
-  public static abstract class DevicePolicyManager.InstallUpdateCallback {
+  public abstract static class DevicePolicyManager.InstallUpdateCallback {
     ctor public DevicePolicyManager.InstallUpdateCallback();
-    method public void onInstallUpdateError(int, java.lang.String);
+    method public void onInstallUpdateError(int, String);
     field public static final int UPDATE_ERROR_BATTERY_LOW = 5; // 0x5
     field public static final int UPDATE_ERROR_FILE_NOT_FOUND = 4; // 0x4
     field public static final int UPDATE_ERROR_INCORRECT_OS_VERSION = 2; // 0x2
@@ -6937,12 +6941,12 @@
     field public static final int UPDATE_ERROR_UPDATE_FILE_INVALID = 3; // 0x3
   }
 
-  public static abstract interface DevicePolicyManager.OnClearApplicationUserDataListener {
-    method public abstract void onApplicationUserDataCleared(java.lang.String, boolean);
+  public static interface DevicePolicyManager.OnClearApplicationUserDataListener {
+    method public void onApplicationUserDataCleared(String, boolean);
   }
 
   public final class DnsEvent extends android.app.admin.NetworkEvent implements android.os.Parcelable {
-    method public java.lang.String getHostname();
+    method public String getHostname();
     method public java.util.List<java.net.InetAddress> getInetAddresses();
     method public int getTotalResolvedAddressCount();
     method public void writeToParcel(android.os.Parcel, int);
@@ -6958,7 +6962,7 @@
   public abstract class NetworkEvent implements android.os.Parcelable {
     method public int describeContents();
     method public long getId();
-    method public java.lang.String getPackageName();
+    method public String getPackageName();
     method public long getTimestamp();
     field public static final android.os.Parcelable.Creator<android.app.admin.NetworkEvent> CREATOR;
   }
@@ -7005,7 +7009,7 @@
 
   public static final class SecurityLog.SecurityEvent implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.Object getData();
+    method public Object getData();
     method public long getId();
     method public int getLogLevel();
     method public int getTag();
@@ -7065,13 +7069,13 @@
     method public android.content.ClipData getClipData();
     method public android.os.Bundle getExtras();
     method public android.content.Intent getIntent();
-    method public java.lang.String getStructuredData();
+    method public String getStructuredData();
     method public android.net.Uri getWebUri();
     method public boolean isAppProvidedIntent();
     method public boolean isAppProvidedWebUri();
     method public void setClipData(android.content.ClipData);
     method public void setIntent(android.content.Intent);
-    method public void setStructuredData(java.lang.String);
+    method public void setStructuredData(String);
     method public void setWebUri(android.net.Uri);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.assist.AssistContent> CREATOR;
@@ -7092,37 +7096,37 @@
 
   public static class AssistStructure.ViewNode {
     method public float getAlpha();
-    method public java.lang.String[] getAutofillHints();
-    method public android.view.autofill.AutofillId getAutofillId();
-    method public java.lang.CharSequence[] getAutofillOptions();
+    method @Nullable public String[] getAutofillHints();
+    method @Nullable public android.view.autofill.AutofillId getAutofillId();
+    method @Nullable public CharSequence[] getAutofillOptions();
     method public int getAutofillType();
-    method public android.view.autofill.AutofillValue getAutofillValue();
+    method @Nullable public android.view.autofill.AutofillValue getAutofillValue();
     method public android.app.assist.AssistStructure.ViewNode getChildAt(int);
     method public int getChildCount();
-    method public java.lang.String getClassName();
-    method public java.lang.CharSequence getContentDescription();
+    method public String getClassName();
+    method public CharSequence getContentDescription();
     method public float getElevation();
     method public android.os.Bundle getExtras();
     method public int getHeight();
-    method public java.lang.String getHint();
-    method public android.view.ViewStructure.HtmlInfo getHtmlInfo();
+    method public String getHint();
+    method @Nullable public android.view.ViewStructure.HtmlInfo getHtmlInfo();
     method public int getId();
-    method public java.lang.String getIdEntry();
-    method public java.lang.String getIdPackage();
-    method public java.lang.String getIdType();
+    method public String getIdEntry();
+    method public String getIdPackage();
+    method public String getIdType();
     method public int getImportantForAutofill();
     method public int getInputType();
     method public int getLeft();
-    method public android.os.LocaleList getLocaleList();
+    method @Nullable public android.os.LocaleList getLocaleList();
     method public int getMaxTextEms();
     method public int getMaxTextLength();
     method public int getMinTextEms();
     method public int getScrollX();
     method public int getScrollY();
-    method public java.lang.CharSequence getText();
+    method public CharSequence getText();
     method public int getTextBackgroundColor();
     method public int getTextColor();
-    method public java.lang.String getTextIdEntry();
+    method @Nullable public String getTextIdEntry();
     method public int[] getTextLineBaselines();
     method public int[] getTextLineCharOffsets();
     method public int getTextSelectionEnd();
@@ -7132,8 +7136,8 @@
     method public int getTop();
     method public android.graphics.Matrix getTransformation();
     method public int getVisibility();
-    method public java.lang.String getWebDomain();
-    method public java.lang.String getWebScheme();
+    method @Nullable public String getWebDomain();
+    method @Nullable public String getWebScheme();
     method public int getWidth();
     method public boolean isAccessibilityFocused();
     method public boolean isActivated();
@@ -7160,7 +7164,7 @@
     method public int getHeight();
     method public int getLeft();
     method public android.app.assist.AssistStructure.ViewNode getRootViewNode();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence getTitle();
     method public int getTop();
     method public int getWidth();
   }
@@ -7189,21 +7193,21 @@
 
   public class BackupAgentHelper extends android.app.backup.BackupAgent {
     ctor public BackupAgentHelper();
-    method public void addHelper(java.lang.String, android.app.backup.BackupHelper);
+    method public void addHelper(String, android.app.backup.BackupHelper);
     method public void onBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor) throws java.io.IOException;
     method public void onRestore(android.app.backup.BackupDataInput, int, android.os.ParcelFileDescriptor) throws java.io.IOException;
   }
 
   public class BackupDataInput {
     method public int getDataSize();
-    method public java.lang.String getKey();
+    method public String getKey();
     method public int readEntityData(byte[], int, int) throws java.io.IOException;
     method public boolean readNextHeader() throws java.io.IOException;
     method public void skipEntityData() throws java.io.IOException;
   }
 
   public class BackupDataInputStream extends java.io.InputStream {
-    method public java.lang.String getKey();
+    method public String getKey();
     method public int read() throws java.io.IOException;
     method public int size();
   }
@@ -7212,26 +7216,27 @@
     method public long getQuota();
     method public int getTransportFlags();
     method public int writeEntityData(byte[], int) throws java.io.IOException;
-    method public int writeEntityHeader(java.lang.String, int) throws java.io.IOException;
+    method public int writeEntityHeader(String, int) throws java.io.IOException;
   }
 
-  public abstract interface BackupHelper {
-    method public abstract void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor);
-    method public abstract void restoreEntity(android.app.backup.BackupDataInputStream);
-    method public abstract void writeNewStateDescription(android.os.ParcelFileDescriptor);
+  public interface BackupHelper {
+    method public void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor);
+    method public void restoreEntity(android.app.backup.BackupDataInputStream);
+    method public void writeNewStateDescription(android.os.ParcelFileDescriptor);
   }
 
   public class BackupManager {
     ctor public BackupManager(android.content.Context);
     method public void dataChanged();
-    method public static void dataChanged(java.lang.String);
-    method public deprecated int requestRestore(android.app.backup.RestoreObserver);
+    method public static void dataChanged(String);
+    method @Deprecated public int requestRestore(android.app.backup.RestoreObserver);
   }
 
   public class FileBackupHelper implements android.app.backup.BackupHelper {
     ctor public FileBackupHelper(android.content.Context, java.lang.String...);
     method public void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor);
     method public void restoreEntity(android.app.backup.BackupDataInputStream);
+    method public void writeNewStateDescription(android.os.ParcelFileDescriptor);
   }
 
   public class FullBackupDataOutput {
@@ -7241,7 +7246,7 @@
 
   public abstract class RestoreObserver {
     ctor public RestoreObserver();
-    method public void onUpdate(int, java.lang.String);
+    method public void onUpdate(int, String);
     method public void restoreFinished(int);
     method public void restoreStarting(int);
   }
@@ -7250,6 +7255,7 @@
     ctor public SharedPreferencesBackupHelper(android.content.Context, java.lang.String...);
     method public void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor);
     method public void restoreEntity(android.app.backup.BackupDataInputStream);
+    method public void writeNewStateDescription(android.os.ParcelFileDescriptor);
   }
 
 }
@@ -7259,11 +7265,11 @@
   public class JobInfo implements android.os.Parcelable {
     method public int describeContents();
     method public int getBackoffPolicy();
-    method public android.content.ClipData getClipData();
+    method @Nullable public android.content.ClipData getClipData();
     method public int getClipGrantFlags();
     method public long getEstimatedNetworkDownloadBytes();
     method public long getEstimatedNetworkUploadBytes();
-    method public android.os.PersistableBundle getExtras();
+    method @NonNull public android.os.PersistableBundle getExtras();
     method public long getFlexMillis();
     method public int getId();
     method public long getInitialBackoffMillis();
@@ -7272,13 +7278,13 @@
     method public static final long getMinFlexMillis();
     method public long getMinLatencyMillis();
     method public static final long getMinPeriodMillis();
-    method public deprecated int getNetworkType();
-    method public android.net.NetworkRequest getRequiredNetwork();
-    method public android.content.ComponentName getService();
-    method public android.os.Bundle getTransientExtras();
+    method @Deprecated public int getNetworkType();
+    method @Nullable public android.net.NetworkRequest getRequiredNetwork();
+    method @NonNull public android.content.ComponentName getService();
+    method @NonNull public android.os.Bundle getTransientExtras();
     method public long getTriggerContentMaxDelay();
     method public long getTriggerContentUpdateDelay();
-    method public android.app.job.JobInfo.TriggerContentUri[] getTriggerContentUris();
+    method @Nullable public android.app.job.JobInfo.TriggerContentUri[] getTriggerContentUris();
     method public boolean isImportantWhileForeground();
     method public boolean isPeriodic();
     method public boolean isPersisted();
@@ -7296,40 +7302,40 @@
     field public static final int NETWORK_BYTES_UNKNOWN = -1; // 0xffffffff
     field public static final int NETWORK_TYPE_ANY = 1; // 0x1
     field public static final int NETWORK_TYPE_CELLULAR = 4; // 0x4
-    field public static final deprecated int NETWORK_TYPE_METERED = 4; // 0x4
+    field @Deprecated public static final int NETWORK_TYPE_METERED = 4; // 0x4
     field public static final int NETWORK_TYPE_NONE = 0; // 0x0
     field public static final int NETWORK_TYPE_NOT_ROAMING = 3; // 0x3
     field public static final int NETWORK_TYPE_UNMETERED = 2; // 0x2
   }
 
   public static final class JobInfo.Builder {
-    ctor public JobInfo.Builder(int, android.content.ComponentName);
-    method public android.app.job.JobInfo.Builder addTriggerContentUri(android.app.job.JobInfo.TriggerContentUri);
+    ctor public JobInfo.Builder(int, @NonNull android.content.ComponentName);
+    method public android.app.job.JobInfo.Builder addTriggerContentUri(@NonNull android.app.job.JobInfo.TriggerContentUri);
     method public android.app.job.JobInfo build();
     method public android.app.job.JobInfo.Builder setBackoffCriteria(long, int);
-    method public android.app.job.JobInfo.Builder setClipData(android.content.ClipData, int);
+    method public android.app.job.JobInfo.Builder setClipData(@Nullable android.content.ClipData, int);
     method public android.app.job.JobInfo.Builder setEstimatedNetworkBytes(long, long);
-    method public android.app.job.JobInfo.Builder setExtras(android.os.PersistableBundle);
+    method public android.app.job.JobInfo.Builder setExtras(@NonNull android.os.PersistableBundle);
     method public android.app.job.JobInfo.Builder setImportantWhileForeground(boolean);
     method public android.app.job.JobInfo.Builder setMinimumLatency(long);
     method public android.app.job.JobInfo.Builder setOverrideDeadline(long);
     method public android.app.job.JobInfo.Builder setPeriodic(long);
     method public android.app.job.JobInfo.Builder setPeriodic(long, long);
-    method public android.app.job.JobInfo.Builder setPersisted(boolean);
+    method @RequiresPermission(android.Manifest.permission.RECEIVE_BOOT_COMPLETED) public android.app.job.JobInfo.Builder setPersisted(boolean);
     method public android.app.job.JobInfo.Builder setPrefetch(boolean);
-    method public android.app.job.JobInfo.Builder setRequiredNetwork(android.net.NetworkRequest);
+    method public android.app.job.JobInfo.Builder setRequiredNetwork(@Nullable android.net.NetworkRequest);
     method public android.app.job.JobInfo.Builder setRequiredNetworkType(int);
     method public android.app.job.JobInfo.Builder setRequiresBatteryNotLow(boolean);
     method public android.app.job.JobInfo.Builder setRequiresCharging(boolean);
     method public android.app.job.JobInfo.Builder setRequiresDeviceIdle(boolean);
     method public android.app.job.JobInfo.Builder setRequiresStorageNotLow(boolean);
-    method public android.app.job.JobInfo.Builder setTransientExtras(android.os.Bundle);
+    method public android.app.job.JobInfo.Builder setTransientExtras(@NonNull android.os.Bundle);
     method public android.app.job.JobInfo.Builder setTriggerContentMaxDelay(long);
     method public android.app.job.JobInfo.Builder setTriggerContentUpdateDelay(long);
   }
 
   public static final class JobInfo.TriggerContentUri implements android.os.Parcelable {
-    ctor public JobInfo.TriggerContentUri(android.net.Uri, int);
+    ctor public JobInfo.TriggerContentUri(@NonNull android.net.Uri, int);
     method public int describeContents();
     method public int getFlags();
     method public android.net.Uri getUri();
@@ -7339,17 +7345,17 @@
   }
 
   public class JobParameters implements android.os.Parcelable {
-    method public void completeWork(android.app.job.JobWorkItem);
-    method public android.app.job.JobWorkItem dequeueWork();
+    method public void completeWork(@NonNull android.app.job.JobWorkItem);
+    method @Nullable public android.app.job.JobWorkItem dequeueWork();
     method public int describeContents();
-    method public android.content.ClipData getClipData();
+    method @Nullable public android.content.ClipData getClipData();
     method public int getClipGrantFlags();
-    method public android.os.PersistableBundle getExtras();
+    method @NonNull public android.os.PersistableBundle getExtras();
     method public int getJobId();
-    method public android.net.Network getNetwork();
-    method public android.os.Bundle getTransientExtras();
-    method public java.lang.String[] getTriggeredContentAuthorities();
-    method public android.net.Uri[] getTriggeredContentUris();
+    method @Nullable public android.net.Network getNetwork();
+    method @NonNull public android.os.Bundle getTransientExtras();
+    method @Nullable public String[] getTriggeredContentAuthorities();
+    method @Nullable public android.net.Uri[] getTriggeredContentUris();
     method public boolean isOverrideDeadlineExpired();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.job.JobParameters> CREATOR;
@@ -7359,10 +7365,10 @@
     ctor public JobScheduler();
     method public abstract void cancel(int);
     method public abstract void cancelAll();
-    method public abstract int enqueue(android.app.job.JobInfo, android.app.job.JobWorkItem);
-    method public abstract java.util.List<android.app.job.JobInfo> getAllPendingJobs();
-    method public abstract android.app.job.JobInfo getPendingJob(int);
-    method public abstract int schedule(android.app.job.JobInfo);
+    method public abstract int enqueue(@NonNull android.app.job.JobInfo, @NonNull android.app.job.JobWorkItem);
+    method @NonNull public abstract java.util.List<android.app.job.JobInfo> getAllPendingJobs();
+    method @Nullable public abstract android.app.job.JobInfo getPendingJob(int);
+    method public abstract int schedule(@NonNull android.app.job.JobInfo);
     field public static final int RESULT_FAILURE = 0; // 0x0
     field public static final int RESULT_SUCCESS = 1; // 0x1
   }
@@ -7373,7 +7379,7 @@
     method public final android.os.IBinder onBind(android.content.Intent);
     method public abstract boolean onStartJob(android.app.job.JobParameters);
     method public abstract boolean onStopJob(android.app.job.JobParameters);
-    field public static final java.lang.String PERMISSION_BIND = "android.permission.BIND_JOB_SERVICE";
+    field public static final String PERMISSION_BIND = "android.permission.BIND_JOB_SERVICE";
   }
 
   public abstract class JobServiceEngine {
@@ -7401,16 +7407,16 @@
 package android.app.role {
 
   public final class RoleManager {
-    method public android.content.Intent createRequestRoleIntent(java.lang.String);
-    method public boolean isRoleAvailable(java.lang.String);
-    method public boolean isRoleHeld(java.lang.String);
-    field public static final java.lang.String ROLE_BROWSER = "android.app.role.BROWSER";
-    field public static final java.lang.String ROLE_DIALER = "android.app.role.DIALER";
-    field public static final java.lang.String ROLE_EMERGENCY = "android.app.role.EMERGENCY";
-    field public static final java.lang.String ROLE_GALLERY = "android.app.role.GALLERY";
-    field public static final java.lang.String ROLE_HOME = "android.app.role.HOME";
-    field public static final java.lang.String ROLE_MUSIC = "android.app.role.MUSIC";
-    field public static final java.lang.String ROLE_SMS = "android.app.role.SMS";
+    method @NonNull public android.content.Intent createRequestRoleIntent(@NonNull String);
+    method public boolean isRoleAvailable(@NonNull String);
+    method public boolean isRoleHeld(@NonNull String);
+    field public static final String ROLE_BROWSER = "android.app.role.BROWSER";
+    field public static final String ROLE_DIALER = "android.app.role.DIALER";
+    field public static final String ROLE_EMERGENCY = "android.app.role.EMERGENCY";
+    field public static final String ROLE_GALLERY = "android.app.role.GALLERY";
+    field public static final String ROLE_HOME = "android.app.role.HOME";
+    field public static final String ROLE_MUSIC = "android.app.role.MUSIC";
+    field public static final String ROLE_SMS = "android.app.role.SMS";
   }
 
 }
@@ -7422,55 +7428,55 @@
     method public int describeContents();
     method public java.util.List<java.lang.String> getHints();
     method public java.util.List<android.app.slice.SliceItem> getItems();
-    method public android.app.slice.SliceSpec getSpec();
+    method @Nullable public android.app.slice.SliceSpec getSpec();
     method public android.net.Uri getUri();
     method public boolean isCallerNeeded();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.slice.Slice> CREATOR;
-    field public static final java.lang.String EXTRA_RANGE_VALUE = "android.app.slice.extra.RANGE_VALUE";
-    field public static final java.lang.String EXTRA_TOGGLE_STATE = "android.app.slice.extra.TOGGLE_STATE";
-    field public static final java.lang.String HINT_ACTIONS = "actions";
-    field public static final java.lang.String HINT_ERROR = "error";
-    field public static final java.lang.String HINT_HORIZONTAL = "horizontal";
-    field public static final java.lang.String HINT_KEYWORDS = "keywords";
-    field public static final java.lang.String HINT_LARGE = "large";
-    field public static final java.lang.String HINT_LAST_UPDATED = "last_updated";
-    field public static final java.lang.String HINT_LIST = "list";
-    field public static final java.lang.String HINT_LIST_ITEM = "list_item";
-    field public static final java.lang.String HINT_NO_TINT = "no_tint";
-    field public static final java.lang.String HINT_PARTIAL = "partial";
-    field public static final java.lang.String HINT_PERMISSION_REQUEST = "permission_request";
-    field public static final java.lang.String HINT_SEE_MORE = "see_more";
-    field public static final java.lang.String HINT_SELECTED = "selected";
-    field public static final java.lang.String HINT_SHORTCUT = "shortcut";
-    field public static final java.lang.String HINT_SUMMARY = "summary";
-    field public static final java.lang.String HINT_TITLE = "title";
-    field public static final java.lang.String HINT_TTL = "ttl";
-    field public static final java.lang.String SUBTYPE_COLOR = "color";
-    field public static final java.lang.String SUBTYPE_CONTENT_DESCRIPTION = "content_description";
-    field public static final java.lang.String SUBTYPE_LAYOUT_DIRECTION = "layout_direction";
-    field public static final java.lang.String SUBTYPE_MAX = "max";
-    field public static final java.lang.String SUBTYPE_MESSAGE = "message";
-    field public static final java.lang.String SUBTYPE_MILLIS = "millis";
-    field public static final java.lang.String SUBTYPE_PRIORITY = "priority";
-    field public static final java.lang.String SUBTYPE_RANGE = "range";
-    field public static final java.lang.String SUBTYPE_SOURCE = "source";
-    field public static final java.lang.String SUBTYPE_TOGGLE = "toggle";
-    field public static final java.lang.String SUBTYPE_VALUE = "value";
+    field public static final String EXTRA_RANGE_VALUE = "android.app.slice.extra.RANGE_VALUE";
+    field public static final String EXTRA_TOGGLE_STATE = "android.app.slice.extra.TOGGLE_STATE";
+    field public static final String HINT_ACTIONS = "actions";
+    field public static final String HINT_ERROR = "error";
+    field public static final String HINT_HORIZONTAL = "horizontal";
+    field public static final String HINT_KEYWORDS = "keywords";
+    field public static final String HINT_LARGE = "large";
+    field public static final String HINT_LAST_UPDATED = "last_updated";
+    field public static final String HINT_LIST = "list";
+    field public static final String HINT_LIST_ITEM = "list_item";
+    field public static final String HINT_NO_TINT = "no_tint";
+    field public static final String HINT_PARTIAL = "partial";
+    field public static final String HINT_PERMISSION_REQUEST = "permission_request";
+    field public static final String HINT_SEE_MORE = "see_more";
+    field public static final String HINT_SELECTED = "selected";
+    field public static final String HINT_SHORTCUT = "shortcut";
+    field public static final String HINT_SUMMARY = "summary";
+    field public static final String HINT_TITLE = "title";
+    field public static final String HINT_TTL = "ttl";
+    field public static final String SUBTYPE_COLOR = "color";
+    field public static final String SUBTYPE_CONTENT_DESCRIPTION = "content_description";
+    field public static final String SUBTYPE_LAYOUT_DIRECTION = "layout_direction";
+    field public static final String SUBTYPE_MAX = "max";
+    field public static final String SUBTYPE_MESSAGE = "message";
+    field public static final String SUBTYPE_MILLIS = "millis";
+    field public static final String SUBTYPE_PRIORITY = "priority";
+    field public static final String SUBTYPE_RANGE = "range";
+    field public static final String SUBTYPE_SOURCE = "source";
+    field public static final String SUBTYPE_TOGGLE = "toggle";
+    field public static final String SUBTYPE_VALUE = "value";
   }
 
   public static class Slice.Builder {
-    ctor public Slice.Builder(android.net.Uri, android.app.slice.SliceSpec);
-    ctor public Slice.Builder(android.app.slice.Slice.Builder);
-    method public android.app.slice.Slice.Builder addAction(android.app.PendingIntent, android.app.slice.Slice, java.lang.String);
-    method public android.app.slice.Slice.Builder addBundle(android.os.Bundle, java.lang.String, java.util.List<java.lang.String>);
+    ctor public Slice.Builder(@NonNull android.net.Uri, android.app.slice.SliceSpec);
+    ctor public Slice.Builder(@NonNull android.app.slice.Slice.Builder);
+    method public android.app.slice.Slice.Builder addAction(@NonNull android.app.PendingIntent, @NonNull android.app.slice.Slice, @Nullable String);
+    method public android.app.slice.Slice.Builder addBundle(android.os.Bundle, @Nullable String, java.util.List<java.lang.String>);
     method public android.app.slice.Slice.Builder addHints(java.util.List<java.lang.String>);
-    method public android.app.slice.Slice.Builder addIcon(android.graphics.drawable.Icon, java.lang.String, java.util.List<java.lang.String>);
-    method public android.app.slice.Slice.Builder addInt(int, java.lang.String, java.util.List<java.lang.String>);
-    method public android.app.slice.Slice.Builder addLong(long, java.lang.String, java.util.List<java.lang.String>);
-    method public android.app.slice.Slice.Builder addRemoteInput(android.app.RemoteInput, java.lang.String, java.util.List<java.lang.String>);
-    method public android.app.slice.Slice.Builder addSubSlice(android.app.slice.Slice, java.lang.String);
-    method public android.app.slice.Slice.Builder addText(java.lang.CharSequence, java.lang.String, java.util.List<java.lang.String>);
+    method public android.app.slice.Slice.Builder addIcon(android.graphics.drawable.Icon, @Nullable String, java.util.List<java.lang.String>);
+    method public android.app.slice.Slice.Builder addInt(int, @Nullable String, java.util.List<java.lang.String>);
+    method public android.app.slice.Slice.Builder addLong(long, @Nullable String, java.util.List<java.lang.String>);
+    method public android.app.slice.Slice.Builder addRemoteInput(android.app.RemoteInput, @Nullable String, java.util.List<java.lang.String>);
+    method public android.app.slice.Slice.Builder addSubSlice(@NonNull android.app.slice.Slice, @Nullable String);
+    method public android.app.slice.Slice.Builder addText(CharSequence, @Nullable String, java.util.List<java.lang.String>);
     method public android.app.slice.Slice build();
     method public android.app.slice.Slice.Builder setCallerNeeded(boolean);
   }
@@ -7479,76 +7485,76 @@
     method public int describeContents();
     method public android.app.PendingIntent getAction();
     method public android.os.Bundle getBundle();
-    method public java.lang.String getFormat();
-    method public java.util.List<java.lang.String> getHints();
+    method public String getFormat();
+    method @NonNull public java.util.List<java.lang.String> getHints();
     method public android.graphics.drawable.Icon getIcon();
     method public int getInt();
     method public long getLong();
     method public android.app.RemoteInput getRemoteInput();
     method public android.app.slice.Slice getSlice();
-    method public java.lang.String getSubType();
-    method public java.lang.CharSequence getText();
-    method public boolean hasHint(java.lang.String);
+    method public String getSubType();
+    method public CharSequence getText();
+    method public boolean hasHint(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.slice.SliceItem> CREATOR;
-    field public static final java.lang.String FORMAT_ACTION = "action";
-    field public static final java.lang.String FORMAT_BUNDLE = "bundle";
-    field public static final java.lang.String FORMAT_IMAGE = "image";
-    field public static final java.lang.String FORMAT_INT = "int";
-    field public static final java.lang.String FORMAT_LONG = "long";
-    field public static final java.lang.String FORMAT_REMOTE_INPUT = "input";
-    field public static final java.lang.String FORMAT_SLICE = "slice";
-    field public static final java.lang.String FORMAT_TEXT = "text";
+    field public static final String FORMAT_ACTION = "action";
+    field public static final String FORMAT_BUNDLE = "bundle";
+    field public static final String FORMAT_IMAGE = "image";
+    field public static final String FORMAT_INT = "int";
+    field public static final String FORMAT_LONG = "long";
+    field public static final String FORMAT_REMOTE_INPUT = "input";
+    field public static final String FORMAT_SLICE = "slice";
+    field public static final String FORMAT_TEXT = "text";
   }
 
   public class SliceManager {
-    method public android.app.slice.Slice bindSlice(android.net.Uri, java.util.Set<android.app.slice.SliceSpec>);
-    method public android.app.slice.Slice bindSlice(android.content.Intent, java.util.Set<android.app.slice.SliceSpec>);
-    method public int checkSlicePermission(android.net.Uri, int, int);
-    method public java.util.List<android.net.Uri> getPinnedSlices();
-    method public java.util.Set<android.app.slice.SliceSpec> getPinnedSpecs(android.net.Uri);
-    method public java.util.Collection<android.net.Uri> getSliceDescendants(android.net.Uri);
-    method public void grantSlicePermission(java.lang.String, android.net.Uri);
-    method public android.net.Uri mapIntentToUri(android.content.Intent);
-    method public void pinSlice(android.net.Uri, java.util.Set<android.app.slice.SliceSpec>);
-    method public void revokeSlicePermission(java.lang.String, android.net.Uri);
-    method public void unpinSlice(android.net.Uri);
-    field public static final java.lang.String CATEGORY_SLICE = "android.app.slice.category.SLICE";
-    field public static final java.lang.String SLICE_METADATA_KEY = "android.metadata.SLICE_URI";
+    method @Nullable public android.app.slice.Slice bindSlice(@NonNull android.net.Uri, @NonNull java.util.Set<android.app.slice.SliceSpec>);
+    method @Nullable public android.app.slice.Slice bindSlice(@NonNull android.content.Intent, @NonNull java.util.Set<android.app.slice.SliceSpec>);
+    method public int checkSlicePermission(@NonNull android.net.Uri, int, int);
+    method @NonNull public java.util.List<android.net.Uri> getPinnedSlices();
+    method @NonNull public java.util.Set<android.app.slice.SliceSpec> getPinnedSpecs(android.net.Uri);
+    method @WorkerThread @NonNull public java.util.Collection<android.net.Uri> getSliceDescendants(@NonNull android.net.Uri);
+    method public void grantSlicePermission(@NonNull String, @NonNull android.net.Uri);
+    method @Nullable public android.net.Uri mapIntentToUri(@NonNull android.content.Intent);
+    method public void pinSlice(@NonNull android.net.Uri, @NonNull java.util.Set<android.app.slice.SliceSpec>);
+    method public void revokeSlicePermission(@NonNull String, @NonNull android.net.Uri);
+    method public void unpinSlice(@NonNull android.net.Uri);
+    field public static final String CATEGORY_SLICE = "android.app.slice.category.SLICE";
+    field public static final String SLICE_METADATA_KEY = "android.metadata.SLICE_URI";
   }
 
   public class SliceMetrics {
-    ctor public SliceMetrics(android.content.Context, android.net.Uri);
+    ctor public SliceMetrics(@NonNull android.content.Context, @NonNull android.net.Uri);
     method public void logHidden();
-    method public void logTouch(int, android.net.Uri);
+    method public void logTouch(int, @NonNull android.net.Uri);
     method public void logVisible();
   }
 
   public abstract class SliceProvider extends android.content.ContentProvider {
-    ctor public SliceProvider(java.lang.String...);
+    ctor public SliceProvider(@NonNull java.lang.String...);
     ctor public SliceProvider();
-    method public final int delete(android.net.Uri, java.lang.String, java.lang.String[]);
-    method public final java.lang.String getType(android.net.Uri);
+    method public final int delete(android.net.Uri, String, String[]);
+    method public final String getType(android.net.Uri);
     method public final android.net.Uri insert(android.net.Uri, android.content.ContentValues);
     method public android.app.slice.Slice onBindSlice(android.net.Uri, java.util.Set<android.app.slice.SliceSpec>);
-    method public android.app.PendingIntent onCreatePermissionRequest(android.net.Uri);
-    method public java.util.Collection<android.net.Uri> onGetSliceDescendants(android.net.Uri);
-    method public android.net.Uri onMapIntentToUri(android.content.Intent);
+    method @NonNull public android.app.PendingIntent onCreatePermissionRequest(android.net.Uri);
+    method @NonNull public java.util.Collection<android.net.Uri> onGetSliceDescendants(@NonNull android.net.Uri);
+    method @NonNull public android.net.Uri onMapIntentToUri(android.content.Intent);
     method public void onSlicePinned(android.net.Uri);
     method public void onSliceUnpinned(android.net.Uri);
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, android.os.CancellationSignal);
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], android.os.Bundle, android.os.CancellationSignal);
-    method public final int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
-    field public static final java.lang.String SLICE_TYPE = "vnd.android.slice";
+    method public final android.database.Cursor query(android.net.Uri, String[], String, String[], String);
+    method public final android.database.Cursor query(android.net.Uri, String[], String, String[], String, android.os.CancellationSignal);
+    method public final android.database.Cursor query(android.net.Uri, String[], android.os.Bundle, android.os.CancellationSignal);
+    method public final int update(android.net.Uri, android.content.ContentValues, String, String[]);
+    field public static final String SLICE_TYPE = "vnd.android.slice";
   }
 
   public final class SliceSpec implements android.os.Parcelable {
-    ctor public SliceSpec(java.lang.String, int);
-    method public boolean canRender(android.app.slice.SliceSpec);
+    ctor public SliceSpec(@NonNull String, int);
+    method public boolean canRender(@NonNull android.app.slice.SliceSpec);
     method public int describeContents();
     method public int getRevision();
-    method public java.lang.String getType();
+    method public String getType();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.slice.SliceSpec> CREATOR;
   }
@@ -7634,21 +7640,21 @@
   }
 
   public class NetworkStatsManager {
-    method public android.app.usage.NetworkStats queryDetails(int, java.lang.String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
-    method public android.app.usage.NetworkStats queryDetailsForUid(int, java.lang.String, long, long, int) throws java.lang.SecurityException;
-    method public android.app.usage.NetworkStats queryDetailsForUidTag(int, java.lang.String, long, long, int, int) throws java.lang.SecurityException;
-    method public android.app.usage.NetworkStats queryDetailsForUidTagState(int, java.lang.String, long, long, int, int, int) throws java.lang.SecurityException;
-    method public android.app.usage.NetworkStats querySummary(int, java.lang.String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
-    method public android.app.usage.NetworkStats.Bucket querySummaryForDevice(int, java.lang.String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
-    method public android.app.usage.NetworkStats.Bucket querySummaryForUser(int, java.lang.String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
-    method public void registerUsageCallback(int, java.lang.String, long, android.app.usage.NetworkStatsManager.UsageCallback);
-    method public void registerUsageCallback(int, java.lang.String, long, android.app.usage.NetworkStatsManager.UsageCallback, android.os.Handler);
+    method public android.app.usage.NetworkStats queryDetails(int, String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
+    method public android.app.usage.NetworkStats queryDetailsForUid(int, String, long, long, int) throws java.lang.SecurityException;
+    method public android.app.usage.NetworkStats queryDetailsForUidTag(int, String, long, long, int, int) throws java.lang.SecurityException;
+    method public android.app.usage.NetworkStats queryDetailsForUidTagState(int, String, long, long, int, int, int) throws java.lang.SecurityException;
+    method public android.app.usage.NetworkStats querySummary(int, String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
+    method public android.app.usage.NetworkStats.Bucket querySummaryForDevice(int, String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
+    method public android.app.usage.NetworkStats.Bucket querySummaryForUser(int, String, long, long) throws android.os.RemoteException, java.lang.SecurityException;
+    method public void registerUsageCallback(int, String, long, android.app.usage.NetworkStatsManager.UsageCallback);
+    method public void registerUsageCallback(int, String, long, android.app.usage.NetworkStatsManager.UsageCallback, @Nullable android.os.Handler);
     method public void unregisterUsageCallback(android.app.usage.NetworkStatsManager.UsageCallback);
   }
 
-  public static abstract class NetworkStatsManager.UsageCallback {
+  public abstract static class NetworkStatsManager.UsageCallback {
     ctor public NetworkStatsManager.UsageCallback();
-    method public abstract void onThresholdReached(int, java.lang.String);
+    method public abstract void onThresholdReached(int, String);
   }
 
   public final class StorageStats implements android.os.Parcelable {
@@ -7661,12 +7667,12 @@
   }
 
   public class StorageStatsManager {
-    method public long getFreeBytes(java.util.UUID) throws java.io.IOException;
-    method public long getTotalBytes(java.util.UUID) throws java.io.IOException;
-    method public android.app.usage.ExternalStorageStats queryExternalStatsForUser(java.util.UUID, android.os.UserHandle) throws java.io.IOException;
-    method public android.app.usage.StorageStats queryStatsForPackage(java.util.UUID, java.lang.String, android.os.UserHandle) throws java.io.IOException, android.content.pm.PackageManager.NameNotFoundException;
-    method public android.app.usage.StorageStats queryStatsForUid(java.util.UUID, int) throws java.io.IOException;
-    method public android.app.usage.StorageStats queryStatsForUser(java.util.UUID, android.os.UserHandle) throws java.io.IOException;
+    method @WorkerThread public long getFreeBytes(@NonNull java.util.UUID) throws java.io.IOException;
+    method @WorkerThread public long getTotalBytes(@NonNull java.util.UUID) throws java.io.IOException;
+    method @WorkerThread @NonNull public android.app.usage.ExternalStorageStats queryExternalStatsForUser(@NonNull java.util.UUID, @NonNull android.os.UserHandle) throws java.io.IOException;
+    method @WorkerThread @NonNull public android.app.usage.StorageStats queryStatsForPackage(@NonNull java.util.UUID, @NonNull String, @NonNull android.os.UserHandle) throws java.io.IOException, android.content.pm.PackageManager.NameNotFoundException;
+    method @WorkerThread @NonNull public android.app.usage.StorageStats queryStatsForUid(@NonNull java.util.UUID, int) throws java.io.IOException;
+    method @WorkerThread @NonNull public android.app.usage.StorageStats queryStatsForUser(@NonNull java.util.UUID, @NonNull android.os.UserHandle) throws java.io.IOException;
   }
 
   public final class UsageEvents implements android.os.Parcelable {
@@ -7680,11 +7686,11 @@
   public static final class UsageEvents.Event {
     ctor public UsageEvents.Event();
     method public int getAppStandbyBucket();
-    method public java.lang.String getClassName();
+    method public String getClassName();
     method public android.content.res.Configuration getConfiguration();
     method public int getEventType();
-    method public java.lang.String getPackageName();
-    method public java.lang.String getShortcutId();
+    method public String getPackageName();
+    method public String getShortcutId();
     method public long getTimeStamp();
     field public static final int ACTIVITY_PAUSED = 2; // 0x2
     field public static final int ACTIVITY_RESUMED = 1; // 0x1
@@ -7695,8 +7701,8 @@
     field public static final int FOREGROUND_SERVICE_STOP = 20; // 0x14
     field public static final int KEYGUARD_HIDDEN = 18; // 0x12
     field public static final int KEYGUARD_SHOWN = 17; // 0x11
-    field public static final deprecated int MOVE_TO_BACKGROUND = 2; // 0x2
-    field public static final deprecated int MOVE_TO_FOREGROUND = 1; // 0x1
+    field @Deprecated public static final int MOVE_TO_BACKGROUND = 2; // 0x2
+    field @Deprecated public static final int MOVE_TO_FOREGROUND = 1; // 0x1
     field public static final int NONE = 0; // 0x0
     field public static final int SCREEN_INTERACTIVE = 15; // 0xf
     field public static final int SCREEN_NON_INTERACTIVE = 16; // 0x10
@@ -7714,7 +7720,7 @@
     method public long getLastTimeStamp();
     method public long getLastTimeUsed();
     method public long getLastTimeVisible();
-    method public java.lang.String getPackageName();
+    method public String getPackageName();
     method public long getTotalTimeForegroundServiceUsed();
     method public long getTotalTimeInForeground();
     method public long getTotalTimeVisible();
@@ -7724,8 +7730,8 @@
 
   public final class UsageStatsManager {
     method public int getAppStandbyBucket();
-    method public boolean isAppInactive(java.lang.String);
-    method public java.util.Map<java.lang.String, android.app.usage.UsageStats> queryAndAggregateUsageStats(long, long);
+    method public boolean isAppInactive(String);
+    method public java.util.Map<java.lang.String,android.app.usage.UsageStats> queryAndAggregateUsageStats(long, long);
     method public java.util.List<android.app.usage.ConfigurationStats> queryConfigurations(int, long, long);
     method public java.util.List<android.app.usage.EventStats> queryEventStats(int, long, long);
     method public android.app.usage.UsageEvents queryEvents(long, long);
@@ -7758,7 +7764,7 @@
     method protected android.appwidget.AppWidgetHostView onCreateView(android.content.Context, int, android.appwidget.AppWidgetProviderInfo);
     method protected void onProviderChanged(int, android.appwidget.AppWidgetProviderInfo);
     method protected void onProvidersChanged();
-    method public final void startAppWidgetConfigureActivityForResult(android.app.Activity, int, int, int, android.os.Bundle);
+    method public final void startAppWidgetConfigureActivityForResult(@NonNull android.app.Activity, int, int, int, @Nullable android.os.Bundle);
     method public void startListening();
     method public void stopListening();
   }
@@ -7788,47 +7794,47 @@
     method public android.appwidget.AppWidgetProviderInfo getAppWidgetInfo(int);
     method public android.os.Bundle getAppWidgetOptions(int);
     method public java.util.List<android.appwidget.AppWidgetProviderInfo> getInstalledProviders();
-    method public java.util.List<android.appwidget.AppWidgetProviderInfo> getInstalledProvidersForPackage(java.lang.String, android.os.UserHandle);
-    method public java.util.List<android.appwidget.AppWidgetProviderInfo> getInstalledProvidersForProfile(android.os.UserHandle);
+    method @NonNull public java.util.List<android.appwidget.AppWidgetProviderInfo> getInstalledProvidersForPackage(@NonNull String, @Nullable android.os.UserHandle);
+    method @NonNull public java.util.List<android.appwidget.AppWidgetProviderInfo> getInstalledProvidersForProfile(@Nullable android.os.UserHandle);
     method public static android.appwidget.AppWidgetManager getInstance(android.content.Context);
     method public boolean isRequestPinAppWidgetSupported();
     method public void notifyAppWidgetViewDataChanged(int[], int);
     method public void notifyAppWidgetViewDataChanged(int, int);
     method public void partiallyUpdateAppWidget(int[], android.widget.RemoteViews);
     method public void partiallyUpdateAppWidget(int, android.widget.RemoteViews);
-    method public boolean requestPinAppWidget(android.content.ComponentName, android.os.Bundle, android.app.PendingIntent);
+    method public boolean requestPinAppWidget(@NonNull android.content.ComponentName, @Nullable android.os.Bundle, @Nullable android.app.PendingIntent);
     method public void updateAppWidget(int[], android.widget.RemoteViews);
     method public void updateAppWidget(int, android.widget.RemoteViews);
     method public void updateAppWidget(android.content.ComponentName, android.widget.RemoteViews);
     method public void updateAppWidgetOptions(int, android.os.Bundle);
-    method public void updateAppWidgetProviderInfo(android.content.ComponentName, java.lang.String);
-    field public static final java.lang.String ACTION_APPWIDGET_BIND = "android.appwidget.action.APPWIDGET_BIND";
-    field public static final java.lang.String ACTION_APPWIDGET_CONFIGURE = "android.appwidget.action.APPWIDGET_CONFIGURE";
-    field public static final java.lang.String ACTION_APPWIDGET_DELETED = "android.appwidget.action.APPWIDGET_DELETED";
-    field public static final java.lang.String ACTION_APPWIDGET_DISABLED = "android.appwidget.action.APPWIDGET_DISABLED";
-    field public static final java.lang.String ACTION_APPWIDGET_ENABLED = "android.appwidget.action.APPWIDGET_ENABLED";
-    field public static final java.lang.String ACTION_APPWIDGET_HOST_RESTORED = "android.appwidget.action.APPWIDGET_HOST_RESTORED";
-    field public static final java.lang.String ACTION_APPWIDGET_OPTIONS_CHANGED = "android.appwidget.action.APPWIDGET_UPDATE_OPTIONS";
-    field public static final java.lang.String ACTION_APPWIDGET_PICK = "android.appwidget.action.APPWIDGET_PICK";
-    field public static final java.lang.String ACTION_APPWIDGET_RESTORED = "android.appwidget.action.APPWIDGET_RESTORED";
-    field public static final java.lang.String ACTION_APPWIDGET_UPDATE = "android.appwidget.action.APPWIDGET_UPDATE";
-    field public static final java.lang.String EXTRA_APPWIDGET_ID = "appWidgetId";
-    field public static final java.lang.String EXTRA_APPWIDGET_IDS = "appWidgetIds";
-    field public static final java.lang.String EXTRA_APPWIDGET_OLD_IDS = "appWidgetOldIds";
-    field public static final java.lang.String EXTRA_APPWIDGET_OPTIONS = "appWidgetOptions";
-    field public static final java.lang.String EXTRA_APPWIDGET_PREVIEW = "appWidgetPreview";
-    field public static final java.lang.String EXTRA_APPWIDGET_PROVIDER = "appWidgetProvider";
-    field public static final java.lang.String EXTRA_APPWIDGET_PROVIDER_PROFILE = "appWidgetProviderProfile";
-    field public static final java.lang.String EXTRA_CUSTOM_EXTRAS = "customExtras";
-    field public static final java.lang.String EXTRA_CUSTOM_INFO = "customInfo";
-    field public static final java.lang.String EXTRA_HOST_ID = "hostId";
+    method public void updateAppWidgetProviderInfo(android.content.ComponentName, @Nullable String);
+    field public static final String ACTION_APPWIDGET_BIND = "android.appwidget.action.APPWIDGET_BIND";
+    field public static final String ACTION_APPWIDGET_CONFIGURE = "android.appwidget.action.APPWIDGET_CONFIGURE";
+    field public static final String ACTION_APPWIDGET_DELETED = "android.appwidget.action.APPWIDGET_DELETED";
+    field public static final String ACTION_APPWIDGET_DISABLED = "android.appwidget.action.APPWIDGET_DISABLED";
+    field public static final String ACTION_APPWIDGET_ENABLED = "android.appwidget.action.APPWIDGET_ENABLED";
+    field public static final String ACTION_APPWIDGET_HOST_RESTORED = "android.appwidget.action.APPWIDGET_HOST_RESTORED";
+    field public static final String ACTION_APPWIDGET_OPTIONS_CHANGED = "android.appwidget.action.APPWIDGET_UPDATE_OPTIONS";
+    field public static final String ACTION_APPWIDGET_PICK = "android.appwidget.action.APPWIDGET_PICK";
+    field public static final String ACTION_APPWIDGET_RESTORED = "android.appwidget.action.APPWIDGET_RESTORED";
+    field public static final String ACTION_APPWIDGET_UPDATE = "android.appwidget.action.APPWIDGET_UPDATE";
+    field public static final String EXTRA_APPWIDGET_ID = "appWidgetId";
+    field public static final String EXTRA_APPWIDGET_IDS = "appWidgetIds";
+    field public static final String EXTRA_APPWIDGET_OLD_IDS = "appWidgetOldIds";
+    field public static final String EXTRA_APPWIDGET_OPTIONS = "appWidgetOptions";
+    field public static final String EXTRA_APPWIDGET_PREVIEW = "appWidgetPreview";
+    field public static final String EXTRA_APPWIDGET_PROVIDER = "appWidgetProvider";
+    field public static final String EXTRA_APPWIDGET_PROVIDER_PROFILE = "appWidgetProviderProfile";
+    field public static final String EXTRA_CUSTOM_EXTRAS = "customExtras";
+    field public static final String EXTRA_CUSTOM_INFO = "customInfo";
+    field public static final String EXTRA_HOST_ID = "hostId";
     field public static final int INVALID_APPWIDGET_ID = 0; // 0x0
-    field public static final java.lang.String META_DATA_APPWIDGET_PROVIDER = "android.appwidget.provider";
-    field public static final java.lang.String OPTION_APPWIDGET_HOST_CATEGORY = "appWidgetCategory";
-    field public static final java.lang.String OPTION_APPWIDGET_MAX_HEIGHT = "appWidgetMaxHeight";
-    field public static final java.lang.String OPTION_APPWIDGET_MAX_WIDTH = "appWidgetMaxWidth";
-    field public static final java.lang.String OPTION_APPWIDGET_MIN_HEIGHT = "appWidgetMinHeight";
-    field public static final java.lang.String OPTION_APPWIDGET_MIN_WIDTH = "appWidgetMinWidth";
+    field public static final String META_DATA_APPWIDGET_PROVIDER = "android.appwidget.provider";
+    field public static final String OPTION_APPWIDGET_HOST_CATEGORY = "appWidgetCategory";
+    field public static final String OPTION_APPWIDGET_MAX_HEIGHT = "appWidgetMaxHeight";
+    field public static final String OPTION_APPWIDGET_MAX_WIDTH = "appWidgetMaxWidth";
+    field public static final String OPTION_APPWIDGET_MIN_HEIGHT = "appWidgetMinHeight";
+    field public static final String OPTION_APPWIDGET_MIN_WIDTH = "appWidgetMinWidth";
   }
 
   public class AppWidgetProvider extends android.content.BroadcastReceiver {
@@ -7848,9 +7854,9 @@
     method public android.appwidget.AppWidgetProviderInfo clone();
     method public int describeContents();
     method public final android.os.UserHandle getProfile();
-    method public final android.graphics.drawable.Drawable loadIcon(android.content.Context, int);
-    method public final java.lang.String loadLabel(android.content.pm.PackageManager);
-    method public final android.graphics.drawable.Drawable loadPreviewImage(android.content.Context, int);
+    method public final android.graphics.drawable.Drawable loadIcon(@NonNull android.content.Context, int);
+    method public final String loadLabel(android.content.pm.PackageManager);
+    method public final android.graphics.drawable.Drawable loadPreviewImage(@NonNull android.content.Context, int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.appwidget.AppWidgetProviderInfo> CREATOR;
     field public static final int RESIZE_BOTH = 3; // 0x3
@@ -7867,7 +7873,7 @@
     field public int icon;
     field public int initialKeyguardLayout;
     field public int initialLayout;
-    field public deprecated java.lang.String label;
+    field @Deprecated public String label;
     field public int minHeight;
     field public int minResizeHeight;
     field public int minResizeWidth;
@@ -7890,33 +7896,33 @@
     method public int getConnectionState(android.bluetooth.BluetoothDevice);
     method public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
     method public boolean isA2dpPlaying(android.bluetooth.BluetoothDevice);
-    field public static final java.lang.String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp.profile.action.CONNECTION_STATE_CHANGED";
-    field public static final java.lang.String ACTION_PLAYING_STATE_CHANGED = "android.bluetooth.a2dp.profile.action.PLAYING_STATE_CHANGED";
+    field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp.profile.action.CONNECTION_STATE_CHANGED";
+    field public static final String ACTION_PLAYING_STATE_CHANGED = "android.bluetooth.a2dp.profile.action.PLAYING_STATE_CHANGED";
     field public static final int STATE_NOT_PLAYING = 11; // 0xb
     field public static final int STATE_PLAYING = 10; // 0xa
   }
 
   public final class BluetoothAdapter {
-    method public boolean cancelDiscovery();
-    method public static boolean checkBluetoothAddress(java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean cancelDiscovery();
+    method public static boolean checkBluetoothAddress(String);
     method public void closeProfileProxy(int, android.bluetooth.BluetoothProfile);
-    method public boolean disable();
-    method public boolean enable();
-    method public java.lang.String getAddress();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean disable();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean enable();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public String getAddress();
     method public android.bluetooth.le.BluetoothLeAdvertiser getBluetoothLeAdvertiser();
     method public android.bluetooth.le.BluetoothLeScanner getBluetoothLeScanner();
-    method public java.util.Set<android.bluetooth.BluetoothDevice> getBondedDevices();
-    method public static synchronized android.bluetooth.BluetoothAdapter getDefaultAdapter();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public java.util.Set<android.bluetooth.BluetoothDevice> getBondedDevices();
+    method public static android.bluetooth.BluetoothAdapter getDefaultAdapter();
     method public int getLeMaximumAdvertisingDataLength();
-    method public java.lang.String getName();
-    method public int getProfileConnectionState(int);
+    method public String getName();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getProfileConnectionState(int);
     method public boolean getProfileProxy(android.content.Context, android.bluetooth.BluetoothProfile.ServiceListener, int);
-    method public android.bluetooth.BluetoothDevice getRemoteDevice(java.lang.String);
+    method public android.bluetooth.BluetoothDevice getRemoteDevice(String);
     method public android.bluetooth.BluetoothDevice getRemoteDevice(byte[]);
-    method public int getScanMode();
-    method public int getState();
-    method public boolean isDiscovering();
-    method public boolean isEnabled();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getScanMode();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getState();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isDiscovering();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isEnabled();
     method public boolean isLe2MPhySupported();
     method public boolean isLeCodedPhySupported();
     method public boolean isLeExtendedAdvertisingSupported();
@@ -7924,32 +7930,32 @@
     method public boolean isMultipleAdvertisementSupported();
     method public boolean isOffloadedFilteringSupported();
     method public boolean isOffloadedScanBatchingSupported();
-    method public android.bluetooth.BluetoothServerSocket listenUsingInsecureL2capChannel() throws java.io.IOException;
-    method public android.bluetooth.BluetoothServerSocket listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID) throws java.io.IOException;
-    method public android.bluetooth.BluetoothServerSocket listenUsingL2capChannel() throws java.io.IOException;
-    method public android.bluetooth.BluetoothServerSocket listenUsingRfcommWithServiceRecord(java.lang.String, java.util.UUID) throws java.io.IOException;
-    method public boolean setName(java.lang.String);
-    method public boolean startDiscovery();
-    method public deprecated boolean startLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback);
-    method public deprecated boolean startLeScan(java.util.UUID[], android.bluetooth.BluetoothAdapter.LeScanCallback);
-    method public deprecated void stopLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback);
-    field public static final java.lang.String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED";
-    field public static final java.lang.String ACTION_DISCOVERY_FINISHED = "android.bluetooth.adapter.action.DISCOVERY_FINISHED";
-    field public static final java.lang.String ACTION_DISCOVERY_STARTED = "android.bluetooth.adapter.action.DISCOVERY_STARTED";
-    field public static final java.lang.String ACTION_LOCAL_NAME_CHANGED = "android.bluetooth.adapter.action.LOCAL_NAME_CHANGED";
-    field public static final java.lang.String ACTION_REQUEST_DISCOVERABLE = "android.bluetooth.adapter.action.REQUEST_DISCOVERABLE";
-    field public static final java.lang.String ACTION_REQUEST_ENABLE = "android.bluetooth.adapter.action.REQUEST_ENABLE";
-    field public static final java.lang.String ACTION_SCAN_MODE_CHANGED = "android.bluetooth.adapter.action.SCAN_MODE_CHANGED";
-    field public static final java.lang.String ACTION_STATE_CHANGED = "android.bluetooth.adapter.action.STATE_CHANGED";
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothServerSocket listenUsingInsecureL2capChannel() throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothServerSocket listenUsingInsecureRfcommWithServiceRecord(String, java.util.UUID) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothServerSocket listenUsingL2capChannel() throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothServerSocket listenUsingRfcommWithServiceRecord(String, java.util.UUID) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setName(String);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean startDiscovery();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean startLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean startLeScan(java.util.UUID[], android.bluetooth.BluetoothAdapter.LeScanCallback);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public void stopLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback);
+    field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED";
+    field public static final String ACTION_DISCOVERY_FINISHED = "android.bluetooth.adapter.action.DISCOVERY_FINISHED";
+    field public static final String ACTION_DISCOVERY_STARTED = "android.bluetooth.adapter.action.DISCOVERY_STARTED";
+    field public static final String ACTION_LOCAL_NAME_CHANGED = "android.bluetooth.adapter.action.LOCAL_NAME_CHANGED";
+    field public static final String ACTION_REQUEST_DISCOVERABLE = "android.bluetooth.adapter.action.REQUEST_DISCOVERABLE";
+    field public static final String ACTION_REQUEST_ENABLE = "android.bluetooth.adapter.action.REQUEST_ENABLE";
+    field public static final String ACTION_SCAN_MODE_CHANGED = "android.bluetooth.adapter.action.SCAN_MODE_CHANGED";
+    field public static final String ACTION_STATE_CHANGED = "android.bluetooth.adapter.action.STATE_CHANGED";
     field public static final int ERROR = -2147483648; // 0x80000000
-    field public static final java.lang.String EXTRA_CONNECTION_STATE = "android.bluetooth.adapter.extra.CONNECTION_STATE";
-    field public static final java.lang.String EXTRA_DISCOVERABLE_DURATION = "android.bluetooth.adapter.extra.DISCOVERABLE_DURATION";
-    field public static final java.lang.String EXTRA_LOCAL_NAME = "android.bluetooth.adapter.extra.LOCAL_NAME";
-    field public static final java.lang.String EXTRA_PREVIOUS_CONNECTION_STATE = "android.bluetooth.adapter.extra.PREVIOUS_CONNECTION_STATE";
-    field public static final java.lang.String EXTRA_PREVIOUS_SCAN_MODE = "android.bluetooth.adapter.extra.PREVIOUS_SCAN_MODE";
-    field public static final java.lang.String EXTRA_PREVIOUS_STATE = "android.bluetooth.adapter.extra.PREVIOUS_STATE";
-    field public static final java.lang.String EXTRA_SCAN_MODE = "android.bluetooth.adapter.extra.SCAN_MODE";
-    field public static final java.lang.String EXTRA_STATE = "android.bluetooth.adapter.extra.STATE";
+    field public static final String EXTRA_CONNECTION_STATE = "android.bluetooth.adapter.extra.CONNECTION_STATE";
+    field public static final String EXTRA_DISCOVERABLE_DURATION = "android.bluetooth.adapter.extra.DISCOVERABLE_DURATION";
+    field public static final String EXTRA_LOCAL_NAME = "android.bluetooth.adapter.extra.LOCAL_NAME";
+    field public static final String EXTRA_PREVIOUS_CONNECTION_STATE = "android.bluetooth.adapter.extra.PREVIOUS_CONNECTION_STATE";
+    field public static final String EXTRA_PREVIOUS_SCAN_MODE = "android.bluetooth.adapter.extra.PREVIOUS_SCAN_MODE";
+    field public static final String EXTRA_PREVIOUS_STATE = "android.bluetooth.adapter.extra.PREVIOUS_STATE";
+    field public static final String EXTRA_SCAN_MODE = "android.bluetooth.adapter.extra.SCAN_MODE";
+    field public static final String EXTRA_STATE = "android.bluetooth.adapter.extra.STATE";
     field public static final int SCAN_MODE_CONNECTABLE = 21; // 0x15
     field public static final int SCAN_MODE_CONNECTABLE_DISCOVERABLE = 23; // 0x17
     field public static final int SCAN_MODE_NONE = 20; // 0x14
@@ -7963,8 +7969,8 @@
     field public static final int STATE_TURNING_ON = 11; // 0xb
   }
 
-  public static abstract interface BluetoothAdapter.LeScanCallback {
-    method public abstract void onLeScan(android.bluetooth.BluetoothDevice, int, byte[]);
+  public static interface BluetoothAdapter.LeScanCallback {
+    method public void onLeScan(android.bluetooth.BluetoothDevice, int, byte[]);
   }
 
   public class BluetoothAssignedNumbers {
@@ -8293,31 +8299,31 @@
     method public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback, int);
     method public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback, int, int);
     method public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback, int, int, android.os.Handler);
-    method public boolean createBond();
-    method public android.bluetooth.BluetoothSocket createInsecureL2capChannel(int) throws java.io.IOException;
-    method public android.bluetooth.BluetoothSocket createInsecureRfcommSocketToServiceRecord(java.util.UUID) throws java.io.IOException;
-    method public android.bluetooth.BluetoothSocket createL2capChannel(int) throws java.io.IOException;
-    method public android.bluetooth.BluetoothSocket createRfcommSocketToServiceRecord(java.util.UUID) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean createBond();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothSocket createInsecureL2capChannel(int) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothSocket createInsecureRfcommSocketToServiceRecord(java.util.UUID) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothSocket createL2capChannel(int) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothSocket createRfcommSocketToServiceRecord(java.util.UUID) throws java.io.IOException;
     method public int describeContents();
-    method public boolean fetchUuidsWithSdp();
-    method public java.lang.String getAddress();
-    method public android.bluetooth.BluetoothClass getBluetoothClass();
-    method public int getBondState();
-    method public java.lang.String getName();
-    method public int getType();
-    method public android.os.ParcelUuid[] getUuids();
-    method public boolean setPairingConfirmation(boolean);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean fetchUuidsWithSdp();
+    method public String getAddress();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothClass getBluetoothClass();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getBondState();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public String getName();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getType();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.os.ParcelUuid[] getUuids();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setPairingConfirmation(boolean);
     method public boolean setPin(byte[]);
     method public void writeToParcel(android.os.Parcel, int);
-    field public static final java.lang.String ACTION_ACL_CONNECTED = "android.bluetooth.device.action.ACL_CONNECTED";
-    field public static final java.lang.String ACTION_ACL_DISCONNECTED = "android.bluetooth.device.action.ACL_DISCONNECTED";
-    field public static final java.lang.String ACTION_ACL_DISCONNECT_REQUESTED = "android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED";
-    field public static final java.lang.String ACTION_BOND_STATE_CHANGED = "android.bluetooth.device.action.BOND_STATE_CHANGED";
-    field public static final java.lang.String ACTION_CLASS_CHANGED = "android.bluetooth.device.action.CLASS_CHANGED";
-    field public static final java.lang.String ACTION_FOUND = "android.bluetooth.device.action.FOUND";
-    field public static final java.lang.String ACTION_NAME_CHANGED = "android.bluetooth.device.action.NAME_CHANGED";
-    field public static final java.lang.String ACTION_PAIRING_REQUEST = "android.bluetooth.device.action.PAIRING_REQUEST";
-    field public static final java.lang.String ACTION_UUID = "android.bluetooth.device.action.UUID";
+    field public static final String ACTION_ACL_CONNECTED = "android.bluetooth.device.action.ACL_CONNECTED";
+    field public static final String ACTION_ACL_DISCONNECTED = "android.bluetooth.device.action.ACL_DISCONNECTED";
+    field public static final String ACTION_ACL_DISCONNECT_REQUESTED = "android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED";
+    field public static final String ACTION_BOND_STATE_CHANGED = "android.bluetooth.device.action.BOND_STATE_CHANGED";
+    field public static final String ACTION_CLASS_CHANGED = "android.bluetooth.device.action.CLASS_CHANGED";
+    field public static final String ACTION_FOUND = "android.bluetooth.device.action.FOUND";
+    field public static final String ACTION_NAME_CHANGED = "android.bluetooth.device.action.NAME_CHANGED";
+    field public static final String ACTION_PAIRING_REQUEST = "android.bluetooth.device.action.PAIRING_REQUEST";
+    field public static final String ACTION_UUID = "android.bluetooth.device.action.UUID";
     field public static final int BOND_BONDED = 12; // 0xc
     field public static final int BOND_BONDING = 11; // 0xb
     field public static final int BOND_NONE = 10; // 0xa
@@ -8327,15 +8333,15 @@
     field public static final int DEVICE_TYPE_LE = 2; // 0x2
     field public static final int DEVICE_TYPE_UNKNOWN = 0; // 0x0
     field public static final int ERROR = -2147483648; // 0x80000000
-    field public static final java.lang.String EXTRA_BOND_STATE = "android.bluetooth.device.extra.BOND_STATE";
-    field public static final java.lang.String EXTRA_CLASS = "android.bluetooth.device.extra.CLASS";
-    field public static final java.lang.String EXTRA_DEVICE = "android.bluetooth.device.extra.DEVICE";
-    field public static final java.lang.String EXTRA_NAME = "android.bluetooth.device.extra.NAME";
-    field public static final java.lang.String EXTRA_PAIRING_KEY = "android.bluetooth.device.extra.PAIRING_KEY";
-    field public static final java.lang.String EXTRA_PAIRING_VARIANT = "android.bluetooth.device.extra.PAIRING_VARIANT";
-    field public static final java.lang.String EXTRA_PREVIOUS_BOND_STATE = "android.bluetooth.device.extra.PREVIOUS_BOND_STATE";
-    field public static final java.lang.String EXTRA_RSSI = "android.bluetooth.device.extra.RSSI";
-    field public static final java.lang.String EXTRA_UUID = "android.bluetooth.device.extra.UUID";
+    field public static final String EXTRA_BOND_STATE = "android.bluetooth.device.extra.BOND_STATE";
+    field public static final String EXTRA_CLASS = "android.bluetooth.device.extra.CLASS";
+    field public static final String EXTRA_DEVICE = "android.bluetooth.device.extra.DEVICE";
+    field public static final String EXTRA_NAME = "android.bluetooth.device.extra.NAME";
+    field public static final String EXTRA_PAIRING_KEY = "android.bluetooth.device.extra.PAIRING_KEY";
+    field public static final String EXTRA_PAIRING_VARIANT = "android.bluetooth.device.extra.PAIRING_VARIANT";
+    field public static final String EXTRA_PREVIOUS_BOND_STATE = "android.bluetooth.device.extra.PREVIOUS_BOND_STATE";
+    field public static final String EXTRA_RSSI = "android.bluetooth.device.extra.RSSI";
+    field public static final String EXTRA_UUID = "android.bluetooth.device.extra.UUID";
     field public static final int PAIRING_VARIANT_PASSKEY_CONFIRMATION = 2; // 0x2
     field public static final int PAIRING_VARIANT_PIN = 0; // 0x0
     field public static final int PHY_LE_1M = 1; // 0x1
@@ -8354,7 +8360,7 @@
 
   public final class BluetoothGatt implements android.bluetooth.BluetoothProfile {
     method public void abortReliableWrite();
-    method public deprecated void abortReliableWrite(android.bluetooth.BluetoothDevice);
+    method @Deprecated public void abortReliableWrite(android.bluetooth.BluetoothDevice);
     method public boolean beginReliableWrite();
     method public void close();
     method public boolean connect();
@@ -8414,20 +8420,20 @@
     method public int describeContents();
     method public android.bluetooth.BluetoothGattDescriptor getDescriptor(java.util.UUID);
     method public java.util.List<android.bluetooth.BluetoothGattDescriptor> getDescriptors();
-    method public java.lang.Float getFloatValue(int, int);
+    method public Float getFloatValue(int, int);
     method public int getInstanceId();
-    method public java.lang.Integer getIntValue(int, int);
+    method public Integer getIntValue(int, int);
     method public int getPermissions();
     method public int getProperties();
     method public android.bluetooth.BluetoothGattService getService();
-    method public java.lang.String getStringValue(int);
+    method public String getStringValue(int);
     method public java.util.UUID getUuid();
     method public byte[] getValue();
     method public int getWriteType();
     method public boolean setValue(byte[]);
     method public boolean setValue(int, int, int);
     method public boolean setValue(int, int, int, int);
-    method public boolean setValue(java.lang.String);
+    method public boolean setValue(String);
     method public void setWriteType(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothGattCharacteristic> CREATOR;
@@ -8541,65 +8547,65 @@
     method public int getConnectionState(android.bluetooth.BluetoothDevice);
     method public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
     method public boolean isAudioConnected(android.bluetooth.BluetoothDevice);
-    method public boolean sendVendorSpecificResultCode(android.bluetooth.BluetoothDevice, java.lang.String, java.lang.String);
+    method public boolean sendVendorSpecificResultCode(android.bluetooth.BluetoothDevice, String, String);
     method public boolean startVoiceRecognition(android.bluetooth.BluetoothDevice);
     method public boolean stopVoiceRecognition(android.bluetooth.BluetoothDevice);
-    field public static final java.lang.String ACTION_AUDIO_STATE_CHANGED = "android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED";
-    field public static final java.lang.String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED";
-    field public static final java.lang.String ACTION_VENDOR_SPECIFIC_HEADSET_EVENT = "android.bluetooth.headset.action.VENDOR_SPECIFIC_HEADSET_EVENT";
+    field public static final String ACTION_AUDIO_STATE_CHANGED = "android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED";
+    field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED";
+    field public static final String ACTION_VENDOR_SPECIFIC_HEADSET_EVENT = "android.bluetooth.headset.action.VENDOR_SPECIFIC_HEADSET_EVENT";
     field public static final int AT_CMD_TYPE_ACTION = 4; // 0x4
     field public static final int AT_CMD_TYPE_BASIC = 3; // 0x3
     field public static final int AT_CMD_TYPE_READ = 0; // 0x0
     field public static final int AT_CMD_TYPE_SET = 2; // 0x2
     field public static final int AT_CMD_TYPE_TEST = 1; // 0x1
-    field public static final java.lang.String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_ARGS";
-    field public static final java.lang.String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD";
-    field public static final java.lang.String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE";
+    field public static final String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_ARGS";
+    field public static final String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD";
+    field public static final String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE";
     field public static final int STATE_AUDIO_CONNECTED = 12; // 0xc
     field public static final int STATE_AUDIO_CONNECTING = 11; // 0xb
     field public static final int STATE_AUDIO_DISCONNECTED = 10; // 0xa
-    field public static final java.lang.String VENDOR_RESULT_CODE_COMMAND_ANDROID = "+ANDROID";
-    field public static final java.lang.String VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY = "android.bluetooth.headset.intent.category.companyid";
+    field public static final String VENDOR_RESULT_CODE_COMMAND_ANDROID = "+ANDROID";
+    field public static final String VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY = "android.bluetooth.headset.intent.category.companyid";
   }
 
-  public final deprecated class BluetoothHealth implements android.bluetooth.BluetoothProfile {
-    ctor public BluetoothHealth();
-    method public deprecated boolean connectChannelToSource(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration);
-    method public deprecated boolean disconnectChannel(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration, int);
-    method public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
-    method public int getConnectionState(android.bluetooth.BluetoothDevice);
-    method public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
-    method public deprecated android.os.ParcelFileDescriptor getMainChannelFd(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration);
-    method public deprecated boolean registerSinkAppConfiguration(java.lang.String, int, android.bluetooth.BluetoothHealthCallback);
-    method public deprecated boolean unregisterAppConfiguration(android.bluetooth.BluetoothHealthAppConfiguration);
-    field public static final deprecated int APP_CONFIG_REGISTRATION_FAILURE = 1; // 0x1
-    field public static final deprecated int APP_CONFIG_REGISTRATION_SUCCESS = 0; // 0x0
-    field public static final deprecated int APP_CONFIG_UNREGISTRATION_FAILURE = 3; // 0x3
-    field public static final deprecated int APP_CONFIG_UNREGISTRATION_SUCCESS = 2; // 0x2
-    field public static final deprecated int CHANNEL_TYPE_RELIABLE = 10; // 0xa
-    field public static final deprecated int CHANNEL_TYPE_STREAMING = 11; // 0xb
-    field public static final deprecated int SINK_ROLE = 2; // 0x2
-    field public static final deprecated int SOURCE_ROLE = 1; // 0x1
-    field public static final deprecated int STATE_CHANNEL_CONNECTED = 2; // 0x2
-    field public static final deprecated int STATE_CHANNEL_CONNECTING = 1; // 0x1
-    field public static final deprecated int STATE_CHANNEL_DISCONNECTED = 0; // 0x0
-    field public static final deprecated int STATE_CHANNEL_DISCONNECTING = 3; // 0x3
+  @Deprecated public final class BluetoothHealth implements android.bluetooth.BluetoothProfile {
+    ctor @Deprecated public BluetoothHealth();
+    method @Deprecated public boolean connectChannelToSource(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration);
+    method @Deprecated public boolean disconnectChannel(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration, int);
+    method @Deprecated public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
+    method @Deprecated public int getConnectionState(android.bluetooth.BluetoothDevice);
+    method @Deprecated public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
+    method @Deprecated public android.os.ParcelFileDescriptor getMainChannelFd(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration);
+    method @Deprecated public boolean registerSinkAppConfiguration(String, int, android.bluetooth.BluetoothHealthCallback);
+    method @Deprecated public boolean unregisterAppConfiguration(android.bluetooth.BluetoothHealthAppConfiguration);
+    field @Deprecated public static final int APP_CONFIG_REGISTRATION_FAILURE = 1; // 0x1
+    field @Deprecated public static final int APP_CONFIG_REGISTRATION_SUCCESS = 0; // 0x0
+    field @Deprecated public static final int APP_CONFIG_UNREGISTRATION_FAILURE = 3; // 0x3
+    field @Deprecated public static final int APP_CONFIG_UNREGISTRATION_SUCCESS = 2; // 0x2
+    field @Deprecated public static final int CHANNEL_TYPE_RELIABLE = 10; // 0xa
+    field @Deprecated public static final int CHANNEL_TYPE_STREAMING = 11; // 0xb
+    field @Deprecated public static final int SINK_ROLE = 2; // 0x2
+    field @Deprecated public static final int SOURCE_ROLE = 1; // 0x1
+    field @Deprecated public static final int STATE_CHANNEL_CONNECTED = 2; // 0x2
+    field @Deprecated public static final int STATE_CHANNEL_CONNECTING = 1; // 0x1
+    field @Deprecated public static final int STATE_CHANNEL_DISCONNECTED = 0; // 0x0
+    field @Deprecated public static final int STATE_CHANNEL_DISCONNECTING = 3; // 0x3
   }
 
-  public final deprecated class BluetoothHealthAppConfiguration implements android.os.Parcelable {
-    ctor public BluetoothHealthAppConfiguration();
-    method public int describeContents();
-    method public deprecated int getDataType();
-    method public deprecated java.lang.String getName();
-    method public deprecated int getRole();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final deprecated android.os.Parcelable.Creator<android.bluetooth.BluetoothHealthAppConfiguration> CREATOR;
+  @Deprecated public final class BluetoothHealthAppConfiguration implements android.os.Parcelable {
+    ctor @Deprecated public BluetoothHealthAppConfiguration();
+    method @Deprecated public int describeContents();
+    method @Deprecated public int getDataType();
+    method @Deprecated public String getName();
+    method @Deprecated public int getRole();
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHealthAppConfiguration> CREATOR;
   }
 
-  public abstract deprecated class BluetoothHealthCallback {
-    ctor public BluetoothHealthCallback();
-    method public deprecated void onHealthAppConfigurationStatusChange(android.bluetooth.BluetoothHealthAppConfiguration, int);
-    method public deprecated void onHealthChannelStateChange(android.bluetooth.BluetoothHealthAppConfiguration, android.bluetooth.BluetoothDevice, int, int, android.os.ParcelFileDescriptor, int);
+  @Deprecated public abstract class BluetoothHealthCallback {
+    ctor @Deprecated public BluetoothHealthCallback();
+    method @Deprecated @BinderThread public void onHealthAppConfigurationStatusChange(android.bluetooth.BluetoothHealthAppConfiguration, int);
+    method @Deprecated @BinderThread public void onHealthChannelStateChange(android.bluetooth.BluetoothHealthAppConfiguration, android.bluetooth.BluetoothDevice, int, int, android.os.ParcelFileDescriptor, int);
   }
 
   public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile {
@@ -8613,7 +8619,7 @@
     method public boolean reportError(android.bluetooth.BluetoothDevice, byte);
     method public boolean sendReport(android.bluetooth.BluetoothDevice, int, byte[]);
     method public boolean unregisterApp();
-    field public static final java.lang.String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.hiddevice.profile.action.CONNECTION_STATE_CHANGED";
+    field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.hiddevice.profile.action.CONNECTION_STATE_CHANGED";
     field public static final byte ERROR_RSP_INVALID_PARAM = 4; // 0x4
     field public static final byte ERROR_RSP_INVALID_RPT_ID = 2; // 0x2
     field public static final byte ERROR_RSP_NOT_READY = 1; // 0x1
@@ -8638,7 +8644,7 @@
     field public static final byte SUBCLASS2_UNCATEGORIZED = 0; // 0x0
   }
 
-  public static abstract class BluetoothHidDevice.Callback {
+  public abstract static class BluetoothHidDevice.Callback {
     ctor public BluetoothHidDevice.Callback();
     method public void onAppStatusChanged(android.bluetooth.BluetoothDevice, boolean);
     method public void onConnectionStateChanged(android.bluetooth.BluetoothDevice, int);
@@ -8667,12 +8673,12 @@
   }
 
   public final class BluetoothHidDeviceAppSdpSettings implements android.os.Parcelable {
-    ctor public BluetoothHidDeviceAppSdpSettings(java.lang.String, java.lang.String, java.lang.String, byte, byte[]);
+    ctor public BluetoothHidDeviceAppSdpSettings(String, String, String, byte, byte[]);
     method public int describeContents();
-    method public java.lang.String getDescription();
+    method public String getDescription();
     method public byte[] getDescriptors();
-    method public java.lang.String getName();
-    method public java.lang.String getProvider();
+    method public String getName();
+    method public String getProvider();
     method public byte getSubclass();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHidDeviceAppSdpSettings> CREATOR;
@@ -8680,23 +8686,23 @@
 
   public final class BluetoothManager {
     method public android.bluetooth.BluetoothAdapter getAdapter();
-    method public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(int);
-    method public int getConnectionState(android.bluetooth.BluetoothDevice, int);
-    method public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int, int[]);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionState(android.bluetooth.BluetoothDevice, int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int, int[]);
     method public android.bluetooth.BluetoothGattServer openGattServer(android.content.Context, android.bluetooth.BluetoothGattServerCallback);
   }
 
-  public abstract interface BluetoothProfile {
-    method public abstract java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
-    method public abstract int getConnectionState(android.bluetooth.BluetoothDevice);
-    method public abstract java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
+  public interface BluetoothProfile {
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionState(android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
     field public static final int A2DP = 2; // 0x2
-    field public static final java.lang.String EXTRA_PREVIOUS_STATE = "android.bluetooth.profile.extra.PREVIOUS_STATE";
-    field public static final java.lang.String EXTRA_STATE = "android.bluetooth.profile.extra.STATE";
+    field public static final String EXTRA_PREVIOUS_STATE = "android.bluetooth.profile.extra.PREVIOUS_STATE";
+    field public static final String EXTRA_STATE = "android.bluetooth.profile.extra.STATE";
     field public static final int GATT = 7; // 0x7
     field public static final int GATT_SERVER = 8; // 0x8
     field public static final int HEADSET = 1; // 0x1
-    field public static final deprecated int HEALTH = 3; // 0x3
+    field @Deprecated public static final int HEALTH = 3; // 0x3
     field public static final int HID_DEVICE = 19; // 0x13
     field public static final int SAP = 10; // 0xa
     field public static final int STATE_CONNECTED = 2; // 0x2
@@ -8705,9 +8711,9 @@
     field public static final int STATE_DISCONNECTING = 3; // 0x3
   }
 
-  public static abstract interface BluetoothProfile.ServiceListener {
-    method public abstract void onServiceConnected(int, android.bluetooth.BluetoothProfile);
-    method public abstract void onServiceDisconnected(int);
+  public static interface BluetoothProfile.ServiceListener {
+    method public void onServiceConnected(int, android.bluetooth.BluetoothProfile);
+    method public void onServiceDisconnected(int);
   }
 
   public final class BluetoothServerSocket implements java.io.Closeable {
@@ -8752,7 +8758,7 @@
     method public boolean getIncludeDeviceName();
     method public boolean getIncludeTxPowerLevel();
     method public android.util.SparseArray<byte[]> getManufacturerSpecificData();
-    method public java.util.Map<android.os.ParcelUuid, byte[]> getServiceData();
+    method public java.util.Map<android.os.ParcelUuid,byte[]> getServiceData();
     method public java.util.List<android.os.ParcelUuid> getServiceUuids();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.bluetooth.le.AdvertiseData> CREATOR;
@@ -8876,14 +8882,14 @@
 
   public final class BluetoothLeScanner {
     method public void flushPendingScanResults(android.bluetooth.le.ScanCallback);
-    method public void startScan(android.bluetooth.le.ScanCallback);
-    method public void startScan(java.util.List<android.bluetooth.le.ScanFilter>, android.bluetooth.le.ScanSettings, android.bluetooth.le.ScanCallback);
-    method public int startScan(java.util.List<android.bluetooth.le.ScanFilter>, android.bluetooth.le.ScanSettings, android.app.PendingIntent);
-    method public void stopScan(android.bluetooth.le.ScanCallback);
-    method public void stopScan(android.app.PendingIntent);
-    field public static final java.lang.String EXTRA_CALLBACK_TYPE = "android.bluetooth.le.extra.CALLBACK_TYPE";
-    field public static final java.lang.String EXTRA_ERROR_CODE = "android.bluetooth.le.extra.ERROR_CODE";
-    field public static final java.lang.String EXTRA_LIST_SCAN_RESULT = "android.bluetooth.le.extra.LIST_SCAN_RESULT";
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public void startScan(android.bluetooth.le.ScanCallback);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public void startScan(java.util.List<android.bluetooth.le.ScanFilter>, android.bluetooth.le.ScanSettings, android.bluetooth.le.ScanCallback);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int startScan(@Nullable java.util.List<android.bluetooth.le.ScanFilter>, @Nullable android.bluetooth.le.ScanSettings, @NonNull android.app.PendingIntent);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public void stopScan(android.bluetooth.le.ScanCallback);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public void stopScan(android.app.PendingIntent);
+    field public static final String EXTRA_CALLBACK_TYPE = "android.bluetooth.le.extra.CALLBACK_TYPE";
+    field public static final String EXTRA_ERROR_CODE = "android.bluetooth.le.extra.ERROR_CODE";
+    field public static final String EXTRA_LIST_SCAN_RESULT = "android.bluetooth.le.extra.LIST_SCAN_RESULT";
   }
 
   public final class PeriodicAdvertisingParameters implements android.os.Parcelable {
@@ -8914,18 +8920,18 @@
 
   public final class ScanFilter implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getDeviceAddress();
-    method public java.lang.String getDeviceName();
-    method public byte[] getManufacturerData();
-    method public byte[] getManufacturerDataMask();
+    method @Nullable public String getDeviceAddress();
+    method @Nullable public String getDeviceName();
+    method @Nullable public byte[] getManufacturerData();
+    method @Nullable public byte[] getManufacturerDataMask();
     method public int getManufacturerId();
-    method public byte[] getServiceData();
-    method public byte[] getServiceDataMask();
-    method public android.os.ParcelUuid getServiceDataUuid();
-    method public android.os.ParcelUuid getServiceSolicitationUuid();
-    method public android.os.ParcelUuid getServiceSolicitationUuidMask();
-    method public android.os.ParcelUuid getServiceUuid();
-    method public android.os.ParcelUuid getServiceUuidMask();
+    method @Nullable public byte[] getServiceData();
+    method @Nullable public byte[] getServiceDataMask();
+    method @Nullable public android.os.ParcelUuid getServiceDataUuid();
+    method @Nullable public android.os.ParcelUuid getServiceSolicitationUuid();
+    method @Nullable public android.os.ParcelUuid getServiceSolicitationUuidMask();
+    method @Nullable public android.os.ParcelUuid getServiceUuid();
+    method @Nullable public android.os.ParcelUuid getServiceUuidMask();
     method public boolean matches(android.bluetooth.le.ScanResult);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.bluetooth.le.ScanFilter> CREATOR;
@@ -8934,8 +8940,8 @@
   public static final class ScanFilter.Builder {
     ctor public ScanFilter.Builder();
     method public android.bluetooth.le.ScanFilter build();
-    method public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(java.lang.String);
-    method public android.bluetooth.le.ScanFilter.Builder setDeviceName(java.lang.String);
+    method public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(String);
+    method public android.bluetooth.le.ScanFilter.Builder setDeviceName(String);
     method public android.bluetooth.le.ScanFilter.Builder setManufacturerData(int, byte[]);
     method public android.bluetooth.le.ScanFilter.Builder setManufacturerData(int, byte[], byte[]);
     method public android.bluetooth.le.ScanFilter.Builder setServiceData(android.os.ParcelUuid, byte[]);
@@ -8949,18 +8955,18 @@
   public final class ScanRecord {
     method public int getAdvertiseFlags();
     method public byte[] getBytes();
-    method public java.lang.String getDeviceName();
+    method @Nullable public String getDeviceName();
     method public android.util.SparseArray<byte[]> getManufacturerSpecificData();
-    method public byte[] getManufacturerSpecificData(int);
-    method public java.util.Map<android.os.ParcelUuid, byte[]> getServiceData();
-    method public byte[] getServiceData(android.os.ParcelUuid);
-    method public java.util.List<android.os.ParcelUuid> getServiceSolicitationUuids();
+    method @Nullable public byte[] getManufacturerSpecificData(int);
+    method public java.util.Map<android.os.ParcelUuid,byte[]> getServiceData();
+    method @Nullable public byte[] getServiceData(android.os.ParcelUuid);
+    method @Nullable public java.util.List<android.os.ParcelUuid> getServiceSolicitationUuids();
     method public java.util.List<android.os.ParcelUuid> getServiceUuids();
     method public int getTxPowerLevel();
   }
 
   public final class ScanResult implements android.os.Parcelable {
-    ctor public deprecated ScanResult(android.bluetooth.BluetoothDevice, android.bluetooth.le.ScanRecord, int, long);
+    ctor @Deprecated public ScanResult(android.bluetooth.BluetoothDevice, android.bluetooth.le.ScanRecord, int, long);
     ctor public ScanResult(android.bluetooth.BluetoothDevice, int, int, int, int, int, int, int, android.bluetooth.le.ScanRecord, long);
     method public int describeContents();
     method public int getAdvertisingSid();
@@ -8969,7 +8975,7 @@
     method public int getPeriodicAdvertisingInterval();
     method public int getPrimaryPhy();
     method public int getRssi();
-    method public android.bluetooth.le.ScanRecord getScanRecord();
+    method @Nullable public android.bluetooth.le.ScanRecord getScanRecord();
     method public int getSecondaryPhy();
     method public long getTimestampNanos();
     method public int getTxPower();
@@ -9034,12 +9040,12 @@
 
   public static final class AssociationRequest.Builder {
     ctor public AssociationRequest.Builder();
-    method public android.companion.AssociationRequest.Builder addDeviceFilter(android.companion.DeviceFilter<?>);
-    method public android.companion.AssociationRequest build();
-    method public android.companion.AssociationRequest.Builder setSingleDevice(boolean);
+    method @NonNull public android.companion.AssociationRequest.Builder addDeviceFilter(@Nullable android.companion.DeviceFilter<?>);
+    method @NonNull public android.companion.AssociationRequest build();
+    method @NonNull public android.companion.AssociationRequest.Builder setSingleDevice(boolean);
   }
 
-  public final class BluetoothDeviceFilter implements android.companion.DeviceFilter {
+  public final class BluetoothDeviceFilter implements android.companion.DeviceFilter<android.bluetooth.BluetoothDevice> {
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.companion.BluetoothDeviceFilter> CREATOR;
@@ -9047,13 +9053,13 @@
 
   public static final class BluetoothDeviceFilter.Builder {
     ctor public BluetoothDeviceFilter.Builder();
-    method public android.companion.BluetoothDeviceFilter.Builder addServiceUuid(android.os.ParcelUuid, android.os.ParcelUuid);
-    method public android.companion.BluetoothDeviceFilter build();
-    method public android.companion.BluetoothDeviceFilter.Builder setAddress(java.lang.String);
-    method public android.companion.BluetoothDeviceFilter.Builder setNamePattern(java.util.regex.Pattern);
+    method @NonNull public android.companion.BluetoothDeviceFilter.Builder addServiceUuid(@Nullable android.os.ParcelUuid, @Nullable android.os.ParcelUuid);
+    method @NonNull public android.companion.BluetoothDeviceFilter build();
+    method @NonNull public android.companion.BluetoothDeviceFilter.Builder setAddress(@Nullable String);
+    method public android.companion.BluetoothDeviceFilter.Builder setNamePattern(@Nullable java.util.regex.Pattern);
   }
 
-  public final class BluetoothLeDeviceFilter implements android.companion.DeviceFilter {
+  public final class BluetoothLeDeviceFilter implements android.companion.DeviceFilter<android.bluetooth.le.ScanResult> {
     method public int describeContents();
     method public static int getRenamePrefixLengthLimit();
     method public void writeToParcel(android.os.Parcel, int);
@@ -9062,33 +9068,33 @@
 
   public static final class BluetoothLeDeviceFilter.Builder {
     ctor public BluetoothLeDeviceFilter.Builder();
-    method public android.companion.BluetoothLeDeviceFilter build();
-    method public android.companion.BluetoothLeDeviceFilter.Builder setNamePattern(java.util.regex.Pattern);
-    method public android.companion.BluetoothLeDeviceFilter.Builder setRawDataFilter(byte[], byte[]);
-    method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromBytes(java.lang.String, java.lang.String, int, int, java.nio.ByteOrder);
-    method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromName(java.lang.String, java.lang.String, int, int);
-    method public android.companion.BluetoothLeDeviceFilter.Builder setScanFilter(android.bluetooth.le.ScanFilter);
+    method @NonNull public android.companion.BluetoothLeDeviceFilter build();
+    method public android.companion.BluetoothLeDeviceFilter.Builder setNamePattern(@Nullable java.util.regex.Pattern);
+    method @NonNull public android.companion.BluetoothLeDeviceFilter.Builder setRawDataFilter(@NonNull byte[], @Nullable byte[]);
+    method @NonNull public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromBytes(@NonNull String, @NonNull String, int, int, java.nio.ByteOrder);
+    method @NonNull public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromName(@NonNull String, @NonNull String, int, int);
+    method @NonNull public android.companion.BluetoothLeDeviceFilter.Builder setScanFilter(@Nullable android.bluetooth.le.ScanFilter);
   }
 
   public final class CompanionDeviceManager {
-    method public void associate(android.companion.AssociationRequest, android.companion.CompanionDeviceManager.Callback, android.os.Handler);
-    method public void disassociate(java.lang.String);
-    method public java.util.List<java.lang.String> getAssociations();
+    method public void associate(@NonNull android.companion.AssociationRequest, @NonNull android.companion.CompanionDeviceManager.Callback, @Nullable android.os.Handler);
+    method public void disassociate(@NonNull String);
+    method @NonNull public java.util.List<java.lang.String> getAssociations();
     method public boolean hasNotificationAccess(android.content.ComponentName);
     method public void requestNotificationAccess(android.content.ComponentName);
-    field public static final java.lang.String EXTRA_DEVICE = "android.companion.extra.DEVICE";
+    field public static final String EXTRA_DEVICE = "android.companion.extra.DEVICE";
   }
 
-  public static abstract class CompanionDeviceManager.Callback {
+  public abstract static class CompanionDeviceManager.Callback {
     ctor public CompanionDeviceManager.Callback();
     method public abstract void onDeviceFound(android.content.IntentSender);
-    method public abstract void onFailure(java.lang.CharSequence);
+    method public abstract void onFailure(CharSequence);
   }
 
-  public abstract interface DeviceFilter<D extends android.os.Parcelable> implements android.os.Parcelable {
+  public interface DeviceFilter<D extends android.os.Parcelable> extends android.os.Parcelable {
   }
 
-  public final class WifiDeviceFilter implements android.companion.DeviceFilter {
+  public final class WifiDeviceFilter implements android.companion.DeviceFilter<android.net.wifi.ScanResult> {
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.companion.WifiDeviceFilter> CREATOR;
@@ -9096,8 +9102,8 @@
 
   public static final class WifiDeviceFilter.Builder {
     ctor public WifiDeviceFilter.Builder();
-    method public android.companion.WifiDeviceFilter build();
-    method public android.companion.WifiDeviceFilter.Builder setNamePattern(java.util.regex.Pattern);
+    method @NonNull public android.companion.WifiDeviceFilter build();
+    method public android.companion.WifiDeviceFilter.Builder setNamePattern(@Nullable java.util.regex.Pattern);
   }
 
 }
@@ -9109,42 +9115,42 @@
     ctor public AbstractThreadedSyncAdapter(android.content.Context, boolean, boolean);
     method public android.content.Context getContext();
     method public final android.os.IBinder getSyncAdapterBinder();
-    method public abstract void onPerformSync(android.accounts.Account, android.os.Bundle, java.lang.String, android.content.ContentProviderClient, android.content.SyncResult);
-    method public void onSecurityException(android.accounts.Account, android.os.Bundle, java.lang.String, android.content.SyncResult);
+    method public abstract void onPerformSync(android.accounts.Account, android.os.Bundle, String, android.content.ContentProviderClient, android.content.SyncResult);
+    method public void onSecurityException(android.accounts.Account, android.os.Bundle, String, android.content.SyncResult);
     method public void onSyncCanceled();
-    method public void onSyncCanceled(java.lang.Thread);
-    method public boolean onUnsyncableAccount();
-    field public static final deprecated int LOG_SYNC_DETAILS = 2743; // 0xab7
+    method public void onSyncCanceled(Thread);
+    method @MainThread public boolean onUnsyncableAccount();
+    field @Deprecated public static final int LOG_SYNC_DETAILS = 2743; // 0xab7
   }
 
   public class ActivityNotFoundException extends java.lang.RuntimeException {
     ctor public ActivityNotFoundException();
-    ctor public ActivityNotFoundException(java.lang.String);
+    ctor public ActivityNotFoundException(String);
   }
 
   public abstract class AsyncQueryHandler extends android.os.Handler {
     ctor public AsyncQueryHandler(android.content.ContentResolver);
     method public final void cancelOperation(int);
     method protected android.os.Handler createHandler(android.os.Looper);
-    method protected void onDeleteComplete(int, java.lang.Object, int);
-    method protected void onInsertComplete(int, java.lang.Object, android.net.Uri);
-    method protected void onQueryComplete(int, java.lang.Object, android.database.Cursor);
-    method protected void onUpdateComplete(int, java.lang.Object, int);
-    method public final void startDelete(int, java.lang.Object, android.net.Uri, java.lang.String, java.lang.String[]);
-    method public final void startInsert(int, java.lang.Object, android.net.Uri, android.content.ContentValues);
-    method public void startQuery(int, java.lang.Object, android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public final void startUpdate(int, java.lang.Object, android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
+    method protected void onDeleteComplete(int, Object, int);
+    method protected void onInsertComplete(int, Object, android.net.Uri);
+    method protected void onQueryComplete(int, Object, android.database.Cursor);
+    method protected void onUpdateComplete(int, Object, int);
+    method public final void startDelete(int, Object, android.net.Uri, String, String[]);
+    method public final void startInsert(int, Object, android.net.Uri, android.content.ContentValues);
+    method public void startQuery(int, Object, android.net.Uri, String[], String, String[], String);
+    method public final void startUpdate(int, Object, android.net.Uri, android.content.ContentValues, String, String[]);
   }
 
   protected static final class AsyncQueryHandler.WorkerArgs {
     ctor protected AsyncQueryHandler.WorkerArgs();
-    field public java.lang.Object cookie;
+    field public Object cookie;
     field public android.os.Handler handler;
-    field public java.lang.String orderBy;
-    field public java.lang.String[] projection;
-    field public java.lang.Object result;
-    field public java.lang.String selection;
-    field public java.lang.String[] selectionArgs;
+    field public String orderBy;
+    field public String[] projection;
+    field public Object result;
+    field public String selection;
+    field public String[] selectionArgs;
     field public android.net.Uri uri;
     field public android.content.ContentValues values;
   }
@@ -9153,14 +9159,14 @@
     ctor public AsyncQueryHandler.WorkerHandler(android.os.Looper);
   }
 
-  public abstract deprecated class AsyncTaskLoader<D> extends android.content.Loader {
-    ctor public AsyncTaskLoader(android.content.Context);
-    method public void cancelLoadInBackground();
-    method public boolean isLoadInBackgroundCanceled();
-    method public abstract D loadInBackground();
-    method public void onCanceled(D);
-    method protected D onLoadInBackground();
-    method public void setUpdateThrottle(long);
+  @Deprecated public abstract class AsyncTaskLoader<D> extends android.content.Loader<D> {
+    ctor @Deprecated public AsyncTaskLoader(android.content.Context);
+    method @Deprecated public void cancelLoadInBackground();
+    method @Deprecated public boolean isLoadInBackgroundCanceled();
+    method @Deprecated public abstract D loadInBackground();
+    method @Deprecated public void onCanceled(D);
+    method @Deprecated protected D onLoadInBackground();
+    method @Deprecated public void setUpdateThrottle(long);
   }
 
   public abstract class BroadcastReceiver {
@@ -9170,7 +9176,7 @@
     method public final boolean getAbortBroadcast();
     method public final boolean getDebugUnregister();
     method public final int getResultCode();
-    method public final java.lang.String getResultData();
+    method public final String getResultData();
     method public final android.os.Bundle getResultExtras(boolean);
     method public final android.content.BroadcastReceiver.PendingResult goAsync();
     method public final boolean isInitialStickyBroadcast();
@@ -9179,9 +9185,9 @@
     method public android.os.IBinder peekService(android.content.Context, android.content.Intent);
     method public final void setDebugUnregister(boolean);
     method public final void setOrderedHint(boolean);
-    method public final void setResult(int, java.lang.String, android.os.Bundle);
+    method public final void setResult(int, String, android.os.Bundle);
     method public final void setResultCode(int);
-    method public final void setResultData(java.lang.String);
+    method public final void setResultData(String);
     method public final void setResultExtras(android.os.Bundle);
   }
 
@@ -9191,16 +9197,16 @@
     method public final void finish();
     method public final boolean getAbortBroadcast();
     method public final int getResultCode();
-    method public final java.lang.String getResultData();
+    method public final String getResultData();
     method public final android.os.Bundle getResultExtras(boolean);
-    method public final void setResult(int, java.lang.String, android.os.Bundle);
+    method public final void setResult(int, String, android.os.Bundle);
     method public final void setResultCode(int);
-    method public final void setResultData(java.lang.String);
+    method public final void setResultData(String);
     method public final void setResultExtras(android.os.Bundle);
   }
 
   public class ClipData implements android.os.Parcelable {
-    ctor public ClipData(java.lang.CharSequence, java.lang.String[], android.content.ClipData.Item);
+    ctor public ClipData(CharSequence, String[], android.content.ClipData.Item);
     ctor public ClipData(android.content.ClipDescription, android.content.ClipData.Item);
     ctor public ClipData(android.content.ClipData);
     method public void addItem(android.content.ClipData.Item);
@@ -9209,76 +9215,76 @@
     method public android.content.ClipDescription getDescription();
     method public android.content.ClipData.Item getItemAt(int);
     method public int getItemCount();
-    method public static android.content.ClipData newHtmlText(java.lang.CharSequence, java.lang.CharSequence, java.lang.String);
-    method public static android.content.ClipData newIntent(java.lang.CharSequence, android.content.Intent);
-    method public static android.content.ClipData newPlainText(java.lang.CharSequence, java.lang.CharSequence);
-    method public static android.content.ClipData newRawUri(java.lang.CharSequence, android.net.Uri);
-    method public static android.content.ClipData newUri(android.content.ContentResolver, java.lang.CharSequence, android.net.Uri);
+    method public static android.content.ClipData newHtmlText(CharSequence, CharSequence, String);
+    method public static android.content.ClipData newIntent(CharSequence, android.content.Intent);
+    method public static android.content.ClipData newPlainText(CharSequence, CharSequence);
+    method public static android.content.ClipData newRawUri(CharSequence, android.net.Uri);
+    method public static android.content.ClipData newUri(android.content.ContentResolver, CharSequence, android.net.Uri);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.ClipData> CREATOR;
   }
 
   public static class ClipData.Item {
-    ctor public ClipData.Item(java.lang.CharSequence);
-    ctor public ClipData.Item(java.lang.CharSequence, java.lang.String);
+    ctor public ClipData.Item(CharSequence);
+    ctor public ClipData.Item(CharSequence, String);
     ctor public ClipData.Item(android.content.Intent);
     ctor public ClipData.Item(android.net.Uri);
-    ctor public ClipData.Item(java.lang.CharSequence, android.content.Intent, android.net.Uri);
-    ctor public ClipData.Item(java.lang.CharSequence, java.lang.String, android.content.Intent, android.net.Uri);
-    method public java.lang.String coerceToHtmlText(android.content.Context);
-    method public java.lang.CharSequence coerceToStyledText(android.content.Context);
-    method public java.lang.CharSequence coerceToText(android.content.Context);
-    method public java.lang.String getHtmlText();
+    ctor public ClipData.Item(CharSequence, android.content.Intent, android.net.Uri);
+    ctor public ClipData.Item(CharSequence, String, android.content.Intent, android.net.Uri);
+    method public String coerceToHtmlText(android.content.Context);
+    method public CharSequence coerceToStyledText(android.content.Context);
+    method public CharSequence coerceToText(android.content.Context);
+    method public String getHtmlText();
     method public android.content.Intent getIntent();
-    method public java.lang.CharSequence getText();
+    method public CharSequence getText();
     method public android.net.Uri getUri();
   }
 
   public class ClipDescription implements android.os.Parcelable {
-    ctor public ClipDescription(java.lang.CharSequence, java.lang.String[]);
+    ctor public ClipDescription(CharSequence, String[]);
     ctor public ClipDescription(android.content.ClipDescription);
-    method public static boolean compareMimeTypes(java.lang.String, java.lang.String);
+    method public static boolean compareMimeTypes(String, String);
     method public int describeContents();
-    method public java.lang.String[] filterMimeTypes(java.lang.String);
+    method public String[] filterMimeTypes(String);
     method public android.os.PersistableBundle getExtras();
-    method public java.lang.CharSequence getLabel();
-    method public java.lang.String getMimeType(int);
+    method public CharSequence getLabel();
+    method public String getMimeType(int);
     method public int getMimeTypeCount();
     method public long getTimestamp();
-    method public boolean hasMimeType(java.lang.String);
+    method public boolean hasMimeType(String);
     method public void setExtras(android.os.PersistableBundle);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.ClipDescription> CREATOR;
-    field public static final java.lang.String MIMETYPE_TEXT_HTML = "text/html";
-    field public static final java.lang.String MIMETYPE_TEXT_INTENT = "text/vnd.android.intent";
-    field public static final java.lang.String MIMETYPE_TEXT_PLAIN = "text/plain";
-    field public static final java.lang.String MIMETYPE_TEXT_URILIST = "text/uri-list";
+    field public static final String MIMETYPE_TEXT_HTML = "text/html";
+    field public static final String MIMETYPE_TEXT_INTENT = "text/vnd.android.intent";
+    field public static final String MIMETYPE_TEXT_PLAIN = "text/plain";
+    field public static final String MIMETYPE_TEXT_URILIST = "text/uri-list";
   }
 
   public class ClipboardManager extends android.text.ClipboardManager {
     method public void addPrimaryClipChangedListener(android.content.ClipboardManager.OnPrimaryClipChangedListener);
     method public void clearPrimaryClip();
-    method public android.content.ClipData getPrimaryClip();
-    method public android.content.ClipDescription getPrimaryClipDescription();
-    method public deprecated java.lang.CharSequence getText();
+    method @Nullable public android.content.ClipData getPrimaryClip();
+    method @Nullable public android.content.ClipDescription getPrimaryClipDescription();
+    method @Deprecated public CharSequence getText();
     method public boolean hasPrimaryClip();
-    method public deprecated boolean hasText();
+    method @Deprecated public boolean hasText();
     method public void removePrimaryClipChangedListener(android.content.ClipboardManager.OnPrimaryClipChangedListener);
-    method public void setPrimaryClip(android.content.ClipData);
-    method public deprecated void setText(java.lang.CharSequence);
+    method public void setPrimaryClip(@NonNull android.content.ClipData);
+    method @Deprecated public void setText(CharSequence);
   }
 
-  public static abstract interface ClipboardManager.OnPrimaryClipChangedListener {
-    method public abstract void onPrimaryClipChanged();
+  public static interface ClipboardManager.OnPrimaryClipChangedListener {
+    method public void onPrimaryClipChanged();
   }
 
-  public abstract interface ComponentCallbacks {
-    method public abstract void onConfigurationChanged(android.content.res.Configuration);
-    method public abstract void onLowMemory();
+  public interface ComponentCallbacks {
+    method public void onConfigurationChanged(@NonNull android.content.res.Configuration);
+    method public void onLowMemory();
   }
 
-  public abstract interface ComponentCallbacks2 implements android.content.ComponentCallbacks {
-    method public abstract void onTrimMemory(int);
+  public interface ComponentCallbacks2 extends android.content.ComponentCallbacks {
+    method public void onTrimMemory(int);
     field public static final int TRIM_MEMORY_BACKGROUND = 40; // 0x28
     field public static final int TRIM_MEMORY_COMPLETE = 80; // 0x50
     field public static final int TRIM_MEMORY_MODERATE = 60; // 0x3c
@@ -9288,128 +9294,128 @@
     field public static final int TRIM_MEMORY_UI_HIDDEN = 20; // 0x14
   }
 
-  public final class ComponentName implements java.lang.Cloneable java.lang.Comparable android.os.Parcelable {
-    ctor public ComponentName(java.lang.String, java.lang.String);
-    ctor public ComponentName(android.content.Context, java.lang.String);
-    ctor public ComponentName(android.content.Context, java.lang.Class<?>);
+  public final class ComponentName implements java.lang.Cloneable java.lang.Comparable<android.content.ComponentName> android.os.Parcelable {
+    ctor public ComponentName(@NonNull String, @NonNull String);
+    ctor public ComponentName(@NonNull android.content.Context, @NonNull String);
+    ctor public ComponentName(@NonNull android.content.Context, @NonNull Class<?>);
     ctor public ComponentName(android.os.Parcel);
     method public android.content.ComponentName clone();
     method public int compareTo(android.content.ComponentName);
-    method public static android.content.ComponentName createRelative(java.lang.String, java.lang.String);
-    method public static android.content.ComponentName createRelative(android.content.Context, java.lang.String);
+    method @NonNull public static android.content.ComponentName createRelative(@NonNull String, @NonNull String);
+    method @NonNull public static android.content.ComponentName createRelative(@NonNull android.content.Context, @NonNull String);
     method public int describeContents();
-    method public java.lang.String flattenToShortString();
-    method public java.lang.String flattenToString();
-    method public java.lang.String getClassName();
-    method public java.lang.String getPackageName();
-    method public java.lang.String getShortClassName();
+    method @NonNull public String flattenToShortString();
+    method @NonNull public String flattenToString();
+    method @NonNull public String getClassName();
+    method @NonNull public String getPackageName();
+    method public String getShortClassName();
     method public static android.content.ComponentName readFromParcel(android.os.Parcel);
-    method public java.lang.String toShortString();
-    method public static android.content.ComponentName unflattenFromString(java.lang.String);
+    method public String toShortString();
+    method @Nullable public static android.content.ComponentName unflattenFromString(@NonNull String);
     method public void writeToParcel(android.os.Parcel, int);
     method public static void writeToParcel(android.content.ComponentName, android.os.Parcel);
     field public static final android.os.Parcelable.Creator<android.content.ComponentName> CREATOR;
   }
 
-  public abstract interface ContentInterface {
-    method public abstract android.content.ContentProviderResult[] applyBatch(java.lang.String, java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException, android.os.RemoteException;
-    method public abstract int bulkInsert(android.net.Uri, android.content.ContentValues[]) throws android.os.RemoteException;
-    method public abstract android.os.Bundle call(java.lang.String, java.lang.String, java.lang.String, android.os.Bundle) throws android.os.RemoteException;
-    method public abstract android.net.Uri canonicalize(android.net.Uri) throws android.os.RemoteException;
-    method public abstract int delete(android.net.Uri, java.lang.String, java.lang.String[]) throws android.os.RemoteException;
-    method public abstract java.lang.String[] getStreamTypes(android.net.Uri, java.lang.String) throws android.os.RemoteException;
-    method public abstract java.lang.String getType(android.net.Uri) throws android.os.RemoteException;
-    method public abstract android.net.Uri insert(android.net.Uri, android.content.ContentValues) throws android.os.RemoteException;
-    method public abstract android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
-    method public abstract android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
-    method public abstract android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
-    method public abstract android.database.Cursor query(android.net.Uri, java.lang.String[], android.os.Bundle, android.os.CancellationSignal) throws android.os.RemoteException;
-    method public abstract boolean refresh(android.net.Uri, android.os.Bundle, android.os.CancellationSignal) throws android.os.RemoteException;
-    method public abstract android.net.Uri uncanonicalize(android.net.Uri) throws android.os.RemoteException;
-    method public abstract int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]) throws android.os.RemoteException;
+  public interface ContentInterface {
+    method @NonNull public android.content.ContentProviderResult[] applyBatch(@NonNull String, @NonNull java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException, android.os.RemoteException;
+    method public int bulkInsert(@NonNull android.net.Uri, @NonNull android.content.ContentValues[]) throws android.os.RemoteException;
+    method @Nullable public android.os.Bundle call(@NonNull String, @NonNull String, @Nullable String, @Nullable android.os.Bundle) throws android.os.RemoteException;
+    method @Nullable public android.net.Uri canonicalize(@NonNull android.net.Uri) throws android.os.RemoteException;
+    method public int delete(@NonNull android.net.Uri, @Nullable String, @Nullable String[]) throws android.os.RemoteException;
+    method @Nullable public String[] getStreamTypes(@NonNull android.net.Uri, @NonNull String) throws android.os.RemoteException;
+    method @Nullable public String getType(@NonNull android.net.Uri) throws android.os.RemoteException;
+    method @Nullable public android.net.Uri insert(@NonNull android.net.Uri, @Nullable android.content.ContentValues) throws android.os.RemoteException;
+    method @Nullable public android.content.res.AssetFileDescriptor openAssetFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
+    method @Nullable public android.os.ParcelFileDescriptor openFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
+    method @Nullable public android.content.res.AssetFileDescriptor openTypedAssetFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
+    method @Nullable public android.database.Cursor query(@NonNull android.net.Uri, @Nullable String[], @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal) throws android.os.RemoteException;
+    method public boolean refresh(@NonNull android.net.Uri, @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal) throws android.os.RemoteException;
+    method @Nullable public android.net.Uri uncanonicalize(@NonNull android.net.Uri) throws android.os.RemoteException;
+    method public int update(@NonNull android.net.Uri, @Nullable android.content.ContentValues, @Nullable String, @Nullable String[]) throws android.os.RemoteException;
   }
 
   public abstract class ContentProvider implements android.content.ComponentCallbacks2 android.content.ContentInterface {
     ctor public ContentProvider();
-    method public android.content.ContentProviderResult[] applyBatch(java.lang.String, java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException;
-    method public android.content.ContentProviderResult[] applyBatch(java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException;
+    method @NonNull public android.content.ContentProviderResult[] applyBatch(@NonNull String, @NonNull java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException;
+    method @NonNull public android.content.ContentProviderResult[] applyBatch(@NonNull java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException;
     method public void attachInfo(android.content.Context, android.content.pm.ProviderInfo);
-    method public int bulkInsert(android.net.Uri, android.content.ContentValues[]);
-    method public android.os.Bundle call(java.lang.String, java.lang.String, java.lang.String, android.os.Bundle);
-    method public android.os.Bundle call(java.lang.String, java.lang.String, android.os.Bundle);
-    method public android.net.Uri canonicalize(android.net.Uri);
-    method public final android.content.ContentProvider.CallingIdentity clearCallingIdentity();
-    method public abstract int delete(android.net.Uri, java.lang.String, java.lang.String[]);
-    method public void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public final java.lang.String getCallingPackage();
-    method public final android.content.Context getContext();
-    method public final android.content.pm.PathPermission[] getPathPermissions();
-    method public final java.lang.String getReadPermission();
-    method public java.lang.String[] getStreamTypes(android.net.Uri, java.lang.String);
-    method public abstract java.lang.String getType(android.net.Uri);
-    method public final java.lang.String getWritePermission();
-    method public abstract android.net.Uri insert(android.net.Uri, android.content.ContentValues);
+    method public int bulkInsert(@NonNull android.net.Uri, @NonNull android.content.ContentValues[]);
+    method @Nullable public android.os.Bundle call(@NonNull String, @NonNull String, @Nullable String, @Nullable android.os.Bundle);
+    method @Nullable public android.os.Bundle call(@NonNull String, @Nullable String, @Nullable android.os.Bundle);
+    method @Nullable public android.net.Uri canonicalize(@NonNull android.net.Uri);
+    method @NonNull public final android.content.ContentProvider.CallingIdentity clearCallingIdentity();
+    method public abstract int delete(@NonNull android.net.Uri, @Nullable String, @Nullable String[]);
+    method public void dump(java.io.FileDescriptor, java.io.PrintWriter, String[]);
+    method @Nullable public final String getCallingPackage();
+    method @Nullable public final android.content.Context getContext();
+    method @Nullable public final android.content.pm.PathPermission[] getPathPermissions();
+    method @Nullable public final String getReadPermission();
+    method @Nullable public String[] getStreamTypes(@NonNull android.net.Uri, @NonNull String);
+    method @Nullable public abstract String getType(@NonNull android.net.Uri);
+    method @Nullable public final String getWritePermission();
+    method @Nullable public abstract android.net.Uri insert(@NonNull android.net.Uri, @Nullable android.content.ContentValues);
     method protected boolean isTemporary();
     method public void onConfigurationChanged(android.content.res.Configuration);
     method public abstract boolean onCreate();
     method public void onLowMemory();
     method public void onTrimMemory(int);
-    method public android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException;
-    method public android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException;
-    method public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method protected final android.os.ParcelFileDescriptor openFileHelper(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException;
-    method public <T> android.os.ParcelFileDescriptor openPipeHelper(android.net.Uri, java.lang.String, android.os.Bundle, T, android.content.ContentProvider.PipeDataWriter<T>) throws java.io.FileNotFoundException;
-    method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle) throws java.io.FileNotFoundException;
-    method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public abstract android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, android.os.CancellationSignal);
-    method public android.database.Cursor query(android.net.Uri, java.lang.String[], android.os.Bundle, android.os.CancellationSignal);
-    method public boolean refresh(android.net.Uri, android.os.Bundle, android.os.CancellationSignal);
-    method public final void restoreCallingIdentity(android.content.ContentProvider.CallingIdentity);
-    method protected final void setPathPermissions(android.content.pm.PathPermission[]);
-    method protected final void setReadPermission(java.lang.String);
-    method protected final void setWritePermission(java.lang.String);
+    method @Nullable public android.content.res.AssetFileDescriptor openAssetFile(@NonNull android.net.Uri, @NonNull String) throws java.io.FileNotFoundException;
+    method @Nullable public android.content.res.AssetFileDescriptor openAssetFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method @Nullable public android.os.ParcelFileDescriptor openFile(@NonNull android.net.Uri, @NonNull String) throws java.io.FileNotFoundException;
+    method @Nullable public android.os.ParcelFileDescriptor openFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method @NonNull protected final android.os.ParcelFileDescriptor openFileHelper(@NonNull android.net.Uri, @NonNull String) throws java.io.FileNotFoundException;
+    method @NonNull public <T> android.os.ParcelFileDescriptor openPipeHelper(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle, @Nullable T, @NonNull android.content.ContentProvider.PipeDataWriter<T>) throws java.io.FileNotFoundException;
+    method @Nullable public android.content.res.AssetFileDescriptor openTypedAssetFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle) throws java.io.FileNotFoundException;
+    method @Nullable public android.content.res.AssetFileDescriptor openTypedAssetFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method @Nullable public abstract android.database.Cursor query(@NonNull android.net.Uri, @Nullable String[], @Nullable String, @Nullable String[], @Nullable String);
+    method @Nullable public android.database.Cursor query(@NonNull android.net.Uri, @Nullable String[], @Nullable String, @Nullable String[], @Nullable String, @Nullable android.os.CancellationSignal);
+    method @Nullable public android.database.Cursor query(@NonNull android.net.Uri, @Nullable String[], @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal);
+    method public boolean refresh(android.net.Uri, @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal);
+    method public final void restoreCallingIdentity(@NonNull android.content.ContentProvider.CallingIdentity);
+    method protected final void setPathPermissions(@Nullable android.content.pm.PathPermission[]);
+    method protected final void setReadPermission(@Nullable String);
+    method protected final void setWritePermission(@Nullable String);
     method public void shutdown();
-    method public android.net.Uri uncanonicalize(android.net.Uri);
-    method public abstract int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
+    method @Nullable public android.net.Uri uncanonicalize(@NonNull android.net.Uri);
+    method public abstract int update(@NonNull android.net.Uri, @Nullable android.content.ContentValues, @Nullable String, @Nullable String[]);
   }
 
   public final class ContentProvider.CallingIdentity {
   }
 
-  public static abstract interface ContentProvider.PipeDataWriter<T> {
-    method public abstract void writeDataToPipe(android.os.ParcelFileDescriptor, android.net.Uri, java.lang.String, android.os.Bundle, T);
+  public static interface ContentProvider.PipeDataWriter<T> {
+    method public void writeDataToPipe(@NonNull android.os.ParcelFileDescriptor, @NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle, @Nullable T);
   }
 
   public class ContentProviderClient implements java.lang.AutoCloseable android.content.ContentInterface {
-    method public android.content.ContentProviderResult[] applyBatch(java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException, android.os.RemoteException;
-    method public android.content.ContentProviderResult[] applyBatch(java.lang.String, java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException, android.os.RemoteException;
-    method public int bulkInsert(android.net.Uri, android.content.ContentValues[]) throws android.os.RemoteException;
-    method public android.os.Bundle call(java.lang.String, java.lang.String, android.os.Bundle) throws android.os.RemoteException;
-    method public android.os.Bundle call(java.lang.String, java.lang.String, java.lang.String, android.os.Bundle) throws android.os.RemoteException;
-    method public final android.net.Uri canonicalize(android.net.Uri) throws android.os.RemoteException;
+    method @NonNull public android.content.ContentProviderResult[] applyBatch(@NonNull java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException, android.os.RemoteException;
+    method @NonNull public android.content.ContentProviderResult[] applyBatch(@NonNull String, @NonNull java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException, android.os.RemoteException;
+    method public int bulkInsert(@NonNull android.net.Uri, @NonNull android.content.ContentValues[]) throws android.os.RemoteException;
+    method @Nullable public android.os.Bundle call(@NonNull String, @Nullable String, @Nullable android.os.Bundle) throws android.os.RemoteException;
+    method @Nullable public android.os.Bundle call(@NonNull String, @NonNull String, @Nullable String, @Nullable android.os.Bundle) throws android.os.RemoteException;
+    method @Nullable public final android.net.Uri canonicalize(@NonNull android.net.Uri) throws android.os.RemoteException;
     method public void close();
     method public static void closeQuietly(android.content.ContentProviderClient);
-    method public int delete(android.net.Uri, java.lang.String, java.lang.String[]) throws android.os.RemoteException;
-    method public android.content.ContentProvider getLocalContentProvider();
-    method public java.lang.String[] getStreamTypes(android.net.Uri, java.lang.String) throws android.os.RemoteException;
-    method public java.lang.String getType(android.net.Uri) throws android.os.RemoteException;
-    method public android.net.Uri insert(android.net.Uri, android.content.ContentValues) throws android.os.RemoteException;
-    method public android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException, android.os.RemoteException;
-    method public android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
-    method public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException, android.os.RemoteException;
-    method public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
-    method public final android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
-    method public final android.content.res.AssetFileDescriptor openTypedAssetFileDescriptor(android.net.Uri, java.lang.String, android.os.Bundle) throws java.io.FileNotFoundException, android.os.RemoteException;
-    method public final android.content.res.AssetFileDescriptor openTypedAssetFileDescriptor(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
-    method public android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String) throws android.os.RemoteException;
-    method public android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, android.os.CancellationSignal) throws android.os.RemoteException;
-    method public android.database.Cursor query(android.net.Uri, java.lang.String[], android.os.Bundle, android.os.CancellationSignal) throws android.os.RemoteException;
-    method public boolean refresh(android.net.Uri, android.os.Bundle, android.os.CancellationSignal) throws android.os.RemoteException;
-    method public deprecated boolean release();
-    method public final android.net.Uri uncanonicalize(android.net.Uri) throws android.os.RemoteException;
-    method public int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]) throws android.os.RemoteException;
+    method public int delete(@NonNull android.net.Uri, @Nullable String, @Nullable String[]) throws android.os.RemoteException;
+    method @Nullable public android.content.ContentProvider getLocalContentProvider();
+    method @Nullable public String[] getStreamTypes(@NonNull android.net.Uri, @NonNull String) throws android.os.RemoteException;
+    method @Nullable public String getType(@NonNull android.net.Uri) throws android.os.RemoteException;
+    method @Nullable public android.net.Uri insert(@NonNull android.net.Uri, @Nullable android.content.ContentValues) throws android.os.RemoteException;
+    method @Nullable public android.content.res.AssetFileDescriptor openAssetFile(@NonNull android.net.Uri, @NonNull String) throws java.io.FileNotFoundException, android.os.RemoteException;
+    method @Nullable public android.content.res.AssetFileDescriptor openAssetFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
+    method @Nullable public android.os.ParcelFileDescriptor openFile(@NonNull android.net.Uri, @NonNull String) throws java.io.FileNotFoundException, android.os.RemoteException;
+    method @Nullable public android.os.ParcelFileDescriptor openFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
+    method @Nullable public final android.content.res.AssetFileDescriptor openTypedAssetFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
+    method @Nullable public final android.content.res.AssetFileDescriptor openTypedAssetFileDescriptor(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle) throws java.io.FileNotFoundException, android.os.RemoteException;
+    method @Nullable public final android.content.res.AssetFileDescriptor openTypedAssetFileDescriptor(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException, android.os.RemoteException;
+    method @Nullable public android.database.Cursor query(@NonNull android.net.Uri, @Nullable String[], @Nullable String, @Nullable String[], @Nullable String) throws android.os.RemoteException;
+    method @Nullable public android.database.Cursor query(@NonNull android.net.Uri, @Nullable String[], @Nullable String, @Nullable String[], @Nullable String, @Nullable android.os.CancellationSignal) throws android.os.RemoteException;
+    method @Nullable public android.database.Cursor query(@NonNull android.net.Uri, @Nullable String[], android.os.Bundle, @Nullable android.os.CancellationSignal) throws android.os.RemoteException;
+    method public boolean refresh(android.net.Uri, @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal) throws android.os.RemoteException;
+    method @Deprecated public boolean release();
+    method @Nullable public final android.net.Uri uncanonicalize(@NonNull android.net.Uri) throws android.os.RemoteException;
+    method public int update(@NonNull android.net.Uri, @Nullable android.content.ContentValues, @Nullable String, @Nullable String[]) throws android.os.RemoteException;
   }
 
   public class ContentProviderOperation implements android.os.Parcelable {
@@ -9427,7 +9433,7 @@
     method public static android.content.ContentProviderOperation.Builder newDelete(android.net.Uri);
     method public static android.content.ContentProviderOperation.Builder newInsert(android.net.Uri);
     method public static android.content.ContentProviderOperation.Builder newUpdate(android.net.Uri);
-    method public java.lang.String[] resolveSelectionArgsBackReferences(android.content.ContentProviderResult[], int);
+    method public String[] resolveSelectionArgsBackReferences(android.content.ContentProviderResult[], int);
     method public android.content.ContentValues resolveValueBackReferences(android.content.ContentProviderResult[], int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.ContentProviderOperation> CREATOR;
@@ -9436,10 +9442,10 @@
   public static class ContentProviderOperation.Builder {
     method public android.content.ContentProviderOperation build();
     method public android.content.ContentProviderOperation.Builder withExpectedCount(int);
-    method public android.content.ContentProviderOperation.Builder withSelection(java.lang.String, java.lang.String[]);
+    method public android.content.ContentProviderOperation.Builder withSelection(String, String[]);
     method public android.content.ContentProviderOperation.Builder withSelectionBackReference(int, int);
-    method public android.content.ContentProviderOperation.Builder withValue(java.lang.String, java.lang.Object);
-    method public android.content.ContentProviderOperation.Builder withValueBackReference(java.lang.String, int);
+    method public android.content.ContentProviderOperation.Builder withValue(String, Object);
+    method public android.content.ContentProviderOperation.Builder withValueBackReference(String, int);
     method public android.content.ContentProviderOperation.Builder withValueBackReferences(android.content.ContentValues);
     method public android.content.ContentProviderOperation.Builder withValues(android.content.ContentValues);
     method public android.content.ContentProviderOperation.Builder withYieldAllowed(boolean);
@@ -9452,121 +9458,121 @@
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.ContentProviderResult> CREATOR;
-    field public final java.lang.Integer count;
+    field public final Integer count;
     field public final android.net.Uri uri;
   }
 
   public class ContentQueryMap extends java.util.Observable {
-    ctor public ContentQueryMap(android.database.Cursor, java.lang.String, boolean, android.os.Handler);
-    method public synchronized void close();
-    method public synchronized java.util.Map<java.lang.String, android.content.ContentValues> getRows();
-    method public synchronized android.content.ContentValues getValues(java.lang.String);
+    ctor public ContentQueryMap(android.database.Cursor, String, boolean, android.os.Handler);
+    method public void close();
+    method public java.util.Map<java.lang.String,android.content.ContentValues> getRows();
+    method public android.content.ContentValues getValues(String);
     method public void requery();
     method public void setKeepUpdated(boolean);
   }
 
   public abstract class ContentResolver implements android.content.ContentInterface {
     ctor public ContentResolver(android.content.Context);
-    method public final android.content.ContentProviderClient acquireContentProviderClient(android.net.Uri);
-    method public final android.content.ContentProviderClient acquireContentProviderClient(java.lang.String);
-    method public final android.content.ContentProviderClient acquireUnstableContentProviderClient(android.net.Uri);
-    method public final android.content.ContentProviderClient acquireUnstableContentProviderClient(java.lang.String);
-    method public static void addPeriodicSync(android.accounts.Account, java.lang.String, android.os.Bundle, long);
-    method public static java.lang.Object addStatusChangeListener(int, android.content.SyncStatusObserver);
-    method public android.content.ContentProviderResult[] applyBatch(java.lang.String, java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException, android.os.RemoteException;
-    method public final int bulkInsert(android.net.Uri, android.content.ContentValues[]);
-    method public final android.os.Bundle call(android.net.Uri, java.lang.String, java.lang.String, android.os.Bundle);
-    method public final android.os.Bundle call(java.lang.String, java.lang.String, java.lang.String, android.os.Bundle);
-    method public deprecated void cancelSync(android.net.Uri);
-    method public static void cancelSync(android.accounts.Account, java.lang.String);
+    method @Nullable public final android.content.ContentProviderClient acquireContentProviderClient(@NonNull android.net.Uri);
+    method @Nullable public final android.content.ContentProviderClient acquireContentProviderClient(@NonNull String);
+    method @Nullable public final android.content.ContentProviderClient acquireUnstableContentProviderClient(@NonNull android.net.Uri);
+    method @Nullable public final android.content.ContentProviderClient acquireUnstableContentProviderClient(@NonNull String);
+    method public static void addPeriodicSync(android.accounts.Account, String, android.os.Bundle, long);
+    method public static Object addStatusChangeListener(int, android.content.SyncStatusObserver);
+    method @NonNull public android.content.ContentProviderResult[] applyBatch(@NonNull String, @NonNull java.util.ArrayList<android.content.ContentProviderOperation>) throws android.content.OperationApplicationException, android.os.RemoteException;
+    method public final int bulkInsert(@RequiresPermission.Write @NonNull android.net.Uri, @NonNull android.content.ContentValues[]);
+    method @Nullable public final android.os.Bundle call(@NonNull android.net.Uri, @NonNull String, @Nullable String, @Nullable android.os.Bundle);
+    method @Nullable public final android.os.Bundle call(@NonNull String, @NonNull String, @Nullable String, @Nullable android.os.Bundle);
+    method @Deprecated public void cancelSync(android.net.Uri);
+    method public static void cancelSync(android.accounts.Account, String);
     method public static void cancelSync(android.content.SyncRequest);
-    method public final android.net.Uri canonicalize(android.net.Uri);
-    method public final int delete(android.net.Uri, java.lang.String, java.lang.String[]);
+    method @Nullable public final android.net.Uri canonicalize(@NonNull android.net.Uri);
+    method public final int delete(@RequiresPermission.Write @NonNull android.net.Uri, @Nullable String, @Nullable String[]);
     method public android.os.Bundle getCache(android.net.Uri);
-    method public static deprecated android.content.SyncInfo getCurrentSync();
+    method @Deprecated public static android.content.SyncInfo getCurrentSync();
     method public static java.util.List<android.content.SyncInfo> getCurrentSyncs();
-    method public static int getIsSyncable(android.accounts.Account, java.lang.String);
+    method public static int getIsSyncable(android.accounts.Account, String);
     method public static boolean getMasterSyncAutomatically();
-    method public java.util.List<android.content.UriPermission> getOutgoingPersistedUriPermissions();
-    method public static java.util.List<android.content.PeriodicSync> getPeriodicSyncs(android.accounts.Account, java.lang.String);
-    method public java.util.List<android.content.UriPermission> getPersistedUriPermissions();
-    method public java.lang.String[] getStreamTypes(android.net.Uri, java.lang.String);
+    method @NonNull public java.util.List<android.content.UriPermission> getOutgoingPersistedUriPermissions();
+    method public static java.util.List<android.content.PeriodicSync> getPeriodicSyncs(android.accounts.Account, String);
+    method @NonNull public java.util.List<android.content.UriPermission> getPersistedUriPermissions();
+    method @Nullable public String[] getStreamTypes(@NonNull android.net.Uri, @NonNull String);
     method public static android.content.SyncAdapterType[] getSyncAdapterTypes();
-    method public static boolean getSyncAutomatically(android.accounts.Account, java.lang.String);
-    method public final java.lang.String getType(android.net.Uri);
-    method public final android.net.Uri insert(android.net.Uri, android.content.ContentValues);
-    method public static boolean isSyncActive(android.accounts.Account, java.lang.String);
-    method public static boolean isSyncPending(android.accounts.Account, java.lang.String);
-    method public android.graphics.Bitmap loadThumbnail(android.net.Uri, android.util.Size, android.os.CancellationSignal) throws java.io.IOException;
-    method public void notifyChange(android.net.Uri, android.database.ContentObserver);
-    method public void notifyChange(android.net.Uri, android.database.ContentObserver, boolean);
-    method public void notifyChange(android.net.Uri, android.database.ContentObserver, int);
-    method public final android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public final android.content.res.AssetFileDescriptor openAssetFileDescriptor(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException;
-    method public final android.content.res.AssetFileDescriptor openAssetFileDescriptor(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public final android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public final android.os.ParcelFileDescriptor openFileDescriptor(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException;
-    method public final android.os.ParcelFileDescriptor openFileDescriptor(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public final java.io.InputStream openInputStream(android.net.Uri) throws java.io.FileNotFoundException;
-    method public final java.io.OutputStream openOutputStream(android.net.Uri) throws java.io.FileNotFoundException;
-    method public final java.io.OutputStream openOutputStream(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException;
-    method public final android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public final android.content.res.AssetFileDescriptor openTypedAssetFileDescriptor(android.net.Uri, java.lang.String, android.os.Bundle) throws java.io.FileNotFoundException;
-    method public final android.content.res.AssetFileDescriptor openTypedAssetFileDescriptor(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method public static boolean getSyncAutomatically(android.accounts.Account, String);
+    method @Nullable public final String getType(@NonNull android.net.Uri);
+    method @Nullable public final android.net.Uri insert(@RequiresPermission.Write @NonNull android.net.Uri, @Nullable android.content.ContentValues);
+    method public static boolean isSyncActive(android.accounts.Account, String);
+    method public static boolean isSyncPending(android.accounts.Account, String);
+    method @NonNull public android.graphics.Bitmap loadThumbnail(@NonNull android.net.Uri, @NonNull android.util.Size, @Nullable android.os.CancellationSignal) throws java.io.IOException;
+    method public void notifyChange(@NonNull android.net.Uri, @Nullable android.database.ContentObserver);
+    method public void notifyChange(@NonNull android.net.Uri, @Nullable android.database.ContentObserver, boolean);
+    method public void notifyChange(@NonNull android.net.Uri, @Nullable android.database.ContentObserver, int);
+    method @Nullable public final android.content.res.AssetFileDescriptor openAssetFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method @Nullable public final android.content.res.AssetFileDescriptor openAssetFileDescriptor(@NonNull android.net.Uri, @NonNull String) throws java.io.FileNotFoundException;
+    method @Nullable public final android.content.res.AssetFileDescriptor openAssetFileDescriptor(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method @Nullable public final android.os.ParcelFileDescriptor openFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method @Nullable public final android.os.ParcelFileDescriptor openFileDescriptor(@NonNull android.net.Uri, @NonNull String) throws java.io.FileNotFoundException;
+    method @Nullable public final android.os.ParcelFileDescriptor openFileDescriptor(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method @Nullable public final java.io.InputStream openInputStream(@NonNull android.net.Uri) throws java.io.FileNotFoundException;
+    method @Nullable public final java.io.OutputStream openOutputStream(@NonNull android.net.Uri) throws java.io.FileNotFoundException;
+    method @Nullable public final java.io.OutputStream openOutputStream(@NonNull android.net.Uri, @NonNull String) throws java.io.FileNotFoundException;
+    method @Nullable public final android.content.res.AssetFileDescriptor openTypedAssetFile(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method @Nullable public final android.content.res.AssetFileDescriptor openTypedAssetFileDescriptor(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle) throws java.io.FileNotFoundException;
+    method @Nullable public final android.content.res.AssetFileDescriptor openTypedAssetFileDescriptor(@NonNull android.net.Uri, @NonNull String, @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
     method public void putCache(android.net.Uri, android.os.Bundle);
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, android.os.CancellationSignal);
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], android.os.Bundle, android.os.CancellationSignal);
-    method public final boolean refresh(android.net.Uri, android.os.Bundle, android.os.CancellationSignal);
-    method public final void registerContentObserver(android.net.Uri, boolean, android.database.ContentObserver);
-    method public void releasePersistableUriPermission(android.net.Uri, int);
-    method public static void removePeriodicSync(android.accounts.Account, java.lang.String, android.os.Bundle);
-    method public static void removeStatusChangeListener(java.lang.Object);
-    method public static void requestSync(android.accounts.Account, java.lang.String, android.os.Bundle);
+    method @Nullable public final android.database.Cursor query(@RequiresPermission.Read @NonNull android.net.Uri, @Nullable String[], @Nullable String, @Nullable String[], @Nullable String);
+    method @Nullable public final android.database.Cursor query(@RequiresPermission.Read @NonNull android.net.Uri, @Nullable String[], @Nullable String, @Nullable String[], @Nullable String, @Nullable android.os.CancellationSignal);
+    method @Nullable public final android.database.Cursor query(@RequiresPermission.Read @NonNull android.net.Uri, @Nullable String[], @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal);
+    method public final boolean refresh(@NonNull android.net.Uri, @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal);
+    method public final void registerContentObserver(@NonNull android.net.Uri, boolean, @NonNull android.database.ContentObserver);
+    method public void releasePersistableUriPermission(@NonNull android.net.Uri, int);
+    method public static void removePeriodicSync(android.accounts.Account, String, android.os.Bundle);
+    method public static void removeStatusChangeListener(Object);
+    method public static void requestSync(android.accounts.Account, String, android.os.Bundle);
     method public static void requestSync(android.content.SyncRequest);
-    method public static void setIsSyncable(android.accounts.Account, java.lang.String, int);
+    method public static void setIsSyncable(android.accounts.Account, String, int);
     method public static void setMasterSyncAutomatically(boolean);
-    method public static void setSyncAutomatically(android.accounts.Account, java.lang.String, boolean);
-    method public deprecated void startSync(android.net.Uri, android.os.Bundle);
-    method public void takePersistableUriPermission(android.net.Uri, int);
-    method public final android.net.Uri uncanonicalize(android.net.Uri);
-    method public final void unregisterContentObserver(android.database.ContentObserver);
-    method public final int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
+    method public static void setSyncAutomatically(android.accounts.Account, String, boolean);
+    method @Deprecated public void startSync(android.net.Uri, android.os.Bundle);
+    method public void takePersistableUriPermission(@NonNull android.net.Uri, int);
+    method @Nullable public final android.net.Uri uncanonicalize(@NonNull android.net.Uri);
+    method public final void unregisterContentObserver(@NonNull android.database.ContentObserver);
+    method public final int update(@RequiresPermission.Write @NonNull android.net.Uri, @Nullable android.content.ContentValues, @Nullable String, @Nullable String[]);
     method public static void validateSyncExtrasBundle(android.os.Bundle);
-    field public static final java.lang.String ANY_CURSOR_ITEM_TYPE = "vnd.android.cursor.item/*";
-    field public static final java.lang.String CURSOR_DIR_BASE_TYPE = "vnd.android.cursor.dir";
-    field public static final java.lang.String CURSOR_ITEM_BASE_TYPE = "vnd.android.cursor.item";
-    field public static final java.lang.String EXTRA_HONORED_ARGS = "android.content.extra.HONORED_ARGS";
-    field public static final java.lang.String EXTRA_REFRESH_SUPPORTED = "android.content.extra.REFRESH_SUPPORTED";
-    field public static final java.lang.String EXTRA_SIZE = "android.content.extra.SIZE";
-    field public static final java.lang.String EXTRA_TOTAL_COUNT = "android.content.extra.TOTAL_COUNT";
+    field public static final String ANY_CURSOR_ITEM_TYPE = "vnd.android.cursor.item/*";
+    field public static final String CURSOR_DIR_BASE_TYPE = "vnd.android.cursor.dir";
+    field public static final String CURSOR_ITEM_BASE_TYPE = "vnd.android.cursor.item";
+    field public static final String EXTRA_HONORED_ARGS = "android.content.extra.HONORED_ARGS";
+    field public static final String EXTRA_REFRESH_SUPPORTED = "android.content.extra.REFRESH_SUPPORTED";
+    field public static final String EXTRA_SIZE = "android.content.extra.SIZE";
+    field public static final String EXTRA_TOTAL_COUNT = "android.content.extra.TOTAL_COUNT";
     field public static final int NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS = 2; // 0x2
     field public static final int NOTIFY_SYNC_TO_NETWORK = 1; // 0x1
-    field public static final java.lang.String QUERY_ARG_LIMIT = "android:query-arg-limit";
-    field public static final java.lang.String QUERY_ARG_OFFSET = "android:query-arg-offset";
-    field public static final java.lang.String QUERY_ARG_SORT_COLLATION = "android:query-arg-sort-collation";
-    field public static final java.lang.String QUERY_ARG_SORT_COLUMNS = "android:query-arg-sort-columns";
-    field public static final java.lang.String QUERY_ARG_SORT_DIRECTION = "android:query-arg-sort-direction";
-    field public static final java.lang.String QUERY_ARG_SQL_SELECTION = "android:query-arg-sql-selection";
-    field public static final java.lang.String QUERY_ARG_SQL_SELECTION_ARGS = "android:query-arg-sql-selection-args";
-    field public static final java.lang.String QUERY_ARG_SQL_SORT_ORDER = "android:query-arg-sql-sort-order";
+    field public static final String QUERY_ARG_LIMIT = "android:query-arg-limit";
+    field public static final String QUERY_ARG_OFFSET = "android:query-arg-offset";
+    field public static final String QUERY_ARG_SORT_COLLATION = "android:query-arg-sort-collation";
+    field public static final String QUERY_ARG_SORT_COLUMNS = "android:query-arg-sort-columns";
+    field public static final String QUERY_ARG_SORT_DIRECTION = "android:query-arg-sort-direction";
+    field public static final String QUERY_ARG_SQL_SELECTION = "android:query-arg-sql-selection";
+    field public static final String QUERY_ARG_SQL_SELECTION_ARGS = "android:query-arg-sql-selection-args";
+    field public static final String QUERY_ARG_SQL_SORT_ORDER = "android:query-arg-sql-sort-order";
     field public static final int QUERY_SORT_DIRECTION_ASCENDING = 0; // 0x0
     field public static final int QUERY_SORT_DIRECTION_DESCENDING = 1; // 0x1
-    field public static final java.lang.String SCHEME_ANDROID_RESOURCE = "android.resource";
-    field public static final java.lang.String SCHEME_CONTENT = "content";
-    field public static final java.lang.String SCHEME_FILE = "file";
-    field public static final deprecated java.lang.String SYNC_EXTRAS_ACCOUNT = "account";
-    field public static final java.lang.String SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS = "discard_deletions";
-    field public static final java.lang.String SYNC_EXTRAS_DO_NOT_RETRY = "do_not_retry";
-    field public static final java.lang.String SYNC_EXTRAS_EXPEDITED = "expedited";
-    field public static final deprecated java.lang.String SYNC_EXTRAS_FORCE = "force";
-    field public static final java.lang.String SYNC_EXTRAS_IGNORE_BACKOFF = "ignore_backoff";
-    field public static final java.lang.String SYNC_EXTRAS_IGNORE_SETTINGS = "ignore_settings";
-    field public static final java.lang.String SYNC_EXTRAS_INITIALIZE = "initialize";
-    field public static final java.lang.String SYNC_EXTRAS_MANUAL = "force";
-    field public static final java.lang.String SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS = "deletions_override";
-    field public static final java.lang.String SYNC_EXTRAS_REQUIRE_CHARGING = "require_charging";
-    field public static final java.lang.String SYNC_EXTRAS_UPLOAD = "upload";
+    field public static final String SCHEME_ANDROID_RESOURCE = "android.resource";
+    field public static final String SCHEME_CONTENT = "content";
+    field public static final String SCHEME_FILE = "file";
+    field @Deprecated public static final String SYNC_EXTRAS_ACCOUNT = "account";
+    field public static final String SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS = "discard_deletions";
+    field public static final String SYNC_EXTRAS_DO_NOT_RETRY = "do_not_retry";
+    field public static final String SYNC_EXTRAS_EXPEDITED = "expedited";
+    field @Deprecated public static final String SYNC_EXTRAS_FORCE = "force";
+    field public static final String SYNC_EXTRAS_IGNORE_BACKOFF = "ignore_backoff";
+    field public static final String SYNC_EXTRAS_IGNORE_SETTINGS = "ignore_settings";
+    field public static final String SYNC_EXTRAS_INITIALIZE = "initialize";
+    field public static final String SYNC_EXTRAS_MANUAL = "force";
+    field public static final String SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS = "deletions_override";
+    field public static final String SYNC_EXTRAS_REQUIRE_CHARGING = "require_charging";
+    field public static final String SYNC_EXTRAS_UPLOAD = "upload";
     field public static final int SYNC_OBSERVER_TYPE_ACTIVE = 4; // 0x4
     field public static final int SYNC_OBSERVER_TYPE_PENDING = 2; // 0x2
     field public static final int SYNC_OBSERVER_TYPE_SETTINGS = 1; // 0x1
@@ -9585,169 +9591,169 @@
     ctor public ContentValues(int);
     ctor public ContentValues(android.content.ContentValues);
     method public void clear();
-    method public boolean containsKey(java.lang.String);
+    method public boolean containsKey(String);
     method public int describeContents();
-    method public java.lang.Object get(java.lang.String);
-    method public java.lang.Boolean getAsBoolean(java.lang.String);
-    method public java.lang.Byte getAsByte(java.lang.String);
-    method public byte[] getAsByteArray(java.lang.String);
-    method public java.lang.Double getAsDouble(java.lang.String);
-    method public java.lang.Float getAsFloat(java.lang.String);
-    method public java.lang.Integer getAsInteger(java.lang.String);
-    method public java.lang.Long getAsLong(java.lang.String);
-    method public java.lang.Short getAsShort(java.lang.String);
-    method public java.lang.String getAsString(java.lang.String);
+    method public Object get(String);
+    method public Boolean getAsBoolean(String);
+    method public Byte getAsByte(String);
+    method public byte[] getAsByteArray(String);
+    method public Double getAsDouble(String);
+    method public Float getAsFloat(String);
+    method public Integer getAsInteger(String);
+    method public Long getAsLong(String);
+    method public Short getAsShort(String);
+    method public String getAsString(String);
     method public java.util.Set<java.lang.String> keySet();
-    method public void put(java.lang.String, java.lang.String);
-    method public void put(java.lang.String, java.lang.Byte);
-    method public void put(java.lang.String, java.lang.Short);
-    method public void put(java.lang.String, java.lang.Integer);
-    method public void put(java.lang.String, java.lang.Long);
-    method public void put(java.lang.String, java.lang.Float);
-    method public void put(java.lang.String, java.lang.Double);
-    method public void put(java.lang.String, java.lang.Boolean);
-    method public void put(java.lang.String, byte[]);
+    method public void put(String, String);
+    method public void put(String, Byte);
+    method public void put(String, Short);
+    method public void put(String, Integer);
+    method public void put(String, Long);
+    method public void put(String, Float);
+    method public void put(String, Double);
+    method public void put(String, Boolean);
+    method public void put(String, byte[]);
     method public void putAll(android.content.ContentValues);
-    method public void putNull(java.lang.String);
-    method public void remove(java.lang.String);
+    method public void putNull(String);
+    method public void remove(String);
     method public int size();
-    method public java.util.Set<java.util.Map.Entry<java.lang.String, java.lang.Object>> valueSet();
+    method public java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>> valueSet();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.ContentValues> CREATOR;
-    field public static final java.lang.String TAG = "ContentValues";
+    field public static final String TAG = "ContentValues";
   }
 
   public abstract class Context {
     ctor public Context();
-    method public abstract boolean bindIsolatedService(android.content.Intent, android.content.ServiceConnection, int, java.lang.String);
-    method public abstract boolean bindService(android.content.Intent, android.content.ServiceConnection, int);
-    method public abstract int checkCallingOrSelfPermission(java.lang.String);
-    method public abstract int checkCallingOrSelfUriPermission(android.net.Uri, int);
-    method public abstract int checkCallingPermission(java.lang.String);
-    method public abstract int checkCallingUriPermission(android.net.Uri, int);
-    method public abstract int checkPermission(java.lang.String, int, int);
-    method public abstract int checkSelfPermission(java.lang.String);
-    method public abstract int checkUriPermission(android.net.Uri, int, int, int);
-    method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int);
-    method public abstract deprecated void clearWallpaper() throws java.io.IOException;
-    method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration);
-    method public abstract android.content.Context createContextForSplit(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract boolean bindIsolatedService(@RequiresPermission android.content.Intent, @NonNull android.content.ServiceConnection, int, @NonNull String);
+    method public abstract boolean bindService(@RequiresPermission android.content.Intent, @NonNull android.content.ServiceConnection, int);
+    method @CheckResult(suggest="#enforceCallingOrSelfPermission(String,String)") public abstract int checkCallingOrSelfPermission(@NonNull String);
+    method @CheckResult(suggest="#enforceCallingOrSelfUriPermission(Uri,int,String)") public abstract int checkCallingOrSelfUriPermission(android.net.Uri, int);
+    method @CheckResult(suggest="#enforceCallingPermission(String,String)") public abstract int checkCallingPermission(@NonNull String);
+    method @CheckResult(suggest="#enforceCallingUriPermission(Uri,int,String)") public abstract int checkCallingUriPermission(android.net.Uri, int);
+    method @CheckResult(suggest="#enforcePermission(String,int,int,String)") public abstract int checkPermission(@NonNull String, int, int);
+    method public abstract int checkSelfPermission(@NonNull String);
+    method @CheckResult(suggest="#enforceUriPermission(Uri,int,int,String)") public abstract int checkUriPermission(android.net.Uri, int, int, int);
+    method @CheckResult(suggest="#enforceUriPermission(Uri,String,String,int,int,int,String)") public abstract int checkUriPermission(@Nullable android.net.Uri, @Nullable String, @Nullable String, int, int, int);
+    method @Deprecated public abstract void clearWallpaper() throws java.io.IOException;
+    method public abstract android.content.Context createConfigurationContext(@NonNull android.content.res.Configuration);
+    method public abstract android.content.Context createContextForSplit(String) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.content.Context createDeviceProtectedStorageContext();
-    method public abstract android.content.Context createDisplayContext(android.view.Display);
-    method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract java.lang.String[] databaseList();
-    method public abstract boolean deleteDatabase(java.lang.String);
-    method public abstract boolean deleteFile(java.lang.String);
-    method public abstract boolean deleteSharedPreferences(java.lang.String);
-    method public abstract void enforceCallingOrSelfPermission(java.lang.String, java.lang.String);
-    method public abstract void enforceCallingOrSelfUriPermission(android.net.Uri, int, java.lang.String);
-    method public abstract void enforceCallingPermission(java.lang.String, java.lang.String);
-    method public abstract void enforceCallingUriPermission(android.net.Uri, int, java.lang.String);
-    method public abstract void enforcePermission(java.lang.String, int, int, java.lang.String);
-    method public abstract void enforceUriPermission(android.net.Uri, int, int, int, java.lang.String);
-    method public abstract void enforceUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int, java.lang.String);
-    method public abstract java.lang.String[] fileList();
+    method public abstract android.content.Context createDisplayContext(@NonNull android.view.Display);
+    method public abstract android.content.Context createPackageContext(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract String[] databaseList();
+    method public abstract boolean deleteDatabase(String);
+    method public abstract boolean deleteFile(String);
+    method public abstract boolean deleteSharedPreferences(String);
+    method public abstract void enforceCallingOrSelfPermission(@NonNull String, @Nullable String);
+    method public abstract void enforceCallingOrSelfUriPermission(android.net.Uri, int, String);
+    method public abstract void enforceCallingPermission(@NonNull String, @Nullable String);
+    method public abstract void enforceCallingUriPermission(android.net.Uri, int, String);
+    method public abstract void enforcePermission(@NonNull String, int, int, @Nullable String);
+    method public abstract void enforceUriPermission(android.net.Uri, int, int, int, String);
+    method public abstract void enforceUriPermission(@Nullable android.net.Uri, @Nullable String, @Nullable String, int, int, int, @Nullable String);
+    method public abstract String[] fileList();
     method public abstract android.content.Context getApplicationContext();
     method public abstract android.content.pm.ApplicationInfo getApplicationInfo();
     method public abstract android.content.res.AssetManager getAssets();
     method public abstract java.io.File getCacheDir();
-    method public abstract java.lang.ClassLoader getClassLoader();
+    method public abstract ClassLoader getClassLoader();
     method public abstract java.io.File getCodeCacheDir();
-    method public final int getColor(int);
-    method public final android.content.res.ColorStateList getColorStateList(int);
+    method @ColorInt public final int getColor(@ColorRes int);
+    method @NonNull public final android.content.res.ColorStateList getColorStateList(@ColorRes int);
     method public abstract android.content.ContentResolver getContentResolver();
     method public abstract java.io.File getDataDir();
-    method public abstract java.io.File getDatabasePath(java.lang.String);
-    method public abstract java.io.File getDir(java.lang.String, int);
-    method public final android.graphics.drawable.Drawable getDrawable(int);
-    method public abstract java.io.File getExternalCacheDir();
+    method public abstract java.io.File getDatabasePath(String);
+    method public abstract java.io.File getDir(String, int);
+    method @Nullable public final android.graphics.drawable.Drawable getDrawable(@DrawableRes int);
+    method @Nullable public abstract java.io.File getExternalCacheDir();
     method public abstract java.io.File[] getExternalCacheDirs();
-    method public abstract java.io.File getExternalFilesDir(java.lang.String);
-    method public abstract java.io.File[] getExternalFilesDirs(java.lang.String);
+    method @Nullable public abstract java.io.File getExternalFilesDir(@Nullable String);
+    method public abstract java.io.File[] getExternalFilesDirs(String);
     method public abstract java.io.File[] getExternalMediaDirs();
-    method public abstract java.io.File getFileStreamPath(java.lang.String);
+    method public abstract java.io.File getFileStreamPath(String);
     method public abstract java.io.File getFilesDir();
     method public java.util.concurrent.Executor getMainExecutor();
     method public abstract android.os.Looper getMainLooper();
     method public abstract java.io.File getNoBackupFilesDir();
     method public abstract java.io.File getObbDir();
     method public abstract java.io.File[] getObbDirs();
-    method public abstract java.lang.String getOpPackageName();
-    method public abstract java.lang.String getPackageCodePath();
+    method public abstract String getOpPackageName();
+    method public abstract String getPackageCodePath();
     method public abstract android.content.pm.PackageManager getPackageManager();
-    method public abstract java.lang.String getPackageName();
-    method public abstract java.lang.String getPackageResourcePath();
+    method public abstract String getPackageName();
+    method public abstract String getPackageResourcePath();
     method public abstract android.content.res.Resources getResources();
-    method public abstract android.content.SharedPreferences getSharedPreferences(java.lang.String, int);
-    method public final java.lang.String getString(int);
-    method public final java.lang.String getString(int, java.lang.Object...);
-    method public abstract java.lang.Object getSystemService(java.lang.String);
-    method public final <T> T getSystemService(java.lang.Class<T>);
-    method public abstract java.lang.String getSystemServiceName(java.lang.Class<?>);
-    method public final java.lang.CharSequence getText(int);
-    method public abstract android.content.res.Resources.Theme getTheme();
-    method public abstract deprecated android.graphics.drawable.Drawable getWallpaper();
-    method public abstract deprecated int getWallpaperDesiredMinimumHeight();
-    method public abstract deprecated int getWallpaperDesiredMinimumWidth();
-    method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int);
+    method public abstract android.content.SharedPreferences getSharedPreferences(String, int);
+    method @NonNull public final String getString(@StringRes int);
+    method @NonNull public final String getString(@StringRes int, java.lang.Object...);
+    method public abstract Object getSystemService(@NonNull String);
+    method public final <T> T getSystemService(@NonNull Class<T>);
+    method @Nullable public abstract String getSystemServiceName(@NonNull Class<?>);
+    method @NonNull public final CharSequence getText(@StringRes int);
+    method @android.view.ViewDebug.ExportedProperty(deepExport=true) public abstract android.content.res.Resources.Theme getTheme();
+    method @Deprecated public abstract android.graphics.drawable.Drawable getWallpaper();
+    method @Deprecated public abstract int getWallpaperDesiredMinimumHeight();
+    method @Deprecated public abstract int getWallpaperDesiredMinimumWidth();
+    method public abstract void grantUriPermission(String, android.net.Uri, int);
     method public abstract boolean isDeviceProtectedStorage();
     method public boolean isRestricted();
-    method public abstract boolean moveDatabaseFrom(android.content.Context, java.lang.String);
-    method public abstract boolean moveSharedPreferencesFrom(android.content.Context, java.lang.String);
-    method public final android.content.res.TypedArray obtainStyledAttributes(int[]);
-    method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException;
-    method public final android.content.res.TypedArray obtainStyledAttributes(android.util.AttributeSet, int[]);
-    method public final android.content.res.TypedArray obtainStyledAttributes(android.util.AttributeSet, int[], int, int);
-    method public abstract java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException;
-    method public abstract java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException;
-    method public abstract android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
-    method public abstract android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory, android.database.DatabaseErrorHandler);
-    method public abstract deprecated android.graphics.drawable.Drawable peekWallpaper();
+    method public abstract boolean moveDatabaseFrom(android.content.Context, String);
+    method public abstract boolean moveSharedPreferencesFrom(android.content.Context, String);
+    method @NonNull public final android.content.res.TypedArray obtainStyledAttributes(@NonNull @StyleableRes int[]);
+    method @NonNull public final android.content.res.TypedArray obtainStyledAttributes(@StyleRes int, @NonNull @StyleableRes int[]) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public final android.content.res.TypedArray obtainStyledAttributes(@Nullable android.util.AttributeSet, @NonNull @StyleableRes int[]);
+    method @NonNull public final android.content.res.TypedArray obtainStyledAttributes(@Nullable android.util.AttributeSet, @NonNull @StyleableRes int[], @AttrRes int, @StyleRes int);
+    method public abstract java.io.FileInputStream openFileInput(String) throws java.io.FileNotFoundException;
+    method public abstract java.io.FileOutputStream openFileOutput(String, int) throws java.io.FileNotFoundException;
+    method public abstract android.database.sqlite.SQLiteDatabase openOrCreateDatabase(String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
+    method public abstract android.database.sqlite.SQLiteDatabase openOrCreateDatabase(String, int, android.database.sqlite.SQLiteDatabase.CursorFactory, @Nullable android.database.DatabaseErrorHandler);
+    method @Deprecated public abstract android.graphics.drawable.Drawable peekWallpaper();
     method public void registerComponentCallbacks(android.content.ComponentCallbacks);
-    method public abstract android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter);
-    method public abstract android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, int);
-    method public abstract android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler);
-    method public abstract android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler, int);
-    method public abstract deprecated void removeStickyBroadcast(android.content.Intent);
-    method public abstract deprecated void removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
+    method @Nullable public abstract android.content.Intent registerReceiver(@Nullable android.content.BroadcastReceiver, android.content.IntentFilter);
+    method @Nullable public abstract android.content.Intent registerReceiver(@Nullable android.content.BroadcastReceiver, android.content.IntentFilter, int);
+    method @Nullable public abstract android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, @Nullable String, @Nullable android.os.Handler);
+    method @Nullable public abstract android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, @Nullable String, @Nullable android.os.Handler, int);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.BROADCAST_STICKY) public abstract void removeStickyBroadcast(@RequiresPermission android.content.Intent);
+    method @Deprecated @RequiresPermission(allOf={"android.permission.INTERACT_ACROSS_USERS", android.Manifest.permission.BROADCAST_STICKY}) public abstract void removeStickyBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle);
     method public abstract void revokeUriPermission(android.net.Uri, int);
-    method public abstract void revokeUriPermission(java.lang.String, android.net.Uri, int);
-    method public abstract void sendBroadcast(android.content.Intent);
-    method public abstract void sendBroadcast(android.content.Intent, java.lang.String);
-    method public abstract void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle);
-    method public abstract void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String);
-    method public abstract void sendOrderedBroadcast(android.content.Intent, java.lang.String);
-    method public abstract void sendOrderedBroadcast(android.content.Intent, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
-    method public abstract void sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
-    method public abstract deprecated void sendStickyBroadcast(android.content.Intent);
-    method public abstract deprecated void sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
-    method public abstract deprecated void sendStickyOrderedBroadcast(android.content.Intent, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
-    method public abstract deprecated void sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
-    method public abstract void setTheme(int);
-    method public abstract deprecated void setWallpaper(android.graphics.Bitmap) throws java.io.IOException;
-    method public abstract deprecated void setWallpaper(java.io.InputStream) throws java.io.IOException;
-    method public abstract void startActivities(android.content.Intent[]);
-    method public abstract void startActivities(android.content.Intent[], android.os.Bundle);
-    method public abstract void startActivity(android.content.Intent);
-    method public abstract void startActivity(android.content.Intent, android.os.Bundle);
-    method public abstract android.content.ComponentName startForegroundService(android.content.Intent);
-    method public abstract boolean startInstrumentation(android.content.ComponentName, java.lang.String, android.os.Bundle);
-    method public abstract void startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int) throws android.content.IntentSender.SendIntentException;
-    method public abstract void startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
-    method public abstract android.content.ComponentName startService(android.content.Intent);
+    method public abstract void revokeUriPermission(String, android.net.Uri, int);
+    method public abstract void sendBroadcast(@RequiresPermission android.content.Intent);
+    method public abstract void sendBroadcast(@RequiresPermission android.content.Intent, @Nullable String);
+    method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS") public abstract void sendBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle);
+    method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS") public abstract void sendBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String);
+    method public abstract void sendOrderedBroadcast(@RequiresPermission android.content.Intent, @Nullable String);
+    method public abstract void sendOrderedBroadcast(@RequiresPermission @NonNull android.content.Intent, @Nullable String, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
+    method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS") public abstract void sendOrderedBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String, android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.BROADCAST_STICKY) public abstract void sendStickyBroadcast(@RequiresPermission android.content.Intent);
+    method @Deprecated @RequiresPermission(allOf={"android.permission.INTERACT_ACROSS_USERS", android.Manifest.permission.BROADCAST_STICKY}) public abstract void sendStickyBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.BROADCAST_STICKY) public abstract void sendStickyOrderedBroadcast(@RequiresPermission android.content.Intent, android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
+    method @Deprecated @RequiresPermission(allOf={"android.permission.INTERACT_ACROSS_USERS", android.Manifest.permission.BROADCAST_STICKY}) public abstract void sendStickyOrderedBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
+    method public abstract void setTheme(@StyleRes int);
+    method @Deprecated public abstract void setWallpaper(android.graphics.Bitmap) throws java.io.IOException;
+    method @Deprecated public abstract void setWallpaper(java.io.InputStream) throws java.io.IOException;
+    method public abstract void startActivities(@RequiresPermission android.content.Intent[]);
+    method public abstract void startActivities(@RequiresPermission android.content.Intent[], android.os.Bundle);
+    method public abstract void startActivity(@RequiresPermission android.content.Intent);
+    method public abstract void startActivity(@RequiresPermission android.content.Intent, @Nullable android.os.Bundle);
+    method @Nullable public abstract android.content.ComponentName startForegroundService(android.content.Intent);
+    method public abstract boolean startInstrumentation(@NonNull android.content.ComponentName, @Nullable String, @Nullable android.os.Bundle);
+    method public abstract void startIntentSender(android.content.IntentSender, @Nullable android.content.Intent, int, int, int) throws android.content.IntentSender.SendIntentException;
+    method public abstract void startIntentSender(android.content.IntentSender, @Nullable android.content.Intent, int, int, int, @Nullable android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+    method @Nullable public abstract android.content.ComponentName startService(android.content.Intent);
     method public abstract boolean stopService(android.content.Intent);
-    method public abstract void unbindService(android.content.ServiceConnection);
+    method public abstract void unbindService(@NonNull android.content.ServiceConnection);
     method public void unregisterComponentCallbacks(android.content.ComponentCallbacks);
     method public abstract void unregisterReceiver(android.content.BroadcastReceiver);
-    method public abstract void updateServiceGroup(android.content.ServiceConnection, int, int);
-    field public static final java.lang.String ACCESSIBILITY_SERVICE = "accessibility";
-    field public static final java.lang.String ACCOUNT_SERVICE = "account";
-    field public static final java.lang.String ACTIVITY_SERVICE = "activity";
-    field public static final java.lang.String ALARM_SERVICE = "alarm";
-    field public static final java.lang.String APPWIDGET_SERVICE = "appwidget";
-    field public static final java.lang.String APP_OPS_SERVICE = "appops";
-    field public static final java.lang.String AUDIO_SERVICE = "audio";
-    field public static final java.lang.String BATTERY_SERVICE = "batterymanager";
+    method public abstract void updateServiceGroup(@NonNull android.content.ServiceConnection, int, int);
+    field public static final String ACCESSIBILITY_SERVICE = "accessibility";
+    field public static final String ACCOUNT_SERVICE = "account";
+    field public static final String ACTIVITY_SERVICE = "activity";
+    field public static final String ALARM_SERVICE = "alarm";
+    field public static final String APPWIDGET_SERVICE = "appwidget";
+    field public static final String APP_OPS_SERVICE = "appops";
+    field public static final String AUDIO_SERVICE = "audio";
+    field public static final String BATTERY_SERVICE = "batterymanager";
     field public static final int BIND_ABOVE_CLIENT = 8; // 0x8
     field public static final int BIND_ADJUST_WITH_ACTIVITY = 128; // 0x80
     field public static final int BIND_ALLOW_OOM_MANAGEMENT = 16; // 0x10
@@ -9757,182 +9763,182 @@
     field public static final int BIND_IMPORTANT = 64; // 0x40
     field public static final int BIND_NOT_FOREGROUND = 4; // 0x4
     field public static final int BIND_WAIVE_PRIORITY = 32; // 0x20
-    field public static final java.lang.String BIOMETRIC_SERVICE = "biometric";
-    field public static final java.lang.String BLUETOOTH_SERVICE = "bluetooth";
-    field public static final java.lang.String CAMERA_SERVICE = "camera";
-    field public static final java.lang.String CAPTIONING_SERVICE = "captioning";
-    field public static final java.lang.String CARRIER_CONFIG_SERVICE = "carrier_config";
-    field public static final java.lang.String CLIPBOARD_SERVICE = "clipboard";
-    field public static final java.lang.String COMPANION_DEVICE_SERVICE = "companiondevice";
-    field public static final java.lang.String CONNECTIVITY_SERVICE = "connectivity";
-    field public static final java.lang.String CONSUMER_IR_SERVICE = "consumer_ir";
+    field public static final String BIOMETRIC_SERVICE = "biometric";
+    field public static final String BLUETOOTH_SERVICE = "bluetooth";
+    field public static final String CAMERA_SERVICE = "camera";
+    field public static final String CAPTIONING_SERVICE = "captioning";
+    field public static final String CARRIER_CONFIG_SERVICE = "carrier_config";
+    field public static final String CLIPBOARD_SERVICE = "clipboard";
+    field public static final String COMPANION_DEVICE_SERVICE = "companiondevice";
+    field public static final String CONNECTIVITY_SERVICE = "connectivity";
+    field public static final String CONSUMER_IR_SERVICE = "consumer_ir";
     field public static final int CONTEXT_IGNORE_SECURITY = 2; // 0x2
     field public static final int CONTEXT_INCLUDE_CODE = 1; // 0x1
     field public static final int CONTEXT_RESTRICTED = 4; // 0x4
-    field public static final java.lang.String CROSS_PROFILE_APPS_SERVICE = "crossprofileapps";
-    field public static final java.lang.String DEVICE_POLICY_SERVICE = "device_policy";
-    field public static final java.lang.String DISPLAY_SERVICE = "display";
-    field public static final java.lang.String DOWNLOAD_SERVICE = "download";
-    field public static final java.lang.String DROPBOX_SERVICE = "dropbox";
-    field public static final java.lang.String EUICC_SERVICE = "euicc";
-    field public static final java.lang.String FINGERPRINT_SERVICE = "fingerprint";
-    field public static final java.lang.String HARDWARE_PROPERTIES_SERVICE = "hardware_properties";
-    field public static final java.lang.String INPUT_METHOD_SERVICE = "input_method";
-    field public static final java.lang.String INPUT_SERVICE = "input";
-    field public static final java.lang.String IPSEC_SERVICE = "ipsec";
-    field public static final java.lang.String JOB_SCHEDULER_SERVICE = "jobscheduler";
-    field public static final java.lang.String KEYGUARD_SERVICE = "keyguard";
-    field public static final java.lang.String LAUNCHER_APPS_SERVICE = "launcherapps";
-    field public static final java.lang.String LAYOUT_INFLATER_SERVICE = "layout_inflater";
-    field public static final java.lang.String LOCATION_SERVICE = "location";
-    field public static final java.lang.String MEDIA_PROJECTION_SERVICE = "media_projection";
-    field public static final java.lang.String MEDIA_ROUTER_SERVICE = "media_router";
-    field public static final java.lang.String MEDIA_SESSION_SERVICE = "media_session";
-    field public static final java.lang.String MIDI_SERVICE = "midi";
+    field public static final String CROSS_PROFILE_APPS_SERVICE = "crossprofileapps";
+    field public static final String DEVICE_POLICY_SERVICE = "device_policy";
+    field public static final String DISPLAY_SERVICE = "display";
+    field public static final String DOWNLOAD_SERVICE = "download";
+    field public static final String DROPBOX_SERVICE = "dropbox";
+    field public static final String EUICC_SERVICE = "euicc";
+    field public static final String FINGERPRINT_SERVICE = "fingerprint";
+    field public static final String HARDWARE_PROPERTIES_SERVICE = "hardware_properties";
+    field public static final String INPUT_METHOD_SERVICE = "input_method";
+    field public static final String INPUT_SERVICE = "input";
+    field public static final String IPSEC_SERVICE = "ipsec";
+    field public static final String JOB_SCHEDULER_SERVICE = "jobscheduler";
+    field public static final String KEYGUARD_SERVICE = "keyguard";
+    field public static final String LAUNCHER_APPS_SERVICE = "launcherapps";
+    field public static final String LAYOUT_INFLATER_SERVICE = "layout_inflater";
+    field public static final String LOCATION_SERVICE = "location";
+    field public static final String MEDIA_PROJECTION_SERVICE = "media_projection";
+    field public static final String MEDIA_ROUTER_SERVICE = "media_router";
+    field public static final String MEDIA_SESSION_SERVICE = "media_session";
+    field public static final String MIDI_SERVICE = "midi";
     field public static final int MODE_APPEND = 32768; // 0x8000
     field public static final int MODE_ENABLE_WRITE_AHEAD_LOGGING = 8; // 0x8
-    field public static final deprecated int MODE_MULTI_PROCESS = 4; // 0x4
+    field @Deprecated public static final int MODE_MULTI_PROCESS = 4; // 0x4
     field public static final int MODE_NO_LOCALIZED_COLLATORS = 16; // 0x10
     field public static final int MODE_PRIVATE = 0; // 0x0
-    field public static final deprecated int MODE_WORLD_READABLE = 1; // 0x1
-    field public static final deprecated int MODE_WORLD_WRITEABLE = 2; // 0x2
-    field public static final java.lang.String NETWORK_STATS_SERVICE = "netstats";
-    field public static final java.lang.String NFC_SERVICE = "nfc";
-    field public static final java.lang.String NOTIFICATION_SERVICE = "notification";
-    field public static final java.lang.String NSD_SERVICE = "servicediscovery";
-    field public static final java.lang.String POWER_SERVICE = "power";
-    field public static final java.lang.String PRINT_SERVICE = "print";
+    field @Deprecated public static final int MODE_WORLD_READABLE = 1; // 0x1
+    field @Deprecated public static final int MODE_WORLD_WRITEABLE = 2; // 0x2
+    field public static final String NETWORK_STATS_SERVICE = "netstats";
+    field public static final String NFC_SERVICE = "nfc";
+    field public static final String NOTIFICATION_SERVICE = "notification";
+    field public static final String NSD_SERVICE = "servicediscovery";
+    field public static final String POWER_SERVICE = "power";
+    field public static final String PRINT_SERVICE = "print";
     field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1
-    field public static final java.lang.String RESTRICTIONS_SERVICE = "restrictions";
-    field public static final java.lang.String ROLE_SERVICE = "role";
-    field public static final java.lang.String SEARCH_SERVICE = "search";
-    field public static final java.lang.String SENSOR_SERVICE = "sensor";
-    field public static final java.lang.String SHORTCUT_SERVICE = "shortcut";
-    field public static final java.lang.String STORAGE_SERVICE = "storage";
-    field public static final java.lang.String STORAGE_STATS_SERVICE = "storagestats";
-    field public static final java.lang.String SYSTEM_HEALTH_SERVICE = "systemhealth";
-    field public static final java.lang.String TELECOM_SERVICE = "telecom";
-    field public static final java.lang.String TELEPHONY_SERVICE = "phone";
-    field public static final java.lang.String TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service";
-    field public static final java.lang.String TEXT_CLASSIFICATION_SERVICE = "textclassification";
-    field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
-    field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
-    field public static final java.lang.String UI_MODE_SERVICE = "uimode";
-    field public static final java.lang.String USAGE_STATS_SERVICE = "usagestats";
-    field public static final java.lang.String USB_SERVICE = "usb";
-    field public static final java.lang.String USER_SERVICE = "user";
-    field public static final java.lang.String VIBRATOR_SERVICE = "vibrator";
-    field public static final java.lang.String WALLPAPER_SERVICE = "wallpaper";
-    field public static final java.lang.String WIFI_AWARE_SERVICE = "wifiaware";
-    field public static final java.lang.String WIFI_P2P_SERVICE = "wifip2p";
-    field public static final java.lang.String WIFI_RTT_RANGING_SERVICE = "wifirtt";
-    field public static final java.lang.String WIFI_SERVICE = "wifi";
-    field public static final java.lang.String WINDOW_SERVICE = "window";
+    field public static final String RESTRICTIONS_SERVICE = "restrictions";
+    field public static final String ROLE_SERVICE = "role";
+    field public static final String SEARCH_SERVICE = "search";
+    field public static final String SENSOR_SERVICE = "sensor";
+    field public static final String SHORTCUT_SERVICE = "shortcut";
+    field public static final String STORAGE_SERVICE = "storage";
+    field public static final String STORAGE_STATS_SERVICE = "storagestats";
+    field public static final String SYSTEM_HEALTH_SERVICE = "systemhealth";
+    field public static final String TELECOM_SERVICE = "telecom";
+    field public static final String TELEPHONY_SERVICE = "phone";
+    field public static final String TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service";
+    field public static final String TEXT_CLASSIFICATION_SERVICE = "textclassification";
+    field public static final String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
+    field public static final String TV_INPUT_SERVICE = "tv_input";
+    field public static final String UI_MODE_SERVICE = "uimode";
+    field public static final String USAGE_STATS_SERVICE = "usagestats";
+    field public static final String USB_SERVICE = "usb";
+    field public static final String USER_SERVICE = "user";
+    field public static final String VIBRATOR_SERVICE = "vibrator";
+    field public static final String WALLPAPER_SERVICE = "wallpaper";
+    field public static final String WIFI_AWARE_SERVICE = "wifiaware";
+    field public static final String WIFI_P2P_SERVICE = "wifip2p";
+    field public static final String WIFI_RTT_RANGING_SERVICE = "wifirtt";
+    field public static final String WIFI_SERVICE = "wifi";
+    field public static final String WINDOW_SERVICE = "window";
   }
 
   public class ContextWrapper extends android.content.Context {
     ctor public ContextWrapper(android.content.Context);
     method protected void attachBaseContext(android.content.Context);
-    method public boolean bindIsolatedService(android.content.Intent, android.content.ServiceConnection, int, java.lang.String);
+    method public boolean bindIsolatedService(android.content.Intent, android.content.ServiceConnection, int, String);
     method public boolean bindService(android.content.Intent, android.content.ServiceConnection, int);
-    method public int checkCallingOrSelfPermission(java.lang.String);
+    method public int checkCallingOrSelfPermission(String);
     method public int checkCallingOrSelfUriPermission(android.net.Uri, int);
-    method public int checkCallingPermission(java.lang.String);
+    method public int checkCallingPermission(String);
     method public int checkCallingUriPermission(android.net.Uri, int);
-    method public int checkPermission(java.lang.String, int, int);
-    method public int checkSelfPermission(java.lang.String);
+    method public int checkPermission(String, int, int);
+    method public int checkSelfPermission(String);
     method public int checkUriPermission(android.net.Uri, int, int, int);
-    method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int);
-    method public deprecated void clearWallpaper() throws java.io.IOException;
+    method public int checkUriPermission(android.net.Uri, String, String, int, int, int);
+    method @Deprecated public void clearWallpaper() throws java.io.IOException;
     method public android.content.Context createConfigurationContext(android.content.res.Configuration);
-    method public android.content.Context createContextForSplit(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public android.content.Context createContextForSplit(String) throws android.content.pm.PackageManager.NameNotFoundException;
     method public android.content.Context createDeviceProtectedStorageContext();
     method public android.content.Context createDisplayContext(android.view.Display);
-    method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public java.lang.String[] databaseList();
-    method public boolean deleteDatabase(java.lang.String);
-    method public boolean deleteFile(java.lang.String);
-    method public boolean deleteSharedPreferences(java.lang.String);
-    method public void enforceCallingOrSelfPermission(java.lang.String, java.lang.String);
-    method public void enforceCallingOrSelfUriPermission(android.net.Uri, int, java.lang.String);
-    method public void enforceCallingPermission(java.lang.String, java.lang.String);
-    method public void enforceCallingUriPermission(android.net.Uri, int, java.lang.String);
-    method public void enforcePermission(java.lang.String, int, int, java.lang.String);
-    method public void enforceUriPermission(android.net.Uri, int, int, int, java.lang.String);
-    method public void enforceUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int, java.lang.String);
-    method public java.lang.String[] fileList();
+    method public android.content.Context createPackageContext(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public String[] databaseList();
+    method public boolean deleteDatabase(String);
+    method public boolean deleteFile(String);
+    method public boolean deleteSharedPreferences(String);
+    method public void enforceCallingOrSelfPermission(String, String);
+    method public void enforceCallingOrSelfUriPermission(android.net.Uri, int, String);
+    method public void enforceCallingPermission(String, String);
+    method public void enforceCallingUriPermission(android.net.Uri, int, String);
+    method public void enforcePermission(String, int, int, String);
+    method public void enforceUriPermission(android.net.Uri, int, int, int, String);
+    method public void enforceUriPermission(android.net.Uri, String, String, int, int, int, String);
+    method public String[] fileList();
     method public android.content.Context getApplicationContext();
     method public android.content.pm.ApplicationInfo getApplicationInfo();
     method public android.content.res.AssetManager getAssets();
     method public android.content.Context getBaseContext();
     method public java.io.File getCacheDir();
-    method public java.lang.ClassLoader getClassLoader();
+    method public ClassLoader getClassLoader();
     method public java.io.File getCodeCacheDir();
     method public android.content.ContentResolver getContentResolver();
     method public java.io.File getDataDir();
-    method public java.io.File getDatabasePath(java.lang.String);
-    method public java.io.File getDir(java.lang.String, int);
+    method public java.io.File getDatabasePath(String);
+    method public java.io.File getDir(String, int);
     method public java.io.File getExternalCacheDir();
     method public java.io.File[] getExternalCacheDirs();
-    method public java.io.File getExternalFilesDir(java.lang.String);
-    method public java.io.File[] getExternalFilesDirs(java.lang.String);
+    method public java.io.File getExternalFilesDir(String);
+    method public java.io.File[] getExternalFilesDirs(String);
     method public java.io.File[] getExternalMediaDirs();
-    method public java.io.File getFileStreamPath(java.lang.String);
+    method public java.io.File getFileStreamPath(String);
     method public java.io.File getFilesDir();
     method public android.os.Looper getMainLooper();
     method public java.io.File getNoBackupFilesDir();
     method public java.io.File getObbDir();
     method public java.io.File[] getObbDirs();
-    method public java.lang.String getOpPackageName();
-    method public java.lang.String getPackageCodePath();
+    method public String getOpPackageName();
+    method public String getPackageCodePath();
     method public android.content.pm.PackageManager getPackageManager();
-    method public java.lang.String getPackageName();
-    method public java.lang.String getPackageResourcePath();
+    method public String getPackageName();
+    method public String getPackageResourcePath();
     method public android.content.res.Resources getResources();
-    method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int);
-    method public java.lang.Object getSystemService(java.lang.String);
-    method public java.lang.String getSystemServiceName(java.lang.Class<?>);
+    method public android.content.SharedPreferences getSharedPreferences(String, int);
+    method public Object getSystemService(String);
+    method public String getSystemServiceName(Class<?>);
     method public android.content.res.Resources.Theme getTheme();
-    method public deprecated android.graphics.drawable.Drawable getWallpaper();
-    method public deprecated int getWallpaperDesiredMinimumHeight();
-    method public deprecated int getWallpaperDesiredMinimumWidth();
-    method public void grantUriPermission(java.lang.String, android.net.Uri, int);
+    method @Deprecated public android.graphics.drawable.Drawable getWallpaper();
+    method @Deprecated public int getWallpaperDesiredMinimumHeight();
+    method @Deprecated public int getWallpaperDesiredMinimumWidth();
+    method public void grantUriPermission(String, android.net.Uri, int);
     method public boolean isDeviceProtectedStorage();
-    method public boolean moveDatabaseFrom(android.content.Context, java.lang.String);
-    method public boolean moveSharedPreferencesFrom(android.content.Context, java.lang.String);
-    method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException;
-    method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException;
-    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
-    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory, android.database.DatabaseErrorHandler);
-    method public deprecated android.graphics.drawable.Drawable peekWallpaper();
+    method public boolean moveDatabaseFrom(android.content.Context, String);
+    method public boolean moveSharedPreferencesFrom(android.content.Context, String);
+    method public java.io.FileInputStream openFileInput(String) throws java.io.FileNotFoundException;
+    method public java.io.FileOutputStream openFileOutput(String, int) throws java.io.FileNotFoundException;
+    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
+    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(String, int, android.database.sqlite.SQLiteDatabase.CursorFactory, android.database.DatabaseErrorHandler);
+    method @Deprecated public android.graphics.drawable.Drawable peekWallpaper();
     method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter);
     method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, int);
-    method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler);
-    method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler, int);
-    method public deprecated void removeStickyBroadcast(android.content.Intent);
-    method public deprecated void removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
+    method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, String, android.os.Handler);
+    method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, String, android.os.Handler, int);
+    method @Deprecated public void removeStickyBroadcast(android.content.Intent);
+    method @Deprecated public void removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
     method public void revokeUriPermission(android.net.Uri, int);
-    method public void revokeUriPermission(java.lang.String, android.net.Uri, int);
+    method public void revokeUriPermission(String, android.net.Uri, int);
     method public void sendBroadcast(android.content.Intent);
-    method public void sendBroadcast(android.content.Intent, java.lang.String);
+    method public void sendBroadcast(android.content.Intent, String);
     method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle);
-    method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String);
-    method public void sendOrderedBroadcast(android.content.Intent, java.lang.String);
-    method public void sendOrderedBroadcast(android.content.Intent, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
-    method public void sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
-    method public deprecated void sendStickyBroadcast(android.content.Intent);
-    method public deprecated void sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
-    method public deprecated void sendStickyOrderedBroadcast(android.content.Intent, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
-    method public deprecated void sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+    method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, String);
+    method public void sendOrderedBroadcast(android.content.Intent, String);
+    method public void sendOrderedBroadcast(android.content.Intent, String, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
+    method public void sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, String, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
+    method @Deprecated public void sendStickyBroadcast(android.content.Intent);
+    method @Deprecated public void sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
+    method @Deprecated public void sendStickyOrderedBroadcast(android.content.Intent, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
+    method @Deprecated public void sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
     method public void setTheme(int);
-    method public deprecated void setWallpaper(android.graphics.Bitmap) throws java.io.IOException;
-    method public deprecated void setWallpaper(java.io.InputStream) throws java.io.IOException;
+    method @Deprecated public void setWallpaper(android.graphics.Bitmap) throws java.io.IOException;
+    method @Deprecated public void setWallpaper(java.io.InputStream) throws java.io.IOException;
     method public void startActivities(android.content.Intent[]);
     method public void startActivities(android.content.Intent[], android.os.Bundle);
     method public void startActivity(android.content.Intent);
     method public void startActivity(android.content.Intent, android.os.Bundle);
     method public android.content.ComponentName startForegroundService(android.content.Intent);
-    method public boolean startInstrumentation(android.content.ComponentName, java.lang.String, android.os.Bundle);
+    method public boolean startInstrumentation(android.content.ComponentName, String, android.os.Bundle);
     method public void startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int) throws android.content.IntentSender.SendIntentException;
     method public void startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
     method public android.content.ComponentName startService(android.content.Intent);
@@ -9942,57 +9948,57 @@
     method public void updateServiceGroup(android.content.ServiceConnection, int, int);
   }
 
-  public deprecated class CursorLoader extends android.content.AsyncTaskLoader {
-    ctor public CursorLoader(android.content.Context);
-    ctor public CursorLoader(android.content.Context, android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public void deliverResult(android.database.Cursor);
-    method public java.lang.String[] getProjection();
-    method public java.lang.String getSelection();
-    method public java.lang.String[] getSelectionArgs();
-    method public java.lang.String getSortOrder();
-    method public android.net.Uri getUri();
-    method public android.database.Cursor loadInBackground();
-    method public void onCanceled(android.database.Cursor);
-    method public void setProjection(java.lang.String[]);
-    method public void setSelection(java.lang.String);
-    method public void setSelectionArgs(java.lang.String[]);
-    method public void setSortOrder(java.lang.String);
-    method public void setUri(android.net.Uri);
+  @Deprecated public class CursorLoader extends android.content.AsyncTaskLoader<android.database.Cursor> {
+    ctor @Deprecated public CursorLoader(android.content.Context);
+    ctor @Deprecated public CursorLoader(android.content.Context, android.net.Uri, String[], String, String[], String);
+    method @Deprecated public void deliverResult(android.database.Cursor);
+    method @Deprecated public String[] getProjection();
+    method @Deprecated public String getSelection();
+    method @Deprecated public String[] getSelectionArgs();
+    method @Deprecated public String getSortOrder();
+    method @Deprecated public android.net.Uri getUri();
+    method @Deprecated public android.database.Cursor loadInBackground();
+    method @Deprecated public void onCanceled(android.database.Cursor);
+    method @Deprecated public void setProjection(String[]);
+    method @Deprecated public void setSelection(String);
+    method @Deprecated public void setSelectionArgs(String[]);
+    method @Deprecated public void setSortOrder(String);
+    method @Deprecated public void setUri(android.net.Uri);
   }
 
-  public abstract interface DialogInterface {
-    method public abstract void cancel();
-    method public abstract void dismiss();
-    field public static final deprecated int BUTTON1 = -1; // 0xffffffff
-    field public static final deprecated int BUTTON2 = -2; // 0xfffffffe
-    field public static final deprecated int BUTTON3 = -3; // 0xfffffffd
+  public interface DialogInterface {
+    method public void cancel();
+    method public void dismiss();
+    field @Deprecated public static final int BUTTON1 = -1; // 0xffffffff
+    field @Deprecated public static final int BUTTON2 = -2; // 0xfffffffe
+    field @Deprecated public static final int BUTTON3 = -3; // 0xfffffffd
     field public static final int BUTTON_NEGATIVE = -2; // 0xfffffffe
     field public static final int BUTTON_NEUTRAL = -3; // 0xfffffffd
     field public static final int BUTTON_POSITIVE = -1; // 0xffffffff
   }
 
-  public static abstract interface DialogInterface.OnCancelListener {
-    method public abstract void onCancel(android.content.DialogInterface);
+  public static interface DialogInterface.OnCancelListener {
+    method public void onCancel(android.content.DialogInterface);
   }
 
-  public static abstract interface DialogInterface.OnClickListener {
-    method public abstract void onClick(android.content.DialogInterface, int);
+  public static interface DialogInterface.OnClickListener {
+    method public void onClick(android.content.DialogInterface, int);
   }
 
-  public static abstract interface DialogInterface.OnDismissListener {
-    method public abstract void onDismiss(android.content.DialogInterface);
+  public static interface DialogInterface.OnDismissListener {
+    method public void onDismiss(android.content.DialogInterface);
   }
 
-  public static abstract interface DialogInterface.OnKeyListener {
-    method public abstract boolean onKey(android.content.DialogInterface, int, android.view.KeyEvent);
+  public static interface DialogInterface.OnKeyListener {
+    method public boolean onKey(android.content.DialogInterface, int, android.view.KeyEvent);
   }
 
-  public static abstract interface DialogInterface.OnMultiChoiceClickListener {
-    method public abstract void onClick(android.content.DialogInterface, int, boolean);
+  public static interface DialogInterface.OnMultiChoiceClickListener {
+    method public void onClick(android.content.DialogInterface, int, boolean);
   }
 
-  public static abstract interface DialogInterface.OnShowListener {
-    method public abstract void onShow(android.content.DialogInterface);
+  public static interface DialogInterface.OnShowListener {
+    method public void onShow(android.content.DialogInterface);
   }
 
   public final class Entity {
@@ -10008,386 +10014,386 @@
     field public final android.content.ContentValues values;
   }
 
-  public abstract interface EntityIterator implements java.util.Iterator {
-    method public abstract void close();
-    method public abstract void reset();
+  public interface EntityIterator extends java.util.Iterator<android.content.Entity> {
+    method public void close();
+    method public void reset();
   }
 
   public class Intent implements java.lang.Cloneable android.os.Parcelable {
     ctor public Intent();
     ctor public Intent(android.content.Intent);
-    ctor public Intent(java.lang.String);
-    ctor public Intent(java.lang.String, android.net.Uri);
-    ctor public Intent(android.content.Context, java.lang.Class<?>);
-    ctor public Intent(java.lang.String, android.net.Uri, android.content.Context, java.lang.Class<?>);
-    method public android.content.Intent addCategory(java.lang.String);
-    method public android.content.Intent addFlags(int);
-    method public java.lang.Object clone();
-    method public android.content.Intent cloneFilter();
-    method public static android.content.Intent createChooser(android.content.Intent, java.lang.CharSequence);
-    method public static android.content.Intent createChooser(android.content.Intent, java.lang.CharSequence, android.content.IntentSender);
+    ctor public Intent(String);
+    ctor public Intent(String, android.net.Uri);
+    ctor public Intent(android.content.Context, Class<?>);
+    ctor public Intent(String, android.net.Uri, android.content.Context, Class<?>);
+    method @NonNull public android.content.Intent addCategory(String);
+    method @NonNull public android.content.Intent addFlags(int);
+    method public Object clone();
+    method @NonNull public android.content.Intent cloneFilter();
+    method public static android.content.Intent createChooser(android.content.Intent, CharSequence);
+    method public static android.content.Intent createChooser(android.content.Intent, CharSequence, android.content.IntentSender);
     method public int describeContents();
-    method public int fillIn(android.content.Intent, int);
+    method public int fillIn(@NonNull android.content.Intent, int);
     method public boolean filterEquals(android.content.Intent);
     method public int filterHashCode();
-    method public java.lang.String getAction();
-    method public boolean[] getBooleanArrayExtra(java.lang.String);
-    method public boolean getBooleanExtra(java.lang.String, boolean);
-    method public android.os.Bundle getBundleExtra(java.lang.String);
-    method public byte[] getByteArrayExtra(java.lang.String);
-    method public byte getByteExtra(java.lang.String, byte);
+    method @Nullable public String getAction();
+    method @Nullable public boolean[] getBooleanArrayExtra(String);
+    method public boolean getBooleanExtra(String, boolean);
+    method @Nullable public android.os.Bundle getBundleExtra(String);
+    method @Nullable public byte[] getByteArrayExtra(String);
+    method public byte getByteExtra(String, byte);
     method public java.util.Set<java.lang.String> getCategories();
-    method public char[] getCharArrayExtra(java.lang.String);
-    method public char getCharExtra(java.lang.String, char);
-    method public java.lang.CharSequence[] getCharSequenceArrayExtra(java.lang.String);
-    method public java.util.ArrayList<java.lang.CharSequence> getCharSequenceArrayListExtra(java.lang.String);
-    method public java.lang.CharSequence getCharSequenceExtra(java.lang.String);
-    method public android.content.ClipData getClipData();
-    method public android.content.ComponentName getComponent();
-    method public android.net.Uri getData();
-    method public java.lang.String getDataString();
-    method public double[] getDoubleArrayExtra(java.lang.String);
-    method public double getDoubleExtra(java.lang.String, double);
-    method public android.os.Bundle getExtras();
+    method @Nullable public char[] getCharArrayExtra(String);
+    method public char getCharExtra(String, char);
+    method @Nullable public CharSequence[] getCharSequenceArrayExtra(String);
+    method @Nullable public java.util.ArrayList<java.lang.CharSequence> getCharSequenceArrayListExtra(String);
+    method @Nullable public CharSequence getCharSequenceExtra(String);
+    method @Nullable public android.content.ClipData getClipData();
+    method @Nullable public android.content.ComponentName getComponent();
+    method @Nullable public android.net.Uri getData();
+    method @Nullable public String getDataString();
+    method @Nullable public double[] getDoubleArrayExtra(String);
+    method public double getDoubleExtra(String, double);
+    method @Nullable public android.os.Bundle getExtras();
     method public int getFlags();
-    method public float[] getFloatArrayExtra(java.lang.String);
-    method public float getFloatExtra(java.lang.String, float);
-    method public int[] getIntArrayExtra(java.lang.String);
-    method public int getIntExtra(java.lang.String, int);
-    method public java.util.ArrayList<java.lang.Integer> getIntegerArrayListExtra(java.lang.String);
-    method public static deprecated android.content.Intent getIntent(java.lang.String) throws java.net.URISyntaxException;
-    method public static android.content.Intent getIntentOld(java.lang.String) throws java.net.URISyntaxException;
-    method public long[] getLongArrayExtra(java.lang.String);
-    method public long getLongExtra(java.lang.String, long);
-    method public java.lang.String getPackage();
-    method public android.os.Parcelable[] getParcelableArrayExtra(java.lang.String);
-    method public <T extends android.os.Parcelable> java.util.ArrayList<T> getParcelableArrayListExtra(java.lang.String);
-    method public <T extends android.os.Parcelable> T getParcelableExtra(java.lang.String);
-    method public java.lang.String getScheme();
-    method public android.content.Intent getSelector();
-    method public java.io.Serializable getSerializableExtra(java.lang.String);
-    method public short[] getShortArrayExtra(java.lang.String);
-    method public short getShortExtra(java.lang.String, short);
-    method public android.graphics.Rect getSourceBounds();
-    method public java.lang.String[] getStringArrayExtra(java.lang.String);
-    method public java.util.ArrayList<java.lang.String> getStringArrayListExtra(java.lang.String);
-    method public java.lang.String getStringExtra(java.lang.String);
-    method public java.lang.String getType();
-    method public boolean hasCategory(java.lang.String);
-    method public boolean hasExtra(java.lang.String);
+    method @Nullable public float[] getFloatArrayExtra(String);
+    method public float getFloatExtra(String, float);
+    method @Nullable public int[] getIntArrayExtra(String);
+    method public int getIntExtra(String, int);
+    method @Nullable public java.util.ArrayList<java.lang.Integer> getIntegerArrayListExtra(String);
+    method @Deprecated public static android.content.Intent getIntent(String) throws java.net.URISyntaxException;
+    method public static android.content.Intent getIntentOld(String) throws java.net.URISyntaxException;
+    method @Nullable public long[] getLongArrayExtra(String);
+    method public long getLongExtra(String, long);
+    method @Nullable public String getPackage();
+    method @Nullable public android.os.Parcelable[] getParcelableArrayExtra(String);
+    method @Nullable public <T extends android.os.Parcelable> java.util.ArrayList<T> getParcelableArrayListExtra(String);
+    method @Nullable public <T extends android.os.Parcelable> T getParcelableExtra(String);
+    method @Nullable public String getScheme();
+    method @Nullable public android.content.Intent getSelector();
+    method @Nullable public java.io.Serializable getSerializableExtra(String);
+    method @Nullable public short[] getShortArrayExtra(String);
+    method public short getShortExtra(String, short);
+    method @Nullable public android.graphics.Rect getSourceBounds();
+    method @Nullable public String[] getStringArrayExtra(String);
+    method @Nullable public java.util.ArrayList<java.lang.String> getStringArrayListExtra(String);
+    method @Nullable public String getStringExtra(String);
+    method @Nullable public String getType();
+    method public boolean hasCategory(String);
+    method public boolean hasExtra(String);
     method public boolean hasFileDescriptors();
     method public static android.content.Intent makeMainActivity(android.content.ComponentName);
-    method public static android.content.Intent makeMainSelectorActivity(java.lang.String, java.lang.String);
+    method public static android.content.Intent makeMainSelectorActivity(String, String);
     method public static android.content.Intent makeRestartActivityTask(android.content.ComponentName);
-    method public static java.lang.String normalizeMimeType(java.lang.String);
-    method public static android.content.Intent parseIntent(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public static android.content.Intent parseUri(java.lang.String, int) throws java.net.URISyntaxException;
-    method public android.content.Intent putCharSequenceArrayListExtra(java.lang.String, java.util.ArrayList<java.lang.CharSequence>);
-    method public android.content.Intent putExtra(java.lang.String, boolean);
-    method public android.content.Intent putExtra(java.lang.String, byte);
-    method public android.content.Intent putExtra(java.lang.String, char);
-    method public android.content.Intent putExtra(java.lang.String, short);
-    method public android.content.Intent putExtra(java.lang.String, int);
-    method public android.content.Intent putExtra(java.lang.String, long);
-    method public android.content.Intent putExtra(java.lang.String, float);
-    method public android.content.Intent putExtra(java.lang.String, double);
-    method public android.content.Intent putExtra(java.lang.String, java.lang.String);
-    method public android.content.Intent putExtra(java.lang.String, java.lang.CharSequence);
-    method public android.content.Intent putExtra(java.lang.String, android.os.Parcelable);
-    method public android.content.Intent putExtra(java.lang.String, android.os.Parcelable[]);
-    method public android.content.Intent putExtra(java.lang.String, java.io.Serializable);
-    method public android.content.Intent putExtra(java.lang.String, boolean[]);
-    method public android.content.Intent putExtra(java.lang.String, byte[]);
-    method public android.content.Intent putExtra(java.lang.String, short[]);
-    method public android.content.Intent putExtra(java.lang.String, char[]);
-    method public android.content.Intent putExtra(java.lang.String, int[]);
-    method public android.content.Intent putExtra(java.lang.String, long[]);
-    method public android.content.Intent putExtra(java.lang.String, float[]);
-    method public android.content.Intent putExtra(java.lang.String, double[]);
-    method public android.content.Intent putExtra(java.lang.String, java.lang.String[]);
-    method public android.content.Intent putExtra(java.lang.String, java.lang.CharSequence[]);
-    method public android.content.Intent putExtra(java.lang.String, android.os.Bundle);
-    method public android.content.Intent putExtras(android.content.Intent);
-    method public android.content.Intent putExtras(android.os.Bundle);
-    method public android.content.Intent putIntegerArrayListExtra(java.lang.String, java.util.ArrayList<java.lang.Integer>);
-    method public android.content.Intent putParcelableArrayListExtra(java.lang.String, java.util.ArrayList<? extends android.os.Parcelable>);
-    method public android.content.Intent putStringArrayListExtra(java.lang.String, java.util.ArrayList<java.lang.String>);
+    method @Nullable public static String normalizeMimeType(@Nullable String);
+    method @NonNull public static android.content.Intent parseIntent(@NonNull android.content.res.Resources, @NonNull org.xmlpull.v1.XmlPullParser, android.util.AttributeSet) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public static android.content.Intent parseUri(String, int) throws java.net.URISyntaxException;
+    method @NonNull public android.content.Intent putCharSequenceArrayListExtra(String, @Nullable java.util.ArrayList<java.lang.CharSequence>);
+    method @NonNull public android.content.Intent putExtra(String, boolean);
+    method @NonNull public android.content.Intent putExtra(String, byte);
+    method @NonNull public android.content.Intent putExtra(String, char);
+    method @NonNull public android.content.Intent putExtra(String, short);
+    method @NonNull public android.content.Intent putExtra(String, int);
+    method @NonNull public android.content.Intent putExtra(String, long);
+    method @NonNull public android.content.Intent putExtra(String, float);
+    method @NonNull public android.content.Intent putExtra(String, double);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable String);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable CharSequence);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable android.os.Parcelable);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable android.os.Parcelable[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable java.io.Serializable);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable boolean[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable byte[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable short[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable char[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable int[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable long[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable float[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable double[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable String[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable CharSequence[]);
+    method @NonNull public android.content.Intent putExtra(String, @Nullable android.os.Bundle);
+    method @NonNull public android.content.Intent putExtras(@NonNull android.content.Intent);
+    method @NonNull public android.content.Intent putExtras(@NonNull android.os.Bundle);
+    method @NonNull public android.content.Intent putIntegerArrayListExtra(String, @Nullable java.util.ArrayList<java.lang.Integer>);
+    method @NonNull public android.content.Intent putParcelableArrayListExtra(String, @Nullable java.util.ArrayList<? extends android.os.Parcelable>);
+    method @NonNull public android.content.Intent putStringArrayListExtra(String, @Nullable java.util.ArrayList<java.lang.String>);
     method public void readFromParcel(android.os.Parcel);
-    method public void removeCategory(java.lang.String);
-    method public void removeExtra(java.lang.String);
+    method public void removeCategory(String);
+    method public void removeExtra(String);
     method public void removeFlags(int);
-    method public android.content.Intent replaceExtras(android.content.Intent);
-    method public android.content.Intent replaceExtras(android.os.Bundle);
-    method public android.content.ComponentName resolveActivity(android.content.pm.PackageManager);
-    method public android.content.pm.ActivityInfo resolveActivityInfo(android.content.pm.PackageManager, int);
-    method public java.lang.String resolveType(android.content.Context);
-    method public java.lang.String resolveType(android.content.ContentResolver);
-    method public java.lang.String resolveTypeIfNeeded(android.content.ContentResolver);
-    method public android.content.Intent setAction(java.lang.String);
-    method public android.content.Intent setClass(android.content.Context, java.lang.Class<?>);
-    method public android.content.Intent setClassName(android.content.Context, java.lang.String);
-    method public android.content.Intent setClassName(java.lang.String, java.lang.String);
-    method public void setClipData(android.content.ClipData);
-    method public android.content.Intent setComponent(android.content.ComponentName);
-    method public android.content.Intent setData(android.net.Uri);
-    method public android.content.Intent setDataAndNormalize(android.net.Uri);
-    method public android.content.Intent setDataAndType(android.net.Uri, java.lang.String);
-    method public android.content.Intent setDataAndTypeAndNormalize(android.net.Uri, java.lang.String);
-    method public void setExtrasClassLoader(java.lang.ClassLoader);
-    method public android.content.Intent setFlags(int);
-    method public android.content.Intent setPackage(java.lang.String);
-    method public void setSelector(android.content.Intent);
-    method public void setSourceBounds(android.graphics.Rect);
-    method public android.content.Intent setType(java.lang.String);
-    method public android.content.Intent setTypeAndNormalize(java.lang.String);
-    method public deprecated java.lang.String toURI();
-    method public java.lang.String toUri(int);
+    method @NonNull public android.content.Intent replaceExtras(@NonNull android.content.Intent);
+    method @NonNull public android.content.Intent replaceExtras(@Nullable android.os.Bundle);
+    method public android.content.ComponentName resolveActivity(@NonNull android.content.pm.PackageManager);
+    method public android.content.pm.ActivityInfo resolveActivityInfo(@NonNull android.content.pm.PackageManager, int);
+    method @Nullable public String resolveType(@NonNull android.content.Context);
+    method @Nullable public String resolveType(@NonNull android.content.ContentResolver);
+    method @Nullable public String resolveTypeIfNeeded(@NonNull android.content.ContentResolver);
+    method @NonNull public android.content.Intent setAction(@Nullable String);
+    method @NonNull public android.content.Intent setClass(@NonNull android.content.Context, @NonNull Class<?>);
+    method @NonNull public android.content.Intent setClassName(@NonNull android.content.Context, @NonNull String);
+    method @NonNull public android.content.Intent setClassName(@NonNull String, @NonNull String);
+    method public void setClipData(@Nullable android.content.ClipData);
+    method @NonNull public android.content.Intent setComponent(@Nullable android.content.ComponentName);
+    method @NonNull public android.content.Intent setData(@Nullable android.net.Uri);
+    method @NonNull public android.content.Intent setDataAndNormalize(@NonNull android.net.Uri);
+    method @NonNull public android.content.Intent setDataAndType(@Nullable android.net.Uri, @Nullable String);
+    method @NonNull public android.content.Intent setDataAndTypeAndNormalize(@NonNull android.net.Uri, @Nullable String);
+    method public void setExtrasClassLoader(@Nullable ClassLoader);
+    method @NonNull public android.content.Intent setFlags(int);
+    method @NonNull public android.content.Intent setPackage(@Nullable String);
+    method public void setSelector(@Nullable android.content.Intent);
+    method public void setSourceBounds(@Nullable android.graphics.Rect);
+    method @NonNull public android.content.Intent setType(@Nullable String);
+    method @NonNull public android.content.Intent setTypeAndNormalize(@Nullable String);
+    method @Deprecated public String toURI();
+    method public String toUri(int);
     method public void writeToParcel(android.os.Parcel, int);
-    field public static final java.lang.String ACTION_AIRPLANE_MODE_CHANGED = "android.intent.action.AIRPLANE_MODE";
-    field public static final java.lang.String ACTION_ALL_APPS = "android.intent.action.ALL_APPS";
-    field public static final java.lang.String ACTION_ANSWER = "android.intent.action.ANSWER";
-    field public static final java.lang.String ACTION_APPLICATION_PREFERENCES = "android.intent.action.APPLICATION_PREFERENCES";
-    field public static final java.lang.String ACTION_APPLICATION_RESTRICTIONS_CHANGED = "android.intent.action.APPLICATION_RESTRICTIONS_CHANGED";
-    field public static final java.lang.String ACTION_APP_ERROR = "android.intent.action.APP_ERROR";
-    field public static final java.lang.String ACTION_ASSIST = "android.intent.action.ASSIST";
-    field public static final java.lang.String ACTION_ATTACH_DATA = "android.intent.action.ATTACH_DATA";
-    field public static final java.lang.String ACTION_BATTERY_CHANGED = "android.intent.action.BATTERY_CHANGED";
-    field public static final java.lang.String ACTION_BATTERY_LOW = "android.intent.action.BATTERY_LOW";
-    field public static final java.lang.String ACTION_BATTERY_OKAY = "android.intent.action.BATTERY_OKAY";
-    field public static final java.lang.String ACTION_BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED";
-    field public static final java.lang.String ACTION_BUG_REPORT = "android.intent.action.BUG_REPORT";
-    field public static final java.lang.String ACTION_CALL = "android.intent.action.CALL";
-    field public static final java.lang.String ACTION_CALL_BUTTON = "android.intent.action.CALL_BUTTON";
-    field public static final java.lang.String ACTION_CAMERA_BUTTON = "android.intent.action.CAMERA_BUTTON";
-    field public static final java.lang.String ACTION_CARRIER_SETUP = "android.intent.action.CARRIER_SETUP";
-    field public static final java.lang.String ACTION_CHOOSER = "android.intent.action.CHOOSER";
-    field public static final java.lang.String ACTION_CLOSE_SYSTEM_DIALOGS = "android.intent.action.CLOSE_SYSTEM_DIALOGS";
-    field public static final java.lang.String ACTION_CONFIGURATION_CHANGED = "android.intent.action.CONFIGURATION_CHANGED";
-    field public static final java.lang.String ACTION_CREATE_DOCUMENT = "android.intent.action.CREATE_DOCUMENT";
-    field public static final java.lang.String ACTION_CREATE_SHORTCUT = "android.intent.action.CREATE_SHORTCUT";
-    field public static final java.lang.String ACTION_DATE_CHANGED = "android.intent.action.DATE_CHANGED";
-    field public static final java.lang.String ACTION_DEFAULT = "android.intent.action.VIEW";
-    field public static final java.lang.String ACTION_DEFINE = "android.intent.action.DEFINE";
-    field public static final java.lang.String ACTION_DELETE = "android.intent.action.DELETE";
-    field public static final deprecated java.lang.String ACTION_DEVICE_STORAGE_LOW = "android.intent.action.DEVICE_STORAGE_LOW";
-    field public static final deprecated java.lang.String ACTION_DEVICE_STORAGE_OK = "android.intent.action.DEVICE_STORAGE_OK";
-    field public static final java.lang.String ACTION_DIAL = "android.intent.action.DIAL";
-    field public static final java.lang.String ACTION_DOCK_EVENT = "android.intent.action.DOCK_EVENT";
-    field public static final java.lang.String ACTION_DREAMING_STARTED = "android.intent.action.DREAMING_STARTED";
-    field public static final java.lang.String ACTION_DREAMING_STOPPED = "android.intent.action.DREAMING_STOPPED";
-    field public static final java.lang.String ACTION_EDIT = "android.intent.action.EDIT";
-    field public static final java.lang.String ACTION_EXTERNAL_APPLICATIONS_AVAILABLE = "android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE";
-    field public static final java.lang.String ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE = "android.intent.action.EXTERNAL_APPLICATIONS_UNAVAILABLE";
-    field public static final java.lang.String ACTION_FACTORY_TEST = "android.intent.action.FACTORY_TEST";
-    field public static final java.lang.String ACTION_GET_CONTENT = "android.intent.action.GET_CONTENT";
-    field public static final java.lang.String ACTION_GET_RESTRICTION_ENTRIES = "android.intent.action.GET_RESTRICTION_ENTRIES";
-    field public static final java.lang.String ACTION_GTALK_SERVICE_CONNECTED = "android.intent.action.GTALK_CONNECTED";
-    field public static final java.lang.String ACTION_GTALK_SERVICE_DISCONNECTED = "android.intent.action.GTALK_DISCONNECTED";
-    field public static final java.lang.String ACTION_HEADSET_PLUG = "android.intent.action.HEADSET_PLUG";
-    field public static final java.lang.String ACTION_INPUT_METHOD_CHANGED = "android.intent.action.INPUT_METHOD_CHANGED";
-    field public static final java.lang.String ACTION_INSERT = "android.intent.action.INSERT";
-    field public static final java.lang.String ACTION_INSERT_OR_EDIT = "android.intent.action.INSERT_OR_EDIT";
-    field public static final java.lang.String ACTION_INSTALL_FAILURE = "android.intent.action.INSTALL_FAILURE";
-    field public static final deprecated java.lang.String ACTION_INSTALL_PACKAGE = "android.intent.action.INSTALL_PACKAGE";
-    field public static final java.lang.String ACTION_LOCALE_CHANGED = "android.intent.action.LOCALE_CHANGED";
-    field public static final java.lang.String ACTION_LOCKED_BOOT_COMPLETED = "android.intent.action.LOCKED_BOOT_COMPLETED";
-    field public static final java.lang.String ACTION_MAIN = "android.intent.action.MAIN";
-    field public static final java.lang.String ACTION_MANAGED_PROFILE_ADDED = "android.intent.action.MANAGED_PROFILE_ADDED";
-    field public static final java.lang.String ACTION_MANAGED_PROFILE_AVAILABLE = "android.intent.action.MANAGED_PROFILE_AVAILABLE";
-    field public static final java.lang.String ACTION_MANAGED_PROFILE_REMOVED = "android.intent.action.MANAGED_PROFILE_REMOVED";
-    field public static final java.lang.String ACTION_MANAGED_PROFILE_UNAVAILABLE = "android.intent.action.MANAGED_PROFILE_UNAVAILABLE";
-    field public static final java.lang.String ACTION_MANAGED_PROFILE_UNLOCKED = "android.intent.action.MANAGED_PROFILE_UNLOCKED";
-    field public static final java.lang.String ACTION_MANAGE_NETWORK_USAGE = "android.intent.action.MANAGE_NETWORK_USAGE";
-    field public static final java.lang.String ACTION_MANAGE_PACKAGE_STORAGE = "android.intent.action.MANAGE_PACKAGE_STORAGE";
-    field public static final java.lang.String ACTION_MEDIA_BAD_REMOVAL = "android.intent.action.MEDIA_BAD_REMOVAL";
-    field public static final java.lang.String ACTION_MEDIA_BUTTON = "android.intent.action.MEDIA_BUTTON";
-    field public static final java.lang.String ACTION_MEDIA_CHECKING = "android.intent.action.MEDIA_CHECKING";
-    field public static final java.lang.String ACTION_MEDIA_EJECT = "android.intent.action.MEDIA_EJECT";
-    field public static final java.lang.String ACTION_MEDIA_MOUNTED = "android.intent.action.MEDIA_MOUNTED";
-    field public static final java.lang.String ACTION_MEDIA_NOFS = "android.intent.action.MEDIA_NOFS";
-    field public static final java.lang.String ACTION_MEDIA_REMOVED = "android.intent.action.MEDIA_REMOVED";
-    field public static final java.lang.String ACTION_MEDIA_SCANNER_FINISHED = "android.intent.action.MEDIA_SCANNER_FINISHED";
-    field public static final java.lang.String ACTION_MEDIA_SCANNER_SCAN_FILE = "android.intent.action.MEDIA_SCANNER_SCAN_FILE";
-    field public static final java.lang.String ACTION_MEDIA_SCANNER_STARTED = "android.intent.action.MEDIA_SCANNER_STARTED";
-    field public static final java.lang.String ACTION_MEDIA_SHARED = "android.intent.action.MEDIA_SHARED";
-    field public static final java.lang.String ACTION_MEDIA_UNMOUNTABLE = "android.intent.action.MEDIA_UNMOUNTABLE";
-    field public static final java.lang.String ACTION_MEDIA_UNMOUNTED = "android.intent.action.MEDIA_UNMOUNTED";
-    field public static final java.lang.String ACTION_MY_PACKAGE_REPLACED = "android.intent.action.MY_PACKAGE_REPLACED";
-    field public static final java.lang.String ACTION_MY_PACKAGE_SUSPENDED = "android.intent.action.MY_PACKAGE_SUSPENDED";
-    field public static final java.lang.String ACTION_MY_PACKAGE_UNSUSPENDED = "android.intent.action.MY_PACKAGE_UNSUSPENDED";
-    field public static final java.lang.String ACTION_NEW_OUTGOING_CALL = "android.intent.action.NEW_OUTGOING_CALL";
-    field public static final java.lang.String ACTION_OPEN_DOCUMENT = "android.intent.action.OPEN_DOCUMENT";
-    field public static final java.lang.String ACTION_OPEN_DOCUMENT_TREE = "android.intent.action.OPEN_DOCUMENT_TREE";
-    field public static final java.lang.String ACTION_PACKAGES_SUSPENDED = "android.intent.action.PACKAGES_SUSPENDED";
-    field public static final java.lang.String ACTION_PACKAGES_UNSUSPENDED = "android.intent.action.PACKAGES_UNSUSPENDED";
-    field public static final java.lang.String ACTION_PACKAGE_ADDED = "android.intent.action.PACKAGE_ADDED";
-    field public static final java.lang.String ACTION_PACKAGE_CHANGED = "android.intent.action.PACKAGE_CHANGED";
-    field public static final java.lang.String ACTION_PACKAGE_DATA_CLEARED = "android.intent.action.PACKAGE_DATA_CLEARED";
-    field public static final java.lang.String ACTION_PACKAGE_FIRST_LAUNCH = "android.intent.action.PACKAGE_FIRST_LAUNCH";
-    field public static final java.lang.String ACTION_PACKAGE_FULLY_REMOVED = "android.intent.action.PACKAGE_FULLY_REMOVED";
-    field public static final deprecated java.lang.String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL";
-    field public static final java.lang.String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION";
-    field public static final java.lang.String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED";
-    field public static final java.lang.String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED";
-    field public static final java.lang.String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED";
-    field public static final java.lang.String ACTION_PACKAGE_VERIFIED = "android.intent.action.PACKAGE_VERIFIED";
-    field public static final java.lang.String ACTION_PASTE = "android.intent.action.PASTE";
-    field public static final java.lang.String ACTION_PERMISSION_USAGE_DETAILS = "android.intent.action.PERMISSION_USAGE_DETAILS";
-    field public static final java.lang.String ACTION_PICK = "android.intent.action.PICK";
-    field public static final java.lang.String ACTION_PICK_ACTIVITY = "android.intent.action.PICK_ACTIVITY";
-    field public static final java.lang.String ACTION_POWER_CONNECTED = "android.intent.action.ACTION_POWER_CONNECTED";
-    field public static final java.lang.String ACTION_POWER_DISCONNECTED = "android.intent.action.ACTION_POWER_DISCONNECTED";
-    field public static final java.lang.String ACTION_POWER_USAGE_SUMMARY = "android.intent.action.POWER_USAGE_SUMMARY";
-    field public static final java.lang.String ACTION_PROCESS_TEXT = "android.intent.action.PROCESS_TEXT";
-    field public static final java.lang.String ACTION_PROVIDER_CHANGED = "android.intent.action.PROVIDER_CHANGED";
-    field public static final java.lang.String ACTION_QUICK_CLOCK = "android.intent.action.QUICK_CLOCK";
-    field public static final java.lang.String ACTION_QUICK_VIEW = "android.intent.action.QUICK_VIEW";
-    field public static final java.lang.String ACTION_REBOOT = "android.intent.action.REBOOT";
-    field public static final java.lang.String ACTION_RUN = "android.intent.action.RUN";
-    field public static final java.lang.String ACTION_SCREEN_OFF = "android.intent.action.SCREEN_OFF";
-    field public static final java.lang.String ACTION_SCREEN_ON = "android.intent.action.SCREEN_ON";
-    field public static final java.lang.String ACTION_SEARCH = "android.intent.action.SEARCH";
-    field public static final java.lang.String ACTION_SEARCH_LONG_PRESS = "android.intent.action.SEARCH_LONG_PRESS";
-    field public static final java.lang.String ACTION_SEND = "android.intent.action.SEND";
-    field public static final java.lang.String ACTION_SENDTO = "android.intent.action.SENDTO";
-    field public static final java.lang.String ACTION_SEND_MULTIPLE = "android.intent.action.SEND_MULTIPLE";
-    field public static final java.lang.String ACTION_SET_WALLPAPER = "android.intent.action.SET_WALLPAPER";
-    field public static final java.lang.String ACTION_SHOW_APP_INFO = "android.intent.action.SHOW_APP_INFO";
-    field public static final java.lang.String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN";
-    field public static final java.lang.String ACTION_SYNC = "android.intent.action.SYNC";
-    field public static final java.lang.String ACTION_SYSTEM_TUTORIAL = "android.intent.action.SYSTEM_TUTORIAL";
-    field public static final java.lang.String ACTION_TIMEZONE_CHANGED = "android.intent.action.TIMEZONE_CHANGED";
-    field public static final java.lang.String ACTION_TIME_CHANGED = "android.intent.action.TIME_SET";
-    field public static final java.lang.String ACTION_TIME_TICK = "android.intent.action.TIME_TICK";
-    field public static final java.lang.String ACTION_TRANSLATE = "android.intent.action.TRANSLATE";
-    field public static final java.lang.String ACTION_UID_REMOVED = "android.intent.action.UID_REMOVED";
-    field public static final deprecated java.lang.String ACTION_UMS_CONNECTED = "android.intent.action.UMS_CONNECTED";
-    field public static final deprecated java.lang.String ACTION_UMS_DISCONNECTED = "android.intent.action.UMS_DISCONNECTED";
-    field public static final deprecated java.lang.String ACTION_UNINSTALL_PACKAGE = "android.intent.action.UNINSTALL_PACKAGE";
-    field public static final java.lang.String ACTION_USER_BACKGROUND = "android.intent.action.USER_BACKGROUND";
-    field public static final java.lang.String ACTION_USER_FOREGROUND = "android.intent.action.USER_FOREGROUND";
-    field public static final java.lang.String ACTION_USER_INITIALIZE = "android.intent.action.USER_INITIALIZE";
-    field public static final java.lang.String ACTION_USER_PRESENT = "android.intent.action.USER_PRESENT";
-    field public static final java.lang.String ACTION_USER_UNLOCKED = "android.intent.action.USER_UNLOCKED";
-    field public static final java.lang.String ACTION_VIEW = "android.intent.action.VIEW";
-    field public static final java.lang.String ACTION_VOICE_COMMAND = "android.intent.action.VOICE_COMMAND";
-    field public static final deprecated java.lang.String ACTION_WALLPAPER_CHANGED = "android.intent.action.WALLPAPER_CHANGED";
-    field public static final java.lang.String ACTION_WEB_SEARCH = "android.intent.action.WEB_SEARCH";
-    field public static final java.lang.String CATEGORY_ALTERNATIVE = "android.intent.category.ALTERNATIVE";
-    field public static final java.lang.String CATEGORY_APP_BROWSER = "android.intent.category.APP_BROWSER";
-    field public static final java.lang.String CATEGORY_APP_CALCULATOR = "android.intent.category.APP_CALCULATOR";
-    field public static final java.lang.String CATEGORY_APP_CALENDAR = "android.intent.category.APP_CALENDAR";
-    field public static final java.lang.String CATEGORY_APP_CONTACTS = "android.intent.category.APP_CONTACTS";
-    field public static final java.lang.String CATEGORY_APP_EMAIL = "android.intent.category.APP_EMAIL";
-    field public static final java.lang.String CATEGORY_APP_GALLERY = "android.intent.category.APP_GALLERY";
-    field public static final java.lang.String CATEGORY_APP_MAPS = "android.intent.category.APP_MAPS";
-    field public static final java.lang.String CATEGORY_APP_MARKET = "android.intent.category.APP_MARKET";
-    field public static final java.lang.String CATEGORY_APP_MESSAGING = "android.intent.category.APP_MESSAGING";
-    field public static final java.lang.String CATEGORY_APP_MUSIC = "android.intent.category.APP_MUSIC";
-    field public static final java.lang.String CATEGORY_BROWSABLE = "android.intent.category.BROWSABLE";
-    field public static final java.lang.String CATEGORY_CAR_DOCK = "android.intent.category.CAR_DOCK";
-    field public static final java.lang.String CATEGORY_CAR_MODE = "android.intent.category.CAR_MODE";
-    field public static final java.lang.String CATEGORY_DEFAULT = "android.intent.category.DEFAULT";
-    field public static final java.lang.String CATEGORY_DESK_DOCK = "android.intent.category.DESK_DOCK";
-    field public static final java.lang.String CATEGORY_DEVELOPMENT_PREFERENCE = "android.intent.category.DEVELOPMENT_PREFERENCE";
-    field public static final java.lang.String CATEGORY_EMBED = "android.intent.category.EMBED";
-    field public static final java.lang.String CATEGORY_FRAMEWORK_INSTRUMENTATION_TEST = "android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST";
-    field public static final java.lang.String CATEGORY_HE_DESK_DOCK = "android.intent.category.HE_DESK_DOCK";
-    field public static final java.lang.String CATEGORY_HOME = "android.intent.category.HOME";
-    field public static final java.lang.String CATEGORY_INFO = "android.intent.category.INFO";
-    field public static final java.lang.String CATEGORY_LAUNCHER = "android.intent.category.LAUNCHER";
-    field public static final java.lang.String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
-    field public static final java.lang.String CATEGORY_LE_DESK_DOCK = "android.intent.category.LE_DESK_DOCK";
-    field public static final java.lang.String CATEGORY_MONKEY = "android.intent.category.MONKEY";
-    field public static final java.lang.String CATEGORY_OPENABLE = "android.intent.category.OPENABLE";
-    field public static final java.lang.String CATEGORY_PREFERENCE = "android.intent.category.PREFERENCE";
-    field public static final java.lang.String CATEGORY_SAMPLE_CODE = "android.intent.category.SAMPLE_CODE";
-    field public static final java.lang.String CATEGORY_SECONDARY_HOME = "android.intent.category.SECONDARY_HOME";
-    field public static final java.lang.String CATEGORY_SELECTED_ALTERNATIVE = "android.intent.category.SELECTED_ALTERNATIVE";
-    field public static final java.lang.String CATEGORY_TAB = "android.intent.category.TAB";
-    field public static final java.lang.String CATEGORY_TEST = "android.intent.category.TEST";
-    field public static final java.lang.String CATEGORY_TYPED_OPENABLE = "android.intent.category.TYPED_OPENABLE";
-    field public static final java.lang.String CATEGORY_UNIT_TEST = "android.intent.category.UNIT_TEST";
-    field public static final java.lang.String CATEGORY_VOICE = "android.intent.category.VOICE";
-    field public static final java.lang.String CATEGORY_VR_HOME = "android.intent.category.VR_HOME";
+    field public static final String ACTION_AIRPLANE_MODE_CHANGED = "android.intent.action.AIRPLANE_MODE";
+    field public static final String ACTION_ALL_APPS = "android.intent.action.ALL_APPS";
+    field public static final String ACTION_ANSWER = "android.intent.action.ANSWER";
+    field public static final String ACTION_APPLICATION_PREFERENCES = "android.intent.action.APPLICATION_PREFERENCES";
+    field public static final String ACTION_APPLICATION_RESTRICTIONS_CHANGED = "android.intent.action.APPLICATION_RESTRICTIONS_CHANGED";
+    field public static final String ACTION_APP_ERROR = "android.intent.action.APP_ERROR";
+    field public static final String ACTION_ASSIST = "android.intent.action.ASSIST";
+    field public static final String ACTION_ATTACH_DATA = "android.intent.action.ATTACH_DATA";
+    field public static final String ACTION_BATTERY_CHANGED = "android.intent.action.BATTERY_CHANGED";
+    field public static final String ACTION_BATTERY_LOW = "android.intent.action.BATTERY_LOW";
+    field public static final String ACTION_BATTERY_OKAY = "android.intent.action.BATTERY_OKAY";
+    field public static final String ACTION_BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED";
+    field public static final String ACTION_BUG_REPORT = "android.intent.action.BUG_REPORT";
+    field public static final String ACTION_CALL = "android.intent.action.CALL";
+    field public static final String ACTION_CALL_BUTTON = "android.intent.action.CALL_BUTTON";
+    field public static final String ACTION_CAMERA_BUTTON = "android.intent.action.CAMERA_BUTTON";
+    field public static final String ACTION_CARRIER_SETUP = "android.intent.action.CARRIER_SETUP";
+    field public static final String ACTION_CHOOSER = "android.intent.action.CHOOSER";
+    field public static final String ACTION_CLOSE_SYSTEM_DIALOGS = "android.intent.action.CLOSE_SYSTEM_DIALOGS";
+    field public static final String ACTION_CONFIGURATION_CHANGED = "android.intent.action.CONFIGURATION_CHANGED";
+    field public static final String ACTION_CREATE_DOCUMENT = "android.intent.action.CREATE_DOCUMENT";
+    field public static final String ACTION_CREATE_SHORTCUT = "android.intent.action.CREATE_SHORTCUT";
+    field public static final String ACTION_DATE_CHANGED = "android.intent.action.DATE_CHANGED";
+    field public static final String ACTION_DEFAULT = "android.intent.action.VIEW";
+    field public static final String ACTION_DEFINE = "android.intent.action.DEFINE";
+    field public static final String ACTION_DELETE = "android.intent.action.DELETE";
+    field @Deprecated public static final String ACTION_DEVICE_STORAGE_LOW = "android.intent.action.DEVICE_STORAGE_LOW";
+    field @Deprecated public static final String ACTION_DEVICE_STORAGE_OK = "android.intent.action.DEVICE_STORAGE_OK";
+    field public static final String ACTION_DIAL = "android.intent.action.DIAL";
+    field public static final String ACTION_DOCK_EVENT = "android.intent.action.DOCK_EVENT";
+    field public static final String ACTION_DREAMING_STARTED = "android.intent.action.DREAMING_STARTED";
+    field public static final String ACTION_DREAMING_STOPPED = "android.intent.action.DREAMING_STOPPED";
+    field public static final String ACTION_EDIT = "android.intent.action.EDIT";
+    field public static final String ACTION_EXTERNAL_APPLICATIONS_AVAILABLE = "android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE";
+    field public static final String ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE = "android.intent.action.EXTERNAL_APPLICATIONS_UNAVAILABLE";
+    field public static final String ACTION_FACTORY_TEST = "android.intent.action.FACTORY_TEST";
+    field public static final String ACTION_GET_CONTENT = "android.intent.action.GET_CONTENT";
+    field public static final String ACTION_GET_RESTRICTION_ENTRIES = "android.intent.action.GET_RESTRICTION_ENTRIES";
+    field public static final String ACTION_GTALK_SERVICE_CONNECTED = "android.intent.action.GTALK_CONNECTED";
+    field public static final String ACTION_GTALK_SERVICE_DISCONNECTED = "android.intent.action.GTALK_DISCONNECTED";
+    field public static final String ACTION_HEADSET_PLUG = "android.intent.action.HEADSET_PLUG";
+    field public static final String ACTION_INPUT_METHOD_CHANGED = "android.intent.action.INPUT_METHOD_CHANGED";
+    field public static final String ACTION_INSERT = "android.intent.action.INSERT";
+    field public static final String ACTION_INSERT_OR_EDIT = "android.intent.action.INSERT_OR_EDIT";
+    field public static final String ACTION_INSTALL_FAILURE = "android.intent.action.INSTALL_FAILURE";
+    field @Deprecated public static final String ACTION_INSTALL_PACKAGE = "android.intent.action.INSTALL_PACKAGE";
+    field public static final String ACTION_LOCALE_CHANGED = "android.intent.action.LOCALE_CHANGED";
+    field public static final String ACTION_LOCKED_BOOT_COMPLETED = "android.intent.action.LOCKED_BOOT_COMPLETED";
+    field public static final String ACTION_MAIN = "android.intent.action.MAIN";
+    field public static final String ACTION_MANAGED_PROFILE_ADDED = "android.intent.action.MANAGED_PROFILE_ADDED";
+    field public static final String ACTION_MANAGED_PROFILE_AVAILABLE = "android.intent.action.MANAGED_PROFILE_AVAILABLE";
+    field public static final String ACTION_MANAGED_PROFILE_REMOVED = "android.intent.action.MANAGED_PROFILE_REMOVED";
+    field public static final String ACTION_MANAGED_PROFILE_UNAVAILABLE = "android.intent.action.MANAGED_PROFILE_UNAVAILABLE";
+    field public static final String ACTION_MANAGED_PROFILE_UNLOCKED = "android.intent.action.MANAGED_PROFILE_UNLOCKED";
+    field public static final String ACTION_MANAGE_NETWORK_USAGE = "android.intent.action.MANAGE_NETWORK_USAGE";
+    field public static final String ACTION_MANAGE_PACKAGE_STORAGE = "android.intent.action.MANAGE_PACKAGE_STORAGE";
+    field public static final String ACTION_MEDIA_BAD_REMOVAL = "android.intent.action.MEDIA_BAD_REMOVAL";
+    field public static final String ACTION_MEDIA_BUTTON = "android.intent.action.MEDIA_BUTTON";
+    field public static final String ACTION_MEDIA_CHECKING = "android.intent.action.MEDIA_CHECKING";
+    field public static final String ACTION_MEDIA_EJECT = "android.intent.action.MEDIA_EJECT";
+    field public static final String ACTION_MEDIA_MOUNTED = "android.intent.action.MEDIA_MOUNTED";
+    field public static final String ACTION_MEDIA_NOFS = "android.intent.action.MEDIA_NOFS";
+    field public static final String ACTION_MEDIA_REMOVED = "android.intent.action.MEDIA_REMOVED";
+    field public static final String ACTION_MEDIA_SCANNER_FINISHED = "android.intent.action.MEDIA_SCANNER_FINISHED";
+    field public static final String ACTION_MEDIA_SCANNER_SCAN_FILE = "android.intent.action.MEDIA_SCANNER_SCAN_FILE";
+    field public static final String ACTION_MEDIA_SCANNER_STARTED = "android.intent.action.MEDIA_SCANNER_STARTED";
+    field public static final String ACTION_MEDIA_SHARED = "android.intent.action.MEDIA_SHARED";
+    field public static final String ACTION_MEDIA_UNMOUNTABLE = "android.intent.action.MEDIA_UNMOUNTABLE";
+    field public static final String ACTION_MEDIA_UNMOUNTED = "android.intent.action.MEDIA_UNMOUNTED";
+    field public static final String ACTION_MY_PACKAGE_REPLACED = "android.intent.action.MY_PACKAGE_REPLACED";
+    field public static final String ACTION_MY_PACKAGE_SUSPENDED = "android.intent.action.MY_PACKAGE_SUSPENDED";
+    field public static final String ACTION_MY_PACKAGE_UNSUSPENDED = "android.intent.action.MY_PACKAGE_UNSUSPENDED";
+    field public static final String ACTION_NEW_OUTGOING_CALL = "android.intent.action.NEW_OUTGOING_CALL";
+    field public static final String ACTION_OPEN_DOCUMENT = "android.intent.action.OPEN_DOCUMENT";
+    field public static final String ACTION_OPEN_DOCUMENT_TREE = "android.intent.action.OPEN_DOCUMENT_TREE";
+    field public static final String ACTION_PACKAGES_SUSPENDED = "android.intent.action.PACKAGES_SUSPENDED";
+    field public static final String ACTION_PACKAGES_UNSUSPENDED = "android.intent.action.PACKAGES_UNSUSPENDED";
+    field public static final String ACTION_PACKAGE_ADDED = "android.intent.action.PACKAGE_ADDED";
+    field public static final String ACTION_PACKAGE_CHANGED = "android.intent.action.PACKAGE_CHANGED";
+    field public static final String ACTION_PACKAGE_DATA_CLEARED = "android.intent.action.PACKAGE_DATA_CLEARED";
+    field public static final String ACTION_PACKAGE_FIRST_LAUNCH = "android.intent.action.PACKAGE_FIRST_LAUNCH";
+    field public static final String ACTION_PACKAGE_FULLY_REMOVED = "android.intent.action.PACKAGE_FULLY_REMOVED";
+    field @Deprecated public static final String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL";
+    field public static final String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION";
+    field public static final String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED";
+    field public static final String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED";
+    field public static final String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED";
+    field public static final String ACTION_PACKAGE_VERIFIED = "android.intent.action.PACKAGE_VERIFIED";
+    field public static final String ACTION_PASTE = "android.intent.action.PASTE";
+    field public static final String ACTION_PERMISSION_USAGE_DETAILS = "android.intent.action.PERMISSION_USAGE_DETAILS";
+    field public static final String ACTION_PICK = "android.intent.action.PICK";
+    field public static final String ACTION_PICK_ACTIVITY = "android.intent.action.PICK_ACTIVITY";
+    field public static final String ACTION_POWER_CONNECTED = "android.intent.action.ACTION_POWER_CONNECTED";
+    field public static final String ACTION_POWER_DISCONNECTED = "android.intent.action.ACTION_POWER_DISCONNECTED";
+    field public static final String ACTION_POWER_USAGE_SUMMARY = "android.intent.action.POWER_USAGE_SUMMARY";
+    field public static final String ACTION_PROCESS_TEXT = "android.intent.action.PROCESS_TEXT";
+    field public static final String ACTION_PROVIDER_CHANGED = "android.intent.action.PROVIDER_CHANGED";
+    field public static final String ACTION_QUICK_CLOCK = "android.intent.action.QUICK_CLOCK";
+    field public static final String ACTION_QUICK_VIEW = "android.intent.action.QUICK_VIEW";
+    field public static final String ACTION_REBOOT = "android.intent.action.REBOOT";
+    field public static final String ACTION_RUN = "android.intent.action.RUN";
+    field public static final String ACTION_SCREEN_OFF = "android.intent.action.SCREEN_OFF";
+    field public static final String ACTION_SCREEN_ON = "android.intent.action.SCREEN_ON";
+    field public static final String ACTION_SEARCH = "android.intent.action.SEARCH";
+    field public static final String ACTION_SEARCH_LONG_PRESS = "android.intent.action.SEARCH_LONG_PRESS";
+    field public static final String ACTION_SEND = "android.intent.action.SEND";
+    field public static final String ACTION_SENDTO = "android.intent.action.SENDTO";
+    field public static final String ACTION_SEND_MULTIPLE = "android.intent.action.SEND_MULTIPLE";
+    field public static final String ACTION_SET_WALLPAPER = "android.intent.action.SET_WALLPAPER";
+    field public static final String ACTION_SHOW_APP_INFO = "android.intent.action.SHOW_APP_INFO";
+    field public static final String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN";
+    field public static final String ACTION_SYNC = "android.intent.action.SYNC";
+    field public static final String ACTION_SYSTEM_TUTORIAL = "android.intent.action.SYSTEM_TUTORIAL";
+    field public static final String ACTION_TIMEZONE_CHANGED = "android.intent.action.TIMEZONE_CHANGED";
+    field public static final String ACTION_TIME_CHANGED = "android.intent.action.TIME_SET";
+    field public static final String ACTION_TIME_TICK = "android.intent.action.TIME_TICK";
+    field public static final String ACTION_TRANSLATE = "android.intent.action.TRANSLATE";
+    field public static final String ACTION_UID_REMOVED = "android.intent.action.UID_REMOVED";
+    field @Deprecated public static final String ACTION_UMS_CONNECTED = "android.intent.action.UMS_CONNECTED";
+    field @Deprecated public static final String ACTION_UMS_DISCONNECTED = "android.intent.action.UMS_DISCONNECTED";
+    field @Deprecated public static final String ACTION_UNINSTALL_PACKAGE = "android.intent.action.UNINSTALL_PACKAGE";
+    field public static final String ACTION_USER_BACKGROUND = "android.intent.action.USER_BACKGROUND";
+    field public static final String ACTION_USER_FOREGROUND = "android.intent.action.USER_FOREGROUND";
+    field public static final String ACTION_USER_INITIALIZE = "android.intent.action.USER_INITIALIZE";
+    field public static final String ACTION_USER_PRESENT = "android.intent.action.USER_PRESENT";
+    field public static final String ACTION_USER_UNLOCKED = "android.intent.action.USER_UNLOCKED";
+    field public static final String ACTION_VIEW = "android.intent.action.VIEW";
+    field public static final String ACTION_VOICE_COMMAND = "android.intent.action.VOICE_COMMAND";
+    field @Deprecated public static final String ACTION_WALLPAPER_CHANGED = "android.intent.action.WALLPAPER_CHANGED";
+    field public static final String ACTION_WEB_SEARCH = "android.intent.action.WEB_SEARCH";
+    field public static final String CATEGORY_ALTERNATIVE = "android.intent.category.ALTERNATIVE";
+    field public static final String CATEGORY_APP_BROWSER = "android.intent.category.APP_BROWSER";
+    field public static final String CATEGORY_APP_CALCULATOR = "android.intent.category.APP_CALCULATOR";
+    field public static final String CATEGORY_APP_CALENDAR = "android.intent.category.APP_CALENDAR";
+    field public static final String CATEGORY_APP_CONTACTS = "android.intent.category.APP_CONTACTS";
+    field public static final String CATEGORY_APP_EMAIL = "android.intent.category.APP_EMAIL";
+    field public static final String CATEGORY_APP_GALLERY = "android.intent.category.APP_GALLERY";
+    field public static final String CATEGORY_APP_MAPS = "android.intent.category.APP_MAPS";
+    field public static final String CATEGORY_APP_MARKET = "android.intent.category.APP_MARKET";
+    field public static final String CATEGORY_APP_MESSAGING = "android.intent.category.APP_MESSAGING";
+    field public static final String CATEGORY_APP_MUSIC = "android.intent.category.APP_MUSIC";
+    field public static final String CATEGORY_BROWSABLE = "android.intent.category.BROWSABLE";
+    field public static final String CATEGORY_CAR_DOCK = "android.intent.category.CAR_DOCK";
+    field public static final String CATEGORY_CAR_MODE = "android.intent.category.CAR_MODE";
+    field public static final String CATEGORY_DEFAULT = "android.intent.category.DEFAULT";
+    field public static final String CATEGORY_DESK_DOCK = "android.intent.category.DESK_DOCK";
+    field public static final String CATEGORY_DEVELOPMENT_PREFERENCE = "android.intent.category.DEVELOPMENT_PREFERENCE";
+    field public static final String CATEGORY_EMBED = "android.intent.category.EMBED";
+    field public static final String CATEGORY_FRAMEWORK_INSTRUMENTATION_TEST = "android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST";
+    field public static final String CATEGORY_HE_DESK_DOCK = "android.intent.category.HE_DESK_DOCK";
+    field public static final String CATEGORY_HOME = "android.intent.category.HOME";
+    field public static final String CATEGORY_INFO = "android.intent.category.INFO";
+    field public static final String CATEGORY_LAUNCHER = "android.intent.category.LAUNCHER";
+    field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
+    field public static final String CATEGORY_LE_DESK_DOCK = "android.intent.category.LE_DESK_DOCK";
+    field public static final String CATEGORY_MONKEY = "android.intent.category.MONKEY";
+    field public static final String CATEGORY_OPENABLE = "android.intent.category.OPENABLE";
+    field public static final String CATEGORY_PREFERENCE = "android.intent.category.PREFERENCE";
+    field public static final String CATEGORY_SAMPLE_CODE = "android.intent.category.SAMPLE_CODE";
+    field public static final String CATEGORY_SECONDARY_HOME = "android.intent.category.SECONDARY_HOME";
+    field public static final String CATEGORY_SELECTED_ALTERNATIVE = "android.intent.category.SELECTED_ALTERNATIVE";
+    field public static final String CATEGORY_TAB = "android.intent.category.TAB";
+    field public static final String CATEGORY_TEST = "android.intent.category.TEST";
+    field public static final String CATEGORY_TYPED_OPENABLE = "android.intent.category.TYPED_OPENABLE";
+    field public static final String CATEGORY_UNIT_TEST = "android.intent.category.UNIT_TEST";
+    field public static final String CATEGORY_VOICE = "android.intent.category.VOICE";
+    field public static final String CATEGORY_VR_HOME = "android.intent.category.VR_HOME";
     field public static final android.os.Parcelable.Creator<android.content.Intent> CREATOR;
-    field public static final java.lang.String EXTRA_ALARM_COUNT = "android.intent.extra.ALARM_COUNT";
-    field public static final java.lang.String EXTRA_ALLOW_MULTIPLE = "android.intent.extra.ALLOW_MULTIPLE";
-    field public static final deprecated java.lang.String EXTRA_ALLOW_REPLACE = "android.intent.extra.ALLOW_REPLACE";
-    field public static final java.lang.String EXTRA_ALTERNATE_INTENTS = "android.intent.extra.ALTERNATE_INTENTS";
-    field public static final java.lang.String EXTRA_ASSIST_CONTEXT = "android.intent.extra.ASSIST_CONTEXT";
-    field public static final java.lang.String EXTRA_ASSIST_INPUT_DEVICE_ID = "android.intent.extra.ASSIST_INPUT_DEVICE_ID";
-    field public static final java.lang.String EXTRA_ASSIST_INPUT_HINT_KEYBOARD = "android.intent.extra.ASSIST_INPUT_HINT_KEYBOARD";
-    field public static final java.lang.String EXTRA_ASSIST_PACKAGE = "android.intent.extra.ASSIST_PACKAGE";
-    field public static final java.lang.String EXTRA_ASSIST_UID = "android.intent.extra.ASSIST_UID";
-    field public static final java.lang.String EXTRA_AUTO_LAUNCH_SINGLE_CHOICE = "android.intent.extra.AUTO_LAUNCH_SINGLE_CHOICE";
-    field public static final java.lang.String EXTRA_BCC = "android.intent.extra.BCC";
-    field public static final java.lang.String EXTRA_BUG_REPORT = "android.intent.extra.BUG_REPORT";
-    field public static final java.lang.String EXTRA_CC = "android.intent.extra.CC";
-    field public static final deprecated java.lang.String EXTRA_CHANGED_COMPONENT_NAME = "android.intent.extra.changed_component_name";
-    field public static final java.lang.String EXTRA_CHANGED_COMPONENT_NAME_LIST = "android.intent.extra.changed_component_name_list";
-    field public static final java.lang.String EXTRA_CHANGED_PACKAGE_LIST = "android.intent.extra.changed_package_list";
-    field public static final java.lang.String EXTRA_CHANGED_UID_LIST = "android.intent.extra.changed_uid_list";
-    field public static final java.lang.String EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER = "android.intent.extra.CHOOSER_REFINEMENT_INTENT_SENDER";
-    field public static final java.lang.String EXTRA_CHOOSER_TARGETS = "android.intent.extra.CHOOSER_TARGETS";
-    field public static final java.lang.String EXTRA_CHOSEN_COMPONENT = "android.intent.extra.CHOSEN_COMPONENT";
-    field public static final java.lang.String EXTRA_CHOSEN_COMPONENT_INTENT_SENDER = "android.intent.extra.CHOSEN_COMPONENT_INTENT_SENDER";
-    field public static final java.lang.String EXTRA_COMPONENT_NAME = "android.intent.extra.COMPONENT_NAME";
-    field public static final java.lang.String EXTRA_CONTENT_ANNOTATIONS = "android.intent.extra.CONTENT_ANNOTATIONS";
-    field public static final java.lang.String EXTRA_CONTENT_QUERY = "android.intent.extra.CONTENT_QUERY";
-    field public static final java.lang.String EXTRA_DATA_REMOVED = "android.intent.extra.DATA_REMOVED";
-    field public static final java.lang.String EXTRA_DOCK_STATE = "android.intent.extra.DOCK_STATE";
+    field public static final String EXTRA_ALARM_COUNT = "android.intent.extra.ALARM_COUNT";
+    field public static final String EXTRA_ALLOW_MULTIPLE = "android.intent.extra.ALLOW_MULTIPLE";
+    field @Deprecated public static final String EXTRA_ALLOW_REPLACE = "android.intent.extra.ALLOW_REPLACE";
+    field public static final String EXTRA_ALTERNATE_INTENTS = "android.intent.extra.ALTERNATE_INTENTS";
+    field public static final String EXTRA_ASSIST_CONTEXT = "android.intent.extra.ASSIST_CONTEXT";
+    field public static final String EXTRA_ASSIST_INPUT_DEVICE_ID = "android.intent.extra.ASSIST_INPUT_DEVICE_ID";
+    field public static final String EXTRA_ASSIST_INPUT_HINT_KEYBOARD = "android.intent.extra.ASSIST_INPUT_HINT_KEYBOARD";
+    field public static final String EXTRA_ASSIST_PACKAGE = "android.intent.extra.ASSIST_PACKAGE";
+    field public static final String EXTRA_ASSIST_UID = "android.intent.extra.ASSIST_UID";
+    field public static final String EXTRA_AUTO_LAUNCH_SINGLE_CHOICE = "android.intent.extra.AUTO_LAUNCH_SINGLE_CHOICE";
+    field public static final String EXTRA_BCC = "android.intent.extra.BCC";
+    field public static final String EXTRA_BUG_REPORT = "android.intent.extra.BUG_REPORT";
+    field public static final String EXTRA_CC = "android.intent.extra.CC";
+    field @Deprecated public static final String EXTRA_CHANGED_COMPONENT_NAME = "android.intent.extra.changed_component_name";
+    field public static final String EXTRA_CHANGED_COMPONENT_NAME_LIST = "android.intent.extra.changed_component_name_list";
+    field public static final String EXTRA_CHANGED_PACKAGE_LIST = "android.intent.extra.changed_package_list";
+    field public static final String EXTRA_CHANGED_UID_LIST = "android.intent.extra.changed_uid_list";
+    field public static final String EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER = "android.intent.extra.CHOOSER_REFINEMENT_INTENT_SENDER";
+    field public static final String EXTRA_CHOOSER_TARGETS = "android.intent.extra.CHOOSER_TARGETS";
+    field public static final String EXTRA_CHOSEN_COMPONENT = "android.intent.extra.CHOSEN_COMPONENT";
+    field public static final String EXTRA_CHOSEN_COMPONENT_INTENT_SENDER = "android.intent.extra.CHOSEN_COMPONENT_INTENT_SENDER";
+    field public static final String EXTRA_COMPONENT_NAME = "android.intent.extra.COMPONENT_NAME";
+    field public static final String EXTRA_CONTENT_ANNOTATIONS = "android.intent.extra.CONTENT_ANNOTATIONS";
+    field public static final String EXTRA_CONTENT_QUERY = "android.intent.extra.CONTENT_QUERY";
+    field public static final String EXTRA_DATA_REMOVED = "android.intent.extra.DATA_REMOVED";
+    field public static final String EXTRA_DOCK_STATE = "android.intent.extra.DOCK_STATE";
     field public static final int EXTRA_DOCK_STATE_CAR = 2; // 0x2
     field public static final int EXTRA_DOCK_STATE_DESK = 1; // 0x1
     field public static final int EXTRA_DOCK_STATE_HE_DESK = 4; // 0x4
     field public static final int EXTRA_DOCK_STATE_LE_DESK = 3; // 0x3
     field public static final int EXTRA_DOCK_STATE_UNDOCKED = 0; // 0x0
-    field public static final java.lang.String EXTRA_DONT_KILL_APP = "android.intent.extra.DONT_KILL_APP";
-    field public static final java.lang.String EXTRA_EMAIL = "android.intent.extra.EMAIL";
-    field public static final java.lang.String EXTRA_EXCLUDE_COMPONENTS = "android.intent.extra.EXCLUDE_COMPONENTS";
-    field public static final java.lang.String EXTRA_FROM_STORAGE = "android.intent.extra.FROM_STORAGE";
-    field public static final java.lang.String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
-    field public static final java.lang.String EXTRA_INDEX = "android.intent.extra.INDEX";
-    field public static final java.lang.String EXTRA_INITIAL_INTENTS = "android.intent.extra.INITIAL_INTENTS";
-    field public static final java.lang.String EXTRA_INSTALLER_PACKAGE_NAME = "android.intent.extra.INSTALLER_PACKAGE_NAME";
-    field public static final java.lang.String EXTRA_INTENT = "android.intent.extra.INTENT";
-    field public static final java.lang.String EXTRA_KEY_EVENT = "android.intent.extra.KEY_EVENT";
-    field public static final java.lang.String EXTRA_LOCAL_ONLY = "android.intent.extra.LOCAL_ONLY";
-    field public static final java.lang.String EXTRA_MIME_TYPES = "android.intent.extra.MIME_TYPES";
-    field public static final java.lang.String EXTRA_NOT_UNKNOWN_SOURCE = "android.intent.extra.NOT_UNKNOWN_SOURCE";
-    field public static final java.lang.String EXTRA_ORIGINATING_URI = "android.intent.extra.ORIGINATING_URI";
-    field public static final java.lang.String EXTRA_PACKAGE_NAME = "android.intent.extra.PACKAGE_NAME";
-    field public static final java.lang.String EXTRA_PERMISSION_USAGE_PERMISSIONS = "android.intent.extra.PERMISSION_USAGE_PERMISSIONS";
-    field public static final java.lang.String EXTRA_PHONE_NUMBER = "android.intent.extra.PHONE_NUMBER";
-    field public static final java.lang.String EXTRA_PROCESS_TEXT = "android.intent.extra.PROCESS_TEXT";
-    field public static final java.lang.String EXTRA_PROCESS_TEXT_READONLY = "android.intent.extra.PROCESS_TEXT_READONLY";
-    field public static final java.lang.String EXTRA_QUICK_VIEW_FEATURES = "android.intent.extra.QUICK_VIEW_FEATURES";
-    field public static final java.lang.String EXTRA_QUIET_MODE = "android.intent.extra.QUIET_MODE";
-    field public static final java.lang.String EXTRA_REFERRER = "android.intent.extra.REFERRER";
-    field public static final java.lang.String EXTRA_REFERRER_NAME = "android.intent.extra.REFERRER_NAME";
-    field public static final java.lang.String EXTRA_REMOTE_INTENT_TOKEN = "android.intent.extra.remote_intent_token";
-    field public static final java.lang.String EXTRA_REPLACEMENT_EXTRAS = "android.intent.extra.REPLACEMENT_EXTRAS";
-    field public static final java.lang.String EXTRA_REPLACING = "android.intent.extra.REPLACING";
-    field public static final java.lang.String EXTRA_RESTRICTIONS_BUNDLE = "android.intent.extra.restrictions_bundle";
-    field public static final java.lang.String EXTRA_RESTRICTIONS_INTENT = "android.intent.extra.restrictions_intent";
-    field public static final java.lang.String EXTRA_RESTRICTIONS_LIST = "android.intent.extra.restrictions_list";
-    field public static final java.lang.String EXTRA_RESULT_RECEIVER = "android.intent.extra.RESULT_RECEIVER";
-    field public static final java.lang.String EXTRA_RETURN_RESULT = "android.intent.extra.RETURN_RESULT";
-    field public static final deprecated java.lang.String EXTRA_SHORTCUT_ICON = "android.intent.extra.shortcut.ICON";
-    field public static final deprecated java.lang.String EXTRA_SHORTCUT_ICON_RESOURCE = "android.intent.extra.shortcut.ICON_RESOURCE";
-    field public static final java.lang.String EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID";
-    field public static final deprecated java.lang.String EXTRA_SHORTCUT_INTENT = "android.intent.extra.shortcut.INTENT";
-    field public static final deprecated java.lang.String EXTRA_SHORTCUT_NAME = "android.intent.extra.shortcut.NAME";
-    field public static final java.lang.String EXTRA_SHUTDOWN_USERSPACE_ONLY = "android.intent.extra.SHUTDOWN_USERSPACE_ONLY";
-    field public static final java.lang.String EXTRA_SPLIT_NAME = "android.intent.extra.SPLIT_NAME";
-    field public static final java.lang.String EXTRA_STREAM = "android.intent.extra.STREAM";
-    field public static final java.lang.String EXTRA_SUBJECT = "android.intent.extra.SUBJECT";
-    field public static final java.lang.String EXTRA_SUSPENDED_PACKAGE_EXTRAS = "android.intent.extra.SUSPENDED_PACKAGE_EXTRAS";
-    field public static final java.lang.String EXTRA_TEMPLATE = "android.intent.extra.TEMPLATE";
-    field public static final java.lang.String EXTRA_TEXT = "android.intent.extra.TEXT";
-    field public static final java.lang.String EXTRA_TITLE = "android.intent.extra.TITLE";
-    field public static final java.lang.String EXTRA_UID = "android.intent.extra.UID";
-    field public static final java.lang.String EXTRA_USER = "android.intent.extra.USER";
+    field public static final String EXTRA_DONT_KILL_APP = "android.intent.extra.DONT_KILL_APP";
+    field public static final String EXTRA_EMAIL = "android.intent.extra.EMAIL";
+    field public static final String EXTRA_EXCLUDE_COMPONENTS = "android.intent.extra.EXCLUDE_COMPONENTS";
+    field public static final String EXTRA_FROM_STORAGE = "android.intent.extra.FROM_STORAGE";
+    field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
+    field public static final String EXTRA_INDEX = "android.intent.extra.INDEX";
+    field public static final String EXTRA_INITIAL_INTENTS = "android.intent.extra.INITIAL_INTENTS";
+    field public static final String EXTRA_INSTALLER_PACKAGE_NAME = "android.intent.extra.INSTALLER_PACKAGE_NAME";
+    field public static final String EXTRA_INTENT = "android.intent.extra.INTENT";
+    field public static final String EXTRA_KEY_EVENT = "android.intent.extra.KEY_EVENT";
+    field public static final String EXTRA_LOCAL_ONLY = "android.intent.extra.LOCAL_ONLY";
+    field public static final String EXTRA_MIME_TYPES = "android.intent.extra.MIME_TYPES";
+    field public static final String EXTRA_NOT_UNKNOWN_SOURCE = "android.intent.extra.NOT_UNKNOWN_SOURCE";
+    field public static final String EXTRA_ORIGINATING_URI = "android.intent.extra.ORIGINATING_URI";
+    field public static final String EXTRA_PACKAGE_NAME = "android.intent.extra.PACKAGE_NAME";
+    field public static final String EXTRA_PERMISSION_USAGE_PERMISSIONS = "android.intent.extra.PERMISSION_USAGE_PERMISSIONS";
+    field public static final String EXTRA_PHONE_NUMBER = "android.intent.extra.PHONE_NUMBER";
+    field public static final String EXTRA_PROCESS_TEXT = "android.intent.extra.PROCESS_TEXT";
+    field public static final String EXTRA_PROCESS_TEXT_READONLY = "android.intent.extra.PROCESS_TEXT_READONLY";
+    field public static final String EXTRA_QUICK_VIEW_FEATURES = "android.intent.extra.QUICK_VIEW_FEATURES";
+    field public static final String EXTRA_QUIET_MODE = "android.intent.extra.QUIET_MODE";
+    field public static final String EXTRA_REFERRER = "android.intent.extra.REFERRER";
+    field public static final String EXTRA_REFERRER_NAME = "android.intent.extra.REFERRER_NAME";
+    field public static final String EXTRA_REMOTE_INTENT_TOKEN = "android.intent.extra.remote_intent_token";
+    field public static final String EXTRA_REPLACEMENT_EXTRAS = "android.intent.extra.REPLACEMENT_EXTRAS";
+    field public static final String EXTRA_REPLACING = "android.intent.extra.REPLACING";
+    field public static final String EXTRA_RESTRICTIONS_BUNDLE = "android.intent.extra.restrictions_bundle";
+    field public static final String EXTRA_RESTRICTIONS_INTENT = "android.intent.extra.restrictions_intent";
+    field public static final String EXTRA_RESTRICTIONS_LIST = "android.intent.extra.restrictions_list";
+    field public static final String EXTRA_RESULT_RECEIVER = "android.intent.extra.RESULT_RECEIVER";
+    field public static final String EXTRA_RETURN_RESULT = "android.intent.extra.RETURN_RESULT";
+    field @Deprecated public static final String EXTRA_SHORTCUT_ICON = "android.intent.extra.shortcut.ICON";
+    field @Deprecated public static final String EXTRA_SHORTCUT_ICON_RESOURCE = "android.intent.extra.shortcut.ICON_RESOURCE";
+    field public static final String EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID";
+    field @Deprecated public static final String EXTRA_SHORTCUT_INTENT = "android.intent.extra.shortcut.INTENT";
+    field @Deprecated public static final String EXTRA_SHORTCUT_NAME = "android.intent.extra.shortcut.NAME";
+    field public static final String EXTRA_SHUTDOWN_USERSPACE_ONLY = "android.intent.extra.SHUTDOWN_USERSPACE_ONLY";
+    field public static final String EXTRA_SPLIT_NAME = "android.intent.extra.SPLIT_NAME";
+    field public static final String EXTRA_STREAM = "android.intent.extra.STREAM";
+    field public static final String EXTRA_SUBJECT = "android.intent.extra.SUBJECT";
+    field public static final String EXTRA_SUSPENDED_PACKAGE_EXTRAS = "android.intent.extra.SUSPENDED_PACKAGE_EXTRAS";
+    field public static final String EXTRA_TEMPLATE = "android.intent.extra.TEMPLATE";
+    field public static final String EXTRA_TEXT = "android.intent.extra.TEXT";
+    field public static final String EXTRA_TITLE = "android.intent.extra.TITLE";
+    field public static final String EXTRA_UID = "android.intent.extra.UID";
+    field public static final String EXTRA_USER = "android.intent.extra.USER";
     field public static final int FILL_IN_ACTION = 1; // 0x1
     field public static final int FILL_IN_CATEGORIES = 4; // 0x4
     field public static final int FILL_IN_CLIP_DATA = 128; // 0x80
@@ -10399,7 +10405,7 @@
     field public static final int FLAG_ACTIVITY_BROUGHT_TO_FRONT = 4194304; // 0x400000
     field public static final int FLAG_ACTIVITY_CLEAR_TASK = 32768; // 0x8000
     field public static final int FLAG_ACTIVITY_CLEAR_TOP = 67108864; // 0x4000000
-    field public static final deprecated int FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET = 524288; // 0x80000
+    field @Deprecated public static final int FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET = 524288; // 0x80000
     field public static final int FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS = 8388608; // 0x800000
     field public static final int FLAG_ACTIVITY_FORWARD_RESULT = 33554432; // 0x2000000
     field public static final int FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY = 1048576; // 0x100000
@@ -10431,7 +10437,7 @@
     field public static final int FLAG_RECEIVER_REGISTERED_ONLY = 1073741824; // 0x40000000
     field public static final int FLAG_RECEIVER_REPLACE_PENDING = 536870912; // 0x20000000
     field public static final int FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS = 2097152; // 0x200000
-    field public static final java.lang.String METADATA_DOCK_HOME = "android.dock_home";
+    field public static final String METADATA_DOCK_HOME = "android.dock_home";
     field public static final int URI_ALLOW_UNSAFE = 4; // 0x4
     field public static final int URI_ANDROID_APP_SCHEME = 2; // 0x2
     field public static final int URI_INTENT_SCHEME = 1; // 0x1
@@ -10445,26 +10451,26 @@
   public static class Intent.ShortcutIconResource implements android.os.Parcelable {
     ctor public Intent.ShortcutIconResource();
     method public int describeContents();
-    method public static android.content.Intent.ShortcutIconResource fromContext(android.content.Context, int);
+    method public static android.content.Intent.ShortcutIconResource fromContext(android.content.Context, @AnyRes int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.Intent.ShortcutIconResource> CREATOR;
-    field public java.lang.String packageName;
-    field public java.lang.String resourceName;
+    field public String packageName;
+    field public String resourceName;
   }
 
   public class IntentFilter implements android.os.Parcelable {
     ctor public IntentFilter();
-    ctor public IntentFilter(java.lang.String);
-    ctor public IntentFilter(java.lang.String, java.lang.String) throws android.content.IntentFilter.MalformedMimeTypeException;
+    ctor public IntentFilter(String);
+    ctor public IntentFilter(String, String) throws android.content.IntentFilter.MalformedMimeTypeException;
     ctor public IntentFilter(android.content.IntentFilter);
     method public final java.util.Iterator<java.lang.String> actionsIterator();
-    method public final void addAction(java.lang.String);
-    method public final void addCategory(java.lang.String);
-    method public final void addDataAuthority(java.lang.String, java.lang.String);
-    method public final void addDataPath(java.lang.String, int);
-    method public final void addDataScheme(java.lang.String);
-    method public final void addDataSchemeSpecificPart(java.lang.String, int);
-    method public final void addDataType(java.lang.String) throws android.content.IntentFilter.MalformedMimeTypeException;
+    method public final void addAction(String);
+    method public final void addCategory(String);
+    method public final void addDataAuthority(String, String);
+    method public final void addDataPath(String, int);
+    method public final void addDataScheme(String);
+    method public final void addDataSchemeSpecificPart(String, int);
+    method public final void addDataType(String) throws android.content.IntentFilter.MalformedMimeTypeException;
     method public final java.util.Iterator<android.content.IntentFilter.AuthorityEntry> authoritiesIterator();
     method public final java.util.Iterator<java.lang.String> categoriesIterator();
     method public final int countActions();
@@ -10474,29 +10480,29 @@
     method public final int countDataSchemeSpecificParts();
     method public final int countDataSchemes();
     method public final int countDataTypes();
-    method public static android.content.IntentFilter create(java.lang.String, java.lang.String);
+    method public static android.content.IntentFilter create(String, String);
     method public final int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
-    method public final java.lang.String getAction(int);
-    method public final java.lang.String getCategory(int);
+    method public void dump(android.util.Printer, String);
+    method public final String getAction(int);
+    method public final String getCategory(int);
     method public final android.content.IntentFilter.AuthorityEntry getDataAuthority(int);
     method public final android.os.PatternMatcher getDataPath(int);
-    method public final java.lang.String getDataScheme(int);
+    method public final String getDataScheme(int);
     method public final android.os.PatternMatcher getDataSchemeSpecificPart(int);
-    method public final java.lang.String getDataType(int);
+    method public final String getDataType(int);
     method public final int getPriority();
-    method public final boolean hasAction(java.lang.String);
-    method public final boolean hasCategory(java.lang.String);
+    method public final boolean hasAction(String);
+    method public final boolean hasCategory(String);
     method public final boolean hasDataAuthority(android.net.Uri);
-    method public final boolean hasDataPath(java.lang.String);
-    method public final boolean hasDataScheme(java.lang.String);
-    method public final boolean hasDataSchemeSpecificPart(java.lang.String);
-    method public final boolean hasDataType(java.lang.String);
-    method public final int match(android.content.ContentResolver, android.content.Intent, boolean, java.lang.String);
-    method public final int match(java.lang.String, java.lang.String, java.lang.String, android.net.Uri, java.util.Set<java.lang.String>, java.lang.String);
-    method public final boolean matchAction(java.lang.String);
-    method public final java.lang.String matchCategories(java.util.Set<java.lang.String>);
-    method public final int matchData(java.lang.String, java.lang.String, android.net.Uri);
+    method public final boolean hasDataPath(String);
+    method public final boolean hasDataScheme(String);
+    method public final boolean hasDataSchemeSpecificPart(String);
+    method public final boolean hasDataType(String);
+    method public final int match(android.content.ContentResolver, android.content.Intent, boolean, String);
+    method public final int match(String, String, String, android.net.Uri, java.util.Set<java.lang.String>, String);
+    method public final boolean matchAction(String);
+    method public final String matchCategories(java.util.Set<java.lang.String>);
+    method public final int matchData(String, String, android.net.Uri);
     method public final int matchDataAuthority(android.net.Uri);
     method public final java.util.Iterator<android.os.PatternMatcher> pathsIterator();
     method public void readFromXml(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
@@ -10526,84 +10532,84 @@
   }
 
   public static final class IntentFilter.AuthorityEntry {
-    ctor public IntentFilter.AuthorityEntry(java.lang.String, java.lang.String);
-    method public java.lang.String getHost();
+    ctor public IntentFilter.AuthorityEntry(String, String);
+    method public String getHost();
     method public int getPort();
     method public int match(android.net.Uri);
   }
 
   public static class IntentFilter.MalformedMimeTypeException extends android.util.AndroidException {
     ctor public IntentFilter.MalformedMimeTypeException();
-    ctor public IntentFilter.MalformedMimeTypeException(java.lang.String);
+    ctor public IntentFilter.MalformedMimeTypeException(String);
   }
 
   public class IntentSender implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getCreatorPackage();
+    method public String getCreatorPackage();
     method public int getCreatorUid();
     method public android.os.UserHandle getCreatorUserHandle();
-    method public deprecated java.lang.String getTargetPackage();
+    method @Deprecated public String getTargetPackage();
     method public static android.content.IntentSender readIntentSenderOrNullFromParcel(android.os.Parcel);
     method public void sendIntent(android.content.Context, int, android.content.Intent, android.content.IntentSender.OnFinished, android.os.Handler) throws android.content.IntentSender.SendIntentException;
-    method public void sendIntent(android.content.Context, int, android.content.Intent, android.content.IntentSender.OnFinished, android.os.Handler, java.lang.String) throws android.content.IntentSender.SendIntentException;
+    method public void sendIntent(android.content.Context, int, android.content.Intent, android.content.IntentSender.OnFinished, android.os.Handler, String) throws android.content.IntentSender.SendIntentException;
     method public static void writeIntentSenderOrNullToParcel(android.content.IntentSender, android.os.Parcel);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.IntentSender> CREATOR;
   }
 
-  public static abstract interface IntentSender.OnFinished {
-    method public abstract void onSendFinished(android.content.IntentSender, android.content.Intent, int, java.lang.String, android.os.Bundle);
+  public static interface IntentSender.OnFinished {
+    method public void onSendFinished(android.content.IntentSender, android.content.Intent, int, String, android.os.Bundle);
   }
 
   public static class IntentSender.SendIntentException extends android.util.AndroidException {
     ctor public IntentSender.SendIntentException();
-    ctor public IntentSender.SendIntentException(java.lang.String);
-    ctor public IntentSender.SendIntentException(java.lang.Exception);
+    ctor public IntentSender.SendIntentException(String);
+    ctor public IntentSender.SendIntentException(Exception);
   }
 
-  public deprecated class Loader<D> {
-    ctor public Loader(android.content.Context);
-    method public void abandon();
-    method public boolean cancelLoad();
-    method public void commitContentChanged();
-    method public java.lang.String dataToString(D);
-    method public void deliverCancellation();
-    method public void deliverResult(D);
-    method public void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public void forceLoad();
-    method public android.content.Context getContext();
-    method public int getId();
-    method public boolean isAbandoned();
-    method public boolean isReset();
-    method public boolean isStarted();
-    method protected void onAbandon();
-    method protected boolean onCancelLoad();
-    method public void onContentChanged();
-    method protected void onForceLoad();
-    method protected void onReset();
-    method protected void onStartLoading();
-    method protected void onStopLoading();
-    method public void registerListener(int, android.content.Loader.OnLoadCompleteListener<D>);
-    method public void registerOnLoadCanceledListener(android.content.Loader.OnLoadCanceledListener<D>);
-    method public void reset();
-    method public void rollbackContentChanged();
-    method public final void startLoading();
-    method public void stopLoading();
-    method public boolean takeContentChanged();
-    method public void unregisterListener(android.content.Loader.OnLoadCompleteListener<D>);
-    method public void unregisterOnLoadCanceledListener(android.content.Loader.OnLoadCanceledListener<D>);
+  @Deprecated public class Loader<D> {
+    ctor @Deprecated public Loader(android.content.Context);
+    method @Deprecated public void abandon();
+    method @Deprecated public boolean cancelLoad();
+    method @Deprecated public void commitContentChanged();
+    method @Deprecated public String dataToString(D);
+    method @Deprecated public void deliverCancellation();
+    method @Deprecated public void deliverResult(D);
+    method @Deprecated public void dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]);
+    method @Deprecated public void forceLoad();
+    method @Deprecated public android.content.Context getContext();
+    method @Deprecated public int getId();
+    method @Deprecated public boolean isAbandoned();
+    method @Deprecated public boolean isReset();
+    method @Deprecated public boolean isStarted();
+    method @Deprecated protected void onAbandon();
+    method @Deprecated protected boolean onCancelLoad();
+    method @Deprecated public void onContentChanged();
+    method @Deprecated protected void onForceLoad();
+    method @Deprecated protected void onReset();
+    method @Deprecated protected void onStartLoading();
+    method @Deprecated protected void onStopLoading();
+    method @Deprecated public void registerListener(int, android.content.Loader.OnLoadCompleteListener<D>);
+    method @Deprecated public void registerOnLoadCanceledListener(android.content.Loader.OnLoadCanceledListener<D>);
+    method @Deprecated public void reset();
+    method @Deprecated public void rollbackContentChanged();
+    method @Deprecated public final void startLoading();
+    method @Deprecated public void stopLoading();
+    method @Deprecated public boolean takeContentChanged();
+    method @Deprecated public void unregisterListener(android.content.Loader.OnLoadCompleteListener<D>);
+    method @Deprecated public void unregisterOnLoadCanceledListener(android.content.Loader.OnLoadCanceledListener<D>);
   }
 
-  public final deprecated class Loader.ForceLoadContentObserver extends android.database.ContentObserver {
-    ctor public Loader.ForceLoadContentObserver();
+  @Deprecated public final class Loader.ForceLoadContentObserver extends android.database.ContentObserver {
+    ctor @Deprecated public Loader.ForceLoadContentObserver();
   }
 
-  public static abstract deprecated interface Loader.OnLoadCanceledListener<D> {
-    method public abstract void onLoadCanceled(android.content.Loader<D>);
+  @Deprecated public static interface Loader.OnLoadCanceledListener<D> {
+    method @Deprecated public void onLoadCanceled(android.content.Loader<D>);
   }
 
-  public static abstract deprecated interface Loader.OnLoadCompleteListener<D> {
-    method public abstract void onLoadComplete(android.content.Loader<D>, D);
+  @Deprecated public static interface Loader.OnLoadCompleteListener<D> {
+    method @Deprecated public void onLoadComplete(android.content.Loader<D>, D);
   }
 
   public class MutableContextWrapper extends android.content.ContextWrapper {
@@ -10613,70 +10619,70 @@
 
   public class OperationApplicationException extends java.lang.Exception {
     ctor public OperationApplicationException();
-    ctor public OperationApplicationException(java.lang.String);
-    ctor public OperationApplicationException(java.lang.String, java.lang.Throwable);
-    ctor public OperationApplicationException(java.lang.Throwable);
+    ctor public OperationApplicationException(String);
+    ctor public OperationApplicationException(String, Throwable);
+    ctor public OperationApplicationException(Throwable);
     ctor public OperationApplicationException(int);
-    ctor public OperationApplicationException(java.lang.String, int);
+    ctor public OperationApplicationException(String, int);
     method public int getNumSuccessfulYieldPoints();
   }
 
   public class PeriodicSync implements android.os.Parcelable {
-    ctor public PeriodicSync(android.accounts.Account, java.lang.String, android.os.Bundle, long);
+    ctor public PeriodicSync(android.accounts.Account, String, android.os.Bundle, long);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.PeriodicSync> CREATOR;
     field public final android.accounts.Account account;
-    field public final java.lang.String authority;
+    field public final String authority;
     field public final android.os.Bundle extras;
     field public final long period;
   }
 
   public class QuickViewConstants {
-    field public static final java.lang.String FEATURE_DELETE = "android:delete";
-    field public static final java.lang.String FEATURE_DOWNLOAD = "android:download";
-    field public static final java.lang.String FEATURE_EDIT = "android:edit";
-    field public static final java.lang.String FEATURE_PRINT = "android:print";
-    field public static final java.lang.String FEATURE_SEND = "android:send";
-    field public static final java.lang.String FEATURE_VIEW = "android:view";
+    field public static final String FEATURE_DELETE = "android:delete";
+    field public static final String FEATURE_DOWNLOAD = "android:download";
+    field public static final String FEATURE_EDIT = "android:edit";
+    field public static final String FEATURE_PRINT = "android:print";
+    field public static final String FEATURE_SEND = "android:send";
+    field public static final String FEATURE_VIEW = "android:view";
   }
 
   public class ReceiverCallNotAllowedException extends android.util.AndroidRuntimeException {
-    ctor public ReceiverCallNotAllowedException(java.lang.String);
+    ctor public ReceiverCallNotAllowedException(String);
   }
 
   public class RestrictionEntry implements android.os.Parcelable {
-    ctor public RestrictionEntry(int, java.lang.String);
-    ctor public RestrictionEntry(java.lang.String, java.lang.String);
-    ctor public RestrictionEntry(java.lang.String, boolean);
-    ctor public RestrictionEntry(java.lang.String, java.lang.String[]);
-    ctor public RestrictionEntry(java.lang.String, int);
+    ctor public RestrictionEntry(int, String);
+    ctor public RestrictionEntry(String, String);
+    ctor public RestrictionEntry(String, boolean);
+    ctor public RestrictionEntry(String, String[]);
+    ctor public RestrictionEntry(String, int);
     ctor public RestrictionEntry(android.os.Parcel);
-    method public static android.content.RestrictionEntry createBundleArrayEntry(java.lang.String, android.content.RestrictionEntry[]);
-    method public static android.content.RestrictionEntry createBundleEntry(java.lang.String, android.content.RestrictionEntry[]);
+    method public static android.content.RestrictionEntry createBundleArrayEntry(String, android.content.RestrictionEntry[]);
+    method public static android.content.RestrictionEntry createBundleEntry(String, android.content.RestrictionEntry[]);
     method public int describeContents();
-    method public java.lang.String[] getAllSelectedStrings();
-    method public java.lang.String[] getChoiceEntries();
-    method public java.lang.String[] getChoiceValues();
-    method public java.lang.String getDescription();
+    method public String[] getAllSelectedStrings();
+    method public String[] getChoiceEntries();
+    method public String[] getChoiceValues();
+    method public String getDescription();
     method public int getIntValue();
-    method public java.lang.String getKey();
+    method public String getKey();
     method public android.content.RestrictionEntry[] getRestrictions();
     method public boolean getSelectedState();
-    method public java.lang.String getSelectedString();
-    method public java.lang.String getTitle();
+    method public String getSelectedString();
+    method public String getTitle();
     method public int getType();
-    method public void setAllSelectedStrings(java.lang.String[]);
-    method public void setChoiceEntries(java.lang.String[]);
-    method public void setChoiceEntries(android.content.Context, int);
-    method public void setChoiceValues(java.lang.String[]);
-    method public void setChoiceValues(android.content.Context, int);
-    method public void setDescription(java.lang.String);
+    method public void setAllSelectedStrings(String[]);
+    method public void setChoiceEntries(String[]);
+    method public void setChoiceEntries(android.content.Context, @ArrayRes int);
+    method public void setChoiceValues(String[]);
+    method public void setChoiceValues(android.content.Context, @ArrayRes int);
+    method public void setDescription(String);
     method public void setIntValue(int);
     method public void setRestrictions(android.content.RestrictionEntry[]);
     method public void setSelectedState(boolean);
-    method public void setSelectedString(java.lang.String);
-    method public void setTitle(java.lang.String);
+    method public void setSelectedString(String);
+    method public void setTitle(String);
     method public void setType(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.RestrictionEntry> CREATOR;
@@ -10694,32 +10700,32 @@
     method public static android.os.Bundle convertRestrictionsToBundle(java.util.List<android.content.RestrictionEntry>);
     method public android.content.Intent createLocalApprovalIntent();
     method public android.os.Bundle getApplicationRestrictions();
-    method public java.util.List<android.content.RestrictionEntry> getManifestRestrictions(java.lang.String);
+    method public java.util.List<android.content.RestrictionEntry> getManifestRestrictions(String);
     method public boolean hasRestrictionsProvider();
-    method public void notifyPermissionResponse(java.lang.String, android.os.PersistableBundle);
-    method public void requestPermission(java.lang.String, java.lang.String, android.os.PersistableBundle);
-    field public static final java.lang.String ACTION_PERMISSION_RESPONSE_RECEIVED = "android.content.action.PERMISSION_RESPONSE_RECEIVED";
-    field public static final java.lang.String ACTION_REQUEST_LOCAL_APPROVAL = "android.content.action.REQUEST_LOCAL_APPROVAL";
-    field public static final java.lang.String ACTION_REQUEST_PERMISSION = "android.content.action.REQUEST_PERMISSION";
-    field public static final java.lang.String EXTRA_PACKAGE_NAME = "android.content.extra.PACKAGE_NAME";
-    field public static final java.lang.String EXTRA_REQUEST_BUNDLE = "android.content.extra.REQUEST_BUNDLE";
-    field public static final java.lang.String EXTRA_REQUEST_ID = "android.content.extra.REQUEST_ID";
-    field public static final java.lang.String EXTRA_REQUEST_TYPE = "android.content.extra.REQUEST_TYPE";
-    field public static final java.lang.String EXTRA_RESPONSE_BUNDLE = "android.content.extra.RESPONSE_BUNDLE";
-    field public static final java.lang.String META_DATA_APP_RESTRICTIONS = "android.content.APP_RESTRICTIONS";
-    field public static final java.lang.String REQUEST_KEY_APPROVE_LABEL = "android.request.approve_label";
-    field public static final java.lang.String REQUEST_KEY_DATA = "android.request.data";
-    field public static final java.lang.String REQUEST_KEY_DENY_LABEL = "android.request.deny_label";
-    field public static final java.lang.String REQUEST_KEY_ICON = "android.request.icon";
-    field public static final java.lang.String REQUEST_KEY_ID = "android.request.id";
-    field public static final java.lang.String REQUEST_KEY_MESSAGE = "android.request.mesg";
-    field public static final java.lang.String REQUEST_KEY_NEW_REQUEST = "android.request.new_request";
-    field public static final java.lang.String REQUEST_KEY_TITLE = "android.request.title";
-    field public static final java.lang.String REQUEST_TYPE_APPROVAL = "android.request.type.approval";
-    field public static final java.lang.String RESPONSE_KEY_ERROR_CODE = "android.response.errorcode";
-    field public static final java.lang.String RESPONSE_KEY_MESSAGE = "android.response.msg";
-    field public static final java.lang.String RESPONSE_KEY_RESPONSE_TIMESTAMP = "android.response.timestamp";
-    field public static final java.lang.String RESPONSE_KEY_RESULT = "android.response.result";
+    method public void notifyPermissionResponse(String, android.os.PersistableBundle);
+    method public void requestPermission(String, String, android.os.PersistableBundle);
+    field public static final String ACTION_PERMISSION_RESPONSE_RECEIVED = "android.content.action.PERMISSION_RESPONSE_RECEIVED";
+    field public static final String ACTION_REQUEST_LOCAL_APPROVAL = "android.content.action.REQUEST_LOCAL_APPROVAL";
+    field public static final String ACTION_REQUEST_PERMISSION = "android.content.action.REQUEST_PERMISSION";
+    field public static final String EXTRA_PACKAGE_NAME = "android.content.extra.PACKAGE_NAME";
+    field public static final String EXTRA_REQUEST_BUNDLE = "android.content.extra.REQUEST_BUNDLE";
+    field public static final String EXTRA_REQUEST_ID = "android.content.extra.REQUEST_ID";
+    field public static final String EXTRA_REQUEST_TYPE = "android.content.extra.REQUEST_TYPE";
+    field public static final String EXTRA_RESPONSE_BUNDLE = "android.content.extra.RESPONSE_BUNDLE";
+    field public static final String META_DATA_APP_RESTRICTIONS = "android.content.APP_RESTRICTIONS";
+    field public static final String REQUEST_KEY_APPROVE_LABEL = "android.request.approve_label";
+    field public static final String REQUEST_KEY_DATA = "android.request.data";
+    field public static final String REQUEST_KEY_DENY_LABEL = "android.request.deny_label";
+    field public static final String REQUEST_KEY_ICON = "android.request.icon";
+    field public static final String REQUEST_KEY_ID = "android.request.id";
+    field public static final String REQUEST_KEY_MESSAGE = "android.request.mesg";
+    field public static final String REQUEST_KEY_NEW_REQUEST = "android.request.new_request";
+    field public static final String REQUEST_KEY_TITLE = "android.request.title";
+    field public static final String REQUEST_TYPE_APPROVAL = "android.request.type.approval";
+    field public static final String RESPONSE_KEY_ERROR_CODE = "android.response.errorcode";
+    field public static final String RESPONSE_KEY_MESSAGE = "android.response.msg";
+    field public static final String RESPONSE_KEY_RESPONSE_TIMESTAMP = "android.response.timestamp";
+    field public static final String RESPONSE_KEY_RESULT = "android.response.result";
     field public static final int RESULT_APPROVED = 1; // 0x1
     field public static final int RESULT_DENIED = 2; // 0x2
     field public static final int RESULT_ERROR = 5; // 0x5
@@ -10732,69 +10738,69 @@
 
   public class SearchRecentSuggestionsProvider extends android.content.ContentProvider {
     ctor public SearchRecentSuggestionsProvider();
-    method public int delete(android.net.Uri, java.lang.String, java.lang.String[]);
-    method public java.lang.String getType(android.net.Uri);
+    method public int delete(android.net.Uri, String, String[]);
+    method public String getType(android.net.Uri);
     method public android.net.Uri insert(android.net.Uri, android.content.ContentValues);
     method public boolean onCreate();
-    method public android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method protected void setupSuggestions(java.lang.String, int);
-    method public int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
+    method public android.database.Cursor query(android.net.Uri, String[], String, String[], String);
+    method protected void setupSuggestions(String, int);
+    method public int update(android.net.Uri, android.content.ContentValues, String, String[]);
     field public static final int DATABASE_MODE_2LINES = 2; // 0x2
     field public static final int DATABASE_MODE_QUERIES = 1; // 0x1
   }
 
-  public abstract interface ServiceConnection {
+  public interface ServiceConnection {
     method public default void onBindingDied(android.content.ComponentName);
     method public default void onNullBinding(android.content.ComponentName);
-    method public abstract void onServiceConnected(android.content.ComponentName, android.os.IBinder);
-    method public abstract void onServiceDisconnected(android.content.ComponentName);
+    method public void onServiceConnected(android.content.ComponentName, android.os.IBinder);
+    method public void onServiceDisconnected(android.content.ComponentName);
   }
 
-  public abstract interface SharedPreferences {
-    method public abstract boolean contains(java.lang.String);
-    method public abstract android.content.SharedPreferences.Editor edit();
-    method public abstract java.util.Map<java.lang.String, ?> getAll();
-    method public abstract boolean getBoolean(java.lang.String, boolean);
-    method public abstract float getFloat(java.lang.String, float);
-    method public abstract int getInt(java.lang.String, int);
-    method public abstract long getLong(java.lang.String, long);
-    method public abstract java.lang.String getString(java.lang.String, java.lang.String);
-    method public abstract java.util.Set<java.lang.String> getStringSet(java.lang.String, java.util.Set<java.lang.String>);
-    method public abstract void registerOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener);
-    method public abstract void unregisterOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener);
+  public interface SharedPreferences {
+    method public boolean contains(String);
+    method public android.content.SharedPreferences.Editor edit();
+    method public java.util.Map<java.lang.String,?> getAll();
+    method public boolean getBoolean(String, boolean);
+    method public float getFloat(String, float);
+    method public int getInt(String, int);
+    method public long getLong(String, long);
+    method @Nullable public String getString(String, @Nullable String);
+    method @Nullable public java.util.Set<java.lang.String> getStringSet(String, @Nullable java.util.Set<java.lang.String>);
+    method public void registerOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener);
+    method public void unregisterOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener);
   }
 
-  public static abstract interface SharedPreferences.Editor {
-    method public abstract void apply();
-    method public abstract android.content.SharedPreferences.Editor clear();
-    method public abstract boolean commit();
-    method public abstract android.content.SharedPreferences.Editor putBoolean(java.lang.String, boolean);
-    method public abstract android.content.SharedPreferences.Editor putFloat(java.lang.String, float);
-    method public abstract android.content.SharedPreferences.Editor putInt(java.lang.String, int);
-    method public abstract android.content.SharedPreferences.Editor putLong(java.lang.String, long);
-    method public abstract android.content.SharedPreferences.Editor putString(java.lang.String, java.lang.String);
-    method public abstract android.content.SharedPreferences.Editor putStringSet(java.lang.String, java.util.Set<java.lang.String>);
-    method public abstract android.content.SharedPreferences.Editor remove(java.lang.String);
+  public static interface SharedPreferences.Editor {
+    method public void apply();
+    method public android.content.SharedPreferences.Editor clear();
+    method public boolean commit();
+    method public android.content.SharedPreferences.Editor putBoolean(String, boolean);
+    method public android.content.SharedPreferences.Editor putFloat(String, float);
+    method public android.content.SharedPreferences.Editor putInt(String, int);
+    method public android.content.SharedPreferences.Editor putLong(String, long);
+    method public android.content.SharedPreferences.Editor putString(String, @Nullable String);
+    method public android.content.SharedPreferences.Editor putStringSet(String, @Nullable java.util.Set<java.lang.String>);
+    method public android.content.SharedPreferences.Editor remove(String);
   }
 
-  public static abstract interface SharedPreferences.OnSharedPreferenceChangeListener {
-    method public abstract void onSharedPreferenceChanged(android.content.SharedPreferences, java.lang.String);
+  public static interface SharedPreferences.OnSharedPreferenceChangeListener {
+    method public void onSharedPreferenceChanged(android.content.SharedPreferences, String);
   }
 
   public class SyncAdapterType implements android.os.Parcelable {
-    ctor public SyncAdapterType(java.lang.String, java.lang.String, boolean, boolean);
+    ctor public SyncAdapterType(String, String, boolean, boolean);
     ctor public SyncAdapterType(android.os.Parcel);
     method public boolean allowParallelSyncs();
     method public int describeContents();
-    method public java.lang.String getSettingsActivity();
+    method public String getSettingsActivity();
     method public boolean isAlwaysSyncable();
     method public boolean isUserVisible();
-    method public static android.content.SyncAdapterType newKey(java.lang.String, java.lang.String);
+    method public static android.content.SyncAdapterType newKey(String, String);
     method public boolean supportsUploading();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.SyncAdapterType> CREATOR;
-    field public final java.lang.String accountType;
-    field public final java.lang.String authority;
+    field public final String accountType;
+    field public final String authority;
     field public final boolean isKey;
   }
 
@@ -10807,7 +10813,7 @@
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public final android.accounts.Account account;
-    field public final java.lang.String authority;
+    field public final String authority;
     field public final long startTime;
   }
 
@@ -10828,7 +10834,7 @@
     method public android.content.SyncRequest.Builder setManual(boolean);
     method public android.content.SyncRequest.Builder setNoRetry(boolean);
     method public android.content.SyncRequest.Builder setRequiresCharging(boolean);
-    method public android.content.SyncRequest.Builder setSyncAdapter(android.accounts.Account, java.lang.String);
+    method public android.content.SyncRequest.Builder setSyncAdapter(android.accounts.Account, String);
     method public android.content.SyncRequest.Builder syncOnce();
     method public android.content.SyncRequest.Builder syncPeriodic(long, long);
   }
@@ -10841,7 +10847,7 @@
     method public boolean hasHardError();
     method public boolean hasSoftError();
     method public boolean madeSomeProgress();
-    method public java.lang.String toDebugString();
+    method public String toDebugString();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.content.SyncResult ALREADY_IN_PROGRESS;
     field public static final android.os.Parcelable.Creator<android.content.SyncResult> CREATOR;
@@ -10874,13 +10880,13 @@
     field public long numUpdates;
   }
 
-  public abstract interface SyncStatusObserver {
-    method public abstract void onStatusChanged(int);
+  public interface SyncStatusObserver {
+    method public void onStatusChanged(int);
   }
 
   public class UriMatcher {
     ctor public UriMatcher(int);
-    method public void addURI(java.lang.String, java.lang.String, int);
+    method public void addURI(String, String, int);
     method public int match(android.net.Uri);
     field public static final int NO_MATCH = -1; // 0xffffffff
   }
@@ -10904,7 +10910,7 @@
     ctor public ActivityInfo();
     ctor public ActivityInfo(android.content.pm.ActivityInfo);
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public final int getThemeResource();
     field public static final int COLOR_MODE_DEFAULT = 0; // 0x0
     field public static final int COLOR_MODE_HDR = 2; // 0x2
@@ -10976,13 +10982,13 @@
     field public int flags;
     field public int launchMode;
     field public int maxRecents;
-    field public java.lang.String parentActivityName;
-    field public java.lang.String permission;
+    field public String parentActivityName;
+    field public String permission;
     field public int persistableMode;
     field public int screenOrientation;
     field public int softInputMode;
-    field public java.lang.String targetActivity;
-    field public java.lang.String taskAffinity;
+    field public String targetActivity;
+    field public String taskAffinity;
     field public int theme;
     field public int uiOptions;
     field public android.content.pm.ActivityInfo.WindowLayout windowLayout;
@@ -11003,11 +11009,11 @@
     ctor public ApplicationInfo();
     ctor public ApplicationInfo(android.content.pm.ApplicationInfo);
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
-    method public static java.lang.CharSequence getCategoryTitle(android.content.Context, int);
+    method public void dump(android.util.Printer, String);
+    method public static CharSequence getCategoryTitle(android.content.Context, int);
     method public boolean isProfileableByShell();
     method public boolean isVirtualPreload();
-    method public java.lang.CharSequence loadDescription(android.content.pm.PackageManager);
+    method public CharSequence loadDescription(android.content.pm.PackageManager);
     field public static final int CATEGORY_AUDIO = 1; // 0x1
     field public static final int CATEGORY_GAME = 0; // 0x0
     field public static final int CATEGORY_IMAGE = 3; // 0x3
@@ -11030,7 +11036,7 @@
     field public static final int FLAG_HAS_CODE = 4; // 0x4
     field public static final int FLAG_INSTALLED = 8388608; // 0x800000
     field public static final int FLAG_IS_DATA_ONLY = 16777216; // 0x1000000
-    field public static final deprecated int FLAG_IS_GAME = 33554432; // 0x2000000
+    field @Deprecated public static final int FLAG_IS_GAME = 33554432; // 0x2000000
     field public static final int FLAG_KILL_AFTER_RESTORE = 65536; // 0x10000
     field public static final int FLAG_LARGE_HEAP = 1048576; // 0x100000
     field public static final int FLAG_MULTIARCH = -2147483648; // 0x80000000
@@ -11050,46 +11056,46 @@
     field public static final int FLAG_UPDATED_SYSTEM_APP = 128; // 0x80
     field public static final int FLAG_USES_CLEARTEXT_TRAFFIC = 134217728; // 0x8000000
     field public static final int FLAG_VM_SAFE_MODE = 16384; // 0x4000
-    field public java.lang.String appComponentFactory;
-    field public java.lang.String backupAgentName;
+    field public String appComponentFactory;
+    field public String backupAgentName;
     field public int category;
-    field public java.lang.String className;
+    field public String className;
     field public int compatibleWidthLimitDp;
-    field public java.lang.String dataDir;
+    field public String dataDir;
     field public int descriptionRes;
-    field public java.lang.String deviceProtectedDataDir;
+    field public String deviceProtectedDataDir;
     field public boolean enabled;
     field public int flags;
     field public int largestWidthLimitDp;
-    field public java.lang.String manageSpaceActivityName;
+    field public String manageSpaceActivityName;
     field public int minSdkVersion;
-    field public java.lang.String nativeLibraryDir;
-    field public java.lang.String permission;
-    field public java.lang.String processName;
-    field public java.lang.String publicSourceDir;
+    field public String nativeLibraryDir;
+    field public String permission;
+    field public String processName;
+    field public String publicSourceDir;
     field public int requiresSmallestWidthDp;
-    field public java.lang.String[] sharedLibraryFiles;
-    field public java.lang.String sourceDir;
-    field public java.lang.String[] splitNames;
-    field public java.lang.String[] splitPublicSourceDirs;
-    field public java.lang.String[] splitSourceDirs;
+    field public String[] sharedLibraryFiles;
+    field public String sourceDir;
+    field public String[] splitNames;
+    field public String[] splitPublicSourceDirs;
+    field public String[] splitSourceDirs;
     field public java.util.UUID storageUuid;
     field public int targetSdkVersion;
-    field public java.lang.String taskAffinity;
+    field public String taskAffinity;
     field public int theme;
     field public int uiOptions;
     field public int uid;
   }
 
-  public static class ApplicationInfo.DisplayNameComparator implements java.util.Comparator {
+  public static class ApplicationInfo.DisplayNameComparator implements java.util.Comparator<android.content.pm.ApplicationInfo> {
     ctor public ApplicationInfo.DisplayNameComparator(android.content.pm.PackageManager);
     method public final int compare(android.content.pm.ApplicationInfo, android.content.pm.ApplicationInfo);
   }
 
   public final class ChangedPackages implements android.os.Parcelable {
-    ctor public ChangedPackages(int, java.util.List<java.lang.String>);
+    ctor public ChangedPackages(int, @NonNull java.util.List<java.lang.String>);
     method public int describeContents();
-    method public java.util.List<java.lang.String> getPackageNames();
+    method @NonNull public java.util.List<java.lang.String> getPackageNames();
     method public int getSequenceNumber();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.ChangedPackages> CREATOR;
@@ -11108,15 +11114,15 @@
     field public boolean directBootAware;
     field public boolean enabled;
     field public boolean exported;
-    field public java.lang.String processName;
-    field public java.lang.String splitName;
+    field public String processName;
+    field public String splitName;
   }
 
   public class ConfigurationInfo implements android.os.Parcelable {
     ctor public ConfigurationInfo();
     ctor public ConfigurationInfo(android.content.pm.ConfigurationInfo);
     method public int describeContents();
-    method public java.lang.String getGlEsVersion();
+    method public String getGlEsVersion();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.ConfigurationInfo> CREATOR;
     field public static final int GL_ES_VERSION_UNDEFINED = 0; // 0x0
@@ -11130,10 +11136,10 @@
   }
 
   public class CrossProfileApps {
-    method public android.graphics.drawable.Drawable getProfileSwitchingIconDrawable(android.os.UserHandle);
-    method public java.lang.CharSequence getProfileSwitchingLabel(android.os.UserHandle);
-    method public java.util.List<android.os.UserHandle> getTargetUserProfiles();
-    method public void startMainActivity(android.content.ComponentName, android.os.UserHandle);
+    method @NonNull public android.graphics.drawable.Drawable getProfileSwitchingIconDrawable(@NonNull android.os.UserHandle);
+    method @NonNull public CharSequence getProfileSwitchingLabel(@NonNull android.os.UserHandle);
+    method @NonNull public java.util.List<android.os.UserHandle> getTargetUserProfiles();
+    method public void startMainActivity(@NonNull android.content.ComponentName, @NonNull android.os.UserHandle);
   }
 
   public final class FeatureGroupInfo implements android.os.Parcelable {
@@ -11149,13 +11155,13 @@
     ctor public FeatureInfo();
     ctor public FeatureInfo(android.content.pm.FeatureInfo);
     method public int describeContents();
-    method public java.lang.String getGlEsVersion();
+    method public String getGlEsVersion();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.FeatureInfo> CREATOR;
     field public static final int FLAG_REQUIRED = 1; // 0x1
     field public static final int GL_ES_VERSION_UNDEFINED = 0; // 0x0
     field public int flags;
-    field public java.lang.String name;
+    field public String name;
     field public int reqGlEsVersion;
     field public int version;
   }
@@ -11165,29 +11171,29 @@
     ctor public InstrumentationInfo(android.content.pm.InstrumentationInfo);
     method public int describeContents();
     field public static final android.os.Parcelable.Creator<android.content.pm.InstrumentationInfo> CREATOR;
-    field public java.lang.String dataDir;
+    field public String dataDir;
     field public boolean functionalTest;
     field public boolean handleProfiling;
-    field public java.lang.String publicSourceDir;
-    field public java.lang.String sourceDir;
-    field public java.lang.String[] splitNames;
-    field public java.lang.String[] splitPublicSourceDirs;
-    field public java.lang.String[] splitSourceDirs;
-    field public java.lang.String targetPackage;
-    field public java.lang.String targetProcesses;
+    field public String publicSourceDir;
+    field public String sourceDir;
+    field public String[] splitNames;
+    field public String[] splitPublicSourceDirs;
+    field public String[] splitSourceDirs;
+    field public String targetPackage;
+    field public String targetProcesses;
   }
 
   public class LabeledIntent extends android.content.Intent {
-    ctor public LabeledIntent(android.content.Intent, java.lang.String, int, int);
-    ctor public LabeledIntent(android.content.Intent, java.lang.String, java.lang.CharSequence, int);
-    ctor public LabeledIntent(java.lang.String, int, int);
-    ctor public LabeledIntent(java.lang.String, java.lang.CharSequence, int);
+    ctor public LabeledIntent(android.content.Intent, String, int, int);
+    ctor public LabeledIntent(android.content.Intent, String, CharSequence, int);
+    ctor public LabeledIntent(String, int, int);
+    ctor public LabeledIntent(String, CharSequence, int);
     method public int getIconResource();
     method public int getLabelResource();
-    method public java.lang.CharSequence getNonLocalizedLabel();
-    method public java.lang.String getSourcePackage();
+    method public CharSequence getNonLocalizedLabel();
+    method public String getSourcePackage();
     method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
-    method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
+    method public CharSequence loadLabel(android.content.pm.PackageManager);
     field public static final android.os.Parcelable.Creator<android.content.pm.LabeledIntent> CREATOR;
   }
 
@@ -11197,61 +11203,61 @@
     method public android.content.ComponentName getComponentName();
     method public long getFirstInstallTime();
     method public android.graphics.drawable.Drawable getIcon(int);
-    method public java.lang.CharSequence getLabel();
-    method public java.lang.String getName();
+    method public CharSequence getLabel();
+    method public String getName();
     method public android.os.UserHandle getUser();
   }
 
   public class LauncherApps {
-    method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle);
-    method public android.content.pm.ApplicationInfo getApplicationInfo(java.lang.String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(String, android.os.UserHandle);
+    method public android.content.pm.ApplicationInfo getApplicationInfo(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
     method public android.content.pm.LauncherApps.PinItemRequest getPinItemRequest(android.content.Intent);
     method public java.util.List<android.os.UserHandle> getProfiles();
     method public android.graphics.drawable.Drawable getShortcutBadgedIconDrawable(android.content.pm.ShortcutInfo, int);
-    method public android.content.IntentSender getShortcutConfigActivityIntent(android.content.pm.LauncherActivityInfo);
-    method public java.util.List<android.content.pm.LauncherActivityInfo> getShortcutConfigActivityList(java.lang.String, android.os.UserHandle);
-    method public android.graphics.drawable.Drawable getShortcutIconDrawable(android.content.pm.ShortcutInfo, int);
-    method public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, android.os.UserHandle);
-    method public android.os.Bundle getSuspendedPackageLauncherExtras(java.lang.String, android.os.UserHandle);
+    method @Nullable public android.content.IntentSender getShortcutConfigActivityIntent(@NonNull android.content.pm.LauncherActivityInfo);
+    method public java.util.List<android.content.pm.LauncherActivityInfo> getShortcutConfigActivityList(@Nullable String, @NonNull android.os.UserHandle);
+    method public android.graphics.drawable.Drawable getShortcutIconDrawable(@NonNull android.content.pm.ShortcutInfo, int);
+    method @Nullable public java.util.List<android.content.pm.ShortcutInfo> getShortcuts(@NonNull android.content.pm.LauncherApps.ShortcutQuery, @NonNull android.os.UserHandle);
+    method @Nullable public android.os.Bundle getSuspendedPackageLauncherExtras(String, android.os.UserHandle);
     method public boolean hasShortcutHostPermission();
     method public boolean isActivityEnabled(android.content.ComponentName, android.os.UserHandle);
-    method public boolean isPackageEnabled(java.lang.String, android.os.UserHandle);
-    method public void pinShortcuts(java.lang.String, java.util.List<java.lang.String>, android.os.UserHandle);
+    method public boolean isPackageEnabled(String, android.os.UserHandle);
+    method public void pinShortcuts(@NonNull String, @NonNull java.util.List<java.lang.String>, @NonNull android.os.UserHandle);
     method public void registerCallback(android.content.pm.LauncherApps.Callback);
     method public void registerCallback(android.content.pm.LauncherApps.Callback, android.os.Handler);
     method public android.content.pm.LauncherActivityInfo resolveActivity(android.content.Intent, android.os.UserHandle);
-    method public boolean shouldHideFromSuggestions(java.lang.String, android.os.UserHandle);
+    method public boolean shouldHideFromSuggestions(@NonNull String, @NonNull android.os.UserHandle);
     method public void startAppDetailsActivity(android.content.ComponentName, android.os.UserHandle, android.graphics.Rect, android.os.Bundle);
     method public void startMainActivity(android.content.ComponentName, android.os.UserHandle, android.graphics.Rect, android.os.Bundle);
-    method public void startShortcut(java.lang.String, java.lang.String, android.graphics.Rect, android.os.Bundle, android.os.UserHandle);
-    method public void startShortcut(android.content.pm.ShortcutInfo, android.graphics.Rect, android.os.Bundle);
+    method public void startShortcut(@NonNull String, @NonNull String, @Nullable android.graphics.Rect, @Nullable android.os.Bundle, @NonNull android.os.UserHandle);
+    method public void startShortcut(@NonNull android.content.pm.ShortcutInfo, @Nullable android.graphics.Rect, @Nullable android.os.Bundle);
     method public void unregisterCallback(android.content.pm.LauncherApps.Callback);
-    field public static final java.lang.String ACTION_CONFIRM_PIN_APPWIDGET = "android.content.pm.action.CONFIRM_PIN_APPWIDGET";
-    field public static final java.lang.String ACTION_CONFIRM_PIN_SHORTCUT = "android.content.pm.action.CONFIRM_PIN_SHORTCUT";
-    field public static final java.lang.String EXTRA_PIN_ITEM_REQUEST = "android.content.pm.extra.PIN_ITEM_REQUEST";
+    field public static final String ACTION_CONFIRM_PIN_APPWIDGET = "android.content.pm.action.CONFIRM_PIN_APPWIDGET";
+    field public static final String ACTION_CONFIRM_PIN_SHORTCUT = "android.content.pm.action.CONFIRM_PIN_SHORTCUT";
+    field public static final String EXTRA_PIN_ITEM_REQUEST = "android.content.pm.extra.PIN_ITEM_REQUEST";
   }
 
-  public static abstract class LauncherApps.Callback {
+  public abstract static class LauncherApps.Callback {
     ctor public LauncherApps.Callback();
-    method public abstract void onPackageAdded(java.lang.String, android.os.UserHandle);
-    method public abstract void onPackageChanged(java.lang.String, android.os.UserHandle);
-    method public abstract void onPackageRemoved(java.lang.String, android.os.UserHandle);
-    method public abstract void onPackagesAvailable(java.lang.String[], android.os.UserHandle, boolean);
-    method public void onPackagesSuspended(java.lang.String[], android.os.UserHandle);
-    method public void onPackagesSuspended(java.lang.String[], android.os.UserHandle, android.os.Bundle);
-    method public abstract void onPackagesUnavailable(java.lang.String[], android.os.UserHandle, boolean);
-    method public void onPackagesUnsuspended(java.lang.String[], android.os.UserHandle);
-    method public void onShortcutsChanged(java.lang.String, java.util.List<android.content.pm.ShortcutInfo>, android.os.UserHandle);
+    method public abstract void onPackageAdded(String, android.os.UserHandle);
+    method public abstract void onPackageChanged(String, android.os.UserHandle);
+    method public abstract void onPackageRemoved(String, android.os.UserHandle);
+    method public abstract void onPackagesAvailable(String[], android.os.UserHandle, boolean);
+    method public void onPackagesSuspended(String[], android.os.UserHandle);
+    method public void onPackagesSuspended(String[], android.os.UserHandle, @Nullable android.os.Bundle);
+    method public abstract void onPackagesUnavailable(String[], android.os.UserHandle, boolean);
+    method public void onPackagesUnsuspended(String[], android.os.UserHandle);
+    method public void onShortcutsChanged(@NonNull String, @NonNull java.util.List<android.content.pm.ShortcutInfo>, @NonNull android.os.UserHandle);
   }
 
   public static final class LauncherApps.PinItemRequest implements android.os.Parcelable {
-    method public boolean accept(android.os.Bundle);
+    method public boolean accept(@Nullable android.os.Bundle);
     method public boolean accept();
     method public int describeContents();
-    method public android.appwidget.AppWidgetProviderInfo getAppWidgetProviderInfo(android.content.Context);
-    method public android.os.Bundle getExtras();
+    method @Nullable public android.appwidget.AppWidgetProviderInfo getAppWidgetProviderInfo(android.content.Context);
+    method @Nullable public android.os.Bundle getExtras();
     method public int getRequestType();
-    method public android.content.pm.ShortcutInfo getShortcutInfo();
+    method @Nullable public android.content.pm.ShortcutInfo getShortcutInfo();
     method public boolean isValid();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.LauncherApps.PinItemRequest> CREATOR;
@@ -11261,11 +11267,11 @@
 
   public static class LauncherApps.ShortcutQuery {
     ctor public LauncherApps.ShortcutQuery();
-    method public android.content.pm.LauncherApps.ShortcutQuery setActivity(android.content.ComponentName);
+    method public android.content.pm.LauncherApps.ShortcutQuery setActivity(@Nullable android.content.ComponentName);
     method public android.content.pm.LauncherApps.ShortcutQuery setChangedSince(long);
-    method public android.content.pm.LauncherApps.ShortcutQuery setPackage(java.lang.String);
+    method public android.content.pm.LauncherApps.ShortcutQuery setPackage(@Nullable String);
     method public android.content.pm.LauncherApps.ShortcutQuery setQueryFlags(int);
-    method public android.content.pm.LauncherApps.ShortcutQuery setShortcutIds(java.util.List<java.lang.String>);
+    method public android.content.pm.LauncherApps.ShortcutQuery setShortcutIds(@Nullable java.util.List<java.lang.String>);
     field public static final int FLAG_GET_KEY_FIELDS_ONLY = 4; // 0x4
     field public static final int FLAG_MATCH_DYNAMIC = 1; // 0x1
     field public static final int FLAG_MATCH_MANIFEST = 8; // 0x8
@@ -11275,8 +11281,8 @@
 
   public final class ModuleInfo implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getName();
-    method public java.lang.String getPackageName();
+    method @Nullable public String getName();
+    method @Nullable public String getPackageName();
     method public boolean isHidden();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.ModuleInfo> CREATOR;
@@ -11304,50 +11310,50 @@
     field public android.content.pm.InstrumentationInfo[] instrumentation;
     field public boolean isApex;
     field public long lastUpdateTime;
-    field public java.lang.String packageName;
+    field public String packageName;
     field public android.content.pm.PermissionInfo[] permissions;
     field public android.content.pm.ProviderInfo[] providers;
     field public android.content.pm.ActivityInfo[] receivers;
     field public android.content.pm.FeatureInfo[] reqFeatures;
-    field public deprecated java.lang.String[] requestedPermissions;
-    field public deprecated int[] requestedPermissionsFlags;
+    field @Deprecated public String[] requestedPermissions;
+    field @Deprecated public int[] requestedPermissionsFlags;
     field public android.content.pm.ServiceInfo[] services;
-    field public java.lang.String sharedUserId;
+    field public String sharedUserId;
     field public int sharedUserLabel;
-    field public deprecated android.content.pm.Signature[] signatures;
+    field @Deprecated public android.content.pm.Signature[] signatures;
     field public android.content.pm.SigningInfo signingInfo;
-    field public java.lang.String[] splitNames;
+    field public String[] splitNames;
     field public int[] splitRevisionCodes;
     field public android.content.pm.UsesPermissionInfo[] usesPermissions;
-    field public deprecated int versionCode;
-    field public java.lang.String versionName;
+    field @Deprecated public int versionCode;
+    field public String versionName;
   }
 
   public class PackageInstaller {
     method public void abandonSession(int);
-    method public int createSession(android.content.pm.PackageInstaller.SessionParams) throws java.io.IOException;
-    method public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getAllSessions();
-    method public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getMySessions();
-    method public android.content.pm.PackageInstaller.SessionInfo getSessionInfo(int);
-    method public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getStagedSessions();
-    method public android.content.pm.PackageInstaller.Session openSession(int) throws java.io.IOException;
-    method public void registerSessionCallback(android.content.pm.PackageInstaller.SessionCallback);
-    method public void registerSessionCallback(android.content.pm.PackageInstaller.SessionCallback, android.os.Handler);
-    method public void uninstall(java.lang.String, android.content.IntentSender);
-    method public void uninstall(android.content.pm.VersionedPackage, android.content.IntentSender);
-    method public void unregisterSessionCallback(android.content.pm.PackageInstaller.SessionCallback);
-    method public void updateSessionAppIcon(int, android.graphics.Bitmap);
-    method public void updateSessionAppLabel(int, java.lang.CharSequence);
-    field public static final java.lang.String ACTION_SESSION_COMMITTED = "android.content.pm.action.SESSION_COMMITTED";
-    field public static final java.lang.String ACTION_SESSION_DETAILS = "android.content.pm.action.SESSION_DETAILS";
-    field public static final java.lang.String ACTION_SESSION_UPDATED = "android.content.pm.action.SESSION_UPDATED";
-    field public static final java.lang.String EXTRA_OTHER_PACKAGE_NAME = "android.content.pm.extra.OTHER_PACKAGE_NAME";
-    field public static final java.lang.String EXTRA_PACKAGE_NAME = "android.content.pm.extra.PACKAGE_NAME";
-    field public static final java.lang.String EXTRA_SESSION = "android.content.pm.extra.SESSION";
-    field public static final java.lang.String EXTRA_SESSION_ID = "android.content.pm.extra.SESSION_ID";
-    field public static final java.lang.String EXTRA_STATUS = "android.content.pm.extra.STATUS";
-    field public static final java.lang.String EXTRA_STATUS_MESSAGE = "android.content.pm.extra.STATUS_MESSAGE";
-    field public static final java.lang.String EXTRA_STORAGE_PATH = "android.content.pm.extra.STORAGE_PATH";
+    method public int createSession(@NonNull android.content.pm.PackageInstaller.SessionParams) throws java.io.IOException;
+    method @NonNull public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getAllSessions();
+    method @NonNull public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getMySessions();
+    method @Nullable public android.content.pm.PackageInstaller.SessionInfo getSessionInfo(int);
+    method @NonNull public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getStagedSessions();
+    method @NonNull public android.content.pm.PackageInstaller.Session openSession(int) throws java.io.IOException;
+    method public void registerSessionCallback(@NonNull android.content.pm.PackageInstaller.SessionCallback);
+    method public void registerSessionCallback(@NonNull android.content.pm.PackageInstaller.SessionCallback, @NonNull android.os.Handler);
+    method @RequiresPermission(anyOf={android.Manifest.permission.DELETE_PACKAGES, android.Manifest.permission.REQUEST_DELETE_PACKAGES}) public void uninstall(@NonNull String, @NonNull android.content.IntentSender);
+    method @RequiresPermission(anyOf={android.Manifest.permission.DELETE_PACKAGES, android.Manifest.permission.REQUEST_DELETE_PACKAGES}) public void uninstall(@NonNull android.content.pm.VersionedPackage, @NonNull android.content.IntentSender);
+    method public void unregisterSessionCallback(@NonNull android.content.pm.PackageInstaller.SessionCallback);
+    method public void updateSessionAppIcon(int, @Nullable android.graphics.Bitmap);
+    method public void updateSessionAppLabel(int, @Nullable CharSequence);
+    field public static final String ACTION_SESSION_COMMITTED = "android.content.pm.action.SESSION_COMMITTED";
+    field public static final String ACTION_SESSION_DETAILS = "android.content.pm.action.SESSION_DETAILS";
+    field public static final String ACTION_SESSION_UPDATED = "android.content.pm.action.SESSION_UPDATED";
+    field public static final String EXTRA_OTHER_PACKAGE_NAME = "android.content.pm.extra.OTHER_PACKAGE_NAME";
+    field public static final String EXTRA_PACKAGE_NAME = "android.content.pm.extra.PACKAGE_NAME";
+    field public static final String EXTRA_SESSION = "android.content.pm.extra.SESSION";
+    field public static final String EXTRA_SESSION_ID = "android.content.pm.extra.SESSION_ID";
+    field public static final String EXTRA_STATUS = "android.content.pm.extra.STATUS";
+    field public static final String EXTRA_STATUS_MESSAGE = "android.content.pm.extra.STATUS_MESSAGE";
+    field public static final String EXTRA_STORAGE_PATH = "android.content.pm.extra.STORAGE_PATH";
     field public static final int STATUS_FAILURE = 1; // 0x1
     field public static final int STATUS_FAILURE_ABORTED = 3; // 0x3
     field public static final int STATUS_FAILURE_BLOCKED = 2; // 0x2
@@ -11363,22 +11369,22 @@
     method public void abandon();
     method public void addChildSessionId(int);
     method public void close();
-    method public void commit(android.content.IntentSender);
-    method public void fsync(java.io.OutputStream) throws java.io.IOException;
-    method public int[] getChildSessionIds();
-    method public java.lang.String[] getNames() throws java.io.IOException;
+    method public void commit(@NonNull android.content.IntentSender);
+    method public void fsync(@NonNull java.io.OutputStream) throws java.io.IOException;
+    method @NonNull public int[] getChildSessionIds();
+    method @NonNull public String[] getNames() throws java.io.IOException;
     method public int getParentSessionId();
     method public boolean isMultiPackage();
     method public boolean isStaged();
-    method public java.io.InputStream openRead(java.lang.String) throws java.io.IOException;
-    method public java.io.OutputStream openWrite(java.lang.String, long, long) throws java.io.IOException;
+    method @NonNull public java.io.InputStream openRead(@NonNull String) throws java.io.IOException;
+    method @NonNull public java.io.OutputStream openWrite(@NonNull String, long, long) throws java.io.IOException;
     method public void removeChildSessionId(int);
-    method public void removeSplit(java.lang.String) throws java.io.IOException;
+    method public void removeSplit(@NonNull String) throws java.io.IOException;
     method public void setStagingProgress(float);
-    method public void transfer(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public void transfer(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
   }
 
-  public static abstract class PackageInstaller.SessionCallback {
+  public abstract static class PackageInstaller.SessionCallback {
     ctor public PackageInstaller.SessionCallback();
     method public abstract void onActiveChanged(int, boolean);
     method public abstract void onBadgingChanged(int);
@@ -11388,21 +11394,21 @@
   }
 
   public static class PackageInstaller.SessionInfo implements android.os.Parcelable {
-    method public android.content.Intent createDetailsIntent();
+    method @Nullable public android.content.Intent createDetailsIntent();
     method public int describeContents();
-    method public android.graphics.Bitmap getAppIcon();
-    method public java.lang.CharSequence getAppLabel();
-    method public java.lang.String getAppPackageName();
+    method @Nullable public android.graphics.Bitmap getAppIcon();
+    method @Nullable public CharSequence getAppLabel();
+    method @Nullable public String getAppPackageName();
     method public int[] getChildSessionIds();
     method public int getInstallLocation();
     method public int getInstallReason();
-    method public java.lang.String getInstallerPackageName();
+    method @Nullable public String getInstallerPackageName();
     method public int getMode();
     method public int getOriginatingUid();
-    method public android.net.Uri getOriginatingUri();
+    method @Nullable public android.net.Uri getOriginatingUri();
     method public int getParentSessionId();
     method public float getProgress();
-    method public android.net.Uri getReferrerUri();
+    method @Nullable public android.net.Uri getReferrerUri();
     method public int getSessionId();
     method public long getSize();
     method public int getStagedSessionErrorCode();
@@ -11424,15 +11430,15 @@
   public static class PackageInstaller.SessionParams implements android.os.Parcelable {
     ctor public PackageInstaller.SessionParams(int);
     method public int describeContents();
-    method public void setAppIcon(android.graphics.Bitmap);
-    method public void setAppLabel(java.lang.CharSequence);
-    method public void setAppPackageName(java.lang.String);
+    method public void setAppIcon(@Nullable android.graphics.Bitmap);
+    method public void setAppLabel(@Nullable CharSequence);
+    method public void setAppPackageName(@Nullable String);
     method public void setInstallLocation(int);
     method public void setInstallReason(int);
     method public void setMultiPackage();
     method public void setOriginatingUid(int);
-    method public void setOriginatingUri(android.net.Uri);
-    method public void setReferrerUri(android.net.Uri);
+    method public void setOriginatingUri(@Nullable android.net.Uri);
+    method public void setReferrerUri(@Nullable android.net.Uri);
     method public void setSize(long);
     method public void setStaged();
     method public void writeToParcel(android.os.Parcel, int);
@@ -11445,44 +11451,44 @@
     ctor public PackageItemInfo();
     ctor public PackageItemInfo(android.content.pm.PackageItemInfo);
     ctor protected PackageItemInfo(android.os.Parcel);
-    method protected void dumpBack(android.util.Printer, java.lang.String);
-    method protected void dumpFront(android.util.Printer, java.lang.String);
+    method protected void dumpBack(android.util.Printer, String);
+    method protected void dumpFront(android.util.Printer, String);
     method public android.graphics.drawable.Drawable loadBanner(android.content.pm.PackageManager);
     method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
-    method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
+    method @NonNull public CharSequence loadLabel(@NonNull android.content.pm.PackageManager);
     method public android.graphics.drawable.Drawable loadLogo(android.content.pm.PackageManager);
     method public android.graphics.drawable.Drawable loadUnbadgedIcon(android.content.pm.PackageManager);
-    method public android.content.res.XmlResourceParser loadXmlMetaData(android.content.pm.PackageManager, java.lang.String);
+    method public android.content.res.XmlResourceParser loadXmlMetaData(android.content.pm.PackageManager, String);
     method public void writeToParcel(android.os.Parcel, int);
     field public int banner;
     field public int icon;
     field public int labelRes;
     field public int logo;
     field public android.os.Bundle metaData;
-    field public java.lang.String name;
-    field public java.lang.CharSequence nonLocalizedLabel;
-    field public java.lang.String packageName;
+    field public String name;
+    field public CharSequence nonLocalizedLabel;
+    field public String packageName;
   }
 
-  public static class PackageItemInfo.DisplayNameComparator implements java.util.Comparator {
+  public static class PackageItemInfo.DisplayNameComparator implements java.util.Comparator<android.content.pm.PackageItemInfo> {
     ctor public PackageItemInfo.DisplayNameComparator(android.content.pm.PackageManager);
     method public final int compare(android.content.pm.PackageItemInfo, android.content.pm.PackageItemInfo);
   }
 
   public abstract class PackageManager {
     ctor public PackageManager();
-    method public abstract deprecated void addPackageToPreferred(java.lang.String);
+    method @Deprecated public abstract void addPackageToPreferred(String);
     method public abstract boolean addPermission(android.content.pm.PermissionInfo);
     method public abstract boolean addPermissionAsync(android.content.pm.PermissionInfo);
-    method public abstract deprecated void addPreferredActivity(android.content.IntentFilter, int, android.content.ComponentName[], android.content.ComponentName);
+    method @Deprecated public abstract void addPreferredActivity(android.content.IntentFilter, int, android.content.ComponentName[], android.content.ComponentName);
     method public abstract boolean canRequestPackageInstalls();
-    method public abstract java.lang.String[] canonicalToCurrentPackageNames(java.lang.String[]);
-    method public abstract int checkPermission(java.lang.String, java.lang.String);
-    method public abstract int checkSignatures(java.lang.String, java.lang.String);
-    method public abstract int checkSignatures(int, int);
+    method public abstract String[] canonicalToCurrentPackageNames(String[]);
+    method @CheckResult public abstract int checkPermission(String, String);
+    method @CheckResult public abstract int checkSignatures(String, String);
+    method @CheckResult public abstract int checkSignatures(int, int);
     method public abstract void clearInstantAppCookie();
-    method public abstract deprecated void clearPackagePreferredActivities(java.lang.String);
-    method public abstract java.lang.String[] currentToCanonicalPackageNames(java.lang.String[]);
+    method @Deprecated public abstract void clearPackagePreferredActivities(String);
+    method public abstract String[] currentToCanonicalPackageNames(String[]);
     method public abstract void extendVerificationTimeout(int, int, long);
     method public abstract android.graphics.drawable.Drawable getActivityBanner(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.graphics.drawable.Drawable getActivityBanner(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
@@ -11493,85 +11499,85 @@
     method public abstract android.graphics.drawable.Drawable getActivityLogo(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract java.util.List<android.content.pm.PermissionGroupInfo> getAllPermissionGroups(int);
     method public abstract android.graphics.drawable.Drawable getApplicationBanner(android.content.pm.ApplicationInfo);
-    method public abstract android.graphics.drawable.Drawable getApplicationBanner(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract int getApplicationEnabledSetting(java.lang.String);
+    method public abstract android.graphics.drawable.Drawable getApplicationBanner(String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract int getApplicationEnabledSetting(String);
     method public abstract android.graphics.drawable.Drawable getApplicationIcon(android.content.pm.ApplicationInfo);
-    method public abstract android.graphics.drawable.Drawable getApplicationIcon(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract android.content.pm.ApplicationInfo getApplicationInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract java.lang.CharSequence getApplicationLabel(android.content.pm.ApplicationInfo);
+    method public abstract android.graphics.drawable.Drawable getApplicationIcon(String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract android.content.pm.ApplicationInfo getApplicationInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract CharSequence getApplicationLabel(android.content.pm.ApplicationInfo);
     method public abstract android.graphics.drawable.Drawable getApplicationLogo(android.content.pm.ApplicationInfo);
-    method public abstract android.graphics.drawable.Drawable getApplicationLogo(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract android.content.pm.ChangedPackages getChangedPackages(int);
+    method public abstract android.graphics.drawable.Drawable getApplicationLogo(String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Nullable public abstract android.content.pm.ChangedPackages getChangedPackages(@IntRange(from=0) int);
     method public abstract int getComponentEnabledSetting(android.content.ComponentName);
     method public abstract android.graphics.drawable.Drawable getDefaultActivityIcon();
-    method public abstract android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo);
+    method public abstract android.graphics.drawable.Drawable getDrawable(String, @DrawableRes int, android.content.pm.ApplicationInfo);
     method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int);
-    method public java.util.List<android.content.pm.ModuleInfo> getInstalledModules(int);
+    method @NonNull public java.util.List<android.content.pm.ModuleInfo> getInstalledModules(int);
     method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int);
-    method public abstract java.lang.String getInstallerPackageName(java.lang.String);
-    method public abstract byte[] getInstantAppCookie();
+    method @Nullable public abstract String getInstallerPackageName(String);
+    method @NonNull public abstract byte[] getInstantAppCookie();
     method public abstract int getInstantAppCookieMaxBytes();
     method public abstract android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract android.content.Intent getLaunchIntentForPackage(java.lang.String);
-    method public abstract android.content.Intent getLeanbackLaunchIntentForPackage(java.lang.String);
-    method public android.content.pm.ModuleInfo getModuleInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract java.lang.String getNameForUid(int);
-    method public android.content.pm.PackageInfo getPackageArchiveInfo(java.lang.String, int);
-    method public abstract int[] getPackageGids(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract int[] getPackageGids(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract android.content.pm.PackageInfo getPackageInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Nullable public abstract android.content.Intent getLaunchIntentForPackage(@NonNull String);
+    method @Nullable public abstract android.content.Intent getLeanbackLaunchIntentForPackage(@NonNull String);
+    method public android.content.pm.ModuleInfo getModuleInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Nullable public abstract String getNameForUid(int);
+    method public android.content.pm.PackageInfo getPackageArchiveInfo(String, int);
+    method public abstract int[] getPackageGids(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract int[] getPackageGids(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract android.content.pm.PackageInfo getPackageInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.content.pm.PackageInfo getPackageInfo(android.content.pm.VersionedPackage, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract android.content.pm.PackageInstaller getPackageInstaller();
-    method public abstract int getPackageUid(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract java.lang.String[] getPackagesForUid(int);
-    method public abstract java.util.List<android.content.pm.PackageInfo> getPackagesHoldingPermissions(java.lang.String[], int);
-    method public abstract android.content.pm.PermissionGroupInfo getPermissionGroupInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract android.content.pm.PermissionInfo getPermissionInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract deprecated int getPreferredActivities(java.util.List<android.content.IntentFilter>, java.util.List<android.content.ComponentName>, java.lang.String);
-    method public abstract deprecated java.util.List<android.content.pm.PackageInfo> getPreferredPackages(int);
+    method @NonNull public abstract android.content.pm.PackageInstaller getPackageInstaller();
+    method public abstract int getPackageUid(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Nullable public abstract String[] getPackagesForUid(int);
+    method public abstract java.util.List<android.content.pm.PackageInfo> getPackagesHoldingPermissions(String[], int);
+    method public abstract android.content.pm.PermissionGroupInfo getPermissionGroupInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract android.content.pm.PermissionInfo getPermissionInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public abstract int getPreferredActivities(@NonNull java.util.List<android.content.IntentFilter>, @NonNull java.util.List<android.content.ComponentName>, String);
+    method @Deprecated public abstract java.util.List<android.content.pm.PackageInfo> getPreferredPackages(int);
     method public abstract android.content.pm.ProviderInfo getProviderInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.content.pm.ActivityInfo getReceiverInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.content.res.Resources getResourcesForActivity(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.content.res.Resources getResourcesForApplication(android.content.pm.ApplicationInfo) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract android.content.res.Resources getResourcesForApplication(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract android.content.res.Resources getResourcesForApplication(String) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.content.pm.ServiceInfo getServiceInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract java.util.List<android.content.pm.SharedLibraryInfo> getSharedLibraries(int);
-    method public android.os.Bundle getSuspendedPackageAppExtras();
+    method @NonNull public abstract java.util.List<android.content.pm.SharedLibraryInfo> getSharedLibraries(int);
+    method @Nullable public android.os.Bundle getSuspendedPackageAppExtras();
     method public abstract android.content.pm.FeatureInfo[] getSystemAvailableFeatures();
-    method public abstract java.lang.String[] getSystemSharedLibraryNames();
-    method public abstract java.lang.CharSequence getText(java.lang.String, int, android.content.pm.ApplicationInfo);
+    method public abstract String[] getSystemSharedLibraryNames();
+    method public abstract CharSequence getText(String, @StringRes int, android.content.pm.ApplicationInfo);
     method public abstract android.graphics.drawable.Drawable getUserBadgedDrawableForDensity(android.graphics.drawable.Drawable, android.os.UserHandle, android.graphics.Rect, int);
     method public abstract android.graphics.drawable.Drawable getUserBadgedIcon(android.graphics.drawable.Drawable, android.os.UserHandle);
-    method public abstract java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle);
-    method public abstract android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo);
-    method public boolean hasSigningCertificate(java.lang.String, byte[], int);
+    method public abstract CharSequence getUserBadgedLabel(CharSequence, android.os.UserHandle);
+    method public abstract android.content.res.XmlResourceParser getXml(String, @XmlRes int, android.content.pm.ApplicationInfo);
+    method public boolean hasSigningCertificate(String, byte[], int);
     method public boolean hasSigningCertificate(int, byte[], int);
-    method public abstract boolean hasSystemFeature(java.lang.String);
-    method public abstract boolean hasSystemFeature(java.lang.String, int);
+    method public abstract boolean hasSystemFeature(String);
+    method public abstract boolean hasSystemFeature(String, int);
     method public abstract boolean isInstantApp();
-    method public abstract boolean isInstantApp(java.lang.String);
-    method public boolean isPackageSuspended(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract boolean isInstantApp(String);
+    method public boolean isPackageSuspended(String) throws android.content.pm.PackageManager.NameNotFoundException;
     method public boolean isPackageSuspended();
-    method public abstract boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String);
+    method @CheckResult public abstract boolean isPermissionRevokedByPolicy(@NonNull String, @NonNull String);
     method public abstract boolean isSafeMode();
     method public abstract java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int);
-    method public abstract java.util.List<android.content.pm.ProviderInfo> queryContentProviders(java.lang.String, int, int);
-    method public abstract java.util.List<android.content.pm.InstrumentationInfo> queryInstrumentation(java.lang.String, int);
+    method public abstract java.util.List<android.content.pm.ProviderInfo> queryContentProviders(String, int, int);
+    method public abstract java.util.List<android.content.pm.InstrumentationInfo> queryInstrumentation(String, int);
     method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentActivities(android.content.Intent, int);
-    method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentActivityOptions(android.content.ComponentName, android.content.Intent[], android.content.Intent, int);
+    method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentActivityOptions(@Nullable android.content.ComponentName, @Nullable android.content.Intent[], android.content.Intent, int);
     method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentContentProviders(android.content.Intent, int);
     method public abstract java.util.List<android.content.pm.ResolveInfo> queryIntentServices(android.content.Intent, int);
-    method public abstract java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract deprecated void removePackageFromPreferred(java.lang.String);
-    method public abstract void removePermission(java.lang.String);
+    method public abstract java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public abstract void removePackageFromPreferred(String);
+    method public abstract void removePermission(String);
     method public abstract android.content.pm.ResolveInfo resolveActivity(android.content.Intent, int);
-    method public abstract android.content.pm.ProviderInfo resolveContentProvider(java.lang.String, int);
+    method public abstract android.content.pm.ProviderInfo resolveContentProvider(String, int);
     method public abstract android.content.pm.ResolveInfo resolveService(android.content.Intent, int);
-    method public abstract void setApplicationCategoryHint(java.lang.String, int);
-    method public abstract void setApplicationEnabledSetting(java.lang.String, int, int);
-    method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int);
-    method public abstract void setInstallerPackageName(java.lang.String, java.lang.String);
-    method public abstract void updateInstantAppCookie(byte[]);
+    method public abstract void setApplicationCategoryHint(@NonNull String, int);
+    method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public abstract void setApplicationEnabledSetting(String, int, int);
+    method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int);
+    method public abstract void setInstallerPackageName(String, String);
+    method public abstract void updateInstantAppCookie(@Nullable byte[]);
     method public abstract void verifyPendingInstall(int, int);
     field public static final int CERT_INPUT_RAW_X509 = 0; // 0x0
     field public static final int CERT_INPUT_SHA256 = 1; // 0x1
@@ -11581,119 +11587,119 @@
     field public static final int COMPONENT_ENABLED_STATE_DISABLED_USER = 3; // 0x3
     field public static final int COMPONENT_ENABLED_STATE_ENABLED = 1; // 0x1
     field public static final int DONT_KILL_APP = 1; // 0x1
-    field public static final java.lang.String EXTRA_VERIFICATION_ID = "android.content.pm.extra.VERIFICATION_ID";
-    field public static final java.lang.String EXTRA_VERIFICATION_RESULT = "android.content.pm.extra.VERIFICATION_RESULT";
-    field public static final java.lang.String FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS = "android.software.activities_on_secondary_displays";
-    field public static final java.lang.String FEATURE_APP_WIDGETS = "android.software.app_widgets";
-    field public static final java.lang.String FEATURE_AUDIO_LOW_LATENCY = "android.hardware.audio.low_latency";
-    field public static final java.lang.String FEATURE_AUDIO_OUTPUT = "android.hardware.audio.output";
-    field public static final java.lang.String FEATURE_AUDIO_PRO = "android.hardware.audio.pro";
-    field public static final java.lang.String FEATURE_AUTOFILL = "android.software.autofill";
-    field public static final java.lang.String FEATURE_AUTOMOTIVE = "android.hardware.type.automotive";
-    field public static final java.lang.String FEATURE_BACKUP = "android.software.backup";
-    field public static final java.lang.String FEATURE_BLUETOOTH = "android.hardware.bluetooth";
-    field public static final java.lang.String FEATURE_BLUETOOTH_LE = "android.hardware.bluetooth_le";
-    field public static final java.lang.String FEATURE_CAMERA = "android.hardware.camera";
-    field public static final java.lang.String FEATURE_CAMERA_ANY = "android.hardware.camera.any";
-    field public static final java.lang.String FEATURE_CAMERA_AR = "android.hardware.camera.ar";
-    field public static final java.lang.String FEATURE_CAMERA_AUTOFOCUS = "android.hardware.camera.autofocus";
-    field public static final java.lang.String FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING = "android.hardware.camera.capability.manual_post_processing";
-    field public static final java.lang.String FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR = "android.hardware.camera.capability.manual_sensor";
-    field public static final java.lang.String FEATURE_CAMERA_CAPABILITY_RAW = "android.hardware.camera.capability.raw";
-    field public static final java.lang.String FEATURE_CAMERA_EXTERNAL = "android.hardware.camera.external";
-    field public static final java.lang.String FEATURE_CAMERA_FLASH = "android.hardware.camera.flash";
-    field public static final java.lang.String FEATURE_CAMERA_FRONT = "android.hardware.camera.front";
-    field public static final java.lang.String FEATURE_CAMERA_LEVEL_FULL = "android.hardware.camera.level.full";
-    field public static final java.lang.String FEATURE_CANT_SAVE_STATE = "android.software.cant_save_state";
-    field public static final java.lang.String FEATURE_COMPANION_DEVICE_SETUP = "android.software.companion_device_setup";
-    field public static final java.lang.String FEATURE_CONNECTION_SERVICE = "android.software.connectionservice";
-    field public static final java.lang.String FEATURE_CONSUMER_IR = "android.hardware.consumerir";
-    field public static final java.lang.String FEATURE_DEVICE_ADMIN = "android.software.device_admin";
-    field public static final java.lang.String FEATURE_EMBEDDED = "android.hardware.type.embedded";
-    field public static final java.lang.String FEATURE_ETHERNET = "android.hardware.ethernet";
-    field public static final java.lang.String FEATURE_FACE = "android.hardware.biometrics.face";
-    field public static final java.lang.String FEATURE_FAKETOUCH = "android.hardware.faketouch";
-    field public static final java.lang.String FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT = "android.hardware.faketouch.multitouch.distinct";
-    field public static final java.lang.String FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND = "android.hardware.faketouch.multitouch.jazzhand";
-    field public static final java.lang.String FEATURE_FINGERPRINT = "android.hardware.biometrics.fingerprint";
-    field public static final java.lang.String FEATURE_FINGERPRINT_PRE_29 = "android.hardware.fingerprint";
-    field public static final java.lang.String FEATURE_FREEFORM_WINDOW_MANAGEMENT = "android.software.freeform_window_management";
-    field public static final java.lang.String FEATURE_GAMEPAD = "android.hardware.gamepad";
-    field public static final java.lang.String FEATURE_HIFI_SENSORS = "android.hardware.sensor.hifi_sensors";
-    field public static final java.lang.String FEATURE_HOME_SCREEN = "android.software.home_screen";
-    field public static final java.lang.String FEATURE_INPUT_METHODS = "android.software.input_methods";
-    field public static final java.lang.String FEATURE_IPSEC_TUNNELS = "android.software.ipsec_tunnels";
-    field public static final java.lang.String FEATURE_IRIS = "android.hardware.biometrics.iris";
-    field public static final java.lang.String FEATURE_LEANBACK = "android.software.leanback";
-    field public static final java.lang.String FEATURE_LEANBACK_ONLY = "android.software.leanback_only";
-    field public static final java.lang.String FEATURE_LIVE_TV = "android.software.live_tv";
-    field public static final java.lang.String FEATURE_LIVE_WALLPAPER = "android.software.live_wallpaper";
-    field public static final java.lang.String FEATURE_LOCATION = "android.hardware.location";
-    field public static final java.lang.String FEATURE_LOCATION_GPS = "android.hardware.location.gps";
-    field public static final java.lang.String FEATURE_LOCATION_NETWORK = "android.hardware.location.network";
-    field public static final java.lang.String FEATURE_MANAGED_USERS = "android.software.managed_users";
-    field public static final java.lang.String FEATURE_MICROPHONE = "android.hardware.microphone";
-    field public static final java.lang.String FEATURE_MIDI = "android.software.midi";
-    field public static final java.lang.String FEATURE_NFC = "android.hardware.nfc";
-    field public static final java.lang.String FEATURE_NFC_BEAM = "android.sofware.nfc.beam";
-    field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce";
-    field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION_NFCF = "android.hardware.nfc.hcef";
-    field public static final java.lang.String FEATURE_NFC_OFF_HOST_CARD_EMULATION_ESE = "android.hardware.nfc.ese";
-    field public static final java.lang.String FEATURE_NFC_OFF_HOST_CARD_EMULATION_UICC = "android.hardware.nfc.uicc";
-    field public static final java.lang.String FEATURE_OPENGLES_EXTENSION_PACK = "android.hardware.opengles.aep";
-    field public static final java.lang.String FEATURE_PC = "android.hardware.type.pc";
-    field public static final java.lang.String FEATURE_PICTURE_IN_PICTURE = "android.software.picture_in_picture";
-    field public static final java.lang.String FEATURE_PRINTING = "android.software.print";
-    field public static final java.lang.String FEATURE_RAM_LOW = "android.hardware.ram.low";
-    field public static final java.lang.String FEATURE_RAM_NORMAL = "android.hardware.ram.normal";
-    field public static final java.lang.String FEATURE_SCREEN_LANDSCAPE = "android.hardware.screen.landscape";
-    field public static final java.lang.String FEATURE_SCREEN_PORTRAIT = "android.hardware.screen.portrait";
-    field public static final java.lang.String FEATURE_SECURELY_REMOVES_USERS = "android.software.securely_removes_users";
-    field public static final java.lang.String FEATURE_SENSOR_ACCELEROMETER = "android.hardware.sensor.accelerometer";
-    field public static final java.lang.String FEATURE_SENSOR_AMBIENT_TEMPERATURE = "android.hardware.sensor.ambient_temperature";
-    field public static final java.lang.String FEATURE_SENSOR_BAROMETER = "android.hardware.sensor.barometer";
-    field public static final java.lang.String FEATURE_SENSOR_COMPASS = "android.hardware.sensor.compass";
-    field public static final java.lang.String FEATURE_SENSOR_GYROSCOPE = "android.hardware.sensor.gyroscope";
-    field public static final java.lang.String FEATURE_SENSOR_HEART_RATE = "android.hardware.sensor.heartrate";
-    field public static final java.lang.String FEATURE_SENSOR_HEART_RATE_ECG = "android.hardware.sensor.heartrate.ecg";
-    field public static final java.lang.String FEATURE_SENSOR_LIGHT = "android.hardware.sensor.light";
-    field public static final java.lang.String FEATURE_SENSOR_PROXIMITY = "android.hardware.sensor.proximity";
-    field public static final java.lang.String FEATURE_SENSOR_RELATIVE_HUMIDITY = "android.hardware.sensor.relative_humidity";
-    field public static final java.lang.String FEATURE_SENSOR_STEP_COUNTER = "android.hardware.sensor.stepcounter";
-    field public static final java.lang.String FEATURE_SENSOR_STEP_DETECTOR = "android.hardware.sensor.stepdetector";
-    field public static final java.lang.String FEATURE_SIP = "android.software.sip";
-    field public static final java.lang.String FEATURE_SIP_VOIP = "android.software.sip.voip";
-    field public static final java.lang.String FEATURE_STRONGBOX_KEYSTORE = "android.hardware.strongbox_keystore";
-    field public static final java.lang.String FEATURE_TELEPHONY = "android.hardware.telephony";
-    field public static final java.lang.String FEATURE_TELEPHONY_CDMA = "android.hardware.telephony.cdma";
-    field public static final java.lang.String FEATURE_TELEPHONY_EUICC = "android.hardware.telephony.euicc";
-    field public static final java.lang.String FEATURE_TELEPHONY_GSM = "android.hardware.telephony.gsm";
-    field public static final java.lang.String FEATURE_TELEPHONY_MBMS = "android.hardware.telephony.mbms";
-    field public static final deprecated java.lang.String FEATURE_TELEVISION = "android.hardware.type.television";
-    field public static final java.lang.String FEATURE_TOUCHSCREEN = "android.hardware.touchscreen";
-    field public static final java.lang.String FEATURE_TOUCHSCREEN_MULTITOUCH = "android.hardware.touchscreen.multitouch";
-    field public static final java.lang.String FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT = "android.hardware.touchscreen.multitouch.distinct";
-    field public static final java.lang.String FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND = "android.hardware.touchscreen.multitouch.jazzhand";
-    field public static final java.lang.String FEATURE_USB_ACCESSORY = "android.hardware.usb.accessory";
-    field public static final java.lang.String FEATURE_USB_HOST = "android.hardware.usb.host";
-    field public static final java.lang.String FEATURE_VERIFIED_BOOT = "android.software.verified_boot";
-    field public static final java.lang.String FEATURE_VR_HEADTRACKING = "android.hardware.vr.headtracking";
-    field public static final deprecated java.lang.String FEATURE_VR_MODE = "android.software.vr.mode";
-    field public static final java.lang.String FEATURE_VR_MODE_HIGH_PERFORMANCE = "android.hardware.vr.high_performance";
-    field public static final java.lang.String FEATURE_VULKAN_HARDWARE_COMPUTE = "android.hardware.vulkan.compute";
-    field public static final java.lang.String FEATURE_VULKAN_HARDWARE_LEVEL = "android.hardware.vulkan.level";
-    field public static final java.lang.String FEATURE_VULKAN_HARDWARE_VERSION = "android.hardware.vulkan.version";
-    field public static final java.lang.String FEATURE_WATCH = "android.hardware.type.watch";
-    field public static final java.lang.String FEATURE_WEBVIEW = "android.software.webview";
-    field public static final java.lang.String FEATURE_WIFI = "android.hardware.wifi";
-    field public static final java.lang.String FEATURE_WIFI_AWARE = "android.hardware.wifi.aware";
-    field public static final java.lang.String FEATURE_WIFI_DIRECT = "android.hardware.wifi.direct";
-    field public static final java.lang.String FEATURE_WIFI_PASSPOINT = "android.hardware.wifi.passpoint";
-    field public static final java.lang.String FEATURE_WIFI_RTT = "android.hardware.wifi.rtt";
+    field public static final String EXTRA_VERIFICATION_ID = "android.content.pm.extra.VERIFICATION_ID";
+    field public static final String EXTRA_VERIFICATION_RESULT = "android.content.pm.extra.VERIFICATION_RESULT";
+    field public static final String FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS = "android.software.activities_on_secondary_displays";
+    field public static final String FEATURE_APP_WIDGETS = "android.software.app_widgets";
+    field public static final String FEATURE_AUDIO_LOW_LATENCY = "android.hardware.audio.low_latency";
+    field public static final String FEATURE_AUDIO_OUTPUT = "android.hardware.audio.output";
+    field public static final String FEATURE_AUDIO_PRO = "android.hardware.audio.pro";
+    field public static final String FEATURE_AUTOFILL = "android.software.autofill";
+    field public static final String FEATURE_AUTOMOTIVE = "android.hardware.type.automotive";
+    field public static final String FEATURE_BACKUP = "android.software.backup";
+    field public static final String FEATURE_BLUETOOTH = "android.hardware.bluetooth";
+    field public static final String FEATURE_BLUETOOTH_LE = "android.hardware.bluetooth_le";
+    field public static final String FEATURE_CAMERA = "android.hardware.camera";
+    field public static final String FEATURE_CAMERA_ANY = "android.hardware.camera.any";
+    field public static final String FEATURE_CAMERA_AR = "android.hardware.camera.ar";
+    field public static final String FEATURE_CAMERA_AUTOFOCUS = "android.hardware.camera.autofocus";
+    field public static final String FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING = "android.hardware.camera.capability.manual_post_processing";
+    field public static final String FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR = "android.hardware.camera.capability.manual_sensor";
+    field public static final String FEATURE_CAMERA_CAPABILITY_RAW = "android.hardware.camera.capability.raw";
+    field public static final String FEATURE_CAMERA_EXTERNAL = "android.hardware.camera.external";
+    field public static final String FEATURE_CAMERA_FLASH = "android.hardware.camera.flash";
+    field public static final String FEATURE_CAMERA_FRONT = "android.hardware.camera.front";
+    field public static final String FEATURE_CAMERA_LEVEL_FULL = "android.hardware.camera.level.full";
+    field public static final String FEATURE_CANT_SAVE_STATE = "android.software.cant_save_state";
+    field public static final String FEATURE_COMPANION_DEVICE_SETUP = "android.software.companion_device_setup";
+    field public static final String FEATURE_CONNECTION_SERVICE = "android.software.connectionservice";
+    field public static final String FEATURE_CONSUMER_IR = "android.hardware.consumerir";
+    field public static final String FEATURE_DEVICE_ADMIN = "android.software.device_admin";
+    field public static final String FEATURE_EMBEDDED = "android.hardware.type.embedded";
+    field public static final String FEATURE_ETHERNET = "android.hardware.ethernet";
+    field public static final String FEATURE_FACE = "android.hardware.biometrics.face";
+    field public static final String FEATURE_FAKETOUCH = "android.hardware.faketouch";
+    field public static final String FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT = "android.hardware.faketouch.multitouch.distinct";
+    field public static final String FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND = "android.hardware.faketouch.multitouch.jazzhand";
+    field public static final String FEATURE_FINGERPRINT = "android.hardware.biometrics.fingerprint";
+    field public static final String FEATURE_FINGERPRINT_PRE_29 = "android.hardware.fingerprint";
+    field public static final String FEATURE_FREEFORM_WINDOW_MANAGEMENT = "android.software.freeform_window_management";
+    field public static final String FEATURE_GAMEPAD = "android.hardware.gamepad";
+    field public static final String FEATURE_HIFI_SENSORS = "android.hardware.sensor.hifi_sensors";
+    field public static final String FEATURE_HOME_SCREEN = "android.software.home_screen";
+    field public static final String FEATURE_INPUT_METHODS = "android.software.input_methods";
+    field public static final String FEATURE_IPSEC_TUNNELS = "android.software.ipsec_tunnels";
+    field public static final String FEATURE_IRIS = "android.hardware.biometrics.iris";
+    field public static final String FEATURE_LEANBACK = "android.software.leanback";
+    field public static final String FEATURE_LEANBACK_ONLY = "android.software.leanback_only";
+    field public static final String FEATURE_LIVE_TV = "android.software.live_tv";
+    field public static final String FEATURE_LIVE_WALLPAPER = "android.software.live_wallpaper";
+    field public static final String FEATURE_LOCATION = "android.hardware.location";
+    field public static final String FEATURE_LOCATION_GPS = "android.hardware.location.gps";
+    field public static final String FEATURE_LOCATION_NETWORK = "android.hardware.location.network";
+    field public static final String FEATURE_MANAGED_USERS = "android.software.managed_users";
+    field public static final String FEATURE_MICROPHONE = "android.hardware.microphone";
+    field public static final String FEATURE_MIDI = "android.software.midi";
+    field public static final String FEATURE_NFC = "android.hardware.nfc";
+    field public static final String FEATURE_NFC_BEAM = "android.sofware.nfc.beam";
+    field public static final String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce";
+    field public static final String FEATURE_NFC_HOST_CARD_EMULATION_NFCF = "android.hardware.nfc.hcef";
+    field public static final String FEATURE_NFC_OFF_HOST_CARD_EMULATION_ESE = "android.hardware.nfc.ese";
+    field public static final String FEATURE_NFC_OFF_HOST_CARD_EMULATION_UICC = "android.hardware.nfc.uicc";
+    field public static final String FEATURE_OPENGLES_EXTENSION_PACK = "android.hardware.opengles.aep";
+    field public static final String FEATURE_PC = "android.hardware.type.pc";
+    field public static final String FEATURE_PICTURE_IN_PICTURE = "android.software.picture_in_picture";
+    field public static final String FEATURE_PRINTING = "android.software.print";
+    field public static final String FEATURE_RAM_LOW = "android.hardware.ram.low";
+    field public static final String FEATURE_RAM_NORMAL = "android.hardware.ram.normal";
+    field public static final String FEATURE_SCREEN_LANDSCAPE = "android.hardware.screen.landscape";
+    field public static final String FEATURE_SCREEN_PORTRAIT = "android.hardware.screen.portrait";
+    field public static final String FEATURE_SECURELY_REMOVES_USERS = "android.software.securely_removes_users";
+    field public static final String FEATURE_SENSOR_ACCELEROMETER = "android.hardware.sensor.accelerometer";
+    field public static final String FEATURE_SENSOR_AMBIENT_TEMPERATURE = "android.hardware.sensor.ambient_temperature";
+    field public static final String FEATURE_SENSOR_BAROMETER = "android.hardware.sensor.barometer";
+    field public static final String FEATURE_SENSOR_COMPASS = "android.hardware.sensor.compass";
+    field public static final String FEATURE_SENSOR_GYROSCOPE = "android.hardware.sensor.gyroscope";
+    field public static final String FEATURE_SENSOR_HEART_RATE = "android.hardware.sensor.heartrate";
+    field public static final String FEATURE_SENSOR_HEART_RATE_ECG = "android.hardware.sensor.heartrate.ecg";
+    field public static final String FEATURE_SENSOR_LIGHT = "android.hardware.sensor.light";
+    field public static final String FEATURE_SENSOR_PROXIMITY = "android.hardware.sensor.proximity";
+    field public static final String FEATURE_SENSOR_RELATIVE_HUMIDITY = "android.hardware.sensor.relative_humidity";
+    field public static final String FEATURE_SENSOR_STEP_COUNTER = "android.hardware.sensor.stepcounter";
+    field public static final String FEATURE_SENSOR_STEP_DETECTOR = "android.hardware.sensor.stepdetector";
+    field public static final String FEATURE_SIP = "android.software.sip";
+    field public static final String FEATURE_SIP_VOIP = "android.software.sip.voip";
+    field public static final String FEATURE_STRONGBOX_KEYSTORE = "android.hardware.strongbox_keystore";
+    field public static final String FEATURE_TELEPHONY = "android.hardware.telephony";
+    field public static final String FEATURE_TELEPHONY_CDMA = "android.hardware.telephony.cdma";
+    field public static final String FEATURE_TELEPHONY_EUICC = "android.hardware.telephony.euicc";
+    field public static final String FEATURE_TELEPHONY_GSM = "android.hardware.telephony.gsm";
+    field public static final String FEATURE_TELEPHONY_MBMS = "android.hardware.telephony.mbms";
+    field @Deprecated public static final String FEATURE_TELEVISION = "android.hardware.type.television";
+    field public static final String FEATURE_TOUCHSCREEN = "android.hardware.touchscreen";
+    field public static final String FEATURE_TOUCHSCREEN_MULTITOUCH = "android.hardware.touchscreen.multitouch";
+    field public static final String FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT = "android.hardware.touchscreen.multitouch.distinct";
+    field public static final String FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND = "android.hardware.touchscreen.multitouch.jazzhand";
+    field public static final String FEATURE_USB_ACCESSORY = "android.hardware.usb.accessory";
+    field public static final String FEATURE_USB_HOST = "android.hardware.usb.host";
+    field public static final String FEATURE_VERIFIED_BOOT = "android.software.verified_boot";
+    field public static final String FEATURE_VR_HEADTRACKING = "android.hardware.vr.headtracking";
+    field @Deprecated public static final String FEATURE_VR_MODE = "android.software.vr.mode";
+    field public static final String FEATURE_VR_MODE_HIGH_PERFORMANCE = "android.hardware.vr.high_performance";
+    field public static final String FEATURE_VULKAN_HARDWARE_COMPUTE = "android.hardware.vulkan.compute";
+    field public static final String FEATURE_VULKAN_HARDWARE_LEVEL = "android.hardware.vulkan.level";
+    field public static final String FEATURE_VULKAN_HARDWARE_VERSION = "android.hardware.vulkan.version";
+    field public static final String FEATURE_WATCH = "android.hardware.type.watch";
+    field public static final String FEATURE_WEBVIEW = "android.software.webview";
+    field public static final String FEATURE_WIFI = "android.hardware.wifi";
+    field public static final String FEATURE_WIFI_AWARE = "android.hardware.wifi.aware";
+    field public static final String FEATURE_WIFI_DIRECT = "android.hardware.wifi.direct";
+    field public static final String FEATURE_WIFI_PASSPOINT = "android.hardware.wifi.passpoint";
+    field public static final String FEATURE_WIFI_RTT = "android.hardware.wifi.rtt";
     field public static final int GET_ACTIVITIES = 1; // 0x1
     field public static final int GET_CONFIGURATIONS = 16384; // 0x4000
-    field public static final deprecated int GET_DISABLED_COMPONENTS = 512; // 0x200
-    field public static final deprecated int GET_DISABLED_UNTIL_USED_COMPONENTS = 32768; // 0x8000
+    field @Deprecated public static final int GET_DISABLED_COMPONENTS = 512; // 0x200
+    field @Deprecated public static final int GET_DISABLED_UNTIL_USED_COMPONENTS = 32768; // 0x8000
     field public static final int GET_GIDS = 256; // 0x100
     field public static final int GET_INSTRUMENTATION = 16; // 0x10
     field public static final int GET_INTENT_FILTERS = 32; // 0x20
@@ -11704,9 +11710,9 @@
     field public static final int GET_RESOLVED_FILTER = 64; // 0x40
     field public static final int GET_SERVICES = 4; // 0x4
     field public static final int GET_SHARED_LIBRARY_FILES = 1024; // 0x400
-    field public static final deprecated int GET_SIGNATURES = 64; // 0x40
+    field @Deprecated public static final int GET_SIGNATURES = 64; // 0x40
     field public static final int GET_SIGNING_CERTIFICATES = 134217728; // 0x8000000
-    field public static final deprecated int GET_UNINSTALLED_PACKAGES = 8192; // 0x2000
+    field @Deprecated public static final int GET_UNINSTALLED_PACKAGES = 8192; // 0x2000
     field public static final int GET_URI_PERMISSION_PATTERNS = 2048; // 0x800
     field public static final int INSTALL_REASON_DEVICE_RESTORE = 2; // 0x2
     field public static final int INSTALL_REASON_DEVICE_SETUP = 3; // 0x3
@@ -11739,32 +11745,32 @@
 
   public static class PackageManager.NameNotFoundException extends android.util.AndroidException {
     ctor public PackageManager.NameNotFoundException();
-    ctor public PackageManager.NameNotFoundException(java.lang.String);
+    ctor public PackageManager.NameNotFoundException(String);
   }
 
-  public deprecated class PackageStats implements android.os.Parcelable {
-    ctor public PackageStats(java.lang.String);
-    ctor public PackageStats(android.os.Parcel);
-    ctor public PackageStats(android.content.pm.PackageStats);
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.content.pm.PackageStats> CREATOR;
-    field public long cacheSize;
-    field public long codeSize;
-    field public long dataSize;
-    field public long externalCacheSize;
-    field public long externalCodeSize;
-    field public long externalDataSize;
-    field public long externalMediaSize;
-    field public long externalObbSize;
-    field public java.lang.String packageName;
+  @Deprecated public class PackageStats implements android.os.Parcelable {
+    ctor @Deprecated public PackageStats(String);
+    ctor @Deprecated public PackageStats(android.os.Parcel);
+    ctor @Deprecated public PackageStats(android.content.pm.PackageStats);
+    method @Deprecated public int describeContents();
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.content.pm.PackageStats> CREATOR;
+    field @Deprecated public long cacheSize;
+    field @Deprecated public long codeSize;
+    field @Deprecated public long dataSize;
+    field @Deprecated public long externalCacheSize;
+    field @Deprecated public long externalCodeSize;
+    field @Deprecated public long externalDataSize;
+    field @Deprecated public long externalMediaSize;
+    field @Deprecated public long externalObbSize;
+    field @Deprecated public String packageName;
   }
 
   public class PathPermission extends android.os.PatternMatcher {
-    ctor public PathPermission(java.lang.String, int, java.lang.String, java.lang.String);
+    ctor public PathPermission(String, int, String, String);
     ctor public PathPermission(android.os.Parcel);
-    method public java.lang.String getReadPermission();
-    method public java.lang.String getWritePermission();
+    method public String getReadPermission();
+    method public String getWritePermission();
     field public static final android.os.Parcelable.Creator<android.content.pm.PathPermission> CREATOR;
   }
 
@@ -11772,12 +11778,12 @@
     ctor public PermissionGroupInfo();
     ctor public PermissionGroupInfo(android.content.pm.PermissionGroupInfo);
     method public int describeContents();
-    method public java.lang.CharSequence loadDescription(android.content.pm.PackageManager);
+    method public CharSequence loadDescription(android.content.pm.PackageManager);
     field public static final android.os.Parcelable.Creator<android.content.pm.PermissionGroupInfo> CREATOR;
     field public static final int FLAG_PERSONAL_INFO = 1; // 0x1
     field public int descriptionRes;
     field public int flags;
-    field public java.lang.CharSequence nonLocalizedDescription;
+    field public CharSequence nonLocalizedDescription;
     field public int priority;
   }
 
@@ -11787,7 +11793,7 @@
     method public int describeContents();
     method public int getProtection();
     method public int getProtectionFlags();
-    method public java.lang.CharSequence loadDescription(android.content.pm.PackageManager);
+    method public CharSequence loadDescription(android.content.pm.PackageManager);
     field public static final android.os.Parcelable.Creator<android.content.pm.PermissionInfo> CREATOR;
     field public static final int FLAG_COSTS_MONEY = 1; // 0x1
     field public static final int FLAG_INSTALLED = 1073741824; // 0x40000000
@@ -11801,18 +11807,18 @@
     field public static final int PROTECTION_FLAG_PRIVILEGED = 16; // 0x10
     field public static final int PROTECTION_FLAG_RUNTIME_ONLY = 8192; // 0x2000
     field public static final int PROTECTION_FLAG_SETUP = 2048; // 0x800
-    field public static final deprecated int PROTECTION_FLAG_SYSTEM = 16; // 0x10
+    field @Deprecated public static final int PROTECTION_FLAG_SYSTEM = 16; // 0x10
     field public static final int PROTECTION_FLAG_VERIFIER = 512; // 0x200
-    field public static final deprecated int PROTECTION_MASK_BASE = 15; // 0xf
-    field public static final deprecated int PROTECTION_MASK_FLAGS = 65520; // 0xfff0
+    field @Deprecated public static final int PROTECTION_MASK_BASE = 15; // 0xf
+    field @Deprecated public static final int PROTECTION_MASK_FLAGS = 65520; // 0xfff0
     field public static final int PROTECTION_NORMAL = 0; // 0x0
     field public static final int PROTECTION_SIGNATURE = 2; // 0x2
-    field public static final deprecated int PROTECTION_SIGNATURE_OR_SYSTEM = 3; // 0x3
+    field @Deprecated public static final int PROTECTION_SIGNATURE_OR_SYSTEM = 3; // 0x3
     field public int descriptionRes;
     field public int flags;
-    field public java.lang.String group;
-    field public java.lang.CharSequence nonLocalizedDescription;
-    field public deprecated int protectionLevel;
+    field public String group;
+    field public CharSequence nonLocalizedDescription;
+    field @Deprecated public int protectionLevel;
     field public boolean usageInfoRequired;
   }
 
@@ -11820,29 +11826,29 @@
     ctor public ProviderInfo();
     ctor public ProviderInfo(android.content.pm.ProviderInfo);
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     field public static final android.os.Parcelable.Creator<android.content.pm.ProviderInfo> CREATOR;
     field public static final int FLAG_SINGLE_USER = 1073741824; // 0x40000000
-    field public java.lang.String authority;
+    field public String authority;
     field public int flags;
     field public boolean grantUriPermissions;
     field public int initOrder;
-    field public deprecated boolean isSyncable;
+    field @Deprecated public boolean isSyncable;
     field public boolean multiprocess;
     field public android.content.pm.PathPermission[] pathPermissions;
-    field public java.lang.String readPermission;
+    field public String readPermission;
     field public android.os.PatternMatcher[] uriPermissionPatterns;
-    field public java.lang.String writePermission;
+    field public String writePermission;
   }
 
   public class ResolveInfo implements android.os.Parcelable {
     ctor public ResolveInfo();
     ctor public ResolveInfo(android.content.pm.ResolveInfo);
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public final int getIconResource();
     method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
-    method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
+    method public CharSequence loadLabel(android.content.pm.PackageManager);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.ResolveInfo> CREATOR;
     field public android.content.pm.ActivityInfo activityInfo;
@@ -11852,16 +11858,16 @@
     field public boolean isInstantAppAvailable;
     field public int labelRes;
     field public int match;
-    field public java.lang.CharSequence nonLocalizedLabel;
+    field public CharSequence nonLocalizedLabel;
     field public int preferredOrder;
     field public int priority;
     field public android.content.pm.ProviderInfo providerInfo;
-    field public java.lang.String resolvePackageName;
+    field public String resolvePackageName;
     field public android.content.pm.ServiceInfo serviceInfo;
     field public int specificIndex;
   }
 
-  public static class ResolveInfo.DisplayNameComparator implements java.util.Comparator {
+  public static class ResolveInfo.DisplayNameComparator implements java.util.Comparator<android.content.pm.ResolveInfo> {
     ctor public ResolveInfo.DisplayNameComparator(android.content.pm.PackageManager);
     method public final int compare(android.content.pm.ResolveInfo, android.content.pm.ResolveInfo);
   }
@@ -11870,7 +11876,7 @@
     ctor public ServiceInfo();
     ctor public ServiceInfo(android.content.pm.ServiceInfo);
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public int getForegroundServiceType();
     field public static final android.os.Parcelable.Creator<android.content.pm.ServiceInfo> CREATOR;
     field public static final int FLAG_EXTERNAL_SERVICE = 4; // 0x4
@@ -11886,17 +11892,17 @@
     field public static final int FOREGROUND_SERVICE_TYPE_SYNC = 1; // 0x1
     field public static final int FOREGROUND_SERVICE_TYPE_UNSPECIFIED = 0; // 0x0
     field public int flags;
-    field public java.lang.String permission;
+    field public String permission;
   }
 
   public final class SharedLibraryInfo implements android.os.Parcelable {
     method public int describeContents();
-    method public android.content.pm.VersionedPackage getDeclaringPackage();
-    method public java.util.List<android.content.pm.VersionedPackage> getDependentPackages();
-    method public long getLongVersion();
-    method public java.lang.String getName();
+    method @NonNull public android.content.pm.VersionedPackage getDeclaringPackage();
+    method @NonNull public java.util.List<android.content.pm.VersionedPackage> getDependentPackages();
+    method @IntRange(from=0xffffffff) public long getLongVersion();
+    method public String getName();
     method public int getType();
-    method public deprecated int getVersion();
+    method @Deprecated @IntRange(from=0xffffffff) public int getVersion();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.SharedLibraryInfo> CREATOR;
     field public static final int TYPE_BUILTIN = 0; // 0x0
@@ -11907,19 +11913,19 @@
 
   public final class ShortcutInfo implements android.os.Parcelable {
     method public int describeContents();
-    method public android.content.ComponentName getActivity();
-    method public java.util.Set<java.lang.String> getCategories();
-    method public java.lang.CharSequence getDisabledMessage();
+    method @Nullable public android.content.ComponentName getActivity();
+    method @Nullable public java.util.Set<java.lang.String> getCategories();
+    method @Nullable public CharSequence getDisabledMessage();
     method public int getDisabledReason();
-    method public android.os.PersistableBundle getExtras();
-    method public java.lang.String getId();
-    method public android.content.Intent getIntent();
-    method public android.content.Intent[] getIntents();
+    method @Nullable public android.os.PersistableBundle getExtras();
+    method @NonNull public String getId();
+    method @Nullable public android.content.Intent getIntent();
+    method @Nullable public android.content.Intent[] getIntents();
     method public long getLastChangedTimestamp();
-    method public java.lang.CharSequence getLongLabel();
-    method public java.lang.String getPackage();
+    method @Nullable public CharSequence getLongLabel();
+    method @NonNull public String getPackage();
     method public int getRank();
-    method public java.lang.CharSequence getShortLabel();
+    method @Nullable public CharSequence getShortLabel();
     method public android.os.UserHandle getUserHandle();
     method public boolean hasKeyFieldsOnly();
     method public boolean isDeclaredInManifest();
@@ -11937,57 +11943,57 @@
     field public static final int DISABLED_REASON_SIGNATURE_MISMATCH = 102; // 0x66
     field public static final int DISABLED_REASON_UNKNOWN = 3; // 0x3
     field public static final int DISABLED_REASON_VERSION_LOWER = 100; // 0x64
-    field public static final java.lang.String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation";
+    field public static final String SHORTCUT_CATEGORY_CONVERSATION = "android.shortcut.conversation";
   }
 
   public static class ShortcutInfo.Builder {
-    ctor public ShortcutInfo.Builder(android.content.Context, java.lang.String);
-    method public android.content.pm.ShortcutInfo build();
-    method public android.content.pm.ShortcutInfo.Builder setActivity(android.content.ComponentName);
-    method public android.content.pm.ShortcutInfo.Builder setCategories(java.util.Set<java.lang.String>);
-    method public android.content.pm.ShortcutInfo.Builder setDisabledMessage(java.lang.CharSequence);
-    method public android.content.pm.ShortcutInfo.Builder setExtras(android.os.PersistableBundle);
-    method public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon);
-    method public android.content.pm.ShortcutInfo.Builder setIntent(android.content.Intent);
-    method public android.content.pm.ShortcutInfo.Builder setIntents(android.content.Intent[]);
-    method public android.content.pm.ShortcutInfo.Builder setLongLabel(java.lang.CharSequence);
-    method public android.content.pm.ShortcutInfo.Builder setLongLived();
-    method public android.content.pm.ShortcutInfo.Builder setPerson(android.app.Person);
-    method public android.content.pm.ShortcutInfo.Builder setPersons(android.app.Person[]);
-    method public android.content.pm.ShortcutInfo.Builder setRank(int);
-    method public android.content.pm.ShortcutInfo.Builder setShortLabel(java.lang.CharSequence);
+    ctor public ShortcutInfo.Builder(android.content.Context, String);
+    method @NonNull public android.content.pm.ShortcutInfo build();
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setActivity(@NonNull android.content.ComponentName);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setCategories(java.util.Set<java.lang.String>);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setDisabledMessage(@NonNull CharSequence);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setExtras(@NonNull android.os.PersistableBundle);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setIcon(android.graphics.drawable.Icon);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setIntent(@NonNull android.content.Intent);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setIntents(@NonNull android.content.Intent[]);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setLongLabel(@NonNull CharSequence);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setLongLived();
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setPerson(@NonNull android.app.Person);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setPersons(@NonNull android.app.Person[]);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setRank(int);
+    method @NonNull public android.content.pm.ShortcutInfo.Builder setShortLabel(@NonNull CharSequence);
   }
 
   public class ShortcutManager {
-    method public boolean addDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
-    method public android.content.Intent createShortcutResultIntent(android.content.pm.ShortcutInfo);
-    method public void disableShortcuts(java.util.List<java.lang.String>);
-    method public void disableShortcuts(java.util.List<java.lang.String>, java.lang.CharSequence);
-    method public void enableShortcuts(java.util.List<java.lang.String>);
-    method public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts();
+    method public boolean addDynamicShortcuts(@NonNull java.util.List<android.content.pm.ShortcutInfo>);
+    method public android.content.Intent createShortcutResultIntent(@NonNull android.content.pm.ShortcutInfo);
+    method public void disableShortcuts(@NonNull java.util.List<java.lang.String>);
+    method public void disableShortcuts(@NonNull java.util.List<java.lang.String>, CharSequence);
+    method public void enableShortcuts(@NonNull java.util.List<java.lang.String>);
+    method @NonNull public java.util.List<android.content.pm.ShortcutInfo> getDynamicShortcuts();
     method public int getIconMaxHeight();
     method public int getIconMaxWidth();
-    method public java.util.List<android.content.pm.ShortcutInfo> getManifestShortcuts();
+    method @NonNull public java.util.List<android.content.pm.ShortcutInfo> getManifestShortcuts();
     method public int getMaxShortcutCountPerActivity();
-    method public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts();
+    method @NonNull public java.util.List<android.content.pm.ShortcutInfo> getPinnedShortcuts();
     method public boolean isRateLimitingActive();
     method public boolean isRequestPinShortcutSupported();
     method public void removeAllDynamicShortcuts();
-    method public void removeDynamicShortcuts(java.util.List<java.lang.String>);
-    method public void reportShortcutUsed(java.lang.String);
-    method public boolean requestPinShortcut(android.content.pm.ShortcutInfo, android.content.IntentSender);
-    method public boolean setDynamicShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
-    method public boolean updateShortcuts(java.util.List<android.content.pm.ShortcutInfo>);
+    method public void removeDynamicShortcuts(@NonNull java.util.List<java.lang.String>);
+    method public void reportShortcutUsed(String);
+    method public boolean requestPinShortcut(@NonNull android.content.pm.ShortcutInfo, @Nullable android.content.IntentSender);
+    method public boolean setDynamicShortcuts(@NonNull java.util.List<android.content.pm.ShortcutInfo>);
+    method public boolean updateShortcuts(@NonNull java.util.List<android.content.pm.ShortcutInfo>);
   }
 
   public class Signature implements android.os.Parcelable {
     ctor public Signature(byte[]);
-    ctor public Signature(java.lang.String);
+    ctor public Signature(String);
     method public int describeContents();
     method public byte[] toByteArray();
     method public char[] toChars();
     method public char[] toChars(char[], int[]);
-    method public java.lang.String toCharsString();
+    method public String toCharsString();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.Signature> CREATOR;
   }
@@ -12012,7 +12018,7 @@
     method public int getDataSharedWithThirdParty();
     method public int getDataUsedForMonetization();
     method public int getFlags();
-    method public java.lang.String getPermission();
+    method public String getPermission();
     field public static final android.os.Parcelable.Creator<android.content.pm.UsesPermissionInfo> CREATOR;
     field public static final int FLAG_REQUESTED_PERMISSION_GRANTED = 2; // 0x2
     field public static final int RETENTION_NOT_RETAINED = 1; // 0x1
@@ -12027,12 +12033,12 @@
   }
 
   public final class VersionedPackage implements android.os.Parcelable {
-    ctor public VersionedPackage(java.lang.String, int);
-    ctor public VersionedPackage(java.lang.String, long);
+    ctor public VersionedPackage(@NonNull String, int);
+    ctor public VersionedPackage(@NonNull String, long);
     method public int describeContents();
     method public long getLongVersionCode();
-    method public java.lang.String getPackageName();
-    method public deprecated int getVersionCode();
+    method @NonNull public String getPackageName();
+    method @Deprecated public int getVersionCode();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.VersionedPackage> CREATOR;
   }
@@ -12061,7 +12067,6 @@
 
   public static class AssetFileDescriptor.AutoCloseInputStream extends android.os.ParcelFileDescriptor.AutoCloseInputStream {
     ctor public AssetFileDescriptor.AutoCloseInputStream(android.content.res.AssetFileDescriptor) throws java.io.IOException;
-    method public void mark(int);
   }
 
   public static class AssetFileDescriptor.AutoCloseOutputStream extends android.os.ParcelFileDescriptor.AutoCloseOutputStream {
@@ -12070,15 +12075,15 @@
 
   public final class AssetManager implements java.lang.AutoCloseable {
     method public void close();
-    method public java.lang.String[] getLocales();
-    method public java.lang.String[] list(java.lang.String) throws java.io.IOException;
-    method public java.io.InputStream open(java.lang.String) throws java.io.IOException;
-    method public java.io.InputStream open(java.lang.String, int) throws java.io.IOException;
-    method public android.content.res.AssetFileDescriptor openFd(java.lang.String) throws java.io.IOException;
-    method public android.content.res.AssetFileDescriptor openNonAssetFd(java.lang.String) throws java.io.IOException;
-    method public android.content.res.AssetFileDescriptor openNonAssetFd(int, java.lang.String) throws java.io.IOException;
-    method public android.content.res.XmlResourceParser openXmlResourceParser(java.lang.String) throws java.io.IOException;
-    method public android.content.res.XmlResourceParser openXmlResourceParser(int, java.lang.String) throws java.io.IOException;
+    method public String[] getLocales();
+    method @Nullable public String[] list(@NonNull String) throws java.io.IOException;
+    method @NonNull public java.io.InputStream open(@NonNull String) throws java.io.IOException;
+    method @NonNull public java.io.InputStream open(@NonNull String, int) throws java.io.IOException;
+    method @NonNull public android.content.res.AssetFileDescriptor openFd(@NonNull String) throws java.io.IOException;
+    method @NonNull public android.content.res.AssetFileDescriptor openNonAssetFd(@NonNull String) throws java.io.IOException;
+    method @NonNull public android.content.res.AssetFileDescriptor openNonAssetFd(int, @NonNull String) throws java.io.IOException;
+    method @NonNull public android.content.res.XmlResourceParser openXmlResourceParser(@NonNull String) throws java.io.IOException;
+    method @NonNull public android.content.res.XmlResourceParser openXmlResourceParser(int, @NonNull String) throws java.io.IOException;
     field public static final int ACCESS_BUFFER = 3; // 0x3
     field public static final int ACCESS_RANDOM = 1; // 0x1
     field public static final int ACCESS_STREAMING = 2; // 0x2
@@ -12086,28 +12091,26 @@
   }
 
   public final class AssetManager.AssetInputStream extends java.io.InputStream {
-    method public void mark(int);
     method public int read() throws java.io.IOException;
-    method public void reset() throws java.io.IOException;
   }
 
   public class ColorStateList implements android.os.Parcelable {
-    ctor public ColorStateList(int[][], int[]);
-    method public static deprecated android.content.res.ColorStateList createFromXml(android.content.res.Resources, org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public static android.content.res.ColorStateList createFromXml(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    ctor public ColorStateList(int[][], @ColorInt int[]);
+    method @Deprecated @NonNull public static android.content.res.ColorStateList createFromXml(android.content.res.Resources, org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method @NonNull public static android.content.res.ColorStateList createFromXml(@NonNull android.content.res.Resources, @NonNull org.xmlpull.v1.XmlPullParser, @Nullable android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
     method public int describeContents();
     method public int getChangingConfigurations();
-    method public int getColorForState(int[], int);
-    method public int getDefaultColor();
+    method public int getColorForState(@Nullable int[], int);
+    method @ColorInt public int getDefaultColor();
     method public boolean isOpaque();
     method public boolean isStateful();
-    method public static android.content.res.ColorStateList valueOf(int);
-    method public android.content.res.ColorStateList withAlpha(int);
+    method @NonNull public static android.content.res.ColorStateList valueOf(@ColorInt int);
+    method @NonNull public android.content.res.ColorStateList withAlpha(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.res.ColorStateList> CREATOR;
   }
 
-  public final class Configuration implements java.lang.Comparable android.os.Parcelable {
+  public final class Configuration implements java.lang.Comparable<android.content.res.Configuration> android.os.Parcelable {
     ctor public Configuration();
     ctor public Configuration(android.content.res.Configuration);
     method public int compareTo(android.content.res.Configuration);
@@ -12115,7 +12118,7 @@
     method public int diff(android.content.res.Configuration);
     method public boolean equals(android.content.res.Configuration);
     method public int getLayoutDirection();
-    method public android.os.LocaleList getLocales();
+    method @NonNull public android.os.LocaleList getLocales();
     method public boolean isLayoutSizeAtLeast(int);
     method public boolean isScreenHdr();
     method public boolean isScreenRound();
@@ -12123,11 +12126,11 @@
     method public static boolean needNewResources(int, int);
     method public void readFromParcel(android.os.Parcel);
     method public void setLayoutDirection(java.util.Locale);
-    method public void setLocale(java.util.Locale);
-    method public void setLocales(android.os.LocaleList);
+    method public void setLocale(@Nullable java.util.Locale);
+    method public void setLocales(@Nullable android.os.LocaleList);
     method public void setTo(android.content.res.Configuration);
     method public void setToDefaults();
-    method public int updateFrom(android.content.res.Configuration);
+    method public int updateFrom(@NonNull android.content.res.Configuration);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int COLOR_MODE_HDR_MASK = 12; // 0xc
     field public static final int COLOR_MODE_HDR_NO = 4; // 0x4
@@ -12162,7 +12165,7 @@
     field public static final int NAVIGATION_WHEEL = 4; // 0x4
     field public static final int ORIENTATION_LANDSCAPE = 2; // 0x2
     field public static final int ORIENTATION_PORTRAIT = 1; // 0x1
-    field public static final deprecated int ORIENTATION_SQUARE = 3; // 0x3
+    field @Deprecated public static final int ORIENTATION_SQUARE = 3; // 0x3
     field public static final int ORIENTATION_UNDEFINED = 0; // 0x0
     field public static final int SCREENLAYOUT_LAYOUTDIR_LTR = 64; // 0x40
     field public static final int SCREENLAYOUT_LAYOUTDIR_MASK = 192; // 0xc0
@@ -12189,7 +12192,7 @@
     field public static final int SMALLEST_SCREEN_WIDTH_DP_UNDEFINED = 0; // 0x0
     field public static final int TOUCHSCREEN_FINGER = 3; // 0x3
     field public static final int TOUCHSCREEN_NOTOUCH = 1; // 0x1
-    field public static final deprecated int TOUCHSCREEN_STYLUS = 2; // 0x2
+    field @Deprecated public static final int TOUCHSCREEN_STYLUS = 2; // 0x2
     field public static final int TOUCHSCREEN_UNDEFINED = 0; // 0x0
     field public static final int UI_MODE_NIGHT_MASK = 48; // 0x30
     field public static final int UI_MODE_NIGHT_NO = 16; // 0x10
@@ -12210,7 +12213,7 @@
     field public int hardKeyboardHidden;
     field public int keyboard;
     field public int keyboardHidden;
-    field public deprecated java.util.Locale locale;
+    field @Deprecated public java.util.Locale locale;
     field public int mcc;
     field public int mnc;
     field public int navigation;
@@ -12229,130 +12232,130 @@
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.res.ObbInfo> CREATOR;
     field public static final int OBB_OVERLAY = 1; // 0x1
-    field public java.lang.String filename;
+    field public String filename;
     field public int flags;
-    field public java.lang.String packageName;
+    field public String packageName;
     field public int version;
   }
 
   public class ObbScanner {
-    method public static android.content.res.ObbInfo getObbInfo(java.lang.String) throws java.io.IOException;
+    method public static android.content.res.ObbInfo getObbInfo(String) throws java.io.IOException;
   }
 
   public class Resources {
-    ctor public deprecated Resources(android.content.res.AssetManager, android.util.DisplayMetrics, android.content.res.Configuration);
+    ctor @Deprecated public Resources(android.content.res.AssetManager, android.util.DisplayMetrics, android.content.res.Configuration);
     method public final void finishPreloading();
     method public final void flushLayoutCache();
-    method public android.content.res.XmlResourceParser getAnimation(int) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public android.content.res.XmlResourceParser getAnimation(@AnimatorRes @AnimRes int) throws android.content.res.Resources.NotFoundException;
     method public final android.content.res.AssetManager getAssets();
-    method public boolean getBoolean(int) throws android.content.res.Resources.NotFoundException;
-    method public deprecated int getColor(int) throws android.content.res.Resources.NotFoundException;
-    method public int getColor(int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
-    method public deprecated android.content.res.ColorStateList getColorStateList(int) throws android.content.res.Resources.NotFoundException;
-    method public android.content.res.ColorStateList getColorStateList(int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
+    method public boolean getBoolean(@BoolRes int) throws android.content.res.Resources.NotFoundException;
+    method @Deprecated @ColorInt public int getColor(@ColorRes int) throws android.content.res.Resources.NotFoundException;
+    method @ColorInt public int getColor(@ColorRes int, @Nullable android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
+    method @Deprecated @NonNull public android.content.res.ColorStateList getColorStateList(@ColorRes int) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public android.content.res.ColorStateList getColorStateList(@ColorRes int, @Nullable android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
     method public android.content.res.Configuration getConfiguration();
-    method public float getDimension(int) throws android.content.res.Resources.NotFoundException;
-    method public int getDimensionPixelOffset(int) throws android.content.res.Resources.NotFoundException;
-    method public int getDimensionPixelSize(int) throws android.content.res.Resources.NotFoundException;
+    method public float getDimension(@DimenRes int) throws android.content.res.Resources.NotFoundException;
+    method public int getDimensionPixelOffset(@DimenRes int) throws android.content.res.Resources.NotFoundException;
+    method public int getDimensionPixelSize(@DimenRes int) throws android.content.res.Resources.NotFoundException;
     method public android.util.DisplayMetrics getDisplayMetrics();
-    method public deprecated android.graphics.drawable.Drawable getDrawable(int) throws android.content.res.Resources.NotFoundException;
-    method public android.graphics.drawable.Drawable getDrawable(int, android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
-    method public deprecated android.graphics.drawable.Drawable getDrawableForDensity(int, int) throws android.content.res.Resources.NotFoundException;
-    method public android.graphics.drawable.Drawable getDrawableForDensity(int, int, android.content.res.Resources.Theme);
-    method public float getFloat(int);
-    method public android.graphics.Typeface getFont(int) throws android.content.res.Resources.NotFoundException;
-    method public float getFraction(int, int, int);
-    method public int getIdentifier(java.lang.String, java.lang.String, java.lang.String);
-    method public int[] getIntArray(int) throws android.content.res.Resources.NotFoundException;
-    method public int getInteger(int) throws android.content.res.Resources.NotFoundException;
-    method public android.content.res.XmlResourceParser getLayout(int) throws android.content.res.Resources.NotFoundException;
-    method public deprecated android.graphics.Movie getMovie(int) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.String getQuantityString(int, int, java.lang.Object...) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.String getQuantityString(int, int) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.CharSequence getQuantityText(int, int) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.String getResourceEntryName(int) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.String getResourceName(int) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.String getResourcePackageName(int) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.String getResourceTypeName(int) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.String getString(int) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.String getString(int, java.lang.Object...) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.String[] getStringArray(int) throws android.content.res.Resources.NotFoundException;
+    method @Deprecated public android.graphics.drawable.Drawable getDrawable(@DrawableRes int) throws android.content.res.Resources.NotFoundException;
+    method public android.graphics.drawable.Drawable getDrawable(@DrawableRes int, @Nullable android.content.res.Resources.Theme) throws android.content.res.Resources.NotFoundException;
+    method @Deprecated @Nullable public android.graphics.drawable.Drawable getDrawableForDensity(@DrawableRes int, int) throws android.content.res.Resources.NotFoundException;
+    method @Nullable public android.graphics.drawable.Drawable getDrawableForDensity(@DrawableRes int, int, @Nullable android.content.res.Resources.Theme);
+    method public float getFloat(@DimenRes int);
+    method @NonNull public android.graphics.Typeface getFont(@FontRes int) throws android.content.res.Resources.NotFoundException;
+    method public float getFraction(@FractionRes int, int, int);
+    method public int getIdentifier(String, String, String);
+    method @NonNull public int[] getIntArray(@ArrayRes int) throws android.content.res.Resources.NotFoundException;
+    method public int getInteger(@IntegerRes int) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public android.content.res.XmlResourceParser getLayout(@LayoutRes int) throws android.content.res.Resources.NotFoundException;
+    method @Deprecated public android.graphics.Movie getMovie(@RawRes int) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public String getQuantityString(@PluralsRes int, int, java.lang.Object...) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public String getQuantityString(@PluralsRes int, int) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public CharSequence getQuantityText(@PluralsRes int, int) throws android.content.res.Resources.NotFoundException;
+    method public String getResourceEntryName(@AnyRes int) throws android.content.res.Resources.NotFoundException;
+    method public String getResourceName(@AnyRes int) throws android.content.res.Resources.NotFoundException;
+    method public String getResourcePackageName(@AnyRes int) throws android.content.res.Resources.NotFoundException;
+    method public String getResourceTypeName(@AnyRes int) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public String getString(@StringRes int) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public String getString(@StringRes int, java.lang.Object...) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public String[] getStringArray(@ArrayRes int) throws android.content.res.Resources.NotFoundException;
     method public static android.content.res.Resources getSystem();
-    method public java.lang.CharSequence getText(int) throws android.content.res.Resources.NotFoundException;
-    method public java.lang.CharSequence getText(int, java.lang.CharSequence);
-    method public java.lang.CharSequence[] getTextArray(int) throws android.content.res.Resources.NotFoundException;
-    method public void getValue(int, android.util.TypedValue, boolean) throws android.content.res.Resources.NotFoundException;
-    method public void getValue(java.lang.String, android.util.TypedValue, boolean) throws android.content.res.Resources.NotFoundException;
-    method public void getValueForDensity(int, int, android.util.TypedValue, boolean) throws android.content.res.Resources.NotFoundException;
-    method public android.content.res.XmlResourceParser getXml(int) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public CharSequence getText(@StringRes int) throws android.content.res.Resources.NotFoundException;
+    method public CharSequence getText(@StringRes int, CharSequence);
+    method @NonNull public CharSequence[] getTextArray(@ArrayRes int) throws android.content.res.Resources.NotFoundException;
+    method public void getValue(@AnyRes int, android.util.TypedValue, boolean) throws android.content.res.Resources.NotFoundException;
+    method public void getValue(String, android.util.TypedValue, boolean) throws android.content.res.Resources.NotFoundException;
+    method public void getValueForDensity(@AnyRes int, int, android.util.TypedValue, boolean) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public android.content.res.XmlResourceParser getXml(@XmlRes int) throws android.content.res.Resources.NotFoundException;
     method public final android.content.res.Resources.Theme newTheme();
-    method public android.content.res.TypedArray obtainAttributes(android.util.AttributeSet, int[]);
-    method public android.content.res.TypedArray obtainTypedArray(int) throws android.content.res.Resources.NotFoundException;
-    method public java.io.InputStream openRawResource(int) throws android.content.res.Resources.NotFoundException;
-    method public java.io.InputStream openRawResource(int, android.util.TypedValue) throws android.content.res.Resources.NotFoundException;
-    method public android.content.res.AssetFileDescriptor openRawResourceFd(int) throws android.content.res.Resources.NotFoundException;
-    method public void parseBundleExtra(java.lang.String, android.util.AttributeSet, android.os.Bundle) throws org.xmlpull.v1.XmlPullParserException;
+    method public android.content.res.TypedArray obtainAttributes(android.util.AttributeSet, @StyleableRes int[]);
+    method @NonNull public android.content.res.TypedArray obtainTypedArray(@ArrayRes int) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public java.io.InputStream openRawResource(@RawRes int) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public java.io.InputStream openRawResource(@RawRes int, android.util.TypedValue) throws android.content.res.Resources.NotFoundException;
+    method public android.content.res.AssetFileDescriptor openRawResourceFd(@RawRes int) throws android.content.res.Resources.NotFoundException;
+    method public void parseBundleExtra(String, android.util.AttributeSet, android.os.Bundle) throws org.xmlpull.v1.XmlPullParserException;
     method public void parseBundleExtras(android.content.res.XmlResourceParser, android.os.Bundle) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public deprecated void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
-    field public static final int ID_NULL = 0; // 0x0
+    method @Deprecated public void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
+    field @AnyRes public static final int ID_NULL = 0; // 0x0
   }
 
   public static class Resources.NotFoundException extends java.lang.RuntimeException {
     ctor public Resources.NotFoundException();
-    ctor public Resources.NotFoundException(java.lang.String);
-    ctor public Resources.NotFoundException(java.lang.String, java.lang.Exception);
+    ctor public Resources.NotFoundException(String);
+    ctor public Resources.NotFoundException(String, Exception);
   }
 
   public final class Resources.Theme {
     method public void applyStyle(int, boolean);
-    method public void dump(int, java.lang.String, java.lang.String);
+    method public void dump(int, String, String);
     method public int getChangingConfigurations();
-    method public android.graphics.drawable.Drawable getDrawable(int) throws android.content.res.Resources.NotFoundException;
+    method public android.graphics.drawable.Drawable getDrawable(@DrawableRes int) throws android.content.res.Resources.NotFoundException;
     method public android.content.res.Resources getResources();
-    method public android.content.res.TypedArray obtainStyledAttributes(int[]);
-    method public android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException;
-    method public android.content.res.TypedArray obtainStyledAttributes(android.util.AttributeSet, int[], int, int);
+    method @NonNull public android.content.res.TypedArray obtainStyledAttributes(@NonNull @StyleableRes int[]);
+    method @NonNull public android.content.res.TypedArray obtainStyledAttributes(@StyleRes int, @NonNull @StyleableRes int[]) throws android.content.res.Resources.NotFoundException;
+    method @NonNull public android.content.res.TypedArray obtainStyledAttributes(@Nullable android.util.AttributeSet, @NonNull @StyleableRes int[], @AttrRes int, @StyleRes int);
     method public boolean resolveAttribute(int, android.util.TypedValue, boolean);
     method public void setTo(android.content.res.Resources.Theme);
   }
 
   public class TypedArray {
-    method public boolean getBoolean(int, boolean);
+    method public boolean getBoolean(@StyleableRes int, boolean);
     method public int getChangingConfigurations();
-    method public int getColor(int, int);
-    method public android.content.res.ColorStateList getColorStateList(int);
-    method public float getDimension(int, float);
-    method public int getDimensionPixelOffset(int, int);
-    method public int getDimensionPixelSize(int, int);
-    method public android.graphics.drawable.Drawable getDrawable(int);
-    method public float getFloat(int, float);
-    method public android.graphics.Typeface getFont(int);
-    method public float getFraction(int, int, int, float);
+    method @ColorInt public int getColor(@StyleableRes int, @ColorInt int);
+    method @Nullable public android.content.res.ColorStateList getColorStateList(@StyleableRes int);
+    method public float getDimension(@StyleableRes int, float);
+    method public int getDimensionPixelOffset(@StyleableRes int, int);
+    method public int getDimensionPixelSize(@StyleableRes int, int);
+    method @Nullable public android.graphics.drawable.Drawable getDrawable(@StyleableRes int);
+    method public float getFloat(@StyleableRes int, float);
+    method @Nullable public android.graphics.Typeface getFont(@StyleableRes int);
+    method public float getFraction(@StyleableRes int, int, int, float);
     method public int getIndex(int);
     method public int getIndexCount();
-    method public int getInt(int, int);
-    method public int getInteger(int, int);
-    method public int getLayoutDimension(int, java.lang.String);
-    method public int getLayoutDimension(int, int);
-    method public java.lang.String getNonResourceString(int);
-    method public java.lang.String getPositionDescription();
-    method public int getResourceId(int, int);
+    method public int getInt(@StyleableRes int, int);
+    method public int getInteger(@StyleableRes int, int);
+    method public int getLayoutDimension(@StyleableRes int, String);
+    method public int getLayoutDimension(@StyleableRes int, int);
+    method public String getNonResourceString(@StyleableRes int);
+    method public String getPositionDescription();
+    method @AnyRes public int getResourceId(@StyleableRes int, int);
     method public android.content.res.Resources getResources();
-    method public int getSourceStyleResourceId(int, int);
-    method public java.lang.String getString(int);
-    method public java.lang.CharSequence getText(int);
-    method public java.lang.CharSequence[] getTextArray(int);
-    method public int getType(int);
-    method public boolean getValue(int, android.util.TypedValue);
-    method public boolean hasValue(int);
-    method public boolean hasValueOrEmpty(int);
+    method @StyleRes public int getSourceStyleResourceId(@StyleableRes int, @StyleRes int);
+    method @Nullable public String getString(@StyleableRes int);
+    method public CharSequence getText(@StyleableRes int);
+    method public CharSequence[] getTextArray(@StyleableRes int);
+    method public int getType(@StyleableRes int);
+    method public boolean getValue(@StyleableRes int, android.util.TypedValue);
+    method public boolean hasValue(@StyleableRes int);
+    method public boolean hasValueOrEmpty(@StyleableRes int);
     method public int length();
-    method public android.util.TypedValue peekValue(int);
+    method public android.util.TypedValue peekValue(@StyleableRes int);
     method public void recycle();
   }
 
-  public abstract interface XmlResourceParser implements android.util.AttributeSet java.lang.AutoCloseable org.xmlpull.v1.XmlPullParser {
-    method public abstract void close();
+  public interface XmlResourceParser extends org.xmlpull.v1.XmlPullParser android.util.AttributeSet java.lang.AutoCloseable {
+    method public void close();
   }
 
 }
@@ -12369,20 +12372,20 @@
     method protected void finalize();
     method public byte[] getBlob(int);
     method public int getColumnCount();
-    method public int getColumnIndex(java.lang.String);
-    method public int getColumnIndexOrThrow(java.lang.String);
-    method public java.lang.String getColumnName(int);
+    method public int getColumnIndex(String);
+    method public int getColumnIndexOrThrow(String);
+    method public String getColumnName(int);
     method public android.os.Bundle getExtras();
     method public android.net.Uri getNotificationUri();
     method public final int getPosition();
     method public int getType(int);
-    method protected deprecated java.lang.Object getUpdatedField(int);
+    method @Deprecated protected Object getUpdatedField(int);
     method public boolean getWantsAllOnMoveCalls();
     method public android.database.CursorWindow getWindow();
     method public final boolean isAfterLast();
     method public final boolean isBeforeFirst();
     method public boolean isClosed();
-    method protected deprecated boolean isFieldUpdated(int);
+    method @Deprecated protected boolean isFieldUpdated(int);
     method public final boolean isFirst();
     method public final boolean isLast();
     method public final boolean move(int);
@@ -12401,9 +12404,9 @@
     method public void setNotificationUri(android.content.ContentResolver, android.net.Uri);
     method public void unregisterContentObserver(android.database.ContentObserver);
     method public void unregisterDataSetObserver(android.database.DataSetObserver);
-    field protected deprecated boolean mClosed;
-    field protected deprecated android.content.ContentResolver mContentResolver;
-    field protected deprecated int mPos;
+    field @Deprecated protected boolean mClosed;
+    field @Deprecated protected android.content.ContentResolver mContentResolver;
+    field @Deprecated protected int mPos;
   }
 
   protected static class AbstractCursor.SelfContentObserver extends android.database.ContentObserver {
@@ -12417,13 +12420,13 @@
     method public int getInt(int);
     method public long getLong(int);
     method public short getShort(int);
-    method public java.lang.String getString(int);
+    method public String getString(int);
     method public boolean hasWindow();
-    method public deprecated boolean isBlob(int);
-    method public deprecated boolean isFloat(int);
-    method public deprecated boolean isLong(int);
+    method @Deprecated public boolean isBlob(int);
+    method @Deprecated public boolean isFloat(int);
+    method @Deprecated public boolean isLong(int);
     method public boolean isNull(int);
-    method public deprecated boolean isString(int);
+    method @Deprecated public boolean isString(int);
     method public void setWindow(android.database.CursorWindow);
     field protected android.database.CursorWindow mWindow;
   }
@@ -12435,27 +12438,27 @@
     field public int sizeCopied;
   }
 
-  public class ContentObservable extends android.database.Observable {
+  public class ContentObservable extends android.database.Observable<android.database.ContentObserver> {
     ctor public ContentObservable();
-    method public deprecated void dispatchChange(boolean);
+    method @Deprecated public void dispatchChange(boolean);
     method public void dispatchChange(boolean, android.net.Uri);
-    method public deprecated void notifyChange(boolean);
+    method @Deprecated public void notifyChange(boolean);
     method public void registerObserver(android.database.ContentObserver);
   }
 
   public abstract class ContentObserver {
     ctor public ContentObserver(android.os.Handler);
     method public boolean deliverSelfNotifications();
-    method public final deprecated void dispatchChange(boolean);
+    method @Deprecated public final void dispatchChange(boolean);
     method public final void dispatchChange(boolean, android.net.Uri);
     method public void onChange(boolean);
     method public void onChange(boolean, android.net.Uri);
   }
 
-  public abstract interface CrossProcessCursor implements android.database.Cursor {
-    method public abstract void fillWindow(int, android.database.CursorWindow);
-    method public abstract android.database.CursorWindow getWindow();
-    method public abstract boolean onMove(int, int);
+  public interface CrossProcessCursor extends android.database.Cursor {
+    method public void fillWindow(int, android.database.CursorWindow);
+    method public android.database.CursorWindow getWindow();
+    method public boolean onMove(int, int);
   }
 
   public class CrossProcessCursorWrapper extends android.database.CursorWrapper implements android.database.CrossProcessCursor {
@@ -12465,48 +12468,48 @@
     method public boolean onMove(int, int);
   }
 
-  public abstract interface Cursor implements java.io.Closeable {
-    method public abstract void close();
-    method public abstract void copyStringToBuffer(int, android.database.CharArrayBuffer);
-    method public abstract deprecated void deactivate();
-    method public abstract byte[] getBlob(int);
-    method public abstract int getColumnCount();
-    method public abstract int getColumnIndex(java.lang.String);
-    method public abstract int getColumnIndexOrThrow(java.lang.String) throws java.lang.IllegalArgumentException;
-    method public abstract java.lang.String getColumnName(int);
-    method public abstract java.lang.String[] getColumnNames();
-    method public abstract int getCount();
-    method public abstract double getDouble(int);
-    method public abstract android.os.Bundle getExtras();
-    method public abstract float getFloat(int);
-    method public abstract int getInt(int);
-    method public abstract long getLong(int);
-    method public abstract android.net.Uri getNotificationUri();
-    method public abstract int getPosition();
-    method public abstract short getShort(int);
-    method public abstract java.lang.String getString(int);
-    method public abstract int getType(int);
-    method public abstract boolean getWantsAllOnMoveCalls();
-    method public abstract boolean isAfterLast();
-    method public abstract boolean isBeforeFirst();
-    method public abstract boolean isClosed();
-    method public abstract boolean isFirst();
-    method public abstract boolean isLast();
-    method public abstract boolean isNull(int);
-    method public abstract boolean move(int);
-    method public abstract boolean moveToFirst();
-    method public abstract boolean moveToLast();
-    method public abstract boolean moveToNext();
-    method public abstract boolean moveToPosition(int);
-    method public abstract boolean moveToPrevious();
-    method public abstract void registerContentObserver(android.database.ContentObserver);
-    method public abstract void registerDataSetObserver(android.database.DataSetObserver);
-    method public abstract deprecated boolean requery();
-    method public abstract android.os.Bundle respond(android.os.Bundle);
-    method public abstract void setExtras(android.os.Bundle);
-    method public abstract void setNotificationUri(android.content.ContentResolver, android.net.Uri);
-    method public abstract void unregisterContentObserver(android.database.ContentObserver);
-    method public abstract void unregisterDataSetObserver(android.database.DataSetObserver);
+  public interface Cursor extends java.io.Closeable {
+    method public void close();
+    method public void copyStringToBuffer(int, android.database.CharArrayBuffer);
+    method @Deprecated public void deactivate();
+    method public byte[] getBlob(int);
+    method public int getColumnCount();
+    method public int getColumnIndex(String);
+    method public int getColumnIndexOrThrow(String) throws java.lang.IllegalArgumentException;
+    method public String getColumnName(int);
+    method public String[] getColumnNames();
+    method public int getCount();
+    method public double getDouble(int);
+    method public android.os.Bundle getExtras();
+    method public float getFloat(int);
+    method public int getInt(int);
+    method public long getLong(int);
+    method public android.net.Uri getNotificationUri();
+    method public int getPosition();
+    method public short getShort(int);
+    method public String getString(int);
+    method public int getType(int);
+    method public boolean getWantsAllOnMoveCalls();
+    method public boolean isAfterLast();
+    method public boolean isBeforeFirst();
+    method public boolean isClosed();
+    method public boolean isFirst();
+    method public boolean isLast();
+    method public boolean isNull(int);
+    method public boolean move(int);
+    method public boolean moveToFirst();
+    method public boolean moveToLast();
+    method public boolean moveToNext();
+    method public boolean moveToPosition(int);
+    method public boolean moveToPrevious();
+    method public void registerContentObserver(android.database.ContentObserver);
+    method public void registerDataSetObserver(android.database.DataSetObserver);
+    method @Deprecated public boolean requery();
+    method public android.os.Bundle respond(android.os.Bundle);
+    method public void setExtras(android.os.Bundle);
+    method public void setNotificationUri(android.content.ContentResolver, android.net.Uri);
+    method public void unregisterContentObserver(android.database.ContentObserver);
+    method public void unregisterDataSetObserver(android.database.DataSetObserver);
     field public static final int FIELD_TYPE_BLOB = 4; // 0x4
     field public static final int FIELD_TYPE_FLOAT = 2; // 0x2
     field public static final int FIELD_TYPE_INTEGER = 1; // 0x1
@@ -12516,28 +12519,26 @@
 
   public class CursorIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
     ctor public CursorIndexOutOfBoundsException(int, int);
-    ctor public CursorIndexOutOfBoundsException(java.lang.String);
+    ctor public CursorIndexOutOfBoundsException(String);
   }
 
-  public final class CursorJoiner implements java.lang.Iterable java.util.Iterator {
-    ctor public CursorJoiner(android.database.Cursor, java.lang.String[], android.database.Cursor, java.lang.String[]);
+  public final class CursorJoiner implements java.lang.Iterable<android.database.CursorJoiner.Result> java.util.Iterator<android.database.CursorJoiner.Result> {
+    ctor public CursorJoiner(android.database.Cursor, String[], android.database.Cursor, String[]);
     method public boolean hasNext();
     method public java.util.Iterator<android.database.CursorJoiner.Result> iterator();
     method public android.database.CursorJoiner.Result next();
   }
 
-  public static final class CursorJoiner.Result extends java.lang.Enum {
-    method public static android.database.CursorJoiner.Result valueOf(java.lang.String);
-    method public static final android.database.CursorJoiner.Result[] values();
+  public enum CursorJoiner.Result {
     enum_constant public static final android.database.CursorJoiner.Result BOTH;
     enum_constant public static final android.database.CursorJoiner.Result LEFT;
     enum_constant public static final android.database.CursorJoiner.Result RIGHT;
   }
 
   public class CursorWindow extends android.database.sqlite.SQLiteClosable implements android.os.Parcelable {
-    ctor public CursorWindow(java.lang.String);
-    ctor public CursorWindow(java.lang.String, long);
-    ctor public deprecated CursorWindow(boolean);
+    ctor public CursorWindow(String);
+    ctor public CursorWindow(String, long);
+    ctor @Deprecated public CursorWindow(boolean);
     method public boolean allocRow();
     method public void clear();
     method public void copyStringToBuffer(int, int, android.database.CharArrayBuffer);
@@ -12551,20 +12552,20 @@
     method public int getNumRows();
     method public short getShort(int, int);
     method public int getStartPosition();
-    method public java.lang.String getString(int, int);
+    method public String getString(int, int);
     method public int getType(int, int);
-    method public deprecated boolean isBlob(int, int);
-    method public deprecated boolean isFloat(int, int);
-    method public deprecated boolean isLong(int, int);
-    method public deprecated boolean isNull(int, int);
-    method public deprecated boolean isString(int, int);
+    method @Deprecated public boolean isBlob(int, int);
+    method @Deprecated public boolean isFloat(int, int);
+    method @Deprecated public boolean isLong(int, int);
+    method @Deprecated public boolean isNull(int, int);
+    method @Deprecated public boolean isString(int, int);
     method public static android.database.CursorWindow newFromParcel(android.os.Parcel);
     method protected void onAllReferencesReleased();
     method public boolean putBlob(byte[], int, int);
     method public boolean putDouble(double, int, int);
     method public boolean putLong(long, int, int);
     method public boolean putNull(int, int);
-    method public boolean putString(java.lang.String, int, int);
+    method public boolean putString(String, int, int);
     method public boolean setNumColumns(int);
     method public void setStartPosition(int);
     method public void writeToParcel(android.os.Parcel, int);
@@ -12575,13 +12576,13 @@
     ctor public CursorWrapper(android.database.Cursor);
     method public void close();
     method public void copyStringToBuffer(int, android.database.CharArrayBuffer);
-    method public deprecated void deactivate();
+    method @Deprecated public void deactivate();
     method public byte[] getBlob(int);
     method public int getColumnCount();
-    method public int getColumnIndex(java.lang.String);
-    method public int getColumnIndexOrThrow(java.lang.String) throws java.lang.IllegalArgumentException;
-    method public java.lang.String getColumnName(int);
-    method public java.lang.String[] getColumnNames();
+    method public int getColumnIndex(String);
+    method public int getColumnIndexOrThrow(String) throws java.lang.IllegalArgumentException;
+    method public String getColumnName(int);
+    method public String[] getColumnNames();
     method public int getCount();
     method public double getDouble(int);
     method public android.os.Bundle getExtras();
@@ -12591,7 +12592,7 @@
     method public android.net.Uri getNotificationUri();
     method public int getPosition();
     method public short getShort(int);
-    method public java.lang.String getString(int);
+    method public String getString(int);
     method public int getType(int);
     method public boolean getWantsAllOnMoveCalls();
     method public android.database.Cursor getWrappedCursor();
@@ -12609,7 +12610,7 @@
     method public boolean moveToPrevious();
     method public void registerContentObserver(android.database.ContentObserver);
     method public void registerDataSetObserver(android.database.DataSetObserver);
-    method public deprecated boolean requery();
+    method @Deprecated public boolean requery();
     method public android.os.Bundle respond(android.os.Bundle);
     method public void setExtras(android.os.Bundle);
     method public void setNotificationUri(android.content.ContentResolver, android.net.Uri);
@@ -12617,7 +12618,7 @@
     method public void unregisterDataSetObserver(android.database.DataSetObserver);
   }
 
-  public class DataSetObservable extends android.database.Observable {
+  public class DataSetObservable extends android.database.Observable<android.database.DataSetObserver> {
     ctor public DataSetObservable();
     method public void notifyChanged();
     method public void notifyInvalidated();
@@ -12629,59 +12630,59 @@
     method public void onInvalidated();
   }
 
-  public abstract interface DatabaseErrorHandler {
-    method public abstract void onCorruption(android.database.sqlite.SQLiteDatabase);
+  public interface DatabaseErrorHandler {
+    method public void onCorruption(android.database.sqlite.SQLiteDatabase);
   }
 
   public class DatabaseUtils {
     ctor public DatabaseUtils();
-    method public static void appendEscapedSQLString(java.lang.StringBuilder, java.lang.String);
-    method public static java.lang.String[] appendSelectionArgs(java.lang.String[], java.lang.String[]);
-    method public static final void appendValueToSql(java.lang.StringBuilder, java.lang.Object);
-    method public static void bindObjectToProgram(android.database.sqlite.SQLiteProgram, int, java.lang.Object);
-    method public static android.os.ParcelFileDescriptor blobFileDescriptorForQuery(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String[]);
-    method public static android.os.ParcelFileDescriptor blobFileDescriptorForQuery(android.database.sqlite.SQLiteStatement, java.lang.String[]);
-    method public static java.lang.String concatenateWhere(java.lang.String, java.lang.String);
-    method public static void createDbFromSqlStatements(android.content.Context, java.lang.String, int, java.lang.String);
-    method public static void cursorDoubleToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String);
-    method public static void cursorDoubleToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String);
-    method public static void cursorDoubleToCursorValues(android.database.Cursor, java.lang.String, android.content.ContentValues);
-    method public static void cursorFloatToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String);
-    method public static void cursorIntToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues);
-    method public static void cursorIntToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String);
-    method public static void cursorIntToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String);
-    method public static void cursorLongToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues);
-    method public static void cursorLongToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String);
-    method public static void cursorLongToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String);
+    method public static void appendEscapedSQLString(StringBuilder, String);
+    method public static String[] appendSelectionArgs(String[], String[]);
+    method public static final void appendValueToSql(StringBuilder, Object);
+    method public static void bindObjectToProgram(android.database.sqlite.SQLiteProgram, int, Object);
+    method public static android.os.ParcelFileDescriptor blobFileDescriptorForQuery(android.database.sqlite.SQLiteDatabase, String, String[]);
+    method public static android.os.ParcelFileDescriptor blobFileDescriptorForQuery(android.database.sqlite.SQLiteStatement, String[]);
+    method public static String concatenateWhere(String, String);
+    method public static void createDbFromSqlStatements(android.content.Context, String, int, String);
+    method public static void cursorDoubleToContentValues(android.database.Cursor, String, android.content.ContentValues, String);
+    method public static void cursorDoubleToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, String);
+    method public static void cursorDoubleToCursorValues(android.database.Cursor, String, android.content.ContentValues);
+    method public static void cursorFloatToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, String);
+    method public static void cursorIntToContentValues(android.database.Cursor, String, android.content.ContentValues);
+    method public static void cursorIntToContentValues(android.database.Cursor, String, android.content.ContentValues, String);
+    method public static void cursorIntToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, String);
+    method public static void cursorLongToContentValues(android.database.Cursor, String, android.content.ContentValues);
+    method public static void cursorLongToContentValues(android.database.Cursor, String, android.content.ContentValues, String);
+    method public static void cursorLongToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, String);
     method public static void cursorRowToContentValues(android.database.Cursor, android.content.ContentValues);
-    method public static void cursorShortToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String);
-    method public static void cursorStringToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues);
-    method public static void cursorStringToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String);
-    method public static void cursorStringToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String);
-    method public static void cursorStringToInsertHelper(android.database.Cursor, java.lang.String, android.database.DatabaseUtils.InsertHelper, int);
+    method public static void cursorShortToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, String);
+    method public static void cursorStringToContentValues(android.database.Cursor, String, android.content.ContentValues);
+    method public static void cursorStringToContentValues(android.database.Cursor, String, android.content.ContentValues, String);
+    method public static void cursorStringToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, String);
+    method public static void cursorStringToInsertHelper(android.database.Cursor, String, android.database.DatabaseUtils.InsertHelper, int);
     method public static void dumpCurrentRow(android.database.Cursor);
     method public static void dumpCurrentRow(android.database.Cursor, java.io.PrintStream);
-    method public static void dumpCurrentRow(android.database.Cursor, java.lang.StringBuilder);
-    method public static java.lang.String dumpCurrentRowToString(android.database.Cursor);
+    method public static void dumpCurrentRow(android.database.Cursor, StringBuilder);
+    method public static String dumpCurrentRowToString(android.database.Cursor);
     method public static void dumpCursor(android.database.Cursor);
     method public static void dumpCursor(android.database.Cursor, java.io.PrintStream);
-    method public static void dumpCursor(android.database.Cursor, java.lang.StringBuilder);
-    method public static java.lang.String dumpCursorToString(android.database.Cursor);
-    method public static java.lang.String getCollationKey(java.lang.String);
-    method public static java.lang.String getHexCollationKey(java.lang.String);
-    method public static int getSqlStatementType(java.lang.String);
-    method public static long longForQuery(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String[]);
-    method public static long longForQuery(android.database.sqlite.SQLiteStatement, java.lang.String[]);
-    method public static long queryNumEntries(android.database.sqlite.SQLiteDatabase, java.lang.String);
-    method public static long queryNumEntries(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String);
-    method public static long queryNumEntries(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String, java.lang.String[]);
+    method public static void dumpCursor(android.database.Cursor, StringBuilder);
+    method public static String dumpCursorToString(android.database.Cursor);
+    method public static String getCollationKey(String);
+    method public static String getHexCollationKey(String);
+    method public static int getSqlStatementType(String);
+    method public static long longForQuery(android.database.sqlite.SQLiteDatabase, String, String[]);
+    method public static long longForQuery(android.database.sqlite.SQLiteStatement, String[]);
+    method public static long queryNumEntries(android.database.sqlite.SQLiteDatabase, String);
+    method public static long queryNumEntries(android.database.sqlite.SQLiteDatabase, String, String);
+    method public static long queryNumEntries(android.database.sqlite.SQLiteDatabase, String, String, String[]);
     method public static final void readExceptionFromParcel(android.os.Parcel);
     method public static void readExceptionWithFileNotFoundExceptionFromParcel(android.os.Parcel) throws java.io.FileNotFoundException;
     method public static void readExceptionWithOperationApplicationExceptionFromParcel(android.os.Parcel) throws android.content.OperationApplicationException;
-    method public static java.lang.String sqlEscapeString(java.lang.String);
-    method public static java.lang.String stringForQuery(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String[]);
-    method public static java.lang.String stringForQuery(android.database.sqlite.SQLiteStatement, java.lang.String[]);
-    method public static final void writeExceptionToParcel(android.os.Parcel, java.lang.Exception);
+    method public static String sqlEscapeString(String);
+    method public static String stringForQuery(android.database.sqlite.SQLiteDatabase, String, String[]);
+    method public static String stringForQuery(android.database.sqlite.SQLiteStatement, String[]);
+    method public static final void writeExceptionToParcel(android.os.Parcel, Exception);
     field public static final int STATEMENT_ABORT = 6; // 0x6
     field public static final int STATEMENT_ATTACH = 3; // 0x3
     field public static final int STATEMENT_BEGIN = 4; // 0x4
@@ -12694,23 +12695,23 @@
     field public static final int STATEMENT_UPDATE = 2; // 0x2
   }
 
-  public static deprecated class DatabaseUtils.InsertHelper {
-    ctor public DatabaseUtils.InsertHelper(android.database.sqlite.SQLiteDatabase, java.lang.String);
-    method public void bind(int, double);
-    method public void bind(int, float);
-    method public void bind(int, long);
-    method public void bind(int, int);
-    method public void bind(int, boolean);
-    method public void bind(int, byte[]);
-    method public void bind(int, java.lang.String);
-    method public void bindNull(int);
-    method public void close();
-    method public long execute();
-    method public int getColumnIndex(java.lang.String);
-    method public long insert(android.content.ContentValues);
-    method public void prepareForInsert();
-    method public void prepareForReplace();
-    method public long replace(android.content.ContentValues);
+  @Deprecated public static class DatabaseUtils.InsertHelper {
+    ctor @Deprecated public DatabaseUtils.InsertHelper(android.database.sqlite.SQLiteDatabase, String);
+    method @Deprecated public void bind(int, double);
+    method @Deprecated public void bind(int, float);
+    method @Deprecated public void bind(int, long);
+    method @Deprecated public void bind(int, int);
+    method @Deprecated public void bind(int, boolean);
+    method @Deprecated public void bind(int, byte[]);
+    method @Deprecated public void bind(int, String);
+    method @Deprecated public void bindNull(int);
+    method @Deprecated public void close();
+    method @Deprecated public long execute();
+    method @Deprecated public int getColumnIndex(String);
+    method @Deprecated public long insert(android.content.ContentValues);
+    method @Deprecated public void prepareForInsert();
+    method @Deprecated public void prepareForReplace();
+    method @Deprecated public long replace(android.content.ContentValues);
   }
 
   public final class DefaultDatabaseErrorHandler implements android.database.DatabaseErrorHandler {
@@ -12719,37 +12720,37 @@
   }
 
   public class MatrixCursor extends android.database.AbstractCursor {
-    ctor public MatrixCursor(java.lang.String[], int);
-    ctor public MatrixCursor(java.lang.String[]);
-    method public void addRow(java.lang.Object[]);
-    method public void addRow(java.lang.Iterable<?>);
-    method public java.lang.String[] getColumnNames();
+    ctor public MatrixCursor(String[], int);
+    ctor public MatrixCursor(String[]);
+    method public void addRow(Object[]);
+    method public void addRow(Iterable<?>);
+    method public String[] getColumnNames();
     method public int getCount();
     method public double getDouble(int);
     method public float getFloat(int);
     method public int getInt(int);
     method public long getLong(int);
     method public short getShort(int);
-    method public java.lang.String getString(int);
+    method public String getString(int);
     method public boolean isNull(int);
     method public android.database.MatrixCursor.RowBuilder newRow();
   }
 
   public class MatrixCursor.RowBuilder {
-    method public android.database.MatrixCursor.RowBuilder add(java.lang.Object);
-    method public android.database.MatrixCursor.RowBuilder add(java.lang.String, java.lang.Object);
+    method public android.database.MatrixCursor.RowBuilder add(Object);
+    method public android.database.MatrixCursor.RowBuilder add(String, Object);
   }
 
   public class MergeCursor extends android.database.AbstractCursor {
     ctor public MergeCursor(android.database.Cursor[]);
-    method public java.lang.String[] getColumnNames();
+    method public String[] getColumnNames();
     method public int getCount();
     method public double getDouble(int);
     method public float getFloat(int);
     method public int getInt(int);
     method public long getLong(int);
     method public short getShort(int);
-    method public java.lang.String getString(int);
+    method public String getString(int);
     method public boolean isNull(int);
   }
 
@@ -12763,13 +12764,13 @@
 
   public class SQLException extends java.lang.RuntimeException {
     ctor public SQLException();
-    ctor public SQLException(java.lang.String);
-    ctor public SQLException(java.lang.String, java.lang.Throwable);
+    ctor public SQLException(String);
+    ctor public SQLException(String, Throwable);
   }
 
   public class StaleDataException extends java.lang.RuntimeException {
     ctor public StaleDataException();
-    ctor public StaleDataException(java.lang.String);
+    ctor public StaleDataException(String);
   }
 
 }
@@ -12778,27 +12779,27 @@
 
   public class SQLiteAbortException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteAbortException();
-    ctor public SQLiteAbortException(java.lang.String);
+    ctor public SQLiteAbortException(String);
   }
 
   public class SQLiteAccessPermException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteAccessPermException();
-    ctor public SQLiteAccessPermException(java.lang.String);
+    ctor public SQLiteAccessPermException(String);
   }
 
   public class SQLiteBindOrColumnIndexOutOfRangeException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteBindOrColumnIndexOutOfRangeException();
-    ctor public SQLiteBindOrColumnIndexOutOfRangeException(java.lang.String);
+    ctor public SQLiteBindOrColumnIndexOutOfRangeException(String);
   }
 
   public class SQLiteBlobTooBigException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteBlobTooBigException();
-    ctor public SQLiteBlobTooBigException(java.lang.String);
+    ctor public SQLiteBlobTooBigException(String);
   }
 
   public class SQLiteCantOpenDatabaseException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteCantOpenDatabaseException();
-    ctor public SQLiteCantOpenDatabaseException(java.lang.String);
+    ctor public SQLiteCantOpenDatabaseException(String);
   }
 
   public abstract class SQLiteClosable implements java.io.Closeable {
@@ -12806,32 +12807,32 @@
     method public void acquireReference();
     method public void close();
     method protected abstract void onAllReferencesReleased();
-    method protected deprecated void onAllReferencesReleasedFromContainer();
+    method @Deprecated protected void onAllReferencesReleasedFromContainer();
     method public void releaseReference();
-    method public deprecated void releaseReferenceFromContainer();
+    method @Deprecated public void releaseReferenceFromContainer();
   }
 
   public class SQLiteConstraintException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteConstraintException();
-    ctor public SQLiteConstraintException(java.lang.String);
+    ctor public SQLiteConstraintException(String);
   }
 
   public class SQLiteCursor extends android.database.AbstractWindowedCursor {
-    ctor public deprecated SQLiteCursor(android.database.sqlite.SQLiteDatabase, android.database.sqlite.SQLiteCursorDriver, java.lang.String, android.database.sqlite.SQLiteQuery);
-    ctor public SQLiteCursor(android.database.sqlite.SQLiteCursorDriver, java.lang.String, android.database.sqlite.SQLiteQuery);
-    method public java.lang.String[] getColumnNames();
+    ctor @Deprecated public SQLiteCursor(android.database.sqlite.SQLiteDatabase, android.database.sqlite.SQLiteCursorDriver, String, android.database.sqlite.SQLiteQuery);
+    ctor public SQLiteCursor(android.database.sqlite.SQLiteCursorDriver, String, android.database.sqlite.SQLiteQuery);
+    method public String[] getColumnNames();
     method public int getCount();
     method public android.database.sqlite.SQLiteDatabase getDatabase();
     method public void setFillWindowForwardOnly(boolean);
-    method public void setSelectionArguments(java.lang.String[]);
+    method public void setSelectionArguments(String[]);
   }
 
-  public abstract interface SQLiteCursorDriver {
-    method public abstract void cursorClosed();
-    method public abstract void cursorDeactivated();
-    method public abstract void cursorRequeried(android.database.Cursor);
-    method public abstract android.database.Cursor query(android.database.sqlite.SQLiteDatabase.CursorFactory, java.lang.String[]);
-    method public abstract void setBindArguments(java.lang.String[]);
+  public interface SQLiteCursorDriver {
+    method public void cursorClosed();
+    method public void cursorDeactivated();
+    method public void cursorRequeried(android.database.Cursor);
+    method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]);
+    method public void setBindArguments(String[]);
   }
 
   public final class SQLiteDatabase extends android.database.sqlite.SQLiteClosable {
@@ -12839,68 +12840,68 @@
     method public void beginTransactionNonExclusive();
     method public void beginTransactionWithListener(android.database.sqlite.SQLiteTransactionListener);
     method public void beginTransactionWithListenerNonExclusive(android.database.sqlite.SQLiteTransactionListener);
-    method public android.database.sqlite.SQLiteStatement compileStatement(java.lang.String) throws android.database.SQLException;
-    method public static android.database.sqlite.SQLiteDatabase create(android.database.sqlite.SQLiteDatabase.CursorFactory);
-    method public static android.database.sqlite.SQLiteDatabase createInMemory(android.database.sqlite.SQLiteDatabase.OpenParams);
-    method public int delete(java.lang.String, java.lang.String, java.lang.String[]);
-    method public static boolean deleteDatabase(java.io.File);
+    method public android.database.sqlite.SQLiteStatement compileStatement(String) throws android.database.SQLException;
+    method @NonNull public static android.database.sqlite.SQLiteDatabase create(@Nullable android.database.sqlite.SQLiteDatabase.CursorFactory);
+    method @NonNull public static android.database.sqlite.SQLiteDatabase createInMemory(@NonNull android.database.sqlite.SQLiteDatabase.OpenParams);
+    method public int delete(String, String, String[]);
+    method public static boolean deleteDatabase(@NonNull java.io.File);
     method public void disableWriteAheadLogging();
     method public boolean enableWriteAheadLogging();
     method public void endTransaction();
-    method public void execSQL(java.lang.String) throws android.database.SQLException;
-    method public void execSQL(java.lang.String, java.lang.Object[]) throws android.database.SQLException;
-    method public static java.lang.String findEditTable(java.lang.String);
-    method public java.util.List<android.util.Pair<java.lang.String, java.lang.String>> getAttachedDbs();
+    method public void execSQL(String) throws android.database.SQLException;
+    method public void execSQL(String, Object[]) throws android.database.SQLException;
+    method public static String findEditTable(String);
+    method public java.util.List<android.util.Pair<java.lang.String,java.lang.String>> getAttachedDbs();
     method public long getMaximumSize();
     method public long getPageSize();
-    method public java.lang.String getPath();
-    method public deprecated java.util.Map<java.lang.String, java.lang.String> getSyncedTables();
+    method public String getPath();
+    method @Deprecated public java.util.Map<java.lang.String,java.lang.String> getSyncedTables();
     method public int getVersion();
     method public boolean inTransaction();
-    method public long insert(java.lang.String, java.lang.String, android.content.ContentValues);
-    method public long insertOrThrow(java.lang.String, java.lang.String, android.content.ContentValues) throws android.database.SQLException;
-    method public long insertWithOnConflict(java.lang.String, java.lang.String, android.content.ContentValues, int);
+    method public long insert(String, String, android.content.ContentValues);
+    method public long insertOrThrow(String, String, android.content.ContentValues) throws android.database.SQLException;
+    method public long insertWithOnConflict(String, String, android.content.ContentValues, int);
     method public boolean isDatabaseIntegrityOk();
     method public boolean isDbLockedByCurrentThread();
-    method public deprecated boolean isDbLockedByOtherThreads();
+    method @Deprecated public boolean isDbLockedByOtherThreads();
     method public boolean isOpen();
     method public boolean isReadOnly();
     method public boolean isWriteAheadLoggingEnabled();
-    method public deprecated void markTableSyncable(java.lang.String, java.lang.String);
-    method public deprecated void markTableSyncable(java.lang.String, java.lang.String, java.lang.String);
+    method @Deprecated public void markTableSyncable(String, String);
+    method @Deprecated public void markTableSyncable(String, String, String);
     method public boolean needUpgrade(int);
     method protected void onAllReferencesReleased();
-    method public static android.database.sqlite.SQLiteDatabase openDatabase(java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int);
-    method public static android.database.sqlite.SQLiteDatabase openDatabase(java.io.File, android.database.sqlite.SQLiteDatabase.OpenParams);
-    method public static android.database.sqlite.SQLiteDatabase openDatabase(java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int, android.database.DatabaseErrorHandler);
-    method public static android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.io.File, android.database.sqlite.SQLiteDatabase.CursorFactory);
-    method public static android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory);
-    method public static android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, android.database.DatabaseErrorHandler);
-    method public android.database.Cursor query(boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public android.database.Cursor query(boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, android.os.CancellationSignal);
-    method public android.database.Cursor query(java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String);
-    method public android.database.Cursor query(java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public android.database.Cursor queryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public android.database.Cursor queryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, android.os.CancellationSignal);
-    method public android.database.Cursor rawQuery(java.lang.String, java.lang.String[]);
-    method public android.database.Cursor rawQuery(java.lang.String, java.lang.String[], android.os.CancellationSignal);
-    method public android.database.Cursor rawQueryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, java.lang.String, java.lang.String[], java.lang.String);
-    method public android.database.Cursor rawQueryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, java.lang.String, java.lang.String[], java.lang.String, android.os.CancellationSignal);
+    method public static android.database.sqlite.SQLiteDatabase openDatabase(@NonNull String, @Nullable android.database.sqlite.SQLiteDatabase.CursorFactory, int);
+    method public static android.database.sqlite.SQLiteDatabase openDatabase(@NonNull java.io.File, @NonNull android.database.sqlite.SQLiteDatabase.OpenParams);
+    method public static android.database.sqlite.SQLiteDatabase openDatabase(@NonNull String, @Nullable android.database.sqlite.SQLiteDatabase.CursorFactory, int, @Nullable android.database.DatabaseErrorHandler);
+    method public static android.database.sqlite.SQLiteDatabase openOrCreateDatabase(@NonNull java.io.File, @Nullable android.database.sqlite.SQLiteDatabase.CursorFactory);
+    method public static android.database.sqlite.SQLiteDatabase openOrCreateDatabase(@NonNull String, @Nullable android.database.sqlite.SQLiteDatabase.CursorFactory);
+    method public static android.database.sqlite.SQLiteDatabase openOrCreateDatabase(@NonNull String, @Nullable android.database.sqlite.SQLiteDatabase.CursorFactory, @Nullable android.database.DatabaseErrorHandler);
+    method public android.database.Cursor query(boolean, String, String[], String, String[], String, String, String, String);
+    method public android.database.Cursor query(boolean, String, String[], String, String[], String, String, String, String, android.os.CancellationSignal);
+    method public android.database.Cursor query(String, String[], String, String[], String, String, String);
+    method public android.database.Cursor query(String, String[], String, String[], String, String, String, String);
+    method public android.database.Cursor queryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, boolean, String, String[], String, String[], String, String, String, String);
+    method public android.database.Cursor queryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, boolean, String, String[], String, String[], String, String, String, String, android.os.CancellationSignal);
+    method public android.database.Cursor rawQuery(String, String[]);
+    method public android.database.Cursor rawQuery(String, String[], android.os.CancellationSignal);
+    method public android.database.Cursor rawQueryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, String, String[], String);
+    method public android.database.Cursor rawQueryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, String, String[], String, android.os.CancellationSignal);
     method public static int releaseMemory();
-    method public long replace(java.lang.String, java.lang.String, android.content.ContentValues);
-    method public long replaceOrThrow(java.lang.String, java.lang.String, android.content.ContentValues) throws android.database.SQLException;
+    method public long replace(String, String, android.content.ContentValues);
+    method public long replaceOrThrow(String, String, android.content.ContentValues) throws android.database.SQLException;
     method public void setForeignKeyConstraintsEnabled(boolean);
     method public void setLocale(java.util.Locale);
-    method public deprecated void setLockingEnabled(boolean);
+    method @Deprecated public void setLockingEnabled(boolean);
     method public void setMaxSqlCacheSize(int);
     method public long setMaximumSize(long);
     method public void setPageSize(long);
     method public void setTransactionSuccessful();
     method public void setVersion(int);
-    method public int update(java.lang.String, android.content.ContentValues, java.lang.String, java.lang.String[]);
-    method public int updateWithOnConflict(java.lang.String, android.content.ContentValues, java.lang.String, java.lang.String[], int);
-    method public void validateSql(java.lang.String, android.os.CancellationSignal);
-    method public deprecated boolean yieldIfContended();
+    method public int update(String, android.content.ContentValues, String, String[]);
+    method public int updateWithOnConflict(String, android.content.ContentValues, String, String[], int);
+    method public void validateSql(@NonNull String, @Nullable android.os.CancellationSignal);
+    method @Deprecated public boolean yieldIfContended();
     method public boolean yieldIfContendedSafely();
     method public boolean yieldIfContendedSafely(long);
     field public static final int CONFLICT_ABORT = 2; // 0x2
@@ -12918,83 +12919,83 @@
     field public static final int SQLITE_MAX_LIKE_PATTERN_LENGTH = 50000; // 0xc350
   }
 
-  public static abstract interface SQLiteDatabase.CursorFactory {
-    method public abstract android.database.Cursor newCursor(android.database.sqlite.SQLiteDatabase, android.database.sqlite.SQLiteCursorDriver, java.lang.String, android.database.sqlite.SQLiteQuery);
+  public static interface SQLiteDatabase.CursorFactory {
+    method public android.database.Cursor newCursor(android.database.sqlite.SQLiteDatabase, android.database.sqlite.SQLiteCursorDriver, String, android.database.sqlite.SQLiteQuery);
   }
 
   public static final class SQLiteDatabase.OpenParams {
-    method public android.database.sqlite.SQLiteDatabase.CursorFactory getCursorFactory();
-    method public android.database.DatabaseErrorHandler getErrorHandler();
+    method @Nullable public android.database.sqlite.SQLiteDatabase.CursorFactory getCursorFactory();
+    method @Nullable public android.database.DatabaseErrorHandler getErrorHandler();
     method public long getIdleConnectionTimeout();
-    method public java.lang.String getJournalMode();
-    method public int getLookasideSlotCount();
-    method public int getLookasideSlotSize();
+    method @Nullable public String getJournalMode();
+    method @IntRange(from=0xffffffff) public int getLookasideSlotCount();
+    method @IntRange(from=0xffffffff) public int getLookasideSlotSize();
     method public int getOpenFlags();
-    method public java.lang.String getSynchronousMode();
+    method @Nullable public String getSynchronousMode();
   }
 
   public static final class SQLiteDatabase.OpenParams.Builder {
     ctor public SQLiteDatabase.OpenParams.Builder();
     ctor public SQLiteDatabase.OpenParams.Builder(android.database.sqlite.SQLiteDatabase.OpenParams);
-    method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder addOpenFlags(int);
-    method public android.database.sqlite.SQLiteDatabase.OpenParams build();
-    method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder removeOpenFlags(int);
-    method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setCursorFactory(android.database.sqlite.SQLiteDatabase.CursorFactory);
-    method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setErrorHandler(android.database.DatabaseErrorHandler);
-    method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setIdleConnectionTimeout(long);
-    method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setJournalMode(java.lang.String);
-    method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setLookasideConfig(int, int);
-    method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setOpenFlags(int);
-    method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setSynchronousMode(java.lang.String);
+    method @NonNull public android.database.sqlite.SQLiteDatabase.OpenParams.Builder addOpenFlags(int);
+    method @NonNull public android.database.sqlite.SQLiteDatabase.OpenParams build();
+    method @NonNull public android.database.sqlite.SQLiteDatabase.OpenParams.Builder removeOpenFlags(int);
+    method @NonNull public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setCursorFactory(@Nullable android.database.sqlite.SQLiteDatabase.CursorFactory);
+    method @NonNull public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setErrorHandler(@Nullable android.database.DatabaseErrorHandler);
+    method @NonNull public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setIdleConnectionTimeout(@IntRange(from=0) long);
+    method @NonNull public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setJournalMode(@NonNull String);
+    method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setLookasideConfig(@IntRange(from=0) int, @IntRange(from=0) int);
+    method @NonNull public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setOpenFlags(int);
+    method @NonNull public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setSynchronousMode(@NonNull String);
   }
 
   public class SQLiteDatabaseCorruptException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteDatabaseCorruptException();
-    ctor public SQLiteDatabaseCorruptException(java.lang.String);
+    ctor public SQLiteDatabaseCorruptException(String);
   }
 
   public class SQLiteDatabaseLockedException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteDatabaseLockedException();
-    ctor public SQLiteDatabaseLockedException(java.lang.String);
+    ctor public SQLiteDatabaseLockedException(String);
   }
 
   public class SQLiteDatatypeMismatchException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteDatatypeMismatchException();
-    ctor public SQLiteDatatypeMismatchException(java.lang.String);
+    ctor public SQLiteDatatypeMismatchException(String);
   }
 
   public class SQLiteDiskIOException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteDiskIOException();
-    ctor public SQLiteDiskIOException(java.lang.String);
+    ctor public SQLiteDiskIOException(String);
   }
 
   public class SQLiteDoneException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteDoneException();
-    ctor public SQLiteDoneException(java.lang.String);
+    ctor public SQLiteDoneException(String);
   }
 
   public class SQLiteException extends android.database.SQLException {
     ctor public SQLiteException();
-    ctor public SQLiteException(java.lang.String);
-    ctor public SQLiteException(java.lang.String, java.lang.Throwable);
+    ctor public SQLiteException(String);
+    ctor public SQLiteException(String, Throwable);
   }
 
   public class SQLiteFullException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteFullException();
-    ctor public SQLiteFullException(java.lang.String);
+    ctor public SQLiteFullException(String);
   }
 
   public class SQLiteMisuseException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteMisuseException();
-    ctor public SQLiteMisuseException(java.lang.String);
+    ctor public SQLiteMisuseException(String);
   }
 
   public abstract class SQLiteOpenHelper implements java.lang.AutoCloseable {
-    ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int);
-    ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int, android.database.DatabaseErrorHandler);
-    ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, int, android.database.sqlite.SQLiteDatabase.OpenParams);
-    method public synchronized void close();
-    method public java.lang.String getDatabaseName();
+    ctor public SQLiteOpenHelper(@Nullable android.content.Context, @Nullable String, @Nullable android.database.sqlite.SQLiteDatabase.CursorFactory, int);
+    ctor public SQLiteOpenHelper(@Nullable android.content.Context, @Nullable String, @Nullable android.database.sqlite.SQLiteDatabase.CursorFactory, int, @Nullable android.database.DatabaseErrorHandler);
+    ctor public SQLiteOpenHelper(@Nullable android.content.Context, @Nullable String, int, @NonNull android.database.sqlite.SQLiteDatabase.OpenParams);
+    method public void close();
+    method public String getDatabaseName();
     method public android.database.sqlite.SQLiteDatabase getReadableDatabase();
     method public android.database.sqlite.SQLiteDatabase getWritableDatabase();
     method public void onConfigure(android.database.sqlite.SQLiteDatabase);
@@ -13002,26 +13003,26 @@
     method public void onDowngrade(android.database.sqlite.SQLiteDatabase, int, int);
     method public void onOpen(android.database.sqlite.SQLiteDatabase);
     method public abstract void onUpgrade(android.database.sqlite.SQLiteDatabase, int, int);
-    method public void setIdleConnectionTimeout(long);
-    method public void setLookasideConfig(int, int);
-    method public void setOpenParams(android.database.sqlite.SQLiteDatabase.OpenParams);
+    method public void setIdleConnectionTimeout(@IntRange(from=0) long);
+    method public void setLookasideConfig(@IntRange(from=0) int, @IntRange(from=0) int);
+    method public void setOpenParams(@NonNull android.database.sqlite.SQLiteDatabase.OpenParams);
     method public void setWriteAheadLoggingEnabled(boolean);
   }
 
   public class SQLiteOutOfMemoryException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteOutOfMemoryException();
-    ctor public SQLiteOutOfMemoryException(java.lang.String);
+    ctor public SQLiteOutOfMemoryException(String);
   }
 
   public abstract class SQLiteProgram extends android.database.sqlite.SQLiteClosable {
-    method public void bindAllArgsAsStrings(java.lang.String[]);
+    method public void bindAllArgsAsStrings(String[]);
     method public void bindBlob(int, byte[]);
     method public void bindDouble(int, double);
     method public void bindLong(int, long);
     method public void bindNull(int);
-    method public void bindString(int, java.lang.String);
+    method public void bindString(int, String);
     method public void clearBindings();
-    method public final deprecated int getUniqueId();
+    method @Deprecated public final int getUniqueId();
     method protected void onAllReferencesReleased();
   }
 
@@ -13030,32 +13031,32 @@
 
   public class SQLiteQueryBuilder {
     ctor public SQLiteQueryBuilder();
-    method public static void appendColumns(java.lang.StringBuilder, java.lang.String[]);
-    method public void appendWhere(java.lang.CharSequence);
-    method public void appendWhereEscapeString(java.lang.String);
-    method public void appendWhereStandalone(java.lang.CharSequence);
-    method public java.lang.String buildQuery(java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public deprecated java.lang.String buildQuery(java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public static java.lang.String buildQueryString(boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public java.lang.String buildUnionQuery(java.lang.String[], java.lang.String, java.lang.String);
-    method public java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set<java.lang.String>, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public deprecated java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set<java.lang.String>, int, java.lang.String, java.lang.String, java.lang.String[], java.lang.String, java.lang.String);
-    method public int delete(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String[]);
-    method public java.lang.String getTables();
-    method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String);
-    method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, android.os.CancellationSignal);
+    method public static void appendColumns(StringBuilder, String[]);
+    method public void appendWhere(@NonNull CharSequence);
+    method public void appendWhereEscapeString(@NonNull String);
+    method public void appendWhereStandalone(@NonNull CharSequence);
+    method public String buildQuery(String[], String, String, String, String, String);
+    method @Deprecated public String buildQuery(String[], String, String[], String, String, String, String);
+    method public static String buildQueryString(boolean, String, String[], String, String, String, String, String);
+    method public String buildUnionQuery(String[], String, String);
+    method public String buildUnionSubQuery(String, String[], java.util.Set<java.lang.String>, int, String, String, String, String);
+    method @Deprecated public String buildUnionSubQuery(String, String[], java.util.Set<java.lang.String>, int, String, String, String[], String, String);
+    method public int delete(@NonNull android.database.sqlite.SQLiteDatabase, @Nullable String, @Nullable String[]);
+    method public String getTables();
+    method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase, String[], String, String[], String, String, String);
+    method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase, String[], String, String[], String, String, String, String);
+    method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase, String[], String, String[], String, String, String, String, android.os.CancellationSignal);
     method public void setCursorFactory(android.database.sqlite.SQLiteDatabase.CursorFactory);
     method public void setDistinct(boolean);
-    method public void setProjectionMap(java.util.Map<java.lang.String, java.lang.String>);
+    method public void setProjectionMap(java.util.Map<java.lang.String,java.lang.String>);
     method public void setStrict(boolean);
-    method public void setTables(java.lang.String);
-    method public int update(android.database.sqlite.SQLiteDatabase, android.content.ContentValues, java.lang.String, java.lang.String[]);
+    method public void setTables(String);
+    method public int update(@NonNull android.database.sqlite.SQLiteDatabase, @NonNull android.content.ContentValues, @Nullable String, @Nullable String[]);
   }
 
   public class SQLiteReadOnlyDatabaseException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteReadOnlyDatabaseException();
-    ctor public SQLiteReadOnlyDatabaseException(java.lang.String);
+    ctor public SQLiteReadOnlyDatabaseException(String);
   }
 
   public final class SQLiteStatement extends android.database.sqlite.SQLiteProgram {
@@ -13064,18 +13065,18 @@
     method public int executeUpdateDelete();
     method public android.os.ParcelFileDescriptor simpleQueryForBlobFileDescriptor();
     method public long simpleQueryForLong();
-    method public java.lang.String simpleQueryForString();
+    method public String simpleQueryForString();
   }
 
   public class SQLiteTableLockedException extends android.database.sqlite.SQLiteException {
     ctor public SQLiteTableLockedException();
-    ctor public SQLiteTableLockedException(java.lang.String);
+    ctor public SQLiteTableLockedException(String);
   }
 
-  public abstract interface SQLiteTransactionListener {
-    method public abstract void onBegin();
-    method public abstract void onCommit();
-    method public abstract void onRollback();
+  public interface SQLiteTransactionListener {
+    method public void onBegin();
+    method public void onCommit();
+    method public void onRollback();
   }
 
 }
@@ -13093,8 +13094,8 @@
   }
 
   public class DrmErrorEvent extends android.drm.DrmEvent {
-    ctor public DrmErrorEvent(int, int, java.lang.String);
-    ctor public DrmErrorEvent(int, int, java.lang.String, java.util.HashMap<java.lang.String, java.lang.Object>);
+    ctor public DrmErrorEvent(int, int, String);
+    ctor public DrmErrorEvent(int, int, String, java.util.HashMap<java.lang.String,java.lang.Object>);
     field public static final int TYPE_ACQUIRE_DRM_INFO_FAILED = 2008; // 0x7d8
     field public static final int TYPE_NOT_SUPPORTED = 2003; // 0x7d3
     field public static final int TYPE_NO_INTERNET_CONNECTION = 2005; // 0x7d5
@@ -13106,33 +13107,33 @@
   }
 
   public class DrmEvent {
-    ctor protected DrmEvent(int, int, java.lang.String, java.util.HashMap<java.lang.String, java.lang.Object>);
-    ctor protected DrmEvent(int, int, java.lang.String);
-    method public java.lang.Object getAttribute(java.lang.String);
-    method public java.lang.String getMessage();
+    ctor protected DrmEvent(int, int, String, java.util.HashMap<java.lang.String,java.lang.Object>);
+    ctor protected DrmEvent(int, int, String);
+    method public Object getAttribute(String);
+    method public String getMessage();
     method public int getType();
     method public int getUniqueId();
-    field public static final java.lang.String DRM_INFO_OBJECT = "drm_info_object";
-    field public static final java.lang.String DRM_INFO_STATUS_OBJECT = "drm_info_status_object";
+    field public static final String DRM_INFO_OBJECT = "drm_info_object";
+    field public static final String DRM_INFO_STATUS_OBJECT = "drm_info_status_object";
     field public static final int TYPE_ALL_RIGHTS_REMOVED = 1001; // 0x3e9
     field public static final int TYPE_DRM_INFO_PROCESSED = 1002; // 0x3ea
   }
 
   public class DrmInfo {
-    ctor public DrmInfo(int, byte[], java.lang.String);
-    ctor public DrmInfo(int, java.lang.String, java.lang.String);
-    method public java.lang.Object get(java.lang.String);
+    ctor public DrmInfo(int, byte[], String);
+    ctor public DrmInfo(int, String, String);
+    method public Object get(String);
     method public byte[] getData();
     method public int getInfoType();
-    method public java.lang.String getMimeType();
+    method public String getMimeType();
     method public java.util.Iterator<java.lang.Object> iterator();
     method public java.util.Iterator<java.lang.String> keyIterator();
-    method public void put(java.lang.String, java.lang.Object);
+    method public void put(String, Object);
   }
 
   public class DrmInfoEvent extends android.drm.DrmEvent {
-    ctor public DrmInfoEvent(int, int, java.lang.String);
-    ctor public DrmInfoEvent(int, int, java.lang.String, java.util.HashMap<java.lang.String, java.lang.Object>);
+    ctor public DrmInfoEvent(int, int, String);
+    ctor public DrmInfoEvent(int, int, String, java.util.HashMap<java.lang.String,java.lang.Object>);
     field public static final int TYPE_ACCOUNT_ALREADY_REGISTERED = 5; // 0x5
     field public static final int TYPE_ALREADY_REGISTERED_BY_ANOTHER_ACCOUNT = 1; // 0x1
     field public static final int TYPE_REMOVE_RIGHTS = 2; // 0x2
@@ -13142,15 +13143,15 @@
   }
 
   public class DrmInfoRequest {
-    ctor public DrmInfoRequest(int, java.lang.String);
-    method public java.lang.Object get(java.lang.String);
+    ctor public DrmInfoRequest(int, String);
+    method public Object get(String);
     method public int getInfoType();
-    method public java.lang.String getMimeType();
+    method public String getMimeType();
     method public java.util.Iterator<java.lang.Object> iterator();
     method public java.util.Iterator<java.lang.String> keyIterator();
-    method public void put(java.lang.String, java.lang.Object);
-    field public static final java.lang.String ACCOUNT_ID = "account_id";
-    field public static final java.lang.String SUBSCRIPTION_ID = "subscription_id";
+    method public void put(String, Object);
+    field public static final String ACCOUNT_ID = "account_id";
+    field public static final String SUBSCRIPTION_ID = "subscription_id";
     field public static final int TYPE_REGISTRATION_INFO = 1; // 0x1
     field public static final int TYPE_RIGHTS_ACQUISITION_INFO = 3; // 0x3
     field public static final int TYPE_RIGHTS_ACQUISITION_PROGRESS_INFO = 4; // 0x4
@@ -13158,12 +13159,12 @@
   }
 
   public class DrmInfoStatus {
-    ctor public DrmInfoStatus(int, int, android.drm.ProcessedData, java.lang.String);
+    ctor public DrmInfoStatus(int, int, android.drm.ProcessedData, String);
     field public static final int STATUS_ERROR = 2; // 0x2
     field public static final int STATUS_OK = 1; // 0x1
     field public final android.drm.ProcessedData data;
     field public final int infoType;
-    field public final java.lang.String mimeType;
+    field public final String mimeType;
     field public final int statusCode;
   }
 
@@ -13171,68 +13172,68 @@
     ctor public DrmManagerClient(android.content.Context);
     method public android.drm.DrmInfo acquireDrmInfo(android.drm.DrmInfoRequest);
     method public int acquireRights(android.drm.DrmInfoRequest);
-    method public boolean canHandle(java.lang.String, java.lang.String);
-    method public boolean canHandle(android.net.Uri, java.lang.String);
-    method public int checkRightsStatus(java.lang.String);
+    method public boolean canHandle(String, String);
+    method public boolean canHandle(android.net.Uri, String);
+    method public int checkRightsStatus(String);
     method public int checkRightsStatus(android.net.Uri);
-    method public int checkRightsStatus(java.lang.String, int);
+    method public int checkRightsStatus(String, int);
     method public int checkRightsStatus(android.net.Uri, int);
     method public void close();
     method public android.drm.DrmConvertedStatus closeConvertSession(int);
     method public android.drm.DrmConvertedStatus convertData(int, byte[]);
-    method public java.lang.String[] getAvailableDrmEngines();
-    method public android.content.ContentValues getConstraints(java.lang.String, int);
+    method public String[] getAvailableDrmEngines();
+    method public android.content.ContentValues getConstraints(String, int);
     method public android.content.ContentValues getConstraints(android.net.Uri, int);
-    method public int getDrmObjectType(java.lang.String, java.lang.String);
-    method public int getDrmObjectType(android.net.Uri, java.lang.String);
-    method public android.content.ContentValues getMetadata(java.lang.String);
+    method public int getDrmObjectType(String, String);
+    method public int getDrmObjectType(android.net.Uri, String);
+    method public android.content.ContentValues getMetadata(String);
     method public android.content.ContentValues getMetadata(android.net.Uri);
-    method public java.lang.String getOriginalMimeType(java.lang.String);
-    method public java.lang.String getOriginalMimeType(android.net.Uri);
-    method public int openConvertSession(java.lang.String);
+    method public String getOriginalMimeType(String);
+    method public String getOriginalMimeType(android.net.Uri);
+    method public int openConvertSession(String);
     method public int processDrmInfo(android.drm.DrmInfo);
-    method public deprecated void release();
+    method @Deprecated public void release();
     method public int removeAllRights();
-    method public int removeRights(java.lang.String);
+    method public int removeRights(String);
     method public int removeRights(android.net.Uri);
-    method public int saveRights(android.drm.DrmRights, java.lang.String, java.lang.String) throws java.io.IOException;
-    method public synchronized void setOnErrorListener(android.drm.DrmManagerClient.OnErrorListener);
-    method public synchronized void setOnEventListener(android.drm.DrmManagerClient.OnEventListener);
-    method public synchronized void setOnInfoListener(android.drm.DrmManagerClient.OnInfoListener);
+    method public int saveRights(android.drm.DrmRights, String, String) throws java.io.IOException;
+    method public void setOnErrorListener(android.drm.DrmManagerClient.OnErrorListener);
+    method public void setOnEventListener(android.drm.DrmManagerClient.OnEventListener);
+    method public void setOnInfoListener(android.drm.DrmManagerClient.OnInfoListener);
     field public static final int ERROR_NONE = 0; // 0x0
     field public static final int ERROR_UNKNOWN = -2000; // 0xfffff830
   }
 
-  public static abstract interface DrmManagerClient.OnErrorListener {
-    method public abstract void onError(android.drm.DrmManagerClient, android.drm.DrmErrorEvent);
+  public static interface DrmManagerClient.OnErrorListener {
+    method public void onError(android.drm.DrmManagerClient, android.drm.DrmErrorEvent);
   }
 
-  public static abstract interface DrmManagerClient.OnEventListener {
-    method public abstract void onEvent(android.drm.DrmManagerClient, android.drm.DrmEvent);
+  public static interface DrmManagerClient.OnEventListener {
+    method public void onEvent(android.drm.DrmManagerClient, android.drm.DrmEvent);
   }
 
-  public static abstract interface DrmManagerClient.OnInfoListener {
-    method public abstract void onInfo(android.drm.DrmManagerClient, android.drm.DrmInfoEvent);
+  public static interface DrmManagerClient.OnInfoListener {
+    method public void onInfo(android.drm.DrmManagerClient, android.drm.DrmInfoEvent);
   }
 
   public class DrmRights {
-    ctor public DrmRights(java.lang.String, java.lang.String);
-    ctor public DrmRights(java.lang.String, java.lang.String, java.lang.String);
-    ctor public DrmRights(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    ctor public DrmRights(java.io.File, java.lang.String);
-    ctor public DrmRights(android.drm.ProcessedData, java.lang.String);
-    method public java.lang.String getAccountId();
+    ctor public DrmRights(String, String);
+    ctor public DrmRights(String, String, String);
+    ctor public DrmRights(String, String, String, String);
+    ctor public DrmRights(java.io.File, String);
+    ctor public DrmRights(android.drm.ProcessedData, String);
+    method public String getAccountId();
     method public byte[] getData();
-    method public java.lang.String getMimeType();
-    method public java.lang.String getSubscriptionId();
+    method public String getMimeType();
+    method public String getSubscriptionId();
   }
 
   public class DrmStore {
-    ctor public deprecated DrmStore();
+    ctor @Deprecated public DrmStore();
   }
 
   public static class DrmStore.Action {
-    ctor public deprecated DrmStore.Action();
+    ctor @Deprecated public DrmStore.Action();
     field public static final int DEFAULT = 0; // 0x0
     field public static final int DISPLAY = 7; // 0x7
     field public static final int EXECUTE = 6; // 0x6
@@ -13243,17 +13244,17 @@
     field public static final int TRANSFER = 3; // 0x3
   }
 
-  public static abstract interface DrmStore.ConstraintsColumns {
-    field public static final java.lang.String EXTENDED_METADATA = "extended_metadata";
-    field public static final java.lang.String LICENSE_AVAILABLE_TIME = "license_available_time";
-    field public static final java.lang.String LICENSE_EXPIRY_TIME = "license_expiry_time";
-    field public static final java.lang.String LICENSE_START_TIME = "license_start_time";
-    field public static final java.lang.String MAX_REPEAT_COUNT = "max_repeat_count";
-    field public static final java.lang.String REMAINING_REPEAT_COUNT = "remaining_repeat_count";
+  public static interface DrmStore.ConstraintsColumns {
+    field public static final String EXTENDED_METADATA = "extended_metadata";
+    field public static final String LICENSE_AVAILABLE_TIME = "license_available_time";
+    field public static final String LICENSE_EXPIRY_TIME = "license_expiry_time";
+    field public static final String LICENSE_START_TIME = "license_start_time";
+    field public static final String MAX_REPEAT_COUNT = "max_repeat_count";
+    field public static final String REMAINING_REPEAT_COUNT = "remaining_repeat_count";
   }
 
   public static class DrmStore.DrmObjectType {
-    ctor public deprecated DrmStore.DrmObjectType();
+    ctor @Deprecated public DrmStore.DrmObjectType();
     field public static final int CONTENT = 1; // 0x1
     field public static final int RIGHTS_OBJECT = 2; // 0x2
     field public static final int TRIGGER_OBJECT = 3; // 0x3
@@ -13261,7 +13262,7 @@
   }
 
   public static class DrmStore.Playback {
-    ctor public deprecated DrmStore.Playback();
+    ctor @Deprecated public DrmStore.Playback();
     field public static final int PAUSE = 2; // 0x2
     field public static final int RESUME = 3; // 0x3
     field public static final int START = 0; // 0x0
@@ -13269,7 +13270,7 @@
   }
 
   public static class DrmStore.RightsStatus {
-    ctor public deprecated DrmStore.RightsStatus();
+    ctor @Deprecated public DrmStore.RightsStatus();
     field public static final int RIGHTS_EXPIRED = 2; // 0x2
     field public static final int RIGHTS_INVALID = 1; // 0x1
     field public static final int RIGHTS_NOT_ACQUIRED = 3; // 0x3
@@ -13278,13 +13279,13 @@
 
   public class DrmSupportInfo {
     ctor public DrmSupportInfo();
-    method public void addFileSuffix(java.lang.String);
-    method public void addMimeType(java.lang.String);
-    method public deprecated java.lang.String getDescriprition();
-    method public java.lang.String getDescription();
+    method public void addFileSuffix(String);
+    method public void addMimeType(String);
+    method @Deprecated public String getDescriprition();
+    method public String getDescription();
     method public java.util.Iterator<java.lang.String> getFileSuffixIterator();
     method public java.util.Iterator<java.lang.String> getMimeTypeIterator();
-    method public void setDescription(java.lang.String);
+    method public void setDescription(String);
   }
 
   public class DrmUtils {
@@ -13293,15 +13294,15 @@
   }
 
   public static class DrmUtils.ExtendedMetadataParser {
-    method public java.lang.String get(java.lang.String);
+    method public String get(String);
     method public java.util.Iterator<java.lang.String> iterator();
     method public java.util.Iterator<java.lang.String> keyIterator();
   }
 
   public class ProcessedData {
-    method public java.lang.String getAccountId();
+    method public String getAccountId();
     method public byte[] getData();
-    method public java.lang.String getSubscriptionId();
+    method public String getSubscriptionId();
   }
 
 }
@@ -13311,7 +13312,7 @@
   public class Gesture implements android.os.Parcelable {
     ctor public Gesture();
     method public void addStroke(android.gesture.GestureStroke);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public int describeContents();
     method public android.graphics.RectF getBoundingBox();
     method public long getID();
@@ -13329,24 +13330,24 @@
   }
 
   public final class GestureLibraries {
-    method public static android.gesture.GestureLibrary fromFile(java.lang.String);
+    method public static android.gesture.GestureLibrary fromFile(String);
     method public static android.gesture.GestureLibrary fromFile(java.io.File);
-    method public static android.gesture.GestureLibrary fromPrivateFile(android.content.Context, java.lang.String);
-    method public static android.gesture.GestureLibrary fromRawResource(android.content.Context, int);
+    method public static android.gesture.GestureLibrary fromPrivateFile(android.content.Context, String);
+    method public static android.gesture.GestureLibrary fromRawResource(android.content.Context, @RawRes int);
   }
 
   public abstract class GestureLibrary {
     ctor protected GestureLibrary();
-    method public void addGesture(java.lang.String, android.gesture.Gesture);
+    method public void addGesture(String, android.gesture.Gesture);
     method public java.util.Set<java.lang.String> getGestureEntries();
-    method public java.util.ArrayList<android.gesture.Gesture> getGestures(java.lang.String);
+    method public java.util.ArrayList<android.gesture.Gesture> getGestures(String);
     method public int getOrientationStyle();
     method public int getSequenceType();
     method public boolean isReadOnly();
     method public abstract boolean load();
     method public java.util.ArrayList<android.gesture.Prediction> recognize(android.gesture.Gesture);
-    method public void removeEntry(java.lang.String);
-    method public void removeGesture(java.lang.String, android.gesture.Gesture);
+    method public void removeEntry(String);
+    method public void removeGesture(String, android.gesture.Gesture);
     method public abstract boolean save();
     method public void setOrientationStyle(int);
     method public void setSequenceType(int);
@@ -13367,7 +13368,7 @@
     method public java.util.ArrayList<android.gesture.GesturePoint> getCurrentStroke();
     method public long getFadeOffset();
     method public android.gesture.Gesture getGesture();
-    method public int getGestureColor();
+    method @ColorInt public int getGestureColor();
     method public android.graphics.Path getGesturePath();
     method public android.graphics.Path getGesturePath(android.graphics.Path);
     method public float getGestureStrokeAngleThreshold();
@@ -13376,7 +13377,7 @@
     method public int getGestureStrokeType();
     method public float getGestureStrokeWidth();
     method public int getOrientation();
-    method public int getUncertainGestureColor();
+    method @ColorInt public int getUncertainGestureColor();
     method public boolean isEventsInterceptionEnabled();
     method public boolean isFadeEnabled();
     method public boolean isGestureVisible();
@@ -13391,7 +13392,7 @@
     method public void setFadeEnabled(boolean);
     method public void setFadeOffset(long);
     method public void setGesture(android.gesture.Gesture);
-    method public void setGestureColor(int);
+    method public void setGestureColor(@ColorInt int);
     method public void setGestureStrokeAngleThreshold(float);
     method public void setGestureStrokeLengthThreshold(float);
     method public void setGestureStrokeSquarenessTreshold(float);
@@ -13399,32 +13400,32 @@
     method public void setGestureStrokeWidth(float);
     method public void setGestureVisible(boolean);
     method public void setOrientation(int);
-    method public void setUncertainGestureColor(int);
+    method public void setUncertainGestureColor(@ColorInt int);
     field public static final int GESTURE_STROKE_TYPE_MULTIPLE = 1; // 0x1
     field public static final int GESTURE_STROKE_TYPE_SINGLE = 0; // 0x0
     field public static final int ORIENTATION_HORIZONTAL = 0; // 0x0
     field public static final int ORIENTATION_VERTICAL = 1; // 0x1
   }
 
-  public static abstract interface GestureOverlayView.OnGestureListener {
-    method public abstract void onGesture(android.gesture.GestureOverlayView, android.view.MotionEvent);
-    method public abstract void onGestureCancelled(android.gesture.GestureOverlayView, android.view.MotionEvent);
-    method public abstract void onGestureEnded(android.gesture.GestureOverlayView, android.view.MotionEvent);
-    method public abstract void onGestureStarted(android.gesture.GestureOverlayView, android.view.MotionEvent);
+  public static interface GestureOverlayView.OnGestureListener {
+    method public void onGesture(android.gesture.GestureOverlayView, android.view.MotionEvent);
+    method public void onGestureCancelled(android.gesture.GestureOverlayView, android.view.MotionEvent);
+    method public void onGestureEnded(android.gesture.GestureOverlayView, android.view.MotionEvent);
+    method public void onGestureStarted(android.gesture.GestureOverlayView, android.view.MotionEvent);
   }
 
-  public static abstract interface GestureOverlayView.OnGesturePerformedListener {
-    method public abstract void onGesturePerformed(android.gesture.GestureOverlayView, android.gesture.Gesture);
+  public static interface GestureOverlayView.OnGesturePerformedListener {
+    method public void onGesturePerformed(android.gesture.GestureOverlayView, android.gesture.Gesture);
   }
 
-  public static abstract interface GestureOverlayView.OnGesturingListener {
-    method public abstract void onGesturingEnded(android.gesture.GestureOverlayView);
-    method public abstract void onGesturingStarted(android.gesture.GestureOverlayView);
+  public static interface GestureOverlayView.OnGesturingListener {
+    method public void onGesturingEnded(android.gesture.GestureOverlayView);
+    method public void onGesturingStarted(android.gesture.GestureOverlayView);
   }
 
   public class GesturePoint {
     ctor public GesturePoint(float, float, long);
-    method public java.lang.Object clone();
+    method public Object clone();
     field public final long timestamp;
     field public final float x;
     field public final float y;
@@ -13432,17 +13433,17 @@
 
   public class GestureStore {
     ctor public GestureStore();
-    method public void addGesture(java.lang.String, android.gesture.Gesture);
+    method public void addGesture(String, android.gesture.Gesture);
     method public java.util.Set<java.lang.String> getGestureEntries();
-    method public java.util.ArrayList<android.gesture.Gesture> getGestures(java.lang.String);
+    method public java.util.ArrayList<android.gesture.Gesture> getGestures(String);
     method public int getOrientationStyle();
     method public int getSequenceType();
     method public boolean hasChanged();
     method public void load(java.io.InputStream) throws java.io.IOException;
     method public void load(java.io.InputStream, boolean) throws java.io.IOException;
     method public java.util.ArrayList<android.gesture.Prediction> recognize(android.gesture.Gesture);
-    method public void removeEntry(java.lang.String);
-    method public void removeGesture(java.lang.String, android.gesture.Gesture);
+    method public void removeEntry(String);
+    method public void removeGesture(String, android.gesture.Gesture);
     method public void save(java.io.OutputStream) throws java.io.IOException;
     method public void save(java.io.OutputStream, boolean) throws java.io.IOException;
     method public void setOrientationStyle(int);
@@ -13456,7 +13457,7 @@
   public class GestureStroke {
     ctor public GestureStroke(java.util.ArrayList<android.gesture.GesturePoint>);
     method public void clearPath();
-    method public java.lang.Object clone();
+    method public Object clone();
     method public android.gesture.OrientedBoundingBox computeOrientedBoundingBox();
     method public android.graphics.Path getPath();
     method public android.graphics.Path toPath(float, float, int);
@@ -13483,7 +13484,7 @@
   }
 
   public class Prediction {
-    field public final java.lang.String name;
+    field public final String name;
     field public double score;
   }
 
@@ -13492,40 +13493,40 @@
 package android.graphics {
 
   public final class Bitmap implements android.os.Parcelable {
-    method public boolean compress(android.graphics.Bitmap.CompressFormat, int, java.io.OutputStream);
+    method @WorkerThread public boolean compress(android.graphics.Bitmap.CompressFormat, int, java.io.OutputStream);
     method public android.graphics.Bitmap copy(android.graphics.Bitmap.Config, boolean);
     method public void copyPixelsFromBuffer(java.nio.Buffer);
     method public void copyPixelsToBuffer(java.nio.Buffer);
-    method public static android.graphics.Bitmap createBitmap(android.graphics.Bitmap);
-    method public static android.graphics.Bitmap createBitmap(android.graphics.Bitmap, int, int, int, int);
-    method public static android.graphics.Bitmap createBitmap(android.graphics.Bitmap, int, int, int, int, android.graphics.Matrix, boolean);
-    method public static android.graphics.Bitmap createBitmap(int, int, android.graphics.Bitmap.Config);
-    method public static android.graphics.Bitmap createBitmap(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config);
-    method public static android.graphics.Bitmap createBitmap(int, int, android.graphics.Bitmap.Config, boolean);
-    method public static android.graphics.Bitmap createBitmap(int, int, android.graphics.Bitmap.Config, boolean, android.graphics.ColorSpace);
-    method public static android.graphics.Bitmap createBitmap(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config, boolean);
-    method public static android.graphics.Bitmap createBitmap(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config, boolean, android.graphics.ColorSpace);
-    method public static android.graphics.Bitmap createBitmap(int[], int, int, int, int, android.graphics.Bitmap.Config);
-    method public static android.graphics.Bitmap createBitmap(android.util.DisplayMetrics, int[], int, int, int, int, android.graphics.Bitmap.Config);
-    method public static android.graphics.Bitmap createBitmap(int[], int, int, android.graphics.Bitmap.Config);
-    method public static android.graphics.Bitmap createBitmap(android.util.DisplayMetrics, int[], int, int, android.graphics.Bitmap.Config);
-    method public static android.graphics.Bitmap createBitmap(android.graphics.Picture);
-    method public static android.graphics.Bitmap createBitmap(android.graphics.Picture, int, int, android.graphics.Bitmap.Config);
-    method public static android.graphics.Bitmap createScaledBitmap(android.graphics.Bitmap, int, int, boolean);
+    method public static android.graphics.Bitmap createBitmap(@NonNull android.graphics.Bitmap);
+    method public static android.graphics.Bitmap createBitmap(@NonNull android.graphics.Bitmap, int, int, int, int);
+    method public static android.graphics.Bitmap createBitmap(@NonNull android.graphics.Bitmap, int, int, int, int, @Nullable android.graphics.Matrix, boolean);
+    method public static android.graphics.Bitmap createBitmap(int, int, @NonNull android.graphics.Bitmap.Config);
+    method public static android.graphics.Bitmap createBitmap(@Nullable android.util.DisplayMetrics, int, int, @NonNull android.graphics.Bitmap.Config);
+    method public static android.graphics.Bitmap createBitmap(int, int, @NonNull android.graphics.Bitmap.Config, boolean);
+    method public static android.graphics.Bitmap createBitmap(int, int, @NonNull android.graphics.Bitmap.Config, boolean, @NonNull android.graphics.ColorSpace);
+    method public static android.graphics.Bitmap createBitmap(@Nullable android.util.DisplayMetrics, int, int, @NonNull android.graphics.Bitmap.Config, boolean);
+    method public static android.graphics.Bitmap createBitmap(@Nullable android.util.DisplayMetrics, int, int, @NonNull android.graphics.Bitmap.Config, boolean, @NonNull android.graphics.ColorSpace);
+    method public static android.graphics.Bitmap createBitmap(@NonNull @ColorInt int[], int, int, int, int, @NonNull android.graphics.Bitmap.Config);
+    method public static android.graphics.Bitmap createBitmap(@NonNull android.util.DisplayMetrics, @NonNull @ColorInt int[], int, int, int, int, @NonNull android.graphics.Bitmap.Config);
+    method public static android.graphics.Bitmap createBitmap(@NonNull @ColorInt int[], int, int, android.graphics.Bitmap.Config);
+    method public static android.graphics.Bitmap createBitmap(@Nullable android.util.DisplayMetrics, @NonNull @ColorInt int[], int, int, @NonNull android.graphics.Bitmap.Config);
+    method @NonNull public static android.graphics.Bitmap createBitmap(@NonNull android.graphics.Picture);
+    method @NonNull public static android.graphics.Bitmap createBitmap(@NonNull android.graphics.Picture, int, int, @NonNull android.graphics.Bitmap.Config);
+    method public static android.graphics.Bitmap createScaledBitmap(@NonNull android.graphics.Bitmap, int, int, boolean);
     method public int describeContents();
-    method public void eraseColor(int);
-    method public android.graphics.Bitmap extractAlpha();
-    method public android.graphics.Bitmap extractAlpha(android.graphics.Paint, int[]);
+    method public void eraseColor(@ColorInt int);
+    method @CheckResult public android.graphics.Bitmap extractAlpha();
+    method @CheckResult public android.graphics.Bitmap extractAlpha(android.graphics.Paint, int[]);
     method public int getAllocationByteCount();
     method public int getByteCount();
-    method public android.graphics.ColorSpace getColorSpace();
+    method @Nullable public android.graphics.ColorSpace getColorSpace();
     method public android.graphics.Bitmap.Config getConfig();
     method public int getDensity();
     method public int getGenerationId();
     method public int getHeight();
     method public byte[] getNinePatchChunk();
-    method public int getPixel(int, int);
-    method public void getPixels(int[], int, int, int, int, int, int);
+    method @ColorInt public int getPixel(int, int);
+    method public void getPixels(@ColorInt int[], int, int, int, int, int, int);
     method public int getRowBytes();
     method public int getScaledHeight(android.graphics.Canvas);
     method public int getScaledHeight(android.util.DisplayMetrics);
@@ -13548,29 +13549,25 @@
     method public void setHasAlpha(boolean);
     method public void setHasMipMap(boolean);
     method public void setHeight(int);
-    method public void setPixel(int, int, int);
-    method public void setPixels(int[], int, int, int, int, int, int);
+    method public void setPixel(int, int, @ColorInt int);
+    method public void setPixels(@ColorInt int[], int, int, int, int, int, int);
     method public void setPremultiplied(boolean);
     method public void setWidth(int);
-    method public static android.graphics.Bitmap wrapHardwareBuffer(android.hardware.HardwareBuffer, android.graphics.ColorSpace);
+    method @Nullable public static android.graphics.Bitmap wrapHardwareBuffer(@NonNull android.hardware.HardwareBuffer, @Nullable android.graphics.ColorSpace);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.graphics.Bitmap> CREATOR;
     field public static final int DENSITY_NONE = 0; // 0x0
   }
 
-  public static final class Bitmap.CompressFormat extends java.lang.Enum {
-    method public static android.graphics.Bitmap.CompressFormat valueOf(java.lang.String);
-    method public static final android.graphics.Bitmap.CompressFormat[] values();
+  public enum Bitmap.CompressFormat {
     enum_constant public static final android.graphics.Bitmap.CompressFormat JPEG;
     enum_constant public static final android.graphics.Bitmap.CompressFormat PNG;
     enum_constant public static final android.graphics.Bitmap.CompressFormat WEBP;
   }
 
-  public static final class Bitmap.Config extends java.lang.Enum {
-    method public static android.graphics.Bitmap.Config valueOf(java.lang.String);
-    method public static final android.graphics.Bitmap.Config[] values();
+  public enum Bitmap.Config {
     enum_constant public static final android.graphics.Bitmap.Config ALPHA_8;
-    enum_constant public static final deprecated android.graphics.Bitmap.Config ARGB_4444;
+    enum_constant @Deprecated public static final android.graphics.Bitmap.Config ARGB_4444;
     enum_constant public static final android.graphics.Bitmap.Config ARGB_8888;
     enum_constant public static final android.graphics.Bitmap.Config HARDWARE;
     enum_constant public static final android.graphics.Bitmap.Config RGBA_F16;
@@ -13581,41 +13578,41 @@
     ctor public BitmapFactory();
     method public static android.graphics.Bitmap decodeByteArray(byte[], int, int, android.graphics.BitmapFactory.Options);
     method public static android.graphics.Bitmap decodeByteArray(byte[], int, int);
-    method public static android.graphics.Bitmap decodeFile(java.lang.String, android.graphics.BitmapFactory.Options);
-    method public static android.graphics.Bitmap decodeFile(java.lang.String);
+    method public static android.graphics.Bitmap decodeFile(String, android.graphics.BitmapFactory.Options);
+    method public static android.graphics.Bitmap decodeFile(String);
     method public static android.graphics.Bitmap decodeFileDescriptor(java.io.FileDescriptor, android.graphics.Rect, android.graphics.BitmapFactory.Options);
     method public static android.graphics.Bitmap decodeFileDescriptor(java.io.FileDescriptor);
     method public static android.graphics.Bitmap decodeResource(android.content.res.Resources, int, android.graphics.BitmapFactory.Options);
     method public static android.graphics.Bitmap decodeResource(android.content.res.Resources, int);
-    method public static android.graphics.Bitmap decodeResourceStream(android.content.res.Resources, android.util.TypedValue, java.io.InputStream, android.graphics.Rect, android.graphics.BitmapFactory.Options);
-    method public static android.graphics.Bitmap decodeStream(java.io.InputStream, android.graphics.Rect, android.graphics.BitmapFactory.Options);
+    method @Nullable public static android.graphics.Bitmap decodeResourceStream(@Nullable android.content.res.Resources, @Nullable android.util.TypedValue, @Nullable java.io.InputStream, @Nullable android.graphics.Rect, @Nullable android.graphics.BitmapFactory.Options);
+    method @Nullable public static android.graphics.Bitmap decodeStream(@Nullable java.io.InputStream, @Nullable android.graphics.Rect, @Nullable android.graphics.BitmapFactory.Options);
     method public static android.graphics.Bitmap decodeStream(java.io.InputStream);
   }
 
   public static class BitmapFactory.Options {
     ctor public BitmapFactory.Options();
-    method public deprecated void requestCancelDecode();
+    method @Deprecated public void requestCancelDecode();
     field public android.graphics.Bitmap inBitmap;
     field public int inDensity;
-    field public deprecated boolean inDither;
-    field public deprecated boolean inInputShareable;
+    field @Deprecated public boolean inDither;
+    field @Deprecated public boolean inInputShareable;
     field public boolean inJustDecodeBounds;
     field public boolean inMutable;
-    field public deprecated boolean inPreferQualityOverSpeed;
+    field @Deprecated public boolean inPreferQualityOverSpeed;
     field public android.graphics.ColorSpace inPreferredColorSpace;
     field public android.graphics.Bitmap.Config inPreferredConfig;
     field public boolean inPremultiplied;
-    field public deprecated boolean inPurgeable;
+    field @Deprecated public boolean inPurgeable;
     field public int inSampleSize;
     field public boolean inScaled;
     field public int inScreenDensity;
     field public int inTargetDensity;
     field public byte[] inTempStorage;
-    field public deprecated boolean mCancel;
+    field @Deprecated public boolean mCancel;
     field public android.graphics.ColorSpace outColorSpace;
     field public android.graphics.Bitmap.Config outConfig;
     field public int outHeight;
-    field public java.lang.String outMimeType;
+    field public String outMimeType;
     field public int outWidth;
   }
 
@@ -13627,17 +13624,15 @@
     method public static android.graphics.BitmapRegionDecoder newInstance(byte[], int, int, boolean) throws java.io.IOException;
     method public static android.graphics.BitmapRegionDecoder newInstance(java.io.FileDescriptor, boolean) throws java.io.IOException;
     method public static android.graphics.BitmapRegionDecoder newInstance(java.io.InputStream, boolean) throws java.io.IOException;
-    method public static android.graphics.BitmapRegionDecoder newInstance(java.lang.String, boolean) throws java.io.IOException;
+    method public static android.graphics.BitmapRegionDecoder newInstance(String, boolean) throws java.io.IOException;
     method public void recycle();
   }
 
   public class BitmapShader extends android.graphics.Shader {
-    ctor public BitmapShader(android.graphics.Bitmap, android.graphics.Shader.TileMode, android.graphics.Shader.TileMode);
+    ctor public BitmapShader(@NonNull android.graphics.Bitmap, @NonNull android.graphics.Shader.TileMode, @NonNull android.graphics.Shader.TileMode);
   }
 
-  public final class BlendMode extends java.lang.Enum {
-    method public static android.graphics.BlendMode valueOf(java.lang.String);
-    method public static final android.graphics.BlendMode[] values();
+  public enum BlendMode {
     enum_constant public static final android.graphics.BlendMode CLEAR;
     enum_constant public static final android.graphics.BlendMode COLOR;
     enum_constant public static final android.graphics.BlendMode COLOR_BURN;
@@ -13670,8 +13665,8 @@
   }
 
   public final class BlendModeColorFilter extends android.graphics.ColorFilter {
-    ctor public BlendModeColorFilter(int, android.graphics.BlendMode);
-    method public int getColor();
+    ctor public BlendModeColorFilter(@ColorInt int, @NonNull android.graphics.BlendMode);
+    method @ColorInt public int getColor();
     method public android.graphics.BlendMode getMode();
   }
 
@@ -13679,9 +13674,7 @@
     ctor public BlurMaskFilter(float, android.graphics.BlurMaskFilter.Blur);
   }
 
-  public static final class BlurMaskFilter.Blur extends java.lang.Enum {
-    method public static android.graphics.BlurMaskFilter.Blur valueOf(java.lang.String);
-    method public static final android.graphics.BlurMaskFilter.Blur[] values();
+  public enum BlurMaskFilter.Blur {
     enum_constant public static final android.graphics.BlurMaskFilter.Blur INNER;
     enum_constant public static final android.graphics.BlurMaskFilter.Blur NORMAL;
     enum_constant public static final android.graphics.BlurMaskFilter.Blur OUTER;
@@ -13708,200 +13701,196 @@
 
   public class Canvas {
     ctor public Canvas();
-    ctor public Canvas(android.graphics.Bitmap);
-    method public boolean clipOutPath(android.graphics.Path);
-    method public boolean clipOutRect(android.graphics.RectF);
-    method public boolean clipOutRect(android.graphics.Rect);
+    ctor public Canvas(@NonNull android.graphics.Bitmap);
+    method public boolean clipOutPath(@NonNull android.graphics.Path);
+    method public boolean clipOutRect(@NonNull android.graphics.RectF);
+    method public boolean clipOutRect(@NonNull android.graphics.Rect);
     method public boolean clipOutRect(float, float, float, float);
     method public boolean clipOutRect(int, int, int, int);
-    method public deprecated boolean clipPath(android.graphics.Path, android.graphics.Region.Op);
-    method public boolean clipPath(android.graphics.Path);
-    method public deprecated boolean clipRect(android.graphics.RectF, android.graphics.Region.Op);
-    method public deprecated boolean clipRect(android.graphics.Rect, android.graphics.Region.Op);
-    method public boolean clipRect(android.graphics.RectF);
-    method public boolean clipRect(android.graphics.Rect);
-    method public deprecated boolean clipRect(float, float, float, float, android.graphics.Region.Op);
+    method @Deprecated public boolean clipPath(@NonNull android.graphics.Path, @NonNull android.graphics.Region.Op);
+    method public boolean clipPath(@NonNull android.graphics.Path);
+    method @Deprecated public boolean clipRect(@NonNull android.graphics.RectF, @NonNull android.graphics.Region.Op);
+    method @Deprecated public boolean clipRect(@NonNull android.graphics.Rect, @NonNull android.graphics.Region.Op);
+    method public boolean clipRect(@NonNull android.graphics.RectF);
+    method public boolean clipRect(@NonNull android.graphics.Rect);
+    method @Deprecated public boolean clipRect(float, float, float, float, @NonNull android.graphics.Region.Op);
     method public boolean clipRect(float, float, float, float);
     method public boolean clipRect(int, int, int, int);
-    method public void concat(android.graphics.Matrix);
+    method public void concat(@Nullable android.graphics.Matrix);
     method public void disableZ();
     method public void drawARGB(int, int, int, int);
-    method public void drawArc(android.graphics.RectF, float, float, boolean, android.graphics.Paint);
-    method public void drawArc(float, float, float, float, float, float, boolean, android.graphics.Paint);
-    method public void drawBitmap(android.graphics.Bitmap, float, float, android.graphics.Paint);
-    method public void drawBitmap(android.graphics.Bitmap, android.graphics.Rect, android.graphics.RectF, android.graphics.Paint);
-    method public void drawBitmap(android.graphics.Bitmap, android.graphics.Rect, android.graphics.Rect, android.graphics.Paint);
-    method public deprecated void drawBitmap(int[], int, int, float, float, int, int, boolean, android.graphics.Paint);
-    method public deprecated void drawBitmap(int[], int, int, int, int, int, int, boolean, android.graphics.Paint);
-    method public void drawBitmap(android.graphics.Bitmap, android.graphics.Matrix, android.graphics.Paint);
-    method public void drawBitmapMesh(android.graphics.Bitmap, int, int, float[], int, int[], int, android.graphics.Paint);
-    method public void drawCircle(float, float, float, android.graphics.Paint);
-    method public void drawColor(int);
-    method public deprecated void drawColor(int, android.graphics.PorterDuff.Mode);
-    method public void drawColor(int, android.graphics.BlendMode);
-    method public void drawDoubleRoundRect(android.graphics.RectF, float, float, android.graphics.RectF, float, float, android.graphics.Paint);
-    method public void drawDoubleRoundRect(android.graphics.RectF, float[], android.graphics.RectF, float[], android.graphics.Paint);
-    method public void drawLine(float, float, float, float, android.graphics.Paint);
-    method public void drawLines(float[], int, int, android.graphics.Paint);
-    method public void drawLines(float[], android.graphics.Paint);
-    method public void drawOval(android.graphics.RectF, android.graphics.Paint);
-    method public void drawOval(float, float, float, float, android.graphics.Paint);
-    method public void drawPaint(android.graphics.Paint);
-    method public void drawPath(android.graphics.Path, android.graphics.Paint);
-    method public void drawPicture(android.graphics.Picture);
-    method public void drawPicture(android.graphics.Picture, android.graphics.RectF);
-    method public void drawPicture(android.graphics.Picture, android.graphics.Rect);
-    method public void drawPoint(float, float, android.graphics.Paint);
-    method public void drawPoints(float[], int, int, android.graphics.Paint);
-    method public void drawPoints(float[], android.graphics.Paint);
-    method public deprecated void drawPosText(char[], int, int, float[], android.graphics.Paint);
-    method public deprecated void drawPosText(java.lang.String, float[], android.graphics.Paint);
+    method public void drawArc(@NonNull android.graphics.RectF, float, float, boolean, @NonNull android.graphics.Paint);
+    method public void drawArc(float, float, float, float, float, float, boolean, @NonNull android.graphics.Paint);
+    method public void drawBitmap(@NonNull android.graphics.Bitmap, float, float, @Nullable android.graphics.Paint);
+    method public void drawBitmap(@NonNull android.graphics.Bitmap, @Nullable android.graphics.Rect, @NonNull android.graphics.RectF, @Nullable android.graphics.Paint);
+    method public void drawBitmap(@NonNull android.graphics.Bitmap, @Nullable android.graphics.Rect, @NonNull android.graphics.Rect, @Nullable android.graphics.Paint);
+    method @Deprecated public void drawBitmap(@NonNull int[], int, int, float, float, int, int, boolean, @Nullable android.graphics.Paint);
+    method @Deprecated public void drawBitmap(@NonNull int[], int, int, int, int, int, int, boolean, @Nullable android.graphics.Paint);
+    method public void drawBitmap(@NonNull android.graphics.Bitmap, @NonNull android.graphics.Matrix, @Nullable android.graphics.Paint);
+    method public void drawBitmapMesh(@NonNull android.graphics.Bitmap, int, int, @NonNull float[], int, @Nullable int[], int, @Nullable android.graphics.Paint);
+    method public void drawCircle(float, float, float, @NonNull android.graphics.Paint);
+    method public void drawColor(@ColorInt int);
+    method @Deprecated public void drawColor(@ColorInt int, @NonNull android.graphics.PorterDuff.Mode);
+    method public void drawColor(@ColorInt int, @NonNull android.graphics.BlendMode);
+    method public void drawDoubleRoundRect(@NonNull android.graphics.RectF, float, float, @NonNull android.graphics.RectF, float, float, @NonNull android.graphics.Paint);
+    method public void drawDoubleRoundRect(@NonNull android.graphics.RectF, float[], @NonNull android.graphics.RectF, float[], @NonNull android.graphics.Paint);
+    method public void drawLine(float, float, float, float, @NonNull android.graphics.Paint);
+    method public void drawLines(@Size(multiple=4) @NonNull float[], int, int, @NonNull android.graphics.Paint);
+    method public void drawLines(@Size(multiple=4) @NonNull float[], @NonNull android.graphics.Paint);
+    method public void drawOval(@NonNull android.graphics.RectF, @NonNull android.graphics.Paint);
+    method public void drawOval(float, float, float, float, @NonNull android.graphics.Paint);
+    method public void drawPaint(@NonNull android.graphics.Paint);
+    method public void drawPath(@NonNull android.graphics.Path, @NonNull android.graphics.Paint);
+    method public void drawPicture(@NonNull android.graphics.Picture);
+    method public void drawPicture(@NonNull android.graphics.Picture, @NonNull android.graphics.RectF);
+    method public void drawPicture(@NonNull android.graphics.Picture, @NonNull android.graphics.Rect);
+    method public void drawPoint(float, float, @NonNull android.graphics.Paint);
+    method public void drawPoints(@Size(multiple=2) float[], int, int, @NonNull android.graphics.Paint);
+    method public void drawPoints(@Size(multiple=2) @NonNull float[], @NonNull android.graphics.Paint);
+    method @Deprecated public void drawPosText(@NonNull char[], int, int, @NonNull @Size(multiple=2) float[], @NonNull android.graphics.Paint);
+    method @Deprecated public void drawPosText(@NonNull String, @NonNull @Size(multiple=2) float[], @NonNull android.graphics.Paint);
     method public void drawRGB(int, int, int);
-    method public void drawRect(android.graphics.RectF, android.graphics.Paint);
-    method public void drawRect(android.graphics.Rect, android.graphics.Paint);
-    method public void drawRect(float, float, float, float, android.graphics.Paint);
-    method public void drawRenderNode(android.graphics.RenderNode);
-    method public void drawRoundRect(android.graphics.RectF, float, float, android.graphics.Paint);
-    method public void drawRoundRect(float, float, float, float, float, float, android.graphics.Paint);
-    method public void drawText(char[], int, int, float, float, android.graphics.Paint);
-    method public void drawText(java.lang.String, float, float, android.graphics.Paint);
-    method public void drawText(java.lang.String, int, int, float, float, android.graphics.Paint);
-    method public void drawText(java.lang.CharSequence, int, int, float, float, android.graphics.Paint);
-    method public void drawTextOnPath(char[], int, int, android.graphics.Path, float, float, android.graphics.Paint);
-    method public void drawTextOnPath(java.lang.String, android.graphics.Path, float, float, android.graphics.Paint);
-    method public void drawTextRun(char[], int, int, int, int, float, float, boolean, android.graphics.Paint);
-    method public void drawTextRun(java.lang.CharSequence, int, int, int, int, float, float, boolean, android.graphics.Paint);
-    method public void drawTextRun(android.graphics.text.MeasuredText, int, int, int, int, float, float, boolean, android.graphics.Paint);
-    method public void drawVertices(android.graphics.Canvas.VertexMode, int, float[], int, float[], int, int[], int, short[], int, int, android.graphics.Paint);
+    method public void drawRect(@NonNull android.graphics.RectF, @NonNull android.graphics.Paint);
+    method public void drawRect(@NonNull android.graphics.Rect, @NonNull android.graphics.Paint);
+    method public void drawRect(float, float, float, float, @NonNull android.graphics.Paint);
+    method public void drawRenderNode(@NonNull android.graphics.RenderNode);
+    method public void drawRoundRect(@NonNull android.graphics.RectF, float, float, @NonNull android.graphics.Paint);
+    method public void drawRoundRect(float, float, float, float, float, float, @NonNull android.graphics.Paint);
+    method public void drawText(@NonNull char[], int, int, float, float, @NonNull android.graphics.Paint);
+    method public void drawText(@NonNull String, float, float, @NonNull android.graphics.Paint);
+    method public void drawText(@NonNull String, int, int, float, float, @NonNull android.graphics.Paint);
+    method public void drawText(@NonNull CharSequence, int, int, float, float, @NonNull android.graphics.Paint);
+    method public void drawTextOnPath(@NonNull char[], int, int, @NonNull android.graphics.Path, float, float, @NonNull android.graphics.Paint);
+    method public void drawTextOnPath(@NonNull String, @NonNull android.graphics.Path, float, float, @NonNull android.graphics.Paint);
+    method public void drawTextRun(@NonNull char[], int, int, int, int, float, float, boolean, @NonNull android.graphics.Paint);
+    method public void drawTextRun(@NonNull CharSequence, int, int, int, int, float, float, boolean, @NonNull android.graphics.Paint);
+    method public void drawTextRun(@NonNull android.graphics.text.MeasuredText, int, int, int, int, float, float, boolean, @NonNull android.graphics.Paint);
+    method public void drawVertices(@NonNull android.graphics.Canvas.VertexMode, int, @NonNull float[], int, @Nullable float[], int, @Nullable int[], int, @Nullable short[], int, int, @NonNull android.graphics.Paint);
     method public void enableZ();
-    method public boolean getClipBounds(android.graphics.Rect);
-    method public final android.graphics.Rect getClipBounds();
+    method public boolean getClipBounds(@Nullable android.graphics.Rect);
+    method @NonNull public final android.graphics.Rect getClipBounds();
     method public int getDensity();
-    method public android.graphics.DrawFilter getDrawFilter();
+    method @Nullable public android.graphics.DrawFilter getDrawFilter();
     method public int getHeight();
-    method public deprecated void getMatrix(android.graphics.Matrix);
-    method public final deprecated android.graphics.Matrix getMatrix();
+    method @Deprecated public void getMatrix(@NonNull android.graphics.Matrix);
+    method @Deprecated @NonNull public final android.graphics.Matrix getMatrix();
     method public int getMaximumBitmapHeight();
     method public int getMaximumBitmapWidth();
     method public int getSaveCount();
     method public int getWidth();
     method public boolean isHardwareAccelerated();
     method public boolean isOpaque();
-    method public boolean quickReject(android.graphics.RectF, android.graphics.Canvas.EdgeType);
-    method public boolean quickReject(android.graphics.Path, android.graphics.Canvas.EdgeType);
-    method public boolean quickReject(float, float, float, float, android.graphics.Canvas.EdgeType);
+    method public boolean quickReject(@NonNull android.graphics.RectF, @NonNull android.graphics.Canvas.EdgeType);
+    method public boolean quickReject(@NonNull android.graphics.Path, @NonNull android.graphics.Canvas.EdgeType);
+    method public boolean quickReject(float, float, float, float, @NonNull android.graphics.Canvas.EdgeType);
     method public void restore();
     method public void restoreToCount(int);
     method public void rotate(float);
     method public final void rotate(float, float, float);
     method public int save();
-    method public deprecated int saveLayer(android.graphics.RectF, android.graphics.Paint, int);
-    method public int saveLayer(android.graphics.RectF, android.graphics.Paint);
-    method public deprecated int saveLayer(float, float, float, float, android.graphics.Paint, int);
-    method public int saveLayer(float, float, float, float, android.graphics.Paint);
-    method public deprecated int saveLayerAlpha(android.graphics.RectF, int, int);
-    method public int saveLayerAlpha(android.graphics.RectF, int);
-    method public deprecated int saveLayerAlpha(float, float, float, float, int, int);
+    method @Deprecated public int saveLayer(@Nullable android.graphics.RectF, @Nullable android.graphics.Paint, int);
+    method public int saveLayer(@Nullable android.graphics.RectF, @Nullable android.graphics.Paint);
+    method @Deprecated public int saveLayer(float, float, float, float, @Nullable android.graphics.Paint, int);
+    method public int saveLayer(float, float, float, float, @Nullable android.graphics.Paint);
+    method @Deprecated public int saveLayerAlpha(@Nullable android.graphics.RectF, int, int);
+    method public int saveLayerAlpha(@Nullable android.graphics.RectF, int);
+    method @Deprecated public int saveLayerAlpha(float, float, float, float, int, int);
     method public int saveLayerAlpha(float, float, float, float, int);
     method public void scale(float, float);
     method public final void scale(float, float, float, float);
-    method public void setBitmap(android.graphics.Bitmap);
+    method public void setBitmap(@Nullable android.graphics.Bitmap);
     method public void setDensity(int);
-    method public void setDrawFilter(android.graphics.DrawFilter);
-    method public void setMatrix(android.graphics.Matrix);
+    method public void setDrawFilter(@Nullable android.graphics.DrawFilter);
+    method public void setMatrix(@Nullable android.graphics.Matrix);
     method public void skew(float, float);
     method public void translate(float, float);
     field public static final int ALL_SAVE_FLAG = 31; // 0x1f
   }
 
-  public static final class Canvas.EdgeType extends java.lang.Enum {
-    method public static android.graphics.Canvas.EdgeType valueOf(java.lang.String);
-    method public static final android.graphics.Canvas.EdgeType[] values();
+  public enum Canvas.EdgeType {
     enum_constant public static final android.graphics.Canvas.EdgeType AA;
     enum_constant public static final android.graphics.Canvas.EdgeType BW;
   }
 
-  public static final class Canvas.VertexMode extends java.lang.Enum {
-    method public static android.graphics.Canvas.VertexMode valueOf(java.lang.String);
-    method public static final android.graphics.Canvas.VertexMode[] values();
+  public enum Canvas.VertexMode {
     enum_constant public static final android.graphics.Canvas.VertexMode TRIANGLES;
     enum_constant public static final android.graphics.Canvas.VertexMode TRIANGLE_FAN;
     enum_constant public static final android.graphics.Canvas.VertexMode TRIANGLE_STRIP;
   }
 
-  public class Color {
+  @AnyThread public class Color {
     ctor public Color();
-    method public static int HSVToColor(float[]);
-    method public static int HSVToColor(int, float[]);
-    method public static void RGBToHSV(int, int, int, float[]);
+    method @ColorInt public static int HSVToColor(@Size(3) float[]);
+    method @ColorInt public static int HSVToColor(@IntRange(from=0, to=255) int, @Size(3) float[]);
+    method public static void RGBToHSV(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @Size(3) float[]);
     method public float alpha();
-    method public static float alpha(long);
-    method public static int alpha(int);
-    method public static int argb(int, int, int, int);
-    method public static int argb(float, float, float, float);
+    method public static float alpha(@ColorLong long);
+    method @IntRange(from=0, to=255) public static int alpha(int);
+    method @ColorInt public static int argb(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int);
+    method @ColorInt public static int argb(float, float, float, float);
     method public float blue();
-    method public static float blue(long);
-    method public static int blue(int);
-    method public static android.graphics.ColorSpace colorSpace(long);
-    method public static void colorToHSV(int, float[]);
-    method public android.graphics.Color convert(android.graphics.ColorSpace);
-    method public static long convert(int, android.graphics.ColorSpace);
-    method public static long convert(long, android.graphics.ColorSpace);
-    method public static long convert(float, float, float, float, android.graphics.ColorSpace, android.graphics.ColorSpace);
-    method public static long convert(long, android.graphics.ColorSpace.Connector);
-    method public static long convert(float, float, float, float, android.graphics.ColorSpace.Connector);
-    method public android.graphics.ColorSpace getColorSpace();
-    method public float getComponent(int);
-    method public int getComponentCount();
-    method public float[] getComponents();
-    method public float[] getComponents(float[]);
+    method public static float blue(@ColorLong long);
+    method @IntRange(from=0, to=255) public static int blue(int);
+    method @NonNull public static android.graphics.ColorSpace colorSpace(@ColorLong long);
+    method public static void colorToHSV(@ColorInt int, @Size(3) float[]);
+    method @NonNull public android.graphics.Color convert(@NonNull android.graphics.ColorSpace);
+    method @ColorLong public static long convert(@ColorInt int, @NonNull android.graphics.ColorSpace);
+    method @ColorLong public static long convert(@ColorLong long, @NonNull android.graphics.ColorSpace);
+    method @ColorLong public static long convert(float, float, float, float, @NonNull android.graphics.ColorSpace, @NonNull android.graphics.ColorSpace);
+    method @ColorLong public static long convert(@ColorLong long, @NonNull android.graphics.ColorSpace.Connector);
+    method @ColorLong public static long convert(float, float, float, float, @NonNull android.graphics.ColorSpace.Connector);
+    method @NonNull public android.graphics.ColorSpace getColorSpace();
+    method public float getComponent(@IntRange(from=0, to=4) int);
+    method @IntRange(from=4, to=5) public int getComponentCount();
+    method @NonNull @Size(min=4, max=5) public float[] getComponents();
+    method @NonNull @Size(min=4) public float[] getComponents(@Nullable @Size(min=4) float[]);
     method public android.graphics.ColorSpace.Model getModel();
     method public float green();
-    method public static float green(long);
-    method public static int green(int);
-    method public static boolean isInColorSpace(long, android.graphics.ColorSpace);
+    method public static float green(@ColorLong long);
+    method @IntRange(from=0, to=255) public static int green(int);
+    method public static boolean isInColorSpace(@ColorLong long, @NonNull android.graphics.ColorSpace);
     method public boolean isSrgb();
-    method public static boolean isSrgb(long);
+    method public static boolean isSrgb(@ColorLong long);
     method public boolean isWideGamut();
-    method public static boolean isWideGamut(long);
+    method public static boolean isWideGamut(@ColorLong long);
     method public float luminance();
-    method public static float luminance(long);
-    method public static float luminance(int);
-    method public long pack();
-    method public static long pack(int);
-    method public static long pack(float, float, float);
-    method public static long pack(float, float, float, float);
-    method public static long pack(float, float, float, float, android.graphics.ColorSpace);
-    method public static int parseColor(java.lang.String);
+    method public static float luminance(@ColorLong long);
+    method public static float luminance(@ColorInt int);
+    method @ColorLong public long pack();
+    method @ColorLong public static long pack(@ColorInt int);
+    method @ColorLong public static long pack(float, float, float);
+    method @ColorLong public static long pack(float, float, float, float);
+    method @ColorLong public static long pack(float, float, float, float, @NonNull android.graphics.ColorSpace);
+    method @ColorInt public static int parseColor(@Size(min=1) String);
     method public float red();
-    method public static float red(long);
-    method public static int red(int);
-    method public static int rgb(int, int, int);
-    method public static int rgb(float, float, float);
-    method public int toArgb();
-    method public static int toArgb(long);
-    method public static android.graphics.Color valueOf(int);
-    method public static android.graphics.Color valueOf(long);
-    method public static android.graphics.Color valueOf(float, float, float);
-    method public static android.graphics.Color valueOf(float, float, float, float);
-    method public static android.graphics.Color valueOf(float, float, float, float, android.graphics.ColorSpace);
-    method public static android.graphics.Color valueOf(float[], android.graphics.ColorSpace);
-    field public static final int BLACK = -16777216; // 0xff000000
-    field public static final int BLUE = -16776961; // 0xff0000ff
-    field public static final int CYAN = -16711681; // 0xff00ffff
-    field public static final int DKGRAY = -12303292; // 0xff444444
-    field public static final int GRAY = -7829368; // 0xff888888
-    field public static final int GREEN = -16711936; // 0xff00ff00
-    field public static final int LTGRAY = -3355444; // 0xffcccccc
-    field public static final int MAGENTA = -65281; // 0xffff00ff
-    field public static final int RED = -65536; // 0xffff0000
-    field public static final int TRANSPARENT = 0; // 0x0
-    field public static final int WHITE = -1; // 0xffffffff
-    field public static final int YELLOW = -256; // 0xffffff00
+    method public static float red(@ColorLong long);
+    method @IntRange(from=0, to=255) public static int red(int);
+    method @ColorInt public static int rgb(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int);
+    method @ColorInt public static int rgb(float, float, float);
+    method @ColorInt public int toArgb();
+    method @ColorInt public static int toArgb(@ColorLong long);
+    method @NonNull public static android.graphics.Color valueOf(@ColorInt int);
+    method @NonNull public static android.graphics.Color valueOf(@ColorLong long);
+    method @NonNull public static android.graphics.Color valueOf(float, float, float);
+    method @NonNull public static android.graphics.Color valueOf(float, float, float, float);
+    method @NonNull public static android.graphics.Color valueOf(float, float, float, float, @NonNull android.graphics.ColorSpace);
+    method @NonNull public static android.graphics.Color valueOf(@NonNull @Size(min=4, max=5) float[], @NonNull android.graphics.ColorSpace);
+    field @ColorInt public static final int BLACK = -16777216; // 0xff000000
+    field @ColorInt public static final int BLUE = -16776961; // 0xff0000ff
+    field @ColorInt public static final int CYAN = -16711681; // 0xff00ffff
+    field @ColorInt public static final int DKGRAY = -12303292; // 0xff444444
+    field @ColorInt public static final int GRAY = -7829368; // 0xff888888
+    field @ColorInt public static final int GREEN = -16711936; // 0xff00ff00
+    field @ColorInt public static final int LTGRAY = -3355444; // 0xffcccccc
+    field @ColorInt public static final int MAGENTA = -65281; // 0xffff00ff
+    field @ColorInt public static final int RED = -65536; // 0xffff0000
+    field @ColorInt public static final int TRANSPARENT = 0; // 0x0
+    field @ColorInt public static final int WHITE = -1; // 0xffffffff
+    field @ColorInt public static final int YELLOW = -256; // 0xffffff00
   }
 
   public class ColorFilter {
-    ctor public deprecated ColorFilter();
+    ctor @Deprecated public ColorFilter();
   }
 
   public class ColorMatrix {
@@ -13923,34 +13912,34 @@
   }
 
   public class ColorMatrixColorFilter extends android.graphics.ColorFilter {
-    ctor public ColorMatrixColorFilter(android.graphics.ColorMatrix);
-    ctor public ColorMatrixColorFilter(float[]);
+    ctor public ColorMatrixColorFilter(@NonNull android.graphics.ColorMatrix);
+    ctor public ColorMatrixColorFilter(@NonNull float[]);
     method public void getColorMatrix(android.graphics.ColorMatrix);
   }
 
-  public abstract class ColorSpace {
-    method public static android.graphics.ColorSpace adapt(android.graphics.ColorSpace, float[]);
-    method public static android.graphics.ColorSpace adapt(android.graphics.ColorSpace, float[], android.graphics.ColorSpace.Adaptation);
-    method public static float[] cctToIlluminantdXyz(int);
-    method public static float[] chromaticAdaptation(android.graphics.ColorSpace.Adaptation, float[], float[]);
-    method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace);
-    method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent);
-    method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace);
-    method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent);
-    method public float[] fromXyz(float, float, float);
-    method public abstract float[] fromXyz(float[]);
-    method public static android.graphics.ColorSpace get(android.graphics.ColorSpace.Named);
-    method public int getComponentCount();
-    method public int getId();
-    method public abstract float getMaxValue(int);
-    method public abstract float getMinValue(int);
-    method public android.graphics.ColorSpace.Model getModel();
-    method public java.lang.String getName();
+  @AnyThread public abstract class ColorSpace {
+    method @NonNull public static android.graphics.ColorSpace adapt(@NonNull android.graphics.ColorSpace, @NonNull @Size(min=2, max=3) float[]);
+    method @NonNull public static android.graphics.ColorSpace adapt(@NonNull android.graphics.ColorSpace, @NonNull @Size(min=2, max=3) float[], @NonNull android.graphics.ColorSpace.Adaptation);
+    method @NonNull @Size(3) public static float[] cctToIlluminantdXyz(@IntRange(from=1) int);
+    method @NonNull @Size(9) public static float[] chromaticAdaptation(@NonNull android.graphics.ColorSpace.Adaptation, @NonNull @Size(min=2, max=3) float[], @NonNull @Size(min=2, max=3) float[]);
+    method @NonNull public static android.graphics.ColorSpace.Connector connect(@NonNull android.graphics.ColorSpace, @NonNull android.graphics.ColorSpace);
+    method @NonNull public static android.graphics.ColorSpace.Connector connect(@NonNull android.graphics.ColorSpace, @NonNull android.graphics.ColorSpace, @NonNull android.graphics.ColorSpace.RenderIntent);
+    method @NonNull public static android.graphics.ColorSpace.Connector connect(@NonNull android.graphics.ColorSpace);
+    method @NonNull public static android.graphics.ColorSpace.Connector connect(@NonNull android.graphics.ColorSpace, @NonNull android.graphics.ColorSpace.RenderIntent);
+    method @NonNull @Size(min=3) public float[] fromXyz(float, float, float);
+    method @NonNull @Size(min=3) public abstract float[] fromXyz(@NonNull @Size(min=3) float[]);
+    method @NonNull public static android.graphics.ColorSpace get(@NonNull android.graphics.ColorSpace.Named);
+    method @IntRange(from=1, to=4) public int getComponentCount();
+    method @IntRange(from=android.graphics.ColorSpace.MIN_ID, to=android.graphics.ColorSpace.MAX_ID) public int getId();
+    method public abstract float getMaxValue(@IntRange(from=0, to=3) int);
+    method public abstract float getMinValue(@IntRange(from=0, to=3) int);
+    method @NonNull public android.graphics.ColorSpace.Model getModel();
+    method @NonNull public String getName();
     method public boolean isSrgb();
     method public abstract boolean isWideGamut();
-    method public static android.graphics.ColorSpace match(float[], android.graphics.ColorSpace.Rgb.TransferParameters);
-    method public float[] toXyz(float, float, float);
-    method public abstract float[] toXyz(float[]);
+    method @Nullable public static android.graphics.ColorSpace match(@NonNull @Size(9) float[], @NonNull android.graphics.ColorSpace.Rgb.TransferParameters);
+    method @NonNull @Size(3) public float[] toXyz(float, float, float);
+    method @NonNull @Size(min=3) public abstract float[] toXyz(@NonNull @Size(min=3) float[]);
     field public static final float[] ILLUMINANT_A;
     field public static final float[] ILLUMINANT_B;
     field public static final float[] ILLUMINANT_C;
@@ -13964,35 +13953,29 @@
     field public static final int MIN_ID = -1; // 0xffffffff
   }
 
-  public static final class ColorSpace.Adaptation extends java.lang.Enum {
-    method public static android.graphics.ColorSpace.Adaptation valueOf(java.lang.String);
-    method public static final android.graphics.ColorSpace.Adaptation[] values();
+  public enum ColorSpace.Adaptation {
     enum_constant public static final android.graphics.ColorSpace.Adaptation BRADFORD;
     enum_constant public static final android.graphics.ColorSpace.Adaptation CIECAT02;
     enum_constant public static final android.graphics.ColorSpace.Adaptation VON_KRIES;
   }
 
-  public static class ColorSpace.Connector {
-    method public android.graphics.ColorSpace getDestination();
+  @AnyThread public static class ColorSpace.Connector {
+    method @NonNull public android.graphics.ColorSpace getDestination();
     method public android.graphics.ColorSpace.RenderIntent getRenderIntent();
-    method public android.graphics.ColorSpace getSource();
-    method public float[] transform(float, float, float);
-    method public float[] transform(float[]);
+    method @NonNull public android.graphics.ColorSpace getSource();
+    method @NonNull @Size(3) public float[] transform(float, float, float);
+    method @NonNull @Size(min=3) public float[] transform(@NonNull @Size(min=3) float[]);
   }
 
-  public static final class ColorSpace.Model extends java.lang.Enum {
-    method public int getComponentCount();
-    method public static android.graphics.ColorSpace.Model valueOf(java.lang.String);
-    method public static final android.graphics.ColorSpace.Model[] values();
+  public enum ColorSpace.Model {
+    method @IntRange(from=1, to=4) public int getComponentCount();
     enum_constant public static final android.graphics.ColorSpace.Model CMYK;
     enum_constant public static final android.graphics.ColorSpace.Model LAB;
     enum_constant public static final android.graphics.ColorSpace.Model RGB;
     enum_constant public static final android.graphics.ColorSpace.Model XYZ;
   }
 
-  public static final class ColorSpace.Named extends java.lang.Enum {
-    method public static android.graphics.ColorSpace.Named valueOf(java.lang.String);
-    method public static final android.graphics.ColorSpace.Named[] values();
+  public enum ColorSpace.Named {
     enum_constant public static final android.graphics.ColorSpace.Named ACES;
     enum_constant public static final android.graphics.ColorSpace.Named ACESCG;
     enum_constant public static final android.graphics.ColorSpace.Named ADOBE_RGB;
@@ -14011,42 +13994,40 @@
     enum_constant public static final android.graphics.ColorSpace.Named SRGB;
   }
 
-  public static final class ColorSpace.RenderIntent extends java.lang.Enum {
-    method public static android.graphics.ColorSpace.RenderIntent valueOf(java.lang.String);
-    method public static final android.graphics.ColorSpace.RenderIntent[] values();
+  public enum ColorSpace.RenderIntent {
     enum_constant public static final android.graphics.ColorSpace.RenderIntent ABSOLUTE;
     enum_constant public static final android.graphics.ColorSpace.RenderIntent PERCEPTUAL;
     enum_constant public static final android.graphics.ColorSpace.RenderIntent RELATIVE;
     enum_constant public static final android.graphics.ColorSpace.RenderIntent SATURATION;
   }
 
-  public static class ColorSpace.Rgb extends android.graphics.ColorSpace {
-    ctor public ColorSpace.Rgb(java.lang.String, float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator);
-    ctor public ColorSpace.Rgb(java.lang.String, float[], float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator, float, float);
-    ctor public ColorSpace.Rgb(java.lang.String, float[], android.graphics.ColorSpace.Rgb.TransferParameters);
-    ctor public ColorSpace.Rgb(java.lang.String, float[], float[], android.graphics.ColorSpace.Rgb.TransferParameters);
-    ctor public ColorSpace.Rgb(java.lang.String, float[], double);
-    ctor public ColorSpace.Rgb(java.lang.String, float[], float[], double);
-    method public float[] fromLinear(float, float, float);
-    method public float[] fromLinear(float[]);
-    method public float[] fromXyz(float[]);
-    method public java.util.function.DoubleUnaryOperator getEotf();
-    method public float[] getInverseTransform(float[]);
-    method public float[] getInverseTransform();
+  @AnyThread public static class ColorSpace.Rgb extends android.graphics.ColorSpace {
+    ctor public ColorSpace.Rgb(@NonNull @Size(min=1) String, @NonNull @Size(9) float[], @NonNull java.util.function.DoubleUnaryOperator, @NonNull java.util.function.DoubleUnaryOperator);
+    ctor public ColorSpace.Rgb(@NonNull @Size(min=1) String, @NonNull @Size(min=6, max=9) float[], @NonNull @Size(min=2, max=3) float[], @NonNull java.util.function.DoubleUnaryOperator, @NonNull java.util.function.DoubleUnaryOperator, float, float);
+    ctor public ColorSpace.Rgb(@NonNull @Size(min=1) String, @NonNull @Size(9) float[], @NonNull android.graphics.ColorSpace.Rgb.TransferParameters);
+    ctor public ColorSpace.Rgb(@NonNull @Size(min=1) String, @NonNull @Size(min=6, max=9) float[], @NonNull @Size(min=2, max=3) float[], @NonNull android.graphics.ColorSpace.Rgb.TransferParameters);
+    ctor public ColorSpace.Rgb(@NonNull @Size(min=1) String, @NonNull @Size(9) float[], double);
+    ctor public ColorSpace.Rgb(@NonNull @Size(min=1) String, @NonNull @Size(min=6, max=9) float[], @NonNull @Size(min=2, max=3) float[], double);
+    method @NonNull @Size(3) public float[] fromLinear(float, float, float);
+    method @NonNull @Size(min=3) public float[] fromLinear(@NonNull @Size(min=3) float[]);
+    method @NonNull @Size(min=3) public float[] fromXyz(@NonNull @Size(min=3) float[]);
+    method @NonNull public java.util.function.DoubleUnaryOperator getEotf();
+    method @NonNull @Size(min=9) public float[] getInverseTransform(@NonNull @Size(min=9) float[]);
+    method @NonNull @Size(9) public float[] getInverseTransform();
     method public float getMaxValue(int);
     method public float getMinValue(int);
-    method public java.util.function.DoubleUnaryOperator getOetf();
-    method public float[] getPrimaries(float[]);
-    method public float[] getPrimaries();
-    method public android.graphics.ColorSpace.Rgb.TransferParameters getTransferParameters();
-    method public float[] getTransform(float[]);
-    method public float[] getTransform();
-    method public float[] getWhitePoint(float[]);
-    method public float[] getWhitePoint();
+    method @NonNull public java.util.function.DoubleUnaryOperator getOetf();
+    method @NonNull @Size(min=6) public float[] getPrimaries(@NonNull @Size(min=6) float[]);
+    method @NonNull @Size(6) public float[] getPrimaries();
+    method @Nullable public android.graphics.ColorSpace.Rgb.TransferParameters getTransferParameters();
+    method @NonNull @Size(min=9) public float[] getTransform(@NonNull @Size(min=9) float[]);
+    method @NonNull @Size(9) public float[] getTransform();
+    method @NonNull @Size(min=2) public float[] getWhitePoint(@NonNull @Size(min=2) float[]);
+    method @NonNull @Size(2) public float[] getWhitePoint();
     method public boolean isWideGamut();
-    method public float[] toLinear(float, float, float);
-    method public float[] toLinear(float[]);
-    method public float[] toXyz(float[]);
+    method @NonNull @Size(3) public float[] toLinear(float, float, float);
+    method @NonNull @Size(min=3) public float[] toLinear(@NonNull @Size(min=3) float[]);
+    method @NonNull @Size(min=3) public float[] toXyz(@NonNull @Size(min=3) float[]);
   }
 
   public static class ColorSpace.Rgb.TransferParameters {
@@ -14066,8 +14047,8 @@
   }
 
   public class ComposeShader extends android.graphics.Shader {
-    ctor public ComposeShader(android.graphics.Shader, android.graphics.Shader, android.graphics.Xfermode);
-    ctor public ComposeShader(android.graphics.Shader, android.graphics.Shader, android.graphics.PorterDuff.Mode);
+    ctor public ComposeShader(@NonNull android.graphics.Shader, @NonNull android.graphics.Shader, @NonNull android.graphics.Xfermode);
+    ctor public ComposeShader(@NonNull android.graphics.Shader, @NonNull android.graphics.Shader, @NonNull android.graphics.PorterDuff.Mode);
   }
 
   public class CornerPathEffect extends android.graphics.PathEffect {
@@ -14087,39 +14068,39 @@
   }
 
   public class EmbossMaskFilter extends android.graphics.MaskFilter {
-    ctor public deprecated EmbossMaskFilter(float[], float, float, float);
+    ctor @Deprecated public EmbossMaskFilter(float[], float, float, float);
   }
 
   public final class ImageDecoder implements java.lang.AutoCloseable {
     method public void close();
-    method public static android.graphics.ImageDecoder.Source createSource(android.content.res.Resources, int);
-    method public static android.graphics.ImageDecoder.Source createSource(android.content.ContentResolver, android.net.Uri);
-    method public static android.graphics.ImageDecoder.Source createSource(android.content.res.AssetManager, java.lang.String);
-    method public static android.graphics.ImageDecoder.Source createSource(java.nio.ByteBuffer);
-    method public static android.graphics.ImageDecoder.Source createSource(java.io.File);
-    method public static android.graphics.ImageDecoder.Source createSource(java.util.concurrent.Callable<android.content.res.AssetFileDescriptor>);
-    method public static android.graphics.Bitmap decodeBitmap(android.graphics.ImageDecoder.Source, android.graphics.ImageDecoder.OnHeaderDecodedListener) throws java.io.IOException;
-    method public static android.graphics.Bitmap decodeBitmap(android.graphics.ImageDecoder.Source) throws java.io.IOException;
-    method public static android.graphics.drawable.Drawable decodeDrawable(android.graphics.ImageDecoder.Source, android.graphics.ImageDecoder.OnHeaderDecodedListener) throws java.io.IOException;
-    method public static android.graphics.drawable.Drawable decodeDrawable(android.graphics.ImageDecoder.Source) throws java.io.IOException;
+    method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull android.content.res.Resources, int);
+    method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull android.content.ContentResolver, @NonNull android.net.Uri);
+    method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull android.content.res.AssetManager, @NonNull String);
+    method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull java.nio.ByteBuffer);
+    method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull java.io.File);
+    method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(@NonNull java.util.concurrent.Callable<android.content.res.AssetFileDescriptor>);
+    method @WorkerThread @NonNull public static android.graphics.Bitmap decodeBitmap(@NonNull android.graphics.ImageDecoder.Source, @NonNull android.graphics.ImageDecoder.OnHeaderDecodedListener) throws java.io.IOException;
+    method @WorkerThread @NonNull public static android.graphics.Bitmap decodeBitmap(@NonNull android.graphics.ImageDecoder.Source) throws java.io.IOException;
+    method @WorkerThread @NonNull public static android.graphics.drawable.Drawable decodeDrawable(@NonNull android.graphics.ImageDecoder.Source, @NonNull android.graphics.ImageDecoder.OnHeaderDecodedListener) throws java.io.IOException;
+    method @WorkerThread @NonNull public static android.graphics.drawable.Drawable decodeDrawable(@NonNull android.graphics.ImageDecoder.Source) throws java.io.IOException;
     method public int getAllocator();
-    method public android.graphics.Rect getCrop();
+    method @Nullable public android.graphics.Rect getCrop();
     method public int getMemorySizePolicy();
-    method public android.graphics.ImageDecoder.OnPartialImageListener getOnPartialImageListener();
-    method public android.graphics.PostProcessor getPostProcessor();
+    method @Nullable public android.graphics.ImageDecoder.OnPartialImageListener getOnPartialImageListener();
+    method @Nullable public android.graphics.PostProcessor getPostProcessor();
     method public boolean isDecodeAsAlphaMaskEnabled();
     method public boolean isMutableRequired();
     method public boolean isUnpremultipliedRequired();
     method public void setAllocator(int);
-    method public void setCrop(android.graphics.Rect);
+    method public void setCrop(@Nullable android.graphics.Rect);
     method public void setDecodeAsAlphaMaskEnabled(boolean);
     method public void setMemorySizePolicy(int);
     method public void setMutableRequired(boolean);
-    method public void setOnPartialImageListener(android.graphics.ImageDecoder.OnPartialImageListener);
-    method public void setPostProcessor(android.graphics.PostProcessor);
+    method public void setOnPartialImageListener(@Nullable android.graphics.ImageDecoder.OnPartialImageListener);
+    method public void setPostProcessor(@Nullable android.graphics.PostProcessor);
     method public void setTargetColorSpace(android.graphics.ColorSpace);
-    method public void setTargetSampleSize(int);
-    method public void setTargetSize(int, int);
+    method public void setTargetSampleSize(@IntRange(from=1) int);
+    method public void setTargetSize(@Px @IntRange(from=1) int, @Px @IntRange(from=1) int);
     method public void setUnpremultipliedRequired(boolean);
     field public static final int ALLOCATOR_DEFAULT = 0; // 0x0
     field public static final int ALLOCATOR_HARDWARE = 3; // 0x3
@@ -14131,28 +14112,28 @@
 
   public static final class ImageDecoder.DecodeException extends java.io.IOException {
     method public int getError();
-    method public android.graphics.ImageDecoder.Source getSource();
+    method @NonNull public android.graphics.ImageDecoder.Source getSource();
     field public static final int SOURCE_EXCEPTION = 1; // 0x1
     field public static final int SOURCE_INCOMPLETE = 2; // 0x2
     field public static final int SOURCE_MALFORMED_DATA = 3; // 0x3
   }
 
   public static class ImageDecoder.ImageInfo {
-    method public android.graphics.ColorSpace getColorSpace();
-    method public java.lang.String getMimeType();
-    method public android.util.Size getSize();
+    method @Nullable public android.graphics.ColorSpace getColorSpace();
+    method @NonNull public String getMimeType();
+    method @NonNull public android.util.Size getSize();
     method public boolean isAnimated();
   }
 
-  public static abstract interface ImageDecoder.OnHeaderDecodedListener {
-    method public abstract void onHeaderDecoded(android.graphics.ImageDecoder, android.graphics.ImageDecoder.ImageInfo, android.graphics.ImageDecoder.Source);
+  public static interface ImageDecoder.OnHeaderDecodedListener {
+    method public void onHeaderDecoded(@NonNull android.graphics.ImageDecoder, @NonNull android.graphics.ImageDecoder.ImageInfo, @NonNull android.graphics.ImageDecoder.Source);
   }
 
-  public static abstract interface ImageDecoder.OnPartialImageListener {
-    method public abstract boolean onPartialImage(android.graphics.ImageDecoder.DecodeException);
+  public static interface ImageDecoder.OnPartialImageListener {
+    method public boolean onPartialImage(@NonNull android.graphics.ImageDecoder.DecodeException);
   }
 
-  public static abstract class ImageDecoder.Source {
+  public abstract static class ImageDecoder.Source {
   }
 
   public class ImageFormat {
@@ -14181,12 +14162,12 @@
   }
 
   public final class Insets {
-    method public static android.graphics.Insets add(android.graphics.Insets, android.graphics.Insets);
-    method public static android.graphics.Insets max(android.graphics.Insets, android.graphics.Insets);
-    method public static android.graphics.Insets min(android.graphics.Insets, android.graphics.Insets);
-    method public static android.graphics.Insets of(int, int, int, int);
-    method public static android.graphics.Insets of(android.graphics.Rect);
-    method public static android.graphics.Insets subtract(android.graphics.Insets, android.graphics.Insets);
+    method @NonNull public static android.graphics.Insets add(@NonNull android.graphics.Insets, @NonNull android.graphics.Insets);
+    method @NonNull public static android.graphics.Insets max(@NonNull android.graphics.Insets, @NonNull android.graphics.Insets);
+    method @NonNull public static android.graphics.Insets min(@NonNull android.graphics.Insets, @NonNull android.graphics.Insets);
+    method @NonNull public static android.graphics.Insets of(int, int, int, int);
+    method @NonNull public static android.graphics.Insets of(@Nullable android.graphics.Rect);
+    method @NonNull public static android.graphics.Insets subtract(@NonNull android.graphics.Insets, @NonNull android.graphics.Insets);
     field public static final android.graphics.Insets NONE;
     field public final int bottom;
     field public final int left;
@@ -14208,23 +14189,21 @@
     method public android.graphics.Interpolator.Result timeToValues(int, float[]);
   }
 
-  public static final class Interpolator.Result extends java.lang.Enum {
-    method public static android.graphics.Interpolator.Result valueOf(java.lang.String);
-    method public static final android.graphics.Interpolator.Result[] values();
+  public enum Interpolator.Result {
     enum_constant public static final android.graphics.Interpolator.Result FREEZE_END;
     enum_constant public static final android.graphics.Interpolator.Result FREEZE_START;
     enum_constant public static final android.graphics.Interpolator.Result NORMAL;
   }
 
   public class LightingColorFilter extends android.graphics.ColorFilter {
-    ctor public LightingColorFilter(int, int);
-    method public int getColorAdd();
-    method public int getColorMultiply();
+    ctor public LightingColorFilter(@ColorInt int, @ColorInt int);
+    method @ColorInt public int getColorAdd();
+    method @ColorInt public int getColorMultiply();
   }
 
   public class LinearGradient extends android.graphics.Shader {
-    ctor public LinearGradient(float, float, float, float, int[], float[], android.graphics.Shader.TileMode);
-    ctor public LinearGradient(float, float, float, float, int, int, android.graphics.Shader.TileMode);
+    ctor public LinearGradient(float, float, float, float, @NonNull @ColorInt int[], @Nullable float[], @NonNull android.graphics.Shader.TileMode);
+    ctor public LinearGradient(float, float, float, float, @ColorInt int, @ColorInt int, @NonNull android.graphics.Shader.TileMode);
   }
 
   public class MaskFilter {
@@ -14279,7 +14258,7 @@
     method public void setSkew(float, float);
     method public void setTranslate(float, float);
     method public void setValues(float[]);
-    method public java.lang.String toShortString();
+    method public String toShortString();
     field public static final int MPERSP_0 = 6; // 0x6
     field public static final int MPERSP_1 = 7; // 0x7
     field public static final int MPERSP_2 = 8; // 0x8
@@ -14291,38 +14270,36 @@
     field public static final int MTRANS_Y = 5; // 0x5
   }
 
-  public static final class Matrix.ScaleToFit extends java.lang.Enum {
-    method public static android.graphics.Matrix.ScaleToFit valueOf(java.lang.String);
-    method public static final android.graphics.Matrix.ScaleToFit[] values();
+  public enum Matrix.ScaleToFit {
     enum_constant public static final android.graphics.Matrix.ScaleToFit CENTER;
     enum_constant public static final android.graphics.Matrix.ScaleToFit END;
     enum_constant public static final android.graphics.Matrix.ScaleToFit FILL;
     enum_constant public static final android.graphics.Matrix.ScaleToFit START;
   }
 
-  public deprecated class Movie {
-    method public static android.graphics.Movie decodeByteArray(byte[], int, int);
-    method public static android.graphics.Movie decodeFile(java.lang.String);
-    method public static android.graphics.Movie decodeStream(java.io.InputStream);
-    method public void draw(android.graphics.Canvas, float, float, android.graphics.Paint);
-    method public void draw(android.graphics.Canvas, float, float);
-    method public int duration();
-    method public int height();
-    method public boolean isOpaque();
-    method public boolean setTime(int);
-    method public int width();
+  @Deprecated public class Movie {
+    method @Deprecated public static android.graphics.Movie decodeByteArray(byte[], int, int);
+    method @Deprecated public static android.graphics.Movie decodeFile(String);
+    method @Deprecated public static android.graphics.Movie decodeStream(java.io.InputStream);
+    method @Deprecated public void draw(android.graphics.Canvas, float, float, android.graphics.Paint);
+    method @Deprecated public void draw(android.graphics.Canvas, float, float);
+    method @Deprecated public int duration();
+    method @Deprecated public int height();
+    method @Deprecated public boolean isOpaque();
+    method @Deprecated public boolean setTime(int);
+    method @Deprecated public int width();
   }
 
   public class NinePatch {
     ctor public NinePatch(android.graphics.Bitmap, byte[]);
-    ctor public NinePatch(android.graphics.Bitmap, byte[], java.lang.String);
+    ctor public NinePatch(android.graphics.Bitmap, byte[], String);
     method public void draw(android.graphics.Canvas, android.graphics.RectF);
     method public void draw(android.graphics.Canvas, android.graphics.Rect);
     method public void draw(android.graphics.Canvas, android.graphics.Rect, android.graphics.Paint);
     method public android.graphics.Bitmap getBitmap();
     method public int getDensity();
     method public int getHeight();
-    method public java.lang.String getName();
+    method public String getName();
     method public android.graphics.Paint getPaint();
     method public final android.graphics.Region getTransparentRegion(android.graphics.Rect);
     method public int getWidth();
@@ -14333,23 +14310,23 @@
 
   public final class Outline {
     ctor public Outline();
-    ctor public Outline(android.graphics.Outline);
+    ctor public Outline(@NonNull android.graphics.Outline);
     method public boolean canClip();
     method public float getAlpha();
     method public float getRadius();
-    method public boolean getRect(android.graphics.Rect);
+    method public boolean getRect(@NonNull android.graphics.Rect);
     method public boolean isEmpty();
     method public void offset(int, int);
-    method public void set(android.graphics.Outline);
-    method public void setAlpha(float);
-    method public void setConvexPath(android.graphics.Path);
+    method public void set(@NonNull android.graphics.Outline);
+    method public void setAlpha(@FloatRange(from=0.0, to=1.0) float);
+    method public void setConvexPath(@NonNull android.graphics.Path);
     method public void setEmpty();
     method public void setOval(int, int, int, int);
-    method public void setOval(android.graphics.Rect);
+    method public void setOval(@NonNull android.graphics.Rect);
     method public void setRect(int, int, int, int);
-    method public void setRect(android.graphics.Rect);
+    method public void setRect(@NonNull android.graphics.Rect);
     method public void setRoundRect(int, int, int, int, float);
-    method public void setRoundRect(android.graphics.Rect, float);
+    method public void setRoundRect(@NonNull android.graphics.Rect, float);
   }
 
   public class Paint {
@@ -14358,69 +14335,69 @@
     ctor public Paint(android.graphics.Paint);
     method public float ascent();
     method public int breakText(char[], int, int, float, float[]);
-    method public int breakText(java.lang.CharSequence, int, int, boolean, float, float[]);
-    method public int breakText(java.lang.String, boolean, float, float[]);
+    method public int breakText(CharSequence, int, int, boolean, float, float[]);
+    method public int breakText(String, boolean, float, float[]);
     method public void clearShadowLayer();
     method public float descent();
-    method public boolean equalsForTextMeasurement(android.graphics.Paint);
+    method public boolean equalsForTextMeasurement(@NonNull android.graphics.Paint);
     method public int getAlpha();
-    method public android.graphics.BlendMode getBlendMode();
-    method public int getColor();
+    method @Nullable public android.graphics.BlendMode getBlendMode();
+    method @ColorInt public int getColor();
     method public android.graphics.ColorFilter getColorFilter();
     method public boolean getFillPath(android.graphics.Path, android.graphics.Path);
     method public int getFlags();
-    method public java.lang.String getFontFeatureSettings();
+    method public String getFontFeatureSettings();
     method public float getFontMetrics(android.graphics.Paint.FontMetrics);
     method public android.graphics.Paint.FontMetrics getFontMetrics();
     method public int getFontMetricsInt(android.graphics.Paint.FontMetricsInt);
     method public android.graphics.Paint.FontMetricsInt getFontMetricsInt();
     method public float getFontSpacing();
-    method public java.lang.String getFontVariationSettings();
+    method public String getFontVariationSettings();
     method public int getHinting();
     method public int getHyphenEdit();
     method public float getLetterSpacing();
     method public android.graphics.MaskFilter getMaskFilter();
     method public int getOffsetForAdvance(char[], int, int, int, int, boolean, float);
-    method public int getOffsetForAdvance(java.lang.CharSequence, int, int, int, int, boolean, float);
+    method public int getOffsetForAdvance(CharSequence, int, int, int, int, boolean, float);
     method public android.graphics.PathEffect getPathEffect();
     method public float getRunAdvance(char[], int, int, int, int, boolean, int);
-    method public float getRunAdvance(java.lang.CharSequence, int, int, int, int, boolean, int);
+    method public float getRunAdvance(CharSequence, int, int, int, int, boolean, int);
     method public android.graphics.Shader getShader();
-    method public int getShadowLayerColor();
+    method @ColorInt public int getShadowLayerColor();
     method public float getShadowLayerDx();
     method public float getShadowLayerDy();
     method public float getShadowLayerRadius();
-    method public float getStrikeThruPosition();
-    method public float getStrikeThruThickness();
+    method @Px public float getStrikeThruPosition();
+    method @Px public float getStrikeThruThickness();
     method public android.graphics.Paint.Cap getStrokeCap();
     method public android.graphics.Paint.Join getStrokeJoin();
     method public float getStrokeMiter();
     method public float getStrokeWidth();
     method public android.graphics.Paint.Style getStyle();
     method public android.graphics.Paint.Align getTextAlign();
-    method public void getTextBounds(java.lang.String, int, int, android.graphics.Rect);
-    method public void getTextBounds(java.lang.CharSequence, int, int, android.graphics.Rect);
+    method public void getTextBounds(String, int, int, android.graphics.Rect);
+    method public void getTextBounds(CharSequence, int, int, android.graphics.Rect);
     method public void getTextBounds(char[], int, int, android.graphics.Rect);
-    method public java.util.Locale getTextLocale();
-    method public android.os.LocaleList getTextLocales();
+    method @NonNull public java.util.Locale getTextLocale();
+    method @NonNull @Size(min=1) public android.os.LocaleList getTextLocales();
     method public void getTextPath(char[], int, int, float, float, android.graphics.Path);
-    method public void getTextPath(java.lang.String, int, int, float, float, android.graphics.Path);
-    method public float getTextRunAdvances(char[], int, int, int, int, boolean, float[], int);
-    method public int getTextRunCursor(char[], int, int, boolean, int, int);
-    method public int getTextRunCursor(java.lang.CharSequence, int, int, boolean, int, int);
+    method public void getTextPath(String, int, int, float, float, android.graphics.Path);
+    method public float getTextRunAdvances(@NonNull char[], @IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int, boolean, @Nullable float[], @IntRange(from=0) int);
+    method public int getTextRunCursor(@NonNull char[], @IntRange(from=0) int, @IntRange(from=0) int, boolean, @IntRange(from=0) int, int);
+    method public int getTextRunCursor(@NonNull CharSequence, @IntRange(from=0) int, @IntRange(from=0) int, boolean, @IntRange(from=0) int, int);
     method public float getTextScaleX();
     method public float getTextSize();
     method public float getTextSkewX();
     method public int getTextWidths(char[], int, int, float[]);
-    method public int getTextWidths(java.lang.CharSequence, int, int, float[]);
-    method public int getTextWidths(java.lang.String, int, int, float[]);
-    method public int getTextWidths(java.lang.String, float[]);
+    method public int getTextWidths(CharSequence, int, int, float[]);
+    method public int getTextWidths(String, int, int, float[]);
+    method public int getTextWidths(String, float[]);
     method public android.graphics.Typeface getTypeface();
-    method public float getUnderlinePosition();
-    method public float getUnderlineThickness();
+    method @Px public float getUnderlinePosition();
+    method @Px public float getUnderlineThickness();
     method public float getWordSpacing();
-    method public deprecated android.graphics.Xfermode getXfermode();
-    method public boolean hasGlyph(java.lang.String);
+    method @Deprecated public android.graphics.Xfermode getXfermode();
+    method public boolean hasGlyph(String);
     method public final boolean isAntiAlias();
     method public final boolean isDither();
     method public boolean isElegantTextHeight();
@@ -14431,24 +14408,24 @@
     method public final boolean isSubpixelText();
     method public final boolean isUnderlineText();
     method public float measureText(char[], int, int);
-    method public float measureText(java.lang.String, int, int);
-    method public float measureText(java.lang.String);
-    method public float measureText(java.lang.CharSequence, int, int);
+    method public float measureText(String, int, int);
+    method public float measureText(String);
+    method public float measureText(CharSequence, int, int);
     method public void reset();
     method public void set(android.graphics.Paint);
     method public void setARGB(int, int, int, int);
     method public void setAlpha(int);
     method public void setAntiAlias(boolean);
-    method public void setBlendMode(android.graphics.BlendMode);
-    method public void setColor(int);
+    method public void setBlendMode(@Nullable android.graphics.BlendMode);
+    method public void setColor(@ColorInt int);
     method public android.graphics.ColorFilter setColorFilter(android.graphics.ColorFilter);
     method public void setDither(boolean);
     method public void setElegantTextHeight(boolean);
     method public void setFakeBoldText(boolean);
     method public void setFilterBitmap(boolean);
     method public void setFlags(int);
-    method public void setFontFeatureSettings(java.lang.String);
-    method public boolean setFontVariationSettings(java.lang.String);
+    method public void setFontFeatureSettings(String);
+    method public boolean setFontVariationSettings(String);
     method public void setHinting(int);
     method public void setHyphenEdit(int);
     method public void setLetterSpacing(float);
@@ -14456,7 +14433,7 @@
     method public android.graphics.MaskFilter setMaskFilter(android.graphics.MaskFilter);
     method public android.graphics.PathEffect setPathEffect(android.graphics.PathEffect);
     method public android.graphics.Shader setShader(android.graphics.Shader);
-    method public void setShadowLayer(float, float, float, int);
+    method public void setShadowLayer(float, float, float, @ColorInt int);
     method public void setStrikeThruText(boolean);
     method public void setStrokeCap(android.graphics.Paint.Cap);
     method public void setStrokeJoin(android.graphics.Paint.Join);
@@ -14465,15 +14442,15 @@
     method public void setStyle(android.graphics.Paint.Style);
     method public void setSubpixelText(boolean);
     method public void setTextAlign(android.graphics.Paint.Align);
-    method public void setTextLocale(java.util.Locale);
-    method public void setTextLocales(android.os.LocaleList);
+    method public void setTextLocale(@NonNull java.util.Locale);
+    method public void setTextLocales(@NonNull @Size(min=1) android.os.LocaleList);
     method public void setTextScaleX(float);
     method public void setTextSize(float);
     method public void setTextSkewX(float);
     method public android.graphics.Typeface setTypeface(android.graphics.Typeface);
     method public void setUnderlineText(boolean);
     method public void setWordSpacing(float);
-    method public deprecated android.graphics.Xfermode setXfermode(android.graphics.Xfermode);
+    method @Deprecated public android.graphics.Xfermode setXfermode(android.graphics.Xfermode);
     field public static final int ANTI_ALIAS_FLAG = 1; // 0x1
     field public static final int CURSOR_AFTER = 0; // 0x0
     field public static final int CURSOR_AT = 4; // 0x4
@@ -14493,17 +14470,13 @@
     field public static final int UNDERLINE_TEXT_FLAG = 8; // 0x8
   }
 
-  public static final class Paint.Align extends java.lang.Enum {
-    method public static android.graphics.Paint.Align valueOf(java.lang.String);
-    method public static final android.graphics.Paint.Align[] values();
+  public enum Paint.Align {
     enum_constant public static final android.graphics.Paint.Align CENTER;
     enum_constant public static final android.graphics.Paint.Align LEFT;
     enum_constant public static final android.graphics.Paint.Align RIGHT;
   }
 
-  public static final class Paint.Cap extends java.lang.Enum {
-    method public static android.graphics.Paint.Cap valueOf(java.lang.String);
-    method public static final android.graphics.Paint.Cap[] values();
+  public enum Paint.Cap {
     enum_constant public static final android.graphics.Paint.Cap BUTT;
     enum_constant public static final android.graphics.Paint.Cap ROUND;
     enum_constant public static final android.graphics.Paint.Cap SQUARE;
@@ -14527,17 +14500,13 @@
     field public int top;
   }
 
-  public static final class Paint.Join extends java.lang.Enum {
-    method public static android.graphics.Paint.Join valueOf(java.lang.String);
-    method public static final android.graphics.Paint.Join[] values();
+  public enum Paint.Join {
     enum_constant public static final android.graphics.Paint.Join BEVEL;
     enum_constant public static final android.graphics.Paint.Join MITER;
     enum_constant public static final android.graphics.Paint.Join ROUND;
   }
 
-  public static final class Paint.Style extends java.lang.Enum {
-    method public static android.graphics.Paint.Style valueOf(java.lang.String);
-    method public static final android.graphics.Paint.Style[] values();
+  public enum Paint.Style {
     enum_constant public static final android.graphics.Paint.Style FILL;
     enum_constant public static final android.graphics.Paint.Style FILL_AND_STROKE;
     enum_constant public static final android.graphics.Paint.Style STROKE;
@@ -14549,40 +14518,40 @@
 
   public class Path {
     ctor public Path();
-    ctor public Path(android.graphics.Path);
-    method public void addArc(android.graphics.RectF, float, float);
+    ctor public Path(@Nullable android.graphics.Path);
+    method public void addArc(@NonNull android.graphics.RectF, float, float);
     method public void addArc(float, float, float, float, float, float);
-    method public void addCircle(float, float, float, android.graphics.Path.Direction);
-    method public void addOval(android.graphics.RectF, android.graphics.Path.Direction);
-    method public void addOval(float, float, float, float, android.graphics.Path.Direction);
-    method public void addPath(android.graphics.Path, float, float);
-    method public void addPath(android.graphics.Path);
-    method public void addPath(android.graphics.Path, android.graphics.Matrix);
-    method public void addRect(android.graphics.RectF, android.graphics.Path.Direction);
-    method public void addRect(float, float, float, float, android.graphics.Path.Direction);
-    method public void addRoundRect(android.graphics.RectF, float, float, android.graphics.Path.Direction);
-    method public void addRoundRect(float, float, float, float, float, float, android.graphics.Path.Direction);
-    method public void addRoundRect(android.graphics.RectF, float[], android.graphics.Path.Direction);
-    method public void addRoundRect(float, float, float, float, float[], android.graphics.Path.Direction);
-    method public float[] approximate(float);
-    method public void arcTo(android.graphics.RectF, float, float, boolean);
-    method public void arcTo(android.graphics.RectF, float, float);
+    method public void addCircle(float, float, float, @NonNull android.graphics.Path.Direction);
+    method public void addOval(@NonNull android.graphics.RectF, @NonNull android.graphics.Path.Direction);
+    method public void addOval(float, float, float, float, @NonNull android.graphics.Path.Direction);
+    method public void addPath(@NonNull android.graphics.Path, float, float);
+    method public void addPath(@NonNull android.graphics.Path);
+    method public void addPath(@NonNull android.graphics.Path, @NonNull android.graphics.Matrix);
+    method public void addRect(@NonNull android.graphics.RectF, @NonNull android.graphics.Path.Direction);
+    method public void addRect(float, float, float, float, @NonNull android.graphics.Path.Direction);
+    method public void addRoundRect(@NonNull android.graphics.RectF, float, float, @NonNull android.graphics.Path.Direction);
+    method public void addRoundRect(float, float, float, float, float, float, @NonNull android.graphics.Path.Direction);
+    method public void addRoundRect(@NonNull android.graphics.RectF, @NonNull float[], @NonNull android.graphics.Path.Direction);
+    method public void addRoundRect(float, float, float, float, @NonNull float[], @NonNull android.graphics.Path.Direction);
+    method @NonNull @Size(min=6, multiple=3) public float[] approximate(@FloatRange(from=0) float);
+    method public void arcTo(@NonNull android.graphics.RectF, float, float, boolean);
+    method public void arcTo(@NonNull android.graphics.RectF, float, float);
     method public void arcTo(float, float, float, float, float, float, boolean);
     method public void close();
-    method public void computeBounds(android.graphics.RectF, boolean);
+    method public void computeBounds(@NonNull android.graphics.RectF, boolean);
     method public void cubicTo(float, float, float, float, float, float);
-    method public android.graphics.Path.FillType getFillType();
+    method @NonNull public android.graphics.Path.FillType getFillType();
     method public void incReserve(int);
     method public boolean isConvex();
     method public boolean isEmpty();
     method public boolean isInverseFillType();
-    method public boolean isRect(android.graphics.RectF);
+    method public boolean isRect(@Nullable android.graphics.RectF);
     method public void lineTo(float, float);
     method public void moveTo(float, float);
-    method public void offset(float, float, android.graphics.Path);
+    method public void offset(float, float, @Nullable android.graphics.Path);
     method public void offset(float, float);
-    method public boolean op(android.graphics.Path, android.graphics.Path.Op);
-    method public boolean op(android.graphics.Path, android.graphics.Path, android.graphics.Path.Op);
+    method public boolean op(@NonNull android.graphics.Path, @NonNull android.graphics.Path.Op);
+    method public boolean op(@NonNull android.graphics.Path, @NonNull android.graphics.Path, @NonNull android.graphics.Path.Op);
     method public void quadTo(float, float, float, float);
     method public void rCubicTo(float, float, float, float, float, float);
     method public void rLineTo(float, float);
@@ -14590,33 +14559,27 @@
     method public void rQuadTo(float, float, float, float);
     method public void reset();
     method public void rewind();
-    method public void set(android.graphics.Path);
-    method public void setFillType(android.graphics.Path.FillType);
+    method public void set(@NonNull android.graphics.Path);
+    method public void setFillType(@NonNull android.graphics.Path.FillType);
     method public void setLastPoint(float, float);
     method public void toggleInverseFillType();
-    method public void transform(android.graphics.Matrix, android.graphics.Path);
-    method public void transform(android.graphics.Matrix);
+    method public void transform(@NonNull android.graphics.Matrix, @Nullable android.graphics.Path);
+    method public void transform(@NonNull android.graphics.Matrix);
   }
 
-  public static final class Path.Direction extends java.lang.Enum {
-    method public static android.graphics.Path.Direction valueOf(java.lang.String);
-    method public static final android.graphics.Path.Direction[] values();
+  public enum Path.Direction {
     enum_constant public static final android.graphics.Path.Direction CCW;
     enum_constant public static final android.graphics.Path.Direction CW;
   }
 
-  public static final class Path.FillType extends java.lang.Enum {
-    method public static android.graphics.Path.FillType valueOf(java.lang.String);
-    method public static final android.graphics.Path.FillType[] values();
+  public enum Path.FillType {
     enum_constant public static final android.graphics.Path.FillType EVEN_ODD;
     enum_constant public static final android.graphics.Path.FillType INVERSE_EVEN_ODD;
     enum_constant public static final android.graphics.Path.FillType INVERSE_WINDING;
     enum_constant public static final android.graphics.Path.FillType WINDING;
   }
 
-  public static final class Path.Op extends java.lang.Enum {
-    method public static android.graphics.Path.Op valueOf(java.lang.String);
-    method public static final android.graphics.Path.Op[] values();
+  public enum Path.Op {
     enum_constant public static final android.graphics.Path.Op DIFFERENCE;
     enum_constant public static final android.graphics.Path.Op INTERSECT;
     enum_constant public static final android.graphics.Path.Op REVERSE_DIFFERENCE;
@@ -14628,9 +14591,7 @@
     ctor public PathDashPathEffect(android.graphics.Path, float, float, android.graphics.PathDashPathEffect.Style);
   }
 
-  public static final class PathDashPathEffect.Style extends java.lang.Enum {
-    method public static android.graphics.PathDashPathEffect.Style valueOf(java.lang.String);
-    method public static final android.graphics.PathDashPathEffect.Style[] values();
+  public enum PathDashPathEffect.Style {
     enum_constant public static final android.graphics.PathDashPathEffect.Style MORPH;
     enum_constant public static final android.graphics.PathDashPathEffect.Style ROTATE;
     enum_constant public static final android.graphics.PathDashPathEffect.Style TRANSLATE;
@@ -14669,26 +14630,26 @@
     ctor public PixelFormat();
     method public static boolean formatHasAlpha(int);
     method public static void getPixelFormatInfo(int, android.graphics.PixelFormat);
-    field public static final deprecated int A_8 = 8; // 0x8
-    field public static final deprecated int JPEG = 256; // 0x100
-    field public static final deprecated int LA_88 = 10; // 0xa
-    field public static final deprecated int L_8 = 9; // 0x9
+    field @Deprecated public static final int A_8 = 8; // 0x8
+    field @Deprecated public static final int JPEG = 256; // 0x100
+    field @Deprecated public static final int LA_88 = 10; // 0xa
+    field @Deprecated public static final int L_8 = 9; // 0x9
     field public static final int OPAQUE = -1; // 0xffffffff
     field public static final int RGBA_1010102 = 43; // 0x2b
-    field public static final deprecated int RGBA_4444 = 7; // 0x7
-    field public static final deprecated int RGBA_5551 = 6; // 0x6
+    field @Deprecated public static final int RGBA_4444 = 7; // 0x7
+    field @Deprecated public static final int RGBA_5551 = 6; // 0x6
     field public static final int RGBA_8888 = 1; // 0x1
     field public static final int RGBA_F16 = 22; // 0x16
     field public static final int RGBX_8888 = 2; // 0x2
-    field public static final deprecated int RGB_332 = 11; // 0xb
+    field @Deprecated public static final int RGB_332 = 11; // 0xb
     field public static final int RGB_565 = 4; // 0x4
     field public static final int RGB_888 = 3; // 0x3
     field public static final int TRANSLUCENT = -3; // 0xfffffffd
     field public static final int TRANSPARENT = -2; // 0xfffffffe
     field public static final int UNKNOWN = 0; // 0x0
-    field public static final deprecated int YCbCr_420_SP = 17; // 0x11
-    field public static final deprecated int YCbCr_422_I = 20; // 0x14
-    field public static final deprecated int YCbCr_422_SP = 16; // 0x10
+    field @Deprecated public static final int YCbCr_420_SP = 17; // 0x11
+    field @Deprecated public static final int YCbCr_422_I = 20; // 0x14
+    field @Deprecated public static final int YCbCr_422_SP = 16; // 0x10
     field public int bitsPerPixel;
     field public int bytesPerPixel;
   }
@@ -14696,12 +14657,12 @@
   public class Point implements android.os.Parcelable {
     ctor public Point();
     ctor public Point(int, int);
-    ctor public Point(android.graphics.Point);
+    ctor public Point(@NonNull android.graphics.Point);
     method public int describeContents();
     method public final boolean equals(int, int);
     method public final void negate();
     method public final void offset(int, int);
-    method public void readFromParcel(android.os.Parcel);
+    method public void readFromParcel(@NonNull android.os.Parcel);
     method public void set(int, int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.graphics.Point> CREATOR;
@@ -14712,16 +14673,16 @@
   public class PointF implements android.os.Parcelable {
     ctor public PointF();
     ctor public PointF(float, float);
-    ctor public PointF(android.graphics.Point);
+    ctor public PointF(@NonNull android.graphics.Point);
     method public int describeContents();
     method public final boolean equals(float, float);
     method public final float length();
     method public static float length(float, float);
     method public final void negate();
     method public final void offset(float, float);
-    method public void readFromParcel(android.os.Parcel);
+    method public void readFromParcel(@NonNull android.os.Parcel);
     method public final void set(float, float);
-    method public final void set(android.graphics.PointF);
+    method public final void set(@NonNull android.graphics.PointF);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.graphics.PointF> CREATOR;
     field public float x;
@@ -14732,9 +14693,7 @@
     ctor public PorterDuff();
   }
 
-  public static final class PorterDuff.Mode extends java.lang.Enum {
-    method public static android.graphics.PorterDuff.Mode valueOf(java.lang.String);
-    method public static final android.graphics.PorterDuff.Mode[] values();
+  public enum PorterDuff.Mode {
     enum_constant public static final android.graphics.PorterDuff.Mode ADD;
     enum_constant public static final android.graphics.PorterDuff.Mode CLEAR;
     enum_constant public static final android.graphics.PorterDuff.Mode DARKEN;
@@ -14755,58 +14714,60 @@
     enum_constant public static final android.graphics.PorterDuff.Mode XOR;
   }
 
-  public deprecated class PorterDuffColorFilter extends android.graphics.ColorFilter {
-    ctor public PorterDuffColorFilter(int, android.graphics.PorterDuff.Mode);
+  @Deprecated public class PorterDuffColorFilter extends android.graphics.ColorFilter {
+    ctor @Deprecated public PorterDuffColorFilter(@ColorInt int, @NonNull android.graphics.PorterDuff.Mode);
   }
 
   public class PorterDuffXfermode extends android.graphics.Xfermode {
     ctor public PorterDuffXfermode(android.graphics.PorterDuff.Mode);
   }
 
-  public abstract interface PostProcessor {
-    method public abstract int onPostProcess(android.graphics.Canvas);
+  public interface PostProcessor {
+    method public int onPostProcess(@NonNull android.graphics.Canvas);
   }
 
   public class RadialGradient extends android.graphics.Shader {
-    ctor public RadialGradient(float, float, float, int[], float[], android.graphics.Shader.TileMode);
-    ctor public RadialGradient(float, float, float, int, int, android.graphics.Shader.TileMode);
+    ctor public RadialGradient(float, float, float, @NonNull @ColorInt int[], @Nullable float[], @NonNull android.graphics.Shader.TileMode);
+    ctor public RadialGradient(float, float, float, @ColorInt int, @ColorInt int, @NonNull android.graphics.Shader.TileMode);
   }
 
   public final class RecordingCanvas extends android.graphics.Canvas {
+    method public final void drawPatch(@NonNull android.graphics.NinePatch, @NonNull android.graphics.Rect, @Nullable android.graphics.Paint);
+    method public final void drawPatch(@NonNull android.graphics.NinePatch, @NonNull android.graphics.RectF, @Nullable android.graphics.Paint);
   }
 
   public final class Rect implements android.os.Parcelable {
     ctor public Rect();
     ctor public Rect(int, int, int, int);
-    ctor public Rect(android.graphics.Rect);
+    ctor public Rect(@Nullable android.graphics.Rect);
     method public int centerX();
     method public int centerY();
     method public boolean contains(int, int);
     method public boolean contains(int, int, int, int);
-    method public boolean contains(android.graphics.Rect);
+    method public boolean contains(@NonNull android.graphics.Rect);
     method public int describeContents();
     method public float exactCenterX();
     method public float exactCenterY();
-    method public java.lang.String flattenToString();
+    method @NonNull public String flattenToString();
     method public int height();
     method public void inset(int, int);
-    method public boolean intersect(int, int, int, int);
-    method public boolean intersect(android.graphics.Rect);
+    method @CheckResult public boolean intersect(int, int, int, int);
+    method @CheckResult public boolean intersect(@NonNull android.graphics.Rect);
     method public boolean intersects(int, int, int, int);
-    method public static boolean intersects(android.graphics.Rect, android.graphics.Rect);
+    method public static boolean intersects(@NonNull android.graphics.Rect, @NonNull android.graphics.Rect);
     method public boolean isEmpty();
     method public void offset(int, int);
     method public void offsetTo(int, int);
-    method public void readFromParcel(android.os.Parcel);
+    method public void readFromParcel(@NonNull android.os.Parcel);
     method public void set(int, int, int, int);
-    method public void set(android.graphics.Rect);
+    method public void set(@NonNull android.graphics.Rect);
     method public void setEmpty();
-    method public boolean setIntersect(android.graphics.Rect, android.graphics.Rect);
+    method @CheckResult public boolean setIntersect(@NonNull android.graphics.Rect, @NonNull android.graphics.Rect);
     method public void sort();
-    method public java.lang.String toShortString();
-    method public static android.graphics.Rect unflattenFromString(java.lang.String);
+    method @NonNull public String toShortString();
+    method @Nullable public static android.graphics.Rect unflattenFromString(@Nullable String);
     method public void union(int, int, int, int);
-    method public void union(android.graphics.Rect);
+    method public void union(@NonNull android.graphics.Rect);
     method public void union(int, int);
     method public int width();
     method public void writeToParcel(android.os.Parcel, int);
@@ -14820,35 +14781,35 @@
   public class RectF implements android.os.Parcelable {
     ctor public RectF();
     ctor public RectF(float, float, float, float);
-    ctor public RectF(android.graphics.RectF);
-    ctor public RectF(android.graphics.Rect);
+    ctor public RectF(@Nullable android.graphics.RectF);
+    ctor public RectF(@Nullable android.graphics.Rect);
     method public final float centerX();
     method public final float centerY();
     method public boolean contains(float, float);
     method public boolean contains(float, float, float, float);
-    method public boolean contains(android.graphics.RectF);
+    method public boolean contains(@NonNull android.graphics.RectF);
     method public int describeContents();
     method public final float height();
     method public void inset(float, float);
     method public boolean intersect(float, float, float, float);
-    method public boolean intersect(android.graphics.RectF);
+    method public boolean intersect(@NonNull android.graphics.RectF);
     method public boolean intersects(float, float, float, float);
-    method public static boolean intersects(android.graphics.RectF, android.graphics.RectF);
+    method public static boolean intersects(@NonNull android.graphics.RectF, @NonNull android.graphics.RectF);
     method public final boolean isEmpty();
     method public void offset(float, float);
     method public void offsetTo(float, float);
-    method public void readFromParcel(android.os.Parcel);
-    method public void round(android.graphics.Rect);
-    method public void roundOut(android.graphics.Rect);
+    method public void readFromParcel(@NonNull android.os.Parcel);
+    method public void round(@NonNull android.graphics.Rect);
+    method public void roundOut(@NonNull android.graphics.Rect);
     method public void set(float, float, float, float);
-    method public void set(android.graphics.RectF);
-    method public void set(android.graphics.Rect);
+    method public void set(@NonNull android.graphics.RectF);
+    method public void set(@NonNull android.graphics.Rect);
     method public void setEmpty();
-    method public boolean setIntersect(android.graphics.RectF, android.graphics.RectF);
+    method public boolean setIntersect(@NonNull android.graphics.RectF, @NonNull android.graphics.RectF);
     method public void sort();
-    method public java.lang.String toShortString();
+    method @NonNull public String toShortString();
     method public void union(float, float, float, float);
-    method public void union(android.graphics.RectF);
+    method public void union(@NonNull android.graphics.RectF);
     method public void union(float, float);
     method public final float width();
     method public void writeToParcel(android.os.Parcel, int);
@@ -14861,43 +14822,41 @@
 
   public class Region implements android.os.Parcelable {
     ctor public Region();
-    ctor public Region(android.graphics.Region);
-    ctor public Region(android.graphics.Rect);
+    ctor public Region(@NonNull android.graphics.Region);
+    ctor public Region(@NonNull android.graphics.Rect);
     ctor public Region(int, int, int, int);
     method public boolean contains(int, int);
     method public int describeContents();
-    method public android.graphics.Path getBoundaryPath();
-    method public boolean getBoundaryPath(android.graphics.Path);
-    method public android.graphics.Rect getBounds();
-    method public boolean getBounds(android.graphics.Rect);
+    method @NonNull public android.graphics.Path getBoundaryPath();
+    method public boolean getBoundaryPath(@NonNull android.graphics.Path);
+    method @NonNull public android.graphics.Rect getBounds();
+    method public boolean getBounds(@NonNull android.graphics.Rect);
     method public boolean isComplex();
     method public boolean isEmpty();
     method public boolean isRect();
-    method public boolean op(android.graphics.Rect, android.graphics.Region.Op);
-    method public boolean op(int, int, int, int, android.graphics.Region.Op);
-    method public boolean op(android.graphics.Region, android.graphics.Region.Op);
-    method public boolean op(android.graphics.Rect, android.graphics.Region, android.graphics.Region.Op);
-    method public boolean op(android.graphics.Region, android.graphics.Region, android.graphics.Region.Op);
-    method public boolean quickContains(android.graphics.Rect);
+    method public boolean op(@NonNull android.graphics.Rect, @NonNull android.graphics.Region.Op);
+    method public boolean op(int, int, int, int, @NonNull android.graphics.Region.Op);
+    method public boolean op(@NonNull android.graphics.Region, @NonNull android.graphics.Region.Op);
+    method public boolean op(@NonNull android.graphics.Rect, @NonNull android.graphics.Region, @NonNull android.graphics.Region.Op);
+    method public boolean op(@NonNull android.graphics.Region, @NonNull android.graphics.Region, @NonNull android.graphics.Region.Op);
+    method public boolean quickContains(@NonNull android.graphics.Rect);
     method public boolean quickContains(int, int, int, int);
-    method public boolean quickReject(android.graphics.Rect);
+    method public boolean quickReject(@NonNull android.graphics.Rect);
     method public boolean quickReject(int, int, int, int);
     method public boolean quickReject(android.graphics.Region);
-    method public boolean set(android.graphics.Region);
-    method public boolean set(android.graphics.Rect);
+    method public boolean set(@NonNull android.graphics.Region);
+    method public boolean set(@NonNull android.graphics.Rect);
     method public boolean set(int, int, int, int);
     method public void setEmpty();
-    method public boolean setPath(android.graphics.Path, android.graphics.Region);
+    method public boolean setPath(@NonNull android.graphics.Path, @NonNull android.graphics.Region);
     method public void translate(int, int);
     method public void translate(int, int, android.graphics.Region);
-    method public final boolean union(android.graphics.Rect);
+    method public final boolean union(@NonNull android.graphics.Rect);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.graphics.Region> CREATOR;
   }
 
-  public static final class Region.Op extends java.lang.Enum {
-    method public static android.graphics.Region.Op valueOf(java.lang.String);
-    method public static final android.graphics.Region.Op[] values();
+  public enum Region.Op {
     enum_constant public static final android.graphics.Region.Op DIFFERENCE;
     enum_constant public static final android.graphics.Region.Op INTERSECT;
     enum_constant public static final android.graphics.Region.Op REPLACE;
@@ -14912,7 +14871,7 @@
   }
 
   public final class RenderNode {
-    ctor public RenderNode(java.lang.String);
+    ctor public RenderNode(String);
     method public int computeApproximateMemoryUsage();
     method public void discardDisplayList();
     method public void endRecording();
@@ -14924,9 +14883,9 @@
     method public boolean getClipToOutline();
     method public float getElevation();
     method public int getHeight();
-    method public void getInverseMatrix(android.graphics.Matrix);
+    method public void getInverseMatrix(@NonNull android.graphics.Matrix);
     method public int getLeft();
-    method public void getMatrix(android.graphics.Matrix);
+    method public void getMatrix(@NonNull android.graphics.Matrix);
     method public float getPivotX();
     method public float getPivotY();
     method public int getRight();
@@ -14956,7 +14915,7 @@
     method public boolean setAmbientShadowColor(int);
     method public boolean setBottom(int);
     method public boolean setCameraDistance(float);
-    method public boolean setClipBounds(android.graphics.Rect);
+    method public boolean setClipBounds(@Nullable android.graphics.Rect);
     method public boolean setClipToBounds(boolean);
     method public boolean setClipToOutline(boolean);
     method public boolean setElevation(float);
@@ -14964,7 +14923,7 @@
     method public boolean setHasOverlappingRendering(boolean);
     method public boolean setLeft(int);
     method public boolean setLeftTopRightBottom(int, int, int, int);
-    method public boolean setOutline(android.graphics.Outline);
+    method public boolean setOutline(@Nullable android.graphics.Outline);
     method public boolean setPivotX(float);
     method public boolean setPivotY(float);
     method public boolean setProjectBackwards(boolean);
@@ -14980,20 +14939,18 @@
     method public boolean setTranslationX(float);
     method public boolean setTranslationY(float);
     method public boolean setTranslationZ(float);
-    method public boolean setUseCompositingLayer(boolean, android.graphics.Paint);
+    method public boolean setUseCompositingLayer(boolean, @Nullable android.graphics.Paint);
     method public android.graphics.RecordingCanvas startRecording(int, int);
     method public android.graphics.RecordingCanvas startRecording();
   }
 
   public class Shader {
-    ctor public deprecated Shader();
-    method public boolean getLocalMatrix(android.graphics.Matrix);
-    method public void setLocalMatrix(android.graphics.Matrix);
+    ctor @Deprecated public Shader();
+    method public boolean getLocalMatrix(@NonNull android.graphics.Matrix);
+    method public void setLocalMatrix(@Nullable android.graphics.Matrix);
   }
 
-  public static final class Shader.TileMode extends java.lang.Enum {
-    method public static android.graphics.Shader.TileMode valueOf(java.lang.String);
-    method public static final android.graphics.Shader.TileMode[] values();
+  public enum Shader.TileMode {
     enum_constant public static final android.graphics.Shader.TileMode CLAMP;
     enum_constant public static final android.graphics.Shader.TileMode MIRROR;
     enum_constant public static final android.graphics.Shader.TileMode REPEAT;
@@ -15015,35 +14972,35 @@
     method public void release();
     method public void releaseTexImage();
     method public void setDefaultBufferSize(int, int);
-    method public void setOnFrameAvailableListener(android.graphics.SurfaceTexture.OnFrameAvailableListener);
-    method public void setOnFrameAvailableListener(android.graphics.SurfaceTexture.OnFrameAvailableListener, android.os.Handler);
+    method public void setOnFrameAvailableListener(@Nullable android.graphics.SurfaceTexture.OnFrameAvailableListener);
+    method public void setOnFrameAvailableListener(@Nullable android.graphics.SurfaceTexture.OnFrameAvailableListener, @Nullable android.os.Handler);
     method public void updateTexImage();
   }
 
-  public static abstract interface SurfaceTexture.OnFrameAvailableListener {
-    method public abstract void onFrameAvailable(android.graphics.SurfaceTexture);
+  public static interface SurfaceTexture.OnFrameAvailableListener {
+    method public void onFrameAvailable(android.graphics.SurfaceTexture);
   }
 
-  public static deprecated class SurfaceTexture.OutOfResourcesException extends java.lang.Exception {
-    ctor public SurfaceTexture.OutOfResourcesException();
-    ctor public SurfaceTexture.OutOfResourcesException(java.lang.String);
+  @Deprecated public static class SurfaceTexture.OutOfResourcesException extends java.lang.Exception {
+    ctor @Deprecated public SurfaceTexture.OutOfResourcesException();
+    ctor @Deprecated public SurfaceTexture.OutOfResourcesException(String);
   }
 
   public class SweepGradient extends android.graphics.Shader {
-    ctor public SweepGradient(float, float, int[], float[]);
-    ctor public SweepGradient(float, float, int, int);
+    ctor public SweepGradient(float, float, @NonNull @ColorInt int[], @Nullable float[]);
+    ctor public SweepGradient(float, float, @ColorInt int, @ColorInt int);
   }
 
   public class Typeface {
-    method public static android.graphics.Typeface create(java.lang.String, int);
+    method public static android.graphics.Typeface create(String, int);
     method public static android.graphics.Typeface create(android.graphics.Typeface, int);
-    method public static android.graphics.Typeface create(android.graphics.Typeface, int, boolean);
-    method public static android.graphics.Typeface createFromAsset(android.content.res.AssetManager, java.lang.String);
-    method public static android.graphics.Typeface createFromFile(java.io.File);
-    method public static android.graphics.Typeface createFromFile(java.lang.String);
+    method @NonNull public static android.graphics.Typeface create(@Nullable android.graphics.Typeface, @IntRange(from=1, to=1000) int, boolean);
+    method public static android.graphics.Typeface createFromAsset(android.content.res.AssetManager, String);
+    method public static android.graphics.Typeface createFromFile(@Nullable java.io.File);
+    method public static android.graphics.Typeface createFromFile(@Nullable String);
     method public static android.graphics.Typeface defaultFromStyle(int);
     method public int getStyle();
-    method public int getWeight();
+    method @IntRange(from=0, to=1000) public int getWeight();
     method public final boolean isBold();
     method public final boolean isItalic();
     field public static final int BOLD = 1; // 0x1
@@ -15058,26 +15015,26 @@
   }
 
   public static final class Typeface.Builder {
-    ctor public Typeface.Builder(java.io.File);
-    ctor public Typeface.Builder(java.io.FileDescriptor);
-    ctor public Typeface.Builder(java.lang.String);
-    ctor public Typeface.Builder(android.content.res.AssetManager, java.lang.String);
+    ctor public Typeface.Builder(@NonNull java.io.File);
+    ctor public Typeface.Builder(@NonNull java.io.FileDescriptor);
+    ctor public Typeface.Builder(@NonNull String);
+    ctor public Typeface.Builder(@NonNull android.content.res.AssetManager, @NonNull String);
     method public android.graphics.Typeface build();
-    method public android.graphics.Typeface.Builder setFallback(java.lang.String);
-    method public android.graphics.Typeface.Builder setFontVariationSettings(java.lang.String);
-    method public android.graphics.Typeface.Builder setFontVariationSettings(android.graphics.fonts.FontVariationAxis[]);
+    method public android.graphics.Typeface.Builder setFallback(@Nullable String);
+    method public android.graphics.Typeface.Builder setFontVariationSettings(@Nullable String);
+    method public android.graphics.Typeface.Builder setFontVariationSettings(@Nullable android.graphics.fonts.FontVariationAxis[]);
     method public android.graphics.Typeface.Builder setItalic(boolean);
-    method public android.graphics.Typeface.Builder setTtcIndex(int);
-    method public android.graphics.Typeface.Builder setWeight(int);
+    method public android.graphics.Typeface.Builder setTtcIndex(@IntRange(from=0) int);
+    method public android.graphics.Typeface.Builder setWeight(@IntRange(from=1, to=1000) int);
   }
 
   public static class Typeface.CustomFallbackBuilder {
-    ctor public Typeface.CustomFallbackBuilder(android.graphics.fonts.FontFamily);
-    method public android.graphics.Typeface.CustomFallbackBuilder addCustomFallback(android.graphics.fonts.FontFamily);
+    ctor public Typeface.CustomFallbackBuilder(@NonNull android.graphics.fonts.FontFamily);
+    method public android.graphics.Typeface.CustomFallbackBuilder addCustomFallback(@NonNull android.graphics.fonts.FontFamily);
     method public android.graphics.Typeface build();
-    method public static int getMaxCustomFallbackCount();
-    method public android.graphics.Typeface.CustomFallbackBuilder setStyle(android.graphics.fonts.FontStyle);
-    method public android.graphics.Typeface.CustomFallbackBuilder setSystemFallback(java.lang.String);
+    method @IntRange(from=64) public static int getMaxCustomFallbackCount();
+    method public android.graphics.Typeface.CustomFallbackBuilder setStyle(@NonNull android.graphics.fonts.FontStyle);
+    method public android.graphics.Typeface.CustomFallbackBuilder setSystemFallback(@NonNull String);
   }
 
   public class Xfermode {
@@ -15106,28 +15063,28 @@
     method public android.graphics.drawable.Drawable getForeground();
     method public android.graphics.Path getIconMask();
     method public int getOpacity();
-    method public void invalidateDrawable(android.graphics.drawable.Drawable);
-    method public void scheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable, long);
+    method public void invalidateDrawable(@NonNull android.graphics.drawable.Drawable);
+    method public void scheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable, long);
     method public void setAlpha(int);
     method public void setColorFilter(android.graphics.ColorFilter);
     method public void setDither(boolean);
     method public void setOpacity(int);
-    method public void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
+    method public void unscheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable);
   }
 
-  public abstract interface Animatable {
-    method public abstract boolean isRunning();
-    method public abstract void start();
-    method public abstract void stop();
+  public interface Animatable {
+    method public boolean isRunning();
+    method public void start();
+    method public void stop();
   }
 
-  public abstract interface Animatable2 implements android.graphics.drawable.Animatable {
-    method public abstract void clearAnimationCallbacks();
-    method public abstract void registerAnimationCallback(android.graphics.drawable.Animatable2.AnimationCallback);
-    method public abstract boolean unregisterAnimationCallback(android.graphics.drawable.Animatable2.AnimationCallback);
+  public interface Animatable2 extends android.graphics.drawable.Animatable {
+    method public void clearAnimationCallbacks();
+    method public void registerAnimationCallback(@NonNull android.graphics.drawable.Animatable2.AnimationCallback);
+    method public boolean unregisterAnimationCallback(@NonNull android.graphics.drawable.Animatable2.AnimationCallback);
   }
 
-  public static abstract class Animatable2.AnimationCallback {
+  public abstract static class Animatable2.AnimationCallback {
     ctor public Animatable2.AnimationCallback();
     method public void onAnimationEnd(android.graphics.drawable.Drawable);
     method public void onAnimationStart(android.graphics.drawable.Drawable);
@@ -15136,25 +15093,25 @@
   public class AnimatedImageDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable2 {
     ctor public AnimatedImageDrawable();
     method public void clearAnimationCallbacks();
-    method public void draw(android.graphics.Canvas);
+    method public void draw(@NonNull android.graphics.Canvas);
     method public int getOpacity();
     method public int getRepeatCount();
     method public final boolean isAutoMirrored();
     method public boolean isRunning();
-    method public void registerAnimationCallback(android.graphics.drawable.Animatable2.AnimationCallback);
-    method public void setAlpha(int);
-    method public void setColorFilter(android.graphics.ColorFilter);
-    method public void setRepeatCount(int);
+    method public void registerAnimationCallback(@NonNull android.graphics.drawable.Animatable2.AnimationCallback);
+    method public void setAlpha(@IntRange(from=0, to=255) int);
+    method public void setColorFilter(@Nullable android.graphics.ColorFilter);
+    method public void setRepeatCount(@IntRange(from=android.graphics.drawable.AnimatedImageDrawable.REPEAT_INFINITE) int);
     method public void start();
     method public void stop();
-    method public boolean unregisterAnimationCallback(android.graphics.drawable.Animatable2.AnimationCallback);
+    method public boolean unregisterAnimationCallback(@NonNull android.graphics.drawable.Animatable2.AnimationCallback);
     field public static final int REPEAT_INFINITE = -1; // 0xffffffff
   }
 
   public class AnimatedStateListDrawable extends android.graphics.drawable.StateListDrawable {
     ctor public AnimatedStateListDrawable();
-    method public void addState(int[], android.graphics.drawable.Drawable, int);
-    method public <T extends android.graphics.drawable.Drawable & android.graphics.drawable.Animatable> void addTransition(int, int, T, boolean);
+    method public void addState(@NonNull int[], @NonNull android.graphics.drawable.Drawable, int);
+    method public <T extends android.graphics.drawable.Drawable & android.graphics.drawable.Animatable> void addTransition(int, int, @NonNull T, boolean);
   }
 
   public class AnimatedVectorDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable2 {
@@ -15163,18 +15120,18 @@
     method public void draw(android.graphics.Canvas);
     method public int getOpacity();
     method public boolean isRunning();
-    method public void registerAnimationCallback(android.graphics.drawable.Animatable2.AnimationCallback);
+    method public void registerAnimationCallback(@NonNull android.graphics.drawable.Animatable2.AnimationCallback);
     method public void reset();
     method public void setAlpha(int);
     method public void setColorFilter(android.graphics.ColorFilter);
     method public void start();
     method public void stop();
-    method public boolean unregisterAnimationCallback(android.graphics.drawable.Animatable2.AnimationCallback);
+    method public boolean unregisterAnimationCallback(@NonNull android.graphics.drawable.Animatable2.AnimationCallback);
   }
 
   public class AnimationDrawable extends android.graphics.drawable.DrawableContainer implements android.graphics.drawable.Animatable java.lang.Runnable {
     ctor public AnimationDrawable();
-    method public void addFrame(android.graphics.drawable.Drawable, int);
+    method public void addFrame(@NonNull android.graphics.drawable.Drawable, int);
     method public int getDuration(int);
     method public android.graphics.drawable.Drawable getFrame(int);
     method public int getNumberOfFrames();
@@ -15187,13 +15144,13 @@
   }
 
   public class BitmapDrawable extends android.graphics.drawable.Drawable {
-    ctor public deprecated BitmapDrawable();
-    ctor public deprecated BitmapDrawable(android.content.res.Resources);
-    ctor public deprecated BitmapDrawable(android.graphics.Bitmap);
+    ctor @Deprecated public BitmapDrawable();
+    ctor @Deprecated public BitmapDrawable(android.content.res.Resources);
+    ctor @Deprecated public BitmapDrawable(android.graphics.Bitmap);
     ctor public BitmapDrawable(android.content.res.Resources, android.graphics.Bitmap);
-    ctor public deprecated BitmapDrawable(java.lang.String);
-    ctor public BitmapDrawable(android.content.res.Resources, java.lang.String);
-    ctor public deprecated BitmapDrawable(java.io.InputStream);
+    ctor @Deprecated public BitmapDrawable(String);
+    ctor public BitmapDrawable(android.content.res.Resources, String);
+    ctor @Deprecated public BitmapDrawable(java.io.InputStream);
     ctor public BitmapDrawable(android.content.res.Resources, java.io.InputStream);
     method public void draw(android.graphics.Canvas);
     method public final android.graphics.Bitmap getBitmap();
@@ -15228,12 +15185,12 @@
 
   public class ColorDrawable extends android.graphics.drawable.Drawable {
     ctor public ColorDrawable();
-    ctor public ColorDrawable(int);
+    ctor public ColorDrawable(@ColorInt int);
     method public void draw(android.graphics.Canvas);
-    method public int getColor();
+    method @ColorInt public int getColor();
     method public int getOpacity();
     method public void setAlpha(int);
-    method public void setColor(int);
+    method public void setColor(@ColorInt int);
     method public void setColorFilter(android.graphics.ColorFilter);
   }
 
@@ -15242,56 +15199,56 @@
     ctor public ColorStateListDrawable(android.content.res.ColorStateList);
     method public void clearAlpha();
     method public void draw(android.graphics.Canvas);
-    method public android.content.res.ColorStateList getColorStateList();
+    method @NonNull public android.content.res.ColorStateList getColorStateList();
     method public int getOpacity();
     method public boolean hasFocusStateSpecified();
     method public void invalidateDrawable(android.graphics.drawable.Drawable);
-    method public void scheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable, long);
-    method public void setAlpha(int);
+    method public void scheduleDrawable(android.graphics.drawable.Drawable, Runnable, long);
+    method public void setAlpha(@IntRange(from=0, to=255) int);
     method public void setColorFilter(android.graphics.ColorFilter);
     method public void setColorStateList(android.content.res.ColorStateList);
-    method public void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
+    method public void unscheduleDrawable(android.graphics.drawable.Drawable, Runnable);
   }
 
   public abstract class Drawable {
     ctor public Drawable();
-    method public void applyTheme(android.content.res.Resources.Theme);
+    method public void applyTheme(@NonNull android.content.res.Resources.Theme);
     method public boolean canApplyTheme();
     method public void clearColorFilter();
-    method public final void copyBounds(android.graphics.Rect);
-    method public final android.graphics.Rect copyBounds();
-    method public static android.graphics.drawable.Drawable createFromPath(java.lang.String);
-    method public static android.graphics.drawable.Drawable createFromResourceStream(android.content.res.Resources, android.util.TypedValue, java.io.InputStream, java.lang.String);
-    method public static deprecated android.graphics.drawable.Drawable createFromResourceStream(android.content.res.Resources, android.util.TypedValue, java.io.InputStream, java.lang.String, android.graphics.BitmapFactory.Options);
-    method public static android.graphics.drawable.Drawable createFromStream(java.io.InputStream, java.lang.String);
-    method public static android.graphics.drawable.Drawable createFromXml(android.content.res.Resources, org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public static android.graphics.drawable.Drawable createFromXml(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public static android.graphics.drawable.Drawable createFromXmlInner(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public static android.graphics.drawable.Drawable createFromXmlInner(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public abstract void draw(android.graphics.Canvas);
-    method public int getAlpha();
-    method public final android.graphics.Rect getBounds();
-    method public android.graphics.drawable.Drawable.Callback getCallback();
+    method public final void copyBounds(@NonNull android.graphics.Rect);
+    method @NonNull public final android.graphics.Rect copyBounds();
+    method @Nullable public static android.graphics.drawable.Drawable createFromPath(String);
+    method public static android.graphics.drawable.Drawable createFromResourceStream(android.content.res.Resources, android.util.TypedValue, java.io.InputStream, String);
+    method @Deprecated @Nullable public static android.graphics.drawable.Drawable createFromResourceStream(@Nullable android.content.res.Resources, @Nullable android.util.TypedValue, @Nullable java.io.InputStream, @Nullable String, @Nullable android.graphics.BitmapFactory.Options);
+    method public static android.graphics.drawable.Drawable createFromStream(java.io.InputStream, String);
+    method @NonNull public static android.graphics.drawable.Drawable createFromXml(@NonNull android.content.res.Resources, @NonNull org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method @NonNull public static android.graphics.drawable.Drawable createFromXml(@NonNull android.content.res.Resources, @NonNull org.xmlpull.v1.XmlPullParser, @Nullable android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method @NonNull public static android.graphics.drawable.Drawable createFromXmlInner(@NonNull android.content.res.Resources, @NonNull org.xmlpull.v1.XmlPullParser, @NonNull android.util.AttributeSet) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method @NonNull public static android.graphics.drawable.Drawable createFromXmlInner(@NonNull android.content.res.Resources, @NonNull org.xmlpull.v1.XmlPullParser, @NonNull android.util.AttributeSet, @Nullable android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public abstract void draw(@NonNull android.graphics.Canvas);
+    method @IntRange(from=0, to=255) public int getAlpha();
+    method @NonNull public final android.graphics.Rect getBounds();
+    method @Nullable public android.graphics.drawable.Drawable.Callback getCallback();
     method public int getChangingConfigurations();
-    method public android.graphics.ColorFilter getColorFilter();
-    method public android.graphics.drawable.Drawable.ConstantState getConstantState();
-    method public android.graphics.drawable.Drawable getCurrent();
-    method public android.graphics.Rect getDirtyBounds();
-    method public void getHotspotBounds(android.graphics.Rect);
+    method @Nullable public android.graphics.ColorFilter getColorFilter();
+    method @Nullable public android.graphics.drawable.Drawable.ConstantState getConstantState();
+    method @NonNull public android.graphics.drawable.Drawable getCurrent();
+    method @NonNull public android.graphics.Rect getDirtyBounds();
+    method public void getHotspotBounds(@NonNull android.graphics.Rect);
     method public int getIntrinsicHeight();
     method public int getIntrinsicWidth();
     method public int getLayoutDirection();
-    method public final int getLevel();
+    method @IntRange(from=0, to=10000) public final int getLevel();
     method public int getMinimumHeight();
     method public int getMinimumWidth();
-    method public abstract deprecated int getOpacity();
-    method public android.graphics.Insets getOpticalInsets();
-    method public void getOutline(android.graphics.Outline);
-    method public boolean getPadding(android.graphics.Rect);
-    method public int[] getState();
-    method public android.graphics.Region getTransparentRegion();
-    method public void inflate(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public void inflate(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method @Deprecated public abstract int getOpacity();
+    method @NonNull public android.graphics.Insets getOpticalInsets();
+    method public void getOutline(@NonNull android.graphics.Outline);
+    method public boolean getPadding(@NonNull android.graphics.Rect);
+    method @NonNull public int[] getState();
+    method @Nullable public android.graphics.Region getTransparentRegion();
+    method public void inflate(@NonNull android.content.res.Resources, @NonNull org.xmlpull.v1.XmlPullParser, @NonNull android.util.AttributeSet) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public void inflate(@NonNull android.content.res.Resources, @NonNull org.xmlpull.v1.XmlPullParser, @NonNull android.util.AttributeSet, @Nullable android.content.res.Resources.Theme) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
     method public void invalidateSelf();
     method public boolean isAutoMirrored();
     method public boolean isFilterBitmap();
@@ -15299,56 +15256,56 @@
     method public boolean isStateful();
     method public final boolean isVisible();
     method public void jumpToCurrentState();
-    method public android.graphics.drawable.Drawable mutate();
+    method @NonNull public android.graphics.drawable.Drawable mutate();
     method protected void onBoundsChange(android.graphics.Rect);
     method public boolean onLayoutDirectionChanged(int);
     method protected boolean onLevelChange(int);
     method protected boolean onStateChange(int[]);
     method public static int resolveOpacity(int, int);
-    method public void scheduleSelf(java.lang.Runnable, long);
-    method public abstract void setAlpha(int);
+    method public void scheduleSelf(@NonNull Runnable, long);
+    method public abstract void setAlpha(@IntRange(from=0, to=255) int);
     method public void setAutoMirrored(boolean);
     method public void setBounds(int, int, int, int);
-    method public void setBounds(android.graphics.Rect);
-    method public final void setCallback(android.graphics.drawable.Drawable.Callback);
+    method public void setBounds(@NonNull android.graphics.Rect);
+    method public final void setCallback(@Nullable android.graphics.drawable.Drawable.Callback);
     method public void setChangingConfigurations(int);
-    method public abstract void setColorFilter(android.graphics.ColorFilter);
-    method public deprecated void setColorFilter(int, android.graphics.PorterDuff.Mode);
-    method public deprecated void setDither(boolean);
+    method public abstract void setColorFilter(@Nullable android.graphics.ColorFilter);
+    method @Deprecated public void setColorFilter(@ColorInt int, @NonNull android.graphics.PorterDuff.Mode);
+    method @Deprecated public void setDither(boolean);
     method public void setFilterBitmap(boolean);
     method public void setHotspot(float, float);
     method public void setHotspotBounds(int, int, int, int);
     method public final boolean setLayoutDirection(int);
-    method public final boolean setLevel(int);
-    method public boolean setState(int[]);
-    method public void setTint(int);
-    method public void setTintList(android.content.res.ColorStateList);
-    method public void setTintMode(android.graphics.PorterDuff.Mode);
+    method public final boolean setLevel(@IntRange(from=0, to=10000) int);
+    method public boolean setState(@NonNull int[]);
+    method public void setTint(@ColorInt int);
+    method public void setTintList(@Nullable android.content.res.ColorStateList);
+    method public void setTintMode(@NonNull android.graphics.PorterDuff.Mode);
     method public boolean setVisible(boolean, boolean);
-    method public void unscheduleSelf(java.lang.Runnable);
+    method public void unscheduleSelf(@NonNull Runnable);
   }
 
-  public static abstract interface Drawable.Callback {
-    method public abstract void invalidateDrawable(android.graphics.drawable.Drawable);
-    method public abstract void scheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable, long);
-    method public abstract void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
+  public static interface Drawable.Callback {
+    method public void invalidateDrawable(@NonNull android.graphics.drawable.Drawable);
+    method public void scheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable, long);
+    method public void unscheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable);
   }
 
-  public static abstract class Drawable.ConstantState {
+  public abstract static class Drawable.ConstantState {
     ctor public Drawable.ConstantState();
     method public boolean canApplyTheme();
     method public abstract int getChangingConfigurations();
-    method public abstract android.graphics.drawable.Drawable newDrawable();
-    method public android.graphics.drawable.Drawable newDrawable(android.content.res.Resources);
-    method public android.graphics.drawable.Drawable newDrawable(android.content.res.Resources, android.content.res.Resources.Theme);
+    method @NonNull public abstract android.graphics.drawable.Drawable newDrawable();
+    method @NonNull public android.graphics.drawable.Drawable newDrawable(@Nullable android.content.res.Resources);
+    method @NonNull public android.graphics.drawable.Drawable newDrawable(@Nullable android.content.res.Resources, @Nullable android.content.res.Resources.Theme);
   }
 
   public class DrawableContainer extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.Callback {
     ctor public DrawableContainer();
     method public void draw(android.graphics.Canvas);
     method public int getOpacity();
-    method public void invalidateDrawable(android.graphics.drawable.Drawable);
-    method public void scheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable, long);
+    method public void invalidateDrawable(@NonNull android.graphics.drawable.Drawable);
+    method public void scheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable, long);
     method public boolean selectDrawable(int);
     method public void setAlpha(int);
     method public void setColorFilter(android.graphics.ColorFilter);
@@ -15356,12 +15313,12 @@
     method public void setDither(boolean);
     method public void setEnterFadeDuration(int);
     method public void setExitFadeDuration(int);
-    method public void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
+    method public void unscheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable);
   }
 
-  public static abstract class DrawableContainer.DrawableContainerState extends android.graphics.drawable.Drawable.ConstantState {
+  public abstract static class DrawableContainer.DrawableContainerState extends android.graphics.drawable.Drawable.ConstantState {
     method public final int addChild(android.graphics.drawable.Drawable);
-    method public synchronized boolean canConstantState();
+    method public boolean canConstantState();
     method protected void computeConstantSize();
     method public int getChangingConfigurations();
     method public final android.graphics.drawable.Drawable getChild(int);
@@ -15385,25 +15342,25 @@
   }
 
   public abstract class DrawableWrapper extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.Callback {
-    ctor public DrawableWrapper(android.graphics.drawable.Drawable);
-    method public void draw(android.graphics.Canvas);
-    method public android.graphics.drawable.Drawable getDrawable();
+    ctor public DrawableWrapper(@Nullable android.graphics.drawable.Drawable);
+    method public void draw(@NonNull android.graphics.Canvas);
+    method @Nullable public android.graphics.drawable.Drawable getDrawable();
     method public int getOpacity();
-    method public void invalidateDrawable(android.graphics.drawable.Drawable);
-    method public void scheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable, long);
+    method public void invalidateDrawable(@NonNull android.graphics.drawable.Drawable);
+    method public void scheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable, long);
     method public void setAlpha(int);
-    method public void setColorFilter(android.graphics.ColorFilter);
-    method public void setDrawable(android.graphics.drawable.Drawable);
-    method public void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
+    method public void setColorFilter(@Nullable android.graphics.ColorFilter);
+    method public void setDrawable(@Nullable android.graphics.drawable.Drawable);
+    method public void unscheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable);
   }
 
   public class GradientDrawable extends android.graphics.drawable.Drawable {
     ctor public GradientDrawable();
-    ctor public GradientDrawable(android.graphics.drawable.GradientDrawable.Orientation, int[]);
+    ctor public GradientDrawable(android.graphics.drawable.GradientDrawable.Orientation, @ColorInt int[]);
     method public void draw(android.graphics.Canvas);
-    method public android.content.res.ColorStateList getColor();
-    method public int[] getColors();
-    method public float[] getCornerRadii();
+    method @Nullable public android.content.res.ColorStateList getColor();
+    method @Nullable public int[] getColors();
+    method @Nullable public float[] getCornerRadii();
     method public float getCornerRadius();
     method public float getGradientCenterX();
     method public float getGradientCenterY();
@@ -15414,11 +15371,11 @@
     method public int getShape();
     method public boolean getUseLevel();
     method public void setAlpha(int);
-    method public void setColor(int);
-    method public void setColor(android.content.res.ColorStateList);
-    method public void setColorFilter(android.graphics.ColorFilter);
-    method public void setColors(int[]);
-    method public void setCornerRadii(float[]);
+    method public void setColor(@ColorInt int);
+    method public void setColor(@Nullable android.content.res.ColorStateList);
+    method public void setColorFilter(@Nullable android.graphics.ColorFilter);
+    method public void setColors(@ColorInt int[]);
+    method public void setCornerRadii(@Nullable float[]);
     method public void setCornerRadius(float);
     method public void setDither(boolean);
     method public void setGradientCenter(float, float);
@@ -15427,9 +15384,9 @@
     method public void setOrientation(android.graphics.drawable.GradientDrawable.Orientation);
     method public void setShape(int);
     method public void setSize(int, int);
-    method public void setStroke(int, int);
+    method public void setStroke(int, @ColorInt int);
     method public void setStroke(int, android.content.res.ColorStateList);
-    method public void setStroke(int, int, float, float);
+    method public void setStroke(int, @ColorInt int, float, float);
     method public void setStroke(int, android.content.res.ColorStateList, float, float);
     method public void setUseLevel(boolean);
     field public static final int LINE = 2; // 0x2
@@ -15441,9 +15398,7 @@
     field public static final int SWEEP_GRADIENT = 2; // 0x2
   }
 
-  public static final class GradientDrawable.Orientation extends java.lang.Enum {
-    method public static android.graphics.drawable.GradientDrawable.Orientation valueOf(java.lang.String);
-    method public static final android.graphics.drawable.GradientDrawable.Orientation[] values();
+  public enum GradientDrawable.Orientation {
     enum_constant public static final android.graphics.drawable.GradientDrawable.Orientation BL_TR;
     enum_constant public static final android.graphics.drawable.GradientDrawable.Orientation BOTTOM_TOP;
     enum_constant public static final android.graphics.drawable.GradientDrawable.Orientation BR_TL;
@@ -15457,21 +15412,21 @@
   public final class Icon implements android.os.Parcelable {
     method public static android.graphics.drawable.Icon createWithAdaptiveBitmap(android.graphics.Bitmap);
     method public static android.graphics.drawable.Icon createWithBitmap(android.graphics.Bitmap);
-    method public static android.graphics.drawable.Icon createWithContentUri(java.lang.String);
+    method public static android.graphics.drawable.Icon createWithContentUri(String);
     method public static android.graphics.drawable.Icon createWithContentUri(android.net.Uri);
     method public static android.graphics.drawable.Icon createWithData(byte[], int, int);
-    method public static android.graphics.drawable.Icon createWithFilePath(java.lang.String);
-    method public static android.graphics.drawable.Icon createWithResource(android.content.Context, int);
-    method public static android.graphics.drawable.Icon createWithResource(java.lang.String, int);
+    method public static android.graphics.drawable.Icon createWithFilePath(String);
+    method public static android.graphics.drawable.Icon createWithResource(android.content.Context, @DrawableRes int);
+    method public static android.graphics.drawable.Icon createWithResource(String, @DrawableRes int);
     method public int describeContents();
-    method public int getResId();
-    method public java.lang.String getResPackage();
+    method @IdRes public int getResId();
+    method @NonNull public String getResPackage();
     method public int getType();
-    method public android.net.Uri getUri();
+    method @NonNull public android.net.Uri getUri();
     method public android.graphics.drawable.Drawable loadDrawable(android.content.Context);
     method public void loadDrawableAsync(android.content.Context, android.os.Message);
     method public void loadDrawableAsync(android.content.Context, android.graphics.drawable.Icon.OnDrawableLoadedListener, android.os.Handler);
-    method public android.graphics.drawable.Icon setTint(int);
+    method public android.graphics.drawable.Icon setTint(@ColorInt int);
     method public android.graphics.drawable.Icon setTintList(android.content.res.ColorStateList);
     method public android.graphics.drawable.Icon setTintMode(android.graphics.PorterDuff.Mode);
     method public void writeToParcel(android.os.Parcel, int);
@@ -15483,19 +15438,19 @@
     field public static final int TYPE_URI = 4; // 0x4
   }
 
-  public static abstract interface Icon.OnDrawableLoadedListener {
-    method public abstract void onDrawableLoaded(android.graphics.drawable.Drawable);
+  public static interface Icon.OnDrawableLoadedListener {
+    method public void onDrawableLoaded(android.graphics.drawable.Drawable);
   }
 
   public class InsetDrawable extends android.graphics.drawable.DrawableWrapper {
-    ctor public InsetDrawable(android.graphics.drawable.Drawable, int);
-    ctor public InsetDrawable(android.graphics.drawable.Drawable, float);
-    ctor public InsetDrawable(android.graphics.drawable.Drawable, int, int, int, int);
-    ctor public InsetDrawable(android.graphics.drawable.Drawable, float, float, float, float);
+    ctor public InsetDrawable(@Nullable android.graphics.drawable.Drawable, int);
+    ctor public InsetDrawable(@Nullable android.graphics.drawable.Drawable, float);
+    ctor public InsetDrawable(@Nullable android.graphics.drawable.Drawable, int, int, int, int);
+    ctor public InsetDrawable(@Nullable android.graphics.drawable.Drawable, float, float, float, float);
   }
 
   public class LayerDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.Callback {
-    ctor public LayerDrawable(android.graphics.drawable.Drawable[]);
+    ctor public LayerDrawable(@NonNull android.graphics.drawable.Drawable[]);
     method public int addLayer(android.graphics.drawable.Drawable);
     method public void draw(android.graphics.Canvas);
     method public android.graphics.drawable.Drawable findDrawableByLayerId(int);
@@ -15520,8 +15475,8 @@
     method public int getRightPadding();
     method public int getStartPadding();
     method public int getTopPadding();
-    method public void invalidateDrawable(android.graphics.drawable.Drawable);
-    method public void scheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable, long);
+    method public void invalidateDrawable(@NonNull android.graphics.drawable.Drawable);
+    method public void scheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable, long);
     method public void setAlpha(int);
     method public void setColorFilter(android.graphics.ColorFilter);
     method public void setDither(boolean);
@@ -15544,7 +15499,7 @@
     method public void setPadding(int, int, int, int);
     method public void setPaddingMode(int);
     method public void setPaddingRelative(int, int, int, int);
-    method public void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
+    method public void unscheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable);
     field public static final int INSET_UNDEFINED = -2147483648; // 0x80000000
     field public static final int PADDING_MODE_NEST = 0; // 0x0
     field public static final int PADDING_MODE_STACK = 1; // 0x1
@@ -15556,18 +15511,18 @@
   }
 
   public class NinePatchDrawable extends android.graphics.drawable.Drawable {
-    ctor public deprecated NinePatchDrawable(android.graphics.Bitmap, byte[], android.graphics.Rect, java.lang.String);
-    ctor public NinePatchDrawable(android.content.res.Resources, android.graphics.Bitmap, byte[], android.graphics.Rect, java.lang.String);
-    ctor public deprecated NinePatchDrawable(android.graphics.NinePatch);
-    ctor public NinePatchDrawable(android.content.res.Resources, android.graphics.NinePatch);
+    ctor @Deprecated public NinePatchDrawable(android.graphics.Bitmap, byte[], android.graphics.Rect, String);
+    ctor public NinePatchDrawable(android.content.res.Resources, android.graphics.Bitmap, byte[], android.graphics.Rect, String);
+    ctor @Deprecated public NinePatchDrawable(@NonNull android.graphics.NinePatch);
+    ctor public NinePatchDrawable(@Nullable android.content.res.Resources, @NonNull android.graphics.NinePatch);
     method public void draw(android.graphics.Canvas);
     method public int getOpacity();
-    method public android.graphics.Paint getPaint();
+    method @NonNull public android.graphics.Paint getPaint();
     method public void setAlpha(int);
-    method public void setColorFilter(android.graphics.ColorFilter);
+    method public void setColorFilter(@Nullable android.graphics.ColorFilter);
     method public void setDither(boolean);
-    method public void setTargetDensity(android.graphics.Canvas);
-    method public void setTargetDensity(android.util.DisplayMetrics);
+    method public void setTargetDensity(@NonNull android.graphics.Canvas);
+    method public void setTargetDensity(@NonNull android.util.DisplayMetrics);
     method public void setTargetDensity(int);
   }
 
@@ -15589,7 +15544,7 @@
   }
 
   public class RippleDrawable extends android.graphics.drawable.LayerDrawable {
-    ctor public RippleDrawable(android.content.res.ColorStateList, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
+    ctor public RippleDrawable(@NonNull android.content.res.ColorStateList, @Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable);
     method public int getRadius();
     method public void setColor(android.content.res.ColorStateList);
     method public void setRadius(int);
@@ -15624,7 +15579,7 @@
     method public android.graphics.Paint getPaint();
     method public android.graphics.drawable.ShapeDrawable.ShaderFactory getShaderFactory();
     method public android.graphics.drawable.shapes.Shape getShape();
-    method protected boolean inflateTag(java.lang.String, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet);
+    method protected boolean inflateTag(String, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet);
     method protected void onDraw(android.graphics.drawable.shapes.Shape, android.graphics.Canvas, android.graphics.Paint);
     method public void setAlpha(int);
     method public void setColorFilter(android.graphics.ColorFilter);
@@ -15637,7 +15592,7 @@
     method public void setShape(android.graphics.drawable.shapes.Shape);
   }
 
-  public static abstract class ShapeDrawable.ShaderFactory {
+  public abstract static class ShapeDrawable.ShaderFactory {
     ctor public ShapeDrawable.ShaderFactory();
     method public abstract android.graphics.Shader resize(int, int);
   }
@@ -15685,7 +15640,7 @@
   }
 
   public class PathShape extends android.graphics.drawable.shapes.Shape {
-    ctor public PathShape(android.graphics.Path, float, float);
+    ctor public PathShape(@NonNull android.graphics.Path, float, float);
     method public android.graphics.drawable.shapes.PathShape clone() throws java.lang.CloneNotSupportedException;
     method public void draw(android.graphics.Canvas, android.graphics.Paint);
   }
@@ -15698,7 +15653,7 @@
   }
 
   public class RoundRectShape extends android.graphics.drawable.shapes.RectShape {
-    ctor public RoundRectShape(float[], android.graphics.RectF, float[]);
+    ctor public RoundRectShape(@Nullable float[], @Nullable android.graphics.RectF, @Nullable float[]);
     method public android.graphics.drawable.shapes.RoundRectShape clone() throws java.lang.CloneNotSupportedException;
   }
 
@@ -15707,7 +15662,7 @@
     method public android.graphics.drawable.shapes.Shape clone() throws java.lang.CloneNotSupportedException;
     method public abstract void draw(android.graphics.Canvas, android.graphics.Paint);
     method public final float getHeight();
-    method public void getOutline(android.graphics.Outline);
+    method public void getOutline(@NonNull android.graphics.Outline);
     method public final float getWidth();
     method public boolean hasAlpha();
     method protected void onResize(float, float);
@@ -15719,45 +15674,45 @@
 package android.graphics.fonts {
 
   public final class Font {
-    method public android.graphics.fonts.FontVariationAxis[] getAxes();
-    method public java.nio.ByteBuffer getBuffer();
-    method public java.io.File getFile();
-    method public android.os.LocaleList getLocaleList();
+    method @Nullable public android.graphics.fonts.FontVariationAxis[] getAxes();
+    method @NonNull public java.nio.ByteBuffer getBuffer();
+    method @Nullable public java.io.File getFile();
+    method @NonNull public android.os.LocaleList getLocaleList();
     method public android.graphics.fonts.FontStyle getStyle();
-    method public int getTtcIndex();
+    method @IntRange(from=0) public int getTtcIndex();
   }
 
   public static class Font.Builder {
-    ctor public Font.Builder(java.nio.ByteBuffer);
-    ctor public Font.Builder(java.io.File);
-    ctor public Font.Builder(java.io.FileDescriptor);
-    ctor public Font.Builder(java.io.FileDescriptor, long, long);
-    ctor public Font.Builder(android.content.res.AssetManager, java.lang.String);
-    ctor public Font.Builder(android.content.res.Resources, int);
-    method public android.graphics.fonts.Font build() throws java.io.IOException;
-    method public android.graphics.fonts.Font.Builder setFontVariationSettings(java.lang.String);
-    method public android.graphics.fonts.Font.Builder setFontVariationSettings(android.graphics.fonts.FontVariationAxis[]);
-    method public android.graphics.fonts.Font.Builder setSlant(int);
-    method public android.graphics.fonts.Font.Builder setTtcIndex(int);
-    method public android.graphics.fonts.Font.Builder setWeight(int);
+    ctor public Font.Builder(@NonNull java.nio.ByteBuffer);
+    ctor public Font.Builder(@NonNull java.io.File);
+    ctor public Font.Builder(@NonNull java.io.FileDescriptor);
+    ctor public Font.Builder(@NonNull java.io.FileDescriptor, @IntRange(from=0) long, @IntRange(from=0xffffffff) long);
+    ctor public Font.Builder(@NonNull android.content.res.AssetManager, @NonNull String);
+    ctor public Font.Builder(@NonNull android.content.res.Resources, int);
+    method @Nullable public android.graphics.fonts.Font build() throws java.io.IOException;
+    method @NonNull public android.graphics.fonts.Font.Builder setFontVariationSettings(@Nullable String);
+    method @NonNull public android.graphics.fonts.Font.Builder setFontVariationSettings(@Nullable android.graphics.fonts.FontVariationAxis[]);
+    method @NonNull public android.graphics.fonts.Font.Builder setSlant(int);
+    method @NonNull public android.graphics.fonts.Font.Builder setTtcIndex(@IntRange(from=0) int);
+    method @NonNull public android.graphics.fonts.Font.Builder setWeight(@IntRange(from=android.graphics.fonts.FontStyle.FONT_WEIGHT_MIN, to=android.graphics.fonts.FontStyle.FONT_WEIGHT_MAX) int);
   }
 
   public final class FontFamily {
-    method public android.graphics.fonts.Font getFont(int);
+    method public android.graphics.fonts.Font getFont(@IntRange(from=0) int);
     method public int getSize();
   }
 
   public static class FontFamily.Builder {
-    ctor public FontFamily.Builder(android.graphics.fonts.Font);
-    method public android.graphics.fonts.FontFamily.Builder addFont(android.graphics.fonts.Font);
-    method public android.graphics.fonts.FontFamily build();
+    ctor public FontFamily.Builder(@NonNull android.graphics.fonts.Font);
+    method @NonNull public android.graphics.fonts.FontFamily.Builder addFont(@NonNull android.graphics.fonts.Font);
+    method @NonNull public android.graphics.fonts.FontFamily build();
   }
 
   public final class FontStyle {
     ctor public FontStyle();
     ctor public FontStyle(int, int);
     method public int getSlant();
-    method public int getWeight();
+    method @IntRange(from=0, to=1000) public int getWeight();
     field public static final int FONT_SLANT_ITALIC = 1; // 0x1
     field public static final int FONT_SLANT_UPRIGHT = 0; // 0x0
     field public static final int FONT_WEIGHT_BLACK = 900; // 0x384
@@ -15774,15 +15729,15 @@
   }
 
   public final class FontVariationAxis {
-    ctor public FontVariationAxis(java.lang.String, float);
-    method public static android.graphics.fonts.FontVariationAxis[] fromFontVariationSettings(java.lang.String);
+    ctor public FontVariationAxis(@NonNull String, float);
+    method @Nullable public static android.graphics.fonts.FontVariationAxis[] fromFontVariationSettings(@Nullable String);
     method public float getStyleValue();
-    method public java.lang.String getTag();
-    method public static java.lang.String toFontVariationSettings(android.graphics.fonts.FontVariationAxis[]);
+    method public String getTag();
+    method @NonNull public static String toFontVariationSettings(@Nullable android.graphics.fonts.FontVariationAxis[]);
   }
 
   public final class SystemFonts {
-    method public static java.util.Set<android.graphics.fonts.Font> getAvailableFonts();
+    method @NonNull public static java.util.Set<android.graphics.fonts.Font> getAvailableFonts();
   }
 
 }
@@ -15817,7 +15772,7 @@
   }
 
   public final class PdfRenderer implements java.lang.AutoCloseable {
-    ctor public PdfRenderer(android.os.ParcelFileDescriptor) throws java.io.IOException;
+    ctor public PdfRenderer(@NonNull android.os.ParcelFileDescriptor) throws java.io.IOException;
     method public void close();
     method public int getPageCount();
     method public android.graphics.pdf.PdfRenderer.Page openPage(int);
@@ -15829,7 +15784,7 @@
     method public int getHeight();
     method public int getIndex();
     method public int getWidth();
-    method public void render(android.graphics.Bitmap, android.graphics.Rect, android.graphics.Matrix, int);
+    method public void render(@NonNull android.graphics.Bitmap, @Nullable android.graphics.Rect, @Nullable android.graphics.Matrix, int);
     field public static final int RENDER_MODE_FOR_DISPLAY = 1; // 0x1
     field public static final int RENDER_MODE_FOR_PRINT = 2; // 0x2
   }
@@ -15839,7 +15794,7 @@
 package android.graphics.text {
 
   public class LineBreaker {
-    method public android.graphics.text.LineBreaker.Result computeLineBreaks(android.graphics.text.MeasuredText, android.graphics.text.LineBreaker.ParagraphConstraints, int);
+    method public android.graphics.text.LineBreaker.Result computeLineBreaks(@NonNull android.graphics.text.MeasuredText, @NonNull android.graphics.text.LineBreaker.ParagraphConstraints, @IntRange(from=0) int);
     field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2
     field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1
     field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0
@@ -15855,44 +15810,44 @@
     method public android.graphics.text.LineBreaker build();
     method public android.graphics.text.LineBreaker.Builder setBreakStrategy(int);
     method public android.graphics.text.LineBreaker.Builder setHyphenationFrequency(int);
-    method public android.graphics.text.LineBreaker.Builder setIndents(int[]);
+    method public android.graphics.text.LineBreaker.Builder setIndents(@Nullable int[]);
     method public android.graphics.text.LineBreaker.Builder setJustified(int);
   }
 
   public static class LineBreaker.ParagraphConstraints {
     ctor public LineBreaker.ParagraphConstraints();
-    method public int getDefaultTabStop();
-    method public float getFirstWidth();
-    method public int getFirstWidthLineCount();
-    method public int[] getTabStops();
-    method public float getWidth();
-    method public void setIndent(float, int);
-    method public void setTabStops(int[], int);
-    method public void setWidth(float);
+    method @Px @IntRange(from=0) public int getDefaultTabStop();
+    method @Px @FloatRange(from=0.0f) public float getFirstWidth();
+    method @Px @IntRange(from=0) public int getFirstWidthLineCount();
+    method @Nullable public int[] getTabStops();
+    method @Px @FloatRange(from=0.0f) public float getWidth();
+    method public void setIndent(@Px @FloatRange(from=0.0f) float, @Px @IntRange(from=0) int);
+    method public void setTabStops(@Nullable int[], @Px @IntRange(from=0) int);
+    method public void setWidth(@Px @FloatRange(from=0.0f) float);
   }
 
   public static class LineBreaker.Result {
-    method public float getLineAscent(int);
-    method public int getLineBreakOffset(int);
-    method public int getLineCount();
-    method public float getLineDescent(int);
+    method @Px public float getLineAscent(@IntRange(from=0) int);
+    method @IntRange(from=0) public int getLineBreakOffset(@IntRange(from=0) int);
+    method @IntRange(from=0) public int getLineCount();
+    method @Px public float getLineDescent(@IntRange(from=0) int);
     method public int getLineHyphenEdit(int);
-    method public float getLineWidth(int);
+    method @Px public float getLineWidth(@IntRange(from=0) int);
     method public boolean hasLineTab(int);
   }
 
   public class MeasuredText {
-    method public void getBounds(int, int, android.graphics.Rect);
-    method public float getCharWidthAt(int);
-    method public char[] getChars();
-    method public float getWidth(int, int);
+    method public void getBounds(@IntRange(from=0) int, @IntRange(from=0) int, @NonNull android.graphics.Rect);
+    method @FloatRange(from=0.0f) @Px public float getCharWidthAt(@IntRange(from=0) int);
+    method @NonNull public char[] getChars();
+    method @FloatRange(from=0.0) @Px public float getWidth(@IntRange(from=0) int, @IntRange(from=0) int);
   }
 
   public static class MeasuredText.Builder {
-    ctor public MeasuredText.Builder(char[]);
-    ctor public MeasuredText.Builder(android.graphics.text.MeasuredText);
-    method public android.graphics.text.MeasuredText.Builder appendReplacementRun(android.graphics.Paint, int, float);
-    method public android.graphics.text.MeasuredText.Builder appendStyleRun(android.graphics.Paint, int, boolean);
+    ctor public MeasuredText.Builder(@NonNull char[]);
+    ctor public MeasuredText.Builder(@NonNull android.graphics.text.MeasuredText);
+    method public android.graphics.text.MeasuredText.Builder appendReplacementRun(@NonNull android.graphics.Paint, @IntRange(from=0) int, @FloatRange(from=0) float);
+    method public android.graphics.text.MeasuredText.Builder appendStyleRun(@NonNull android.graphics.Paint, @IntRange(from=0) int, boolean);
     method public android.graphics.text.MeasuredText build();
     method public android.graphics.text.MeasuredText.Builder setComputeHyphenation(boolean);
     method public android.graphics.text.MeasuredText.Builder setComputeLayout(boolean);
@@ -15902,258 +15857,258 @@
 
 package android.hardware {
 
-  public deprecated class Camera {
-    method public final void addCallbackBuffer(byte[]);
-    method public final void autoFocus(android.hardware.Camera.AutoFocusCallback);
-    method public final void cancelAutoFocus();
-    method public final boolean enableShutterSound(boolean);
-    method protected void finalize();
-    method public static void getCameraInfo(int, android.hardware.Camera.CameraInfo);
-    method public static int getNumberOfCameras();
-    method public android.hardware.Camera.Parameters getParameters();
-    method public final void lock();
-    method public static android.hardware.Camera open(int);
-    method public static android.hardware.Camera open();
-    method public final void reconnect() throws java.io.IOException;
-    method public final void release();
-    method public void setAutoFocusMoveCallback(android.hardware.Camera.AutoFocusMoveCallback);
-    method public final void setDisplayOrientation(int);
-    method public final void setErrorCallback(android.hardware.Camera.ErrorCallback);
-    method public final void setFaceDetectionListener(android.hardware.Camera.FaceDetectionListener);
-    method public final void setOneShotPreviewCallback(android.hardware.Camera.PreviewCallback);
-    method public void setParameters(android.hardware.Camera.Parameters);
-    method public final void setPreviewCallback(android.hardware.Camera.PreviewCallback);
-    method public final void setPreviewCallbackWithBuffer(android.hardware.Camera.PreviewCallback);
-    method public final void setPreviewDisplay(android.view.SurfaceHolder) throws java.io.IOException;
-    method public final void setPreviewTexture(android.graphics.SurfaceTexture) throws java.io.IOException;
-    method public final void setZoomChangeListener(android.hardware.Camera.OnZoomChangeListener);
-    method public final void startFaceDetection();
-    method public final void startPreview();
-    method public final void startSmoothZoom(int);
-    method public final void stopFaceDetection();
-    method public final void stopPreview();
-    method public final void stopSmoothZoom();
-    method public final void takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback);
-    method public final void takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback);
-    method public final void unlock();
-    field public static final java.lang.String ACTION_NEW_PICTURE = "android.hardware.action.NEW_PICTURE";
-    field public static final java.lang.String ACTION_NEW_VIDEO = "android.hardware.action.NEW_VIDEO";
-    field public static final int CAMERA_ERROR_EVICTED = 2; // 0x2
-    field public static final int CAMERA_ERROR_SERVER_DIED = 100; // 0x64
-    field public static final int CAMERA_ERROR_UNKNOWN = 1; // 0x1
+  @Deprecated public class Camera {
+    method @Deprecated public final void addCallbackBuffer(byte[]);
+    method @Deprecated public final void autoFocus(android.hardware.Camera.AutoFocusCallback);
+    method @Deprecated public final void cancelAutoFocus();
+    method @Deprecated public final boolean enableShutterSound(boolean);
+    method @Deprecated protected void finalize();
+    method @Deprecated public static void getCameraInfo(int, android.hardware.Camera.CameraInfo);
+    method @Deprecated public static int getNumberOfCameras();
+    method @Deprecated public android.hardware.Camera.Parameters getParameters();
+    method @Deprecated public final void lock();
+    method @Deprecated public static android.hardware.Camera open(int);
+    method @Deprecated public static android.hardware.Camera open();
+    method @Deprecated public final void reconnect() throws java.io.IOException;
+    method @Deprecated public final void release();
+    method @Deprecated public void setAutoFocusMoveCallback(android.hardware.Camera.AutoFocusMoveCallback);
+    method @Deprecated public final void setDisplayOrientation(int);
+    method @Deprecated public final void setErrorCallback(android.hardware.Camera.ErrorCallback);
+    method @Deprecated public final void setFaceDetectionListener(android.hardware.Camera.FaceDetectionListener);
+    method @Deprecated public final void setOneShotPreviewCallback(android.hardware.Camera.PreviewCallback);
+    method @Deprecated public void setParameters(android.hardware.Camera.Parameters);
+    method @Deprecated public final void setPreviewCallback(android.hardware.Camera.PreviewCallback);
+    method @Deprecated public final void setPreviewCallbackWithBuffer(android.hardware.Camera.PreviewCallback);
+    method @Deprecated public final void setPreviewDisplay(android.view.SurfaceHolder) throws java.io.IOException;
+    method @Deprecated public final void setPreviewTexture(android.graphics.SurfaceTexture) throws java.io.IOException;
+    method @Deprecated public final void setZoomChangeListener(android.hardware.Camera.OnZoomChangeListener);
+    method @Deprecated public final void startFaceDetection();
+    method @Deprecated public final void startPreview();
+    method @Deprecated public final void startSmoothZoom(int);
+    method @Deprecated public final void stopFaceDetection();
+    method @Deprecated public final void stopPreview();
+    method @Deprecated public final void stopSmoothZoom();
+    method @Deprecated public final void takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback);
+    method @Deprecated public final void takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback);
+    method @Deprecated public final void unlock();
+    field @Deprecated public static final String ACTION_NEW_PICTURE = "android.hardware.action.NEW_PICTURE";
+    field @Deprecated public static final String ACTION_NEW_VIDEO = "android.hardware.action.NEW_VIDEO";
+    field @Deprecated public static final int CAMERA_ERROR_EVICTED = 2; // 0x2
+    field @Deprecated public static final int CAMERA_ERROR_SERVER_DIED = 100; // 0x64
+    field @Deprecated public static final int CAMERA_ERROR_UNKNOWN = 1; // 0x1
   }
 
-  public static deprecated class Camera.Area {
-    ctor public Camera.Area(android.graphics.Rect, int);
-    field public android.graphics.Rect rect;
-    field public int weight;
+  @Deprecated public static class Camera.Area {
+    ctor @Deprecated public Camera.Area(android.graphics.Rect, int);
+    field @Deprecated public android.graphics.Rect rect;
+    field @Deprecated public int weight;
   }
 
-  public static abstract deprecated interface Camera.AutoFocusCallback {
-    method public abstract void onAutoFocus(boolean, android.hardware.Camera);
+  @Deprecated public static interface Camera.AutoFocusCallback {
+    method @Deprecated public void onAutoFocus(boolean, android.hardware.Camera);
   }
 
-  public static abstract deprecated interface Camera.AutoFocusMoveCallback {
-    method public abstract void onAutoFocusMoving(boolean, android.hardware.Camera);
+  @Deprecated public static interface Camera.AutoFocusMoveCallback {
+    method @Deprecated public void onAutoFocusMoving(boolean, android.hardware.Camera);
   }
 
-  public static deprecated class Camera.CameraInfo {
-    ctor public Camera.CameraInfo();
-    field public static final int CAMERA_FACING_BACK = 0; // 0x0
-    field public static final int CAMERA_FACING_FRONT = 1; // 0x1
-    field public boolean canDisableShutterSound;
-    field public int facing;
-    field public int orientation;
+  @Deprecated public static class Camera.CameraInfo {
+    ctor @Deprecated public Camera.CameraInfo();
+    field @Deprecated public static final int CAMERA_FACING_BACK = 0; // 0x0
+    field @Deprecated public static final int CAMERA_FACING_FRONT = 1; // 0x1
+    field @Deprecated public boolean canDisableShutterSound;
+    field @Deprecated public int facing;
+    field @Deprecated public int orientation;
   }
 
-  public static abstract deprecated interface Camera.ErrorCallback {
-    method public abstract void onError(int, android.hardware.Camera);
+  @Deprecated public static interface Camera.ErrorCallback {
+    method @Deprecated public void onError(int, android.hardware.Camera);
   }
 
-  public static deprecated class Camera.Face {
-    ctor public Camera.Face();
-    field public int id;
-    field public android.graphics.Point leftEye;
-    field public android.graphics.Point mouth;
-    field public android.graphics.Rect rect;
-    field public android.graphics.Point rightEye;
-    field public int score;
+  @Deprecated public static class Camera.Face {
+    ctor @Deprecated public Camera.Face();
+    field @Deprecated public int id;
+    field @Deprecated public android.graphics.Point leftEye;
+    field @Deprecated public android.graphics.Point mouth;
+    field @Deprecated public android.graphics.Rect rect;
+    field @Deprecated public android.graphics.Point rightEye;
+    field @Deprecated public int score;
   }
 
-  public static abstract deprecated interface Camera.FaceDetectionListener {
-    method public abstract void onFaceDetection(android.hardware.Camera.Face[], android.hardware.Camera);
+  @Deprecated public static interface Camera.FaceDetectionListener {
+    method @Deprecated public void onFaceDetection(android.hardware.Camera.Face[], android.hardware.Camera);
   }
 
-  public static abstract deprecated interface Camera.OnZoomChangeListener {
-    method public abstract void onZoomChange(int, boolean, android.hardware.Camera);
+  @Deprecated public static interface Camera.OnZoomChangeListener {
+    method @Deprecated public void onZoomChange(int, boolean, android.hardware.Camera);
   }
 
-  public deprecated class Camera.Parameters {
-    method public java.lang.String flatten();
-    method public java.lang.String get(java.lang.String);
-    method public java.lang.String getAntibanding();
-    method public boolean getAutoExposureLock();
-    method public boolean getAutoWhiteBalanceLock();
-    method public java.lang.String getColorEffect();
-    method public int getExposureCompensation();
-    method public float getExposureCompensationStep();
-    method public java.lang.String getFlashMode();
-    method public float getFocalLength();
-    method public java.util.List<android.hardware.Camera.Area> getFocusAreas();
-    method public void getFocusDistances(float[]);
-    method public java.lang.String getFocusMode();
-    method public float getHorizontalViewAngle();
-    method public int getInt(java.lang.String);
-    method public int getJpegQuality();
-    method public int getJpegThumbnailQuality();
-    method public android.hardware.Camera.Size getJpegThumbnailSize();
-    method public int getMaxExposureCompensation();
-    method public int getMaxNumDetectedFaces();
-    method public int getMaxNumFocusAreas();
-    method public int getMaxNumMeteringAreas();
-    method public int getMaxZoom();
-    method public java.util.List<android.hardware.Camera.Area> getMeteringAreas();
-    method public int getMinExposureCompensation();
-    method public int getPictureFormat();
-    method public android.hardware.Camera.Size getPictureSize();
-    method public android.hardware.Camera.Size getPreferredPreviewSizeForVideo();
-    method public int getPreviewFormat();
-    method public void getPreviewFpsRange(int[]);
-    method public deprecated int getPreviewFrameRate();
-    method public android.hardware.Camera.Size getPreviewSize();
-    method public java.lang.String getSceneMode();
-    method public java.util.List<java.lang.String> getSupportedAntibanding();
-    method public java.util.List<java.lang.String> getSupportedColorEffects();
-    method public java.util.List<java.lang.String> getSupportedFlashModes();
-    method public java.util.List<java.lang.String> getSupportedFocusModes();
-    method public java.util.List<android.hardware.Camera.Size> getSupportedJpegThumbnailSizes();
-    method public java.util.List<java.lang.Integer> getSupportedPictureFormats();
-    method public java.util.List<android.hardware.Camera.Size> getSupportedPictureSizes();
-    method public java.util.List<java.lang.Integer> getSupportedPreviewFormats();
-    method public java.util.List<int[]> getSupportedPreviewFpsRange();
-    method public deprecated java.util.List<java.lang.Integer> getSupportedPreviewFrameRates();
-    method public java.util.List<android.hardware.Camera.Size> getSupportedPreviewSizes();
-    method public java.util.List<java.lang.String> getSupportedSceneModes();
-    method public java.util.List<android.hardware.Camera.Size> getSupportedVideoSizes();
-    method public java.util.List<java.lang.String> getSupportedWhiteBalance();
-    method public float getVerticalViewAngle();
-    method public boolean getVideoStabilization();
-    method public java.lang.String getWhiteBalance();
-    method public int getZoom();
-    method public java.util.List<java.lang.Integer> getZoomRatios();
-    method public boolean isAutoExposureLockSupported();
-    method public boolean isAutoWhiteBalanceLockSupported();
-    method public boolean isSmoothZoomSupported();
-    method public boolean isVideoSnapshotSupported();
-    method public boolean isVideoStabilizationSupported();
-    method public boolean isZoomSupported();
-    method public void remove(java.lang.String);
-    method public void removeGpsData();
-    method public void set(java.lang.String, java.lang.String);
-    method public void set(java.lang.String, int);
-    method public void setAntibanding(java.lang.String);
-    method public void setAutoExposureLock(boolean);
-    method public void setAutoWhiteBalanceLock(boolean);
-    method public void setColorEffect(java.lang.String);
-    method public void setExposureCompensation(int);
-    method public void setFlashMode(java.lang.String);
-    method public void setFocusAreas(java.util.List<android.hardware.Camera.Area>);
-    method public void setFocusMode(java.lang.String);
-    method public void setGpsAltitude(double);
-    method public void setGpsLatitude(double);
-    method public void setGpsLongitude(double);
-    method public void setGpsProcessingMethod(java.lang.String);
-    method public void setGpsTimestamp(long);
-    method public void setJpegQuality(int);
-    method public void setJpegThumbnailQuality(int);
-    method public void setJpegThumbnailSize(int, int);
-    method public void setMeteringAreas(java.util.List<android.hardware.Camera.Area>);
-    method public void setPictureFormat(int);
-    method public void setPictureSize(int, int);
-    method public void setPreviewFormat(int);
-    method public void setPreviewFpsRange(int, int);
-    method public deprecated void setPreviewFrameRate(int);
-    method public void setPreviewSize(int, int);
-    method public void setRecordingHint(boolean);
-    method public void setRotation(int);
-    method public void setSceneMode(java.lang.String);
-    method public void setVideoStabilization(boolean);
-    method public void setWhiteBalance(java.lang.String);
-    method public void setZoom(int);
-    method public void unflatten(java.lang.String);
-    field public static final java.lang.String ANTIBANDING_50HZ = "50hz";
-    field public static final java.lang.String ANTIBANDING_60HZ = "60hz";
-    field public static final java.lang.String ANTIBANDING_AUTO = "auto";
-    field public static final java.lang.String ANTIBANDING_OFF = "off";
-    field public static final java.lang.String EFFECT_AQUA = "aqua";
-    field public static final java.lang.String EFFECT_BLACKBOARD = "blackboard";
-    field public static final java.lang.String EFFECT_MONO = "mono";
-    field public static final java.lang.String EFFECT_NEGATIVE = "negative";
-    field public static final java.lang.String EFFECT_NONE = "none";
-    field public static final java.lang.String EFFECT_POSTERIZE = "posterize";
-    field public static final java.lang.String EFFECT_SEPIA = "sepia";
-    field public static final java.lang.String EFFECT_SOLARIZE = "solarize";
-    field public static final java.lang.String EFFECT_WHITEBOARD = "whiteboard";
-    field public static final java.lang.String FLASH_MODE_AUTO = "auto";
-    field public static final java.lang.String FLASH_MODE_OFF = "off";
-    field public static final java.lang.String FLASH_MODE_ON = "on";
-    field public static final java.lang.String FLASH_MODE_RED_EYE = "red-eye";
-    field public static final java.lang.String FLASH_MODE_TORCH = "torch";
-    field public static final int FOCUS_DISTANCE_FAR_INDEX = 2; // 0x2
-    field public static final int FOCUS_DISTANCE_NEAR_INDEX = 0; // 0x0
-    field public static final int FOCUS_DISTANCE_OPTIMAL_INDEX = 1; // 0x1
-    field public static final java.lang.String FOCUS_MODE_AUTO = "auto";
-    field public static final java.lang.String FOCUS_MODE_CONTINUOUS_PICTURE = "continuous-picture";
-    field public static final java.lang.String FOCUS_MODE_CONTINUOUS_VIDEO = "continuous-video";
-    field public static final java.lang.String FOCUS_MODE_EDOF = "edof";
-    field public static final java.lang.String FOCUS_MODE_FIXED = "fixed";
-    field public static final java.lang.String FOCUS_MODE_INFINITY = "infinity";
-    field public static final java.lang.String FOCUS_MODE_MACRO = "macro";
-    field public static final int PREVIEW_FPS_MAX_INDEX = 1; // 0x1
-    field public static final int PREVIEW_FPS_MIN_INDEX = 0; // 0x0
-    field public static final java.lang.String SCENE_MODE_ACTION = "action";
-    field public static final java.lang.String SCENE_MODE_AUTO = "auto";
-    field public static final java.lang.String SCENE_MODE_BARCODE = "barcode";
-    field public static final java.lang.String SCENE_MODE_BEACH = "beach";
-    field public static final java.lang.String SCENE_MODE_CANDLELIGHT = "candlelight";
-    field public static final java.lang.String SCENE_MODE_FIREWORKS = "fireworks";
-    field public static final java.lang.String SCENE_MODE_HDR = "hdr";
-    field public static final java.lang.String SCENE_MODE_LANDSCAPE = "landscape";
-    field public static final java.lang.String SCENE_MODE_NIGHT = "night";
-    field public static final java.lang.String SCENE_MODE_NIGHT_PORTRAIT = "night-portrait";
-    field public static final java.lang.String SCENE_MODE_PARTY = "party";
-    field public static final java.lang.String SCENE_MODE_PORTRAIT = "portrait";
-    field public static final java.lang.String SCENE_MODE_SNOW = "snow";
-    field public static final java.lang.String SCENE_MODE_SPORTS = "sports";
-    field public static final java.lang.String SCENE_MODE_STEADYPHOTO = "steadyphoto";
-    field public static final java.lang.String SCENE_MODE_SUNSET = "sunset";
-    field public static final java.lang.String SCENE_MODE_THEATRE = "theatre";
-    field public static final java.lang.String WHITE_BALANCE_AUTO = "auto";
-    field public static final java.lang.String WHITE_BALANCE_CLOUDY_DAYLIGHT = "cloudy-daylight";
-    field public static final java.lang.String WHITE_BALANCE_DAYLIGHT = "daylight";
-    field public static final java.lang.String WHITE_BALANCE_FLUORESCENT = "fluorescent";
-    field public static final java.lang.String WHITE_BALANCE_INCANDESCENT = "incandescent";
-    field public static final java.lang.String WHITE_BALANCE_SHADE = "shade";
-    field public static final java.lang.String WHITE_BALANCE_TWILIGHT = "twilight";
-    field public static final java.lang.String WHITE_BALANCE_WARM_FLUORESCENT = "warm-fluorescent";
+  @Deprecated public class Camera.Parameters {
+    method @Deprecated public String flatten();
+    method @Deprecated public String get(String);
+    method @Deprecated public String getAntibanding();
+    method @Deprecated public boolean getAutoExposureLock();
+    method @Deprecated public boolean getAutoWhiteBalanceLock();
+    method @Deprecated public String getColorEffect();
+    method @Deprecated public int getExposureCompensation();
+    method @Deprecated public float getExposureCompensationStep();
+    method @Deprecated public String getFlashMode();
+    method @Deprecated public float getFocalLength();
+    method @Deprecated public java.util.List<android.hardware.Camera.Area> getFocusAreas();
+    method @Deprecated public void getFocusDistances(float[]);
+    method @Deprecated public String getFocusMode();
+    method @Deprecated public float getHorizontalViewAngle();
+    method @Deprecated public int getInt(String);
+    method @Deprecated public int getJpegQuality();
+    method @Deprecated public int getJpegThumbnailQuality();
+    method @Deprecated public android.hardware.Camera.Size getJpegThumbnailSize();
+    method @Deprecated public int getMaxExposureCompensation();
+    method @Deprecated public int getMaxNumDetectedFaces();
+    method @Deprecated public int getMaxNumFocusAreas();
+    method @Deprecated public int getMaxNumMeteringAreas();
+    method @Deprecated public int getMaxZoom();
+    method @Deprecated public java.util.List<android.hardware.Camera.Area> getMeteringAreas();
+    method @Deprecated public int getMinExposureCompensation();
+    method @Deprecated public int getPictureFormat();
+    method @Deprecated public android.hardware.Camera.Size getPictureSize();
+    method @Deprecated public android.hardware.Camera.Size getPreferredPreviewSizeForVideo();
+    method @Deprecated public int getPreviewFormat();
+    method @Deprecated public void getPreviewFpsRange(int[]);
+    method @Deprecated public int getPreviewFrameRate();
+    method @Deprecated public android.hardware.Camera.Size getPreviewSize();
+    method @Deprecated public String getSceneMode();
+    method @Deprecated public java.util.List<java.lang.String> getSupportedAntibanding();
+    method @Deprecated public java.util.List<java.lang.String> getSupportedColorEffects();
+    method @Deprecated public java.util.List<java.lang.String> getSupportedFlashModes();
+    method @Deprecated public java.util.List<java.lang.String> getSupportedFocusModes();
+    method @Deprecated public java.util.List<android.hardware.Camera.Size> getSupportedJpegThumbnailSizes();
+    method @Deprecated public java.util.List<java.lang.Integer> getSupportedPictureFormats();
+    method @Deprecated public java.util.List<android.hardware.Camera.Size> getSupportedPictureSizes();
+    method @Deprecated public java.util.List<java.lang.Integer> getSupportedPreviewFormats();
+    method @Deprecated public java.util.List<int[]> getSupportedPreviewFpsRange();
+    method @Deprecated public java.util.List<java.lang.Integer> getSupportedPreviewFrameRates();
+    method @Deprecated public java.util.List<android.hardware.Camera.Size> getSupportedPreviewSizes();
+    method @Deprecated public java.util.List<java.lang.String> getSupportedSceneModes();
+    method @Deprecated public java.util.List<android.hardware.Camera.Size> getSupportedVideoSizes();
+    method @Deprecated public java.util.List<java.lang.String> getSupportedWhiteBalance();
+    method @Deprecated public float getVerticalViewAngle();
+    method @Deprecated public boolean getVideoStabilization();
+    method @Deprecated public String getWhiteBalance();
+    method @Deprecated public int getZoom();
+    method @Deprecated public java.util.List<java.lang.Integer> getZoomRatios();
+    method @Deprecated public boolean isAutoExposureLockSupported();
+    method @Deprecated public boolean isAutoWhiteBalanceLockSupported();
+    method @Deprecated public boolean isSmoothZoomSupported();
+    method @Deprecated public boolean isVideoSnapshotSupported();
+    method @Deprecated public boolean isVideoStabilizationSupported();
+    method @Deprecated public boolean isZoomSupported();
+    method @Deprecated public void remove(String);
+    method @Deprecated public void removeGpsData();
+    method @Deprecated public void set(String, String);
+    method @Deprecated public void set(String, int);
+    method @Deprecated public void setAntibanding(String);
+    method @Deprecated public void setAutoExposureLock(boolean);
+    method @Deprecated public void setAutoWhiteBalanceLock(boolean);
+    method @Deprecated public void setColorEffect(String);
+    method @Deprecated public void setExposureCompensation(int);
+    method @Deprecated public void setFlashMode(String);
+    method @Deprecated public void setFocusAreas(java.util.List<android.hardware.Camera.Area>);
+    method @Deprecated public void setFocusMode(String);
+    method @Deprecated public void setGpsAltitude(double);
+    method @Deprecated public void setGpsLatitude(double);
+    method @Deprecated public void setGpsLongitude(double);
+    method @Deprecated public void setGpsProcessingMethod(String);
+    method @Deprecated public void setGpsTimestamp(long);
+    method @Deprecated public void setJpegQuality(int);
+    method @Deprecated public void setJpegThumbnailQuality(int);
+    method @Deprecated public void setJpegThumbnailSize(int, int);
+    method @Deprecated public void setMeteringAreas(java.util.List<android.hardware.Camera.Area>);
+    method @Deprecated public void setPictureFormat(int);
+    method @Deprecated public void setPictureSize(int, int);
+    method @Deprecated public void setPreviewFormat(int);
+    method @Deprecated public void setPreviewFpsRange(int, int);
+    method @Deprecated public void setPreviewFrameRate(int);
+    method @Deprecated public void setPreviewSize(int, int);
+    method @Deprecated public void setRecordingHint(boolean);
+    method @Deprecated public void setRotation(int);
+    method @Deprecated public void setSceneMode(String);
+    method @Deprecated public void setVideoStabilization(boolean);
+    method @Deprecated public void setWhiteBalance(String);
+    method @Deprecated public void setZoom(int);
+    method @Deprecated public void unflatten(String);
+    field @Deprecated public static final String ANTIBANDING_50HZ = "50hz";
+    field @Deprecated public static final String ANTIBANDING_60HZ = "60hz";
+    field @Deprecated public static final String ANTIBANDING_AUTO = "auto";
+    field @Deprecated public static final String ANTIBANDING_OFF = "off";
+    field @Deprecated public static final String EFFECT_AQUA = "aqua";
+    field @Deprecated public static final String EFFECT_BLACKBOARD = "blackboard";
+    field @Deprecated public static final String EFFECT_MONO = "mono";
+    field @Deprecated public static final String EFFECT_NEGATIVE = "negative";
+    field @Deprecated public static final String EFFECT_NONE = "none";
+    field @Deprecated public static final String EFFECT_POSTERIZE = "posterize";
+    field @Deprecated public static final String EFFECT_SEPIA = "sepia";
+    field @Deprecated public static final String EFFECT_SOLARIZE = "solarize";
+    field @Deprecated public static final String EFFECT_WHITEBOARD = "whiteboard";
+    field @Deprecated public static final String FLASH_MODE_AUTO = "auto";
+    field @Deprecated public static final String FLASH_MODE_OFF = "off";
+    field @Deprecated public static final String FLASH_MODE_ON = "on";
+    field @Deprecated public static final String FLASH_MODE_RED_EYE = "red-eye";
+    field @Deprecated public static final String FLASH_MODE_TORCH = "torch";
+    field @Deprecated public static final int FOCUS_DISTANCE_FAR_INDEX = 2; // 0x2
+    field @Deprecated public static final int FOCUS_DISTANCE_NEAR_INDEX = 0; // 0x0
+    field @Deprecated public static final int FOCUS_DISTANCE_OPTIMAL_INDEX = 1; // 0x1
+    field @Deprecated public static final String FOCUS_MODE_AUTO = "auto";
+    field @Deprecated public static final String FOCUS_MODE_CONTINUOUS_PICTURE = "continuous-picture";
+    field @Deprecated public static final String FOCUS_MODE_CONTINUOUS_VIDEO = "continuous-video";
+    field @Deprecated public static final String FOCUS_MODE_EDOF = "edof";
+    field @Deprecated public static final String FOCUS_MODE_FIXED = "fixed";
+    field @Deprecated public static final String FOCUS_MODE_INFINITY = "infinity";
+    field @Deprecated public static final String FOCUS_MODE_MACRO = "macro";
+    field @Deprecated public static final int PREVIEW_FPS_MAX_INDEX = 1; // 0x1
+    field @Deprecated public static final int PREVIEW_FPS_MIN_INDEX = 0; // 0x0
+    field @Deprecated public static final String SCENE_MODE_ACTION = "action";
+    field @Deprecated public static final String SCENE_MODE_AUTO = "auto";
+    field @Deprecated public static final String SCENE_MODE_BARCODE = "barcode";
+    field @Deprecated public static final String SCENE_MODE_BEACH = "beach";
+    field @Deprecated public static final String SCENE_MODE_CANDLELIGHT = "candlelight";
+    field @Deprecated public static final String SCENE_MODE_FIREWORKS = "fireworks";
+    field @Deprecated public static final String SCENE_MODE_HDR = "hdr";
+    field @Deprecated public static final String SCENE_MODE_LANDSCAPE = "landscape";
+    field @Deprecated public static final String SCENE_MODE_NIGHT = "night";
+    field @Deprecated public static final String SCENE_MODE_NIGHT_PORTRAIT = "night-portrait";
+    field @Deprecated public static final String SCENE_MODE_PARTY = "party";
+    field @Deprecated public static final String SCENE_MODE_PORTRAIT = "portrait";
+    field @Deprecated public static final String SCENE_MODE_SNOW = "snow";
+    field @Deprecated public static final String SCENE_MODE_SPORTS = "sports";
+    field @Deprecated public static final String SCENE_MODE_STEADYPHOTO = "steadyphoto";
+    field @Deprecated public static final String SCENE_MODE_SUNSET = "sunset";
+    field @Deprecated public static final String SCENE_MODE_THEATRE = "theatre";
+    field @Deprecated public static final String WHITE_BALANCE_AUTO = "auto";
+    field @Deprecated public static final String WHITE_BALANCE_CLOUDY_DAYLIGHT = "cloudy-daylight";
+    field @Deprecated public static final String WHITE_BALANCE_DAYLIGHT = "daylight";
+    field @Deprecated public static final String WHITE_BALANCE_FLUORESCENT = "fluorescent";
+    field @Deprecated public static final String WHITE_BALANCE_INCANDESCENT = "incandescent";
+    field @Deprecated public static final String WHITE_BALANCE_SHADE = "shade";
+    field @Deprecated public static final String WHITE_BALANCE_TWILIGHT = "twilight";
+    field @Deprecated public static final String WHITE_BALANCE_WARM_FLUORESCENT = "warm-fluorescent";
   }
 
-  public static abstract deprecated interface Camera.PictureCallback {
-    method public abstract void onPictureTaken(byte[], android.hardware.Camera);
+  @Deprecated public static interface Camera.PictureCallback {
+    method @Deprecated public void onPictureTaken(byte[], android.hardware.Camera);
   }
 
-  public static abstract deprecated interface Camera.PreviewCallback {
-    method public abstract void onPreviewFrame(byte[], android.hardware.Camera);
+  @Deprecated public static interface Camera.PreviewCallback {
+    method @Deprecated public void onPreviewFrame(byte[], android.hardware.Camera);
   }
 
-  public static abstract deprecated interface Camera.ShutterCallback {
-    method public abstract void onShutter();
+  @Deprecated public static interface Camera.ShutterCallback {
+    method @Deprecated public void onShutter();
   }
 
-  public deprecated class Camera.Size {
-    ctor public Camera.Size(int, int);
-    field public int height;
-    field public int width;
+  @Deprecated public class Camera.Size {
+    ctor @Deprecated public Camera.Size(int, int);
+    field @Deprecated public int height;
+    field @Deprecated public int width;
   }
 
   public final class ConsumerIrManager {
@@ -16181,7 +16136,7 @@
 
   public final class HardwareBuffer implements java.lang.AutoCloseable android.os.Parcelable {
     method public void close();
-    method public static android.hardware.HardwareBuffer create(int, int, int, int, long);
+    method @NonNull public static android.hardware.HardwareBuffer create(int, int, int, int, long);
     method public int describeContents();
     method public int getFormat();
     method public int getHeight();
@@ -16226,13 +16181,13 @@
     method public int getMaxDelay();
     method public float getMaximumRange();
     method public int getMinDelay();
-    method public java.lang.String getName();
+    method public String getName();
     method public float getPower();
     method public int getReportingMode();
     method public float getResolution();
-    method public java.lang.String getStringType();
+    method public String getStringType();
     method public int getType();
-    method public java.lang.String getVendor();
+    method public String getVendor();
     method public int getVersion();
     method public boolean isAdditionalInfoSupported();
     method public boolean isDirectChannelTypeSupported(int);
@@ -16242,33 +16197,33 @@
     field public static final int REPORTING_MODE_ONE_SHOT = 2; // 0x2
     field public static final int REPORTING_MODE_ON_CHANGE = 1; // 0x1
     field public static final int REPORTING_MODE_SPECIAL_TRIGGER = 3; // 0x3
-    field public static final java.lang.String STRING_TYPE_ACCELEROMETER = "android.sensor.accelerometer";
-    field public static final java.lang.String STRING_TYPE_ACCELEROMETER_UNCALIBRATED = "android.sensor.accelerometer_uncalibrated";
-    field public static final java.lang.String STRING_TYPE_AMBIENT_TEMPERATURE = "android.sensor.ambient_temperature";
-    field public static final java.lang.String STRING_TYPE_GAME_ROTATION_VECTOR = "android.sensor.game_rotation_vector";
-    field public static final java.lang.String STRING_TYPE_GEOMAGNETIC_ROTATION_VECTOR = "android.sensor.geomagnetic_rotation_vector";
-    field public static final java.lang.String STRING_TYPE_GRAVITY = "android.sensor.gravity";
-    field public static final java.lang.String STRING_TYPE_GYROSCOPE = "android.sensor.gyroscope";
-    field public static final java.lang.String STRING_TYPE_GYROSCOPE_UNCALIBRATED = "android.sensor.gyroscope_uncalibrated";
-    field public static final java.lang.String STRING_TYPE_HEART_BEAT = "android.sensor.heart_beat";
-    field public static final java.lang.String STRING_TYPE_HEART_RATE = "android.sensor.heart_rate";
-    field public static final java.lang.String STRING_TYPE_LIGHT = "android.sensor.light";
-    field public static final java.lang.String STRING_TYPE_LINEAR_ACCELERATION = "android.sensor.linear_acceleration";
-    field public static final java.lang.String STRING_TYPE_LOW_LATENCY_OFFBODY_DETECT = "android.sensor.low_latency_offbody_detect";
-    field public static final java.lang.String STRING_TYPE_MAGNETIC_FIELD = "android.sensor.magnetic_field";
-    field public static final java.lang.String STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED = "android.sensor.magnetic_field_uncalibrated";
-    field public static final java.lang.String STRING_TYPE_MOTION_DETECT = "android.sensor.motion_detect";
-    field public static final deprecated java.lang.String STRING_TYPE_ORIENTATION = "android.sensor.orientation";
-    field public static final java.lang.String STRING_TYPE_POSE_6DOF = "android.sensor.pose_6dof";
-    field public static final java.lang.String STRING_TYPE_PRESSURE = "android.sensor.pressure";
-    field public static final java.lang.String STRING_TYPE_PROXIMITY = "android.sensor.proximity";
-    field public static final java.lang.String STRING_TYPE_RELATIVE_HUMIDITY = "android.sensor.relative_humidity";
-    field public static final java.lang.String STRING_TYPE_ROTATION_VECTOR = "android.sensor.rotation_vector";
-    field public static final java.lang.String STRING_TYPE_SIGNIFICANT_MOTION = "android.sensor.significant_motion";
-    field public static final java.lang.String STRING_TYPE_STATIONARY_DETECT = "android.sensor.stationary_detect";
-    field public static final java.lang.String STRING_TYPE_STEP_COUNTER = "android.sensor.step_counter";
-    field public static final java.lang.String STRING_TYPE_STEP_DETECTOR = "android.sensor.step_detector";
-    field public static final deprecated java.lang.String STRING_TYPE_TEMPERATURE = "android.sensor.temperature";
+    field public static final String STRING_TYPE_ACCELEROMETER = "android.sensor.accelerometer";
+    field public static final String STRING_TYPE_ACCELEROMETER_UNCALIBRATED = "android.sensor.accelerometer_uncalibrated";
+    field public static final String STRING_TYPE_AMBIENT_TEMPERATURE = "android.sensor.ambient_temperature";
+    field public static final String STRING_TYPE_GAME_ROTATION_VECTOR = "android.sensor.game_rotation_vector";
+    field public static final String STRING_TYPE_GEOMAGNETIC_ROTATION_VECTOR = "android.sensor.geomagnetic_rotation_vector";
+    field public static final String STRING_TYPE_GRAVITY = "android.sensor.gravity";
+    field public static final String STRING_TYPE_GYROSCOPE = "android.sensor.gyroscope";
+    field public static final String STRING_TYPE_GYROSCOPE_UNCALIBRATED = "android.sensor.gyroscope_uncalibrated";
+    field public static final String STRING_TYPE_HEART_BEAT = "android.sensor.heart_beat";
+    field public static final String STRING_TYPE_HEART_RATE = "android.sensor.heart_rate";
+    field public static final String STRING_TYPE_LIGHT = "android.sensor.light";
+    field public static final String STRING_TYPE_LINEAR_ACCELERATION = "android.sensor.linear_acceleration";
+    field public static final String STRING_TYPE_LOW_LATENCY_OFFBODY_DETECT = "android.sensor.low_latency_offbody_detect";
+    field public static final String STRING_TYPE_MAGNETIC_FIELD = "android.sensor.magnetic_field";
+    field public static final String STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED = "android.sensor.magnetic_field_uncalibrated";
+    field public static final String STRING_TYPE_MOTION_DETECT = "android.sensor.motion_detect";
+    field @Deprecated public static final String STRING_TYPE_ORIENTATION = "android.sensor.orientation";
+    field public static final String STRING_TYPE_POSE_6DOF = "android.sensor.pose_6dof";
+    field public static final String STRING_TYPE_PRESSURE = "android.sensor.pressure";
+    field public static final String STRING_TYPE_PROXIMITY = "android.sensor.proximity";
+    field public static final String STRING_TYPE_RELATIVE_HUMIDITY = "android.sensor.relative_humidity";
+    field public static final String STRING_TYPE_ROTATION_VECTOR = "android.sensor.rotation_vector";
+    field public static final String STRING_TYPE_SIGNIFICANT_MOTION = "android.sensor.significant_motion";
+    field public static final String STRING_TYPE_STATIONARY_DETECT = "android.sensor.stationary_detect";
+    field public static final String STRING_TYPE_STEP_COUNTER = "android.sensor.step_counter";
+    field public static final String STRING_TYPE_STEP_DETECTOR = "android.sensor.step_detector";
+    field @Deprecated public static final String STRING_TYPE_TEMPERATURE = "android.sensor.temperature";
     field public static final int TYPE_ACCELEROMETER = 1; // 0x1
     field public static final int TYPE_ACCELEROMETER_UNCALIBRATED = 35; // 0x23
     field public static final int TYPE_ALL = -1; // 0xffffffff
@@ -16287,7 +16242,7 @@
     field public static final int TYPE_MAGNETIC_FIELD = 2; // 0x2
     field public static final int TYPE_MAGNETIC_FIELD_UNCALIBRATED = 14; // 0xe
     field public static final int TYPE_MOTION_DETECT = 30; // 0x1e
-    field public static final deprecated int TYPE_ORIENTATION = 3; // 0x3
+    field @Deprecated public static final int TYPE_ORIENTATION = 3; // 0x3
     field public static final int TYPE_POSE_6DOF = 28; // 0x1c
     field public static final int TYPE_PRESSURE = 6; // 0x6
     field public static final int TYPE_PROXIMITY = 8; // 0x8
@@ -16297,7 +16252,7 @@
     field public static final int TYPE_STATIONARY_DETECT = 29; // 0x1d
     field public static final int TYPE_STEP_COUNTER = 19; // 0x13
     field public static final int TYPE_STEP_DETECTOR = 18; // 0x12
-    field public static final deprecated int TYPE_TEMPERATURE = 7; // 0x7
+    field @Deprecated public static final int TYPE_TEMPERATURE = 7; // 0x7
   }
 
   public class SensorAdditionalInfo {
@@ -16342,18 +16297,18 @@
     method public void onSensorChanged(android.hardware.SensorEvent);
   }
 
-  public abstract interface SensorEventListener {
-    method public abstract void onAccuracyChanged(android.hardware.Sensor, int);
-    method public abstract void onSensorChanged(android.hardware.SensorEvent);
+  public interface SensorEventListener {
+    method public void onAccuracyChanged(android.hardware.Sensor, int);
+    method public void onSensorChanged(android.hardware.SensorEvent);
   }
 
-  public abstract interface SensorEventListener2 implements android.hardware.SensorEventListener {
-    method public abstract void onFlushCompleted(android.hardware.Sensor);
+  public interface SensorEventListener2 extends android.hardware.SensorEventListener {
+    method public void onFlushCompleted(android.hardware.Sensor);
   }
 
-  public abstract deprecated interface SensorListener {
-    method public abstract void onAccuracyChanged(int, int);
-    method public abstract void onSensorChanged(int, float[]);
+  @Deprecated public interface SensorListener {
+    method @Deprecated public void onAccuracyChanged(int, int);
+    method @Deprecated public void onSensorChanged(int, float[]);
   }
 
   public abstract class SensorManager {
@@ -16372,12 +16327,12 @@
     method public static boolean getRotationMatrix(float[], float[], float[], float[]);
     method public static void getRotationMatrixFromVector(float[], float[]);
     method public java.util.List<android.hardware.Sensor> getSensorList(int);
-    method public deprecated int getSensors();
+    method @Deprecated public int getSensors();
     method public boolean isDynamicSensorDiscoverySupported();
     method public void registerDynamicSensorCallback(android.hardware.SensorManager.DynamicSensorCallback);
     method public void registerDynamicSensorCallback(android.hardware.SensorManager.DynamicSensorCallback, android.os.Handler);
-    method public deprecated boolean registerListener(android.hardware.SensorListener, int);
-    method public deprecated boolean registerListener(android.hardware.SensorListener, int, int);
+    method @Deprecated public boolean registerListener(android.hardware.SensorListener, int);
+    method @Deprecated public boolean registerListener(android.hardware.SensorListener, int, int);
     method public boolean registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int);
     method public boolean registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int, int);
     method public boolean registerListener(android.hardware.SensorEventListener, android.hardware.Sensor, int, android.os.Handler);
@@ -16385,8 +16340,8 @@
     method public static boolean remapCoordinateSystem(float[], int, int, float[]);
     method public boolean requestTriggerSensor(android.hardware.TriggerEventListener, android.hardware.Sensor);
     method public void unregisterDynamicSensorCallback(android.hardware.SensorManager.DynamicSensorCallback);
-    method public deprecated void unregisterListener(android.hardware.SensorListener);
-    method public deprecated void unregisterListener(android.hardware.SensorListener, int);
+    method @Deprecated public void unregisterListener(android.hardware.SensorListener);
+    method @Deprecated public void unregisterListener(android.hardware.SensorListener, int);
     method public void unregisterListener(android.hardware.SensorEventListener, android.hardware.Sensor);
     method public void unregisterListener(android.hardware.SensorEventListener);
     field public static final int AXIS_MINUS_X = 129; // 0x81
@@ -16395,9 +16350,9 @@
     field public static final int AXIS_X = 1; // 0x1
     field public static final int AXIS_Y = 2; // 0x2
     field public static final int AXIS_Z = 3; // 0x3
-    field public static final deprecated int DATA_X = 0; // 0x0
-    field public static final deprecated int DATA_Y = 1; // 0x1
-    field public static final deprecated int DATA_Z = 2; // 0x2
+    field @Deprecated public static final int DATA_X = 0; // 0x0
+    field @Deprecated public static final int DATA_Y = 1; // 0x1
+    field @Deprecated public static final int DATA_Z = 2; // 0x2
     field public static final float GRAVITY_DEATH_STAR_I = 3.5303614E-7f;
     field public static final float GRAVITY_EARTH = 9.80665f;
     field public static final float GRAVITY_JUPITER = 23.12f;
@@ -16422,34 +16377,34 @@
     field public static final float MAGNETIC_FIELD_EARTH_MAX = 60.0f;
     field public static final float MAGNETIC_FIELD_EARTH_MIN = 30.0f;
     field public static final float PRESSURE_STANDARD_ATMOSPHERE = 1013.25f;
-    field public static final deprecated int RAW_DATA_INDEX = 3; // 0x3
-    field public static final deprecated int RAW_DATA_X = 3; // 0x3
-    field public static final deprecated int RAW_DATA_Y = 4; // 0x4
-    field public static final deprecated int RAW_DATA_Z = 5; // 0x5
-    field public static final deprecated int SENSOR_ACCELEROMETER = 2; // 0x2
-    field public static final deprecated int SENSOR_ALL = 127; // 0x7f
+    field @Deprecated public static final int RAW_DATA_INDEX = 3; // 0x3
+    field @Deprecated public static final int RAW_DATA_X = 3; // 0x3
+    field @Deprecated public static final int RAW_DATA_Y = 4; // 0x4
+    field @Deprecated public static final int RAW_DATA_Z = 5; // 0x5
+    field @Deprecated public static final int SENSOR_ACCELEROMETER = 2; // 0x2
+    field @Deprecated public static final int SENSOR_ALL = 127; // 0x7f
     field public static final int SENSOR_DELAY_FASTEST = 0; // 0x0
     field public static final int SENSOR_DELAY_GAME = 1; // 0x1
     field public static final int SENSOR_DELAY_NORMAL = 3; // 0x3
     field public static final int SENSOR_DELAY_UI = 2; // 0x2
-    field public static final deprecated int SENSOR_LIGHT = 16; // 0x10
-    field public static final deprecated int SENSOR_MAGNETIC_FIELD = 8; // 0x8
-    field public static final deprecated int SENSOR_MAX = 64; // 0x40
-    field public static final deprecated int SENSOR_MIN = 1; // 0x1
-    field public static final deprecated int SENSOR_ORIENTATION = 1; // 0x1
-    field public static final deprecated int SENSOR_ORIENTATION_RAW = 128; // 0x80
-    field public static final deprecated int SENSOR_PROXIMITY = 32; // 0x20
+    field @Deprecated public static final int SENSOR_LIGHT = 16; // 0x10
+    field @Deprecated public static final int SENSOR_MAGNETIC_FIELD = 8; // 0x8
+    field @Deprecated public static final int SENSOR_MAX = 64; // 0x40
+    field @Deprecated public static final int SENSOR_MIN = 1; // 0x1
+    field @Deprecated public static final int SENSOR_ORIENTATION = 1; // 0x1
+    field @Deprecated public static final int SENSOR_ORIENTATION_RAW = 128; // 0x80
+    field @Deprecated public static final int SENSOR_PROXIMITY = 32; // 0x20
     field public static final int SENSOR_STATUS_ACCURACY_HIGH = 3; // 0x3
     field public static final int SENSOR_STATUS_ACCURACY_LOW = 1; // 0x1
     field public static final int SENSOR_STATUS_ACCURACY_MEDIUM = 2; // 0x2
     field public static final int SENSOR_STATUS_NO_CONTACT = -1; // 0xffffffff
     field public static final int SENSOR_STATUS_UNRELIABLE = 0; // 0x0
-    field public static final deprecated int SENSOR_TEMPERATURE = 4; // 0x4
-    field public static final deprecated int SENSOR_TRICORDER = 64; // 0x40
+    field @Deprecated public static final int SENSOR_TEMPERATURE = 4; // 0x4
+    field @Deprecated public static final int SENSOR_TRICORDER = 64; // 0x40
     field public static final float STANDARD_GRAVITY = 9.80665f;
   }
 
-  public static abstract class SensorManager.DynamicSensorCallback {
+  public abstract static class SensorManager.DynamicSensorCallback {
     ctor public SensorManager.DynamicSensorCallback();
     method public void onDynamicSensorConnected(android.hardware.Sensor);
     method public void onDynamicSensorDisconnected(android.hardware.Sensor);
@@ -16471,7 +16426,7 @@
 package android.hardware.biometrics {
 
   public class BiometricManager {
-    method public int canAuthenticate();
+    method @RequiresPermission(android.Manifest.permission.USE_BIOMETRIC) public int canAuthenticate();
     field public static final int BIOMETRIC_ERROR_HW_UNAVAILABLE = 1; // 0x1
     field public static final int BIOMETRIC_ERROR_NONE_ENROLLED = 11; // 0xb
     field public static final int BIOMETRIC_ERROR_NO_HARDWARE = 12; // 0xc
@@ -16479,8 +16434,8 @@
   }
 
   public class BiometricPrompt {
-    method public void authenticate(android.hardware.biometrics.BiometricPrompt.CryptoObject, android.os.CancellationSignal, java.util.concurrent.Executor, android.hardware.biometrics.BiometricPrompt.AuthenticationCallback);
-    method public void authenticate(android.os.CancellationSignal, java.util.concurrent.Executor, android.hardware.biometrics.BiometricPrompt.AuthenticationCallback);
+    method @RequiresPermission(android.Manifest.permission.USE_BIOMETRIC) public void authenticate(@NonNull android.hardware.biometrics.BiometricPrompt.CryptoObject, @NonNull android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.biometrics.BiometricPrompt.AuthenticationCallback);
+    method @RequiresPermission(android.Manifest.permission.USE_BIOMETRIC) public void authenticate(@NonNull android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.biometrics.BiometricPrompt.AuthenticationCallback);
     field public static final int BIOMETRIC_ACQUIRED_GOOD = 0; // 0x0
     field public static final int BIOMETRIC_ACQUIRED_IMAGER_DIRTY = 3; // 0x3
     field public static final int BIOMETRIC_ACQUIRED_INSUFFICIENT = 2; // 0x2
@@ -16500,11 +16455,11 @@
     field public static final int BIOMETRIC_ERROR_VENDOR = 8; // 0x8
   }
 
-  public static abstract class BiometricPrompt.AuthenticationCallback {
+  public abstract static class BiometricPrompt.AuthenticationCallback {
     ctor public BiometricPrompt.AuthenticationCallback();
-    method public void onAuthenticationError(int, java.lang.CharSequence);
+    method public void onAuthenticationError(int, CharSequence);
     method public void onAuthenticationFailed();
-    method public void onAuthenticationHelp(int, java.lang.CharSequence);
+    method public void onAuthenticationHelp(int, CharSequence);
     method public void onAuthenticationSucceeded(android.hardware.biometrics.BiometricPrompt.AuthenticationResult);
   }
 
@@ -16515,17 +16470,17 @@
   public static class BiometricPrompt.Builder {
     ctor public BiometricPrompt.Builder(android.content.Context);
     method public android.hardware.biometrics.BiometricPrompt build();
-    method public android.hardware.biometrics.BiometricPrompt.Builder setDescription(java.lang.CharSequence);
-    method public android.hardware.biometrics.BiometricPrompt.Builder setNegativeButton(java.lang.CharSequence, java.util.concurrent.Executor, android.content.DialogInterface.OnClickListener);
+    method public android.hardware.biometrics.BiometricPrompt.Builder setDescription(@NonNull CharSequence);
+    method public android.hardware.biometrics.BiometricPrompt.Builder setNegativeButton(@NonNull CharSequence, @NonNull java.util.concurrent.Executor, @NonNull android.content.DialogInterface.OnClickListener);
     method public android.hardware.biometrics.BiometricPrompt.Builder setRequireConfirmation(boolean);
-    method public android.hardware.biometrics.BiometricPrompt.Builder setSubtitle(java.lang.CharSequence);
-    method public android.hardware.biometrics.BiometricPrompt.Builder setTitle(java.lang.CharSequence);
+    method public android.hardware.biometrics.BiometricPrompt.Builder setSubtitle(@NonNull CharSequence);
+    method public android.hardware.biometrics.BiometricPrompt.Builder setTitle(@NonNull CharSequence);
   }
 
   public static final class BiometricPrompt.CryptoObject {
-    ctor public BiometricPrompt.CryptoObject(java.security.Signature);
-    ctor public BiometricPrompt.CryptoObject(javax.crypto.Cipher);
-    ctor public BiometricPrompt.CryptoObject(javax.crypto.Mac);
+    ctor public BiometricPrompt.CryptoObject(@NonNull java.security.Signature);
+    ctor public BiometricPrompt.CryptoObject(@NonNull javax.crypto.Cipher);
+    ctor public BiometricPrompt.CryptoObject(@NonNull javax.crypto.Mac);
     method public javax.crypto.Cipher getCipher();
     method public javax.crypto.Mac getMac();
     method public java.security.Signature getSignature();
@@ -16537,9 +16492,9 @@
 
   public class CameraAccessException extends android.util.AndroidException {
     ctor public CameraAccessException(int);
-    ctor public CameraAccessException(int, java.lang.String);
-    ctor public CameraAccessException(int, java.lang.String, java.lang.Throwable);
-    ctor public CameraAccessException(int, java.lang.Throwable);
+    ctor public CameraAccessException(int, String);
+    ctor public CameraAccessException(int, String, Throwable);
+    ctor public CameraAccessException(int, Throwable);
     method public final int getReason();
     field public static final int CAMERA_DISABLED = 1; // 0x1
     field public static final int CAMERA_DISCONNECTED = 2; // 0x2
@@ -16551,56 +16506,56 @@
   public abstract class CameraCaptureSession implements java.lang.AutoCloseable {
     ctor public CameraCaptureSession();
     method public abstract void abortCaptures() throws android.hardware.camera2.CameraAccessException;
-    method public abstract int capture(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
-    method public abstract int captureBurst(java.util.List<android.hardware.camera2.CaptureRequest>, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
-    method public int captureBurstRequests(java.util.List<android.hardware.camera2.CaptureRequest>, java.util.concurrent.Executor, android.hardware.camera2.CameraCaptureSession.CaptureCallback) throws android.hardware.camera2.CameraAccessException;
-    method public int captureSingleRequest(android.hardware.camera2.CaptureRequest, java.util.concurrent.Executor, android.hardware.camera2.CameraCaptureSession.CaptureCallback) throws android.hardware.camera2.CameraAccessException;
+    method public abstract int capture(@NonNull android.hardware.camera2.CaptureRequest, @Nullable android.hardware.camera2.CameraCaptureSession.CaptureCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method public abstract int captureBurst(@NonNull java.util.List<android.hardware.camera2.CaptureRequest>, @Nullable android.hardware.camera2.CameraCaptureSession.CaptureCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method public int captureBurstRequests(@NonNull java.util.List<android.hardware.camera2.CaptureRequest>, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.camera2.CameraCaptureSession.CaptureCallback) throws android.hardware.camera2.CameraAccessException;
+    method public int captureSingleRequest(@NonNull android.hardware.camera2.CaptureRequest, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.camera2.CameraCaptureSession.CaptureCallback) throws android.hardware.camera2.CameraAccessException;
     method public abstract void close();
     method public abstract void finalizeOutputConfigurations(java.util.List<android.hardware.camera2.params.OutputConfiguration>) throws android.hardware.camera2.CameraAccessException;
-    method public abstract android.hardware.camera2.CameraDevice getDevice();
-    method public abstract android.view.Surface getInputSurface();
+    method @NonNull public abstract android.hardware.camera2.CameraDevice getDevice();
+    method @Nullable public abstract android.view.Surface getInputSurface();
     method public abstract boolean isReprocessable();
-    method public abstract void prepare(android.view.Surface) throws android.hardware.camera2.CameraAccessException;
-    method public abstract int setRepeatingBurst(java.util.List<android.hardware.camera2.CaptureRequest>, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
-    method public int setRepeatingBurstRequests(java.util.List<android.hardware.camera2.CaptureRequest>, java.util.concurrent.Executor, android.hardware.camera2.CameraCaptureSession.CaptureCallback) throws android.hardware.camera2.CameraAccessException;
-    method public abstract int setRepeatingRequest(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
-    method public int setSingleRepeatingRequest(android.hardware.camera2.CaptureRequest, java.util.concurrent.Executor, android.hardware.camera2.CameraCaptureSession.CaptureCallback) throws android.hardware.camera2.CameraAccessException;
+    method public abstract void prepare(@NonNull android.view.Surface) throws android.hardware.camera2.CameraAccessException;
+    method public abstract int setRepeatingBurst(@NonNull java.util.List<android.hardware.camera2.CaptureRequest>, @Nullable android.hardware.camera2.CameraCaptureSession.CaptureCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method public int setRepeatingBurstRequests(@NonNull java.util.List<android.hardware.camera2.CaptureRequest>, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.camera2.CameraCaptureSession.CaptureCallback) throws android.hardware.camera2.CameraAccessException;
+    method public abstract int setRepeatingRequest(@NonNull android.hardware.camera2.CaptureRequest, @Nullable android.hardware.camera2.CameraCaptureSession.CaptureCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method public int setSingleRepeatingRequest(@NonNull android.hardware.camera2.CaptureRequest, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.camera2.CameraCaptureSession.CaptureCallback) throws android.hardware.camera2.CameraAccessException;
     method public abstract void stopRepeating() throws android.hardware.camera2.CameraAccessException;
     method public void updateOutputConfiguration(android.hardware.camera2.params.OutputConfiguration) throws android.hardware.camera2.CameraAccessException;
   }
 
-  public static abstract class CameraCaptureSession.CaptureCallback {
+  public abstract static class CameraCaptureSession.CaptureCallback {
     ctor public CameraCaptureSession.CaptureCallback();
-    method public void onCaptureBufferLost(android.hardware.camera2.CameraCaptureSession, android.hardware.camera2.CaptureRequest, android.view.Surface, long);
-    method public void onCaptureCompleted(android.hardware.camera2.CameraCaptureSession, android.hardware.camera2.CaptureRequest, android.hardware.camera2.TotalCaptureResult);
-    method public void onCaptureFailed(android.hardware.camera2.CameraCaptureSession, android.hardware.camera2.CaptureRequest, android.hardware.camera2.CaptureFailure);
-    method public void onCaptureProgressed(android.hardware.camera2.CameraCaptureSession, android.hardware.camera2.CaptureRequest, android.hardware.camera2.CaptureResult);
-    method public void onCaptureSequenceAborted(android.hardware.camera2.CameraCaptureSession, int);
-    method public void onCaptureSequenceCompleted(android.hardware.camera2.CameraCaptureSession, int, long);
-    method public void onCaptureStarted(android.hardware.camera2.CameraCaptureSession, android.hardware.camera2.CaptureRequest, long, long);
+    method public void onCaptureBufferLost(@NonNull android.hardware.camera2.CameraCaptureSession, @NonNull android.hardware.camera2.CaptureRequest, @NonNull android.view.Surface, long);
+    method public void onCaptureCompleted(@NonNull android.hardware.camera2.CameraCaptureSession, @NonNull android.hardware.camera2.CaptureRequest, @NonNull android.hardware.camera2.TotalCaptureResult);
+    method public void onCaptureFailed(@NonNull android.hardware.camera2.CameraCaptureSession, @NonNull android.hardware.camera2.CaptureRequest, @NonNull android.hardware.camera2.CaptureFailure);
+    method public void onCaptureProgressed(@NonNull android.hardware.camera2.CameraCaptureSession, @NonNull android.hardware.camera2.CaptureRequest, @NonNull android.hardware.camera2.CaptureResult);
+    method public void onCaptureSequenceAborted(@NonNull android.hardware.camera2.CameraCaptureSession, int);
+    method public void onCaptureSequenceCompleted(@NonNull android.hardware.camera2.CameraCaptureSession, int, long);
+    method public void onCaptureStarted(@NonNull android.hardware.camera2.CameraCaptureSession, @NonNull android.hardware.camera2.CaptureRequest, long, long);
   }
 
-  public static abstract class CameraCaptureSession.StateCallback {
+  public abstract static class CameraCaptureSession.StateCallback {
     ctor public CameraCaptureSession.StateCallback();
-    method public void onActive(android.hardware.camera2.CameraCaptureSession);
-    method public void onCaptureQueueEmpty(android.hardware.camera2.CameraCaptureSession);
-    method public void onClosed(android.hardware.camera2.CameraCaptureSession);
-    method public abstract void onConfigureFailed(android.hardware.camera2.CameraCaptureSession);
-    method public abstract void onConfigured(android.hardware.camera2.CameraCaptureSession);
-    method public void onReady(android.hardware.camera2.CameraCaptureSession);
-    method public void onSurfacePrepared(android.hardware.camera2.CameraCaptureSession, android.view.Surface);
+    method public void onActive(@NonNull android.hardware.camera2.CameraCaptureSession);
+    method public void onCaptureQueueEmpty(@NonNull android.hardware.camera2.CameraCaptureSession);
+    method public void onClosed(@NonNull android.hardware.camera2.CameraCaptureSession);
+    method public abstract void onConfigureFailed(@NonNull android.hardware.camera2.CameraCaptureSession);
+    method public abstract void onConfigured(@NonNull android.hardware.camera2.CameraCaptureSession);
+    method public void onReady(@NonNull android.hardware.camera2.CameraCaptureSession);
+    method public void onSurfacePrepared(@NonNull android.hardware.camera2.CameraCaptureSession, @NonNull android.view.Surface);
   }
 
-  public final class CameraCharacteristics extends android.hardware.camera2.CameraMetadata {
-    method public <T> T get(android.hardware.camera2.CameraCharacteristics.Key<T>);
-    method public java.util.List<android.hardware.camera2.CaptureRequest.Key<?>> getAvailableCaptureRequestKeys();
-    method public java.util.List<android.hardware.camera2.CaptureResult.Key<?>> getAvailableCaptureResultKeys();
+  public final class CameraCharacteristics extends android.hardware.camera2.CameraMetadata<android.hardware.camera2.CameraCharacteristics.Key<?>> {
+    method @Nullable public <T> T get(android.hardware.camera2.CameraCharacteristics.Key<T>);
+    method @NonNull public java.util.List<android.hardware.camera2.CaptureRequest.Key<?>> getAvailableCaptureRequestKeys();
+    method @NonNull public java.util.List<android.hardware.camera2.CaptureResult.Key<?>> getAvailableCaptureResultKeys();
     method public java.util.List<android.hardware.camera2.CaptureRequest.Key<?>> getAvailablePhysicalCameraRequestKeys();
     method public java.util.List<android.hardware.camera2.CaptureRequest.Key<?>> getAvailableSessionKeys();
-    method public java.util.List<android.hardware.camera2.CameraCharacteristics.Key<?>> getKeys();
+    method @NonNull public java.util.List<android.hardware.camera2.CameraCharacteristics.Key<?>> getKeys();
     method public java.util.List<android.hardware.camera2.CameraCharacteristics.Key<?>> getKeysNeedingPermission();
-    method public java.util.Set<java.lang.String> getPhysicalCameraIds();
-    method public android.hardware.camera2.params.RecommendedStreamConfigurationMap getRecommendedStreamConfigurationMap(int);
+    method @NonNull public java.util.Set<java.lang.String> getPhysicalCameraIds();
+    method @Nullable public android.hardware.camera2.params.RecommendedStreamConfigurationMap getRecommendedStreamConfigurationMap(int);
     field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES;
     field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AE_AVAILABLE_ANTIBANDING_MODES;
     field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AE_AVAILABLE_MODES;
@@ -16640,7 +16595,7 @@
     field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> LENS_POSE_REFERENCE;
     field public static final android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_POSE_ROTATION;
     field public static final android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_POSE_TRANSLATION;
-    field public static final deprecated android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_RADIAL_DISTORTION;
+    field @Deprecated public static final android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_RADIAL_DISTORTION;
     field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE;
     field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES;
     field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REPROCESS_MAX_CAPTURE_STALL;
@@ -16691,27 +16646,27 @@
   }
 
   public static final class CameraCharacteristics.Key<T> {
-    method public java.lang.String getName();
+    method @NonNull public String getName();
   }
 
   public abstract class CameraConstrainedHighSpeedCaptureSession extends android.hardware.camera2.CameraCaptureSession {
     ctor public CameraConstrainedHighSpeedCaptureSession();
-    method public abstract java.util.List<android.hardware.camera2.CaptureRequest> createHighSpeedRequestList(android.hardware.camera2.CaptureRequest) throws android.hardware.camera2.CameraAccessException;
+    method @NonNull public abstract java.util.List<android.hardware.camera2.CaptureRequest> createHighSpeedRequestList(@NonNull android.hardware.camera2.CaptureRequest) throws android.hardware.camera2.CameraAccessException;
   }
 
   public abstract class CameraDevice implements java.lang.AutoCloseable {
     method public abstract void close();
-    method public abstract android.hardware.camera2.CaptureRequest.Builder createCaptureRequest(int) throws android.hardware.camera2.CameraAccessException;
-    method public android.hardware.camera2.CaptureRequest.Builder createCaptureRequest(int, java.util.Set<java.lang.String>) throws android.hardware.camera2.CameraAccessException;
-    method public abstract void createCaptureSession(java.util.List<android.view.Surface>, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method @NonNull public abstract android.hardware.camera2.CaptureRequest.Builder createCaptureRequest(int) throws android.hardware.camera2.CameraAccessException;
+    method @NonNull public android.hardware.camera2.CaptureRequest.Builder createCaptureRequest(int, java.util.Set<java.lang.String>) throws android.hardware.camera2.CameraAccessException;
+    method public abstract void createCaptureSession(@NonNull java.util.List<android.view.Surface>, @NonNull android.hardware.camera2.CameraCaptureSession.StateCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
     method public void createCaptureSession(android.hardware.camera2.params.SessionConfiguration) throws android.hardware.camera2.CameraAccessException;
-    method public abstract void createCaptureSessionByOutputConfigurations(java.util.List<android.hardware.camera2.params.OutputConfiguration>, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
-    method public abstract void createConstrainedHighSpeedCaptureSession(java.util.List<android.view.Surface>, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
-    method public abstract android.hardware.camera2.CaptureRequest.Builder createReprocessCaptureRequest(android.hardware.camera2.TotalCaptureResult) throws android.hardware.camera2.CameraAccessException;
-    method public abstract void createReprocessableCaptureSession(android.hardware.camera2.params.InputConfiguration, java.util.List<android.view.Surface>, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
-    method public abstract void createReprocessableCaptureSessionByConfigurations(android.hardware.camera2.params.InputConfiguration, java.util.List<android.hardware.camera2.params.OutputConfiguration>, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
-    method public abstract java.lang.String getId();
-    method public boolean isSessionConfigurationSupported(android.hardware.camera2.params.SessionConfiguration) throws android.hardware.camera2.CameraAccessException;
+    method public abstract void createCaptureSessionByOutputConfigurations(java.util.List<android.hardware.camera2.params.OutputConfiguration>, android.hardware.camera2.CameraCaptureSession.StateCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method public abstract void createConstrainedHighSpeedCaptureSession(@NonNull java.util.List<android.view.Surface>, @NonNull android.hardware.camera2.CameraCaptureSession.StateCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method @NonNull public abstract android.hardware.camera2.CaptureRequest.Builder createReprocessCaptureRequest(@NonNull android.hardware.camera2.TotalCaptureResult) throws android.hardware.camera2.CameraAccessException;
+    method public abstract void createReprocessableCaptureSession(@NonNull android.hardware.camera2.params.InputConfiguration, @NonNull java.util.List<android.view.Surface>, @NonNull android.hardware.camera2.CameraCaptureSession.StateCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method public abstract void createReprocessableCaptureSessionByConfigurations(@NonNull android.hardware.camera2.params.InputConfiguration, @NonNull java.util.List<android.hardware.camera2.params.OutputConfiguration>, @NonNull android.hardware.camera2.CameraCaptureSession.StateCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method @NonNull public abstract String getId();
+    method public boolean isSessionConfigurationSupported(@NonNull android.hardware.camera2.params.SessionConfiguration) throws android.hardware.camera2.CameraAccessException;
     field public static final int TEMPLATE_MANUAL = 6; // 0x6
     field public static final int TEMPLATE_PREVIEW = 1; // 0x1
     field public static final int TEMPLATE_RECORD = 3; // 0x3
@@ -16720,12 +16675,12 @@
     field public static final int TEMPLATE_ZERO_SHUTTER_LAG = 5; // 0x5
   }
 
-  public static abstract class CameraDevice.StateCallback {
+  public abstract static class CameraDevice.StateCallback {
     ctor public CameraDevice.StateCallback();
-    method public void onClosed(android.hardware.camera2.CameraDevice);
-    method public abstract void onDisconnected(android.hardware.camera2.CameraDevice);
-    method public abstract void onError(android.hardware.camera2.CameraDevice, int);
-    method public abstract void onOpened(android.hardware.camera2.CameraDevice);
+    method public void onClosed(@NonNull android.hardware.camera2.CameraDevice);
+    method public abstract void onDisconnected(@NonNull android.hardware.camera2.CameraDevice);
+    method public abstract void onError(@NonNull android.hardware.camera2.CameraDevice, int);
+    method public abstract void onOpened(@NonNull android.hardware.camera2.CameraDevice);
     field public static final int ERROR_CAMERA_DEVICE = 4; // 0x4
     field public static final int ERROR_CAMERA_DISABLED = 3; // 0x3
     field public static final int ERROR_CAMERA_IN_USE = 1; // 0x1
@@ -16734,33 +16689,33 @@
   }
 
   public final class CameraManager {
-    method public android.hardware.camera2.CameraCharacteristics getCameraCharacteristics(java.lang.String) throws android.hardware.camera2.CameraAccessException;
-    method public java.lang.String[] getCameraIdList() throws android.hardware.camera2.CameraAccessException;
-    method public void openCamera(java.lang.String, android.hardware.camera2.CameraDevice.StateCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
-    method public void openCamera(java.lang.String, java.util.concurrent.Executor, android.hardware.camera2.CameraDevice.StateCallback) throws android.hardware.camera2.CameraAccessException;
-    method public void registerAvailabilityCallback(android.hardware.camera2.CameraManager.AvailabilityCallback, android.os.Handler);
-    method public void registerAvailabilityCallback(java.util.concurrent.Executor, android.hardware.camera2.CameraManager.AvailabilityCallback);
-    method public void registerTorchCallback(android.hardware.camera2.CameraManager.TorchCallback, android.os.Handler);
-    method public void registerTorchCallback(java.util.concurrent.Executor, android.hardware.camera2.CameraManager.TorchCallback);
-    method public void setTorchMode(java.lang.String, boolean) throws android.hardware.camera2.CameraAccessException;
-    method public void unregisterAvailabilityCallback(android.hardware.camera2.CameraManager.AvailabilityCallback);
-    method public void unregisterTorchCallback(android.hardware.camera2.CameraManager.TorchCallback);
+    method @NonNull public android.hardware.camera2.CameraCharacteristics getCameraCharacteristics(@NonNull String) throws android.hardware.camera2.CameraAccessException;
+    method @NonNull public String[] getCameraIdList() throws android.hardware.camera2.CameraAccessException;
+    method @RequiresPermission(android.Manifest.permission.CAMERA) public void openCamera(@NonNull String, @NonNull android.hardware.camera2.CameraDevice.StateCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method @RequiresPermission(android.Manifest.permission.CAMERA) public void openCamera(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.camera2.CameraDevice.StateCallback) throws android.hardware.camera2.CameraAccessException;
+    method public void registerAvailabilityCallback(@NonNull android.hardware.camera2.CameraManager.AvailabilityCallback, @Nullable android.os.Handler);
+    method public void registerAvailabilityCallback(@NonNull java.util.concurrent.Executor, @NonNull android.hardware.camera2.CameraManager.AvailabilityCallback);
+    method public void registerTorchCallback(@NonNull android.hardware.camera2.CameraManager.TorchCallback, @Nullable android.os.Handler);
+    method public void registerTorchCallback(@NonNull java.util.concurrent.Executor, @NonNull android.hardware.camera2.CameraManager.TorchCallback);
+    method public void setTorchMode(@NonNull String, boolean) throws android.hardware.camera2.CameraAccessException;
+    method public void unregisterAvailabilityCallback(@NonNull android.hardware.camera2.CameraManager.AvailabilityCallback);
+    method public void unregisterTorchCallback(@NonNull android.hardware.camera2.CameraManager.TorchCallback);
   }
 
-  public static abstract class CameraManager.AvailabilityCallback {
+  public abstract static class CameraManager.AvailabilityCallback {
     ctor public CameraManager.AvailabilityCallback();
-    method public void onCameraAvailable(java.lang.String);
-    method public void onCameraUnavailable(java.lang.String);
+    method public void onCameraAvailable(@NonNull String);
+    method public void onCameraUnavailable(@NonNull String);
   }
 
-  public static abstract class CameraManager.TorchCallback {
+  public abstract static class CameraManager.TorchCallback {
     ctor public CameraManager.TorchCallback();
-    method public void onTorchModeChanged(java.lang.String, boolean);
-    method public void onTorchModeUnavailable(java.lang.String);
+    method public void onTorchModeChanged(@NonNull String, boolean);
+    method public void onTorchModeUnavailable(@NonNull String);
   }
 
   public abstract class CameraMetadata<TKey> {
-    method public java.util.List<TKey> getKeys();
+    method @NonNull public java.util.List<TKey> getKeys();
     field public static final int COLOR_CORRECTION_ABERRATION_MODE_FAST = 1; // 0x1
     field public static final int COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY = 2; // 0x2
     field public static final int COLOR_CORRECTION_ABERRATION_MODE_OFF = 0; // 0x0
@@ -16846,7 +16801,7 @@
     field public static final int CONTROL_SCENE_MODE_FACE_PRIORITY = 1; // 0x1
     field public static final int CONTROL_SCENE_MODE_FIREWORKS = 12; // 0xc
     field public static final int CONTROL_SCENE_MODE_HDR = 18; // 0x12
-    field public static final deprecated int CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO = 17; // 0x11
+    field @Deprecated public static final int CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO = 17; // 0x11
     field public static final int CONTROL_SCENE_MODE_LANDSCAPE = 4; // 0x4
     field public static final int CONTROL_SCENE_MODE_NIGHT = 5; // 0x5
     field public static final int CONTROL_SCENE_MODE_NIGHT_PORTRAIT = 6; // 0x6
@@ -16977,18 +16932,18 @@
   public class CaptureFailure {
     method public long getFrameNumber();
     method public int getReason();
-    method public android.hardware.camera2.CaptureRequest getRequest();
+    method @NonNull public android.hardware.camera2.CaptureRequest getRequest();
     method public int getSequenceId();
     method public boolean wasImageCaptured();
     field public static final int REASON_ERROR = 0; // 0x0
     field public static final int REASON_FLUSHED = 1; // 0x1
   }
 
-  public final class CaptureRequest extends android.hardware.camera2.CameraMetadata implements android.os.Parcelable {
+  public final class CaptureRequest extends android.hardware.camera2.CameraMetadata<android.hardware.camera2.CaptureRequest.Key<?>> implements android.os.Parcelable {
     method public int describeContents();
-    method public <T> T get(android.hardware.camera2.CaptureRequest.Key<T>);
-    method public java.util.List<android.hardware.camera2.CaptureRequest.Key<?>> getKeys();
-    method public java.lang.Object getTag();
+    method @Nullable public <T> T get(android.hardware.camera2.CaptureRequest.Key<T>);
+    method @NonNull public java.util.List<android.hardware.camera2.CaptureRequest.Key<?>> getKeys();
+    method @Nullable public Object getTag();
     method public boolean isReprocess();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Boolean> BLACK_LEVEL_LOCK;
@@ -17051,25 +17006,25 @@
   }
 
   public static final class CaptureRequest.Builder {
-    method public void addTarget(android.view.Surface);
-    method public android.hardware.camera2.CaptureRequest build();
-    method public <T> T get(android.hardware.camera2.CaptureRequest.Key<T>);
-    method public <T> T getPhysicalCameraKey(android.hardware.camera2.CaptureRequest.Key<T>, java.lang.String);
-    method public void removeTarget(android.view.Surface);
-    method public <T> void set(android.hardware.camera2.CaptureRequest.Key<T>, T);
-    method public <T> android.hardware.camera2.CaptureRequest.Builder setPhysicalCameraKey(android.hardware.camera2.CaptureRequest.Key<T>, T, java.lang.String);
-    method public void setTag(java.lang.Object);
+    method public void addTarget(@NonNull android.view.Surface);
+    method @NonNull public android.hardware.camera2.CaptureRequest build();
+    method @Nullable public <T> T get(android.hardware.camera2.CaptureRequest.Key<T>);
+    method @Nullable public <T> T getPhysicalCameraKey(android.hardware.camera2.CaptureRequest.Key<T>, @NonNull String);
+    method public void removeTarget(@NonNull android.view.Surface);
+    method public <T> void set(@NonNull android.hardware.camera2.CaptureRequest.Key<T>, T);
+    method public <T> android.hardware.camera2.CaptureRequest.Builder setPhysicalCameraKey(@NonNull android.hardware.camera2.CaptureRequest.Key<T>, T, @NonNull String);
+    method public void setTag(@Nullable Object);
   }
 
   public static final class CaptureRequest.Key<T> {
-    method public java.lang.String getName();
+    method @NonNull public String getName();
   }
 
-  public class CaptureResult extends android.hardware.camera2.CameraMetadata {
-    method public <T> T get(android.hardware.camera2.CaptureResult.Key<T>);
+  public class CaptureResult extends android.hardware.camera2.CameraMetadata<android.hardware.camera2.CaptureResult.Key<?>> {
+    method @Nullable public <T> T get(android.hardware.camera2.CaptureResult.Key<T>);
     method public long getFrameNumber();
-    method public java.util.List<android.hardware.camera2.CaptureResult.Key<?>> getKeys();
-    method public android.hardware.camera2.CaptureRequest getRequest();
+    method @NonNull public java.util.List<android.hardware.camera2.CaptureResult.Key<?>> getKeys();
+    method @NonNull public android.hardware.camera2.CaptureRequest getRequest();
     method public int getSequenceId();
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Boolean> BLACK_LEVEL_LOCK;
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> COLOR_CORRECTION_ABERRATION_MODE;
@@ -17115,12 +17070,12 @@
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> LENS_FILTER_DENSITY;
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> LENS_FOCAL_LENGTH;
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> LENS_FOCUS_DISTANCE;
-    field public static final android.hardware.camera2.CaptureResult.Key<android.util.Pair<java.lang.Float, java.lang.Float>> LENS_FOCUS_RANGE;
+    field public static final android.hardware.camera2.CaptureResult.Key<android.util.Pair<java.lang.Float,java.lang.Float>> LENS_FOCUS_RANGE;
     field public static final android.hardware.camera2.CaptureResult.Key<float[]> LENS_INTRINSIC_CALIBRATION;
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> LENS_OPTICAL_STABILIZATION_MODE;
     field public static final android.hardware.camera2.CaptureResult.Key<float[]> LENS_POSE_ROTATION;
     field public static final android.hardware.camera2.CaptureResult.Key<float[]> LENS_POSE_TRANSLATION;
-    field public static final deprecated android.hardware.camera2.CaptureResult.Key<float[]> LENS_RADIAL_DISTORTION;
+    field @Deprecated public static final android.hardware.camera2.CaptureResult.Key<float[]> LENS_RADIAL_DISTORTION;
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> LENS_STATE;
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> NOISE_REDUCTION_MODE;
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> REPROCESS_EFFECTIVE_EXPOSURE_FACTOR;
@@ -17132,7 +17087,7 @@
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Long> SENSOR_FRAME_DURATION;
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> SENSOR_GREEN_SPLIT;
     field public static final android.hardware.camera2.CaptureResult.Key<android.util.Rational[]> SENSOR_NEUTRAL_COLOR_POINT;
-    field public static final android.hardware.camera2.CaptureResult.Key<android.util.Pair<java.lang.Double, java.lang.Double>[]> SENSOR_NOISE_PROFILE;
+    field public static final android.hardware.camera2.CaptureResult.Key<android.util.Pair<java.lang.Double,java.lang.Double>[]> SENSOR_NOISE_PROFILE;
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Long> SENSOR_ROLLING_SHUTTER_SKEW;
     field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> SENSOR_SENSITIVITY;
     field public static final android.hardware.camera2.CaptureResult.Key<int[]> SENSOR_TEST_PATTERN_DATA;
@@ -17155,26 +17110,26 @@
   }
 
   public static final class CaptureResult.Key<T> {
-    method public java.lang.String getName();
+    method @NonNull public String getName();
   }
 
   public final class DngCreator implements java.lang.AutoCloseable {
-    ctor public DngCreator(android.hardware.camera2.CameraCharacteristics, android.hardware.camera2.CaptureResult);
+    ctor public DngCreator(@NonNull android.hardware.camera2.CameraCharacteristics, @NonNull android.hardware.camera2.CaptureResult);
     method public void close();
-    method public android.hardware.camera2.DngCreator setDescription(java.lang.String);
-    method public android.hardware.camera2.DngCreator setLocation(android.location.Location);
-    method public android.hardware.camera2.DngCreator setOrientation(int);
-    method public android.hardware.camera2.DngCreator setThumbnail(android.graphics.Bitmap);
-    method public android.hardware.camera2.DngCreator setThumbnail(android.media.Image);
-    method public void writeByteBuffer(java.io.OutputStream, android.util.Size, java.nio.ByteBuffer, long) throws java.io.IOException;
-    method public void writeImage(java.io.OutputStream, android.media.Image) throws java.io.IOException;
-    method public void writeInputStream(java.io.OutputStream, android.util.Size, java.io.InputStream, long) throws java.io.IOException;
+    method @NonNull public android.hardware.camera2.DngCreator setDescription(@NonNull String);
+    method @NonNull public android.hardware.camera2.DngCreator setLocation(@NonNull android.location.Location);
+    method @NonNull public android.hardware.camera2.DngCreator setOrientation(int);
+    method @NonNull public android.hardware.camera2.DngCreator setThumbnail(@NonNull android.graphics.Bitmap);
+    method @NonNull public android.hardware.camera2.DngCreator setThumbnail(@NonNull android.media.Image);
+    method public void writeByteBuffer(@NonNull java.io.OutputStream, @NonNull android.util.Size, @NonNull java.nio.ByteBuffer, @IntRange(from=0) long) throws java.io.IOException;
+    method public void writeImage(@NonNull java.io.OutputStream, @NonNull android.media.Image) throws java.io.IOException;
+    method public void writeInputStream(@NonNull java.io.OutputStream, @NonNull android.util.Size, @NonNull java.io.InputStream, @IntRange(from=0) long) throws java.io.IOException;
     field public static final int MAX_THUMBNAIL_DIMENSION = 256; // 0x100
   }
 
   public final class TotalCaptureResult extends android.hardware.camera2.CaptureResult {
-    method public java.util.List<android.hardware.camera2.CaptureResult> getPartialResults();
-    method public java.util.Map<java.lang.String, android.hardware.camera2.CaptureResult> getPhysicalCameraResults();
+    method @NonNull public java.util.List<android.hardware.camera2.CaptureResult> getPartialResults();
+    method public java.util.Map<java.lang.String,android.hardware.camera2.CaptureResult> getPhysicalCameraResults();
   }
 
 }
@@ -17225,7 +17180,7 @@
   }
 
   public final class MandatoryStreamCombination {
-    method public java.lang.String getDescription();
+    method public String getDescription();
     method public java.util.List<android.hardware.camera2.params.MandatoryStreamCombination.MandatoryStreamInformation> getStreamsInformation();
     method public boolean isReprocessable();
   }
@@ -17262,42 +17217,42 @@
   }
 
   public final class OutputConfiguration implements android.os.Parcelable {
-    ctor public OutputConfiguration(android.view.Surface);
-    ctor public OutputConfiguration(int, android.view.Surface);
-    ctor public OutputConfiguration(android.util.Size, java.lang.Class<T>);
-    method public void addSurface(android.view.Surface);
+    ctor public OutputConfiguration(@NonNull android.view.Surface);
+    ctor public OutputConfiguration(int, @NonNull android.view.Surface);
+    ctor public OutputConfiguration(@NonNull android.util.Size, @NonNull Class<T>);
+    method public void addSurface(@NonNull android.view.Surface);
     method public int describeContents();
     method public void enableSurfaceSharing();
     method public int getMaxSharedSurfaceCount();
-    method public android.view.Surface getSurface();
+    method @Nullable public android.view.Surface getSurface();
     method public int getSurfaceGroupId();
-    method public java.util.List<android.view.Surface> getSurfaces();
-    method public void removeSurface(android.view.Surface);
-    method public void setPhysicalCameraId(java.lang.String);
+    method @NonNull public java.util.List<android.view.Surface> getSurfaces();
+    method public void removeSurface(@NonNull android.view.Surface);
+    method public void setPhysicalCameraId(@Nullable String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.camera2.params.OutputConfiguration> CREATOR;
     field public static final int SURFACE_GROUP_ID_NONE = -1; // 0xffffffff
   }
 
   public final class RecommendedStreamConfigurationMap {
-    method public java.util.Set<android.util.Size> getHighResolutionOutputSizes(int);
-    method public java.util.Set<android.util.Range<java.lang.Integer>> getHighSpeedVideoFpsRanges();
-    method public java.util.Set<android.util.Range<java.lang.Integer>> getHighSpeedVideoFpsRangesFor(android.util.Size);
-    method public java.util.Set<android.util.Size> getHighSpeedVideoSizes();
-    method public java.util.Set<android.util.Size> getHighSpeedVideoSizesFor(android.util.Range<java.lang.Integer>);
-    method public java.util.Set<java.lang.Integer> getInputFormats();
-    method public java.util.Set<android.util.Size> getInputSizes(int);
-    method public java.util.Set<java.lang.Integer> getOutputFormats();
-    method public long getOutputMinFrameDuration(int, android.util.Size);
-    method public <T> long getOutputMinFrameDuration(java.lang.Class<T>, android.util.Size);
-    method public java.util.Set<android.util.Size> getOutputSizes(int);
-    method public <T> java.util.Set<android.util.Size> getOutputSizes(java.lang.Class<T>);
-    method public long getOutputStallDuration(int, android.util.Size);
-    method public <T> long getOutputStallDuration(java.lang.Class<T>, android.util.Size);
+    method @Nullable public java.util.Set<android.util.Size> getHighResolutionOutputSizes(int);
+    method @Nullable public java.util.Set<android.util.Range<java.lang.Integer>> getHighSpeedVideoFpsRanges();
+    method @Nullable public java.util.Set<android.util.Range<java.lang.Integer>> getHighSpeedVideoFpsRangesFor(@NonNull android.util.Size);
+    method @Nullable public java.util.Set<android.util.Size> getHighSpeedVideoSizes();
+    method @Nullable public java.util.Set<android.util.Size> getHighSpeedVideoSizesFor(@NonNull android.util.Range<java.lang.Integer>);
+    method @Nullable public java.util.Set<java.lang.Integer> getInputFormats();
+    method @Nullable public java.util.Set<android.util.Size> getInputSizes(int);
+    method @NonNull public java.util.Set<java.lang.Integer> getOutputFormats();
+    method @IntRange(from=0) public long getOutputMinFrameDuration(int, @NonNull android.util.Size);
+    method public <T> long getOutputMinFrameDuration(@NonNull Class<T>, @NonNull android.util.Size);
+    method @Nullable public java.util.Set<android.util.Size> getOutputSizes(int);
+    method public <T> java.util.Set<android.util.Size> getOutputSizes(@NonNull Class<T>);
+    method @IntRange(from=0) public long getOutputStallDuration(int, @NonNull android.util.Size);
+    method public <T> long getOutputStallDuration(@NonNull Class<T>, @NonNull android.util.Size);
     method public int getRecommendedUseCase();
-    method public java.util.Set<java.lang.Integer> getValidOutputFormatsForInput(int);
+    method @Nullable public java.util.Set<java.lang.Integer> getValidOutputFormatsForInput(int);
     method public boolean isOutputSupportedFor(int);
-    method public boolean isOutputSupportedFor(android.view.Surface);
+    method public boolean isOutputSupportedFor(@NonNull android.view.Surface);
     field public static final int USECASE_PREVIEW = 0; // 0x0
     field public static final int USECASE_RAW = 5; // 0x5
     field public static final int USECASE_RECORD = 1; // 0x1
@@ -17322,7 +17277,7 @@
   }
 
   public final class SessionConfiguration implements android.os.Parcelable {
-    ctor public SessionConfiguration(int, java.util.List<android.hardware.camera2.params.OutputConfiguration>, java.util.concurrent.Executor, android.hardware.camera2.CameraCaptureSession.StateCallback);
+    ctor public SessionConfiguration(int, @NonNull java.util.List<android.hardware.camera2.params.OutputConfiguration>, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.camera2.CameraCaptureSession.StateCallback);
     method public int describeContents();
     method public java.util.concurrent.Executor getExecutor();
     method public android.hardware.camera2.params.InputConfiguration getInputConfiguration();
@@ -17330,7 +17285,7 @@
     method public android.hardware.camera2.CaptureRequest getSessionParameters();
     method public int getSessionType();
     method public android.hardware.camera2.CameraCaptureSession.StateCallback getStateCallback();
-    method public void setInputConfiguration(android.hardware.camera2.params.InputConfiguration);
+    method public void setInputConfiguration(@NonNull android.hardware.camera2.params.InputConfiguration);
     method public void setSessionParameters(android.hardware.camera2.CaptureRequest);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.camera2.params.SessionConfiguration> CREATOR;
@@ -17348,14 +17303,14 @@
     method public android.util.Size[] getInputSizes(int);
     method public int[] getOutputFormats();
     method public long getOutputMinFrameDuration(int, android.util.Size);
-    method public <T> long getOutputMinFrameDuration(java.lang.Class<T>, android.util.Size);
-    method public <T> android.util.Size[] getOutputSizes(java.lang.Class<T>);
+    method public <T> long getOutputMinFrameDuration(Class<T>, android.util.Size);
+    method public <T> android.util.Size[] getOutputSizes(Class<T>);
     method public android.util.Size[] getOutputSizes(int);
     method public long getOutputStallDuration(int, android.util.Size);
-    method public <T> long getOutputStallDuration(java.lang.Class<T>, android.util.Size);
+    method public <T> long getOutputStallDuration(Class<T>, android.util.Size);
     method public int[] getValidOutputFormatsForInput(int);
     method public boolean isOutputSupportedFor(int);
-    method public static <T> boolean isOutputSupportedFor(java.lang.Class<T>);
+    method public static <T> boolean isOutputSupportedFor(Class<T>);
     method public boolean isOutputSupportedFor(android.view.Surface);
   }
 
@@ -17377,14 +17332,14 @@
 package android.hardware.display {
 
   public final class DisplayManager {
-    method public android.hardware.display.VirtualDisplay createVirtualDisplay(java.lang.String, int, int, int, android.view.Surface, int);
-    method public android.hardware.display.VirtualDisplay createVirtualDisplay(java.lang.String, int, int, int, android.view.Surface, int, android.hardware.display.VirtualDisplay.Callback, android.os.Handler);
+    method public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull String, int, int, int, @Nullable android.view.Surface, int);
+    method public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull String, int, int, int, @Nullable android.view.Surface, int, @Nullable android.hardware.display.VirtualDisplay.Callback, @Nullable android.os.Handler);
     method public android.view.Display getDisplay(int);
     method public android.view.Display[] getDisplays();
-    method public android.view.Display[] getDisplays(java.lang.String);
+    method public android.view.Display[] getDisplays(String);
     method public void registerDisplayListener(android.hardware.display.DisplayManager.DisplayListener, android.os.Handler);
     method public void unregisterDisplayListener(android.hardware.display.DisplayManager.DisplayListener);
-    field public static final java.lang.String DISPLAY_CATEGORY_PRESENTATION = "android.hardware.display.category.PRESENTATION";
+    field public static final String DISPLAY_CATEGORY_PRESENTATION = "android.hardware.display.category.PRESENTATION";
     field public static final int VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR = 16; // 0x10
     field public static final int VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY = 8; // 0x8
     field public static final int VIRTUAL_DISPLAY_FLAG_PRESENTATION = 2; // 0x2
@@ -17392,10 +17347,10 @@
     field public static final int VIRTUAL_DISPLAY_FLAG_SECURE = 4; // 0x4
   }
 
-  public static abstract interface DisplayManager.DisplayListener {
-    method public abstract void onDisplayAdded(int);
-    method public abstract void onDisplayChanged(int);
-    method public abstract void onDisplayRemoved(int);
+  public static interface DisplayManager.DisplayListener {
+    method public void onDisplayAdded(int);
+    method public void onDisplayChanged(int);
+    method public void onDisplayRemoved(int);
   }
 
   public final class VirtualDisplay {
@@ -17406,7 +17361,7 @@
     method public void setSurface(android.view.Surface);
   }
 
-  public static abstract class VirtualDisplay.Callback {
+  public abstract static class VirtualDisplay.Callback {
     ctor public VirtualDisplay.Callback();
     method public void onPaused();
     method public void onResumed();
@@ -17417,10 +17372,10 @@
 
 package android.hardware.fingerprint {
 
-  public deprecated class FingerprintManager {
-    method public deprecated void authenticate(android.hardware.fingerprint.FingerprintManager.CryptoObject, android.os.CancellationSignal, int, android.hardware.fingerprint.FingerprintManager.AuthenticationCallback, android.os.Handler);
-    method public deprecated boolean hasEnrolledFingerprints();
-    method public deprecated boolean isHardwareDetected();
+  @Deprecated public class FingerprintManager {
+    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.USE_BIOMETRIC, android.Manifest.permission.USE_FINGERPRINT}) public void authenticate(@Nullable android.hardware.fingerprint.FingerprintManager.CryptoObject, @Nullable android.os.CancellationSignal, int, @NonNull android.hardware.fingerprint.FingerprintManager.AuthenticationCallback, @Nullable android.os.Handler);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean hasEnrolledFingerprints();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean isHardwareDetected();
     field public static final int FINGERPRINT_ACQUIRED_GOOD = 0; // 0x0
     field public static final int FINGERPRINT_ACQUIRED_IMAGER_DIRTY = 3; // 0x3
     field public static final int FINGERPRINT_ACQUIRED_INSUFFICIENT = 2; // 0x2
@@ -17440,25 +17395,25 @@
     field public static final int FINGERPRINT_ERROR_VENDOR = 8; // 0x8
   }
 
-  public static abstract deprecated class FingerprintManager.AuthenticationCallback {
-    ctor public FingerprintManager.AuthenticationCallback();
-    method public void onAuthenticationError(int, java.lang.CharSequence);
-    method public void onAuthenticationFailed();
-    method public void onAuthenticationHelp(int, java.lang.CharSequence);
-    method public void onAuthenticationSucceeded(android.hardware.fingerprint.FingerprintManager.AuthenticationResult);
+  @Deprecated public abstract static class FingerprintManager.AuthenticationCallback {
+    ctor @Deprecated public FingerprintManager.AuthenticationCallback();
+    method @Deprecated public void onAuthenticationError(int, CharSequence);
+    method @Deprecated public void onAuthenticationFailed();
+    method @Deprecated public void onAuthenticationHelp(int, CharSequence);
+    method @Deprecated public void onAuthenticationSucceeded(android.hardware.fingerprint.FingerprintManager.AuthenticationResult);
   }
 
-  public static deprecated class FingerprintManager.AuthenticationResult {
-    method public android.hardware.fingerprint.FingerprintManager.CryptoObject getCryptoObject();
+  @Deprecated public static class FingerprintManager.AuthenticationResult {
+    method @Deprecated public android.hardware.fingerprint.FingerprintManager.CryptoObject getCryptoObject();
   }
 
-  public static final deprecated class FingerprintManager.CryptoObject {
-    ctor public FingerprintManager.CryptoObject(java.security.Signature);
-    ctor public FingerprintManager.CryptoObject(javax.crypto.Cipher);
-    ctor public FingerprintManager.CryptoObject(javax.crypto.Mac);
-    method public javax.crypto.Cipher getCipher();
-    method public javax.crypto.Mac getMac();
-    method public java.security.Signature getSignature();
+  @Deprecated public static final class FingerprintManager.CryptoObject {
+    ctor @Deprecated public FingerprintManager.CryptoObject(@NonNull java.security.Signature);
+    ctor @Deprecated public FingerprintManager.CryptoObject(@NonNull javax.crypto.Cipher);
+    ctor @Deprecated public FingerprintManager.CryptoObject(@NonNull javax.crypto.Mac);
+    method @Deprecated public javax.crypto.Cipher getCipher();
+    method @Deprecated public javax.crypto.Mac getMac();
+    method @Deprecated public java.security.Signature getSignature();
   }
 
 }
@@ -17470,14 +17425,14 @@
     method public int[] getInputDeviceIds();
     method public void registerInputDeviceListener(android.hardware.input.InputManager.InputDeviceListener, android.os.Handler);
     method public void unregisterInputDeviceListener(android.hardware.input.InputManager.InputDeviceListener);
-    field public static final java.lang.String ACTION_QUERY_KEYBOARD_LAYOUTS = "android.hardware.input.action.QUERY_KEYBOARD_LAYOUTS";
-    field public static final java.lang.String META_DATA_KEYBOARD_LAYOUTS = "android.hardware.input.metadata.KEYBOARD_LAYOUTS";
+    field public static final String ACTION_QUERY_KEYBOARD_LAYOUTS = "android.hardware.input.action.QUERY_KEYBOARD_LAYOUTS";
+    field public static final String META_DATA_KEYBOARD_LAYOUTS = "android.hardware.input.metadata.KEYBOARD_LAYOUTS";
   }
 
-  public static abstract interface InputManager.InputDeviceListener {
-    method public abstract void onInputDeviceAdded(int);
-    method public abstract void onInputDeviceChanged(int);
-    method public abstract void onInputDeviceRemoved(int);
+  public static interface InputManager.InputDeviceListener {
+    method public void onInputDeviceAdded(int);
+    method public void onInputDeviceChanged(int);
+    method public void onInputDeviceRemoved(int);
   }
 
 }
@@ -17486,12 +17441,12 @@
 
   public class UsbAccessory implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getDescription();
-    method public java.lang.String getManufacturer();
-    method public java.lang.String getModel();
-    method public java.lang.String getSerial();
-    method public java.lang.String getUri();
-    method public java.lang.String getVersion();
+    method @Nullable public String getDescription();
+    method @NonNull public String getManufacturer();
+    method @NonNull public String getModel();
+    method @Nullable public String getSerial();
+    method @Nullable public String getUri();
+    method @Nullable public String getVersion();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.usb.UsbAccessory> CREATOR;
   }
@@ -17499,10 +17454,10 @@
   public class UsbConfiguration implements android.os.Parcelable {
     method public int describeContents();
     method public int getId();
-    method public android.hardware.usb.UsbInterface getInterface(int);
+    method @NonNull public android.hardware.usb.UsbInterface getInterface(int);
     method public int getInterfaceCount();
     method public int getMaxPower();
-    method public java.lang.String getName();
+    method @Nullable public String getName();
     method public boolean isRemoteWakeup();
     method public boolean isSelfPowered();
     method public void writeToParcel(android.os.Parcel, int);
@@ -17548,23 +17503,23 @@
 
   public class UsbDevice implements android.os.Parcelable {
     method public int describeContents();
-    method public android.hardware.usb.UsbConfiguration getConfiguration(int);
+    method @NonNull public android.hardware.usb.UsbConfiguration getConfiguration(int);
     method public int getConfigurationCount();
     method public int getDeviceClass();
     method public int getDeviceId();
-    method public static int getDeviceId(java.lang.String);
-    method public java.lang.String getDeviceName();
-    method public static java.lang.String getDeviceName(int);
+    method public static int getDeviceId(String);
+    method @NonNull public String getDeviceName();
+    method public static String getDeviceName(int);
     method public int getDeviceProtocol();
     method public int getDeviceSubclass();
-    method public android.hardware.usb.UsbInterface getInterface(int);
+    method @NonNull public android.hardware.usb.UsbInterface getInterface(int);
     method public int getInterfaceCount();
-    method public java.lang.String getManufacturerName();
+    method @Nullable public String getManufacturerName();
     method public int getProductId();
-    method public java.lang.String getProductName();
-    method public java.lang.String getSerialNumber();
+    method @Nullable public String getProductName();
+    method @Nullable public String getSerialNumber();
     method public int getVendorId();
-    method public java.lang.String getVersion();
+    method @NonNull public String getVersion();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.usb.UsbDevice> CREATOR;
   }
@@ -17578,7 +17533,7 @@
     method public int controlTransfer(int, int, int, int, byte[], int, int, int);
     method public int getFileDescriptor();
     method public byte[] getRawDescriptors();
-    method public java.lang.String getSerial();
+    method public String getSerial();
     method public boolean releaseInterface(android.hardware.usb.UsbInterface);
     method public android.hardware.usb.UsbRequest requestWait();
     method public android.hardware.usb.UsbRequest requestWait(long) throws java.util.concurrent.TimeoutException;
@@ -17608,39 +17563,39 @@
     method public int getInterfaceClass();
     method public int getInterfaceProtocol();
     method public int getInterfaceSubclass();
-    method public java.lang.String getName();
+    method @Nullable public String getName();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.usb.UsbInterface> CREATOR;
   }
 
   public class UsbManager {
     method public android.hardware.usb.UsbAccessory[] getAccessoryList();
-    method public java.util.HashMap<java.lang.String, android.hardware.usb.UsbDevice> getDeviceList();
+    method public java.util.HashMap<java.lang.String,android.hardware.usb.UsbDevice> getDeviceList();
     method public boolean hasPermission(android.hardware.usb.UsbDevice);
     method public boolean hasPermission(android.hardware.usb.UsbAccessory);
     method public android.os.ParcelFileDescriptor openAccessory(android.hardware.usb.UsbAccessory);
     method public android.hardware.usb.UsbDeviceConnection openDevice(android.hardware.usb.UsbDevice);
     method public void requestPermission(android.hardware.usb.UsbDevice, android.app.PendingIntent);
     method public void requestPermission(android.hardware.usb.UsbAccessory, android.app.PendingIntent);
-    field public static final java.lang.String ACTION_USB_ACCESSORY_ATTACHED = "android.hardware.usb.action.USB_ACCESSORY_ATTACHED";
-    field public static final java.lang.String ACTION_USB_ACCESSORY_DETACHED = "android.hardware.usb.action.USB_ACCESSORY_DETACHED";
-    field public static final java.lang.String ACTION_USB_DEVICE_ATTACHED = "android.hardware.usb.action.USB_DEVICE_ATTACHED";
-    field public static final java.lang.String ACTION_USB_DEVICE_DETACHED = "android.hardware.usb.action.USB_DEVICE_DETACHED";
-    field public static final java.lang.String EXTRA_ACCESSORY = "accessory";
-    field public static final java.lang.String EXTRA_DEVICE = "device";
-    field public static final java.lang.String EXTRA_PERMISSION_GRANTED = "permission";
+    field public static final String ACTION_USB_ACCESSORY_ATTACHED = "android.hardware.usb.action.USB_ACCESSORY_ATTACHED";
+    field public static final String ACTION_USB_ACCESSORY_DETACHED = "android.hardware.usb.action.USB_ACCESSORY_DETACHED";
+    field public static final String ACTION_USB_DEVICE_ATTACHED = "android.hardware.usb.action.USB_DEVICE_ATTACHED";
+    field public static final String ACTION_USB_DEVICE_DETACHED = "android.hardware.usb.action.USB_DEVICE_DETACHED";
+    field public static final String EXTRA_ACCESSORY = "accessory";
+    field public static final String EXTRA_DEVICE = "device";
+    field public static final String EXTRA_PERMISSION_GRANTED = "permission";
   }
 
   public class UsbRequest {
     ctor public UsbRequest();
     method public boolean cancel();
     method public void close();
-    method public java.lang.Object getClientData();
+    method public Object getClientData();
     method public android.hardware.usb.UsbEndpoint getEndpoint();
     method public boolean initialize(android.hardware.usb.UsbDeviceConnection, android.hardware.usb.UsbEndpoint);
-    method public deprecated boolean queue(java.nio.ByteBuffer, int);
-    method public boolean queue(java.nio.ByteBuffer);
-    method public void setClientData(java.lang.Object);
+    method @Deprecated public boolean queue(java.nio.ByteBuffer, int);
+    method public boolean queue(@Nullable java.nio.ByteBuffer);
+    method public void setClientData(Object);
   }
 
 }
@@ -17649,47 +17604,47 @@
 
   public final class UCharacter implements android.icu.lang.UCharacterEnums.ECharacterCategory android.icu.lang.UCharacterEnums.ECharacterDirection {
     method public static int charCount(int);
-    method public static int codePointAt(java.lang.CharSequence, int);
+    method public static int codePointAt(CharSequence, int);
     method public static int codePointAt(char[], int);
     method public static int codePointAt(char[], int, int);
-    method public static int codePointBefore(java.lang.CharSequence, int);
+    method public static int codePointBefore(CharSequence, int);
     method public static int codePointBefore(char[], int);
     method public static int codePointBefore(char[], int, int);
-    method public static int codePointCount(java.lang.CharSequence, int, int);
+    method public static int codePointCount(CharSequence, int, int);
     method public static int codePointCount(char[], int, int);
     method public static int digit(int, int);
     method public static int digit(int);
     method public static int foldCase(int, boolean);
-    method public static java.lang.String foldCase(java.lang.String, boolean);
+    method public static String foldCase(String, boolean);
     method public static int foldCase(int, int);
-    method public static java.lang.String foldCase(java.lang.String, int);
+    method public static String foldCase(String, int);
     method public static char forDigit(int, int);
     method public static android.icu.util.VersionInfo getAge(int);
     method public static int getBidiPairedBracket(int);
-    method public static int getCharFromExtendedName(java.lang.String);
-    method public static int getCharFromName(java.lang.String);
-    method public static int getCharFromNameAlias(java.lang.String);
+    method public static int getCharFromExtendedName(String);
+    method public static int getCharFromName(String);
+    method public static int getCharFromNameAlias(String);
     method public static int getCodePoint(char, char);
     method public static int getCodePoint(char);
     method public static int getCombiningClass(int);
     method public static int getDirection(int);
     method public static byte getDirectionality(int);
-    method public static java.lang.String getExtendedName(int);
+    method public static String getExtendedName(int);
     method public static android.icu.util.ValueIterator getExtendedNameIterator();
     method public static int getHanNumericValue(int);
     method public static int getIntPropertyMaxValue(int);
     method public static int getIntPropertyMinValue(int);
     method public static int getIntPropertyValue(int, int);
     method public static int getMirror(int);
-    method public static java.lang.String getName(int);
-    method public static java.lang.String getName(java.lang.String, java.lang.String);
-    method public static java.lang.String getNameAlias(int);
+    method public static String getName(int);
+    method public static String getName(String, String);
+    method public static String getNameAlias(int);
     method public static android.icu.util.ValueIterator getNameIterator();
     method public static int getNumericValue(int);
-    method public static int getPropertyEnum(java.lang.CharSequence);
-    method public static java.lang.String getPropertyName(int, int);
-    method public static int getPropertyValueEnum(int, java.lang.CharSequence);
-    method public static java.lang.String getPropertyValueName(int, int, int);
+    method public static int getPropertyEnum(CharSequence);
+    method public static String getPropertyName(int, int);
+    method public static int getPropertyValueEnum(int, CharSequence);
+    method public static String getPropertyValueName(int, int, int);
     method public static int getType(int);
     method public static android.icu.util.RangeValueIterator getTypeIterator();
     method public static double getUnicodeNumericValue(int);
@@ -17705,7 +17660,7 @@
     method public static boolean isJavaIdentifierPart(int);
     method public static boolean isJavaIdentifierStart(int);
     method public static boolean isLegal(int);
-    method public static boolean isLegal(java.lang.String);
+    method public static boolean isLegal(String);
     method public static boolean isLetter(int);
     method public static boolean isLetterOrDigit(int);
     method public static boolean isLowSurrogate(char);
@@ -17726,26 +17681,26 @@
     method public static boolean isUpperCase(int);
     method public static boolean isValidCodePoint(int);
     method public static boolean isWhitespace(int);
-    method public static int offsetByCodePoints(java.lang.CharSequence, int, int);
+    method public static int offsetByCodePoints(CharSequence, int, int);
     method public static int offsetByCodePoints(char[], int, int, int, int);
     method public static int toChars(int, char[], int);
     method public static char[] toChars(int);
     method public static int toCodePoint(char, char);
     method public static int toLowerCase(int);
-    method public static java.lang.String toLowerCase(java.lang.String);
-    method public static java.lang.String toLowerCase(java.util.Locale, java.lang.String);
-    method public static java.lang.String toLowerCase(android.icu.util.ULocale, java.lang.String);
-    method public static java.lang.String toString(int);
+    method public static String toLowerCase(String);
+    method public static String toLowerCase(java.util.Locale, String);
+    method public static String toLowerCase(android.icu.util.ULocale, String);
+    method public static String toString(int);
     method public static int toTitleCase(int);
-    method public static java.lang.String toTitleCase(java.lang.String, android.icu.text.BreakIterator);
-    method public static java.lang.String toTitleCase(java.util.Locale, java.lang.String, android.icu.text.BreakIterator);
-    method public static java.lang.String toTitleCase(android.icu.util.ULocale, java.lang.String, android.icu.text.BreakIterator);
-    method public static java.lang.String toTitleCase(android.icu.util.ULocale, java.lang.String, android.icu.text.BreakIterator, int);
-    method public static java.lang.String toTitleCase(java.util.Locale, java.lang.String, android.icu.text.BreakIterator, int);
+    method public static String toTitleCase(String, android.icu.text.BreakIterator);
+    method public static String toTitleCase(java.util.Locale, String, android.icu.text.BreakIterator);
+    method public static String toTitleCase(android.icu.util.ULocale, String, android.icu.text.BreakIterator);
+    method public static String toTitleCase(android.icu.util.ULocale, String, android.icu.text.BreakIterator, int);
+    method public static String toTitleCase(java.util.Locale, String, android.icu.text.BreakIterator, int);
     method public static int toUpperCase(int);
-    method public static java.lang.String toUpperCase(java.lang.String);
-    method public static java.lang.String toUpperCase(java.util.Locale, java.lang.String);
-    method public static java.lang.String toUpperCase(android.icu.util.ULocale, java.lang.String);
+    method public static String toUpperCase(String);
+    method public static String toUpperCase(java.util.Locale, String);
+    method public static String toUpperCase(android.icu.util.ULocale, String);
     field public static final int FOLD_CASE_DEFAULT = 0; // 0x0
     field public static final int FOLD_CASE_EXCLUDE_SPECIAL_I = 1; // 0x1
     field public static final int MAX_CODE_POINT = 1114111; // 0x10ffff
@@ -17768,13 +17723,13 @@
     field public static final int TITLECASE_NO_LOWERCASE = 256; // 0x100
   }
 
-  public static abstract interface UCharacter.BidiPairedBracketType {
+  public static interface UCharacter.BidiPairedBracketType {
     field public static final int CLOSE = 2; // 0x2
     field public static final int NONE = 0; // 0x0
     field public static final int OPEN = 1; // 0x1
   }
 
-  public static abstract interface UCharacter.DecompositionType {
+  public static interface UCharacter.DecompositionType {
     field public static final int CANONICAL = 1; // 0x1
     field public static final int CIRCLE = 3; // 0x3
     field public static final int COMPAT = 2; // 0x2
@@ -17795,7 +17750,7 @@
     field public static final int WIDE = 17; // 0x11
   }
 
-  public static abstract interface UCharacter.EastAsianWidth {
+  public static interface UCharacter.EastAsianWidth {
     field public static final int AMBIGUOUS = 1; // 0x1
     field public static final int FULLWIDTH = 3; // 0x3
     field public static final int HALFWIDTH = 2; // 0x2
@@ -17804,7 +17759,7 @@
     field public static final int WIDE = 5; // 0x5
   }
 
-  public static abstract interface UCharacter.GraphemeClusterBreak {
+  public static interface UCharacter.GraphemeClusterBreak {
     field public static final int CONTROL = 1; // 0x1
     field public static final int CR = 2; // 0x2
     field public static final int EXTEND = 3; // 0x3
@@ -17825,7 +17780,7 @@
     field public static final int ZWJ = 17; // 0x11
   }
 
-  public static abstract interface UCharacter.HangulSyllableType {
+  public static interface UCharacter.HangulSyllableType {
     field public static final int LEADING_JAMO = 1; // 0x1
     field public static final int LVT_SYLLABLE = 5; // 0x5
     field public static final int LV_SYLLABLE = 4; // 0x4
@@ -17834,7 +17789,7 @@
     field public static final int VOWEL_JAMO = 2; // 0x2
   }
 
-  public static abstract interface UCharacter.IndicPositionalCategory {
+  public static interface UCharacter.IndicPositionalCategory {
     field public static final int BOTTOM = 1; // 0x1
     field public static final int BOTTOM_AND_LEFT = 2; // 0x2
     field public static final int BOTTOM_AND_RIGHT = 3; // 0x3
@@ -17852,7 +17807,7 @@
     field public static final int VISUAL_ORDER_LEFT = 14; // 0xe
   }
 
-  public static abstract interface UCharacter.IndicSyllabicCategory {
+  public static interface UCharacter.IndicSyllabicCategory {
     field public static final int AVAGRAHA = 1; // 0x1
     field public static final int BINDU = 2; // 0x2
     field public static final int BRAHMI_JOINING_NUMBER = 3; // 0x3
@@ -17891,7 +17846,7 @@
     field public static final int VOWEL_INDEPENDENT = 35; // 0x23
   }
 
-  public static abstract interface UCharacter.JoiningGroup {
+  public static interface UCharacter.JoiningGroup {
     field public static final int AFRICAN_FEH = 86; // 0x56
     field public static final int AFRICAN_NOON = 87; // 0x57
     field public static final int AFRICAN_QAF = 88; // 0x58
@@ -17997,7 +17952,7 @@
     field public static final int ZHAIN = 53; // 0x35
   }
 
-  public static abstract interface UCharacter.JoiningType {
+  public static interface UCharacter.JoiningType {
     field public static final int DUAL_JOINING = 2; // 0x2
     field public static final int JOIN_CAUSING = 1; // 0x1
     field public static final int LEFT_JOINING = 3; // 0x3
@@ -18006,7 +17961,7 @@
     field public static final int TRANSPARENT = 5; // 0x5
   }
 
-  public static abstract interface UCharacter.LineBreak {
+  public static interface UCharacter.LineBreak {
     field public static final int ALPHABETIC = 2; // 0x2
     field public static final int AMBIGUOUS = 1; // 0x1
     field public static final int BREAK_AFTER = 4; // 0x4
@@ -18053,14 +18008,14 @@
     field public static final int ZWSPACE = 28; // 0x1c
   }
 
-  public static abstract interface UCharacter.NumericType {
+  public static interface UCharacter.NumericType {
     field public static final int DECIMAL = 1; // 0x1
     field public static final int DIGIT = 2; // 0x2
     field public static final int NONE = 0; // 0x0
     field public static final int NUMERIC = 3; // 0x3
   }
 
-  public static abstract interface UCharacter.SentenceBreak {
+  public static interface UCharacter.SentenceBreak {
     field public static final int ATERM = 1; // 0x1
     field public static final int CLOSE = 2; // 0x2
     field public static final int CR = 11; // 0xb
@@ -18079,7 +18034,7 @@
   }
 
   public static final class UCharacter.UnicodeBlock extends java.lang.Character.Subset {
-    method public static android.icu.lang.UCharacter.UnicodeBlock forName(java.lang.String);
+    method public static android.icu.lang.UCharacter.UnicodeBlock forName(String);
     method public int getID();
     method public static android.icu.lang.UCharacter.UnicodeBlock getInstance(int);
     method public static android.icu.lang.UCharacter.UnicodeBlock of(int);
@@ -18674,14 +18629,14 @@
     field public static final int ZANABAZAR_SQUARE_ID = 280; // 0x118
   }
 
-  public static abstract interface UCharacter.VerticalOrientation {
+  public static interface UCharacter.VerticalOrientation {
     field public static final int ROTATED = 0; // 0x0
     field public static final int TRANSFORMED_ROTATED = 1; // 0x1
     field public static final int TRANSFORMED_UPRIGHT = 2; // 0x2
     field public static final int UPRIGHT = 3; // 0x3
   }
 
-  public static abstract interface UCharacter.WordBreak {
+  public static interface UCharacter.WordBreak {
     field public static final int ALETTER = 1; // 0x1
     field public static final int CR = 8; // 0x8
     field public static final int DOUBLE_QUOTE = 16; // 0x10
@@ -18708,17 +18663,17 @@
   }
 
   public final class UCharacterCategory implements android.icu.lang.UCharacterEnums.ECharacterCategory {
-    method public static java.lang.String toString(int);
+    method public static String toString(int);
   }
 
   public final class UCharacterDirection implements android.icu.lang.UCharacterEnums.ECharacterDirection {
-    method public static java.lang.String toString(int);
+    method public static String toString(int);
   }
 
   public class UCharacterEnums {
   }
 
-  public static abstract interface UCharacterEnums.ECharacterCategory {
+  public static interface UCharacterEnums.ECharacterCategory {
     field public static final byte COMBINING_SPACING_MARK = 8; // 0x8
     field public static final byte CONNECTOR_PUNCTUATION = 22; // 0x16
     field public static final byte CONTROL = 15; // 0xf
@@ -18754,7 +18709,7 @@
     field public static final byte UPPERCASE_LETTER = 1; // 0x1
   }
 
-  public static abstract interface UCharacterEnums.ECharacterDirection {
+  public static interface UCharacterEnums.ECharacterDirection {
     field public static final int ARABIC_NUMBER = 5; // 0x5
     field public static final int BLOCK_SEPARATOR = 7; // 0x7
     field public static final int BOUNDARY_NEUTRAL = 18; // 0x12
@@ -18800,7 +18755,7 @@
     field public static final int WHITE_SPACE_NEUTRAL = 9; // 0x9
   }
 
-  public abstract interface UProperty {
+  public interface UProperty {
     field public static final int AGE = 16384; // 0x4000
     field public static final int ALPHABETIC = 0; // 0x0
     field public static final int ASCII_HEX_DIGIT = 1; // 0x1
@@ -18914,7 +18869,7 @@
     field public static final int XID_START = 33; // 0x21
   }
 
-  public static abstract interface UProperty.NameChoice {
+  public static interface UProperty.NameChoice {
     field public static final int LONG = 1; // 0x1
     field public static final int SHORT = 0; // 0x0
   }
@@ -18923,13 +18878,13 @@
     method public static boolean breaksBetweenLetters(int);
     method public static int[] getCode(java.util.Locale);
     method public static int[] getCode(android.icu.util.ULocale);
-    method public static int[] getCode(java.lang.String);
-    method public static int getCodeFromName(java.lang.String);
-    method public static java.lang.String getName(int);
-    method public static java.lang.String getSampleString(int);
+    method public static int[] getCode(String);
+    method public static int getCodeFromName(String);
+    method public static String getName(int);
+    method public static String getSampleString(int);
     method public static int getScript(int);
     method public static int getScriptExtensions(int, java.util.BitSet);
-    method public static java.lang.String getShortName(int);
+    method public static String getShortName(int);
     method public static android.icu.lang.UScript.ScriptUsage getUsage(int);
     method public static boolean hasScript(int, int);
     method public static boolean isCased(int);
@@ -19127,9 +19082,7 @@
     field public static final int ZANABAZAR_SQUARE = 177; // 0xb1
   }
 
-  public static final class UScript.ScriptUsage extends java.lang.Enum {
-    method public static android.icu.lang.UScript.ScriptUsage valueOf(java.lang.String);
-    method public static final android.icu.lang.UScript.ScriptUsage[] values();
+  public enum UScript.ScriptUsage {
     enum_constant public static final android.icu.lang.UScript.ScriptUsage ASPIRATIONAL;
     enum_constant public static final android.icu.lang.UScript.ScriptUsage EXCLUDED;
     enum_constant public static final android.icu.lang.UScript.ScriptUsage LIMITED_USE;
@@ -19142,7 +19095,7 @@
 
 package android.icu.math {
 
-  public class BigDecimal extends java.lang.Number implements java.lang.Comparable java.io.Serializable {
+  public class BigDecimal extends java.lang.Number implements java.lang.Comparable<android.icu.math.BigDecimal> java.io.Serializable {
     ctor public BigDecimal(java.math.BigDecimal);
     ctor public BigDecimal(java.math.BigInteger);
     ctor public BigDecimal(java.math.BigInteger, int);
@@ -19151,7 +19104,7 @@
     ctor public BigDecimal(double);
     ctor public BigDecimal(int);
     ctor public BigDecimal(long);
-    ctor public BigDecimal(java.lang.String);
+    ctor public BigDecimal(String);
     method public android.icu.math.BigDecimal abs();
     method public android.icu.math.BigDecimal abs(android.icu.math.MathContext);
     method public android.icu.math.BigDecimal add(android.icu.math.BigDecimal);
@@ -19167,8 +19120,8 @@
     method public android.icu.math.BigDecimal divideInteger(android.icu.math.BigDecimal, android.icu.math.MathContext);
     method public double doubleValue();
     method public float floatValue();
-    method public java.lang.String format(int, int);
-    method public java.lang.String format(int, int, int, int, int, int);
+    method public String format(int, int);
+    method public String format(int, int, int, int, int, int);
     method public int intValue();
     method public int intValueExact();
     method public long longValue();
@@ -19244,71 +19197,69 @@
 
 package android.icu.text {
 
-  public final class AlphabeticIndex<V> implements java.lang.Iterable {
+  public final class AlphabeticIndex<V> implements java.lang.Iterable<android.icu.text.AlphabeticIndex.Bucket<V>> {
     ctor public AlphabeticIndex(android.icu.util.ULocale);
     ctor public AlphabeticIndex(java.util.Locale);
     ctor public AlphabeticIndex(android.icu.text.RuleBasedCollator);
     method public android.icu.text.AlphabeticIndex<V> addLabels(android.icu.text.UnicodeSet);
     method public android.icu.text.AlphabeticIndex<V> addLabels(android.icu.util.ULocale...);
     method public android.icu.text.AlphabeticIndex<V> addLabels(java.util.Locale...);
-    method public android.icu.text.AlphabeticIndex<V> addRecord(java.lang.CharSequence, V);
+    method public android.icu.text.AlphabeticIndex<V> addRecord(CharSequence, V);
     method public android.icu.text.AlphabeticIndex.ImmutableIndex<V> buildImmutableIndex();
     method public android.icu.text.AlphabeticIndex<V> clearRecords();
     method public int getBucketCount();
-    method public int getBucketIndex(java.lang.CharSequence);
+    method public int getBucketIndex(CharSequence);
     method public java.util.List<java.lang.String> getBucketLabels();
     method public android.icu.text.RuleBasedCollator getCollator();
-    method public java.lang.String getInflowLabel();
+    method public String getInflowLabel();
     method public int getMaxLabelCount();
-    method public java.lang.String getOverflowLabel();
+    method public String getOverflowLabel();
     method public int getRecordCount();
-    method public java.lang.String getUnderflowLabel();
+    method public String getUnderflowLabel();
     method public java.util.Iterator<android.icu.text.AlphabeticIndex.Bucket<V>> iterator();
-    method public android.icu.text.AlphabeticIndex<V> setInflowLabel(java.lang.String);
+    method public android.icu.text.AlphabeticIndex<V> setInflowLabel(String);
     method public android.icu.text.AlphabeticIndex<V> setMaxLabelCount(int);
-    method public android.icu.text.AlphabeticIndex<V> setOverflowLabel(java.lang.String);
-    method public android.icu.text.AlphabeticIndex<V> setUnderflowLabel(java.lang.String);
+    method public android.icu.text.AlphabeticIndex<V> setOverflowLabel(String);
+    method public android.icu.text.AlphabeticIndex<V> setUnderflowLabel(String);
   }
 
-  public static class AlphabeticIndex.Bucket<V> implements java.lang.Iterable {
-    method public java.lang.String getLabel();
+  public static class AlphabeticIndex.Bucket<V> implements java.lang.Iterable<android.icu.text.AlphabeticIndex.Record<V>> {
+    method public String getLabel();
     method public android.icu.text.AlphabeticIndex.Bucket.LabelType getLabelType();
     method public java.util.Iterator<android.icu.text.AlphabeticIndex.Record<V>> iterator();
     method public int size();
   }
 
-  public static final class AlphabeticIndex.Bucket.LabelType extends java.lang.Enum {
-    method public static android.icu.text.AlphabeticIndex.Bucket.LabelType valueOf(java.lang.String);
-    method public static final android.icu.text.AlphabeticIndex.Bucket.LabelType[] values();
+  public enum AlphabeticIndex.Bucket.LabelType {
     enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType INFLOW;
     enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType NORMAL;
     enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType OVERFLOW;
     enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType UNDERFLOW;
   }
 
-  public static final class AlphabeticIndex.ImmutableIndex<V> implements java.lang.Iterable {
+  public static final class AlphabeticIndex.ImmutableIndex<V> implements java.lang.Iterable<android.icu.text.AlphabeticIndex.Bucket<V>> {
     method public android.icu.text.AlphabeticIndex.Bucket<V> getBucket(int);
     method public int getBucketCount();
-    method public int getBucketIndex(java.lang.CharSequence);
+    method public int getBucketIndex(CharSequence);
     method public java.util.Iterator<android.icu.text.AlphabeticIndex.Bucket<V>> iterator();
   }
 
   public static class AlphabeticIndex.Record<V> {
     method public V getData();
-    method public java.lang.CharSequence getName();
+    method public CharSequence getName();
   }
 
   public class Bidi {
     ctor public Bidi();
     ctor public Bidi(int, int);
-    ctor public Bidi(java.lang.String, int);
+    ctor public Bidi(String, int);
     ctor public Bidi(java.text.AttributedCharacterIterator);
     ctor public Bidi(char[], int, byte[], int, int, int);
     method public boolean baseIsLeftToRight();
     method public int countParagraphs();
     method public int countRuns();
     method public android.icu.text.Bidi createLineBidi(int, int);
-    method public static byte getBaseDirection(java.lang.CharSequence);
+    method public static byte getBaseDirection(CharSequence);
     method public int getBaseLevel();
     method public android.icu.text.BidiClassifier getCustomClassifier();
     method public int getCustomizedClass(int);
@@ -19332,7 +19283,7 @@
     method public int getRunLimit(int);
     method public int getRunStart(int);
     method public char[] getText();
-    method public java.lang.String getTextAsString();
+    method public String getTextAsString();
     method public int getVisualIndex(int);
     method public int[] getVisualMap();
     method public android.icu.text.BidiRun getVisualRun(int);
@@ -19345,19 +19296,19 @@
     method public void orderParagraphsLTR(boolean);
     method public static int[] reorderLogical(byte[]);
     method public static int[] reorderVisual(byte[]);
-    method public static void reorderVisually(byte[], int, java.lang.Object[], int, int);
+    method public static void reorderVisually(byte[], int, Object[], int, int);
     method public static boolean requiresBidi(char[], int, int);
-    method public void setContext(java.lang.String, java.lang.String);
+    method public void setContext(String, String);
     method public void setCustomClassifier(android.icu.text.BidiClassifier);
     method public void setInverse(boolean);
     method public android.icu.text.Bidi setLine(int, int);
-    method public void setPara(java.lang.String, byte, byte[]);
+    method public void setPara(String, byte, byte[]);
     method public void setPara(char[], byte, byte[]);
     method public void setPara(java.text.AttributedCharacterIterator);
     method public void setReorderingMode(int);
     method public void setReorderingOptions(int);
-    method public java.lang.String writeReordered(int);
-    method public static java.lang.String writeReverse(java.lang.String, int);
+    method public String writeReordered(int);
+    method public static String writeReverse(String, int);
     field public static final int DIRECTION_DEFAULT_LEFT_TO_RIGHT = 126; // 0x7e
     field public static final int DIRECTION_DEFAULT_RIGHT_TO_LEFT = 127; // 0x7f
     field public static final int DIRECTION_LEFT_TO_RIGHT = 0; // 0x0
@@ -19390,10 +19341,10 @@
   }
 
   public class BidiClassifier {
-    ctor public BidiClassifier(java.lang.Object);
+    ctor public BidiClassifier(Object);
     method public int classify(int);
-    method public java.lang.Object getContext();
-    method public void setContext(java.lang.Object);
+    method public Object getContext();
+    method public void setContext(Object);
   }
 
   public class BidiRun {
@@ -19408,11 +19359,11 @@
 
   public abstract class BreakIterator implements java.lang.Cloneable {
     ctor protected BreakIterator();
-    method public java.lang.Object clone();
+    method public Object clone();
     method public abstract int current();
     method public abstract int first();
     method public abstract int following(int);
-    method public static synchronized java.util.Locale[] getAvailableLocales();
+    method public static java.util.Locale[] getAvailableLocales();
     method public static android.icu.text.BreakIterator getCharacterInstance();
     method public static android.icu.text.BreakIterator getCharacterInstance(java.util.Locale);
     method public static android.icu.text.BreakIterator getCharacterInstance(android.icu.util.ULocale);
@@ -19437,8 +19388,8 @@
     method public abstract int next();
     method public int preceding(int);
     method public abstract int previous();
-    method public void setText(java.lang.String);
-    method public void setText(java.lang.CharSequence);
+    method public void setText(String);
+    method public void setText(CharSequence);
     method public abstract void setText(java.text.CharacterIterator);
     field public static final int DONE = -1; // 0xffffffff
     field public static final int KIND_CHARACTER = 0; // 0x0
@@ -19467,22 +19418,22 @@
   }
 
   public static final class CaseMap.Fold extends android.icu.text.CaseMap {
-    method public java.lang.String apply(java.lang.CharSequence);
-    method public <A extends java.lang.Appendable> A apply(java.lang.CharSequence, A, android.icu.text.Edits);
+    method public String apply(CharSequence);
+    method public <A extends java.lang.Appendable> A apply(CharSequence, A, android.icu.text.Edits);
     method public android.icu.text.CaseMap.Fold omitUnchangedText();
     method public android.icu.text.CaseMap.Fold turkic();
   }
 
   public static final class CaseMap.Lower extends android.icu.text.CaseMap {
-    method public java.lang.String apply(java.util.Locale, java.lang.CharSequence);
-    method public <A extends java.lang.Appendable> A apply(java.util.Locale, java.lang.CharSequence, A, android.icu.text.Edits);
+    method public String apply(java.util.Locale, CharSequence);
+    method public <A extends java.lang.Appendable> A apply(java.util.Locale, CharSequence, A, android.icu.text.Edits);
     method public android.icu.text.CaseMap.Lower omitUnchangedText();
   }
 
   public static final class CaseMap.Title extends android.icu.text.CaseMap {
     method public android.icu.text.CaseMap.Title adjustToCased();
-    method public java.lang.String apply(java.util.Locale, android.icu.text.BreakIterator, java.lang.CharSequence);
-    method public <A extends java.lang.Appendable> A apply(java.util.Locale, android.icu.text.BreakIterator, java.lang.CharSequence, A, android.icu.text.Edits);
+    method public String apply(java.util.Locale, android.icu.text.BreakIterator, CharSequence);
+    method public <A extends java.lang.Appendable> A apply(java.util.Locale, android.icu.text.BreakIterator, CharSequence, A, android.icu.text.Edits);
     method public android.icu.text.CaseMap.Title noBreakAdjustment();
     method public android.icu.text.CaseMap.Title noLowercase();
     method public android.icu.text.CaseMap.Title omitUnchangedText();
@@ -19491,8 +19442,8 @@
   }
 
   public static final class CaseMap.Upper extends android.icu.text.CaseMap {
-    method public java.lang.String apply(java.util.Locale, java.lang.CharSequence);
-    method public <A extends java.lang.Appendable> A apply(java.util.Locale, java.lang.CharSequence, A, android.icu.text.Edits);
+    method public String apply(java.util.Locale, CharSequence);
+    method public <A extends java.lang.Appendable> A apply(java.util.Locale, CharSequence, A, android.icu.text.Edits);
     method public android.icu.text.CaseMap.Upper omitUnchangedText();
   }
 
@@ -19505,7 +19456,7 @@
     method public void reset();
     method public static int secondaryOrder(int);
     method public void setOffset(int);
-    method public void setText(java.lang.String);
+    method public void setText(String);
     method public void setText(android.icu.text.UCharacterIterator);
     method public void setText(java.text.CharacterIterator);
     method public static int tertiaryOrder(int);
@@ -19513,12 +19464,12 @@
     field public static final int NULLORDER = -1; // 0xffffffff
   }
 
-  public final class CollationKey implements java.lang.Comparable {
-    ctor public CollationKey(java.lang.String, byte[]);
+  public final class CollationKey implements java.lang.Comparable<android.icu.text.CollationKey> {
+    ctor public CollationKey(String, byte[]);
     method public int compareTo(android.icu.text.CollationKey);
     method public boolean equals(android.icu.text.CollationKey);
     method public android.icu.text.CollationKey getBound(int, int);
-    method public java.lang.String getSourceString();
+    method public String getSourceString();
     method public android.icu.text.CollationKey merge(android.icu.text.CollationKey);
     method public byte[] toByteArray();
   }
@@ -19529,31 +19480,31 @@
     field public static final int UPPER_LONG = 2; // 0x2
   }
 
-  public abstract class Collator implements java.lang.Cloneable java.util.Comparator android.icu.util.Freezable {
+  public abstract class Collator implements java.lang.Cloneable java.util.Comparator<java.lang.Object> android.icu.util.Freezable<android.icu.text.Collator> {
     ctor protected Collator();
-    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+    method public Object clone() throws java.lang.CloneNotSupportedException;
     method public android.icu.text.Collator cloneAsThawed();
-    method public abstract int compare(java.lang.String, java.lang.String);
-    method public int compare(java.lang.Object, java.lang.Object);
-    method public boolean equals(java.lang.String, java.lang.String);
+    method public abstract int compare(String, String);
+    method public int compare(Object, Object);
+    method public boolean equals(String, String);
     method public android.icu.text.Collator freeze();
     method public static java.util.Locale[] getAvailableLocales();
     method public static final android.icu.util.ULocale[] getAvailableULocales();
-    method public abstract android.icu.text.CollationKey getCollationKey(java.lang.String);
+    method public abstract android.icu.text.CollationKey getCollationKey(String);
     method public int getDecomposition();
-    method public static java.lang.String getDisplayName(java.util.Locale, java.util.Locale);
-    method public static java.lang.String getDisplayName(android.icu.util.ULocale, android.icu.util.ULocale);
-    method public static java.lang.String getDisplayName(java.util.Locale);
-    method public static java.lang.String getDisplayName(android.icu.util.ULocale);
+    method public static String getDisplayName(java.util.Locale, java.util.Locale);
+    method public static String getDisplayName(android.icu.util.ULocale, android.icu.util.ULocale);
+    method public static String getDisplayName(java.util.Locale);
+    method public static String getDisplayName(android.icu.util.ULocale);
     method public static int[] getEquivalentReorderCodes(int);
-    method public static final android.icu.util.ULocale getFunctionalEquivalent(java.lang.String, android.icu.util.ULocale, boolean[]);
-    method public static final android.icu.util.ULocale getFunctionalEquivalent(java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.util.ULocale getFunctionalEquivalent(String, android.icu.util.ULocale, boolean[]);
+    method public static final android.icu.util.ULocale getFunctionalEquivalent(String, android.icu.util.ULocale);
     method public static final android.icu.text.Collator getInstance();
     method public static final android.icu.text.Collator getInstance(android.icu.util.ULocale);
     method public static final android.icu.text.Collator getInstance(java.util.Locale);
-    method public static final java.lang.String[] getKeywordValues(java.lang.String);
-    method public static final java.lang.String[] getKeywordValuesForLocale(java.lang.String, android.icu.util.ULocale, boolean);
-    method public static final java.lang.String[] getKeywords();
+    method public static final String[] getKeywordValues(String);
+    method public static final String[] getKeywordValuesForLocale(String, android.icu.util.ULocale, boolean);
+    method public static final String[] getKeywords();
     method public int getMaxVariable();
     method public int[] getReorderCodes();
     method public int getStrength();
@@ -19576,7 +19527,7 @@
     field public static final int TERTIARY = 2; // 0x2
   }
 
-  public static abstract interface Collator.ReorderCodes {
+  public static interface Collator.ReorderCodes {
     field public static final int CURRENCY = 4099; // 0x1003
     field public static final int DEFAULT = -1; // 0xffffffff
     field public static final int DIGIT = 4100; // 0x1004
@@ -19593,9 +19544,7 @@
     method public static android.icu.text.CompactDecimalFormat getInstance(java.util.Locale, android.icu.text.CompactDecimalFormat.CompactStyle);
   }
 
-  public static final class CompactDecimalFormat.CompactStyle extends java.lang.Enum {
-    method public static android.icu.text.CompactDecimalFormat.CompactStyle valueOf(java.lang.String);
-    method public static final android.icu.text.CompactDecimalFormat.CompactStyle[] values();
+  public enum CompactDecimalFormat.CompactStyle {
     enum_constant public static final android.icu.text.CompactDecimalFormat.CompactStyle LONG;
     enum_constant public static final android.icu.text.CompactDecimalFormat.CompactStyle SHORT;
   }
@@ -19604,24 +19553,24 @@
     ctor public CurrencyPluralInfo();
     ctor public CurrencyPluralInfo(java.util.Locale);
     ctor public CurrencyPluralInfo(android.icu.util.ULocale);
-    method public java.lang.Object clone();
-    method public java.lang.String getCurrencyPluralPattern(java.lang.String);
+    method public Object clone();
+    method public String getCurrencyPluralPattern(String);
     method public static android.icu.text.CurrencyPluralInfo getInstance();
     method public static android.icu.text.CurrencyPluralInfo getInstance(java.util.Locale);
     method public static android.icu.text.CurrencyPluralInfo getInstance(android.icu.util.ULocale);
     method public android.icu.util.ULocale getLocale();
     method public android.icu.text.PluralRules getPluralRules();
-    method public void setCurrencyPluralPattern(java.lang.String, java.lang.String);
+    method public void setCurrencyPluralPattern(String, String);
     method public void setLocale(android.icu.util.ULocale);
-    method public void setPluralRules(java.lang.String);
+    method public void setPluralRules(String);
   }
 
   public abstract class DateFormat extends android.icu.text.UFormat {
     ctor protected DateFormat();
-    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public abstract java.lang.StringBuffer format(android.icu.util.Calendar, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.String format(java.util.Date);
+    method public final StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
+    method public abstract StringBuffer format(android.icu.util.Calendar, StringBuffer, java.text.FieldPosition);
+    method public StringBuffer format(java.util.Date, StringBuffer, java.text.FieldPosition);
+    method public final String format(java.util.Date);
     method public static java.util.Locale[] getAvailableLocales();
     method public boolean getBooleanAttribute(android.icu.text.DateFormat.BooleanAttribute);
     method public android.icu.util.Calendar getCalendar();
@@ -19643,17 +19592,17 @@
     method public static final android.icu.text.DateFormat getInstance();
     method public static final android.icu.text.DateFormat getInstance(android.icu.util.Calendar, java.util.Locale);
     method public static final android.icu.text.DateFormat getInstance(android.icu.util.Calendar);
-    method public static final android.icu.text.DateFormat getInstanceForSkeleton(java.lang.String);
-    method public static final android.icu.text.DateFormat getInstanceForSkeleton(java.lang.String, java.util.Locale);
-    method public static final android.icu.text.DateFormat getInstanceForSkeleton(java.lang.String, android.icu.util.ULocale);
-    method public static final android.icu.text.DateFormat getInstanceForSkeleton(android.icu.util.Calendar, java.lang.String, java.util.Locale);
-    method public static final android.icu.text.DateFormat getInstanceForSkeleton(android.icu.util.Calendar, java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(String);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(android.icu.util.Calendar, String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(android.icu.util.Calendar, String, android.icu.util.ULocale);
     method public android.icu.text.NumberFormat getNumberFormat();
-    method public static final android.icu.text.DateFormat getPatternInstance(java.lang.String);
-    method public static final android.icu.text.DateFormat getPatternInstance(java.lang.String, java.util.Locale);
-    method public static final android.icu.text.DateFormat getPatternInstance(java.lang.String, android.icu.util.ULocale);
-    method public static final android.icu.text.DateFormat getPatternInstance(android.icu.util.Calendar, java.lang.String, java.util.Locale);
-    method public static final android.icu.text.DateFormat getPatternInstance(android.icu.util.Calendar, java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getPatternInstance(String);
+    method public static final android.icu.text.DateFormat getPatternInstance(String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getPatternInstance(String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getPatternInstance(android.icu.util.Calendar, String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getPatternInstance(android.icu.util.Calendar, String, android.icu.util.ULocale);
     method public static final android.icu.text.DateFormat getTimeInstance();
     method public static final android.icu.text.DateFormat getTimeInstance(int);
     method public static final android.icu.text.DateFormat getTimeInstance(int, java.util.Locale);
@@ -19664,10 +19613,10 @@
     method public android.icu.util.TimeZone getTimeZone();
     method public boolean isCalendarLenient();
     method public boolean isLenient();
-    method public java.util.Date parse(java.lang.String) throws java.text.ParseException;
-    method public abstract void parse(java.lang.String, android.icu.util.Calendar, java.text.ParsePosition);
-    method public java.util.Date parse(java.lang.String, java.text.ParsePosition);
-    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public java.util.Date parse(String) throws java.text.ParseException;
+    method public abstract void parse(String, android.icu.util.Calendar, java.text.ParsePosition);
+    method public java.util.Date parse(String, java.text.ParsePosition);
+    method public Object parseObject(String, java.text.ParsePosition);
     method public android.icu.text.DateFormat setBooleanAttribute(android.icu.text.DateFormat.BooleanAttribute, boolean);
     method public void setCalendar(android.icu.util.Calendar);
     method public void setCalendarLenient(boolean);
@@ -19675,18 +19624,18 @@
     method public void setLenient(boolean);
     method public void setNumberFormat(android.icu.text.NumberFormat);
     method public void setTimeZone(android.icu.util.TimeZone);
-    field public static final java.lang.String ABBR_GENERIC_TZ = "v";
-    field public static final java.lang.String ABBR_MONTH = "MMM";
-    field public static final java.lang.String ABBR_MONTH_DAY = "MMMd";
-    field public static final java.lang.String ABBR_MONTH_WEEKDAY_DAY = "MMMEd";
-    field public static final java.lang.String ABBR_QUARTER = "QQQ";
-    field public static final java.lang.String ABBR_SPECIFIC_TZ = "z";
-    field public static final java.lang.String ABBR_UTC_TZ = "ZZZZ";
-    field public static final java.lang.String ABBR_WEEKDAY = "E";
+    field public static final String ABBR_GENERIC_TZ = "v";
+    field public static final String ABBR_MONTH = "MMM";
+    field public static final String ABBR_MONTH_DAY = "MMMd";
+    field public static final String ABBR_MONTH_WEEKDAY_DAY = "MMMEd";
+    field public static final String ABBR_QUARTER = "QQQ";
+    field public static final String ABBR_SPECIFIC_TZ = "z";
+    field public static final String ABBR_UTC_TZ = "ZZZZ";
+    field public static final String ABBR_WEEKDAY = "E";
     field public static final int AM_PM_FIELD = 14; // 0xe
     field public static final int AM_PM_MIDNIGHT_NOON_FIELD = 35; // 0x23
     field public static final int DATE_FIELD = 3; // 0x3
-    field public static final java.lang.String DAY = "d";
+    field public static final String DAY = "d";
     field public static final int DAY_OF_WEEK_FIELD = 9; // 0x9
     field public static final int DAY_OF_WEEK_IN_MONTH_FIELD = 11; // 0xb
     field public static final int DAY_OF_YEAR_FIELD = 10; // 0xa
@@ -19697,35 +19646,35 @@
     field public static final int FLEXIBLE_DAY_PERIOD_FIELD = 36; // 0x24
     field public static final int FRACTIONAL_SECOND_FIELD = 8; // 0x8
     field public static final int FULL = 0; // 0x0
-    field public static final java.lang.String GENERIC_TZ = "vvvv";
-    field public static final java.lang.String HOUR = "j";
+    field public static final String GENERIC_TZ = "vvvv";
+    field public static final String HOUR = "j";
     field public static final int HOUR0_FIELD = 16; // 0x10
     field public static final int HOUR1_FIELD = 15; // 0xf
-    field public static final java.lang.String HOUR24 = "H";
-    field public static final java.lang.String HOUR24_MINUTE = "Hm";
-    field public static final java.lang.String HOUR24_MINUTE_SECOND = "Hms";
-    field public static final java.lang.String HOUR_MINUTE = "jm";
-    field public static final java.lang.String HOUR_MINUTE_SECOND = "jms";
+    field public static final String HOUR24 = "H";
+    field public static final String HOUR24_MINUTE = "Hm";
+    field public static final String HOUR24_MINUTE_SECOND = "Hms";
+    field public static final String HOUR_MINUTE = "jm";
+    field public static final String HOUR_MINUTE_SECOND = "jms";
     field public static final int HOUR_OF_DAY0_FIELD = 5; // 0x5
     field public static final int HOUR_OF_DAY1_FIELD = 4; // 0x4
     field public static final int JULIAN_DAY_FIELD = 21; // 0x15
-    field public static final java.lang.String LOCATION_TZ = "VVVV";
+    field public static final String LOCATION_TZ = "VVVV";
     field public static final int LONG = 1; // 0x1
     field public static final int MEDIUM = 2; // 0x2
     field public static final int MILLISECONDS_IN_DAY_FIELD = 22; // 0x16
     field public static final int MILLISECOND_FIELD = 8; // 0x8
-    field public static final java.lang.String MINUTE = "m";
+    field public static final String MINUTE = "m";
     field public static final int MINUTE_FIELD = 6; // 0x6
-    field public static final java.lang.String MINUTE_SECOND = "ms";
-    field public static final java.lang.String MONTH = "MMMM";
-    field public static final java.lang.String MONTH_DAY = "MMMMd";
+    field public static final String MINUTE_SECOND = "ms";
+    field public static final String MONTH = "MMMM";
+    field public static final String MONTH_DAY = "MMMMd";
     field public static final int MONTH_FIELD = 2; // 0x2
-    field public static final java.lang.String MONTH_WEEKDAY_DAY = "MMMMEEEEd";
+    field public static final String MONTH_WEEKDAY_DAY = "MMMMEEEEd";
     field public static final int NONE = -1; // 0xffffffff
-    field public static final java.lang.String NUM_MONTH = "M";
-    field public static final java.lang.String NUM_MONTH_DAY = "Md";
-    field public static final java.lang.String NUM_MONTH_WEEKDAY_DAY = "MEd";
-    field public static final java.lang.String QUARTER = "QQQQ";
+    field public static final String NUM_MONTH = "M";
+    field public static final String NUM_MONTH_DAY = "Md";
+    field public static final String NUM_MONTH_WEEKDAY_DAY = "MEd";
+    field public static final String QUARTER = "QQQQ";
     field public static final int QUARTER_FIELD = 27; // 0x1b
     field public static final int RELATIVE = 128; // 0x80
     field public static final int RELATIVE_DEFAULT = 130; // 0x82
@@ -19733,10 +19682,10 @@
     field public static final int RELATIVE_LONG = 129; // 0x81
     field public static final int RELATIVE_MEDIUM = 130; // 0x82
     field public static final int RELATIVE_SHORT = 131; // 0x83
-    field public static final java.lang.String SECOND = "s";
+    field public static final String SECOND = "s";
     field public static final int SECOND_FIELD = 7; // 0x7
     field public static final int SHORT = 3; // 0x3
-    field public static final java.lang.String SPECIFIC_TZ = "zzzz";
+    field public static final String SPECIFIC_TZ = "zzzz";
     field public static final int STANDALONE_DAY_FIELD = 25; // 0x19
     field public static final int STANDALONE_MONTH_FIELD = 26; // 0x1a
     field public static final int STANDALONE_QUARTER_FIELD = 28; // 0x1c
@@ -19747,31 +19696,29 @@
     field public static final int TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD = 31; // 0x1f
     field public static final int TIMEZONE_RFC_FIELD = 23; // 0x17
     field public static final int TIMEZONE_SPECIAL_FIELD = 29; // 0x1d
-    field public static final java.lang.String WEEKDAY = "EEEE";
+    field public static final String WEEKDAY = "EEEE";
     field public static final int WEEK_OF_MONTH_FIELD = 13; // 0xd
     field public static final int WEEK_OF_YEAR_FIELD = 12; // 0xc
-    field public static final java.lang.String YEAR = "y";
-    field public static final java.lang.String YEAR_ABBR_MONTH = "yMMM";
-    field public static final java.lang.String YEAR_ABBR_MONTH_DAY = "yMMMd";
-    field public static final java.lang.String YEAR_ABBR_MONTH_WEEKDAY_DAY = "yMMMEd";
-    field public static final java.lang.String YEAR_ABBR_QUARTER = "yQQQ";
+    field public static final String YEAR = "y";
+    field public static final String YEAR_ABBR_MONTH = "yMMM";
+    field public static final String YEAR_ABBR_MONTH_DAY = "yMMMd";
+    field public static final String YEAR_ABBR_MONTH_WEEKDAY_DAY = "yMMMEd";
+    field public static final String YEAR_ABBR_QUARTER = "yQQQ";
     field public static final int YEAR_FIELD = 1; // 0x1
-    field public static final java.lang.String YEAR_MONTH = "yMMMM";
-    field public static final java.lang.String YEAR_MONTH_DAY = "yMMMMd";
-    field public static final java.lang.String YEAR_MONTH_WEEKDAY_DAY = "yMMMMEEEEd";
+    field public static final String YEAR_MONTH = "yMMMM";
+    field public static final String YEAR_MONTH_DAY = "yMMMMd";
+    field public static final String YEAR_MONTH_WEEKDAY_DAY = "yMMMMEEEEd";
     field public static final int YEAR_NAME_FIELD = 30; // 0x1e
-    field public static final java.lang.String YEAR_NUM_MONTH = "yM";
-    field public static final java.lang.String YEAR_NUM_MONTH_DAY = "yMd";
-    field public static final java.lang.String YEAR_NUM_MONTH_WEEKDAY_DAY = "yMEd";
-    field public static final java.lang.String YEAR_QUARTER = "yQQQQ";
+    field public static final String YEAR_NUM_MONTH = "yM";
+    field public static final String YEAR_NUM_MONTH_DAY = "yMd";
+    field public static final String YEAR_NUM_MONTH_WEEKDAY_DAY = "yMEd";
+    field public static final String YEAR_QUARTER = "yQQQQ";
     field public static final int YEAR_WOY_FIELD = 18; // 0x12
     field protected android.icu.util.Calendar calendar;
     field protected android.icu.text.NumberFormat numberFormat;
   }
 
-  public static final class DateFormat.BooleanAttribute extends java.lang.Enum {
-    method public static android.icu.text.DateFormat.BooleanAttribute valueOf(java.lang.String);
-    method public static final android.icu.text.DateFormat.BooleanAttribute[] values();
+  public enum DateFormat.BooleanAttribute {
     enum_constant public static final android.icu.text.DateFormat.BooleanAttribute PARSE_ALLOW_NUMERIC;
     enum_constant public static final android.icu.text.DateFormat.BooleanAttribute PARSE_ALLOW_WHITESPACE;
     enum_constant public static final android.icu.text.DateFormat.BooleanAttribute PARSE_MULTIPLE_PATTERNS_FOR_MATCH;
@@ -19779,7 +19726,7 @@
   }
 
   public static class DateFormat.Field extends java.text.Format.Field {
-    ctor protected DateFormat.Field(java.lang.String, int);
+    ctor protected DateFormat.Field(String, int);
     method public int getCalendarField();
     method public static android.icu.text.DateFormat.Field ofCalendarField(int);
     field public static final android.icu.text.DateFormat.Field AM_PM;
@@ -19816,44 +19763,44 @@
     ctor public DateFormatSymbols(android.icu.util.ULocale);
     ctor public DateFormatSymbols(android.icu.util.Calendar, java.util.Locale);
     ctor public DateFormatSymbols(android.icu.util.Calendar, android.icu.util.ULocale);
-    ctor public DateFormatSymbols(java.lang.Class<? extends android.icu.util.Calendar>, java.util.Locale);
-    ctor public DateFormatSymbols(java.lang.Class<? extends android.icu.util.Calendar>, android.icu.util.ULocale);
+    ctor public DateFormatSymbols(Class<? extends android.icu.util.Calendar>, java.util.Locale);
+    ctor public DateFormatSymbols(Class<? extends android.icu.util.Calendar>, android.icu.util.ULocale);
     ctor public DateFormatSymbols(java.util.ResourceBundle, java.util.Locale);
     ctor public DateFormatSymbols(java.util.ResourceBundle, android.icu.util.ULocale);
-    method public java.lang.Object clone();
-    method public java.lang.String[] getAmPmStrings();
+    method public Object clone();
+    method public String[] getAmPmStrings();
     method public static java.util.Locale[] getAvailableLocales();
-    method public java.lang.String[] getEraNames();
-    method public java.lang.String[] getEras();
+    method public String[] getEraNames();
+    method public String[] getEras();
     method public static android.icu.text.DateFormatSymbols getInstance();
     method public static android.icu.text.DateFormatSymbols getInstance(java.util.Locale);
     method public static android.icu.text.DateFormatSymbols getInstance(android.icu.util.ULocale);
-    method public java.lang.String getLocalPatternChars();
-    method public java.lang.String[] getMonths();
-    method public java.lang.String[] getMonths(int, int);
-    method public java.lang.String[] getQuarters(int, int);
-    method public java.lang.String[] getShortMonths();
-    method public java.lang.String[] getShortWeekdays();
-    method public java.lang.String[] getWeekdays();
-    method public java.lang.String[] getWeekdays(int, int);
-    method public java.lang.String[] getYearNames(int, int);
-    method public java.lang.String[] getZodiacNames(int, int);
-    method public java.lang.String[][] getZoneStrings();
-    method protected void initializeData(android.icu.util.ULocale, java.lang.String);
-    method public void setAmPmStrings(java.lang.String[]);
-    method public void setEraNames(java.lang.String[]);
-    method public void setEras(java.lang.String[]);
-    method public void setLocalPatternChars(java.lang.String);
-    method public void setMonths(java.lang.String[]);
-    method public void setMonths(java.lang.String[], int, int);
-    method public void setQuarters(java.lang.String[], int, int);
-    method public void setShortMonths(java.lang.String[]);
-    method public void setShortWeekdays(java.lang.String[]);
-    method public void setWeekdays(java.lang.String[], int, int);
-    method public void setWeekdays(java.lang.String[]);
-    method public void setYearNames(java.lang.String[], int, int);
-    method public void setZodiacNames(java.lang.String[], int, int);
-    method public void setZoneStrings(java.lang.String[][]);
+    method public String getLocalPatternChars();
+    method public String[] getMonths();
+    method public String[] getMonths(int, int);
+    method public String[] getQuarters(int, int);
+    method public String[] getShortMonths();
+    method public String[] getShortWeekdays();
+    method public String[] getWeekdays();
+    method public String[] getWeekdays(int, int);
+    method public String[] getYearNames(int, int);
+    method public String[] getZodiacNames(int, int);
+    method public String[][] getZoneStrings();
+    method protected void initializeData(android.icu.util.ULocale, String);
+    method public void setAmPmStrings(String[]);
+    method public void setEraNames(String[]);
+    method public void setEras(String[]);
+    method public void setLocalPatternChars(String);
+    method public void setMonths(String[]);
+    method public void setMonths(String[], int, int);
+    method public void setQuarters(String[], int, int);
+    method public void setShortMonths(String[]);
+    method public void setShortWeekdays(String[]);
+    method public void setWeekdays(String[], int, int);
+    method public void setWeekdays(String[]);
+    method public void setYearNames(String[], int, int);
+    method public void setZodiacNames(String[], int, int);
+    method public void setZoneStrings(String[][]);
     field public static final int ABBREVIATED = 0; // 0x0
     field public static final int FORMAT = 0; // 0x0
     field public static final int NARROW = 2; // 0x2
@@ -19863,72 +19810,71 @@
   }
 
   public class DateIntervalFormat extends android.icu.text.UFormat {
-    method public synchronized java.lang.Object clone();
-    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final synchronized java.lang.StringBuffer format(android.icu.util.DateInterval, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final synchronized java.lang.StringBuffer format(android.icu.util.Calendar, android.icu.util.Calendar, java.lang.StringBuffer, java.text.FieldPosition);
-    method public synchronized android.icu.text.DateFormat getDateFormat();
+    method public final StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
+    method public final StringBuffer format(android.icu.util.DateInterval, StringBuffer, java.text.FieldPosition);
+    method public final StringBuffer format(android.icu.util.Calendar, android.icu.util.Calendar, StringBuffer, java.text.FieldPosition);
+    method public android.icu.text.DateFormat getDateFormat();
     method public android.icu.text.DateIntervalInfo getDateIntervalInfo();
-    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String);
-    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, java.util.Locale);
-    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, android.icu.util.ULocale);
-    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, android.icu.text.DateIntervalInfo);
-    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, java.util.Locale, android.icu.text.DateIntervalInfo);
-    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, android.icu.util.ULocale, android.icu.text.DateIntervalInfo);
+    method public static final android.icu.text.DateIntervalFormat getInstance(String);
+    method public static final android.icu.text.DateIntervalFormat getInstance(String, java.util.Locale);
+    method public static final android.icu.text.DateIntervalFormat getInstance(String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateIntervalFormat getInstance(String, android.icu.text.DateIntervalInfo);
+    method public static final android.icu.text.DateIntervalFormat getInstance(String, java.util.Locale, android.icu.text.DateIntervalInfo);
+    method public static final android.icu.text.DateIntervalFormat getInstance(String, android.icu.util.ULocale, android.icu.text.DateIntervalInfo);
     method public android.icu.util.TimeZone getTimeZone();
-    method public deprecated java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method @Deprecated public Object parseObject(String, java.text.ParsePosition);
     method public void setDateIntervalInfo(android.icu.text.DateIntervalInfo);
     method public void setTimeZone(android.icu.util.TimeZone);
   }
 
-  public class DateIntervalInfo implements java.lang.Cloneable android.icu.util.Freezable java.io.Serializable {
+  public class DateIntervalInfo implements java.lang.Cloneable android.icu.util.Freezable<android.icu.text.DateIntervalInfo> java.io.Serializable {
     ctor public DateIntervalInfo(android.icu.util.ULocale);
     ctor public DateIntervalInfo(java.util.Locale);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public android.icu.text.DateIntervalInfo cloneAsThawed();
     method public android.icu.text.DateIntervalInfo freeze();
     method public boolean getDefaultOrder();
-    method public java.lang.String getFallbackIntervalPattern();
-    method public android.icu.text.DateIntervalInfo.PatternInfo getIntervalPattern(java.lang.String, int);
+    method public String getFallbackIntervalPattern();
+    method public android.icu.text.DateIntervalInfo.PatternInfo getIntervalPattern(String, int);
     method public boolean isFrozen();
-    method public void setFallbackIntervalPattern(java.lang.String);
-    method public void setIntervalPattern(java.lang.String, int, java.lang.String);
+    method public void setFallbackIntervalPattern(String);
+    method public void setIntervalPattern(String, int, String);
   }
 
   public static final class DateIntervalInfo.PatternInfo implements java.lang.Cloneable java.io.Serializable {
-    ctor public DateIntervalInfo.PatternInfo(java.lang.String, java.lang.String, boolean);
+    ctor public DateIntervalInfo.PatternInfo(String, String, boolean);
     method public boolean firstDateInPtnIsLaterDate();
-    method public java.lang.String getFirstPart();
-    method public java.lang.String getSecondPart();
+    method public String getFirstPart();
+    method public String getSecondPart();
   }
 
-  public class DateTimePatternGenerator implements java.lang.Cloneable android.icu.util.Freezable {
+  public class DateTimePatternGenerator implements java.lang.Cloneable android.icu.util.Freezable<android.icu.text.DateTimePatternGenerator> {
     ctor protected DateTimePatternGenerator();
-    method public android.icu.text.DateTimePatternGenerator addPattern(java.lang.String, boolean, android.icu.text.DateTimePatternGenerator.PatternInfo);
-    method public java.lang.Object clone();
+    method public android.icu.text.DateTimePatternGenerator addPattern(String, boolean, android.icu.text.DateTimePatternGenerator.PatternInfo);
+    method public Object clone();
     method public android.icu.text.DateTimePatternGenerator cloneAsThawed();
     method public android.icu.text.DateTimePatternGenerator freeze();
-    method public java.lang.String getAppendItemFormat(int);
-    method public java.lang.String getAppendItemName(int);
-    method public java.lang.String getBaseSkeleton(java.lang.String);
+    method public String getAppendItemFormat(int);
+    method public String getAppendItemName(int);
+    method public String getBaseSkeleton(String);
     method public java.util.Set<java.lang.String> getBaseSkeletons(java.util.Set<java.lang.String>);
-    method public java.lang.String getBestPattern(java.lang.String);
-    method public java.lang.String getBestPattern(java.lang.String, int);
-    method public java.lang.String getDateTimeFormat();
-    method public java.lang.String getDecimal();
+    method public String getBestPattern(String);
+    method public String getBestPattern(String, int);
+    method public String getDateTimeFormat();
+    method public String getDecimal();
     method public static android.icu.text.DateTimePatternGenerator getEmptyInstance();
     method public static android.icu.text.DateTimePatternGenerator getInstance();
     method public static android.icu.text.DateTimePatternGenerator getInstance(android.icu.util.ULocale);
     method public static android.icu.text.DateTimePatternGenerator getInstance(java.util.Locale);
-    method public java.lang.String getSkeleton(java.lang.String);
-    method public java.util.Map<java.lang.String, java.lang.String> getSkeletons(java.util.Map<java.lang.String, java.lang.String>);
+    method public String getSkeleton(String);
+    method public java.util.Map<java.lang.String,java.lang.String> getSkeletons(java.util.Map<java.lang.String,java.lang.String>);
     method public boolean isFrozen();
-    method public java.lang.String replaceFieldTypes(java.lang.String, java.lang.String);
-    method public java.lang.String replaceFieldTypes(java.lang.String, java.lang.String, int);
-    method public void setAppendItemFormat(int, java.lang.String);
-    method public void setAppendItemName(int, java.lang.String);
-    method public void setDateTimeFormat(java.lang.String);
-    method public void setDecimal(java.lang.String);
+    method public String replaceFieldTypes(String, String);
+    method public String replaceFieldTypes(String, String, int);
+    method public void setAppendItemFormat(int, String);
+    method public void setAppendItemName(int, String);
+    method public void setDateTimeFormat(String);
+    method public void setDecimal(String);
     field public static final int DAY = 7; // 0x7
     field public static final int DAYPERIOD = 10; // 0xa
     field public static final int DAY_OF_WEEK_IN_MONTH = 9; // 0x9
@@ -19955,99 +19901,79 @@
     field public static final int BASE_CONFLICT = 1; // 0x1
     field public static final int CONFLICT = 2; // 0x2
     field public static final int OK = 0; // 0x0
-    field public java.lang.String conflictingPattern;
+    field public String conflictingPattern;
     field public int status;
   }
 
   public class DecimalFormat extends android.icu.text.NumberFormat {
     ctor public DecimalFormat();
-    ctor public DecimalFormat(java.lang.String);
-    ctor public DecimalFormat(java.lang.String, android.icu.text.DecimalFormatSymbols);
-    ctor public DecimalFormat(java.lang.String, android.icu.text.DecimalFormatSymbols, android.icu.text.CurrencyPluralInfo, int);
-    method public synchronized void applyLocalizedPattern(java.lang.String);
-    method public synchronized void applyPattern(java.lang.String);
-    method public synchronized boolean areSignificantDigitsUsed();
-    method public synchronized boolean equals(java.lang.Object);
-    method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.StringBuffer format(java.math.BigInteger, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.StringBuffer format(java.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.StringBuffer format(android.icu.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
-    method public synchronized android.icu.util.Currency getCurrency();
-    method public synchronized android.icu.text.CurrencyPluralInfo getCurrencyPluralInfo();
-    method public synchronized android.icu.util.Currency.CurrencyUsage getCurrencyUsage();
-    method public synchronized android.icu.text.DecimalFormatSymbols getDecimalFormatSymbols();
-    method public synchronized int getFormatWidth();
-    method public synchronized int getGroupingSize();
-    method public synchronized java.math.MathContext getMathContext();
-    method public synchronized android.icu.math.MathContext getMathContextICU();
-    method public synchronized int getMaximumFractionDigits();
-    method public synchronized int getMaximumIntegerDigits();
-    method public synchronized int getMaximumSignificantDigits();
-    method public synchronized byte getMinimumExponentDigits();
-    method public synchronized int getMinimumFractionDigits();
-    method public synchronized int getMinimumIntegerDigits();
-    method public synchronized int getMinimumSignificantDigits();
-    method public synchronized int getMultiplier();
-    method public synchronized java.lang.String getNegativePrefix();
-    method public synchronized java.lang.String getNegativeSuffix();
-    method public synchronized char getPadCharacter();
-    method public synchronized int getPadPosition();
-    method public deprecated int getParseMaxDigits();
-    method public synchronized java.lang.String getPositivePrefix();
-    method public synchronized java.lang.String getPositiveSuffix();
-    method public synchronized java.math.BigDecimal getRoundingIncrement();
-    method public synchronized int getRoundingMode();
-    method public synchronized int getSecondaryGroupingSize();
-    method public synchronized int hashCode();
-    method public synchronized boolean isDecimalPatternMatchRequired();
-    method public synchronized boolean isDecimalSeparatorAlwaysShown();
-    method public synchronized boolean isExponentSignAlwaysShown();
-    method public synchronized boolean isGroupingUsed();
-    method public synchronized boolean isParseBigDecimal();
-    method public synchronized boolean isParseIntegerOnly();
-    method public synchronized boolean isParseStrict();
-    method public synchronized boolean isScientificNotation();
-    method public java.lang.Number parse(java.lang.String, java.text.ParsePosition);
-    method public synchronized void setCurrency(android.icu.util.Currency);
-    method public synchronized void setCurrencyPluralInfo(android.icu.text.CurrencyPluralInfo);
-    method public synchronized void setCurrencyUsage(android.icu.util.Currency.CurrencyUsage);
-    method public synchronized void setDecimalFormatSymbols(android.icu.text.DecimalFormatSymbols);
-    method public synchronized void setDecimalPatternMatchRequired(boolean);
-    method public synchronized void setDecimalSeparatorAlwaysShown(boolean);
-    method public synchronized void setExponentSignAlwaysShown(boolean);
-    method public synchronized void setFormatWidth(int);
-    method public synchronized void setGroupingSize(int);
-    method public synchronized void setGroupingUsed(boolean);
-    method public synchronized void setMathContext(java.math.MathContext);
-    method public synchronized void setMathContextICU(android.icu.math.MathContext);
-    method public synchronized void setMaximumFractionDigits(int);
-    method public synchronized void setMaximumIntegerDigits(int);
-    method public synchronized void setMaximumSignificantDigits(int);
-    method public synchronized void setMinimumExponentDigits(byte);
-    method public synchronized void setMinimumFractionDigits(int);
-    method public synchronized void setMinimumIntegerDigits(int);
-    method public synchronized void setMinimumSignificantDigits(int);
-    method public synchronized void setMultiplier(int);
-    method public synchronized void setNegativePrefix(java.lang.String);
-    method public synchronized void setNegativeSuffix(java.lang.String);
-    method public synchronized void setPadCharacter(char);
-    method public synchronized void setPadPosition(int);
-    method public synchronized void setParseBigDecimal(boolean);
-    method public synchronized void setParseIntegerOnly(boolean);
-    method public deprecated void setParseMaxDigits(int);
-    method public synchronized void setParseStrict(boolean);
-    method public synchronized void setPositivePrefix(java.lang.String);
-    method public synchronized void setPositiveSuffix(java.lang.String);
-    method public synchronized void setRoundingIncrement(java.math.BigDecimal);
-    method public synchronized void setRoundingIncrement(android.icu.math.BigDecimal);
-    method public synchronized void setRoundingIncrement(double);
-    method public synchronized void setRoundingMode(int);
-    method public synchronized void setScientificNotation(boolean);
-    method public synchronized void setSecondaryGroupingSize(int);
-    method public synchronized void setSignificantDigitsUsed(boolean);
-    method public synchronized java.lang.String toLocalizedPattern();
-    method public synchronized java.lang.String toPattern();
+    ctor public DecimalFormat(String);
+    ctor public DecimalFormat(String, android.icu.text.DecimalFormatSymbols);
+    ctor public DecimalFormat(String, android.icu.text.DecimalFormatSymbols, android.icu.text.CurrencyPluralInfo, int);
+    method public void applyLocalizedPattern(String);
+    method public void applyPattern(String);
+    method public boolean areSignificantDigitsUsed();
+    method public StringBuffer format(double, StringBuffer, java.text.FieldPosition);
+    method public StringBuffer format(long, StringBuffer, java.text.FieldPosition);
+    method public StringBuffer format(java.math.BigInteger, StringBuffer, java.text.FieldPosition);
+    method public StringBuffer format(java.math.BigDecimal, StringBuffer, java.text.FieldPosition);
+    method public StringBuffer format(android.icu.math.BigDecimal, StringBuffer, java.text.FieldPosition);
+    method public android.icu.text.CurrencyPluralInfo getCurrencyPluralInfo();
+    method public android.icu.util.Currency.CurrencyUsage getCurrencyUsage();
+    method public android.icu.text.DecimalFormatSymbols getDecimalFormatSymbols();
+    method public int getFormatWidth();
+    method public int getGroupingSize();
+    method public java.math.MathContext getMathContext();
+    method public android.icu.math.MathContext getMathContextICU();
+    method public int getMaximumSignificantDigits();
+    method public byte getMinimumExponentDigits();
+    method public int getMinimumSignificantDigits();
+    method public int getMultiplier();
+    method public String getNegativePrefix();
+    method public String getNegativeSuffix();
+    method public char getPadCharacter();
+    method public int getPadPosition();
+    method @Deprecated public int getParseMaxDigits();
+    method public String getPositivePrefix();
+    method public String getPositiveSuffix();
+    method public java.math.BigDecimal getRoundingIncrement();
+    method public int getSecondaryGroupingSize();
+    method public boolean isDecimalPatternMatchRequired();
+    method public boolean isDecimalSeparatorAlwaysShown();
+    method public boolean isExponentSignAlwaysShown();
+    method public boolean isParseBigDecimal();
+    method public boolean isScientificNotation();
+    method public Number parse(String, java.text.ParsePosition);
+    method public void setCurrencyPluralInfo(android.icu.text.CurrencyPluralInfo);
+    method public void setCurrencyUsage(android.icu.util.Currency.CurrencyUsage);
+    method public void setDecimalFormatSymbols(android.icu.text.DecimalFormatSymbols);
+    method public void setDecimalPatternMatchRequired(boolean);
+    method public void setDecimalSeparatorAlwaysShown(boolean);
+    method public void setExponentSignAlwaysShown(boolean);
+    method public void setFormatWidth(int);
+    method public void setGroupingSize(int);
+    method public void setMathContext(java.math.MathContext);
+    method public void setMathContextICU(android.icu.math.MathContext);
+    method public void setMaximumSignificantDigits(int);
+    method public void setMinimumExponentDigits(byte);
+    method public void setMinimumSignificantDigits(int);
+    method public void setMultiplier(int);
+    method public void setNegativePrefix(String);
+    method public void setNegativeSuffix(String);
+    method public void setPadCharacter(char);
+    method public void setPadPosition(int);
+    method public void setParseBigDecimal(boolean);
+    method @Deprecated public void setParseMaxDigits(int);
+    method public void setPositivePrefix(String);
+    method public void setPositiveSuffix(String);
+    method public void setRoundingIncrement(java.math.BigDecimal);
+    method public void setRoundingIncrement(android.icu.math.BigDecimal);
+    method public void setRoundingIncrement(double);
+    method public void setScientificNotation(boolean);
+    method public void setSecondaryGroupingSize(int);
+    method public void setSignificantDigitsUsed(boolean);
+    method public String toLocalizedPattern();
+    method public String toPattern();
     field public static final int PAD_AFTER_PREFIX = 1; // 0x1
     field public static final int PAD_AFTER_SUFFIX = 3; // 0x3
     field public static final int PAD_BEFORE_PREFIX = 0; // 0x0
@@ -20058,74 +19984,74 @@
     ctor public DecimalFormatSymbols();
     ctor public DecimalFormatSymbols(java.util.Locale);
     ctor public DecimalFormatSymbols(android.icu.util.ULocale);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public static android.icu.text.DecimalFormatSymbols forNumberingSystem(java.util.Locale, android.icu.text.NumberingSystem);
     method public static android.icu.text.DecimalFormatSymbols forNumberingSystem(android.icu.util.ULocale, android.icu.text.NumberingSystem);
     method public static java.util.Locale[] getAvailableLocales();
     method public android.icu.util.Currency getCurrency();
-    method public java.lang.String getCurrencySymbol();
+    method public String getCurrencySymbol();
     method public char getDecimalSeparator();
-    method public java.lang.String getDecimalSeparatorString();
+    method public String getDecimalSeparatorString();
     method public char getDigit();
-    method public java.lang.String[] getDigitStrings();
+    method public String[] getDigitStrings();
     method public char[] getDigits();
-    method public java.lang.String getExponentMultiplicationSign();
-    method public java.lang.String getExponentSeparator();
+    method public String getExponentMultiplicationSign();
+    method public String getExponentSeparator();
     method public char getGroupingSeparator();
-    method public java.lang.String getGroupingSeparatorString();
-    method public java.lang.String getInfinity();
+    method public String getGroupingSeparatorString();
+    method public String getInfinity();
     method public static android.icu.text.DecimalFormatSymbols getInstance();
     method public static android.icu.text.DecimalFormatSymbols getInstance(java.util.Locale);
     method public static android.icu.text.DecimalFormatSymbols getInstance(android.icu.util.ULocale);
-    method public java.lang.String getInternationalCurrencySymbol();
+    method public String getInternationalCurrencySymbol();
     method public java.util.Locale getLocale();
     method public char getMinusSign();
-    method public java.lang.String getMinusSignString();
+    method public String getMinusSignString();
     method public char getMonetaryDecimalSeparator();
-    method public java.lang.String getMonetaryDecimalSeparatorString();
+    method public String getMonetaryDecimalSeparatorString();
     method public char getMonetaryGroupingSeparator();
-    method public java.lang.String getMonetaryGroupingSeparatorString();
-    method public java.lang.String getNaN();
+    method public String getMonetaryGroupingSeparatorString();
+    method public String getNaN();
     method public char getPadEscape();
-    method public java.lang.String getPatternForCurrencySpacing(int, boolean);
+    method public String getPatternForCurrencySpacing(int, boolean);
     method public char getPatternSeparator();
     method public char getPerMill();
-    method public java.lang.String getPerMillString();
+    method public String getPerMillString();
     method public char getPercent();
-    method public java.lang.String getPercentString();
+    method public String getPercentString();
     method public char getPlusSign();
-    method public java.lang.String getPlusSignString();
+    method public String getPlusSignString();
     method public char getSignificantDigit();
     method public android.icu.util.ULocale getULocale();
     method public char getZeroDigit();
     method public void setCurrency(android.icu.util.Currency);
-    method public void setCurrencySymbol(java.lang.String);
+    method public void setCurrencySymbol(String);
     method public void setDecimalSeparator(char);
-    method public void setDecimalSeparatorString(java.lang.String);
+    method public void setDecimalSeparatorString(String);
     method public void setDigit(char);
-    method public void setDigitStrings(java.lang.String[]);
-    method public void setExponentMultiplicationSign(java.lang.String);
-    method public void setExponentSeparator(java.lang.String);
+    method public void setDigitStrings(String[]);
+    method public void setExponentMultiplicationSign(String);
+    method public void setExponentSeparator(String);
     method public void setGroupingSeparator(char);
-    method public void setGroupingSeparatorString(java.lang.String);
-    method public void setInfinity(java.lang.String);
-    method public void setInternationalCurrencySymbol(java.lang.String);
+    method public void setGroupingSeparatorString(String);
+    method public void setInfinity(String);
+    method public void setInternationalCurrencySymbol(String);
     method public void setMinusSign(char);
-    method public void setMinusSignString(java.lang.String);
+    method public void setMinusSignString(String);
     method public void setMonetaryDecimalSeparator(char);
-    method public void setMonetaryDecimalSeparatorString(java.lang.String);
+    method public void setMonetaryDecimalSeparatorString(String);
     method public void setMonetaryGroupingSeparator(char);
-    method public void setMonetaryGroupingSeparatorString(java.lang.String);
-    method public void setNaN(java.lang.String);
+    method public void setMonetaryGroupingSeparatorString(String);
+    method public void setNaN(String);
     method public void setPadEscape(char);
-    method public void setPatternForCurrencySpacing(int, boolean, java.lang.String);
+    method public void setPatternForCurrencySpacing(int, boolean, String);
     method public void setPatternSeparator(char);
     method public void setPerMill(char);
-    method public void setPerMillString(java.lang.String);
+    method public void setPerMillString(String);
     method public void setPercent(char);
-    method public void setPercentString(java.lang.String);
+    method public void setPercentString(String);
     method public void setPlusSign(char);
-    method public void setPlusSignString(java.lang.String);
+    method public void setPlusSignString(String);
     method public void setSignificantDigit(char);
     method public void setZeroDigit(char);
     field public static final int CURRENCY_SPC_CURRENCY_MATCH = 0; // 0x0
@@ -20133,11 +20059,9 @@
     field public static final int CURRENCY_SPC_SURROUNDING_MATCH = 1; // 0x1
   }
 
-  public final class DisplayContext extends java.lang.Enum {
+  public enum DisplayContext {
     method public android.icu.text.DisplayContext.Type type();
     method public int value();
-    method public static android.icu.text.DisplayContext valueOf(java.lang.String);
-    method public static final android.icu.text.DisplayContext[] values();
     enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE;
     enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE;
     enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_STANDALONE;
@@ -20151,9 +20075,7 @@
     enum_constant public static final android.icu.text.DisplayContext SUBSTITUTE;
   }
 
-  public static final class DisplayContext.Type extends java.lang.Enum {
-    method public static android.icu.text.DisplayContext.Type valueOf(java.lang.String);
-    method public static final android.icu.text.DisplayContext.Type[] values();
+  public enum DisplayContext.Type {
     enum_constant public static final android.icu.text.DisplayContext.Type CAPITALIZATION;
     enum_constant public static final android.icu.text.DisplayContext.Type DIALECT_HANDLING;
     enum_constant public static final android.icu.text.DisplayContext.Type DISPLAY_LENGTH;
@@ -20191,10 +20113,10 @@
 
   public abstract class IDNA {
     method public static android.icu.text.IDNA getUTS46Instance(int);
-    method public abstract java.lang.StringBuilder labelToASCII(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
-    method public abstract java.lang.StringBuilder labelToUnicode(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
-    method public abstract java.lang.StringBuilder nameToASCII(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
-    method public abstract java.lang.StringBuilder nameToUnicode(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
+    method public abstract StringBuilder labelToASCII(CharSequence, StringBuilder, android.icu.text.IDNA.Info);
+    method public abstract StringBuilder labelToUnicode(CharSequence, StringBuilder, android.icu.text.IDNA.Info);
+    method public abstract StringBuilder nameToASCII(CharSequence, StringBuilder, android.icu.text.IDNA.Info);
+    method public abstract StringBuilder nameToUnicode(CharSequence, StringBuilder, android.icu.text.IDNA.Info);
     field public static final int CHECK_BIDI = 4; // 0x4
     field public static final int CHECK_CONTEXTJ = 8; // 0x8
     field public static final int CHECK_CONTEXTO = 64; // 0x40
@@ -20204,9 +20126,7 @@
     field public static final int USE_STD3_RULES = 2; // 0x2
   }
 
-  public static final class IDNA.Error extends java.lang.Enum {
-    method public static android.icu.text.IDNA.Error valueOf(java.lang.String);
-    method public static final android.icu.text.IDNA.Error[] values();
+  public enum IDNA.Error {
     enum_constant public static final android.icu.text.IDNA.Error BIDI;
     enum_constant public static final android.icu.text.IDNA.Error CONTEXTJ;
     enum_constant public static final android.icu.text.IDNA.Error CONTEXTO_DIGITS;
@@ -20232,12 +20152,12 @@
   }
 
   public final class ListFormatter {
-    method public java.lang.String format(java.lang.Object...);
-    method public java.lang.String format(java.util.Collection<?>);
+    method public String format(java.lang.Object...);
+    method public String format(java.util.Collection<?>);
     method public static android.icu.text.ListFormatter getInstance(android.icu.util.ULocale);
     method public static android.icu.text.ListFormatter getInstance(java.util.Locale);
     method public static android.icu.text.ListFormatter getInstance();
-    method public java.lang.String getPatternForNumItems(int);
+    method public String getPatternForNumItems(int);
   }
 
   public abstract class LocaleDisplayNames {
@@ -20251,40 +20171,38 @@
     method public abstract android.icu.util.ULocale getLocale();
     method public java.util.List<android.icu.text.LocaleDisplayNames.UiListItem> getUiList(java.util.Set<android.icu.util.ULocale>, boolean, java.util.Comparator<java.lang.Object>);
     method public abstract java.util.List<android.icu.text.LocaleDisplayNames.UiListItem> getUiListCompareWholeItems(java.util.Set<android.icu.util.ULocale>, java.util.Comparator<android.icu.text.LocaleDisplayNames.UiListItem>);
-    method public abstract java.lang.String keyDisplayName(java.lang.String);
-    method public abstract java.lang.String keyValueDisplayName(java.lang.String, java.lang.String);
-    method public abstract java.lang.String languageDisplayName(java.lang.String);
-    method public abstract java.lang.String localeDisplayName(android.icu.util.ULocale);
-    method public abstract java.lang.String localeDisplayName(java.util.Locale);
-    method public abstract java.lang.String localeDisplayName(java.lang.String);
-    method public abstract java.lang.String regionDisplayName(java.lang.String);
-    method public abstract java.lang.String scriptDisplayName(java.lang.String);
-    method public abstract java.lang.String scriptDisplayName(int);
-    method public abstract java.lang.String variantDisplayName(java.lang.String);
+    method public abstract String keyDisplayName(String);
+    method public abstract String keyValueDisplayName(String, String);
+    method public abstract String languageDisplayName(String);
+    method public abstract String localeDisplayName(android.icu.util.ULocale);
+    method public abstract String localeDisplayName(java.util.Locale);
+    method public abstract String localeDisplayName(String);
+    method public abstract String regionDisplayName(String);
+    method public abstract String scriptDisplayName(String);
+    method public abstract String scriptDisplayName(int);
+    method public abstract String variantDisplayName(String);
   }
 
-  public static final class LocaleDisplayNames.DialectHandling extends java.lang.Enum {
-    method public static android.icu.text.LocaleDisplayNames.DialectHandling valueOf(java.lang.String);
-    method public static final android.icu.text.LocaleDisplayNames.DialectHandling[] values();
+  public enum LocaleDisplayNames.DialectHandling {
     enum_constant public static final android.icu.text.LocaleDisplayNames.DialectHandling DIALECT_NAMES;
     enum_constant public static final android.icu.text.LocaleDisplayNames.DialectHandling STANDARD_NAMES;
   }
 
   public static class LocaleDisplayNames.UiListItem {
-    ctor public LocaleDisplayNames.UiListItem(android.icu.util.ULocale, android.icu.util.ULocale, java.lang.String, java.lang.String);
+    ctor public LocaleDisplayNames.UiListItem(android.icu.util.ULocale, android.icu.util.ULocale, String, String);
     method public static java.util.Comparator<android.icu.text.LocaleDisplayNames.UiListItem> getComparator(java.util.Comparator<java.lang.Object>, boolean);
     field public final android.icu.util.ULocale minimized;
     field public final android.icu.util.ULocale modified;
-    field public final java.lang.String nameInDisplayLocale;
-    field public final java.lang.String nameInSelf;
+    field public final String nameInDisplayLocale;
+    field public final String nameInSelf;
   }
 
   public class MeasureFormat extends android.icu.text.UFormat {
-    method public final boolean equals(java.lang.Object);
-    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.StringBuilder formatMeasurePerUnit(android.icu.util.Measure, android.icu.util.MeasureUnit, java.lang.StringBuilder, java.text.FieldPosition);
-    method public final java.lang.String formatMeasures(android.icu.util.Measure...);
-    method public java.lang.StringBuilder formatMeasures(java.lang.StringBuilder, java.text.FieldPosition, android.icu.util.Measure...);
+    method public final boolean equals(Object);
+    method public StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
+    method public StringBuilder formatMeasurePerUnit(android.icu.util.Measure, android.icu.util.MeasureUnit, StringBuilder, java.text.FieldPosition);
+    method public final String formatMeasures(android.icu.util.Measure...);
+    method public StringBuilder formatMeasures(StringBuilder, java.text.FieldPosition, android.icu.util.Measure...);
     method public static android.icu.text.MeasureFormat getCurrencyFormat(android.icu.util.ULocale);
     method public static android.icu.text.MeasureFormat getCurrencyFormat(java.util.Locale);
     method public static android.icu.text.MeasureFormat getCurrencyFormat();
@@ -20294,15 +20212,13 @@
     method public static android.icu.text.MeasureFormat getInstance(java.util.Locale, android.icu.text.MeasureFormat.FormatWidth, android.icu.text.NumberFormat);
     method public final android.icu.util.ULocale getLocale();
     method public android.icu.text.NumberFormat getNumberFormat();
-    method public java.lang.String getUnitDisplayName(android.icu.util.MeasureUnit);
+    method public String getUnitDisplayName(android.icu.util.MeasureUnit);
     method public android.icu.text.MeasureFormat.FormatWidth getWidth();
     method public final int hashCode();
-    method public android.icu.util.Measure parseObject(java.lang.String, java.text.ParsePosition);
+    method public android.icu.util.Measure parseObject(String, java.text.ParsePosition);
   }
 
-  public static final class MeasureFormat.FormatWidth extends java.lang.Enum {
-    method public static android.icu.text.MeasureFormat.FormatWidth valueOf(java.lang.String);
-    method public static final android.icu.text.MeasureFormat.FormatWidth[] values();
+  public enum MeasureFormat.FormatWidth {
     enum_constant public static final android.icu.text.MeasureFormat.FormatWidth NARROW;
     enum_constant public static final android.icu.text.MeasureFormat.FormatWidth NUMERIC;
     enum_constant public static final android.icu.text.MeasureFormat.FormatWidth SHORT;
@@ -20310,54 +20226,54 @@
   }
 
   public class MessageFormat extends android.icu.text.UFormat {
-    ctor public MessageFormat(java.lang.String);
-    ctor public MessageFormat(java.lang.String, java.util.Locale);
-    ctor public MessageFormat(java.lang.String, android.icu.util.ULocale);
-    method public void applyPattern(java.lang.String);
-    method public void applyPattern(java.lang.String, android.icu.text.MessagePattern.ApostropheMode);
-    method public static java.lang.String autoQuoteApostrophe(java.lang.String);
-    method public final java.lang.StringBuffer format(java.lang.Object[], java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.StringBuffer format(java.util.Map<java.lang.String, java.lang.Object>, java.lang.StringBuffer, java.text.FieldPosition);
-    method public static java.lang.String format(java.lang.String, java.lang.Object...);
-    method public static java.lang.String format(java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
-    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    ctor public MessageFormat(String);
+    ctor public MessageFormat(String, java.util.Locale);
+    ctor public MessageFormat(String, android.icu.util.ULocale);
+    method public void applyPattern(String);
+    method public void applyPattern(String, android.icu.text.MessagePattern.ApostropheMode);
+    method public static String autoQuoteApostrophe(String);
+    method public final StringBuffer format(Object[], StringBuffer, java.text.FieldPosition);
+    method public final StringBuffer format(java.util.Map<java.lang.String,java.lang.Object>, StringBuffer, java.text.FieldPosition);
+    method public static String format(String, java.lang.Object...);
+    method public static String format(String, java.util.Map<java.lang.String,java.lang.Object>);
+    method public final StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
     method public android.icu.text.MessagePattern.ApostropheMode getApostropheMode();
     method public java.util.Set<java.lang.String> getArgumentNames();
-    method public java.text.Format getFormatByArgumentName(java.lang.String);
+    method public java.text.Format getFormatByArgumentName(String);
     method public java.text.Format[] getFormats();
     method public java.text.Format[] getFormatsByArgumentIndex();
     method public java.util.Locale getLocale();
     method public android.icu.util.ULocale getULocale();
-    method public java.lang.Object[] parse(java.lang.String, java.text.ParsePosition);
-    method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
-    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
-    method public java.util.Map<java.lang.String, java.lang.Object> parseToMap(java.lang.String, java.text.ParsePosition);
-    method public java.util.Map<java.lang.String, java.lang.Object> parseToMap(java.lang.String) throws java.text.ParseException;
+    method public Object[] parse(String, java.text.ParsePosition);
+    method public Object[] parse(String) throws java.text.ParseException;
+    method public Object parseObject(String, java.text.ParsePosition);
+    method public java.util.Map<java.lang.String,java.lang.Object> parseToMap(String, java.text.ParsePosition);
+    method public java.util.Map<java.lang.String,java.lang.Object> parseToMap(String) throws java.text.ParseException;
     method public void setFormat(int, java.text.Format);
     method public void setFormatByArgumentIndex(int, java.text.Format);
-    method public void setFormatByArgumentName(java.lang.String, java.text.Format);
+    method public void setFormatByArgumentName(String, java.text.Format);
     method public void setFormats(java.text.Format[]);
     method public void setFormatsByArgumentIndex(java.text.Format[]);
-    method public void setFormatsByArgumentName(java.util.Map<java.lang.String, java.text.Format>);
+    method public void setFormatsByArgumentName(java.util.Map<java.lang.String,java.text.Format>);
     method public void setLocale(java.util.Locale);
     method public void setLocale(android.icu.util.ULocale);
-    method public java.lang.String toPattern();
+    method public String toPattern();
     method public boolean usesNamedArguments();
   }
 
   public static class MessageFormat.Field extends java.text.Format.Field {
-    ctor protected MessageFormat.Field(java.lang.String);
+    ctor protected MessageFormat.Field(String);
     field public static final android.icu.text.MessageFormat.Field ARGUMENT;
   }
 
-  public final class MessagePattern implements java.lang.Cloneable android.icu.util.Freezable {
+  public final class MessagePattern implements java.lang.Cloneable android.icu.util.Freezable<android.icu.text.MessagePattern> {
     ctor public MessagePattern();
     ctor public MessagePattern(android.icu.text.MessagePattern.ApostropheMode);
-    ctor public MessagePattern(java.lang.String);
-    method public java.lang.String autoQuoteApostropheDeep();
+    ctor public MessagePattern(String);
+    method public String autoQuoteApostropheDeep();
     method public void clear();
     method public void clearPatternAndSetApostropheMode(android.icu.text.MessagePattern.ApostropheMode);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public android.icu.text.MessagePattern cloneAsThawed();
     method public int countParts();
     method public android.icu.text.MessagePattern freeze();
@@ -20367,34 +20283,30 @@
     method public android.icu.text.MessagePattern.Part getPart(int);
     method public android.icu.text.MessagePattern.Part.Type getPartType(int);
     method public int getPatternIndex(int);
-    method public java.lang.String getPatternString();
+    method public String getPatternString();
     method public double getPluralOffset(int);
-    method public java.lang.String getSubstring(android.icu.text.MessagePattern.Part);
+    method public String getSubstring(android.icu.text.MessagePattern.Part);
     method public boolean hasNamedArguments();
     method public boolean hasNumberedArguments();
     method public boolean isFrozen();
-    method public android.icu.text.MessagePattern parse(java.lang.String);
-    method public android.icu.text.MessagePattern parseChoiceStyle(java.lang.String);
-    method public android.icu.text.MessagePattern parsePluralStyle(java.lang.String);
-    method public android.icu.text.MessagePattern parseSelectStyle(java.lang.String);
-    method public boolean partSubstringMatches(android.icu.text.MessagePattern.Part, java.lang.String);
-    method public static int validateArgumentName(java.lang.String);
+    method public android.icu.text.MessagePattern parse(String);
+    method public android.icu.text.MessagePattern parseChoiceStyle(String);
+    method public android.icu.text.MessagePattern parsePluralStyle(String);
+    method public android.icu.text.MessagePattern parseSelectStyle(String);
+    method public boolean partSubstringMatches(android.icu.text.MessagePattern.Part, String);
+    method public static int validateArgumentName(String);
     field public static final int ARG_NAME_NOT_NUMBER = -1; // 0xffffffff
     field public static final int ARG_NAME_NOT_VALID = -2; // 0xfffffffe
     field public static final double NO_NUMERIC_VALUE = -1.23456789E8;
   }
 
-  public static final class MessagePattern.ApostropheMode extends java.lang.Enum {
-    method public static android.icu.text.MessagePattern.ApostropheMode valueOf(java.lang.String);
-    method public static final android.icu.text.MessagePattern.ApostropheMode[] values();
+  public enum MessagePattern.ApostropheMode {
     enum_constant public static final android.icu.text.MessagePattern.ApostropheMode DOUBLE_OPTIONAL;
     enum_constant public static final android.icu.text.MessagePattern.ApostropheMode DOUBLE_REQUIRED;
   }
 
-  public static final class MessagePattern.ArgType extends java.lang.Enum {
+  public enum MessagePattern.ArgType {
     method public boolean hasPluralStyle();
-    method public static android.icu.text.MessagePattern.ArgType valueOf(java.lang.String);
-    method public static final android.icu.text.MessagePattern.ArgType[] values();
     enum_constant public static final android.icu.text.MessagePattern.ArgType CHOICE;
     enum_constant public static final android.icu.text.MessagePattern.ArgType NONE;
     enum_constant public static final android.icu.text.MessagePattern.ArgType PLURAL;
@@ -20412,10 +20324,8 @@
     method public int getValue();
   }
 
-  public static final class MessagePattern.Part.Type extends java.lang.Enum {
+  public enum MessagePattern.Part.Type {
     method public boolean hasNumericValue();
-    method public static android.icu.text.MessagePattern.Part.Type valueOf(java.lang.String);
-    method public static final android.icu.text.MessagePattern.Part.Type[] values();
     enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_DOUBLE;
     enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_INT;
     enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_LIMIT;
@@ -20433,12 +20343,12 @@
   }
 
   public final class Normalizer implements java.lang.Cloneable {
-    method public deprecated java.lang.Object clone();
+    method @Deprecated public Object clone();
     method public static int compare(char[], int, int, char[], int, int, int);
-    method public static int compare(java.lang.String, java.lang.String, int);
+    method public static int compare(String, String, int);
     method public static int compare(char[], char[], int);
     method public static int compare(int, int, int);
-    method public static int compare(int, java.lang.String, int);
+    method public static int compare(int, String, int);
     field public static final int COMPARE_CODE_POINT_ORDER = 32768; // 0x8000
     field public static final int COMPARE_IGNORE_CASE = 65536; // 0x10000
     field public static final int FOLD_CASE_DEFAULT = 0; // 0x0
@@ -20453,32 +20363,30 @@
   }
 
   public abstract class Normalizer2 {
-    method public abstract java.lang.StringBuilder append(java.lang.StringBuilder, java.lang.CharSequence);
+    method public abstract StringBuilder append(StringBuilder, CharSequence);
     method public int composePair(int, int);
     method public int getCombiningClass(int);
-    method public abstract java.lang.String getDecomposition(int);
-    method public static android.icu.text.Normalizer2 getInstance(java.io.InputStream, java.lang.String, android.icu.text.Normalizer2.Mode);
+    method public abstract String getDecomposition(int);
+    method public static android.icu.text.Normalizer2 getInstance(java.io.InputStream, String, android.icu.text.Normalizer2.Mode);
     method public static android.icu.text.Normalizer2 getNFCInstance();
     method public static android.icu.text.Normalizer2 getNFDInstance();
     method public static android.icu.text.Normalizer2 getNFKCCasefoldInstance();
     method public static android.icu.text.Normalizer2 getNFKCInstance();
     method public static android.icu.text.Normalizer2 getNFKDInstance();
-    method public java.lang.String getRawDecomposition(int);
+    method public String getRawDecomposition(int);
     method public abstract boolean hasBoundaryAfter(int);
     method public abstract boolean hasBoundaryBefore(int);
     method public abstract boolean isInert(int);
-    method public abstract boolean isNormalized(java.lang.CharSequence);
-    method public java.lang.String normalize(java.lang.CharSequence);
-    method public abstract java.lang.StringBuilder normalize(java.lang.CharSequence, java.lang.StringBuilder);
-    method public abstract java.lang.Appendable normalize(java.lang.CharSequence, java.lang.Appendable);
-    method public abstract java.lang.StringBuilder normalizeSecondAndAppend(java.lang.StringBuilder, java.lang.CharSequence);
-    method public abstract android.icu.text.Normalizer.QuickCheckResult quickCheck(java.lang.CharSequence);
-    method public abstract int spanQuickCheckYes(java.lang.CharSequence);
+    method public abstract boolean isNormalized(CharSequence);
+    method public String normalize(CharSequence);
+    method public abstract StringBuilder normalize(CharSequence, StringBuilder);
+    method public abstract Appendable normalize(CharSequence, Appendable);
+    method public abstract StringBuilder normalizeSecondAndAppend(StringBuilder, CharSequence);
+    method public abstract android.icu.text.Normalizer.QuickCheckResult quickCheck(CharSequence);
+    method public abstract int spanQuickCheckYes(CharSequence);
   }
 
-  public static final class Normalizer2.Mode extends java.lang.Enum {
-    method public static android.icu.text.Normalizer2.Mode valueOf(java.lang.String);
-    method public static final android.icu.text.Normalizer2.Mode[] values();
+  public enum Normalizer2.Mode {
     enum_constant public static final android.icu.text.Normalizer2.Mode COMPOSE;
     enum_constant public static final android.icu.text.Normalizer2.Mode COMPOSE_CONTIGUOUS;
     enum_constant public static final android.icu.text.Normalizer2.Mode DECOMPOSE;
@@ -20487,19 +20395,19 @@
 
   public abstract class NumberFormat extends android.icu.text.UFormat {
     ctor public NumberFormat();
-    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.String format(double);
-    method public final java.lang.String format(long);
-    method public final java.lang.String format(java.math.BigInteger);
-    method public final java.lang.String format(java.math.BigDecimal);
-    method public final java.lang.String format(android.icu.math.BigDecimal);
-    method public final java.lang.String format(android.icu.util.CurrencyAmount);
-    method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
-    method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
-    method public abstract java.lang.StringBuffer format(java.math.BigInteger, java.lang.StringBuffer, java.text.FieldPosition);
-    method public abstract java.lang.StringBuffer format(java.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
-    method public abstract java.lang.StringBuffer format(android.icu.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.StringBuffer format(android.icu.util.CurrencyAmount, java.lang.StringBuffer, java.text.FieldPosition);
+    method public StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
+    method public final String format(double);
+    method public final String format(long);
+    method public final String format(java.math.BigInteger);
+    method public final String format(java.math.BigDecimal);
+    method public final String format(android.icu.math.BigDecimal);
+    method public final String format(android.icu.util.CurrencyAmount);
+    method public abstract StringBuffer format(double, StringBuffer, java.text.FieldPosition);
+    method public abstract StringBuffer format(long, StringBuffer, java.text.FieldPosition);
+    method public abstract StringBuffer format(java.math.BigInteger, StringBuffer, java.text.FieldPosition);
+    method public abstract StringBuffer format(java.math.BigDecimal, StringBuffer, java.text.FieldPosition);
+    method public abstract StringBuffer format(android.icu.math.BigDecimal, StringBuffer, java.text.FieldPosition);
+    method public StringBuffer format(android.icu.util.CurrencyAmount, StringBuffer, java.text.FieldPosition);
     method public static java.util.Locale[] getAvailableLocales();
     method public android.icu.text.DisplayContext getContext(android.icu.text.DisplayContext.Type);
     method public android.icu.util.Currency getCurrency();
@@ -20522,7 +20430,7 @@
     method public static final android.icu.text.NumberFormat getNumberInstance();
     method public static android.icu.text.NumberFormat getNumberInstance(java.util.Locale);
     method public static android.icu.text.NumberFormat getNumberInstance(android.icu.util.ULocale);
-    method protected static java.lang.String getPattern(android.icu.util.ULocale, int);
+    method protected static String getPattern(android.icu.util.ULocale, int);
     method public static final android.icu.text.NumberFormat getPercentInstance();
     method public static android.icu.text.NumberFormat getPercentInstance(java.util.Locale);
     method public static android.icu.text.NumberFormat getPercentInstance(android.icu.util.ULocale);
@@ -20533,10 +20441,10 @@
     method public boolean isGroupingUsed();
     method public boolean isParseIntegerOnly();
     method public boolean isParseStrict();
-    method public abstract java.lang.Number parse(java.lang.String, java.text.ParsePosition);
-    method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
-    method public android.icu.util.CurrencyAmount parseCurrency(java.lang.CharSequence, java.text.ParsePosition);
-    method public final java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public abstract Number parse(String, java.text.ParsePosition);
+    method public Number parse(String) throws java.text.ParseException;
+    method public android.icu.util.CurrencyAmount parseCurrency(CharSequence, java.text.ParsePosition);
+    method public final Object parseObject(String, java.text.ParsePosition);
     method public void setContext(android.icu.text.DisplayContext);
     method public void setCurrency(android.icu.util.Currency);
     method public void setGroupingUsed(boolean);
@@ -20562,7 +20470,7 @@
   }
 
   public static class NumberFormat.Field extends java.text.Format.Field {
-    ctor protected NumberFormat.Field(java.lang.String);
+    ctor protected NumberFormat.Field(String);
     field public static final android.icu.text.NumberFormat.Field CURRENCY;
     field public static final android.icu.text.NumberFormat.Field DECIMAL_SEPARATOR;
     field public static final android.icu.text.NumberFormat.Field EXPONENT;
@@ -20578,17 +20486,17 @@
 
   public class NumberingSystem {
     ctor public NumberingSystem();
-    method public static java.lang.String[] getAvailableNames();
-    method public java.lang.String getDescription();
-    method public static android.icu.text.NumberingSystem getInstance(int, boolean, java.lang.String);
+    method public static String[] getAvailableNames();
+    method public String getDescription();
+    method public static android.icu.text.NumberingSystem getInstance(int, boolean, String);
     method public static android.icu.text.NumberingSystem getInstance(java.util.Locale);
     method public static android.icu.text.NumberingSystem getInstance(android.icu.util.ULocale);
     method public static android.icu.text.NumberingSystem getInstance();
-    method public static android.icu.text.NumberingSystem getInstanceByName(java.lang.String);
-    method public java.lang.String getName();
+    method public static android.icu.text.NumberingSystem getInstanceByName(String);
+    method public String getName();
     method public int getRadix();
     method public boolean isAlgorithmic();
-    method public static boolean isValidDigitString(java.lang.String);
+    method public static boolean isValidDigitString(String);
     field public static final android.icu.text.NumberingSystem LATIN;
   }
 
@@ -20601,57 +20509,55 @@
     ctor public PluralFormat(java.util.Locale, android.icu.text.PluralRules);
     ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules.PluralType);
     ctor public PluralFormat(java.util.Locale, android.icu.text.PluralRules.PluralType);
-    ctor public PluralFormat(java.lang.String);
-    ctor public PluralFormat(android.icu.util.ULocale, java.lang.String);
-    ctor public PluralFormat(android.icu.text.PluralRules, java.lang.String);
-    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules, java.lang.String);
-    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules.PluralType, java.lang.String);
-    method public void applyPattern(java.lang.String);
+    ctor public PluralFormat(String);
+    ctor public PluralFormat(android.icu.util.ULocale, String);
+    ctor public PluralFormat(android.icu.text.PluralRules, String);
+    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules, String);
+    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules.PluralType, String);
+    method public void applyPattern(String);
     method public boolean equals(android.icu.text.PluralFormat);
-    method public final java.lang.String format(double);
-    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.Number parse(java.lang.String, java.text.ParsePosition);
-    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public final String format(double);
+    method public StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
+    method public Number parse(String, java.text.ParsePosition);
+    method public Object parseObject(String, java.text.ParsePosition);
     method public void setNumberFormat(android.icu.text.NumberFormat);
-    method public java.lang.String toPattern();
+    method public String toPattern();
   }
 
   public class PluralRules implements java.io.Serializable {
-    method public static android.icu.text.PluralRules createRules(java.lang.String);
+    method public static android.icu.text.PluralRules createRules(String);
     method public boolean equals(android.icu.text.PluralRules);
     method public static android.icu.text.PluralRules forLocale(android.icu.util.ULocale);
     method public static android.icu.text.PluralRules forLocale(java.util.Locale);
     method public static android.icu.text.PluralRules forLocale(android.icu.util.ULocale, android.icu.text.PluralRules.PluralType);
     method public static android.icu.text.PluralRules forLocale(java.util.Locale, android.icu.text.PluralRules.PluralType);
-    method public java.util.Collection<java.lang.Double> getAllKeywordValues(java.lang.String);
+    method public java.util.Collection<java.lang.Double> getAllKeywordValues(String);
     method public java.util.Set<java.lang.String> getKeywords();
-    method public java.util.Collection<java.lang.Double> getSamples(java.lang.String);
-    method public double getUniqueKeywordValue(java.lang.String);
-    method public static android.icu.text.PluralRules parseDescription(java.lang.String) throws java.text.ParseException;
-    method public java.lang.String select(double);
+    method public java.util.Collection<java.lang.Double> getSamples(String);
+    method public double getUniqueKeywordValue(String);
+    method public static android.icu.text.PluralRules parseDescription(String) throws java.text.ParseException;
+    method public String select(double);
     field public static final android.icu.text.PluralRules DEFAULT;
-    field public static final java.lang.String KEYWORD_FEW = "few";
-    field public static final java.lang.String KEYWORD_MANY = "many";
-    field public static final java.lang.String KEYWORD_ONE = "one";
-    field public static final java.lang.String KEYWORD_OTHER = "other";
-    field public static final java.lang.String KEYWORD_TWO = "two";
-    field public static final java.lang.String KEYWORD_ZERO = "zero";
+    field public static final String KEYWORD_FEW = "few";
+    field public static final String KEYWORD_MANY = "many";
+    field public static final String KEYWORD_ONE = "one";
+    field public static final String KEYWORD_OTHER = "other";
+    field public static final String KEYWORD_TWO = "two";
+    field public static final String KEYWORD_ZERO = "zero";
     field public static final double NO_UNIQUE_VALUE = -0.00123456777;
   }
 
-  public static final class PluralRules.PluralType extends java.lang.Enum {
-    method public static android.icu.text.PluralRules.PluralType valueOf(java.lang.String);
-    method public static final android.icu.text.PluralRules.PluralType[] values();
+  public enum PluralRules.PluralType {
     enum_constant public static final android.icu.text.PluralRules.PluralType CARDINAL;
     enum_constant public static final android.icu.text.PluralRules.PluralType ORDINAL;
   }
 
   public final class RelativeDateTimeFormatter {
-    method public java.lang.String combineDateAndTime(java.lang.String, java.lang.String);
-    method public java.lang.String format(double, android.icu.text.RelativeDateTimeFormatter.Direction, android.icu.text.RelativeDateTimeFormatter.RelativeUnit);
-    method public java.lang.String format(android.icu.text.RelativeDateTimeFormatter.Direction, android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit);
-    method public java.lang.String format(double, android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit);
-    method public java.lang.String formatNumeric(double, android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit);
+    method public String combineDateAndTime(String, String);
+    method public String format(double, android.icu.text.RelativeDateTimeFormatter.Direction, android.icu.text.RelativeDateTimeFormatter.RelativeUnit);
+    method public String format(android.icu.text.RelativeDateTimeFormatter.Direction, android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit);
+    method public String format(double, android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit);
+    method public String formatNumeric(double, android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit);
     method public android.icu.text.DisplayContext getCapitalizationContext();
     method public android.icu.text.RelativeDateTimeFormatter.Style getFormatStyle();
     method public static android.icu.text.RelativeDateTimeFormatter getInstance();
@@ -20663,9 +20569,7 @@
     method public android.icu.text.NumberFormat getNumberFormat();
   }
 
-  public static final class RelativeDateTimeFormatter.AbsoluteUnit extends java.lang.Enum {
-    method public static android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit valueOf(java.lang.String);
-    method public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit[] values();
+  public enum RelativeDateTimeFormatter.AbsoluteUnit {
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit DAY;
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit FRIDAY;
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit MONDAY;
@@ -20680,9 +20584,7 @@
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit YEAR;
   }
 
-  public static final class RelativeDateTimeFormatter.Direction extends java.lang.Enum {
-    method public static android.icu.text.RelativeDateTimeFormatter.Direction valueOf(java.lang.String);
-    method public static final android.icu.text.RelativeDateTimeFormatter.Direction[] values();
+  public enum RelativeDateTimeFormatter.Direction {
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction LAST;
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction LAST_2;
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction NEXT;
@@ -20691,9 +20593,7 @@
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction THIS;
   }
 
-  public static final class RelativeDateTimeFormatter.RelativeDateTimeUnit extends java.lang.Enum {
-    method public static android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit valueOf(java.lang.String);
-    method public static final android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit[] values();
+  public enum RelativeDateTimeFormatter.RelativeDateTimeUnit {
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit DAY;
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit FRIDAY;
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit HOUR;
@@ -20711,9 +20611,7 @@
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeDateTimeUnit YEAR;
   }
 
-  public static final class RelativeDateTimeFormatter.RelativeUnit extends java.lang.Enum {
-    method public static android.icu.text.RelativeDateTimeFormatter.RelativeUnit valueOf(java.lang.String);
-    method public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit[] values();
+  public enum RelativeDateTimeFormatter.RelativeUnit {
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit DAYS;
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit HOURS;
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit MINUTES;
@@ -20723,37 +20621,35 @@
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit YEARS;
   }
 
-  public static final class RelativeDateTimeFormatter.Style extends java.lang.Enum {
-    method public static android.icu.text.RelativeDateTimeFormatter.Style valueOf(java.lang.String);
-    method public static final android.icu.text.RelativeDateTimeFormatter.Style[] values();
+  public enum RelativeDateTimeFormatter.Style {
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Style LONG;
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Style NARROW;
     enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Style SHORT;
   }
 
-  public abstract interface Replaceable {
-    method public abstract int char32At(int);
-    method public abstract char charAt(int);
-    method public abstract void copy(int, int, int);
-    method public abstract void getChars(int, int, char[], int);
-    method public abstract boolean hasMetaData();
-    method public abstract int length();
-    method public abstract void replace(int, int, java.lang.String);
-    method public abstract void replace(int, int, char[], int, int);
+  public interface Replaceable {
+    method public int char32At(int);
+    method public char charAt(int);
+    method public void copy(int, int, int);
+    method public void getChars(int, int, char[], int);
+    method public boolean hasMetaData();
+    method public int length();
+    method public void replace(int, int, String);
+    method public void replace(int, int, char[], int, int);
   }
 
   public final class RuleBasedCollator extends android.icu.text.Collator {
-    ctor public RuleBasedCollator(java.lang.String) throws java.lang.Exception;
+    ctor public RuleBasedCollator(String) throws java.lang.Exception;
     method public android.icu.text.RuleBasedCollator cloneAsThawed();
-    method public int compare(java.lang.String, java.lang.String);
-    method public android.icu.text.CollationElementIterator getCollationElementIterator(java.lang.String);
+    method public int compare(String, String);
+    method public android.icu.text.CollationElementIterator getCollationElementIterator(String);
     method public android.icu.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
     method public android.icu.text.CollationElementIterator getCollationElementIterator(android.icu.text.UCharacterIterator);
-    method public android.icu.text.CollationKey getCollationKey(java.lang.String);
+    method public android.icu.text.CollationKey getCollationKey(String);
     method public void getContractionsAndExpansions(android.icu.text.UnicodeSet, android.icu.text.UnicodeSet, boolean) throws java.lang.Exception;
     method public boolean getNumericCollation();
-    method public java.lang.String getRules();
-    method public java.lang.String getRules(boolean);
+    method public String getRules();
+    method public String getRules(boolean);
     method public android.icu.util.VersionInfo getUCAVersion();
     method public int getVariableTop();
     method public android.icu.util.VersionInfo getVersion();
@@ -20779,9 +20675,9 @@
   }
 
   public final class ScientificNumberFormatter {
-    method public java.lang.String format(java.lang.Object);
-    method public static android.icu.text.ScientificNumberFormatter getMarkupInstance(android.icu.util.ULocale, java.lang.String, java.lang.String);
-    method public static android.icu.text.ScientificNumberFormatter getMarkupInstance(android.icu.text.DecimalFormat, java.lang.String, java.lang.String);
+    method public String format(Object);
+    method public static android.icu.text.ScientificNumberFormatter getMarkupInstance(android.icu.util.ULocale, String, String);
+    method public static android.icu.text.ScientificNumberFormatter getMarkupInstance(android.icu.text.DecimalFormat, String, String);
     method public static android.icu.text.ScientificNumberFormatter getSuperscriptInstance(android.icu.util.ULocale);
     method public static android.icu.text.ScientificNumberFormatter getSuperscriptInstance(android.icu.text.DecimalFormat);
   }
@@ -20795,7 +20691,7 @@
     method public abstract int getIndex();
     method public int getMatchLength();
     method public int getMatchStart();
-    method public java.lang.String getMatchedText();
+    method public String getMatchedText();
     method public java.text.CharacterIterator getTarget();
     method protected abstract int handleNext(int);
     method protected abstract int handlePrevious(int);
@@ -20817,57 +20713,55 @@
     field protected java.text.CharacterIterator targetText;
   }
 
-  public static final class SearchIterator.ElementComparisonType extends java.lang.Enum {
-    method public static android.icu.text.SearchIterator.ElementComparisonType valueOf(java.lang.String);
-    method public static final android.icu.text.SearchIterator.ElementComparisonType[] values();
+  public enum SearchIterator.ElementComparisonType {
     enum_constant public static final android.icu.text.SearchIterator.ElementComparisonType ANY_BASE_WEIGHT_IS_WILDCARD;
     enum_constant public static final android.icu.text.SearchIterator.ElementComparisonType PATTERN_BASE_WEIGHT_IS_WILDCARD;
     enum_constant public static final android.icu.text.SearchIterator.ElementComparisonType STANDARD_ELEMENT_COMPARISON;
   }
 
   public class SelectFormat extends java.text.Format {
-    ctor public SelectFormat(java.lang.String);
-    method public void applyPattern(java.lang.String);
-    method public final java.lang.String format(java.lang.String);
-    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
-    method public java.lang.String toPattern();
+    ctor public SelectFormat(String);
+    method public void applyPattern(String);
+    method public final String format(String);
+    method public StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
+    method public Object parseObject(String, java.text.ParsePosition);
+    method public String toPattern();
   }
 
   public class SimpleDateFormat extends android.icu.text.DateFormat {
     ctor public SimpleDateFormat();
-    ctor public SimpleDateFormat(java.lang.String);
-    ctor public SimpleDateFormat(java.lang.String, java.util.Locale);
-    ctor public SimpleDateFormat(java.lang.String, android.icu.util.ULocale);
-    ctor public SimpleDateFormat(java.lang.String, java.lang.String, android.icu.util.ULocale);
-    ctor public SimpleDateFormat(java.lang.String, android.icu.text.DateFormatSymbols);
-    method public void applyLocalizedPattern(java.lang.String);
-    method public void applyPattern(java.lang.String);
-    method public java.lang.StringBuffer format(android.icu.util.Calendar, java.lang.StringBuffer, java.text.FieldPosition);
+    ctor public SimpleDateFormat(String);
+    ctor public SimpleDateFormat(String, java.util.Locale);
+    ctor public SimpleDateFormat(String, android.icu.util.ULocale);
+    ctor public SimpleDateFormat(String, String, android.icu.util.ULocale);
+    ctor public SimpleDateFormat(String, android.icu.text.DateFormatSymbols);
+    method public void applyLocalizedPattern(String);
+    method public void applyPattern(String);
+    method public StringBuffer format(android.icu.util.Calendar, StringBuffer, java.text.FieldPosition);
     method public java.util.Date get2DigitYearStart();
     method public android.icu.text.DateFormatSymbols getDateFormatSymbols();
     method public android.icu.text.NumberFormat getNumberFormat(char);
     method protected android.icu.text.DateFormatSymbols getSymbols();
     method public android.icu.text.TimeZoneFormat getTimeZoneFormat();
-    method protected int matchQuarterString(java.lang.String, int, int, java.lang.String[], android.icu.util.Calendar);
-    method protected int matchString(java.lang.String, int, int, java.lang.String[], android.icu.util.Calendar);
-    method public void parse(java.lang.String, android.icu.util.Calendar, java.text.ParsePosition);
+    method protected int matchQuarterString(String, int, int, String[], android.icu.util.Calendar);
+    method protected int matchString(String, int, int, String[], android.icu.util.Calendar);
+    method public void parse(String, android.icu.util.Calendar, java.text.ParsePosition);
     method protected android.icu.text.DateFormat.Field patternCharToDateFormatField(char);
     method public void set2DigitYearStart(java.util.Date);
     method public void setDateFormatSymbols(android.icu.text.DateFormatSymbols);
-    method public void setNumberFormat(java.lang.String, android.icu.text.NumberFormat);
+    method public void setNumberFormat(String, android.icu.text.NumberFormat);
     method public void setTimeZoneFormat(android.icu.text.TimeZoneFormat);
-    method protected java.lang.String subFormat(char, int, int, java.text.FieldPosition, android.icu.text.DateFormatSymbols, android.icu.util.Calendar) throws java.lang.IllegalArgumentException;
-    method protected int subParse(java.lang.String, int, char, int, boolean, boolean, boolean[], android.icu.util.Calendar);
-    method public java.lang.String toLocalizedPattern();
-    method public java.lang.String toPattern();
-    method protected java.lang.String zeroPaddingNumber(long, int, int);
+    method protected String subFormat(char, int, int, java.text.FieldPosition, android.icu.text.DateFormatSymbols, android.icu.util.Calendar) throws java.lang.IllegalArgumentException;
+    method protected int subParse(String, int, char, int, boolean, boolean, boolean[], android.icu.util.Calendar);
+    method public String toLocalizedPattern();
+    method public String toPattern();
+    method protected String zeroPaddingNumber(long, int, int);
   }
 
   public class StringPrepParseException extends java.text.ParseException {
-    ctor public StringPrepParseException(java.lang.String, int);
-    ctor public StringPrepParseException(java.lang.String, int, java.lang.String, int);
-    ctor public StringPrepParseException(java.lang.String, int, java.lang.String, int, int);
+    ctor public StringPrepParseException(String, int);
+    ctor public StringPrepParseException(String, int, String, int);
+    ctor public StringPrepParseException(String, int, String, int, int);
     method public int getError();
     field public static final int ACE_PREFIX_ERROR = 6; // 0x6
     field public static final int BUFFER_OVERFLOW_ERROR = 9; // 0x9
@@ -20884,68 +20778,66 @@
   }
 
   public final class StringSearch extends android.icu.text.SearchIterator {
-    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, android.icu.text.RuleBasedCollator, android.icu.text.BreakIterator);
-    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, android.icu.text.RuleBasedCollator);
-    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, java.util.Locale);
-    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, android.icu.util.ULocale);
-    ctor public StringSearch(java.lang.String, java.lang.String);
+    ctor public StringSearch(String, java.text.CharacterIterator, android.icu.text.RuleBasedCollator, android.icu.text.BreakIterator);
+    ctor public StringSearch(String, java.text.CharacterIterator, android.icu.text.RuleBasedCollator);
+    ctor public StringSearch(String, java.text.CharacterIterator, java.util.Locale);
+    ctor public StringSearch(String, java.text.CharacterIterator, android.icu.util.ULocale);
+    ctor public StringSearch(String, String);
     method public android.icu.text.RuleBasedCollator getCollator();
     method public int getIndex();
-    method public java.lang.String getPattern();
+    method public String getPattern();
     method protected int handleNext(int);
     method protected int handlePrevious(int);
     method public boolean isCanonical();
     method public void setCanonical(boolean);
     method public void setCollator(android.icu.text.RuleBasedCollator);
-    method public void setPattern(java.lang.String);
+    method public void setPattern(String);
   }
 
-  public abstract interface SymbolTable {
-    method public abstract char[] lookup(java.lang.String);
-    method public abstract android.icu.text.UnicodeMatcher lookupMatcher(int);
-    method public abstract java.lang.String parseReference(java.lang.String, java.text.ParsePosition, int);
+  public interface SymbolTable {
+    method public char[] lookup(String);
+    method public android.icu.text.UnicodeMatcher lookupMatcher(int);
+    method public String parseReference(String, java.text.ParsePosition, int);
     field public static final char SYMBOL_REF = 36; // 0x0024 '$'
   }
 
-  public class TimeZoneFormat extends android.icu.text.UFormat implements android.icu.util.Freezable java.io.Serializable {
+  public class TimeZoneFormat extends android.icu.text.UFormat implements android.icu.util.Freezable<android.icu.text.TimeZoneFormat> java.io.Serializable {
     ctor protected TimeZoneFormat(android.icu.util.ULocale);
     method public android.icu.text.TimeZoneFormat cloneAsThawed();
-    method public final java.lang.String format(android.icu.text.TimeZoneFormat.Style, android.icu.util.TimeZone, long);
-    method public java.lang.String format(android.icu.text.TimeZoneFormat.Style, android.icu.util.TimeZone, long, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
-    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.String formatOffsetISO8601Basic(int, boolean, boolean, boolean);
-    method public final java.lang.String formatOffsetISO8601Extended(int, boolean, boolean, boolean);
-    method public java.lang.String formatOffsetLocalizedGMT(int);
-    method public java.lang.String formatOffsetShortLocalizedGMT(int);
+    method public final String format(android.icu.text.TimeZoneFormat.Style, android.icu.util.TimeZone, long);
+    method public String format(android.icu.text.TimeZoneFormat.Style, android.icu.util.TimeZone, long, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
+    method public StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
+    method public final String formatOffsetISO8601Basic(int, boolean, boolean, boolean);
+    method public final String formatOffsetISO8601Extended(int, boolean, boolean, boolean);
+    method public String formatOffsetLocalizedGMT(int);
+    method public String formatOffsetShortLocalizedGMT(int);
     method public android.icu.text.TimeZoneFormat freeze();
     method public java.util.EnumSet<android.icu.text.TimeZoneFormat.ParseOption> getDefaultParseOptions();
-    method public java.lang.String getGMTOffsetDigits();
-    method public java.lang.String getGMTOffsetPattern(android.icu.text.TimeZoneFormat.GMTOffsetPatternType);
-    method public java.lang.String getGMTPattern();
-    method public java.lang.String getGMTZeroFormat();
+    method public String getGMTOffsetDigits();
+    method public String getGMTOffsetPattern(android.icu.text.TimeZoneFormat.GMTOffsetPatternType);
+    method public String getGMTPattern();
+    method public String getGMTZeroFormat();
     method public static android.icu.text.TimeZoneFormat getInstance(android.icu.util.ULocale);
     method public static android.icu.text.TimeZoneFormat getInstance(java.util.Locale);
     method public android.icu.text.TimeZoneNames getTimeZoneNames();
     method public boolean isFrozen();
-    method public android.icu.util.TimeZone parse(android.icu.text.TimeZoneFormat.Style, java.lang.String, java.text.ParsePosition, java.util.EnumSet<android.icu.text.TimeZoneFormat.ParseOption>, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
-    method public android.icu.util.TimeZone parse(android.icu.text.TimeZoneFormat.Style, java.lang.String, java.text.ParsePosition, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
-    method public final android.icu.util.TimeZone parse(java.lang.String, java.text.ParsePosition);
-    method public final android.icu.util.TimeZone parse(java.lang.String) throws java.text.ParseException;
-    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
-    method public final int parseOffsetISO8601(java.lang.String, java.text.ParsePosition);
-    method public int parseOffsetLocalizedGMT(java.lang.String, java.text.ParsePosition);
-    method public int parseOffsetShortLocalizedGMT(java.lang.String, java.text.ParsePosition);
+    method public android.icu.util.TimeZone parse(android.icu.text.TimeZoneFormat.Style, String, java.text.ParsePosition, java.util.EnumSet<android.icu.text.TimeZoneFormat.ParseOption>, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
+    method public android.icu.util.TimeZone parse(android.icu.text.TimeZoneFormat.Style, String, java.text.ParsePosition, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
+    method public final android.icu.util.TimeZone parse(String, java.text.ParsePosition);
+    method public final android.icu.util.TimeZone parse(String) throws java.text.ParseException;
+    method public Object parseObject(String, java.text.ParsePosition);
+    method public final int parseOffsetISO8601(String, java.text.ParsePosition);
+    method public int parseOffsetLocalizedGMT(String, java.text.ParsePosition);
+    method public int parseOffsetShortLocalizedGMT(String, java.text.ParsePosition);
     method public android.icu.text.TimeZoneFormat setDefaultParseOptions(java.util.EnumSet<android.icu.text.TimeZoneFormat.ParseOption>);
-    method public android.icu.text.TimeZoneFormat setGMTOffsetDigits(java.lang.String);
-    method public android.icu.text.TimeZoneFormat setGMTOffsetPattern(android.icu.text.TimeZoneFormat.GMTOffsetPatternType, java.lang.String);
-    method public android.icu.text.TimeZoneFormat setGMTPattern(java.lang.String);
-    method public android.icu.text.TimeZoneFormat setGMTZeroFormat(java.lang.String);
+    method public android.icu.text.TimeZoneFormat setGMTOffsetDigits(String);
+    method public android.icu.text.TimeZoneFormat setGMTOffsetPattern(android.icu.text.TimeZoneFormat.GMTOffsetPatternType, String);
+    method public android.icu.text.TimeZoneFormat setGMTPattern(String);
+    method public android.icu.text.TimeZoneFormat setGMTZeroFormat(String);
     method public android.icu.text.TimeZoneFormat setTimeZoneNames(android.icu.text.TimeZoneNames);
   }
 
-  public static final class TimeZoneFormat.GMTOffsetPatternType extends java.lang.Enum {
-    method public static android.icu.text.TimeZoneFormat.GMTOffsetPatternType valueOf(java.lang.String);
-    method public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType[] values();
+  public enum TimeZoneFormat.GMTOffsetPatternType {
     enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType NEGATIVE_H;
     enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType NEGATIVE_HM;
     enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType NEGATIVE_HMS;
@@ -20954,16 +20846,12 @@
     enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType POSITIVE_HMS;
   }
 
-  public static final class TimeZoneFormat.ParseOption extends java.lang.Enum {
-    method public static android.icu.text.TimeZoneFormat.ParseOption valueOf(java.lang.String);
-    method public static final android.icu.text.TimeZoneFormat.ParseOption[] values();
+  public enum TimeZoneFormat.ParseOption {
     enum_constant public static final android.icu.text.TimeZoneFormat.ParseOption ALL_STYLES;
     enum_constant public static final android.icu.text.TimeZoneFormat.ParseOption TZ_DATABASE_ABBREVIATIONS;
   }
 
-  public static final class TimeZoneFormat.Style extends java.lang.Enum {
-    method public static android.icu.text.TimeZoneFormat.Style valueOf(java.lang.String);
-    method public static final android.icu.text.TimeZoneFormat.Style[] values();
+  public enum TimeZoneFormat.Style {
     enum_constant public static final android.icu.text.TimeZoneFormat.Style EXEMPLAR_LOCATION;
     enum_constant public static final android.icu.text.TimeZoneFormat.Style GENERIC_LOCATION;
     enum_constant public static final android.icu.text.TimeZoneFormat.Style GENERIC_LONG;
@@ -20986,9 +20874,7 @@
     enum_constant public static final android.icu.text.TimeZoneFormat.Style ZONE_ID_SHORT;
   }
 
-  public static final class TimeZoneFormat.TimeType extends java.lang.Enum {
-    method public static android.icu.text.TimeZoneFormat.TimeType valueOf(java.lang.String);
-    method public static final android.icu.text.TimeZoneFormat.TimeType[] values();
+  public enum TimeZoneFormat.TimeType {
     enum_constant public static final android.icu.text.TimeZoneFormat.TimeType DAYLIGHT;
     enum_constant public static final android.icu.text.TimeZoneFormat.TimeType STANDARD;
     enum_constant public static final android.icu.text.TimeZoneFormat.TimeType UNKNOWN;
@@ -20996,21 +20882,19 @@
 
   public abstract class TimeZoneNames implements java.io.Serializable {
     method public abstract java.util.Set<java.lang.String> getAvailableMetaZoneIDs();
-    method public abstract java.util.Set<java.lang.String> getAvailableMetaZoneIDs(java.lang.String);
-    method public final java.lang.String getDisplayName(java.lang.String, android.icu.text.TimeZoneNames.NameType, long);
-    method public java.lang.String getExemplarLocationName(java.lang.String);
+    method public abstract java.util.Set<java.lang.String> getAvailableMetaZoneIDs(String);
+    method public final String getDisplayName(String, android.icu.text.TimeZoneNames.NameType, long);
+    method public String getExemplarLocationName(String);
     method public static android.icu.text.TimeZoneNames getInstance(android.icu.util.ULocale);
     method public static android.icu.text.TimeZoneNames getInstance(java.util.Locale);
-    method public abstract java.lang.String getMetaZoneDisplayName(java.lang.String, android.icu.text.TimeZoneNames.NameType);
-    method public abstract java.lang.String getMetaZoneID(java.lang.String, long);
-    method public abstract java.lang.String getReferenceZoneID(java.lang.String, java.lang.String);
+    method public abstract String getMetaZoneDisplayName(String, android.icu.text.TimeZoneNames.NameType);
+    method public abstract String getMetaZoneID(String, long);
+    method public abstract String getReferenceZoneID(String, String);
     method public static android.icu.text.TimeZoneNames getTZDBInstance(android.icu.util.ULocale);
-    method public abstract java.lang.String getTimeZoneDisplayName(java.lang.String, android.icu.text.TimeZoneNames.NameType);
+    method public abstract String getTimeZoneDisplayName(String, android.icu.text.TimeZoneNames.NameType);
   }
 
-  public static final class TimeZoneNames.NameType extends java.lang.Enum {
-    method public static android.icu.text.TimeZoneNames.NameType valueOf(java.lang.String);
-    method public static final android.icu.text.TimeZoneNames.NameType[] values();
+  public enum TimeZoneNames.NameType {
     enum_constant public static final android.icu.text.TimeZoneNames.NameType EXEMPLAR_LOCATION;
     enum_constant public static final android.icu.text.TimeZoneNames.NameType LONG_DAYLIGHT;
     enum_constant public static final android.icu.text.TimeZoneNames.NameType LONG_GENERIC;
@@ -21021,31 +20905,31 @@
   }
 
   public abstract class Transliterator {
-    method public static final android.icu.text.Transliterator createFromRules(java.lang.String, java.lang.String, int);
+    method public static final android.icu.text.Transliterator createFromRules(String, String, int);
     method public void filteredTransliterate(android.icu.text.Replaceable, android.icu.text.Transliterator.Position, boolean);
     method public final void finishTransliteration(android.icu.text.Replaceable, android.icu.text.Transliterator.Position);
     method public static final java.util.Enumeration<java.lang.String> getAvailableIDs();
     method public static final java.util.Enumeration<java.lang.String> getAvailableSources();
-    method public static final java.util.Enumeration<java.lang.String> getAvailableTargets(java.lang.String);
-    method public static final java.util.Enumeration<java.lang.String> getAvailableVariants(java.lang.String, java.lang.String);
-    method public static final java.lang.String getDisplayName(java.lang.String);
-    method public static java.lang.String getDisplayName(java.lang.String, java.util.Locale);
-    method public static java.lang.String getDisplayName(java.lang.String, android.icu.util.ULocale);
+    method public static final java.util.Enumeration<java.lang.String> getAvailableTargets(String);
+    method public static final java.util.Enumeration<java.lang.String> getAvailableVariants(String, String);
+    method public static final String getDisplayName(String);
+    method public static String getDisplayName(String, java.util.Locale);
+    method public static String getDisplayName(String, android.icu.util.ULocale);
     method public android.icu.text.Transliterator[] getElements();
     method public final android.icu.text.UnicodeFilter getFilter();
-    method public final java.lang.String getID();
-    method public static final android.icu.text.Transliterator getInstance(java.lang.String);
-    method public static android.icu.text.Transliterator getInstance(java.lang.String, int);
+    method public final String getID();
+    method public static final android.icu.text.Transliterator getInstance(String);
+    method public static android.icu.text.Transliterator getInstance(String, int);
     method public final android.icu.text.Transliterator getInverse();
     method public final int getMaximumContextLength();
     method public final android.icu.text.UnicodeSet getSourceSet();
     method public android.icu.text.UnicodeSet getTargetSet();
     method public void setFilter(android.icu.text.UnicodeFilter);
-    method public java.lang.String toRules(boolean);
+    method public String toRules(boolean);
     method public final int transliterate(android.icu.text.Replaceable, int, int);
     method public final void transliterate(android.icu.text.Replaceable);
-    method public final java.lang.String transliterate(java.lang.String);
-    method public final void transliterate(android.icu.text.Replaceable, android.icu.text.Transliterator.Position, java.lang.String);
+    method public final String transliterate(String);
+    method public final void transliterate(android.icu.text.Replaceable, android.icu.text.Transliterator.Position, String);
     method public final void transliterate(android.icu.text.Replaceable, android.icu.text.Transliterator.Position, int);
     method public final void transliterate(android.icu.text.Replaceable, android.icu.text.Transliterator.Position);
     field public static final int FORWARD = 0; // 0x0
@@ -21067,21 +20951,21 @@
 
   public abstract class UCharacterIterator implements java.lang.Cloneable {
     ctor protected UCharacterIterator();
-    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+    method public Object clone() throws java.lang.CloneNotSupportedException;
     method public abstract int current();
     method public int currentCodePoint();
     method public java.text.CharacterIterator getCharacterIterator();
     method public abstract int getIndex();
     method public static final android.icu.text.UCharacterIterator getInstance(android.icu.text.Replaceable);
-    method public static final android.icu.text.UCharacterIterator getInstance(java.lang.String);
+    method public static final android.icu.text.UCharacterIterator getInstance(String);
     method public static final android.icu.text.UCharacterIterator getInstance(char[]);
     method public static final android.icu.text.UCharacterIterator getInstance(char[], int, int);
-    method public static final android.icu.text.UCharacterIterator getInstance(java.lang.StringBuffer);
+    method public static final android.icu.text.UCharacterIterator getInstance(StringBuffer);
     method public static final android.icu.text.UCharacterIterator getInstance(java.text.CharacterIterator);
     method public abstract int getLength();
     method public abstract int getText(char[], int);
     method public final int getText(char[]);
-    method public java.lang.String getText();
+    method public String getText();
     method public int moveCodePointIndex(int);
     method public int moveIndex(int);
     method public abstract int next();
@@ -21103,78 +20987,78 @@
     method public int matches(android.icu.text.Replaceable, int[], int, boolean);
   }
 
-  public abstract interface UnicodeMatcher {
-    method public abstract void addMatchSetTo(android.icu.text.UnicodeSet);
-    method public abstract int matches(android.icu.text.Replaceable, int[], int, boolean);
-    method public abstract boolean matchesIndexValue(int);
-    method public abstract java.lang.String toPattern(boolean);
+  public interface UnicodeMatcher {
+    method public void addMatchSetTo(android.icu.text.UnicodeSet);
+    method public int matches(android.icu.text.Replaceable, int[], int, boolean);
+    method public boolean matchesIndexValue(int);
+    method public String toPattern(boolean);
     field public static final char ETHER = 65535; // 0xffff '\uffff'
     field public static final int U_MATCH = 2; // 0x2
     field public static final int U_MISMATCH = 0; // 0x0
     field public static final int U_PARTIAL_MATCH = 1; // 0x1
   }
 
-  public class UnicodeSet extends android.icu.text.UnicodeFilter implements java.lang.Comparable android.icu.util.Freezable java.lang.Iterable {
+  public class UnicodeSet extends android.icu.text.UnicodeFilter implements java.lang.Comparable<android.icu.text.UnicodeSet> android.icu.util.Freezable<android.icu.text.UnicodeSet> java.lang.Iterable<java.lang.String> {
     ctor public UnicodeSet();
     ctor public UnicodeSet(android.icu.text.UnicodeSet);
     ctor public UnicodeSet(int, int);
     ctor public UnicodeSet(int...);
-    ctor public UnicodeSet(java.lang.String);
-    ctor public UnicodeSet(java.lang.String, boolean);
-    ctor public UnicodeSet(java.lang.String, int);
-    ctor public UnicodeSet(java.lang.String, java.text.ParsePosition, android.icu.text.SymbolTable);
-    ctor public UnicodeSet(java.lang.String, java.text.ParsePosition, android.icu.text.SymbolTable, int);
-    method public java.lang.StringBuffer _generatePattern(java.lang.StringBuffer, boolean);
-    method public java.lang.StringBuffer _generatePattern(java.lang.StringBuffer, boolean, boolean);
+    ctor public UnicodeSet(String);
+    ctor public UnicodeSet(String, boolean);
+    ctor public UnicodeSet(String, int);
+    ctor public UnicodeSet(String, java.text.ParsePosition, android.icu.text.SymbolTable);
+    ctor public UnicodeSet(String, java.text.ParsePosition, android.icu.text.SymbolTable, int);
+    method public StringBuffer _generatePattern(StringBuffer, boolean);
+    method public StringBuffer _generatePattern(StringBuffer, boolean, boolean);
     method public android.icu.text.UnicodeSet add(int, int);
     method public final android.icu.text.UnicodeSet add(int);
-    method public final android.icu.text.UnicodeSet add(java.lang.CharSequence);
-    method public android.icu.text.UnicodeSet add(java.lang.Iterable<?>);
+    method public final android.icu.text.UnicodeSet add(CharSequence);
+    method public android.icu.text.UnicodeSet add(Iterable<?>);
     method public android.icu.text.UnicodeSet addAll(int, int);
-    method public final android.icu.text.UnicodeSet addAll(java.lang.CharSequence);
+    method public final android.icu.text.UnicodeSet addAll(CharSequence);
     method public android.icu.text.UnicodeSet addAll(android.icu.text.UnicodeSet);
-    method public android.icu.text.UnicodeSet addAll(java.lang.Iterable<?>);
+    method public android.icu.text.UnicodeSet addAll(Iterable<?>);
     method public <T extends java.lang.CharSequence> android.icu.text.UnicodeSet addAll(T...);
     method public <T extends java.util.Collection<java.lang.String>> T addAllTo(T);
     method public void addMatchSetTo(android.icu.text.UnicodeSet);
     method public android.icu.text.UnicodeSet applyIntPropertyValue(int, int);
-    method public final android.icu.text.UnicodeSet applyPattern(java.lang.String);
-    method public android.icu.text.UnicodeSet applyPattern(java.lang.String, boolean);
-    method public android.icu.text.UnicodeSet applyPattern(java.lang.String, int);
-    method public android.icu.text.UnicodeSet applyPropertyAlias(java.lang.String, java.lang.String);
-    method public android.icu.text.UnicodeSet applyPropertyAlias(java.lang.String, java.lang.String, android.icu.text.SymbolTable);
+    method public final android.icu.text.UnicodeSet applyPattern(String);
+    method public android.icu.text.UnicodeSet applyPattern(String, boolean);
+    method public android.icu.text.UnicodeSet applyPattern(String, int);
+    method public android.icu.text.UnicodeSet applyPropertyAlias(String, String);
+    method public android.icu.text.UnicodeSet applyPropertyAlias(String, String, android.icu.text.SymbolTable);
     method public int charAt(int);
     method public android.icu.text.UnicodeSet clear();
-    method public java.lang.Object clone();
+    method public Object clone();
     method public android.icu.text.UnicodeSet cloneAsThawed();
     method public android.icu.text.UnicodeSet closeOver(int);
     method public android.icu.text.UnicodeSet compact();
     method public int compareTo(android.icu.text.UnicodeSet);
     method public int compareTo(android.icu.text.UnicodeSet, android.icu.text.UnicodeSet.ComparisonStyle);
-    method public int compareTo(java.lang.Iterable<java.lang.String>);
+    method public int compareTo(Iterable<java.lang.String>);
     method public android.icu.text.UnicodeSet complement(int, int);
     method public final android.icu.text.UnicodeSet complement(int);
     method public android.icu.text.UnicodeSet complement();
-    method public final android.icu.text.UnicodeSet complement(java.lang.CharSequence);
-    method public final android.icu.text.UnicodeSet complementAll(java.lang.CharSequence);
+    method public final android.icu.text.UnicodeSet complement(CharSequence);
+    method public final android.icu.text.UnicodeSet complementAll(CharSequence);
     method public android.icu.text.UnicodeSet complementAll(android.icu.text.UnicodeSet);
     method public boolean contains(int);
     method public boolean contains(int, int);
-    method public final boolean contains(java.lang.CharSequence);
+    method public final boolean contains(CharSequence);
     method public boolean containsAll(android.icu.text.UnicodeSet);
-    method public boolean containsAll(java.lang.String);
-    method public <T extends java.lang.CharSequence> boolean containsAll(java.lang.Iterable<T>);
+    method public boolean containsAll(String);
+    method public <T extends java.lang.CharSequence> boolean containsAll(Iterable<T>);
     method public boolean containsNone(int, int);
     method public boolean containsNone(android.icu.text.UnicodeSet);
-    method public boolean containsNone(java.lang.CharSequence);
-    method public <T extends java.lang.CharSequence> boolean containsNone(java.lang.Iterable<T>);
+    method public boolean containsNone(CharSequence);
+    method public <T extends java.lang.CharSequence> boolean containsNone(Iterable<T>);
     method public final boolean containsSome(int, int);
     method public final boolean containsSome(android.icu.text.UnicodeSet);
-    method public final boolean containsSome(java.lang.CharSequence);
-    method public final <T extends java.lang.CharSequence> boolean containsSome(java.lang.Iterable<T>);
+    method public final boolean containsSome(CharSequence);
+    method public final <T extends java.lang.CharSequence> boolean containsSome(Iterable<T>);
     method public android.icu.text.UnicodeSet freeze();
-    method public static android.icu.text.UnicodeSet from(java.lang.CharSequence);
-    method public static android.icu.text.UnicodeSet fromAll(java.lang.CharSequence);
+    method public static android.icu.text.UnicodeSet from(CharSequence);
+    method public static android.icu.text.UnicodeSet fromAll(CharSequence);
     method public int getRangeCount();
     method public int getRangeEnd(int);
     method public int getRangeStart(int);
@@ -21183,29 +21067,29 @@
     method public boolean isFrozen();
     method public java.util.Iterator<java.lang.String> iterator();
     method public boolean matchesIndexValue(int);
-    method public java.lang.Iterable<android.icu.text.UnicodeSet.EntryRange> ranges();
+    method public Iterable<android.icu.text.UnicodeSet.EntryRange> ranges();
     method public android.icu.text.UnicodeSet remove(int, int);
     method public final android.icu.text.UnicodeSet remove(int);
-    method public final android.icu.text.UnicodeSet remove(java.lang.CharSequence);
-    method public final android.icu.text.UnicodeSet removeAll(java.lang.CharSequence);
+    method public final android.icu.text.UnicodeSet remove(CharSequence);
+    method public final android.icu.text.UnicodeSet removeAll(CharSequence);
     method public android.icu.text.UnicodeSet removeAll(android.icu.text.UnicodeSet);
-    method public <T extends java.lang.CharSequence> android.icu.text.UnicodeSet removeAll(java.lang.Iterable<T>);
+    method public <T extends java.lang.CharSequence> android.icu.text.UnicodeSet removeAll(Iterable<T>);
     method public final android.icu.text.UnicodeSet removeAllStrings();
     method public android.icu.text.UnicodeSet retain(int, int);
     method public final android.icu.text.UnicodeSet retain(int);
-    method public final android.icu.text.UnicodeSet retain(java.lang.CharSequence);
-    method public final android.icu.text.UnicodeSet retainAll(java.lang.CharSequence);
+    method public final android.icu.text.UnicodeSet retain(CharSequence);
+    method public final android.icu.text.UnicodeSet retainAll(CharSequence);
     method public android.icu.text.UnicodeSet retainAll(android.icu.text.UnicodeSet);
-    method public <T extends java.lang.CharSequence> android.icu.text.UnicodeSet retainAll(java.lang.Iterable<T>);
+    method public <T extends java.lang.CharSequence> android.icu.text.UnicodeSet retainAll(Iterable<T>);
     method public android.icu.text.UnicodeSet set(int, int);
     method public android.icu.text.UnicodeSet set(android.icu.text.UnicodeSet);
     method public int size();
-    method public int span(java.lang.CharSequence, android.icu.text.UnicodeSet.SpanCondition);
-    method public int span(java.lang.CharSequence, int, android.icu.text.UnicodeSet.SpanCondition);
-    method public int spanBack(java.lang.CharSequence, android.icu.text.UnicodeSet.SpanCondition);
-    method public int spanBack(java.lang.CharSequence, int, android.icu.text.UnicodeSet.SpanCondition);
+    method public int span(CharSequence, android.icu.text.UnicodeSet.SpanCondition);
+    method public int span(CharSequence, int, android.icu.text.UnicodeSet.SpanCondition);
+    method public int spanBack(CharSequence, android.icu.text.UnicodeSet.SpanCondition);
+    method public int spanBack(CharSequence, int, android.icu.text.UnicodeSet.SpanCondition);
     method public java.util.Collection<java.lang.String> strings();
-    method public java.lang.String toPattern(boolean);
+    method public String toPattern(boolean);
     field public static final int ADD_CASE_MAPPINGS = 4; // 0x4
     field public static final android.icu.text.UnicodeSet ALL_CODE_POINTS;
     field public static final int CASE = 2; // 0x2
@@ -21216,9 +21100,7 @@
     field public static final int MIN_VALUE = 0; // 0x0
   }
 
-  public static final class UnicodeSet.ComparisonStyle extends java.lang.Enum {
-    method public static android.icu.text.UnicodeSet.ComparisonStyle valueOf(java.lang.String);
-    method public static final android.icu.text.UnicodeSet.ComparisonStyle[] values();
+  public enum UnicodeSet.ComparisonStyle {
     enum_constant public static final android.icu.text.UnicodeSet.ComparisonStyle LEXICOGRAPHIC;
     enum_constant public static final android.icu.text.UnicodeSet.ComparisonStyle LONGER_FIRST;
     enum_constant public static final android.icu.text.UnicodeSet.ComparisonStyle SHORTER_FIRST;
@@ -21229,9 +21111,7 @@
     field public int codepointEnd;
   }
 
-  public static final class UnicodeSet.SpanCondition extends java.lang.Enum {
-    method public static android.icu.text.UnicodeSet.SpanCondition valueOf(java.lang.String);
-    method public static final android.icu.text.UnicodeSet.SpanCondition[] values();
+  public enum UnicodeSet.SpanCondition {
     enum_constant public static final android.icu.text.UnicodeSet.SpanCondition CONDITION_COUNT;
     enum_constant public static final android.icu.text.UnicodeSet.SpanCondition CONTAINED;
     enum_constant public static final android.icu.text.UnicodeSet.SpanCondition NOT_CONTAINED;
@@ -21241,7 +21121,7 @@
   public class UnicodeSetIterator {
     ctor public UnicodeSetIterator(android.icu.text.UnicodeSet);
     ctor public UnicodeSetIterator();
-    method public java.lang.String getString();
+    method public String getString();
     method public boolean next();
     method public boolean nextRange();
     method public void reset(android.icu.text.UnicodeSet);
@@ -21249,35 +21129,31 @@
     field public static int IS_STRING;
     field public int codepoint;
     field public int codepointEnd;
-    field public java.lang.String string;
+    field public String string;
   }
 
   public class UnicodeSetSpanner {
     ctor public UnicodeSetSpanner(android.icu.text.UnicodeSet);
-    method public int countIn(java.lang.CharSequence);
-    method public int countIn(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod);
-    method public int countIn(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod, android.icu.text.UnicodeSet.SpanCondition);
-    method public java.lang.String deleteFrom(java.lang.CharSequence);
-    method public java.lang.String deleteFrom(java.lang.CharSequence, android.icu.text.UnicodeSet.SpanCondition);
+    method public int countIn(CharSequence);
+    method public int countIn(CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod);
+    method public int countIn(CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod, android.icu.text.UnicodeSet.SpanCondition);
+    method public String deleteFrom(CharSequence);
+    method public String deleteFrom(CharSequence, android.icu.text.UnicodeSet.SpanCondition);
     method public android.icu.text.UnicodeSet getUnicodeSet();
-    method public java.lang.String replaceFrom(java.lang.CharSequence, java.lang.CharSequence);
-    method public java.lang.String replaceFrom(java.lang.CharSequence, java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod);
-    method public java.lang.String replaceFrom(java.lang.CharSequence, java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod, android.icu.text.UnicodeSet.SpanCondition);
-    method public java.lang.CharSequence trim(java.lang.CharSequence);
-    method public java.lang.CharSequence trim(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.TrimOption);
-    method public java.lang.CharSequence trim(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.TrimOption, android.icu.text.UnicodeSet.SpanCondition);
+    method public String replaceFrom(CharSequence, CharSequence);
+    method public String replaceFrom(CharSequence, CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod);
+    method public String replaceFrom(CharSequence, CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod, android.icu.text.UnicodeSet.SpanCondition);
+    method public CharSequence trim(CharSequence);
+    method public CharSequence trim(CharSequence, android.icu.text.UnicodeSetSpanner.TrimOption);
+    method public CharSequence trim(CharSequence, android.icu.text.UnicodeSetSpanner.TrimOption, android.icu.text.UnicodeSet.SpanCondition);
   }
 
-  public static final class UnicodeSetSpanner.CountMethod extends java.lang.Enum {
-    method public static android.icu.text.UnicodeSetSpanner.CountMethod valueOf(java.lang.String);
-    method public static final android.icu.text.UnicodeSetSpanner.CountMethod[] values();
+  public enum UnicodeSetSpanner.CountMethod {
     enum_constant public static final android.icu.text.UnicodeSetSpanner.CountMethod MIN_ELEMENTS;
     enum_constant public static final android.icu.text.UnicodeSetSpanner.CountMethod WHOLE_SPAN;
   }
 
-  public static final class UnicodeSetSpanner.TrimOption extends java.lang.Enum {
-    method public static android.icu.text.UnicodeSetSpanner.TrimOption valueOf(java.lang.String);
-    method public static final android.icu.text.UnicodeSetSpanner.TrimOption[] values();
+  public enum UnicodeSetSpanner.TrimOption {
     enum_constant public static final android.icu.text.UnicodeSetSpanner.TrimOption BOTH;
     enum_constant public static final android.icu.text.UnicodeSetSpanner.TrimOption LEADING;
     enum_constant public static final android.icu.text.UnicodeSetSpanner.TrimOption TRAILING;
@@ -21300,27 +21176,27 @@
     field public static final int BE = 0; // 0x0
   }
 
-  public abstract class Calendar implements java.lang.Cloneable java.lang.Comparable java.io.Serializable {
+  public abstract class Calendar implements java.lang.Cloneable java.lang.Comparable<android.icu.util.Calendar> java.io.Serializable {
     ctor protected Calendar();
     ctor protected Calendar(android.icu.util.TimeZone, java.util.Locale);
     ctor protected Calendar(android.icu.util.TimeZone, android.icu.util.ULocale);
     method public void add(int, int);
-    method public boolean after(java.lang.Object);
-    method public boolean before(java.lang.Object);
+    method public boolean after(Object);
+    method public boolean before(Object);
     method public final void clear();
     method public final void clear(int);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public int compareTo(android.icu.util.Calendar);
     method protected void complete();
     method protected void computeFields();
     method protected final void computeGregorianFields(int);
     method protected int computeGregorianMonthStart(int, int);
     method protected int computeJulianDay();
-    method protected deprecated int computeMillisInDay();
+    method @Deprecated protected int computeMillisInDay();
     method protected void computeTime();
-    method protected deprecated int computeZoneOffset(long, int);
+    method @Deprecated protected int computeZoneOffset(long, int);
     method public int fieldDifference(java.util.Date, int);
-    method protected java.lang.String fieldName(int);
+    method protected String fieldName(int);
     method protected static final long floorDivide(long, long);
     method protected static final int floorDivide(int, int);
     method protected static final int floorDivide(int, int, int[]);
@@ -21331,8 +21207,8 @@
     method public static java.util.Locale[] getAvailableLocales();
     method public android.icu.text.DateFormat getDateTimeFormat(int, int, java.util.Locale);
     method public android.icu.text.DateFormat getDateTimeFormat(int, int, android.icu.util.ULocale);
-    method public java.lang.String getDisplayName(java.util.Locale);
-    method public java.lang.String getDisplayName(android.icu.util.ULocale);
+    method public String getDisplayName(java.util.Locale);
+    method public String getDisplayName(android.icu.util.ULocale);
     method public final int getFieldCount();
     method protected int[][][] getFieldResolutionTable();
     method public int getFirstDayOfWeek();
@@ -21347,7 +21223,7 @@
     method public static android.icu.util.Calendar getInstance(android.icu.util.ULocale);
     method public static android.icu.util.Calendar getInstance(android.icu.util.TimeZone, java.util.Locale);
     method public static android.icu.util.Calendar getInstance(android.icu.util.TimeZone, android.icu.util.ULocale);
-    method public static final java.lang.String[] getKeywordValuesForLocale(java.lang.String, android.icu.util.ULocale, boolean);
+    method public static final String[] getKeywordValuesForLocale(String, android.icu.util.ULocale, boolean);
     method public final int getLeastMaximum(int);
     method protected int getLimit(int, int);
     method public final int getMaximum(int);
@@ -21359,18 +21235,18 @@
     method public final java.util.Date getTime();
     method public long getTimeInMillis();
     method public android.icu.util.TimeZone getTimeZone();
-    method public java.lang.String getType();
+    method public String getType();
     method public android.icu.util.Calendar.WeekData getWeekData();
-    method public static android.icu.util.Calendar.WeekData getWeekDataForRegion(java.lang.String);
+    method public static android.icu.util.Calendar.WeekData getWeekDataForRegion(String);
     method protected static final int gregorianMonthLength(int, int);
     method protected static final int gregorianPreviousMonthLength(int, int);
     method protected void handleComputeFields(int);
     method protected int handleComputeJulianDay(int);
     method protected abstract int handleComputeMonthStart(int, int, boolean);
     method protected int[] handleCreateFields();
-    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, java.util.Locale);
-    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, java.lang.String, java.util.Locale);
-    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, android.icu.util.ULocale);
+    method protected android.icu.text.DateFormat handleGetDateFormat(String, java.util.Locale);
+    method protected android.icu.text.DateFormat handleGetDateFormat(String, String, java.util.Locale);
+    method protected android.icu.text.DateFormat handleGetDateFormat(String, android.icu.util.ULocale);
     method protected abstract int handleGetExtendedYear();
     method protected abstract int handleGetLimit(int, int);
     method protected int handleGetMonthLength(int, int);
@@ -21417,7 +21293,7 @@
     field public static final int AM_PM = 9; // 0x9
     field public static final int APRIL = 3; // 0x3
     field public static final int AUGUST = 7; // 0x7
-    field protected static final deprecated int BASE_FIELD_COUNT = 23; // 0x17
+    field @Deprecated protected static final int BASE_FIELD_COUNT = 23; // 0x17
     field public static final int DATE = 5; // 0x5
     field public static final int DAY_OF_MONTH = 5; // 0x5
     field public static final int DAY_OF_WEEK = 7; // 0x7
@@ -21445,7 +21321,7 @@
     field public static final int MARCH = 2; // 0x2
     field protected static final int MAXIMUM = 3; // 0x3
     field protected static final java.util.Date MAX_DATE;
-    field protected static final deprecated int MAX_FIELD_COUNT = 32; // 0x20
+    field @Deprecated protected static final int MAX_FIELD_COUNT = 32; // 0x20
     field protected static final int MAX_JULIAN = 2130706432; // 0x7f000000
     field protected static final long MAX_MILLIS = 183882168921600000L; // 0x28d47dbbf19b000L
     field public static final int MAY = 4; // 0x4
@@ -21510,7 +21386,7 @@
     ctor public ChineseCalendar(android.icu.util.ULocale);
     ctor public ChineseCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
     method protected int handleComputeMonthStart(int, int, boolean);
-    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, java.lang.String, android.icu.util.ULocale);
+    method protected android.icu.text.DateFormat handleGetDateFormat(String, String, android.icu.util.ULocale);
     method protected int handleGetExtendedYear();
     method protected int handleGetLimit(int, int);
   }
@@ -21525,8 +21401,10 @@
     ctor public CopticCalendar(int, int, int);
     ctor public CopticCalendar(java.util.Date);
     ctor public CopticCalendar(int, int, int, int, int, int);
-    method protected deprecated void handleComputeFields(int);
-    method protected deprecated int handleGetExtendedYear();
+    method @Deprecated protected void handleComputeFields(int);
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method @Deprecated protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
     field public static final int AMSHIR = 5; // 0x5
     field public static final int BABA = 1; // 0x1
     field public static final int BARAMHAT = 6; // 0x6
@@ -21543,50 +21421,48 @@
   }
 
   public class Currency extends android.icu.util.MeasureUnit {
-    ctor protected Currency(java.lang.String);
+    ctor protected Currency(String);
     method public static android.icu.util.Currency fromJavaCurrency(java.util.Currency);
     method public static java.util.Set<android.icu.util.Currency> getAvailableCurrencies();
-    method public static java.lang.String[] getAvailableCurrencyCodes(android.icu.util.ULocale, java.util.Date);
-    method public static java.lang.String[] getAvailableCurrencyCodes(java.util.Locale, java.util.Date);
+    method public static String[] getAvailableCurrencyCodes(android.icu.util.ULocale, java.util.Date);
+    method public static String[] getAvailableCurrencyCodes(java.util.Locale, java.util.Date);
     method public static java.util.Locale[] getAvailableLocales();
     method public static android.icu.util.ULocale[] getAvailableULocales();
-    method public java.lang.String getCurrencyCode();
+    method public String getCurrencyCode();
     method public int getDefaultFractionDigits();
     method public int getDefaultFractionDigits(android.icu.util.Currency.CurrencyUsage);
-    method public java.lang.String getDisplayName();
-    method public java.lang.String getDisplayName(java.util.Locale);
+    method public String getDisplayName();
+    method public String getDisplayName(java.util.Locale);
     method public static android.icu.util.Currency getInstance(java.util.Locale);
     method public static android.icu.util.Currency getInstance(android.icu.util.ULocale);
-    method public static android.icu.util.Currency getInstance(java.lang.String);
-    method public static final java.lang.String[] getKeywordValuesForLocale(java.lang.String, android.icu.util.ULocale, boolean);
-    method public java.lang.String getName(java.util.Locale, int, boolean[]);
-    method public java.lang.String getName(android.icu.util.ULocale, int, boolean[]);
-    method public java.lang.String getName(java.util.Locale, int, java.lang.String, boolean[]);
-    method public java.lang.String getName(android.icu.util.ULocale, int, java.lang.String, boolean[]);
+    method public static android.icu.util.Currency getInstance(String);
+    method public static final String[] getKeywordValuesForLocale(String, android.icu.util.ULocale, boolean);
+    method public String getName(java.util.Locale, int, boolean[]);
+    method public String getName(android.icu.util.ULocale, int, boolean[]);
+    method public String getName(java.util.Locale, int, String, boolean[]);
+    method public String getName(android.icu.util.ULocale, int, String, boolean[]);
     method public int getNumericCode();
     method public double getRoundingIncrement();
     method public double getRoundingIncrement(android.icu.util.Currency.CurrencyUsage);
-    method public java.lang.String getSymbol();
-    method public java.lang.String getSymbol(java.util.Locale);
-    method public java.lang.String getSymbol(android.icu.util.ULocale);
-    method public static boolean isAvailable(java.lang.String, java.util.Date, java.util.Date);
+    method public String getSymbol();
+    method public String getSymbol(java.util.Locale);
+    method public String getSymbol(android.icu.util.ULocale);
+    method public static boolean isAvailable(String, java.util.Date, java.util.Date);
     method public java.util.Currency toJavaCurrency();
     field public static final int LONG_NAME = 1; // 0x1
     field public static final int PLURAL_LONG_NAME = 2; // 0x2
     field public static final int SYMBOL_NAME = 0; // 0x0
   }
 
-  public static final class Currency.CurrencyUsage extends java.lang.Enum {
-    method public static android.icu.util.Currency.CurrencyUsage valueOf(java.lang.String);
-    method public static final android.icu.util.Currency.CurrencyUsage[] values();
+  public enum Currency.CurrencyUsage {
     enum_constant public static final android.icu.util.Currency.CurrencyUsage CASH;
     enum_constant public static final android.icu.util.Currency.CurrencyUsage STANDARD;
   }
 
   public class CurrencyAmount extends android.icu.util.Measure {
-    ctor public CurrencyAmount(java.lang.Number, android.icu.util.Currency);
+    ctor public CurrencyAmount(Number, android.icu.util.Currency);
     ctor public CurrencyAmount(double, android.icu.util.Currency);
-    ctor public CurrencyAmount(java.lang.Number, java.util.Currency);
+    ctor public CurrencyAmount(Number, java.util.Currency);
     ctor public CurrencyAmount(double, java.util.Currency);
     method public android.icu.util.Currency getCurrency();
   }
@@ -21607,9 +21483,10 @@
     ctor public EthiopicCalendar(int, int, int);
     ctor public EthiopicCalendar(java.util.Date);
     ctor public EthiopicCalendar(int, int, int, int, int, int);
-    method protected deprecated void handleComputeFields(int);
-    method protected deprecated int handleGetExtendedYear();
-    method protected deprecated int handleGetLimit(int, int);
+    method @Deprecated protected void handleComputeFields(int);
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method @Deprecated protected int handleGetExtendedYear();
+    method @Deprecated protected int handleGetLimit(int, int);
     method public boolean isAmeteAlemEra();
     method public void setAmeteAlemEra(boolean);
     field public static final int GENBOT = 8; // 0x8
@@ -21627,10 +21504,10 @@
     field public static final int YEKATIT = 5; // 0x5
   }
 
-  public abstract interface Freezable<T> implements java.lang.Cloneable {
-    method public abstract T cloneAsThawed();
-    method public abstract T freeze();
-    method public abstract boolean isFrozen();
+  public interface Freezable<T> extends java.lang.Cloneable {
+    method public T cloneAsThawed();
+    method public T freeze();
+    method public boolean isFrozen();
   }
 
   public class GregorianCalendar extends android.icu.util.Calendar {
@@ -21668,7 +21545,7 @@
     method protected int handleComputeMonthStart(int, int, boolean);
     method protected int handleGetExtendedYear();
     method protected int handleGetLimit(int, int);
-    method protected deprecated void validateField(int);
+    method @Deprecated protected void validateField(int);
     field public static final int ADAR = 6; // 0x6
     field public static final int ADAR_1 = 5; // 0x5
     field public static final int AV = 11; // 0xb
@@ -21686,15 +21563,15 @@
 
   public class ICUUncheckedIOException extends java.lang.RuntimeException {
     ctor public ICUUncheckedIOException();
-    ctor public ICUUncheckedIOException(java.lang.String);
-    ctor public ICUUncheckedIOException(java.lang.Throwable);
-    ctor public ICUUncheckedIOException(java.lang.String, java.lang.Throwable);
+    ctor public ICUUncheckedIOException(String);
+    ctor public ICUUncheckedIOException(Throwable);
+    ctor public ICUUncheckedIOException(String, Throwable);
   }
 
   public class IllformedLocaleException extends java.lang.RuntimeException {
     ctor public IllformedLocaleException();
-    ctor public IllformedLocaleException(java.lang.String);
-    ctor public IllformedLocaleException(java.lang.String, int);
+    ctor public IllformedLocaleException(String);
+    ctor public IllformedLocaleException(String, int);
     method public int getErrorIndex();
   }
 
@@ -21755,9 +21632,7 @@
     field public static final int SHAWWAL = 9; // 0x9
   }
 
-  public static final class IslamicCalendar.CalculationType extends java.lang.Enum {
-    method public static android.icu.util.IslamicCalendar.CalculationType valueOf(java.lang.String);
-    method public static final android.icu.util.IslamicCalendar.CalculationType[] values();
+  public enum IslamicCalendar.CalculationType {
     enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC;
     enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC_CIVIL;
     enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC_TBLA;
@@ -21784,7 +21659,7 @@
 
   public final class LocaleData {
     method public static android.icu.util.VersionInfo getCLDRVersion();
-    method public java.lang.String getDelimiter(int);
+    method public String getDelimiter(int);
     method public static android.icu.util.LocaleData getInstance(android.icu.util.ULocale);
     method public static android.icu.util.LocaleData getInstance();
     method public static android.icu.util.LocaleData.MeasurementSystem getMeasurementSystem(android.icu.util.ULocale);
@@ -21809,17 +21684,17 @@
   }
 
   public class Measure {
-    ctor public Measure(java.lang.Number, android.icu.util.MeasureUnit);
-    method public java.lang.Number getNumber();
+    ctor public Measure(Number, android.icu.util.MeasureUnit);
+    method public Number getNumber();
     method public android.icu.util.MeasureUnit getUnit();
   }
 
   public class MeasureUnit implements java.io.Serializable {
-    method public static synchronized java.util.Set<android.icu.util.MeasureUnit> getAvailable(java.lang.String);
-    method public static synchronized java.util.Set<android.icu.util.MeasureUnit> getAvailable();
-    method public static synchronized java.util.Set<java.lang.String> getAvailableTypes();
-    method public java.lang.String getSubtype();
-    method public java.lang.String getType();
+    method public static java.util.Set<android.icu.util.MeasureUnit> getAvailable(String);
+    method public static java.util.Set<android.icu.util.MeasureUnit> getAvailable();
+    method public static java.util.Set<java.lang.String> getAvailableTypes();
+    method public String getSubtype();
+    method public String getType();
     field public static final android.icu.util.MeasureUnit ACRE;
     field public static final android.icu.util.MeasureUnit ACRE_FOOT;
     field public static final android.icu.util.MeasureUnit AMPERE;
@@ -21963,9 +21838,9 @@
     field public T value;
   }
 
-  public abstract interface RangeValueIterator {
-    method public abstract boolean next(android.icu.util.RangeValueIterator.Element);
-    method public abstract void reset();
+  public interface RangeValueIterator {
+    method public boolean next(android.icu.util.RangeValueIterator.Element);
+    method public void reset();
   }
 
   public static class RangeValueIterator.Element {
@@ -21993,44 +21868,44 @@
     method public static android.icu.util.TimeUnit[] values();
   }
 
-  public abstract class TimeZone implements java.lang.Cloneable android.icu.util.Freezable java.io.Serializable {
+  public abstract class TimeZone implements java.lang.Cloneable android.icu.util.Freezable<android.icu.util.TimeZone> java.io.Serializable {
     ctor public TimeZone();
-    method public java.lang.Object clone();
+    method public Object clone();
     method public android.icu.util.TimeZone cloneAsThawed();
-    method public static int countEquivalentIDs(java.lang.String);
+    method public static int countEquivalentIDs(String);
     method public android.icu.util.TimeZone freeze();
-    method public static java.util.Set<java.lang.String> getAvailableIDs(android.icu.util.TimeZone.SystemTimeZoneType, java.lang.String, java.lang.Integer);
-    method public static java.lang.String[] getAvailableIDs(int);
-    method public static java.lang.String[] getAvailableIDs(java.lang.String);
-    method public static java.lang.String[] getAvailableIDs();
-    method public static java.lang.String getCanonicalID(java.lang.String);
-    method public static java.lang.String getCanonicalID(java.lang.String, boolean[]);
+    method public static java.util.Set<java.lang.String> getAvailableIDs(android.icu.util.TimeZone.SystemTimeZoneType, String, Integer);
+    method public static String[] getAvailableIDs(int);
+    method public static String[] getAvailableIDs(String);
+    method public static String[] getAvailableIDs();
+    method public static String getCanonicalID(String);
+    method public static String getCanonicalID(String, boolean[]);
     method public int getDSTSavings();
     method public static android.icu.util.TimeZone getDefault();
-    method public final java.lang.String getDisplayName();
-    method public final java.lang.String getDisplayName(java.util.Locale);
-    method public final java.lang.String getDisplayName(android.icu.util.ULocale);
-    method public final java.lang.String getDisplayName(boolean, int);
-    method public java.lang.String getDisplayName(boolean, int, java.util.Locale);
-    method public java.lang.String getDisplayName(boolean, int, android.icu.util.ULocale);
-    method public static java.lang.String getEquivalentID(java.lang.String, int);
-    method public static android.icu.util.TimeZone getFrozenTimeZone(java.lang.String);
-    method public java.lang.String getID();
-    method public static java.lang.String getIDForWindowsID(java.lang.String, java.lang.String);
+    method public final String getDisplayName();
+    method public final String getDisplayName(java.util.Locale);
+    method public final String getDisplayName(android.icu.util.ULocale);
+    method public final String getDisplayName(boolean, int);
+    method public String getDisplayName(boolean, int, java.util.Locale);
+    method public String getDisplayName(boolean, int, android.icu.util.ULocale);
+    method public static String getEquivalentID(String, int);
+    method public static android.icu.util.TimeZone getFrozenTimeZone(String);
+    method public String getID();
+    method public static String getIDForWindowsID(String, String);
     method public abstract int getOffset(int, int, int, int, int, int);
     method public int getOffset(long);
     method public void getOffset(long, boolean, int[]);
     method public abstract int getRawOffset();
-    method public static java.lang.String getRegion(java.lang.String);
-    method public static java.lang.String getTZDataVersion();
-    method public static android.icu.util.TimeZone getTimeZone(java.lang.String);
-    method public static android.icu.util.TimeZone getTimeZone(java.lang.String, int);
-    method public static java.lang.String getWindowsID(java.lang.String);
+    method public static String getRegion(String);
+    method public static String getTZDataVersion();
+    method public static android.icu.util.TimeZone getTimeZone(String);
+    method public static android.icu.util.TimeZone getTimeZone(String, int);
+    method public static String getWindowsID(String);
     method public boolean hasSameRules(android.icu.util.TimeZone);
     method public abstract boolean inDaylightTime(java.util.Date);
     method public boolean isFrozen();
     method public boolean observesDaylightTime();
-    method public void setID(java.lang.String);
+    method public void setID(String);
     method public abstract void setRawOffset(int);
     method public abstract boolean useDaylightTime();
     field public static final int GENERIC_LOCATION = 7; // 0x7
@@ -22045,111 +21920,109 @@
     field public static final int TIMEZONE_ICU = 0; // 0x0
     field public static final int TIMEZONE_JDK = 1; // 0x1
     field public static final android.icu.util.TimeZone UNKNOWN_ZONE;
-    field public static final java.lang.String UNKNOWN_ZONE_ID = "Etc/Unknown";
+    field public static final String UNKNOWN_ZONE_ID = "Etc/Unknown";
   }
 
-  public static final class TimeZone.SystemTimeZoneType extends java.lang.Enum {
-    method public static android.icu.util.TimeZone.SystemTimeZoneType valueOf(java.lang.String);
-    method public static final android.icu.util.TimeZone.SystemTimeZoneType[] values();
+  public enum TimeZone.SystemTimeZoneType {
     enum_constant public static final android.icu.util.TimeZone.SystemTimeZoneType ANY;
     enum_constant public static final android.icu.util.TimeZone.SystemTimeZoneType CANONICAL;
     enum_constant public static final android.icu.util.TimeZone.SystemTimeZoneType CANONICAL_LOCATION;
   }
 
-  public final class ULocale implements java.lang.Comparable java.io.Serializable {
-    ctor public ULocale(java.lang.String);
-    ctor public ULocale(java.lang.String, java.lang.String);
-    ctor public ULocale(java.lang.String, java.lang.String, java.lang.String);
-    method public static android.icu.util.ULocale acceptLanguage(java.lang.String, android.icu.util.ULocale[], boolean[]);
+  public final class ULocale implements java.lang.Comparable<android.icu.util.ULocale> java.io.Serializable {
+    ctor public ULocale(String);
+    ctor public ULocale(String, String);
+    ctor public ULocale(String, String, String);
+    method public static android.icu.util.ULocale acceptLanguage(String, android.icu.util.ULocale[], boolean[]);
     method public static android.icu.util.ULocale acceptLanguage(android.icu.util.ULocale[], android.icu.util.ULocale[], boolean[]);
-    method public static android.icu.util.ULocale acceptLanguage(java.lang.String, boolean[]);
+    method public static android.icu.util.ULocale acceptLanguage(String, boolean[]);
     method public static android.icu.util.ULocale acceptLanguage(android.icu.util.ULocale[], boolean[]);
     method public static android.icu.util.ULocale addLikelySubtags(android.icu.util.ULocale);
-    method public static java.lang.String canonicalize(java.lang.String);
-    method public java.lang.Object clone();
+    method public static String canonicalize(String);
+    method public Object clone();
     method public int compareTo(android.icu.util.ULocale);
-    method public static android.icu.util.ULocale createCanonical(java.lang.String);
-    method public static android.icu.util.ULocale forLanguageTag(java.lang.String);
+    method public static android.icu.util.ULocale createCanonical(String);
+    method public static android.icu.util.ULocale forLanguageTag(String);
     method public static android.icu.util.ULocale forLocale(java.util.Locale);
     method public static android.icu.util.ULocale[] getAvailableLocales();
-    method public java.lang.String getBaseName();
-    method public static java.lang.String getBaseName(java.lang.String);
-    method public java.lang.String getCharacterOrientation();
-    method public java.lang.String getCountry();
-    method public static java.lang.String getCountry(java.lang.String);
+    method public String getBaseName();
+    method public static String getBaseName(String);
+    method public String getCharacterOrientation();
+    method public String getCountry();
+    method public static String getCountry(String);
     method public static android.icu.util.ULocale getDefault();
     method public static android.icu.util.ULocale getDefault(android.icu.util.ULocale.Category);
-    method public java.lang.String getDisplayCountry();
-    method public java.lang.String getDisplayCountry(android.icu.util.ULocale);
-    method public static java.lang.String getDisplayCountry(java.lang.String, java.lang.String);
-    method public static java.lang.String getDisplayCountry(java.lang.String, android.icu.util.ULocale);
-    method public static java.lang.String getDisplayKeyword(java.lang.String);
-    method public static java.lang.String getDisplayKeyword(java.lang.String, java.lang.String);
-    method public static java.lang.String getDisplayKeyword(java.lang.String, android.icu.util.ULocale);
-    method public java.lang.String getDisplayKeywordValue(java.lang.String);
-    method public java.lang.String getDisplayKeywordValue(java.lang.String, android.icu.util.ULocale);
-    method public static java.lang.String getDisplayKeywordValue(java.lang.String, java.lang.String, java.lang.String);
-    method public static java.lang.String getDisplayKeywordValue(java.lang.String, java.lang.String, android.icu.util.ULocale);
-    method public java.lang.String getDisplayLanguage();
-    method public java.lang.String getDisplayLanguage(android.icu.util.ULocale);
-    method public static java.lang.String getDisplayLanguage(java.lang.String, java.lang.String);
-    method public static java.lang.String getDisplayLanguage(java.lang.String, android.icu.util.ULocale);
-    method public java.lang.String getDisplayLanguageWithDialect();
-    method public java.lang.String getDisplayLanguageWithDialect(android.icu.util.ULocale);
-    method public static java.lang.String getDisplayLanguageWithDialect(java.lang.String, java.lang.String);
-    method public static java.lang.String getDisplayLanguageWithDialect(java.lang.String, android.icu.util.ULocale);
-    method public java.lang.String getDisplayName();
-    method public java.lang.String getDisplayName(android.icu.util.ULocale);
-    method public static java.lang.String getDisplayName(java.lang.String, java.lang.String);
-    method public static java.lang.String getDisplayName(java.lang.String, android.icu.util.ULocale);
-    method public java.lang.String getDisplayNameWithDialect();
-    method public java.lang.String getDisplayNameWithDialect(android.icu.util.ULocale);
-    method public static java.lang.String getDisplayNameWithDialect(java.lang.String, java.lang.String);
-    method public static java.lang.String getDisplayNameWithDialect(java.lang.String, android.icu.util.ULocale);
-    method public java.lang.String getDisplayScript();
-    method public java.lang.String getDisplayScript(android.icu.util.ULocale);
-    method public static java.lang.String getDisplayScript(java.lang.String, java.lang.String);
-    method public static java.lang.String getDisplayScript(java.lang.String, android.icu.util.ULocale);
-    method public java.lang.String getDisplayVariant();
-    method public java.lang.String getDisplayVariant(android.icu.util.ULocale);
-    method public static java.lang.String getDisplayVariant(java.lang.String, java.lang.String);
-    method public static java.lang.String getDisplayVariant(java.lang.String, android.icu.util.ULocale);
-    method public java.lang.String getExtension(char);
+    method public String getDisplayCountry();
+    method public String getDisplayCountry(android.icu.util.ULocale);
+    method public static String getDisplayCountry(String, String);
+    method public static String getDisplayCountry(String, android.icu.util.ULocale);
+    method public static String getDisplayKeyword(String);
+    method public static String getDisplayKeyword(String, String);
+    method public static String getDisplayKeyword(String, android.icu.util.ULocale);
+    method public String getDisplayKeywordValue(String);
+    method public String getDisplayKeywordValue(String, android.icu.util.ULocale);
+    method public static String getDisplayKeywordValue(String, String, String);
+    method public static String getDisplayKeywordValue(String, String, android.icu.util.ULocale);
+    method public String getDisplayLanguage();
+    method public String getDisplayLanguage(android.icu.util.ULocale);
+    method public static String getDisplayLanguage(String, String);
+    method public static String getDisplayLanguage(String, android.icu.util.ULocale);
+    method public String getDisplayLanguageWithDialect();
+    method public String getDisplayLanguageWithDialect(android.icu.util.ULocale);
+    method public static String getDisplayLanguageWithDialect(String, String);
+    method public static String getDisplayLanguageWithDialect(String, android.icu.util.ULocale);
+    method public String getDisplayName();
+    method public String getDisplayName(android.icu.util.ULocale);
+    method public static String getDisplayName(String, String);
+    method public static String getDisplayName(String, android.icu.util.ULocale);
+    method public String getDisplayNameWithDialect();
+    method public String getDisplayNameWithDialect(android.icu.util.ULocale);
+    method public static String getDisplayNameWithDialect(String, String);
+    method public static String getDisplayNameWithDialect(String, android.icu.util.ULocale);
+    method public String getDisplayScript();
+    method public String getDisplayScript(android.icu.util.ULocale);
+    method public static String getDisplayScript(String, String);
+    method public static String getDisplayScript(String, android.icu.util.ULocale);
+    method public String getDisplayVariant();
+    method public String getDisplayVariant(android.icu.util.ULocale);
+    method public static String getDisplayVariant(String, String);
+    method public static String getDisplayVariant(String, android.icu.util.ULocale);
+    method public String getExtension(char);
     method public java.util.Set<java.lang.Character> getExtensionKeys();
-    method public static java.lang.String getFallback(java.lang.String);
+    method public static String getFallback(String);
     method public android.icu.util.ULocale getFallback();
-    method public java.lang.String getISO3Country();
-    method public static java.lang.String getISO3Country(java.lang.String);
-    method public java.lang.String getISO3Language();
-    method public static java.lang.String getISO3Language(java.lang.String);
-    method public static java.lang.String[] getISOCountries();
-    method public static java.lang.String[] getISOLanguages();
-    method public java.lang.String getKeywordValue(java.lang.String);
-    method public static java.lang.String getKeywordValue(java.lang.String, java.lang.String);
+    method public String getISO3Country();
+    method public static String getISO3Country(String);
+    method public String getISO3Language();
+    method public static String getISO3Language(String);
+    method public static String[] getISOCountries();
+    method public static String[] getISOLanguages();
+    method public String getKeywordValue(String);
+    method public static String getKeywordValue(String, String);
     method public java.util.Iterator<java.lang.String> getKeywords();
-    method public static java.util.Iterator<java.lang.String> getKeywords(java.lang.String);
-    method public java.lang.String getLanguage();
-    method public static java.lang.String getLanguage(java.lang.String);
-    method public java.lang.String getLineOrientation();
-    method public java.lang.String getName();
-    method public static java.lang.String getName(java.lang.String);
-    method public java.lang.String getScript();
-    method public static java.lang.String getScript(java.lang.String);
+    method public static java.util.Iterator<java.lang.String> getKeywords(String);
+    method public String getLanguage();
+    method public static String getLanguage(String);
+    method public String getLineOrientation();
+    method public String getName();
+    method public static String getName(String);
+    method public String getScript();
+    method public static String getScript(String);
     method public java.util.Set<java.lang.String> getUnicodeLocaleAttributes();
     method public java.util.Set<java.lang.String> getUnicodeLocaleKeys();
-    method public java.lang.String getUnicodeLocaleType(java.lang.String);
-    method public java.lang.String getVariant();
-    method public static java.lang.String getVariant(java.lang.String);
+    method public String getUnicodeLocaleType(String);
+    method public String getVariant();
+    method public static String getVariant(String);
     method public boolean isRightToLeft();
     method public static android.icu.util.ULocale minimizeSubtags(android.icu.util.ULocale);
-    method public android.icu.util.ULocale setKeywordValue(java.lang.String, java.lang.String);
-    method public static java.lang.String setKeywordValue(java.lang.String, java.lang.String, java.lang.String);
-    method public java.lang.String toLanguageTag();
-    method public static java.lang.String toLegacyKey(java.lang.String);
-    method public static java.lang.String toLegacyType(java.lang.String, java.lang.String);
+    method public android.icu.util.ULocale setKeywordValue(String, String);
+    method public static String setKeywordValue(String, String, String);
+    method public String toLanguageTag();
+    method public static String toLegacyKey(String);
+    method public static String toLegacyType(String, String);
     method public java.util.Locale toLocale();
-    method public static java.lang.String toUnicodeLocaleKey(java.lang.String);
-    method public static java.lang.String toUnicodeLocaleType(java.lang.String, java.lang.String);
+    method public static String toUnicodeLocaleKey(String);
+    method public static String toUnicodeLocaleType(String, String);
     field public static final android.icu.util.ULocale CANADA;
     field public static final android.icu.util.ULocale CANADA_FRENCH;
     field public static final android.icu.util.ULocale CHINA;
@@ -22178,24 +22051,22 @@
 
   public static final class ULocale.Builder {
     ctor public ULocale.Builder();
-    method public android.icu.util.ULocale.Builder addUnicodeLocaleAttribute(java.lang.String);
+    method public android.icu.util.ULocale.Builder addUnicodeLocaleAttribute(String);
     method public android.icu.util.ULocale build();
     method public android.icu.util.ULocale.Builder clear();
     method public android.icu.util.ULocale.Builder clearExtensions();
-    method public android.icu.util.ULocale.Builder removeUnicodeLocaleAttribute(java.lang.String);
-    method public android.icu.util.ULocale.Builder setExtension(char, java.lang.String);
-    method public android.icu.util.ULocale.Builder setLanguage(java.lang.String);
-    method public android.icu.util.ULocale.Builder setLanguageTag(java.lang.String);
+    method public android.icu.util.ULocale.Builder removeUnicodeLocaleAttribute(String);
+    method public android.icu.util.ULocale.Builder setExtension(char, String);
+    method public android.icu.util.ULocale.Builder setLanguage(String);
+    method public android.icu.util.ULocale.Builder setLanguageTag(String);
     method public android.icu.util.ULocale.Builder setLocale(android.icu.util.ULocale);
-    method public android.icu.util.ULocale.Builder setRegion(java.lang.String);
-    method public android.icu.util.ULocale.Builder setScript(java.lang.String);
-    method public android.icu.util.ULocale.Builder setUnicodeLocaleKeyword(java.lang.String, java.lang.String);
-    method public android.icu.util.ULocale.Builder setVariant(java.lang.String);
+    method public android.icu.util.ULocale.Builder setRegion(String);
+    method public android.icu.util.ULocale.Builder setScript(String);
+    method public android.icu.util.ULocale.Builder setUnicodeLocaleKeyword(String, String);
+    method public android.icu.util.ULocale.Builder setVariant(String);
   }
 
-  public static final class ULocale.Category extends java.lang.Enum {
-    method public static android.icu.util.ULocale.Category valueOf(java.lang.String);
-    method public static final android.icu.util.ULocale.Category[] values();
+  public enum ULocale.Category {
     enum_constant public static final android.icu.util.ULocale.Category DISPLAY;
     enum_constant public static final android.icu.util.ULocale.Category FORMAT;
   }
@@ -22220,7 +22091,7 @@
     field public static final int JAVA_TIME = 0; // 0x0
     field public static final int MAC_OLD_TIME = 5; // 0x5
     field public static final int MAC_TIME = 6; // 0x6
-    field public static final deprecated int MAX_SCALE = 10; // 0xa
+    field @Deprecated public static final int MAX_SCALE = 10; // 0xa
     field public static final int TO_MAX_VALUE = 5; // 0x5
     field public static final int TO_MIN_VALUE = 4; // 0x4
     field public static final int UNITS_VALUE = 0; // 0x0
@@ -22229,21 +22100,21 @@
     field public static final int WINDOWS_FILE_TIME = 3; // 0x3
   }
 
-  public abstract interface ValueIterator {
-    method public abstract boolean next(android.icu.util.ValueIterator.Element);
-    method public abstract void reset();
-    method public abstract void setRange(int, int);
+  public interface ValueIterator {
+    method public boolean next(android.icu.util.ValueIterator.Element);
+    method public void reset();
+    method public void setRange(int, int);
   }
 
   public static final class ValueIterator.Element {
     ctor public ValueIterator.Element();
     field public int integer;
-    field public java.lang.Object value;
+    field public Object value;
   }
 
-  public final class VersionInfo implements java.lang.Comparable {
+  public final class VersionInfo implements java.lang.Comparable<android.icu.util.VersionInfo> {
     method public int compareTo(android.icu.util.VersionInfo);
-    method public static android.icu.util.VersionInfo getInstance(java.lang.String);
+    method public static android.icu.util.VersionInfo getInstance(String);
     method public static android.icu.util.VersionInfo getInstance(int, int, int, int);
     method public static android.icu.util.VersionInfo getInstance(int, int, int);
     method public static android.icu.util.VersionInfo getInstance(int, int);
@@ -22302,9 +22173,9 @@
 
   public abstract class AbstractInputMethodService.AbstractInputMethodImpl implements android.view.inputmethod.InputMethod {
     ctor public AbstractInputMethodService.AbstractInputMethodImpl();
-    method public void createSession(android.view.inputmethod.InputMethod.SessionCallback);
-    method public void revokeSession(android.view.inputmethod.InputMethodSession);
-    method public void setSessionEnabled(android.view.inputmethod.InputMethodSession, boolean);
+    method @MainThread public void createSession(android.view.inputmethod.InputMethod.SessionCallback);
+    method @MainThread public void revokeSession(android.view.inputmethod.InputMethodSession);
+    method @MainThread public void setSessionEnabled(android.view.inputmethod.InputMethodSession, boolean);
   }
 
   public abstract class AbstractInputMethodService.AbstractInputMethodSessionImpl implements android.view.inputmethod.InputMethodSession {
@@ -22330,17 +22201,17 @@
 
   public class InputMethodService extends android.inputmethodservice.AbstractInputMethodService {
     ctor public InputMethodService();
-    method public deprecated boolean enableHardwareAcceleration();
+    method @Deprecated public boolean enableHardwareAcceleration();
     method public int getBackDisposition();
     method public int getCandidatesHiddenVisibility();
     method public android.view.inputmethod.InputBinding getCurrentInputBinding();
     method public android.view.inputmethod.InputConnection getCurrentInputConnection();
     method public android.view.inputmethod.EditorInfo getCurrentInputEditorInfo();
     method public boolean getCurrentInputStarted();
-    method public deprecated int getInputMethodWindowRecommendedHeight();
+    method @Deprecated public int getInputMethodWindowRecommendedHeight();
     method public android.view.LayoutInflater getLayoutInflater();
     method public int getMaxWidth();
-    method public java.lang.CharSequence getTextForImeAction(int);
+    method public CharSequence getTextForImeAction(int);
     method public android.app.Dialog getWindow();
     method public void hideStatusIcon();
     method public void hideWindow();
@@ -22348,7 +22219,7 @@
     method public boolean isFullscreenMode();
     method public boolean isInputViewShown();
     method public boolean isShowInputRequested();
-    method public void onAppPrivateCommand(java.lang.String, android.os.Bundle);
+    method public void onAppPrivateCommand(String, android.os.Bundle);
     method public void onBindInput();
     method public void onComputeInsets(android.inputmethodservice.InputMethodService.Insets);
     method public void onConfigureWindow(android.view.Window, boolean, boolean);
@@ -22360,7 +22231,7 @@
     method protected void onCurrentInputMethodSubtypeChanged(android.view.inputmethod.InputMethodSubtype);
     method public void onDisplayCompletions(android.view.inputmethod.CompletionInfo[]);
     method public boolean onEvaluateFullscreenMode();
-    method public boolean onEvaluateInputViewShown();
+    method @CallSuper public boolean onEvaluateInputViewShown();
     method public boolean onExtractTextContextMenuItem(int);
     method public void onExtractedCursorMovement(int, int);
     method public void onExtractedSelectionChanged(int, int);
@@ -22379,7 +22250,7 @@
     method public void onStartInput(android.view.inputmethod.EditorInfo, boolean);
     method public void onStartInputView(android.view.inputmethod.EditorInfo, boolean);
     method public void onUnbindInput();
-    method public deprecated void onUpdateCursor(android.graphics.Rect);
+    method @Deprecated public void onUpdateCursor(android.graphics.Rect);
     method public void onUpdateCursorAnchorInfo(android.view.inputmethod.CursorAnchorInfo);
     method public void onUpdateExtractedText(int, android.view.inputmethod.ExtractedText);
     method public void onUpdateExtractingViews(android.view.inputmethod.EditorInfo);
@@ -22400,35 +22271,35 @@
     method public void setExtractViewShown(boolean);
     method public void setInputView(android.view.View);
     method public final boolean shouldOfferSwitchingToNextInputMethod();
-    method public void showStatusIcon(int);
+    method public void showStatusIcon(@DrawableRes int);
     method public void showWindow(boolean);
-    method public void switchInputMethod(java.lang.String);
-    method public final void switchInputMethod(java.lang.String, android.view.inputmethod.InputMethodSubtype);
+    method public void switchInputMethod(String);
+    method public final void switchInputMethod(String, android.view.inputmethod.InputMethodSubtype);
     method public final boolean switchToNextInputMethod(boolean);
     method public final boolean switchToPreviousInputMethod();
     method public void updateFullscreenMode();
     method public void updateInputViewShown();
     field public static final int BACK_DISPOSITION_ADJUST_NOTHING = 3; // 0x3
     field public static final int BACK_DISPOSITION_DEFAULT = 0; // 0x0
-    field public static final deprecated int BACK_DISPOSITION_WILL_DISMISS = 2; // 0x2
-    field public static final deprecated int BACK_DISPOSITION_WILL_NOT_DISMISS = 1; // 0x1
+    field @Deprecated public static final int BACK_DISPOSITION_WILL_DISMISS = 2; // 0x2
+    field @Deprecated public static final int BACK_DISPOSITION_WILL_NOT_DISMISS = 1; // 0x1
   }
 
   public class InputMethodService.InputMethodImpl extends android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl {
     ctor public InputMethodService.InputMethodImpl();
-    method public void attachToken(android.os.IBinder);
-    method public void bindInput(android.view.inputmethod.InputBinding);
-    method public void changeInputMethodSubtype(android.view.inputmethod.InputMethodSubtype);
-    method public void hideSoftInput(int, android.os.ResultReceiver);
-    method public void restartInput(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
-    method public void showSoftInput(int, android.os.ResultReceiver);
-    method public void startInput(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
-    method public void unbindInput();
+    method @MainThread public void attachToken(android.os.IBinder);
+    method @MainThread public void bindInput(android.view.inputmethod.InputBinding);
+    method @MainThread public void changeInputMethodSubtype(android.view.inputmethod.InputMethodSubtype);
+    method @MainThread public void hideSoftInput(int, android.os.ResultReceiver);
+    method @MainThread public void restartInput(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
+    method @MainThread public void showSoftInput(int, android.os.ResultReceiver);
+    method @MainThread public void startInput(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
+    method @MainThread public void unbindInput();
   }
 
   public class InputMethodService.InputMethodSessionImpl extends android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl {
     ctor public InputMethodService.InputMethodSessionImpl();
-    method public void appPrivateCommand(java.lang.String, android.os.Bundle);
+    method public void appPrivateCommand(String, android.os.Bundle);
     method public void displayCompletions(android.view.inputmethod.CompletionInfo[]);
     method public void finishInput();
     method public void toggleSoftInput(int, int);
@@ -22451,122 +22322,122 @@
     field public int visibleTopInsets;
   }
 
-  public deprecated class Keyboard {
-    ctor public Keyboard(android.content.Context, int);
-    ctor public Keyboard(android.content.Context, int, int, int, int);
-    ctor public Keyboard(android.content.Context, int, int);
-    ctor public Keyboard(android.content.Context, int, java.lang.CharSequence, int, int);
-    method protected android.inputmethodservice.Keyboard.Key createKeyFromXml(android.content.res.Resources, android.inputmethodservice.Keyboard.Row, int, int, android.content.res.XmlResourceParser);
-    method protected android.inputmethodservice.Keyboard.Row createRowFromXml(android.content.res.Resources, android.content.res.XmlResourceParser);
-    method public int getHeight();
-    method protected int getHorizontalGap();
-    method protected int getKeyHeight();
-    method protected int getKeyWidth();
-    method public java.util.List<android.inputmethodservice.Keyboard.Key> getKeys();
-    method public int getMinWidth();
-    method public java.util.List<android.inputmethodservice.Keyboard.Key> getModifierKeys();
-    method public int[] getNearestKeys(int, int);
-    method public int getShiftKeyIndex();
-    method protected int getVerticalGap();
-    method public boolean isShifted();
-    method protected void setHorizontalGap(int);
-    method protected void setKeyHeight(int);
-    method protected void setKeyWidth(int);
-    method public boolean setShifted(boolean);
-    method protected void setVerticalGap(int);
-    field public static final int EDGE_BOTTOM = 8; // 0x8
-    field public static final int EDGE_LEFT = 1; // 0x1
-    field public static final int EDGE_RIGHT = 2; // 0x2
-    field public static final int EDGE_TOP = 4; // 0x4
-    field public static final int KEYCODE_ALT = -6; // 0xfffffffa
-    field public static final int KEYCODE_CANCEL = -3; // 0xfffffffd
-    field public static final int KEYCODE_DELETE = -5; // 0xfffffffb
-    field public static final int KEYCODE_DONE = -4; // 0xfffffffc
-    field public static final int KEYCODE_MODE_CHANGE = -2; // 0xfffffffe
-    field public static final int KEYCODE_SHIFT = -1; // 0xffffffff
+  @Deprecated public class Keyboard {
+    ctor @Deprecated public Keyboard(android.content.Context, int);
+    ctor @Deprecated public Keyboard(android.content.Context, @XmlRes int, int, int, int);
+    ctor @Deprecated public Keyboard(android.content.Context, @XmlRes int, int);
+    ctor @Deprecated public Keyboard(android.content.Context, int, CharSequence, int, int);
+    method @Deprecated protected android.inputmethodservice.Keyboard.Key createKeyFromXml(android.content.res.Resources, android.inputmethodservice.Keyboard.Row, int, int, android.content.res.XmlResourceParser);
+    method @Deprecated protected android.inputmethodservice.Keyboard.Row createRowFromXml(android.content.res.Resources, android.content.res.XmlResourceParser);
+    method @Deprecated public int getHeight();
+    method @Deprecated protected int getHorizontalGap();
+    method @Deprecated protected int getKeyHeight();
+    method @Deprecated protected int getKeyWidth();
+    method @Deprecated public java.util.List<android.inputmethodservice.Keyboard.Key> getKeys();
+    method @Deprecated public int getMinWidth();
+    method @Deprecated public java.util.List<android.inputmethodservice.Keyboard.Key> getModifierKeys();
+    method @Deprecated public int[] getNearestKeys(int, int);
+    method @Deprecated public int getShiftKeyIndex();
+    method @Deprecated protected int getVerticalGap();
+    method @Deprecated public boolean isShifted();
+    method @Deprecated protected void setHorizontalGap(int);
+    method @Deprecated protected void setKeyHeight(int);
+    method @Deprecated protected void setKeyWidth(int);
+    method @Deprecated public boolean setShifted(boolean);
+    method @Deprecated protected void setVerticalGap(int);
+    field @Deprecated public static final int EDGE_BOTTOM = 8; // 0x8
+    field @Deprecated public static final int EDGE_LEFT = 1; // 0x1
+    field @Deprecated public static final int EDGE_RIGHT = 2; // 0x2
+    field @Deprecated public static final int EDGE_TOP = 4; // 0x4
+    field @Deprecated public static final int KEYCODE_ALT = -6; // 0xfffffffa
+    field @Deprecated public static final int KEYCODE_CANCEL = -3; // 0xfffffffd
+    field @Deprecated public static final int KEYCODE_DELETE = -5; // 0xfffffffb
+    field @Deprecated public static final int KEYCODE_DONE = -4; // 0xfffffffc
+    field @Deprecated public static final int KEYCODE_MODE_CHANGE = -2; // 0xfffffffe
+    field @Deprecated public static final int KEYCODE_SHIFT = -1; // 0xffffffff
   }
 
-  public static class Keyboard.Key {
-    ctor public Keyboard.Key(android.inputmethodservice.Keyboard.Row);
-    ctor public Keyboard.Key(android.content.res.Resources, android.inputmethodservice.Keyboard.Row, int, int, android.content.res.XmlResourceParser);
-    method public int[] getCurrentDrawableState();
-    method public boolean isInside(int, int);
-    method public void onPressed();
-    method public void onReleased(boolean);
-    method public int squaredDistanceFrom(int, int);
-    field public int[] codes;
-    field public int edgeFlags;
-    field public int gap;
-    field public int height;
-    field public android.graphics.drawable.Drawable icon;
-    field public android.graphics.drawable.Drawable iconPreview;
-    field public java.lang.CharSequence label;
-    field public boolean modifier;
-    field public boolean on;
-    field public java.lang.CharSequence popupCharacters;
-    field public int popupResId;
-    field public boolean pressed;
-    field public boolean repeatable;
-    field public boolean sticky;
-    field public java.lang.CharSequence text;
-    field public int width;
-    field public int x;
-    field public int y;
+  @Deprecated public static class Keyboard.Key {
+    ctor @Deprecated public Keyboard.Key(android.inputmethodservice.Keyboard.Row);
+    ctor @Deprecated public Keyboard.Key(android.content.res.Resources, android.inputmethodservice.Keyboard.Row, int, int, android.content.res.XmlResourceParser);
+    method @Deprecated public int[] getCurrentDrawableState();
+    method @Deprecated public boolean isInside(int, int);
+    method @Deprecated public void onPressed();
+    method @Deprecated public void onReleased(boolean);
+    method @Deprecated public int squaredDistanceFrom(int, int);
+    field @Deprecated public int[] codes;
+    field @Deprecated public int edgeFlags;
+    field @Deprecated public int gap;
+    field @Deprecated public int height;
+    field @Deprecated public android.graphics.drawable.Drawable icon;
+    field @Deprecated public android.graphics.drawable.Drawable iconPreview;
+    field @Deprecated public CharSequence label;
+    field @Deprecated public boolean modifier;
+    field @Deprecated public boolean on;
+    field @Deprecated public CharSequence popupCharacters;
+    field @Deprecated public int popupResId;
+    field @Deprecated public boolean pressed;
+    field @Deprecated public boolean repeatable;
+    field @Deprecated public boolean sticky;
+    field @Deprecated public CharSequence text;
+    field @Deprecated public int width;
+    field @Deprecated public int x;
+    field @Deprecated public int y;
   }
 
-  public static class Keyboard.Row {
-    ctor public Keyboard.Row(android.inputmethodservice.Keyboard);
-    ctor public Keyboard.Row(android.content.res.Resources, android.inputmethodservice.Keyboard, android.content.res.XmlResourceParser);
-    field public int defaultHeight;
-    field public int defaultHorizontalGap;
-    field public int defaultWidth;
-    field public int mode;
-    field public int rowEdgeFlags;
-    field public int verticalGap;
+  @Deprecated public static class Keyboard.Row {
+    ctor @Deprecated public Keyboard.Row(android.inputmethodservice.Keyboard);
+    ctor @Deprecated public Keyboard.Row(android.content.res.Resources, android.inputmethodservice.Keyboard, android.content.res.XmlResourceParser);
+    field @Deprecated public int defaultHeight;
+    field @Deprecated public int defaultHorizontalGap;
+    field @Deprecated public int defaultWidth;
+    field @Deprecated public int mode;
+    field @Deprecated public int rowEdgeFlags;
+    field @Deprecated public int verticalGap;
   }
 
-  public deprecated class KeyboardView extends android.view.View implements android.view.View.OnClickListener {
-    ctor public KeyboardView(android.content.Context, android.util.AttributeSet);
-    ctor public KeyboardView(android.content.Context, android.util.AttributeSet, int);
-    ctor public KeyboardView(android.content.Context, android.util.AttributeSet, int, int);
-    method public void closing();
-    method public android.inputmethodservice.Keyboard getKeyboard();
-    method protected android.inputmethodservice.KeyboardView.OnKeyboardActionListener getOnKeyboardActionListener();
-    method public boolean handleBack();
-    method public void invalidateAllKeys();
-    method public void invalidateKey(int);
-    method public boolean isPreviewEnabled();
-    method public boolean isProximityCorrectionEnabled();
-    method public boolean isShifted();
+  @Deprecated public class KeyboardView extends android.view.View implements android.view.View.OnClickListener {
+    ctor @Deprecated public KeyboardView(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public KeyboardView(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public KeyboardView(android.content.Context, android.util.AttributeSet, int, int);
+    method @Deprecated public void closing();
+    method @Deprecated public android.inputmethodservice.Keyboard getKeyboard();
+    method @Deprecated protected android.inputmethodservice.KeyboardView.OnKeyboardActionListener getOnKeyboardActionListener();
+    method @Deprecated public boolean handleBack();
+    method @Deprecated public void invalidateAllKeys();
+    method @Deprecated public void invalidateKey(int);
+    method @Deprecated public boolean isPreviewEnabled();
+    method @Deprecated public boolean isProximityCorrectionEnabled();
+    method @Deprecated public boolean isShifted();
     method public void onClick(android.view.View);
-    method public void onDetachedFromWindow();
-    method public void onDraw(android.graphics.Canvas);
-    method protected boolean onLongPress(android.inputmethodservice.Keyboard.Key);
-    method public void onMeasure(int, int);
-    method public void onSizeChanged(int, int, int, int);
-    method public void setKeyboard(android.inputmethodservice.Keyboard);
-    method public void setOnKeyboardActionListener(android.inputmethodservice.KeyboardView.OnKeyboardActionListener);
-    method public void setPopupOffset(int, int);
-    method public void setPopupParent(android.view.View);
-    method public void setPreviewEnabled(boolean);
-    method public void setProximityCorrectionEnabled(boolean);
-    method public boolean setShifted(boolean);
-    method public void setVerticalCorrection(int);
-    method protected void swipeDown();
-    method protected void swipeLeft();
-    method protected void swipeRight();
-    method protected void swipeUp();
+    method @Deprecated public void onDetachedFromWindow();
+    method @Deprecated public void onDraw(android.graphics.Canvas);
+    method @Deprecated protected boolean onLongPress(android.inputmethodservice.Keyboard.Key);
+    method @Deprecated public void onMeasure(int, int);
+    method @Deprecated public void onSizeChanged(int, int, int, int);
+    method @Deprecated public void setKeyboard(android.inputmethodservice.Keyboard);
+    method @Deprecated public void setOnKeyboardActionListener(android.inputmethodservice.KeyboardView.OnKeyboardActionListener);
+    method @Deprecated public void setPopupOffset(int, int);
+    method @Deprecated public void setPopupParent(android.view.View);
+    method @Deprecated public void setPreviewEnabled(boolean);
+    method @Deprecated public void setProximityCorrectionEnabled(boolean);
+    method @Deprecated public boolean setShifted(boolean);
+    method @Deprecated public void setVerticalCorrection(int);
+    method @Deprecated protected void swipeDown();
+    method @Deprecated protected void swipeLeft();
+    method @Deprecated protected void swipeRight();
+    method @Deprecated protected void swipeUp();
   }
 
-  public static abstract interface KeyboardView.OnKeyboardActionListener {
-    method public abstract void onKey(int, int[]);
-    method public abstract void onPress(int);
-    method public abstract void onRelease(int);
-    method public abstract void onText(java.lang.CharSequence);
-    method public abstract void swipeDown();
-    method public abstract void swipeLeft();
-    method public abstract void swipeRight();
-    method public abstract void swipeUp();
+  @Deprecated public static interface KeyboardView.OnKeyboardActionListener {
+    method @Deprecated public void onKey(int, int[]);
+    method @Deprecated public void onPress(int);
+    method @Deprecated public void onRelease(int);
+    method @Deprecated public void onText(CharSequence);
+    method @Deprecated public void swipeDown();
+    method @Deprecated public void swipeLeft();
+    method @Deprecated public void swipeRight();
+    method @Deprecated public void swipeUp();
   }
 
 }
@@ -22578,44 +22449,44 @@
     method public void clearLatitude();
     method public void clearLongitude();
     method public int describeContents();
-    method public java.lang.String getAddressLine(int);
-    method public java.lang.String getAdminArea();
-    method public java.lang.String getCountryCode();
-    method public java.lang.String getCountryName();
+    method public String getAddressLine(int);
+    method public String getAdminArea();
+    method public String getCountryCode();
+    method public String getCountryName();
     method public android.os.Bundle getExtras();
-    method public java.lang.String getFeatureName();
+    method public String getFeatureName();
     method public double getLatitude();
     method public java.util.Locale getLocale();
-    method public java.lang.String getLocality();
+    method public String getLocality();
     method public double getLongitude();
     method public int getMaxAddressLineIndex();
-    method public java.lang.String getPhone();
-    method public java.lang.String getPostalCode();
-    method public java.lang.String getPremises();
-    method public java.lang.String getSubAdminArea();
-    method public java.lang.String getSubLocality();
-    method public java.lang.String getSubThoroughfare();
-    method public java.lang.String getThoroughfare();
-    method public java.lang.String getUrl();
+    method public String getPhone();
+    method public String getPostalCode();
+    method public String getPremises();
+    method public String getSubAdminArea();
+    method public String getSubLocality();
+    method public String getSubThoroughfare();
+    method public String getThoroughfare();
+    method public String getUrl();
     method public boolean hasLatitude();
     method public boolean hasLongitude();
-    method public void setAddressLine(int, java.lang.String);
-    method public void setAdminArea(java.lang.String);
-    method public void setCountryCode(java.lang.String);
-    method public void setCountryName(java.lang.String);
+    method public void setAddressLine(int, String);
+    method public void setAdminArea(String);
+    method public void setCountryCode(String);
+    method public void setCountryName(String);
     method public void setExtras(android.os.Bundle);
-    method public void setFeatureName(java.lang.String);
+    method public void setFeatureName(String);
     method public void setLatitude(double);
-    method public void setLocality(java.lang.String);
+    method public void setLocality(String);
     method public void setLongitude(double);
-    method public void setPhone(java.lang.String);
-    method public void setPostalCode(java.lang.String);
-    method public void setPremises(java.lang.String);
-    method public void setSubAdminArea(java.lang.String);
-    method public void setSubLocality(java.lang.String);
-    method public void setSubThoroughfare(java.lang.String);
-    method public void setThoroughfare(java.lang.String);
-    method public void setUrl(java.lang.String);
+    method public void setPhone(String);
+    method public void setPostalCode(String);
+    method public void setPremises(String);
+    method public void setSubAdminArea(String);
+    method public void setSubLocality(String);
+    method public void setSubThoroughfare(String);
+    method public void setThoroughfare(String);
+    method public void setUrl(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.location.Address> CREATOR;
   }
@@ -22661,8 +22532,8 @@
     ctor public Geocoder(android.content.Context, java.util.Locale);
     ctor public Geocoder(android.content.Context);
     method public java.util.List<android.location.Address> getFromLocation(double, double, int) throws java.io.IOException;
-    method public java.util.List<android.location.Address> getFromLocationName(java.lang.String, int) throws java.io.IOException;
-    method public java.util.List<android.location.Address> getFromLocationName(java.lang.String, int, double, double, double, double) throws java.io.IOException;
+    method public java.util.List<android.location.Address> getFromLocationName(String, int) throws java.io.IOException;
+    method public java.util.List<android.location.Address> getFromLocationName(String, int, double, double, double, double) throws java.io.IOException;
     method public static boolean isPresent();
   }
 
@@ -22694,10 +22565,10 @@
     method public int getAccumulatedDeltaRangeState();
     method public double getAccumulatedDeltaRangeUncertaintyMeters();
     method public double getAutomaticGainControlLevelDb();
-    method public deprecated long getCarrierCycles();
+    method @Deprecated public long getCarrierCycles();
     method public float getCarrierFrequencyHz();
-    method public deprecated double getCarrierPhase();
-    method public deprecated double getCarrierPhaseUncertainty();
+    method @Deprecated public double getCarrierPhase();
+    method @Deprecated public double getCarrierPhaseUncertainty();
     method public double getCn0DbHz();
     method public int getCodeType();
     method public int getConstellationType();
@@ -22711,10 +22582,10 @@
     method public int getSvid();
     method public double getTimeOffsetNanos();
     method public boolean hasAutomaticGainControlLevelDb();
-    method public deprecated boolean hasCarrierCycles();
+    method @Deprecated public boolean hasCarrierCycles();
     method public boolean hasCarrierFrequencyHz();
-    method public deprecated boolean hasCarrierPhase();
-    method public deprecated boolean hasCarrierPhaseUncertainty();
+    method @Deprecated public boolean hasCarrierPhase();
+    method @Deprecated public boolean hasCarrierPhaseUncertainty();
     method public boolean hasCodeType();
     method public boolean hasSnrInDb();
     method public void writeToParcel(android.os.Parcel, int);
@@ -22764,13 +22635,13 @@
 
   public final class GnssMeasurementsEvent implements android.os.Parcelable {
     method public int describeContents();
-    method public android.location.GnssClock getClock();
-    method public java.util.Collection<android.location.GnssMeasurement> getMeasurements();
+    method @NonNull public android.location.GnssClock getClock();
+    method @NonNull public java.util.Collection<android.location.GnssMeasurement> getMeasurements();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.location.GnssMeasurementsEvent> CREATOR;
   }
 
-  public static abstract class GnssMeasurementsEvent.Callback {
+  public abstract static class GnssMeasurementsEvent.Callback {
     ctor public GnssMeasurementsEvent.Callback();
     method public void onGnssMeasurementsReceived(android.location.GnssMeasurementsEvent);
     method public void onStatusChanged(int);
@@ -22782,7 +22653,7 @@
 
   public final class GnssNavigationMessage implements android.os.Parcelable {
     method public int describeContents();
-    method public byte[] getData();
+    method @NonNull public byte[] getData();
     method public int getMessageId();
     method public int getStatus();
     method public int getSubmessageId();
@@ -22805,7 +22676,7 @@
     field public static final int TYPE_UNKNOWN = 0; // 0x0
   }
 
-  public static abstract class GnssNavigationMessage.Callback {
+  public abstract static class GnssNavigationMessage.Callback {
     ctor public GnssNavigationMessage.Callback();
     method public void onGnssNavigationMessageReceived(android.location.GnssNavigationMessage);
     method public void onStatusChanged(int);
@@ -22835,7 +22706,7 @@
     field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
   }
 
-  public static abstract class GnssStatus.Callback {
+  public abstract static class GnssStatus.Callback {
     ctor public GnssStatus.Callback();
     method public void onFirstFix(int);
     method public void onSatelliteStatusChanged(android.location.GnssStatus);
@@ -22843,44 +22714,44 @@
     method public void onStopped();
   }
 
-  public final deprecated class GpsSatellite {
-    method public float getAzimuth();
-    method public float getElevation();
-    method public int getPrn();
-    method public float getSnr();
-    method public boolean hasAlmanac();
-    method public boolean hasEphemeris();
-    method public boolean usedInFix();
+  @Deprecated public final class GpsSatellite {
+    method @Deprecated public float getAzimuth();
+    method @Deprecated public float getElevation();
+    method @Deprecated public int getPrn();
+    method @Deprecated public float getSnr();
+    method @Deprecated public boolean hasAlmanac();
+    method @Deprecated public boolean hasEphemeris();
+    method @Deprecated public boolean usedInFix();
   }
 
-  public final deprecated class GpsStatus {
-    method public int getMaxSatellites();
-    method public java.lang.Iterable<android.location.GpsSatellite> getSatellites();
-    method public int getTimeToFirstFix();
-    field public static final int GPS_EVENT_FIRST_FIX = 3; // 0x3
-    field public static final int GPS_EVENT_SATELLITE_STATUS = 4; // 0x4
-    field public static final int GPS_EVENT_STARTED = 1; // 0x1
-    field public static final int GPS_EVENT_STOPPED = 2; // 0x2
+  @Deprecated public final class GpsStatus {
+    method @Deprecated public int getMaxSatellites();
+    method @Deprecated public Iterable<android.location.GpsSatellite> getSatellites();
+    method @Deprecated public int getTimeToFirstFix();
+    field @Deprecated public static final int GPS_EVENT_FIRST_FIX = 3; // 0x3
+    field @Deprecated public static final int GPS_EVENT_SATELLITE_STATUS = 4; // 0x4
+    field @Deprecated public static final int GPS_EVENT_STARTED = 1; // 0x1
+    field @Deprecated public static final int GPS_EVENT_STOPPED = 2; // 0x2
   }
 
-  public static abstract deprecated interface GpsStatus.Listener {
-    method public abstract void onGpsStatusChanged(int);
+  @Deprecated public static interface GpsStatus.Listener {
+    method @Deprecated public void onGpsStatusChanged(int);
   }
 
-  public static abstract deprecated interface GpsStatus.NmeaListener {
-    method public abstract void onNmeaReceived(long, java.lang.String);
+  @Deprecated public static interface GpsStatus.NmeaListener {
+    method @Deprecated public void onNmeaReceived(long, String);
   }
 
   public class Location implements android.os.Parcelable {
-    ctor public Location(java.lang.String);
+    ctor public Location(String);
     ctor public Location(android.location.Location);
     method public float bearingTo(android.location.Location);
-    method public static java.lang.String convert(double, int);
-    method public static double convert(java.lang.String);
+    method public static String convert(double, int);
+    method public static double convert(String);
     method public int describeContents();
     method public static void distanceBetween(double, double, double, double, float[]);
     method public float distanceTo(android.location.Location);
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public float getAccuracy();
     method public double getAltitude();
     method public float getBearing();
@@ -22889,7 +22760,7 @@
     method public android.os.Bundle getExtras();
     method public double getLatitude();
     method public double getLongitude();
-    method public java.lang.String getProvider();
+    method public String getProvider();
     method public float getSpeed();
     method public float getSpeedAccuracyMetersPerSecond();
     method public long getTime();
@@ -22902,10 +22773,10 @@
     method public boolean hasSpeedAccuracy();
     method public boolean hasVerticalAccuracy();
     method public boolean isFromMockProvider();
-    method public deprecated void removeAccuracy();
-    method public deprecated void removeAltitude();
-    method public deprecated void removeBearing();
-    method public deprecated void removeSpeed();
+    method @Deprecated public void removeAccuracy();
+    method @Deprecated public void removeAltitude();
+    method @Deprecated public void removeBearing();
+    method @Deprecated public void removeSpeed();
     method public void reset();
     method public void set(android.location.Location);
     method public void setAccuracy(float);
@@ -22916,7 +22787,7 @@
     method public void setExtras(android.os.Bundle);
     method public void setLatitude(double);
     method public void setLongitude(double);
-    method public void setProvider(java.lang.String);
+    method public void setProvider(String);
     method public void setSpeed(float);
     method public void setSpeedAccuracyMetersPerSecond(float);
     method public void setTime(long);
@@ -22928,77 +22799,77 @@
     field public static final int FORMAT_SECONDS = 2; // 0x2
   }
 
-  public abstract interface LocationListener {
-    method public abstract void onLocationChanged(android.location.Location);
-    method public abstract void onProviderDisabled(java.lang.String);
-    method public abstract void onProviderEnabled(java.lang.String);
-    method public abstract deprecated void onStatusChanged(java.lang.String, int, android.os.Bundle);
+  public interface LocationListener {
+    method public void onLocationChanged(android.location.Location);
+    method public void onProviderDisabled(String);
+    method public void onProviderEnabled(String);
+    method @Deprecated public void onStatusChanged(String, int, android.os.Bundle);
   }
 
   public class LocationManager {
-    method public deprecated boolean addGpsStatusListener(android.location.GpsStatus.Listener);
-    method public deprecated boolean addNmeaListener(android.location.GpsStatus.NmeaListener);
-    method public boolean addNmeaListener(android.location.OnNmeaMessageListener);
-    method public boolean addNmeaListener(android.location.OnNmeaMessageListener, android.os.Handler);
-    method public void addProximityAlert(double, double, float, long, android.app.PendingIntent);
-    method public void addTestProvider(java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int);
-    method public deprecated void clearTestProviderEnabled(java.lang.String);
-    method public deprecated void clearTestProviderLocation(java.lang.String);
-    method public deprecated void clearTestProviderStatus(java.lang.String);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addGpsStatusListener(android.location.GpsStatus.Listener);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addNmeaListener(android.location.GpsStatus.NmeaListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addNmeaListener(android.location.OnNmeaMessageListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addNmeaListener(android.location.OnNmeaMessageListener, android.os.Handler);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void addProximityAlert(double, double, float, long, android.app.PendingIntent);
+    method public void addTestProvider(String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int);
+    method @Deprecated public void clearTestProviderEnabled(String);
+    method @Deprecated public void clearTestProviderLocation(String);
+    method @Deprecated public void clearTestProviderStatus(String);
     method public java.util.List<java.lang.String> getAllProviders();
-    method public java.lang.String getBestProvider(android.location.Criteria, boolean);
-    method public java.lang.String getGnssHardwareModelName();
+    method public String getBestProvider(android.location.Criteria, boolean);
+    method @Nullable public String getGnssHardwareModelName();
     method public int getGnssYearOfHardware();
-    method public deprecated android.location.GpsStatus getGpsStatus(android.location.GpsStatus);
-    method public android.location.Location getLastKnownLocation(java.lang.String);
-    method public android.location.LocationProvider getProvider(java.lang.String);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public android.location.GpsStatus getGpsStatus(android.location.GpsStatus);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public android.location.Location getLastKnownLocation(String);
+    method public android.location.LocationProvider getProvider(String);
     method public java.util.List<java.lang.String> getProviders(boolean);
     method public java.util.List<java.lang.String> getProviders(android.location.Criteria, boolean);
     method public boolean isLocationEnabled();
-    method public boolean isProviderEnabled(java.lang.String);
-    method public boolean registerGnssMeasurementsCallback(android.location.GnssMeasurementsEvent.Callback);
-    method public boolean registerGnssMeasurementsCallback(android.location.GnssMeasurementsEvent.Callback, android.os.Handler);
+    method public boolean isProviderEnabled(String);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(android.location.GnssMeasurementsEvent.Callback);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(android.location.GnssMeasurementsEvent.Callback, android.os.Handler);
     method public boolean registerGnssNavigationMessageCallback(android.location.GnssNavigationMessage.Callback);
-    method public boolean registerGnssNavigationMessageCallback(android.location.GnssNavigationMessage.Callback, android.os.Handler);
-    method public boolean registerGnssStatusCallback(android.location.GnssStatus.Callback);
-    method public boolean registerGnssStatusCallback(android.location.GnssStatus.Callback, android.os.Handler);
-    method public deprecated void removeGpsStatusListener(android.location.GpsStatus.Listener);
-    method public deprecated void removeNmeaListener(android.location.GpsStatus.NmeaListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssNavigationMessageCallback(android.location.GnssNavigationMessage.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssStatusCallback(android.location.GnssStatus.Callback);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssStatusCallback(android.location.GnssStatus.Callback, android.os.Handler);
+    method @Deprecated public void removeGpsStatusListener(android.location.GpsStatus.Listener);
+    method @Deprecated public void removeNmeaListener(android.location.GpsStatus.NmeaListener);
     method public void removeNmeaListener(android.location.OnNmeaMessageListener);
-    method public void removeProximityAlert(android.app.PendingIntent);
-    method public void removeTestProvider(java.lang.String);
-    method public void removeUpdates(android.location.LocationListener);
+    method @RequiresPermission(anyOf={"android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION"}, apis="..22") public void removeProximityAlert(android.app.PendingIntent);
+    method public void removeTestProvider(String);
+    method @RequiresPermission(anyOf={"android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION"}, apis="..22") public void removeUpdates(android.location.LocationListener);
     method public void removeUpdates(android.app.PendingIntent);
-    method public void requestLocationUpdates(java.lang.String, long, float, android.location.LocationListener);
-    method public void requestLocationUpdates(java.lang.String, long, float, android.location.LocationListener, android.os.Looper);
-    method public void requestLocationUpdates(long, float, android.location.Criteria, android.location.LocationListener, android.os.Looper);
-    method public void requestLocationUpdates(java.lang.String, long, float, android.app.PendingIntent);
-    method public void requestLocationUpdates(long, float, android.location.Criteria, android.app.PendingIntent);
-    method public void requestSingleUpdate(java.lang.String, android.location.LocationListener, android.os.Looper);
-    method public void requestSingleUpdate(android.location.Criteria, android.location.LocationListener, android.os.Looper);
-    method public void requestSingleUpdate(java.lang.String, android.app.PendingIntent);
-    method public void requestSingleUpdate(android.location.Criteria, android.app.PendingIntent);
-    method public boolean sendExtraCommand(java.lang.String, java.lang.String, android.os.Bundle);
-    method public void setTestProviderEnabled(java.lang.String, boolean);
-    method public void setTestProviderLocation(java.lang.String, android.location.Location);
-    method public deprecated void setTestProviderStatus(java.lang.String, int, android.os.Bundle, long);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(String, long, float, android.location.LocationListener);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(String, long, float, android.location.LocationListener, android.os.Looper);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(long, float, android.location.Criteria, android.location.LocationListener, android.os.Looper);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(String, long, float, android.app.PendingIntent);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(long, float, android.location.Criteria, android.app.PendingIntent);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(String, android.location.LocationListener, android.os.Looper);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(android.location.Criteria, android.location.LocationListener, android.os.Looper);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(String, android.app.PendingIntent);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(android.location.Criteria, android.app.PendingIntent);
+    method public boolean sendExtraCommand(String, String, android.os.Bundle);
+    method public void setTestProviderEnabled(String, boolean);
+    method public void setTestProviderLocation(String, android.location.Location);
+    method @Deprecated public void setTestProviderStatus(String, int, android.os.Bundle, long);
     method public void unregisterGnssMeasurementsCallback(android.location.GnssMeasurementsEvent.Callback);
     method public void unregisterGnssNavigationMessageCallback(android.location.GnssNavigationMessage.Callback);
     method public void unregisterGnssStatusCallback(android.location.GnssStatus.Callback);
-    field public static final java.lang.String GPS_PROVIDER = "gps";
-    field public static final java.lang.String KEY_LOCATION_CHANGED = "location";
-    field public static final java.lang.String KEY_PROVIDER_ENABLED = "providerEnabled";
-    field public static final java.lang.String KEY_PROXIMITY_ENTERING = "entering";
-    field public static final deprecated java.lang.String KEY_STATUS_CHANGED = "status";
-    field public static final java.lang.String MODE_CHANGED_ACTION = "android.location.MODE_CHANGED";
-    field public static final java.lang.String NETWORK_PROVIDER = "network";
-    field public static final java.lang.String PASSIVE_PROVIDER = "passive";
-    field public static final java.lang.String PROVIDERS_CHANGED_ACTION = "android.location.PROVIDERS_CHANGED";
+    field public static final String GPS_PROVIDER = "gps";
+    field public static final String KEY_LOCATION_CHANGED = "location";
+    field public static final String KEY_PROVIDER_ENABLED = "providerEnabled";
+    field public static final String KEY_PROXIMITY_ENTERING = "entering";
+    field @Deprecated public static final String KEY_STATUS_CHANGED = "status";
+    field public static final String MODE_CHANGED_ACTION = "android.location.MODE_CHANGED";
+    field public static final String NETWORK_PROVIDER = "network";
+    field public static final String PASSIVE_PROVIDER = "passive";
+    field public static final String PROVIDERS_CHANGED_ACTION = "android.location.PROVIDERS_CHANGED";
   }
 
   public class LocationProvider {
     method public int getAccuracy();
-    method public java.lang.String getName();
+    method public String getName();
     method public int getPowerRequirement();
     method public boolean hasMonetaryCost();
     method public boolean meetsCriteria(android.location.Criteria);
@@ -23008,27 +22879,27 @@
     method public boolean supportsAltitude();
     method public boolean supportsBearing();
     method public boolean supportsSpeed();
-    field public static final deprecated int AVAILABLE = 2; // 0x2
-    field public static final deprecated int OUT_OF_SERVICE = 0; // 0x0
-    field public static final deprecated int TEMPORARILY_UNAVAILABLE = 1; // 0x1
+    field @Deprecated public static final int AVAILABLE = 2; // 0x2
+    field @Deprecated public static final int OUT_OF_SERVICE = 0; // 0x0
+    field @Deprecated public static final int TEMPORARILY_UNAVAILABLE = 1; // 0x1
   }
 
-  public abstract interface OnNmeaMessageListener {
-    method public abstract void onNmeaMessage(java.lang.String, long);
+  public interface OnNmeaMessageListener {
+    method public void onNmeaMessage(String, long);
   }
 
   public abstract class SettingInjectorService extends android.app.Service {
-    ctor public SettingInjectorService(java.lang.String);
+    ctor public SettingInjectorService(String);
     method public final android.os.IBinder onBind(android.content.Intent);
     method protected abstract boolean onGetEnabled();
-    method protected abstract java.lang.String onGetSummary();
+    method protected abstract String onGetSummary();
     method public final void onStart(android.content.Intent, int);
     method public final int onStartCommand(android.content.Intent, int, int);
     method public static final void refreshSettings(android.content.Context);
-    field public static final java.lang.String ACTION_INJECTED_SETTING_CHANGED = "android.location.InjectedSettingChanged";
-    field public static final java.lang.String ACTION_SERVICE_INTENT = "android.location.SettingInjectorService";
-    field public static final java.lang.String ATTRIBUTES_NAME = "injected-location-setting";
-    field public static final java.lang.String META_DATA_NAME = "android.location.SettingInjectorService";
+    field public static final String ACTION_INJECTED_SETTING_CHANGED = "android.location.InjectedSettingChanged";
+    field public static final String ACTION_SERVICE_INTENT = "android.location.SettingInjectorService";
+    field public static final String ATTRIBUTES_NAME = "injected-location-setting";
+    field public static final String META_DATA_NAME = "android.location.SettingInjectorService";
   }
 
 }
@@ -23036,9 +22907,9 @@
 package android.media {
 
   public class AsyncPlayer {
-    ctor public AsyncPlayer(java.lang.String);
-    method public deprecated void play(android.content.Context, android.net.Uri, boolean, int);
-    method public void play(android.content.Context, android.net.Uri, boolean, android.media.AudioAttributes) throws java.lang.IllegalArgumentException;
+    ctor public AsyncPlayer(String);
+    method @Deprecated public void play(android.content.Context, android.net.Uri, boolean, int);
+    method public void play(@NonNull android.content.Context, @NonNull android.net.Uri, boolean, @NonNull android.media.AudioAttributes) throws java.lang.IllegalArgumentException;
     method public void stop();
   }
 
@@ -23057,7 +22928,7 @@
     field public static final android.os.Parcelable.Creator<android.media.AudioAttributes> CREATOR;
     field public static final int FLAG_AUDIBILITY_ENFORCED = 1; // 0x1
     field public static final int FLAG_HW_AV_SYNC = 16; // 0x10
-    field public static final deprecated int FLAG_LOW_LATENCY = 256; // 0x100
+    field @Deprecated public static final int FLAG_LOW_LATENCY = 256; // 0x100
     field public static final int USAGE_ALARM = 4; // 0x4
     field public static final int USAGE_ASSISTANCE_ACCESSIBILITY = 11; // 0xb
     field public static final int USAGE_ASSISTANCE_NAVIGATION_GUIDANCE = 12; // 0xc
@@ -23093,14 +22964,14 @@
   }
 
   public final class AudioDeviceInfo {
-    method public java.lang.String getAddress();
-    method public int[] getChannelCounts();
-    method public int[] getChannelIndexMasks();
-    method public int[] getChannelMasks();
-    method public int[] getEncodings();
+    method @NonNull public String getAddress();
+    method @NonNull public int[] getChannelCounts();
+    method @NonNull public int[] getChannelIndexMasks();
+    method @NonNull public int[] getChannelMasks();
+    method @NonNull public int[] getEncodings();
     method public int getId();
-    method public java.lang.CharSequence getProductName();
-    method public int[] getSampleRates();
+    method public CharSequence getProductName();
+    method @NonNull public int[] getSampleRates();
     method public int getType();
     method public boolean isSink();
     method public boolean isSource();
@@ -23132,22 +23003,22 @@
 
   public final class AudioFocusRequest {
     method public boolean acceptsDelayedFocusGain();
-    method public android.media.AudioAttributes getAudioAttributes();
+    method @NonNull public android.media.AudioAttributes getAudioAttributes();
     method public int getFocusGain();
     method public boolean willPauseWhenDucked();
   }
 
   public static final class AudioFocusRequest.Builder {
     ctor public AudioFocusRequest.Builder(int);
-    ctor public AudioFocusRequest.Builder(android.media.AudioFocusRequest);
+    ctor public AudioFocusRequest.Builder(@NonNull android.media.AudioFocusRequest);
     method public android.media.AudioFocusRequest build();
-    method public android.media.AudioFocusRequest.Builder setAcceptsDelayedFocusGain(boolean);
-    method public android.media.AudioFocusRequest.Builder setAudioAttributes(android.media.AudioAttributes);
-    method public android.media.AudioFocusRequest.Builder setFocusGain(int);
-    method public android.media.AudioFocusRequest.Builder setForceDucking(boolean);
-    method public android.media.AudioFocusRequest.Builder setOnAudioFocusChangeListener(android.media.AudioManager.OnAudioFocusChangeListener);
-    method public android.media.AudioFocusRequest.Builder setOnAudioFocusChangeListener(android.media.AudioManager.OnAudioFocusChangeListener, android.os.Handler);
-    method public android.media.AudioFocusRequest.Builder setWillPauseWhenDucked(boolean);
+    method @NonNull public android.media.AudioFocusRequest.Builder setAcceptsDelayedFocusGain(boolean);
+    method @NonNull public android.media.AudioFocusRequest.Builder setAudioAttributes(@NonNull android.media.AudioAttributes);
+    method @NonNull public android.media.AudioFocusRequest.Builder setFocusGain(int);
+    method @NonNull public android.media.AudioFocusRequest.Builder setForceDucking(boolean);
+    method @NonNull public android.media.AudioFocusRequest.Builder setOnAudioFocusChangeListener(@NonNull android.media.AudioManager.OnAudioFocusChangeListener);
+    method @NonNull public android.media.AudioFocusRequest.Builder setOnAudioFocusChangeListener(@NonNull android.media.AudioManager.OnAudioFocusChangeListener, @NonNull android.os.Handler);
+    method @NonNull public android.media.AudioFocusRequest.Builder setWillPauseWhenDucked(boolean);
   }
 
   public final class AudioFormat implements android.os.Parcelable {
@@ -23156,13 +23027,13 @@
     method public int getChannelIndexMask();
     method public int getChannelMask();
     method public int getEncoding();
-    method public int getFrameSizeInBytes();
+    method @IntRange(from=1) public int getFrameSizeInBytes();
     method public int getSampleRate();
     method public void writeToParcel(android.os.Parcel, int);
-    field public static final deprecated int CHANNEL_CONFIGURATION_DEFAULT = 1; // 0x1
-    field public static final deprecated int CHANNEL_CONFIGURATION_INVALID = 0; // 0x0
-    field public static final deprecated int CHANNEL_CONFIGURATION_MONO = 2; // 0x2
-    field public static final deprecated int CHANNEL_CONFIGURATION_STEREO = 3; // 0x3
+    field @Deprecated public static final int CHANNEL_CONFIGURATION_DEFAULT = 1; // 0x1
+    field @Deprecated public static final int CHANNEL_CONFIGURATION_INVALID = 0; // 0x0
+    field @Deprecated public static final int CHANNEL_CONFIGURATION_MONO = 2; // 0x2
+    field @Deprecated public static final int CHANNEL_CONFIGURATION_STEREO = 3; // 0x3
     field public static final int CHANNEL_INVALID = 0; // 0x0
     field public static final int CHANNEL_IN_BACK = 32; // 0x20
     field public static final int CHANNEL_IN_BACK_PROCESSED = 512; // 0x200
@@ -23182,7 +23053,7 @@
     field public static final int CHANNEL_IN_Y_AXIS = 4096; // 0x1000
     field public static final int CHANNEL_IN_Z_AXIS = 8192; // 0x2000
     field public static final int CHANNEL_OUT_5POINT1 = 252; // 0xfc
-    field public static final deprecated int CHANNEL_OUT_7POINT1 = 1020; // 0x3fc
+    field @Deprecated public static final int CHANNEL_OUT_7POINT1 = 1020; // 0x3fc
     field public static final int CHANNEL_OUT_7POINT1_SURROUND = 6396; // 0x18fc
     field public static final int CHANNEL_OUT_BACK_CENTER = 1024; // 0x400
     field public static final int CHANNEL_OUT_BACK_LEFT = 64; // 0x40
@@ -23228,87 +23099,87 @@
     ctor public AudioFormat.Builder();
     ctor public AudioFormat.Builder(android.media.AudioFormat);
     method public android.media.AudioFormat build();
-    method public android.media.AudioFormat.Builder setChannelIndexMask(int);
-    method public android.media.AudioFormat.Builder setChannelMask(int);
+    method @NonNull public android.media.AudioFormat.Builder setChannelIndexMask(int);
+    method @NonNull public android.media.AudioFormat.Builder setChannelMask(int);
     method public android.media.AudioFormat.Builder setEncoding(int) throws java.lang.IllegalArgumentException;
     method public android.media.AudioFormat.Builder setSampleRate(int) throws java.lang.IllegalArgumentException;
   }
 
   public class AudioManager {
-    method public deprecated int abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener);
-    method public int abandonAudioFocusRequest(android.media.AudioFocusRequest);
+    method @Deprecated public int abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener);
+    method public int abandonAudioFocusRequest(@NonNull android.media.AudioFocusRequest);
     method public void adjustStreamVolume(int, int, int);
     method public void adjustSuggestedStreamVolume(int, int, int);
     method public void adjustVolume(int, int);
     method public void dispatchMediaKeyEvent(android.view.KeyEvent);
     method public int generateAudioSessionId();
-    method public java.util.List<android.media.AudioPlaybackConfiguration> getActivePlaybackConfigurations();
-    method public java.util.List<android.media.AudioRecordingConfiguration> getActiveRecordingConfigurations();
+    method @NonNull public java.util.List<android.media.AudioPlaybackConfiguration> getActivePlaybackConfigurations();
+    method @NonNull public java.util.List<android.media.AudioRecordingConfiguration> getActiveRecordingConfigurations();
     method public android.media.AudioDeviceInfo[] getDevices(int);
     method public java.util.List<android.media.MicrophoneInfo> getMicrophones() throws java.io.IOException;
     method public int getMode();
-    method public java.lang.String getParameters(java.lang.String);
-    method public java.lang.String getProperty(java.lang.String);
+    method public String getParameters(String);
+    method public String getProperty(String);
     method public int getRingerMode();
-    method public deprecated int getRouting(int);
+    method @Deprecated public int getRouting(int);
     method public int getStreamMaxVolume(int);
     method public int getStreamMinVolume(int);
     method public int getStreamVolume(int);
     method public float getStreamVolumeDb(int, int, int);
-    method public deprecated int getVibrateSetting(int);
-    method public deprecated boolean isBluetoothA2dpOn();
+    method @Deprecated public int getVibrateSetting(int);
+    method @Deprecated public boolean isBluetoothA2dpOn();
     method public boolean isBluetoothScoAvailableOffCall();
     method public boolean isBluetoothScoOn();
     method public static boolean isHapticPlaybackSupported();
     method public boolean isMicrophoneMute();
     method public boolean isMusicActive();
-    method public static boolean isOffloadedPlaybackSupported(android.media.AudioFormat);
+    method public static boolean isOffloadedPlaybackSupported(@NonNull android.media.AudioFormat);
     method public boolean isSpeakerphoneOn();
     method public boolean isStreamMute(int);
     method public boolean isVolumeFixed();
-    method public deprecated boolean isWiredHeadsetOn();
+    method @Deprecated public boolean isWiredHeadsetOn();
     method public void loadSoundEffects();
     method public void playSoundEffect(int);
     method public void playSoundEffect(int, float);
     method public void registerAudioDeviceCallback(android.media.AudioDeviceCallback, android.os.Handler);
-    method public void registerAudioPlaybackCallback(android.media.AudioManager.AudioPlaybackCallback, android.os.Handler);
-    method public void registerAudioRecordingCallback(android.media.AudioManager.AudioRecordingCallback, android.os.Handler);
-    method public deprecated void registerMediaButtonEventReceiver(android.content.ComponentName);
-    method public deprecated void registerMediaButtonEventReceiver(android.app.PendingIntent);
-    method public deprecated void registerRemoteControlClient(android.media.RemoteControlClient);
-    method public deprecated boolean registerRemoteController(android.media.RemoteController);
-    method public deprecated int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, int, int);
-    method public int requestAudioFocus(android.media.AudioFocusRequest);
-    method public deprecated void setBluetoothA2dpOn(boolean);
+    method public void registerAudioPlaybackCallback(@NonNull android.media.AudioManager.AudioPlaybackCallback, android.os.Handler);
+    method public void registerAudioRecordingCallback(@NonNull android.media.AudioManager.AudioRecordingCallback, android.os.Handler);
+    method @Deprecated public void registerMediaButtonEventReceiver(android.content.ComponentName);
+    method @Deprecated public void registerMediaButtonEventReceiver(android.app.PendingIntent);
+    method @Deprecated public void registerRemoteControlClient(android.media.RemoteControlClient);
+    method @Deprecated public boolean registerRemoteController(android.media.RemoteController);
+    method @Deprecated public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, int, int);
+    method public int requestAudioFocus(@NonNull android.media.AudioFocusRequest);
+    method @Deprecated public void setBluetoothA2dpOn(boolean);
     method public void setBluetoothScoOn(boolean);
     method public void setMicrophoneMute(boolean);
     method public void setMode(int);
-    method public void setParameters(java.lang.String);
+    method public void setParameters(String);
     method public void setRingerMode(int);
-    method public deprecated void setRouting(int, int, int);
+    method @Deprecated public void setRouting(int, int, int);
     method public void setSpeakerphoneOn(boolean);
-    method public deprecated void setStreamMute(int, boolean);
-    method public deprecated void setStreamSolo(int, boolean);
+    method @Deprecated public void setStreamMute(int, boolean);
+    method @Deprecated public void setStreamSolo(int, boolean);
     method public void setStreamVolume(int, int, int);
-    method public deprecated void setVibrateSetting(int, int);
-    method public deprecated void setWiredHeadsetOn(boolean);
-    method public deprecated boolean shouldVibrate(int);
+    method @Deprecated public void setVibrateSetting(int, int);
+    method @Deprecated public void setWiredHeadsetOn(boolean);
+    method @Deprecated public boolean shouldVibrate(int);
     method public void startBluetoothSco();
     method public void stopBluetoothSco();
     method public void unloadSoundEffects();
     method public void unregisterAudioDeviceCallback(android.media.AudioDeviceCallback);
-    method public void unregisterAudioPlaybackCallback(android.media.AudioManager.AudioPlaybackCallback);
-    method public void unregisterAudioRecordingCallback(android.media.AudioManager.AudioRecordingCallback);
-    method public deprecated void unregisterMediaButtonEventReceiver(android.content.ComponentName);
-    method public deprecated void unregisterMediaButtonEventReceiver(android.app.PendingIntent);
-    method public deprecated void unregisterRemoteControlClient(android.media.RemoteControlClient);
-    method public deprecated void unregisterRemoteController(android.media.RemoteController);
-    field public static final java.lang.String ACTION_AUDIO_BECOMING_NOISY = "android.media.AUDIO_BECOMING_NOISY";
-    field public static final java.lang.String ACTION_HDMI_AUDIO_PLUG = "android.media.action.HDMI_AUDIO_PLUG";
-    field public static final java.lang.String ACTION_HEADSET_PLUG = "android.intent.action.HEADSET_PLUG";
-    field public static final java.lang.String ACTION_MICROPHONE_MUTE_CHANGED = "android.media.action.MICROPHONE_MUTE_CHANGED";
-    field public static final deprecated java.lang.String ACTION_SCO_AUDIO_STATE_CHANGED = "android.media.SCO_AUDIO_STATE_CHANGED";
-    field public static final java.lang.String ACTION_SCO_AUDIO_STATE_UPDATED = "android.media.ACTION_SCO_AUDIO_STATE_UPDATED";
+    method public void unregisterAudioPlaybackCallback(@NonNull android.media.AudioManager.AudioPlaybackCallback);
+    method public void unregisterAudioRecordingCallback(@NonNull android.media.AudioManager.AudioRecordingCallback);
+    method @Deprecated public void unregisterMediaButtonEventReceiver(android.content.ComponentName);
+    method @Deprecated public void unregisterMediaButtonEventReceiver(android.app.PendingIntent);
+    method @Deprecated public void unregisterRemoteControlClient(android.media.RemoteControlClient);
+    method @Deprecated public void unregisterRemoteController(android.media.RemoteController);
+    field public static final String ACTION_AUDIO_BECOMING_NOISY = "android.media.AUDIO_BECOMING_NOISY";
+    field public static final String ACTION_HDMI_AUDIO_PLUG = "android.media.action.HDMI_AUDIO_PLUG";
+    field public static final String ACTION_HEADSET_PLUG = "android.intent.action.HEADSET_PLUG";
+    field public static final String ACTION_MICROPHONE_MUTE_CHANGED = "android.media.action.MICROPHONE_MUTE_CHANGED";
+    field @Deprecated public static final String ACTION_SCO_AUDIO_STATE_CHANGED = "android.media.SCO_AUDIO_STATE_CHANGED";
+    field public static final String ACTION_SCO_AUDIO_STATE_UPDATED = "android.media.ACTION_SCO_AUDIO_STATE_UPDATED";
     field public static final int ADJUST_LOWER = -1; // 0xffffffff
     field public static final int ADJUST_MUTE = -100; // 0xffffff9c
     field public static final int ADJUST_RAISE = 1; // 0x1
@@ -23329,14 +23200,14 @@
     field public static final int AUDIO_SESSION_ID_GENERATE = 0; // 0x0
     field public static final int ERROR = -1; // 0xffffffff
     field public static final int ERROR_DEAD_OBJECT = -6; // 0xfffffffa
-    field public static final java.lang.String EXTRA_AUDIO_PLUG_STATE = "android.media.extra.AUDIO_PLUG_STATE";
-    field public static final java.lang.String EXTRA_ENCODINGS = "android.media.extra.ENCODINGS";
-    field public static final java.lang.String EXTRA_MAX_CHANNEL_COUNT = "android.media.extra.MAX_CHANNEL_COUNT";
-    field public static final java.lang.String EXTRA_RINGER_MODE = "android.media.EXTRA_RINGER_MODE";
-    field public static final java.lang.String EXTRA_SCO_AUDIO_PREVIOUS_STATE = "android.media.extra.SCO_AUDIO_PREVIOUS_STATE";
-    field public static final java.lang.String EXTRA_SCO_AUDIO_STATE = "android.media.extra.SCO_AUDIO_STATE";
-    field public static final deprecated java.lang.String EXTRA_VIBRATE_SETTING = "android.media.EXTRA_VIBRATE_SETTING";
-    field public static final deprecated java.lang.String EXTRA_VIBRATE_TYPE = "android.media.EXTRA_VIBRATE_TYPE";
+    field public static final String EXTRA_AUDIO_PLUG_STATE = "android.media.extra.AUDIO_PLUG_STATE";
+    field public static final String EXTRA_ENCODINGS = "android.media.extra.ENCODINGS";
+    field public static final String EXTRA_MAX_CHANNEL_COUNT = "android.media.extra.MAX_CHANNEL_COUNT";
+    field public static final String EXTRA_RINGER_MODE = "android.media.EXTRA_RINGER_MODE";
+    field public static final String EXTRA_SCO_AUDIO_PREVIOUS_STATE = "android.media.extra.SCO_AUDIO_PREVIOUS_STATE";
+    field public static final String EXTRA_SCO_AUDIO_STATE = "android.media.extra.SCO_AUDIO_STATE";
+    field @Deprecated public static final String EXTRA_VIBRATE_SETTING = "android.media.EXTRA_VIBRATE_SETTING";
+    field @Deprecated public static final String EXTRA_VIBRATE_TYPE = "android.media.EXTRA_VIBRATE_TYPE";
     field public static final int FLAG_ALLOW_RINGER_MODES = 2; // 0x2
     field public static final int FLAG_PLAY_SOUND = 4; // 0x4
     field public static final int FLAG_REMOVE_SOUND_AND_VIBRATE = 8; // 0x8
@@ -23361,23 +23232,23 @@
     field public static final int MODE_IN_COMMUNICATION = 3; // 0x3
     field public static final int MODE_NORMAL = 0; // 0x0
     field public static final int MODE_RINGTONE = 1; // 0x1
-    field public static final deprecated int NUM_STREAMS = 5; // 0x5
-    field public static final java.lang.String PROPERTY_OUTPUT_FRAMES_PER_BUFFER = "android.media.property.OUTPUT_FRAMES_PER_BUFFER";
-    field public static final java.lang.String PROPERTY_OUTPUT_SAMPLE_RATE = "android.media.property.OUTPUT_SAMPLE_RATE";
-    field public static final java.lang.String PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED = "android.media.property.SUPPORT_AUDIO_SOURCE_UNPROCESSED";
-    field public static final java.lang.String PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND = "android.media.property.SUPPORT_MIC_NEAR_ULTRASOUND";
-    field public static final java.lang.String PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND = "android.media.property.SUPPORT_SPEAKER_NEAR_ULTRASOUND";
-    field public static final java.lang.String RINGER_MODE_CHANGED_ACTION = "android.media.RINGER_MODE_CHANGED";
+    field @Deprecated public static final int NUM_STREAMS = 5; // 0x5
+    field public static final String PROPERTY_OUTPUT_FRAMES_PER_BUFFER = "android.media.property.OUTPUT_FRAMES_PER_BUFFER";
+    field public static final String PROPERTY_OUTPUT_SAMPLE_RATE = "android.media.property.OUTPUT_SAMPLE_RATE";
+    field public static final String PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED = "android.media.property.SUPPORT_AUDIO_SOURCE_UNPROCESSED";
+    field public static final String PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND = "android.media.property.SUPPORT_MIC_NEAR_ULTRASOUND";
+    field public static final String PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND = "android.media.property.SUPPORT_SPEAKER_NEAR_ULTRASOUND";
+    field public static final String RINGER_MODE_CHANGED_ACTION = "android.media.RINGER_MODE_CHANGED";
     field public static final int RINGER_MODE_NORMAL = 2; // 0x2
     field public static final int RINGER_MODE_SILENT = 0; // 0x0
     field public static final int RINGER_MODE_VIBRATE = 1; // 0x1
-    field public static final deprecated int ROUTE_ALL = -1; // 0xffffffff
-    field public static final deprecated int ROUTE_BLUETOOTH = 4; // 0x4
-    field public static final deprecated int ROUTE_BLUETOOTH_A2DP = 16; // 0x10
-    field public static final deprecated int ROUTE_BLUETOOTH_SCO = 4; // 0x4
-    field public static final deprecated int ROUTE_EARPIECE = 1; // 0x1
-    field public static final deprecated int ROUTE_HEADSET = 8; // 0x8
-    field public static final deprecated int ROUTE_SPEAKER = 2; // 0x2
+    field @Deprecated public static final int ROUTE_ALL = -1; // 0xffffffff
+    field @Deprecated public static final int ROUTE_BLUETOOTH = 4; // 0x4
+    field @Deprecated public static final int ROUTE_BLUETOOTH_A2DP = 16; // 0x10
+    field @Deprecated public static final int ROUTE_BLUETOOTH_SCO = 4; // 0x4
+    field @Deprecated public static final int ROUTE_EARPIECE = 1; // 0x1
+    field @Deprecated public static final int ROUTE_HEADSET = 8; // 0x8
+    field @Deprecated public static final int ROUTE_SPEAKER = 2; // 0x2
     field public static final int SCO_AUDIO_STATE_CONNECTED = 1; // 0x1
     field public static final int SCO_AUDIO_STATE_CONNECTING = 2; // 0x2
     field public static final int SCO_AUDIO_STATE_DISCONNECTED = 0; // 0x0
@@ -23391,26 +23262,26 @@
     field public static final int STREAM_SYSTEM = 1; // 0x1
     field public static final int STREAM_VOICE_CALL = 0; // 0x0
     field public static final int USE_DEFAULT_STREAM_TYPE = -2147483648; // 0x80000000
-    field public static final deprecated java.lang.String VIBRATE_SETTING_CHANGED_ACTION = "android.media.VIBRATE_SETTING_CHANGED";
-    field public static final deprecated int VIBRATE_SETTING_OFF = 0; // 0x0
-    field public static final deprecated int VIBRATE_SETTING_ON = 1; // 0x1
-    field public static final deprecated int VIBRATE_SETTING_ONLY_SILENT = 2; // 0x2
-    field public static final deprecated int VIBRATE_TYPE_NOTIFICATION = 1; // 0x1
-    field public static final deprecated int VIBRATE_TYPE_RINGER = 0; // 0x0
+    field @Deprecated public static final String VIBRATE_SETTING_CHANGED_ACTION = "android.media.VIBRATE_SETTING_CHANGED";
+    field @Deprecated public static final int VIBRATE_SETTING_OFF = 0; // 0x0
+    field @Deprecated public static final int VIBRATE_SETTING_ON = 1; // 0x1
+    field @Deprecated public static final int VIBRATE_SETTING_ONLY_SILENT = 2; // 0x2
+    field @Deprecated public static final int VIBRATE_TYPE_NOTIFICATION = 1; // 0x1
+    field @Deprecated public static final int VIBRATE_TYPE_RINGER = 0; // 0x0
   }
 
-  public static abstract class AudioManager.AudioPlaybackCallback {
+  public abstract static class AudioManager.AudioPlaybackCallback {
     ctor public AudioManager.AudioPlaybackCallback();
     method public void onPlaybackConfigChanged(java.util.List<android.media.AudioPlaybackConfiguration>);
   }
 
-  public static abstract class AudioManager.AudioRecordingCallback {
+  public abstract static class AudioManager.AudioRecordingCallback {
     ctor public AudioManager.AudioRecordingCallback();
     method public void onRecordingConfigChanged(java.util.List<android.media.AudioRecordingConfiguration>);
   }
 
-  public static abstract interface AudioManager.OnAudioFocusChangeListener {
-    method public abstract void onAudioFocusChange(int);
+  public static interface AudioManager.OnAudioFocusChangeListener {
+    method public void onAudioFocusChange(int);
   }
 
   public final class AudioPlaybackConfiguration implements android.os.Parcelable {
@@ -23421,7 +23292,7 @@
   }
 
   public final class AudioPresentation {
-    method public java.util.Map<java.util.Locale, java.lang.String> getLabels();
+    method public java.util.Map<java.util.Locale,java.lang.String> getLabels();
     method public java.util.Locale getLocale();
     method public int getMasteringIndication();
     method public int getPresentationId();
@@ -23438,30 +23309,30 @@
 
   public static class AudioPresentation.Builder {
     ctor public AudioPresentation.Builder(int);
-    method public android.media.AudioPresentation build();
-    method public android.media.AudioPresentation.Builder setHasAudioDescription(boolean);
-    method public android.media.AudioPresentation.Builder setHasDialogueEnhancement(boolean);
-    method public android.media.AudioPresentation.Builder setHasSpokenSubtitles(boolean);
-    method public android.media.AudioPresentation.Builder setLabels(java.util.Map<android.icu.util.ULocale, java.lang.String>);
-    method public android.media.AudioPresentation.Builder setLocale(android.icu.util.ULocale);
-    method public android.media.AudioPresentation.Builder setMasteringIndication(int);
-    method public android.media.AudioPresentation.Builder setProgramId(int);
+    method @NonNull public android.media.AudioPresentation build();
+    method @NonNull public android.media.AudioPresentation.Builder setHasAudioDescription(boolean);
+    method @NonNull public android.media.AudioPresentation.Builder setHasDialogueEnhancement(boolean);
+    method @NonNull public android.media.AudioPresentation.Builder setHasSpokenSubtitles(boolean);
+    method @NonNull public android.media.AudioPresentation.Builder setLabels(@NonNull java.util.Map<android.icu.util.ULocale,java.lang.String>);
+    method @NonNull public android.media.AudioPresentation.Builder setLocale(android.icu.util.ULocale);
+    method @NonNull public android.media.AudioPresentation.Builder setMasteringIndication(int);
+    method @NonNull public android.media.AudioPresentation.Builder setProgramId(int);
   }
 
   public class AudioRecord implements android.media.AudioRecordingMonitor android.media.AudioRouting {
     ctor public AudioRecord(int, int, int, int, int) throws java.lang.IllegalArgumentException;
     method public void addOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener, android.os.Handler);
-    method public deprecated void addOnRoutingChangedListener(android.media.AudioRecord.OnRoutingChangedListener, android.os.Handler);
+    method @Deprecated public void addOnRoutingChangedListener(android.media.AudioRecord.OnRoutingChangedListener, android.os.Handler);
     method protected void finalize();
     method public java.util.List<android.media.MicrophoneInfo> getActiveMicrophones() throws java.io.IOException;
-    method public android.media.AudioRecordingConfiguration getActiveRecordingConfiguration();
+    method @Nullable public android.media.AudioRecordingConfiguration getActiveRecordingConfiguration();
     method public int getAudioFormat();
     method public int getAudioSessionId();
     method public int getAudioSource();
     method public int getBufferSizeInFrames();
     method public int getChannelConfiguration();
     method public int getChannelCount();
-    method public android.media.AudioFormat getFormat();
+    method @NonNull public android.media.AudioFormat getFormat();
     method public android.os.PersistableBundle getMetrics();
     method public static int getMinBufferSize(int, int, int);
     method public int getNotificationMarkerPosition();
@@ -23471,18 +23342,18 @@
     method public android.media.AudioDeviceInfo getRoutedDevice();
     method public int getSampleRate();
     method public int getState();
-    method public int getTimestamp(android.media.AudioTimestamp, int);
-    method public int read(byte[], int, int);
-    method public int read(byte[], int, int, int);
-    method public int read(short[], int, int);
-    method public int read(short[], int, int, int);
-    method public int read(float[], int, int, int);
-    method public int read(java.nio.ByteBuffer, int);
-    method public int read(java.nio.ByteBuffer, int, int);
-    method public void registerAudioRecordingCallback(java.util.concurrent.Executor, android.media.AudioManager.AudioRecordingCallback);
+    method public int getTimestamp(@NonNull android.media.AudioTimestamp, int);
+    method public int read(@NonNull byte[], int, int);
+    method public int read(@NonNull byte[], int, int, int);
+    method public int read(@NonNull short[], int, int);
+    method public int read(@NonNull short[], int, int, int);
+    method public int read(@NonNull float[], int, int, int);
+    method public int read(@NonNull java.nio.ByteBuffer, int);
+    method public int read(@NonNull java.nio.ByteBuffer, int, int);
+    method public void registerAudioRecordingCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.AudioRecordingCallback);
     method public void release();
     method public void removeOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener);
-    method public deprecated void removeOnRoutingChangedListener(android.media.AudioRecord.OnRoutingChangedListener);
+    method @Deprecated public void removeOnRoutingChangedListener(android.media.AudioRecord.OnRoutingChangedListener);
     method public int setNotificationMarkerPosition(int);
     method public int setPositionNotificationPeriod(int);
     method public boolean setPreferredDevice(android.media.AudioDeviceInfo);
@@ -23491,7 +23362,7 @@
     method public void startRecording() throws java.lang.IllegalStateException;
     method public void startRecording(android.media.MediaSyncEvent) throws java.lang.IllegalStateException;
     method public void stop() throws java.lang.IllegalStateException;
-    method public void unregisterAudioRecordingCallback(android.media.AudioManager.AudioRecordingCallback);
+    method public void unregisterAudioRecordingCallback(@NonNull android.media.AudioManager.AudioRecordingCallback);
     field public static final int ERROR = -1; // 0xffffffff
     field public static final int ERROR_BAD_VALUE = -2; // 0xfffffffe
     field public static final int ERROR_DEAD_OBJECT = -6; // 0xfffffffa
@@ -23508,27 +23379,27 @@
   public static class AudioRecord.Builder {
     ctor public AudioRecord.Builder();
     method public android.media.AudioRecord build() throws java.lang.UnsupportedOperationException;
-    method public android.media.AudioRecord.Builder setAudioFormat(android.media.AudioFormat) throws java.lang.IllegalArgumentException;
+    method public android.media.AudioRecord.Builder setAudioFormat(@NonNull android.media.AudioFormat) throws java.lang.IllegalArgumentException;
     method public android.media.AudioRecord.Builder setAudioSource(int) throws java.lang.IllegalArgumentException;
     method public android.media.AudioRecord.Builder setBufferSizeInBytes(int) throws java.lang.IllegalArgumentException;
   }
 
   public static final class AudioRecord.MetricsConstants {
-    field public static final java.lang.String CHANNELS = "android.media.audiorecord.channels";
-    field public static final java.lang.String ENCODING = "android.media.audiorecord.encoding";
-    field public static final java.lang.String LATENCY = "android.media.audiorecord.latency";
-    field public static final java.lang.String SAMPLERATE = "android.media.audiorecord.samplerate";
-    field public static final java.lang.String SOURCE = "android.media.audiorecord.source";
+    field public static final String CHANNELS = "android.media.audiorecord.channels";
+    field public static final String ENCODING = "android.media.audiorecord.encoding";
+    field public static final String LATENCY = "android.media.audiorecord.latency";
+    field public static final String SAMPLERATE = "android.media.audiorecord.samplerate";
+    field public static final String SOURCE = "android.media.audiorecord.source";
   }
 
-  public static abstract interface AudioRecord.OnRecordPositionUpdateListener {
-    method public abstract void onMarkerReached(android.media.AudioRecord);
-    method public abstract void onPeriodicNotification(android.media.AudioRecord);
+  public static interface AudioRecord.OnRecordPositionUpdateListener {
+    method public void onMarkerReached(android.media.AudioRecord);
+    method public void onPeriodicNotification(android.media.AudioRecord);
   }
 
-  public static abstract deprecated interface AudioRecord.OnRoutingChangedListener implements android.media.AudioRouting.OnRoutingChangedListener {
-    method public abstract void onRoutingChanged(android.media.AudioRecord);
-    method public default void onRoutingChanged(android.media.AudioRouting);
+  @Deprecated public static interface AudioRecord.OnRoutingChangedListener extends android.media.AudioRouting.OnRoutingChangedListener {
+    method @Deprecated public void onRoutingChanged(android.media.AudioRecord);
+    method @Deprecated public default void onRoutingChanged(android.media.AudioRouting);
   }
 
   public final class AudioRecordingConfiguration implements android.os.Parcelable {
@@ -23537,31 +23408,31 @@
     method public int getAudioSource();
     method public int getClientAudioSessionId();
     method public int getClientAudioSource();
-    method public java.util.List<android.media.audiofx.AudioEffect.Descriptor> getClientEffects();
+    method @NonNull public java.util.List<android.media.audiofx.AudioEffect.Descriptor> getClientEffects();
     method public android.media.AudioFormat getClientFormat();
-    method public java.util.List<android.media.audiofx.AudioEffect.Descriptor> getEffects();
+    method @NonNull public java.util.List<android.media.audiofx.AudioEffect.Descriptor> getEffects();
     method public android.media.AudioFormat getFormat();
     method public boolean isClientSilenced();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.AudioRecordingConfiguration> CREATOR;
   }
 
-  public abstract interface AudioRecordingMonitor {
-    method public abstract android.media.AudioRecordingConfiguration getActiveRecordingConfiguration();
-    method public abstract void registerAudioRecordingCallback(java.util.concurrent.Executor, android.media.AudioManager.AudioRecordingCallback);
-    method public abstract void unregisterAudioRecordingCallback(android.media.AudioManager.AudioRecordingCallback);
+  public interface AudioRecordingMonitor {
+    method @Nullable public android.media.AudioRecordingConfiguration getActiveRecordingConfiguration();
+    method public void registerAudioRecordingCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.AudioRecordingCallback);
+    method public void unregisterAudioRecordingCallback(@NonNull android.media.AudioManager.AudioRecordingCallback);
   }
 
-  public abstract interface AudioRouting {
-    method public abstract void addOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener, android.os.Handler);
-    method public abstract android.media.AudioDeviceInfo getPreferredDevice();
-    method public abstract android.media.AudioDeviceInfo getRoutedDevice();
-    method public abstract void removeOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener);
-    method public abstract boolean setPreferredDevice(android.media.AudioDeviceInfo);
+  public interface AudioRouting {
+    method public void addOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener, android.os.Handler);
+    method public android.media.AudioDeviceInfo getPreferredDevice();
+    method public android.media.AudioDeviceInfo getRoutedDevice();
+    method public void removeOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener);
+    method public boolean setPreferredDevice(android.media.AudioDeviceInfo);
   }
 
-  public static abstract interface AudioRouting.OnRoutingChangedListener {
-    method public abstract void onRoutingChanged(android.media.AudioRouting);
+  public static interface AudioRouting.OnRoutingChangedListener {
+    method public void onRoutingChanged(android.media.AudioRouting);
   }
 
   public final class AudioTimestamp {
@@ -23573,34 +23444,35 @@
   }
 
   public class AudioTrack implements android.media.AudioRouting android.media.VolumeAutomation {
-    ctor public deprecated AudioTrack(int, int, int, int, int, int) throws java.lang.IllegalArgumentException;
-    ctor public deprecated AudioTrack(int, int, int, int, int, int, int) throws java.lang.IllegalArgumentException;
+    ctor @Deprecated public AudioTrack(int, int, int, int, int, int) throws java.lang.IllegalArgumentException;
+    ctor @Deprecated public AudioTrack(int, int, int, int, int, int, int) throws java.lang.IllegalArgumentException;
     ctor public AudioTrack(android.media.AudioAttributes, android.media.AudioFormat, int, int, int) throws java.lang.IllegalArgumentException;
     method public void addOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener, android.os.Handler);
-    method public deprecated void addOnRoutingChangedListener(android.media.AudioTrack.OnRoutingChangedListener, android.os.Handler);
+    method @Deprecated public void addOnRoutingChangedListener(android.media.AudioTrack.OnRoutingChangedListener, android.os.Handler);
     method public int attachAuxEffect(int);
-    method public android.media.VolumeShaper createVolumeShaper(android.media.VolumeShaper.Configuration);
+    method @NonNull public android.media.VolumeShaper createVolumeShaper(@NonNull android.media.VolumeShaper.Configuration);
+    method public static void deprecateStreamTypeForPlayback(int, String, String) throws java.lang.IllegalArgumentException;
     method protected void finalize();
     method public void flush();
-    method public android.media.AudioAttributes getAudioAttributes();
+    method @NonNull public android.media.AudioAttributes getAudioAttributes();
     method public int getAudioFormat();
     method public int getAudioSessionId();
     method public int getBufferCapacityInFrames();
     method public int getBufferSizeInFrames();
     method public int getChannelConfiguration();
     method public int getChannelCount();
-    method public android.media.AudioFormat getFormat();
+    method @NonNull public android.media.AudioFormat getFormat();
     method public static float getMaxVolume();
     method public android.os.PersistableBundle getMetrics();
     method public static int getMinBufferSize(int, int, int);
     method public static float getMinVolume();
-    method protected deprecated int getNativeFrameCount();
+    method @Deprecated protected int getNativeFrameCount();
     method public static int getNativeOutputSampleRate(int);
     method public int getNotificationMarkerPosition();
     method public int getPerformanceMode();
     method public int getPlayState();
     method public int getPlaybackHeadPosition();
-    method public android.media.PlaybackParams getPlaybackParams();
+    method @NonNull public android.media.PlaybackParams getPlaybackParams();
     method public int getPlaybackRate();
     method public int getPositionNotificationPeriod();
     method public android.media.AudioDeviceInfo getPreferredDevice();
@@ -23610,38 +23482,38 @@
     method public int getStreamType();
     method public boolean getTimestamp(android.media.AudioTimestamp);
     method public int getUnderrunCount();
-    method public static boolean isDirectPlaybackSupported(android.media.AudioFormat, android.media.AudioAttributes);
+    method public static boolean isDirectPlaybackSupported(@NonNull android.media.AudioFormat, @NonNull android.media.AudioAttributes);
     method public void pause() throws java.lang.IllegalStateException;
     method public void play() throws java.lang.IllegalStateException;
-    method public void registerStreamEventCallback(java.util.concurrent.Executor, android.media.AudioTrack.StreamEventCallback);
+    method public void registerStreamEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioTrack.StreamEventCallback);
     method public void release();
     method public int reloadStaticData();
     method public void removeOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener);
-    method public deprecated void removeOnRoutingChangedListener(android.media.AudioTrack.OnRoutingChangedListener);
+    method @Deprecated public void removeOnRoutingChangedListener(android.media.AudioTrack.OnRoutingChangedListener);
     method public int setAuxEffectSendLevel(float);
     method public int setBufferSizeInFrames(int);
     method public int setLoopPoints(int, int, int);
     method public int setNotificationMarkerPosition(int);
     method public int setPlaybackHeadPosition(int);
-    method public void setPlaybackParams(android.media.PlaybackParams);
+    method public void setPlaybackParams(@NonNull android.media.PlaybackParams);
     method public void setPlaybackPositionUpdateListener(android.media.AudioTrack.OnPlaybackPositionUpdateListener);
     method public void setPlaybackPositionUpdateListener(android.media.AudioTrack.OnPlaybackPositionUpdateListener, android.os.Handler);
     method public int setPlaybackRate(int);
     method public int setPositionNotificationPeriod(int);
     method public boolean setPreferredDevice(android.media.AudioDeviceInfo);
-    method public int setPresentation(android.media.AudioPresentation);
-    method protected deprecated void setState(int);
-    method public deprecated int setStereoVolume(float, float);
+    method public int setPresentation(@NonNull android.media.AudioPresentation);
+    method @Deprecated protected void setState(int);
+    method @Deprecated public int setStereoVolume(float, float);
     method public int setVolume(float);
     method public void stop() throws java.lang.IllegalStateException;
-    method public void unregisterStreamEventCallback(android.media.AudioTrack.StreamEventCallback);
-    method public int write(byte[], int, int);
-    method public int write(byte[], int, int, int);
-    method public int write(short[], int, int);
-    method public int write(short[], int, int, int);
-    method public int write(float[], int, int, int);
-    method public int write(java.nio.ByteBuffer, int, int);
-    method public int write(java.nio.ByteBuffer, int, int, long);
+    method public void unregisterStreamEventCallback(@NonNull android.media.AudioTrack.StreamEventCallback);
+    method public int write(@NonNull byte[], int, int);
+    method public int write(@NonNull byte[], int, int, int);
+    method public int write(@NonNull short[], int, int);
+    method public int write(@NonNull short[], int, int, int);
+    method public int write(@NonNull float[], int, int, int);
+    method public int write(@NonNull java.nio.ByteBuffer, int, int);
+    method public int write(@NonNull java.nio.ByteBuffer, int, int, long);
     field public static final int ERROR = -1; // 0xffffffff
     field public static final int ERROR_BAD_VALUE = -2; // 0xfffffffe
     field public static final int ERROR_DEAD_OBJECT = -6; // 0xfffffffa
@@ -23664,35 +23536,35 @@
 
   public static class AudioTrack.Builder {
     ctor public AudioTrack.Builder();
-    method public android.media.AudioTrack build() throws java.lang.UnsupportedOperationException;
-    method public android.media.AudioTrack.Builder setAudioAttributes(android.media.AudioAttributes) throws java.lang.IllegalArgumentException;
-    method public android.media.AudioTrack.Builder setAudioFormat(android.media.AudioFormat) throws java.lang.IllegalArgumentException;
-    method public android.media.AudioTrack.Builder setBufferSizeInBytes(int) throws java.lang.IllegalArgumentException;
-    method public android.media.AudioTrack.Builder setOffloadedPlayback(boolean);
-    method public android.media.AudioTrack.Builder setPerformanceMode(int);
-    method public android.media.AudioTrack.Builder setSessionId(int) throws java.lang.IllegalArgumentException;
-    method public android.media.AudioTrack.Builder setTransferMode(int) throws java.lang.IllegalArgumentException;
+    method @NonNull public android.media.AudioTrack build() throws java.lang.UnsupportedOperationException;
+    method @NonNull public android.media.AudioTrack.Builder setAudioAttributes(@NonNull android.media.AudioAttributes) throws java.lang.IllegalArgumentException;
+    method @NonNull public android.media.AudioTrack.Builder setAudioFormat(@NonNull android.media.AudioFormat) throws java.lang.IllegalArgumentException;
+    method @NonNull public android.media.AudioTrack.Builder setBufferSizeInBytes(int) throws java.lang.IllegalArgumentException;
+    method @NonNull public android.media.AudioTrack.Builder setOffloadedPlayback(boolean);
+    method @NonNull public android.media.AudioTrack.Builder setPerformanceMode(int);
+    method @NonNull public android.media.AudioTrack.Builder setSessionId(int) throws java.lang.IllegalArgumentException;
+    method @NonNull public android.media.AudioTrack.Builder setTransferMode(int) throws java.lang.IllegalArgumentException;
   }
 
   public static final class AudioTrack.MetricsConstants {
-    field public static final java.lang.String CHANNELMASK = "android.media.audiorecord.channelmask";
-    field public static final java.lang.String CONTENTTYPE = "android.media.audiotrack.type";
-    field public static final java.lang.String SAMPLERATE = "android.media.audiorecord.samplerate";
-    field public static final java.lang.String STREAMTYPE = "android.media.audiotrack.streamtype";
-    field public static final java.lang.String USAGE = "android.media.audiotrack.usage";
+    field public static final String CHANNELMASK = "android.media.audiorecord.channelmask";
+    field public static final String CONTENTTYPE = "android.media.audiotrack.type";
+    field public static final String SAMPLERATE = "android.media.audiorecord.samplerate";
+    field public static final String STREAMTYPE = "android.media.audiotrack.streamtype";
+    field public static final String USAGE = "android.media.audiotrack.usage";
   }
 
-  public static abstract interface AudioTrack.OnPlaybackPositionUpdateListener {
-    method public abstract void onMarkerReached(android.media.AudioTrack);
-    method public abstract void onPeriodicNotification(android.media.AudioTrack);
+  public static interface AudioTrack.OnPlaybackPositionUpdateListener {
+    method public void onMarkerReached(android.media.AudioTrack);
+    method public void onPeriodicNotification(android.media.AudioTrack);
   }
 
-  public static abstract deprecated interface AudioTrack.OnRoutingChangedListener implements android.media.AudioRouting.OnRoutingChangedListener {
-    method public abstract void onRoutingChanged(android.media.AudioTrack);
-    method public default void onRoutingChanged(android.media.AudioRouting);
+  @Deprecated public static interface AudioTrack.OnRoutingChangedListener extends android.media.AudioRouting.OnRoutingChangedListener {
+    method @Deprecated public void onRoutingChanged(android.media.AudioTrack);
+    method @Deprecated public default void onRoutingChanged(android.media.AudioRouting);
   }
 
-  public static abstract class AudioTrack.StreamEventCallback {
+  public abstract static class AudioTrack.StreamEventCallback {
     ctor public AudioTrack.StreamEventCallback();
     method public void onDataRequest(android.media.AudioTrack, int);
     method public void onPresentationEnded(android.media.AudioTrack);
@@ -23703,11 +23575,11 @@
     method public android.media.DataSourceCallback getDataSourceCallback();
   }
 
-  public static class CallbackDataSourceDesc.Builder extends android.media.DataSourceDesc.BuilderBase {
+  public static class CallbackDataSourceDesc.Builder extends android.media.DataSourceDesc.BuilderBase<android.media.CallbackDataSourceDesc.Builder> {
     ctor public CallbackDataSourceDesc.Builder();
     ctor public CallbackDataSourceDesc.Builder(android.media.CallbackDataSourceDesc);
-    method public android.media.CallbackDataSourceDesc build();
-    method public android.media.CallbackDataSourceDesc.Builder setDataSource(android.media.DataSourceCallback);
+    method @NonNull public android.media.CallbackDataSourceDesc build();
+    method @NonNull public android.media.CallbackDataSourceDesc.Builder setDataSource(@NonNull android.media.DataSourceCallback);
   }
 
   public class CamcorderProfile {
@@ -23770,20 +23642,20 @@
 
   public class DataSourceDesc {
     method public long getEndPosition();
-    method public java.lang.String getMediaId();
+    method public String getMediaId();
     method public long getStartPosition();
     field public static final long LONG_MAX_TIME_MS = 576460752303423L; // 0x20c49ba5e353fL
     field public static final long POSITION_UNKNOWN = 576460752303423L; // 0x20c49ba5e353fL
   }
 
   protected static class DataSourceDesc.BuilderBase<T extends android.media.DataSourceDesc.BuilderBase> {
-    method public T setEndPosition(long);
-    method public T setMediaId(java.lang.String);
-    method public T setStartPosition(long);
+    method @NonNull public T setEndPosition(long);
+    method @NonNull public T setMediaId(String);
+    method @NonNull public T setStartPosition(long);
   }
 
   public final class DeniedByServerException extends android.media.MediaDrmException {
-    ctor public DeniedByServerException(java.lang.String);
+    ctor public DeniedByServerException(String);
   }
 
   public abstract class DrmInitData {
@@ -23792,29 +23664,29 @@
 
   public static final class DrmInitData.SchemeInitData {
     field public final byte[] data;
-    field public final java.lang.String mimeType;
+    field public final String mimeType;
   }
 
   public class ExifInterface {
-    ctor public ExifInterface(java.io.File) throws java.io.IOException;
-    ctor public ExifInterface(java.lang.String) throws java.io.IOException;
-    ctor public ExifInterface(java.io.FileDescriptor) throws java.io.IOException;
-    ctor public ExifInterface(java.io.InputStream) throws java.io.IOException;
+    ctor public ExifInterface(@NonNull java.io.File) throws java.io.IOException;
+    ctor public ExifInterface(@NonNull String) throws java.io.IOException;
+    ctor public ExifInterface(@NonNull java.io.FileDescriptor) throws java.io.IOException;
+    ctor public ExifInterface(@NonNull java.io.InputStream) throws java.io.IOException;
     method public double getAltitude(double);
-    method public java.lang.String getAttribute(java.lang.String);
-    method public double getAttributeDouble(java.lang.String, double);
-    method public int getAttributeInt(java.lang.String, int);
-    method public long[] getAttributeRange(java.lang.String);
+    method @Nullable public String getAttribute(@NonNull String);
+    method public double getAttributeDouble(@NonNull String, double);
+    method public int getAttributeInt(@NonNull String, int);
+    method @Nullable public long[] getAttributeRange(@NonNull String);
     method public boolean getLatLong(float[]);
     method public byte[] getThumbnail();
     method public android.graphics.Bitmap getThumbnailBitmap();
     method public byte[] getThumbnailBytes();
-    method public long[] getThumbnailRange();
-    method public boolean hasAttribute(java.lang.String);
+    method @Nullable public long[] getThumbnailRange();
+    method public boolean hasAttribute(String);
     method public boolean hasThumbnail();
     method public boolean isThumbnailCompressed();
     method public void saveAttributes() throws java.io.IOException;
-    method public void setAttribute(java.lang.String, java.lang.String);
+    method public void setAttribute(@NonNull String, @Nullable String);
     field public static final int ORIENTATION_FLIP_HORIZONTAL = 2; // 0x2
     field public static final int ORIENTATION_FLIP_VERTICAL = 4; // 0x4
     field public static final int ORIENTATION_NORMAL = 1; // 0x1
@@ -23824,144 +23696,144 @@
     field public static final int ORIENTATION_TRANSPOSE = 5; // 0x5
     field public static final int ORIENTATION_TRANSVERSE = 7; // 0x7
     field public static final int ORIENTATION_UNDEFINED = 0; // 0x0
-    field public static final deprecated java.lang.String TAG_APERTURE = "FNumber";
-    field public static final java.lang.String TAG_APERTURE_VALUE = "ApertureValue";
-    field public static final java.lang.String TAG_ARTIST = "Artist";
-    field public static final java.lang.String TAG_BITS_PER_SAMPLE = "BitsPerSample";
-    field public static final java.lang.String TAG_BRIGHTNESS_VALUE = "BrightnessValue";
-    field public static final java.lang.String TAG_CFA_PATTERN = "CFAPattern";
-    field public static final java.lang.String TAG_COLOR_SPACE = "ColorSpace";
-    field public static final java.lang.String TAG_COMPONENTS_CONFIGURATION = "ComponentsConfiguration";
-    field public static final java.lang.String TAG_COMPRESSED_BITS_PER_PIXEL = "CompressedBitsPerPixel";
-    field public static final java.lang.String TAG_COMPRESSION = "Compression";
-    field public static final java.lang.String TAG_CONTRAST = "Contrast";
-    field public static final java.lang.String TAG_COPYRIGHT = "Copyright";
-    field public static final java.lang.String TAG_CUSTOM_RENDERED = "CustomRendered";
-    field public static final java.lang.String TAG_DATETIME = "DateTime";
-    field public static final java.lang.String TAG_DATETIME_DIGITIZED = "DateTimeDigitized";
-    field public static final java.lang.String TAG_DATETIME_ORIGINAL = "DateTimeOriginal";
-    field public static final java.lang.String TAG_DEFAULT_CROP_SIZE = "DefaultCropSize";
-    field public static final java.lang.String TAG_DEVICE_SETTING_DESCRIPTION = "DeviceSettingDescription";
-    field public static final java.lang.String TAG_DIGITAL_ZOOM_RATIO = "DigitalZoomRatio";
-    field public static final java.lang.String TAG_DNG_VERSION = "DNGVersion";
-    field public static final java.lang.String TAG_EXIF_VERSION = "ExifVersion";
-    field public static final java.lang.String TAG_EXPOSURE_BIAS_VALUE = "ExposureBiasValue";
-    field public static final java.lang.String TAG_EXPOSURE_INDEX = "ExposureIndex";
-    field public static final java.lang.String TAG_EXPOSURE_MODE = "ExposureMode";
-    field public static final java.lang.String TAG_EXPOSURE_PROGRAM = "ExposureProgram";
-    field public static final java.lang.String TAG_EXPOSURE_TIME = "ExposureTime";
-    field public static final java.lang.String TAG_FILE_SOURCE = "FileSource";
-    field public static final java.lang.String TAG_FLASH = "Flash";
-    field public static final java.lang.String TAG_FLASHPIX_VERSION = "FlashpixVersion";
-    field public static final java.lang.String TAG_FLASH_ENERGY = "FlashEnergy";
-    field public static final java.lang.String TAG_FOCAL_LENGTH = "FocalLength";
-    field public static final java.lang.String TAG_FOCAL_LENGTH_IN_35MM_FILM = "FocalLengthIn35mmFilm";
-    field public static final java.lang.String TAG_FOCAL_PLANE_RESOLUTION_UNIT = "FocalPlaneResolutionUnit";
-    field public static final java.lang.String TAG_FOCAL_PLANE_X_RESOLUTION = "FocalPlaneXResolution";
-    field public static final java.lang.String TAG_FOCAL_PLANE_Y_RESOLUTION = "FocalPlaneYResolution";
-    field public static final java.lang.String TAG_F_NUMBER = "FNumber";
-    field public static final java.lang.String TAG_GAIN_CONTROL = "GainControl";
-    field public static final java.lang.String TAG_GPS_ALTITUDE = "GPSAltitude";
-    field public static final java.lang.String TAG_GPS_ALTITUDE_REF = "GPSAltitudeRef";
-    field public static final java.lang.String TAG_GPS_AREA_INFORMATION = "GPSAreaInformation";
-    field public static final java.lang.String TAG_GPS_DATESTAMP = "GPSDateStamp";
-    field public static final java.lang.String TAG_GPS_DEST_BEARING = "GPSDestBearing";
-    field public static final java.lang.String TAG_GPS_DEST_BEARING_REF = "GPSDestBearingRef";
-    field public static final java.lang.String TAG_GPS_DEST_DISTANCE = "GPSDestDistance";
-    field public static final java.lang.String TAG_GPS_DEST_DISTANCE_REF = "GPSDestDistanceRef";
-    field public static final java.lang.String TAG_GPS_DEST_LATITUDE = "GPSDestLatitude";
-    field public static final java.lang.String TAG_GPS_DEST_LATITUDE_REF = "GPSDestLatitudeRef";
-    field public static final java.lang.String TAG_GPS_DEST_LONGITUDE = "GPSDestLongitude";
-    field public static final java.lang.String TAG_GPS_DEST_LONGITUDE_REF = "GPSDestLongitudeRef";
-    field public static final java.lang.String TAG_GPS_DIFFERENTIAL = "GPSDifferential";
-    field public static final java.lang.String TAG_GPS_DOP = "GPSDOP";
-    field public static final java.lang.String TAG_GPS_IMG_DIRECTION = "GPSImgDirection";
-    field public static final java.lang.String TAG_GPS_IMG_DIRECTION_REF = "GPSImgDirectionRef";
-    field public static final java.lang.String TAG_GPS_LATITUDE = "GPSLatitude";
-    field public static final java.lang.String TAG_GPS_LATITUDE_REF = "GPSLatitudeRef";
-    field public static final java.lang.String TAG_GPS_LONGITUDE = "GPSLongitude";
-    field public static final java.lang.String TAG_GPS_LONGITUDE_REF = "GPSLongitudeRef";
-    field public static final java.lang.String TAG_GPS_MAP_DATUM = "GPSMapDatum";
-    field public static final java.lang.String TAG_GPS_MEASURE_MODE = "GPSMeasureMode";
-    field public static final java.lang.String TAG_GPS_PROCESSING_METHOD = "GPSProcessingMethod";
-    field public static final java.lang.String TAG_GPS_SATELLITES = "GPSSatellites";
-    field public static final java.lang.String TAG_GPS_SPEED = "GPSSpeed";
-    field public static final java.lang.String TAG_GPS_SPEED_REF = "GPSSpeedRef";
-    field public static final java.lang.String TAG_GPS_STATUS = "GPSStatus";
-    field public static final java.lang.String TAG_GPS_TIMESTAMP = "GPSTimeStamp";
-    field public static final java.lang.String TAG_GPS_TRACK = "GPSTrack";
-    field public static final java.lang.String TAG_GPS_TRACK_REF = "GPSTrackRef";
-    field public static final java.lang.String TAG_GPS_VERSION_ID = "GPSVersionID";
-    field public static final java.lang.String TAG_IMAGE_DESCRIPTION = "ImageDescription";
-    field public static final java.lang.String TAG_IMAGE_LENGTH = "ImageLength";
-    field public static final java.lang.String TAG_IMAGE_UNIQUE_ID = "ImageUniqueID";
-    field public static final java.lang.String TAG_IMAGE_WIDTH = "ImageWidth";
-    field public static final java.lang.String TAG_INTEROPERABILITY_INDEX = "InteroperabilityIndex";
-    field public static final deprecated java.lang.String TAG_ISO = "ISOSpeedRatings";
-    field public static final java.lang.String TAG_ISO_SPEED_RATINGS = "ISOSpeedRatings";
-    field public static final java.lang.String TAG_JPEG_INTERCHANGE_FORMAT = "JPEGInterchangeFormat";
-    field public static final java.lang.String TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = "JPEGInterchangeFormatLength";
-    field public static final java.lang.String TAG_LIGHT_SOURCE = "LightSource";
-    field public static final java.lang.String TAG_MAKE = "Make";
-    field public static final java.lang.String TAG_MAKER_NOTE = "MakerNote";
-    field public static final java.lang.String TAG_MAX_APERTURE_VALUE = "MaxApertureValue";
-    field public static final java.lang.String TAG_METERING_MODE = "MeteringMode";
-    field public static final java.lang.String TAG_MODEL = "Model";
-    field public static final java.lang.String TAG_NEW_SUBFILE_TYPE = "NewSubfileType";
-    field public static final java.lang.String TAG_OECF = "OECF";
-    field public static final java.lang.String TAG_ORF_ASPECT_FRAME = "AspectFrame";
-    field public static final java.lang.String TAG_ORF_PREVIEW_IMAGE_LENGTH = "PreviewImageLength";
-    field public static final java.lang.String TAG_ORF_PREVIEW_IMAGE_START = "PreviewImageStart";
-    field public static final java.lang.String TAG_ORF_THUMBNAIL_IMAGE = "ThumbnailImage";
-    field public static final java.lang.String TAG_ORIENTATION = "Orientation";
-    field public static final java.lang.String TAG_PHOTOMETRIC_INTERPRETATION = "PhotometricInterpretation";
-    field public static final java.lang.String TAG_PIXEL_X_DIMENSION = "PixelXDimension";
-    field public static final java.lang.String TAG_PIXEL_Y_DIMENSION = "PixelYDimension";
-    field public static final java.lang.String TAG_PLANAR_CONFIGURATION = "PlanarConfiguration";
-    field public static final java.lang.String TAG_PRIMARY_CHROMATICITIES = "PrimaryChromaticities";
-    field public static final java.lang.String TAG_REFERENCE_BLACK_WHITE = "ReferenceBlackWhite";
-    field public static final java.lang.String TAG_RELATED_SOUND_FILE = "RelatedSoundFile";
-    field public static final java.lang.String TAG_RESOLUTION_UNIT = "ResolutionUnit";
-    field public static final java.lang.String TAG_ROWS_PER_STRIP = "RowsPerStrip";
-    field public static final java.lang.String TAG_RW2_ISO = "ISO";
-    field public static final java.lang.String TAG_RW2_JPG_FROM_RAW = "JpgFromRaw";
-    field public static final java.lang.String TAG_RW2_SENSOR_BOTTOM_BORDER = "SensorBottomBorder";
-    field public static final java.lang.String TAG_RW2_SENSOR_LEFT_BORDER = "SensorLeftBorder";
-    field public static final java.lang.String TAG_RW2_SENSOR_RIGHT_BORDER = "SensorRightBorder";
-    field public static final java.lang.String TAG_RW2_SENSOR_TOP_BORDER = "SensorTopBorder";
-    field public static final java.lang.String TAG_SAMPLES_PER_PIXEL = "SamplesPerPixel";
-    field public static final java.lang.String TAG_SATURATION = "Saturation";
-    field public static final java.lang.String TAG_SCENE_CAPTURE_TYPE = "SceneCaptureType";
-    field public static final java.lang.String TAG_SCENE_TYPE = "SceneType";
-    field public static final java.lang.String TAG_SENSING_METHOD = "SensingMethod";
-    field public static final java.lang.String TAG_SHARPNESS = "Sharpness";
-    field public static final java.lang.String TAG_SHUTTER_SPEED_VALUE = "ShutterSpeedValue";
-    field public static final java.lang.String TAG_SOFTWARE = "Software";
-    field public static final java.lang.String TAG_SPATIAL_FREQUENCY_RESPONSE = "SpatialFrequencyResponse";
-    field public static final java.lang.String TAG_SPECTRAL_SENSITIVITY = "SpectralSensitivity";
-    field public static final java.lang.String TAG_STRIP_BYTE_COUNTS = "StripByteCounts";
-    field public static final java.lang.String TAG_STRIP_OFFSETS = "StripOffsets";
-    field public static final java.lang.String TAG_SUBFILE_TYPE = "SubfileType";
-    field public static final java.lang.String TAG_SUBJECT_AREA = "SubjectArea";
-    field public static final java.lang.String TAG_SUBJECT_DISTANCE = "SubjectDistance";
-    field public static final java.lang.String TAG_SUBJECT_DISTANCE_RANGE = "SubjectDistanceRange";
-    field public static final java.lang.String TAG_SUBJECT_LOCATION = "SubjectLocation";
-    field public static final java.lang.String TAG_SUBSEC_TIME = "SubSecTime";
-    field public static final deprecated java.lang.String TAG_SUBSEC_TIME_DIG = "SubSecTimeDigitized";
-    field public static final java.lang.String TAG_SUBSEC_TIME_DIGITIZED = "SubSecTimeDigitized";
-    field public static final deprecated java.lang.String TAG_SUBSEC_TIME_ORIG = "SubSecTimeOriginal";
-    field public static final java.lang.String TAG_SUBSEC_TIME_ORIGINAL = "SubSecTimeOriginal";
-    field public static final java.lang.String TAG_THUMBNAIL_IMAGE_LENGTH = "ThumbnailImageLength";
-    field public static final java.lang.String TAG_THUMBNAIL_IMAGE_WIDTH = "ThumbnailImageWidth";
-    field public static final java.lang.String TAG_TRANSFER_FUNCTION = "TransferFunction";
-    field public static final java.lang.String TAG_USER_COMMENT = "UserComment";
-    field public static final java.lang.String TAG_WHITE_BALANCE = "WhiteBalance";
-    field public static final java.lang.String TAG_WHITE_POINT = "WhitePoint";
-    field public static final java.lang.String TAG_X_RESOLUTION = "XResolution";
-    field public static final java.lang.String TAG_Y_CB_CR_COEFFICIENTS = "YCbCrCoefficients";
-    field public static final java.lang.String TAG_Y_CB_CR_POSITIONING = "YCbCrPositioning";
-    field public static final java.lang.String TAG_Y_CB_CR_SUB_SAMPLING = "YCbCrSubSampling";
-    field public static final java.lang.String TAG_Y_RESOLUTION = "YResolution";
+    field @Deprecated public static final String TAG_APERTURE = "FNumber";
+    field public static final String TAG_APERTURE_VALUE = "ApertureValue";
+    field public static final String TAG_ARTIST = "Artist";
+    field public static final String TAG_BITS_PER_SAMPLE = "BitsPerSample";
+    field public static final String TAG_BRIGHTNESS_VALUE = "BrightnessValue";
+    field public static final String TAG_CFA_PATTERN = "CFAPattern";
+    field public static final String TAG_COLOR_SPACE = "ColorSpace";
+    field public static final String TAG_COMPONENTS_CONFIGURATION = "ComponentsConfiguration";
+    field public static final String TAG_COMPRESSED_BITS_PER_PIXEL = "CompressedBitsPerPixel";
+    field public static final String TAG_COMPRESSION = "Compression";
+    field public static final String TAG_CONTRAST = "Contrast";
+    field public static final String TAG_COPYRIGHT = "Copyright";
+    field public static final String TAG_CUSTOM_RENDERED = "CustomRendered";
+    field public static final String TAG_DATETIME = "DateTime";
+    field public static final String TAG_DATETIME_DIGITIZED = "DateTimeDigitized";
+    field public static final String TAG_DATETIME_ORIGINAL = "DateTimeOriginal";
+    field public static final String TAG_DEFAULT_CROP_SIZE = "DefaultCropSize";
+    field public static final String TAG_DEVICE_SETTING_DESCRIPTION = "DeviceSettingDescription";
+    field public static final String TAG_DIGITAL_ZOOM_RATIO = "DigitalZoomRatio";
+    field public static final String TAG_DNG_VERSION = "DNGVersion";
+    field public static final String TAG_EXIF_VERSION = "ExifVersion";
+    field public static final String TAG_EXPOSURE_BIAS_VALUE = "ExposureBiasValue";
+    field public static final String TAG_EXPOSURE_INDEX = "ExposureIndex";
+    field public static final String TAG_EXPOSURE_MODE = "ExposureMode";
+    field public static final String TAG_EXPOSURE_PROGRAM = "ExposureProgram";
+    field public static final String TAG_EXPOSURE_TIME = "ExposureTime";
+    field public static final String TAG_FILE_SOURCE = "FileSource";
+    field public static final String TAG_FLASH = "Flash";
+    field public static final String TAG_FLASHPIX_VERSION = "FlashpixVersion";
+    field public static final String TAG_FLASH_ENERGY = "FlashEnergy";
+    field public static final String TAG_FOCAL_LENGTH = "FocalLength";
+    field public static final String TAG_FOCAL_LENGTH_IN_35MM_FILM = "FocalLengthIn35mmFilm";
+    field public static final String TAG_FOCAL_PLANE_RESOLUTION_UNIT = "FocalPlaneResolutionUnit";
+    field public static final String TAG_FOCAL_PLANE_X_RESOLUTION = "FocalPlaneXResolution";
+    field public static final String TAG_FOCAL_PLANE_Y_RESOLUTION = "FocalPlaneYResolution";
+    field public static final String TAG_F_NUMBER = "FNumber";
+    field public static final String TAG_GAIN_CONTROL = "GainControl";
+    field public static final String TAG_GPS_ALTITUDE = "GPSAltitude";
+    field public static final String TAG_GPS_ALTITUDE_REF = "GPSAltitudeRef";
+    field public static final String TAG_GPS_AREA_INFORMATION = "GPSAreaInformation";
+    field public static final String TAG_GPS_DATESTAMP = "GPSDateStamp";
+    field public static final String TAG_GPS_DEST_BEARING = "GPSDestBearing";
+    field public static final String TAG_GPS_DEST_BEARING_REF = "GPSDestBearingRef";
+    field public static final String TAG_GPS_DEST_DISTANCE = "GPSDestDistance";
+    field public static final String TAG_GPS_DEST_DISTANCE_REF = "GPSDestDistanceRef";
+    field public static final String TAG_GPS_DEST_LATITUDE = "GPSDestLatitude";
+    field public static final String TAG_GPS_DEST_LATITUDE_REF = "GPSDestLatitudeRef";
+    field public static final String TAG_GPS_DEST_LONGITUDE = "GPSDestLongitude";
+    field public static final String TAG_GPS_DEST_LONGITUDE_REF = "GPSDestLongitudeRef";
+    field public static final String TAG_GPS_DIFFERENTIAL = "GPSDifferential";
+    field public static final String TAG_GPS_DOP = "GPSDOP";
+    field public static final String TAG_GPS_IMG_DIRECTION = "GPSImgDirection";
+    field public static final String TAG_GPS_IMG_DIRECTION_REF = "GPSImgDirectionRef";
+    field public static final String TAG_GPS_LATITUDE = "GPSLatitude";
+    field public static final String TAG_GPS_LATITUDE_REF = "GPSLatitudeRef";
+    field public static final String TAG_GPS_LONGITUDE = "GPSLongitude";
+    field public static final String TAG_GPS_LONGITUDE_REF = "GPSLongitudeRef";
+    field public static final String TAG_GPS_MAP_DATUM = "GPSMapDatum";
+    field public static final String TAG_GPS_MEASURE_MODE = "GPSMeasureMode";
+    field public static final String TAG_GPS_PROCESSING_METHOD = "GPSProcessingMethod";
+    field public static final String TAG_GPS_SATELLITES = "GPSSatellites";
+    field public static final String TAG_GPS_SPEED = "GPSSpeed";
+    field public static final String TAG_GPS_SPEED_REF = "GPSSpeedRef";
+    field public static final String TAG_GPS_STATUS = "GPSStatus";
+    field public static final String TAG_GPS_TIMESTAMP = "GPSTimeStamp";
+    field public static final String TAG_GPS_TRACK = "GPSTrack";
+    field public static final String TAG_GPS_TRACK_REF = "GPSTrackRef";
+    field public static final String TAG_GPS_VERSION_ID = "GPSVersionID";
+    field public static final String TAG_IMAGE_DESCRIPTION = "ImageDescription";
+    field public static final String TAG_IMAGE_LENGTH = "ImageLength";
+    field public static final String TAG_IMAGE_UNIQUE_ID = "ImageUniqueID";
+    field public static final String TAG_IMAGE_WIDTH = "ImageWidth";
+    field public static final String TAG_INTEROPERABILITY_INDEX = "InteroperabilityIndex";
+    field @Deprecated public static final String TAG_ISO = "ISOSpeedRatings";
+    field public static final String TAG_ISO_SPEED_RATINGS = "ISOSpeedRatings";
+    field public static final String TAG_JPEG_INTERCHANGE_FORMAT = "JPEGInterchangeFormat";
+    field public static final String TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = "JPEGInterchangeFormatLength";
+    field public static final String TAG_LIGHT_SOURCE = "LightSource";
+    field public static final String TAG_MAKE = "Make";
+    field public static final String TAG_MAKER_NOTE = "MakerNote";
+    field public static final String TAG_MAX_APERTURE_VALUE = "MaxApertureValue";
+    field public static final String TAG_METERING_MODE = "MeteringMode";
+    field public static final String TAG_MODEL = "Model";
+    field public static final String TAG_NEW_SUBFILE_TYPE = "NewSubfileType";
+    field public static final String TAG_OECF = "OECF";
+    field public static final String TAG_ORF_ASPECT_FRAME = "AspectFrame";
+    field public static final String TAG_ORF_PREVIEW_IMAGE_LENGTH = "PreviewImageLength";
+    field public static final String TAG_ORF_PREVIEW_IMAGE_START = "PreviewImageStart";
+    field public static final String TAG_ORF_THUMBNAIL_IMAGE = "ThumbnailImage";
+    field public static final String TAG_ORIENTATION = "Orientation";
+    field public static final String TAG_PHOTOMETRIC_INTERPRETATION = "PhotometricInterpretation";
+    field public static final String TAG_PIXEL_X_DIMENSION = "PixelXDimension";
+    field public static final String TAG_PIXEL_Y_DIMENSION = "PixelYDimension";
+    field public static final String TAG_PLANAR_CONFIGURATION = "PlanarConfiguration";
+    field public static final String TAG_PRIMARY_CHROMATICITIES = "PrimaryChromaticities";
+    field public static final String TAG_REFERENCE_BLACK_WHITE = "ReferenceBlackWhite";
+    field public static final String TAG_RELATED_SOUND_FILE = "RelatedSoundFile";
+    field public static final String TAG_RESOLUTION_UNIT = "ResolutionUnit";
+    field public static final String TAG_ROWS_PER_STRIP = "RowsPerStrip";
+    field public static final String TAG_RW2_ISO = "ISO";
+    field public static final String TAG_RW2_JPG_FROM_RAW = "JpgFromRaw";
+    field public static final String TAG_RW2_SENSOR_BOTTOM_BORDER = "SensorBottomBorder";
+    field public static final String TAG_RW2_SENSOR_LEFT_BORDER = "SensorLeftBorder";
+    field public static final String TAG_RW2_SENSOR_RIGHT_BORDER = "SensorRightBorder";
+    field public static final String TAG_RW2_SENSOR_TOP_BORDER = "SensorTopBorder";
+    field public static final String TAG_SAMPLES_PER_PIXEL = "SamplesPerPixel";
+    field public static final String TAG_SATURATION = "Saturation";
+    field public static final String TAG_SCENE_CAPTURE_TYPE = "SceneCaptureType";
+    field public static final String TAG_SCENE_TYPE = "SceneType";
+    field public static final String TAG_SENSING_METHOD = "SensingMethod";
+    field public static final String TAG_SHARPNESS = "Sharpness";
+    field public static final String TAG_SHUTTER_SPEED_VALUE = "ShutterSpeedValue";
+    field public static final String TAG_SOFTWARE = "Software";
+    field public static final String TAG_SPATIAL_FREQUENCY_RESPONSE = "SpatialFrequencyResponse";
+    field public static final String TAG_SPECTRAL_SENSITIVITY = "SpectralSensitivity";
+    field public static final String TAG_STRIP_BYTE_COUNTS = "StripByteCounts";
+    field public static final String TAG_STRIP_OFFSETS = "StripOffsets";
+    field public static final String TAG_SUBFILE_TYPE = "SubfileType";
+    field public static final String TAG_SUBJECT_AREA = "SubjectArea";
+    field public static final String TAG_SUBJECT_DISTANCE = "SubjectDistance";
+    field public static final String TAG_SUBJECT_DISTANCE_RANGE = "SubjectDistanceRange";
+    field public static final String TAG_SUBJECT_LOCATION = "SubjectLocation";
+    field public static final String TAG_SUBSEC_TIME = "SubSecTime";
+    field @Deprecated public static final String TAG_SUBSEC_TIME_DIG = "SubSecTimeDigitized";
+    field public static final String TAG_SUBSEC_TIME_DIGITIZED = "SubSecTimeDigitized";
+    field @Deprecated public static final String TAG_SUBSEC_TIME_ORIG = "SubSecTimeOriginal";
+    field public static final String TAG_SUBSEC_TIME_ORIGINAL = "SubSecTimeOriginal";
+    field public static final String TAG_THUMBNAIL_IMAGE_LENGTH = "ThumbnailImageLength";
+    field public static final String TAG_THUMBNAIL_IMAGE_WIDTH = "ThumbnailImageWidth";
+    field public static final String TAG_TRANSFER_FUNCTION = "TransferFunction";
+    field public static final String TAG_USER_COMMENT = "UserComment";
+    field public static final String TAG_WHITE_BALANCE = "WhiteBalance";
+    field public static final String TAG_WHITE_POINT = "WhitePoint";
+    field public static final String TAG_X_RESOLUTION = "XResolution";
+    field public static final String TAG_Y_CB_CR_COEFFICIENTS = "YCbCrCoefficients";
+    field public static final String TAG_Y_CB_CR_POSITIONING = "YCbCrPositioning";
+    field public static final String TAG_Y_CB_CR_SUB_SAMPLING = "YCbCrSubSampling";
+    field public static final String TAG_Y_RESOLUTION = "YResolution";
     field public static final int WHITEBALANCE_AUTO = 0; // 0x0
     field public static final int WHITEBALANCE_MANUAL = 1; // 0x1
   }
@@ -23989,19 +23861,19 @@
     field public static final long FD_LENGTH_UNKNOWN = 576460752303423487L; // 0x7ffffffffffffffL
   }
 
-  public static class FileDataSourceDesc.Builder extends android.media.DataSourceDesc.BuilderBase {
+  public static class FileDataSourceDesc.Builder extends android.media.DataSourceDesc.BuilderBase<android.media.FileDataSourceDesc.Builder> {
     ctor public FileDataSourceDesc.Builder();
     ctor public FileDataSourceDesc.Builder(android.media.FileDataSourceDesc);
-    method public android.media.FileDataSourceDesc build();
-    method public android.media.FileDataSourceDesc.Builder setDataSource(android.os.ParcelFileDescriptor);
-    method public android.media.FileDataSourceDesc.Builder setDataSource(android.os.ParcelFileDescriptor, long, long);
+    method @NonNull public android.media.FileDataSourceDesc build();
+    method @NonNull public android.media.FileDataSourceDesc.Builder setDataSource(@NonNull android.os.ParcelFileDescriptor);
+    method @NonNull public android.media.FileDataSourceDesc.Builder setDataSource(@NonNull android.os.ParcelFileDescriptor, long, long);
   }
 
   public abstract class Image implements java.lang.AutoCloseable {
     method public abstract void close();
     method public android.graphics.Rect getCropRect();
     method public abstract int getFormat();
-    method public android.hardware.HardwareBuffer getHardwareBuffer();
+    method @Nullable public android.hardware.HardwareBuffer getHardwareBuffer();
     method public abstract int getHeight();
     method public abstract android.media.Image.Plane[] getPlanes();
     method public abstract long getTimestamp();
@@ -24010,7 +23882,7 @@
     method public void setTimestamp(long);
   }
 
-  public static abstract class Image.Plane {
+  public abstract static class Image.Plane {
     method public abstract java.nio.ByteBuffer getBuffer();
     method public abstract int getPixelStride();
     method public abstract int getRowStride();
@@ -24027,11 +23899,12 @@
     method public android.view.Surface getSurface();
     method public int getWidth();
     method public static android.media.ImageReader newInstance(int, int, int, int);
+    method public static android.media.ImageReader newInstance(int, int, int, int, long);
     method public void setOnImageAvailableListener(android.media.ImageReader.OnImageAvailableListener, android.os.Handler);
   }
 
-  public static abstract interface ImageReader.OnImageAvailableListener {
-    method public abstract void onImageAvailable(android.media.ImageReader);
+  public static interface ImageReader.OnImageAvailableListener {
+    method public void onImageAvailable(android.media.ImageReader);
   }
 
   public class ImageWriter implements java.lang.AutoCloseable {
@@ -24040,22 +23913,23 @@
     method public int getFormat();
     method public int getMaxImages();
     method public static android.media.ImageWriter newInstance(android.view.Surface, int);
+    method public static android.media.ImageWriter newInstance(android.view.Surface, int, int);
     method public void queueInputImage(android.media.Image);
     method public void setOnImageReleasedListener(android.media.ImageWriter.OnImageReleasedListener, android.os.Handler);
   }
 
-  public static abstract interface ImageWriter.OnImageReleasedListener {
-    method public abstract void onImageReleased(android.media.ImageWriter);
+  public static interface ImageWriter.OnImageReleasedListener {
+    method public void onImageReleased(android.media.ImageWriter);
   }
 
   public class JetPlayer {
     method public boolean clearQueue();
-    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+    method public Object clone() throws java.lang.CloneNotSupportedException;
     method public boolean closeJetFile();
     method protected void finalize();
     method public static android.media.JetPlayer getJetPlayer();
     method public static int getMaxTracks();
-    method public boolean loadJetFile(java.lang.String);
+    method public boolean loadJetFile(String);
     method public boolean loadJetFile(android.content.res.AssetFileDescriptor);
     method public boolean pause();
     method public boolean play();
@@ -24070,11 +23944,11 @@
     method public boolean triggerClip(int);
   }
 
-  public static abstract interface JetPlayer.OnJetEventListener {
-    method public abstract void onJetEvent(android.media.JetPlayer, short, byte, byte, byte, byte);
-    method public abstract void onJetNumQueuedSegmentUpdate(android.media.JetPlayer, int);
-    method public abstract void onJetPauseUpdate(android.media.JetPlayer, int);
-    method public abstract void onJetUserIdUpdate(android.media.JetPlayer, int, int);
+  public static interface JetPlayer.OnJetEventListener {
+    method public void onJetEvent(android.media.JetPlayer, short, byte, byte, byte, byte);
+    method public void onJetNumQueuedSegmentUpdate(android.media.JetPlayer, int);
+    method public void onJetPauseUpdate(android.media.JetPlayer, int);
+    method public void onJetUserIdUpdate(android.media.JetPlayer, int, int);
   }
 
   public class MediaActionSound {
@@ -24095,29 +23969,29 @@
     method protected void finalize();
     method public static boolean isSystemIdSupported(int);
     method public android.media.MediaCas.Session openSession() throws android.media.MediaCasException;
-    method public void processEmm(byte[], int, int) throws android.media.MediaCasException;
-    method public void processEmm(byte[]) throws android.media.MediaCasException;
-    method public void provision(java.lang.String) throws android.media.MediaCasException;
-    method public void refreshEntitlements(int, byte[]) throws android.media.MediaCasException;
-    method public void sendEvent(int, int, byte[]) throws android.media.MediaCasException;
-    method public void setEventListener(android.media.MediaCas.EventListener, android.os.Handler);
-    method public void setPrivateData(byte[]) throws android.media.MediaCasException;
+    method public void processEmm(@NonNull byte[], int, int) throws android.media.MediaCasException;
+    method public void processEmm(@NonNull byte[]) throws android.media.MediaCasException;
+    method public void provision(@NonNull String) throws android.media.MediaCasException;
+    method public void refreshEntitlements(int, @Nullable byte[]) throws android.media.MediaCasException;
+    method public void sendEvent(int, int, @Nullable byte[]) throws android.media.MediaCasException;
+    method public void setEventListener(@Nullable android.media.MediaCas.EventListener, @Nullable android.os.Handler);
+    method public void setPrivateData(@NonNull byte[]) throws android.media.MediaCasException;
   }
 
-  public static abstract interface MediaCas.EventListener {
-    method public abstract void onEvent(android.media.MediaCas, int, int, byte[]);
+  public static interface MediaCas.EventListener {
+    method public void onEvent(android.media.MediaCas, int, int, @Nullable byte[]);
   }
 
   public static class MediaCas.PluginDescriptor {
-    method public java.lang.String getName();
+    method @NonNull public String getName();
     method public int getSystemId();
   }
 
   public final class MediaCas.Session implements java.lang.AutoCloseable {
     method public void close();
-    method public void processEcm(byte[], int, int) throws android.media.MediaCasException;
-    method public void processEcm(byte[]) throws android.media.MediaCasException;
-    method public void setPrivateData(byte[]) throws android.media.MediaCasException;
+    method public void processEcm(@NonNull byte[], int, int) throws android.media.MediaCasException;
+    method public void processEcm(@NonNull byte[]) throws android.media.MediaCasException;
+    method public void setPrivateData(@NonNull byte[]) throws android.media.MediaCasException;
   }
 
   public class MediaCasException extends java.lang.Exception {
@@ -24136,47 +24010,47 @@
   }
 
   public class MediaCasStateException extends java.lang.IllegalStateException {
-    method public java.lang.String getDiagnosticInfo();
+    method @NonNull public String getDiagnosticInfo();
   }
 
   public final class MediaCodec {
-    method public void configure(android.media.MediaFormat, android.view.Surface, android.media.MediaCrypto, int);
-    method public void configure(android.media.MediaFormat, android.view.Surface, int, android.media.MediaDescrambler);
-    method public static android.media.MediaCodec createByCodecName(java.lang.String) throws java.io.IOException;
-    method public static android.media.MediaCodec createDecoderByType(java.lang.String) throws java.io.IOException;
-    method public static android.media.MediaCodec createEncoderByType(java.lang.String) throws java.io.IOException;
-    method public android.view.Surface createInputSurface();
-    method public static android.view.Surface createPersistentInputSurface();
+    method public void configure(@Nullable android.media.MediaFormat, @Nullable android.view.Surface, @Nullable android.media.MediaCrypto, int);
+    method public void configure(@Nullable android.media.MediaFormat, @Nullable android.view.Surface, int, @Nullable android.media.MediaDescrambler);
+    method @NonNull public static android.media.MediaCodec createByCodecName(@NonNull String) throws java.io.IOException;
+    method @NonNull public static android.media.MediaCodec createDecoderByType(@NonNull String) throws java.io.IOException;
+    method @NonNull public static android.media.MediaCodec createEncoderByType(@NonNull String) throws java.io.IOException;
+    method @NonNull public android.view.Surface createInputSurface();
+    method @NonNull public static android.view.Surface createPersistentInputSurface();
     method public int dequeueInputBuffer(long);
-    method public int dequeueOutputBuffer(android.media.MediaCodec.BufferInfo, long);
+    method public int dequeueOutputBuffer(@NonNull android.media.MediaCodec.BufferInfo, long);
     method protected void finalize();
     method public void flush();
-    method public java.lang.String getCanonicalName();
-    method public android.media.MediaCodecInfo getCodecInfo();
-    method public java.nio.ByteBuffer getInputBuffer(int);
-    method public deprecated java.nio.ByteBuffer[] getInputBuffers();
-    method public android.media.MediaFormat getInputFormat();
-    method public android.media.Image getInputImage(int);
+    method @NonNull public String getCanonicalName();
+    method @NonNull public android.media.MediaCodecInfo getCodecInfo();
+    method @Nullable public java.nio.ByteBuffer getInputBuffer(int);
+    method @Deprecated @NonNull public java.nio.ByteBuffer[] getInputBuffers();
+    method @NonNull public android.media.MediaFormat getInputFormat();
+    method @Nullable public android.media.Image getInputImage(int);
     method public android.os.PersistableBundle getMetrics();
-    method public java.lang.String getName();
-    method public java.nio.ByteBuffer getOutputBuffer(int);
-    method public deprecated java.nio.ByteBuffer[] getOutputBuffers();
-    method public android.media.MediaFormat getOutputFormat();
-    method public android.media.MediaFormat getOutputFormat(int);
-    method public android.media.Image getOutputImage(int);
+    method @NonNull public String getName();
+    method @Nullable public java.nio.ByteBuffer getOutputBuffer(int);
+    method @Deprecated @NonNull public java.nio.ByteBuffer[] getOutputBuffers();
+    method @NonNull public android.media.MediaFormat getOutputFormat();
+    method @NonNull public android.media.MediaFormat getOutputFormat(int);
+    method @Nullable public android.media.Image getOutputImage(int);
     method public void queueInputBuffer(int, int, int, long, int) throws android.media.MediaCodec.CryptoException;
-    method public void queueSecureInputBuffer(int, int, android.media.MediaCodec.CryptoInfo, long, int) throws android.media.MediaCodec.CryptoException;
+    method public void queueSecureInputBuffer(int, int, @NonNull android.media.MediaCodec.CryptoInfo, long, int) throws android.media.MediaCodec.CryptoException;
     method public void release();
     method public void releaseOutputBuffer(int, boolean);
     method public void releaseOutputBuffer(int, long);
     method public void reset();
-    method public void setAudioPresentation(android.media.AudioPresentation);
-    method public void setCallback(android.media.MediaCodec.Callback, android.os.Handler);
-    method public void setCallback(android.media.MediaCodec.Callback);
-    method public void setInputSurface(android.view.Surface);
-    method public void setOnFrameRenderedListener(android.media.MediaCodec.OnFrameRenderedListener, android.os.Handler);
-    method public void setOutputSurface(android.view.Surface);
-    method public void setParameters(android.os.Bundle);
+    method public void setAudioPresentation(@NonNull android.media.AudioPresentation);
+    method public void setCallback(@Nullable android.media.MediaCodec.Callback, @Nullable android.os.Handler);
+    method public void setCallback(@Nullable android.media.MediaCodec.Callback);
+    method public void setInputSurface(@NonNull android.view.Surface);
+    method public void setOnFrameRenderedListener(@Nullable android.media.MediaCodec.OnFrameRenderedListener, @Nullable android.os.Handler);
+    method public void setOutputSurface(@NonNull android.view.Surface);
+    method public void setParameters(@Nullable android.os.Bundle);
     method public void setVideoScalingMode(int);
     method public void signalEndOfInputStream();
     method public void start();
@@ -24185,18 +24059,18 @@
     field public static final int BUFFER_FLAG_END_OF_STREAM = 4; // 0x4
     field public static final int BUFFER_FLAG_KEY_FRAME = 1; // 0x1
     field public static final int BUFFER_FLAG_PARTIAL_FRAME = 8; // 0x8
-    field public static final deprecated int BUFFER_FLAG_SYNC_FRAME = 1; // 0x1
+    field @Deprecated public static final int BUFFER_FLAG_SYNC_FRAME = 1; // 0x1
     field public static final int CONFIGURE_FLAG_ENCODE = 1; // 0x1
     field public static final int CRYPTO_MODE_AES_CBC = 2; // 0x2
     field public static final int CRYPTO_MODE_AES_CTR = 1; // 0x1
     field public static final int CRYPTO_MODE_UNENCRYPTED = 0; // 0x0
-    field public static final deprecated int INFO_OUTPUT_BUFFERS_CHANGED = -3; // 0xfffffffd
+    field @Deprecated public static final int INFO_OUTPUT_BUFFERS_CHANGED = -3; // 0xfffffffd
     field public static final int INFO_OUTPUT_FORMAT_CHANGED = -2; // 0xfffffffe
     field public static final int INFO_TRY_AGAIN_LATER = -1; // 0xffffffff
-    field public static final java.lang.String PARAMETER_KEY_HDR10_PLUS_INFO = "hdr10-plus-info";
-    field public static final java.lang.String PARAMETER_KEY_REQUEST_SYNC_FRAME = "request-sync";
-    field public static final java.lang.String PARAMETER_KEY_SUSPEND = "drop-input-frames";
-    field public static final java.lang.String PARAMETER_KEY_VIDEO_BITRATE = "video-bitrate";
+    field public static final String PARAMETER_KEY_HDR10_PLUS_INFO = "hdr10-plus-info";
+    field public static final String PARAMETER_KEY_REQUEST_SYNC_FRAME = "request-sync";
+    field public static final String PARAMETER_KEY_SUSPEND = "drop-input-frames";
+    field public static final String PARAMETER_KEY_VIDEO_BITRATE = "video-bitrate";
     field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT = 1; // 0x1
     field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING = 2; // 0x2
   }
@@ -24210,16 +24084,16 @@
     field public int size;
   }
 
-  public static abstract class MediaCodec.Callback {
+  public abstract static class MediaCodec.Callback {
     ctor public MediaCodec.Callback();
-    method public abstract void onError(android.media.MediaCodec, android.media.MediaCodec.CodecException);
-    method public abstract void onInputBufferAvailable(android.media.MediaCodec, int);
-    method public abstract void onOutputBufferAvailable(android.media.MediaCodec, int, android.media.MediaCodec.BufferInfo);
-    method public abstract void onOutputFormatChanged(android.media.MediaCodec, android.media.MediaFormat);
+    method public abstract void onError(@NonNull android.media.MediaCodec, @NonNull android.media.MediaCodec.CodecException);
+    method public abstract void onInputBufferAvailable(@NonNull android.media.MediaCodec, int);
+    method public abstract void onOutputBufferAvailable(@NonNull android.media.MediaCodec, int, @NonNull android.media.MediaCodec.BufferInfo);
+    method public abstract void onOutputFormatChanged(@NonNull android.media.MediaCodec, @NonNull android.media.MediaFormat);
   }
 
   public static final class MediaCodec.CodecException extends java.lang.IllegalStateException {
-    method public java.lang.String getDiagnosticInfo();
+    method @NonNull public String getDiagnosticInfo();
     method public int getErrorCode();
     method public boolean isRecoverable();
     method public boolean isTransient();
@@ -24228,7 +24102,7 @@
   }
 
   public static final class MediaCodec.CryptoException extends java.lang.RuntimeException {
-    ctor public MediaCodec.CryptoException(int, java.lang.String);
+    ctor public MediaCodec.CryptoException(int, @Nullable String);
     method public int getErrorCode();
     field public static final int ERROR_FRAME_TOO_LARGE = 8; // 0x8
     field public static final int ERROR_INSUFFICIENT_OUTPUT_PROTECTION = 4; // 0x4
@@ -24243,7 +24117,7 @@
 
   public static final class MediaCodec.CryptoInfo {
     ctor public MediaCodec.CryptoInfo();
-    method public void set(int, int[], int[], byte[], byte[], int);
+    method public void set(int, @NonNull int[], @NonNull int[], @NonNull byte[], @NonNull byte[], int);
     method public void setPattern(android.media.MediaCodec.CryptoInfo.Pattern);
     field public byte[] iv;
     field public byte[] key;
@@ -24261,27 +24135,27 @@
   }
 
   public static final class MediaCodec.MetricsConstants {
-    field public static final java.lang.String CODEC = "android.media.mediacodec.codec";
-    field public static final java.lang.String ENCODER = "android.media.mediacodec.encoder";
-    field public static final java.lang.String HEIGHT = "android.media.mediacodec.height";
-    field public static final java.lang.String MIME_TYPE = "android.media.mediacodec.mime";
-    field public static final java.lang.String MODE = "android.media.mediacodec.mode";
-    field public static final java.lang.String MODE_AUDIO = "audio";
-    field public static final java.lang.String MODE_VIDEO = "video";
-    field public static final java.lang.String ROTATION = "android.media.mediacodec.rotation";
-    field public static final java.lang.String SECURE = "android.media.mediacodec.secure";
-    field public static final java.lang.String WIDTH = "android.media.mediacodec.width";
+    field public static final String CODEC = "android.media.mediacodec.codec";
+    field public static final String ENCODER = "android.media.mediacodec.encoder";
+    field public static final String HEIGHT = "android.media.mediacodec.height";
+    field public static final String MIME_TYPE = "android.media.mediacodec.mime";
+    field public static final String MODE = "android.media.mediacodec.mode";
+    field public static final String MODE_AUDIO = "audio";
+    field public static final String MODE_VIDEO = "video";
+    field public static final String ROTATION = "android.media.mediacodec.rotation";
+    field public static final String SECURE = "android.media.mediacodec.secure";
+    field public static final String WIDTH = "android.media.mediacodec.width";
   }
 
-  public static abstract interface MediaCodec.OnFrameRenderedListener {
-    method public abstract void onFrameRendered(android.media.MediaCodec, long, long);
+  public static interface MediaCodec.OnFrameRenderedListener {
+    method public void onFrameRendered(@NonNull android.media.MediaCodec, long, long);
   }
 
   public final class MediaCodecInfo {
-    method public java.lang.String getCanonicalName();
-    method public android.media.MediaCodecInfo.CodecCapabilities getCapabilitiesForType(java.lang.String);
-    method public java.lang.String getName();
-    method public java.lang.String[] getSupportedTypes();
+    method @NonNull public String getCanonicalName();
+    method public android.media.MediaCodecInfo.CodecCapabilities getCapabilitiesForType(String);
+    method @NonNull public String getName();
+    method public String[] getSupportedTypes();
     method public boolean isAlias();
     method public boolean isEncoder();
     method public boolean isHardwareAccelerated();
@@ -24299,76 +24173,76 @@
 
   public static final class MediaCodecInfo.CodecCapabilities {
     ctor public MediaCodecInfo.CodecCapabilities();
-    method public static android.media.MediaCodecInfo.CodecCapabilities createFromProfileLevel(java.lang.String, int, int);
+    method public static android.media.MediaCodecInfo.CodecCapabilities createFromProfileLevel(String, int, int);
     method public android.media.MediaCodecInfo.AudioCapabilities getAudioCapabilities();
     method public android.media.MediaFormat getDefaultFormat();
     method public android.media.MediaCodecInfo.EncoderCapabilities getEncoderCapabilities();
     method public int getMaxSupportedInstances();
-    method public java.lang.String getMimeType();
+    method public String getMimeType();
     method public android.media.MediaCodecInfo.VideoCapabilities getVideoCapabilities();
-    method public boolean isFeatureRequired(java.lang.String);
-    method public boolean isFeatureSupported(java.lang.String);
+    method public boolean isFeatureRequired(String);
+    method public boolean isFeatureSupported(String);
     method public boolean isFormatSupported(android.media.MediaFormat);
-    field public static final deprecated int COLOR_Format12bitRGB444 = 3; // 0x3
-    field public static final deprecated int COLOR_Format16bitARGB1555 = 5; // 0x5
-    field public static final deprecated int COLOR_Format16bitARGB4444 = 4; // 0x4
-    field public static final deprecated int COLOR_Format16bitBGR565 = 7; // 0x7
+    field @Deprecated public static final int COLOR_Format12bitRGB444 = 3; // 0x3
+    field @Deprecated public static final int COLOR_Format16bitARGB1555 = 5; // 0x5
+    field @Deprecated public static final int COLOR_Format16bitARGB4444 = 4; // 0x4
+    field @Deprecated public static final int COLOR_Format16bitBGR565 = 7; // 0x7
     field public static final int COLOR_Format16bitRGB565 = 6; // 0x6
-    field public static final deprecated int COLOR_Format18BitBGR666 = 41; // 0x29
-    field public static final deprecated int COLOR_Format18bitARGB1665 = 9; // 0x9
-    field public static final deprecated int COLOR_Format18bitRGB666 = 8; // 0x8
-    field public static final deprecated int COLOR_Format19bitARGB1666 = 10; // 0xa
-    field public static final deprecated int COLOR_Format24BitABGR6666 = 43; // 0x2b
-    field public static final deprecated int COLOR_Format24BitARGB6666 = 42; // 0x2a
-    field public static final deprecated int COLOR_Format24bitARGB1887 = 13; // 0xd
+    field @Deprecated public static final int COLOR_Format18BitBGR666 = 41; // 0x29
+    field @Deprecated public static final int COLOR_Format18bitARGB1665 = 9; // 0x9
+    field @Deprecated public static final int COLOR_Format18bitRGB666 = 8; // 0x8
+    field @Deprecated public static final int COLOR_Format19bitARGB1666 = 10; // 0xa
+    field @Deprecated public static final int COLOR_Format24BitABGR6666 = 43; // 0x2b
+    field @Deprecated public static final int COLOR_Format24BitARGB6666 = 42; // 0x2a
+    field @Deprecated public static final int COLOR_Format24bitARGB1887 = 13; // 0xd
     field public static final int COLOR_Format24bitBGR888 = 12; // 0xc
-    field public static final deprecated int COLOR_Format24bitRGB888 = 11; // 0xb
-    field public static final deprecated int COLOR_Format25bitARGB1888 = 14; // 0xe
+    field @Deprecated public static final int COLOR_Format24bitRGB888 = 11; // 0xb
+    field @Deprecated public static final int COLOR_Format25bitARGB1888 = 14; // 0xe
     field public static final int COLOR_Format32bitABGR8888 = 2130747392; // 0x7f00a000
-    field public static final deprecated int COLOR_Format32bitARGB8888 = 16; // 0x10
-    field public static final deprecated int COLOR_Format32bitBGRA8888 = 15; // 0xf
-    field public static final deprecated int COLOR_Format8bitRGB332 = 2; // 0x2
-    field public static final deprecated int COLOR_FormatCbYCrY = 27; // 0x1b
-    field public static final deprecated int COLOR_FormatCrYCbY = 28; // 0x1c
+    field @Deprecated public static final int COLOR_Format32bitARGB8888 = 16; // 0x10
+    field @Deprecated public static final int COLOR_Format32bitBGRA8888 = 15; // 0xf
+    field @Deprecated public static final int COLOR_Format8bitRGB332 = 2; // 0x2
+    field @Deprecated public static final int COLOR_FormatCbYCrY = 27; // 0x1b
+    field @Deprecated public static final int COLOR_FormatCrYCbY = 28; // 0x1c
     field public static final int COLOR_FormatL16 = 36; // 0x24
-    field public static final deprecated int COLOR_FormatL2 = 33; // 0x21
-    field public static final deprecated int COLOR_FormatL24 = 37; // 0x25
-    field public static final deprecated int COLOR_FormatL32 = 38; // 0x26
-    field public static final deprecated int COLOR_FormatL4 = 34; // 0x22
+    field @Deprecated public static final int COLOR_FormatL2 = 33; // 0x21
+    field @Deprecated public static final int COLOR_FormatL24 = 37; // 0x25
+    field @Deprecated public static final int COLOR_FormatL32 = 38; // 0x26
+    field @Deprecated public static final int COLOR_FormatL4 = 34; // 0x22
     field public static final int COLOR_FormatL8 = 35; // 0x23
-    field public static final deprecated int COLOR_FormatMonochrome = 1; // 0x1
+    field @Deprecated public static final int COLOR_FormatMonochrome = 1; // 0x1
     field public static final int COLOR_FormatRGBAFlexible = 2134288520; // 0x7f36a888
     field public static final int COLOR_FormatRGBFlexible = 2134292616; // 0x7f36b888
     field public static final int COLOR_FormatRawBayer10bit = 31; // 0x1f
     field public static final int COLOR_FormatRawBayer8bit = 30; // 0x1e
     field public static final int COLOR_FormatRawBayer8bitcompressed = 32; // 0x20
     field public static final int COLOR_FormatSurface = 2130708361; // 0x7f000789
-    field public static final deprecated int COLOR_FormatYCbYCr = 25; // 0x19
-    field public static final deprecated int COLOR_FormatYCrYCb = 26; // 0x1a
-    field public static final deprecated int COLOR_FormatYUV411PackedPlanar = 18; // 0x12
-    field public static final deprecated int COLOR_FormatYUV411Planar = 17; // 0x11
+    field @Deprecated public static final int COLOR_FormatYCbYCr = 25; // 0x19
+    field @Deprecated public static final int COLOR_FormatYCrYCb = 26; // 0x1a
+    field @Deprecated public static final int COLOR_FormatYUV411PackedPlanar = 18; // 0x12
+    field @Deprecated public static final int COLOR_FormatYUV411Planar = 17; // 0x11
     field public static final int COLOR_FormatYUV420Flexible = 2135033992; // 0x7f420888
-    field public static final deprecated int COLOR_FormatYUV420PackedPlanar = 20; // 0x14
-    field public static final deprecated int COLOR_FormatYUV420PackedSemiPlanar = 39; // 0x27
-    field public static final deprecated int COLOR_FormatYUV420Planar = 19; // 0x13
-    field public static final deprecated int COLOR_FormatYUV420SemiPlanar = 21; // 0x15
+    field @Deprecated public static final int COLOR_FormatYUV420PackedPlanar = 20; // 0x14
+    field @Deprecated public static final int COLOR_FormatYUV420PackedSemiPlanar = 39; // 0x27
+    field @Deprecated public static final int COLOR_FormatYUV420Planar = 19; // 0x13
+    field @Deprecated public static final int COLOR_FormatYUV420SemiPlanar = 21; // 0x15
     field public static final int COLOR_FormatYUV422Flexible = 2135042184; // 0x7f422888
-    field public static final deprecated int COLOR_FormatYUV422PackedPlanar = 23; // 0x17
-    field public static final deprecated int COLOR_FormatYUV422PackedSemiPlanar = 40; // 0x28
-    field public static final deprecated int COLOR_FormatYUV422Planar = 22; // 0x16
-    field public static final deprecated int COLOR_FormatYUV422SemiPlanar = 24; // 0x18
+    field @Deprecated public static final int COLOR_FormatYUV422PackedPlanar = 23; // 0x17
+    field @Deprecated public static final int COLOR_FormatYUV422PackedSemiPlanar = 40; // 0x28
+    field @Deprecated public static final int COLOR_FormatYUV422Planar = 22; // 0x16
+    field @Deprecated public static final int COLOR_FormatYUV422SemiPlanar = 24; // 0x18
     field public static final int COLOR_FormatYUV444Flexible = 2135181448; // 0x7f444888
-    field public static final deprecated int COLOR_FormatYUV444Interleaved = 29; // 0x1d
-    field public static final deprecated int COLOR_QCOM_FormatYUV420SemiPlanar = 2141391872; // 0x7fa30c00
-    field public static final deprecated int COLOR_TI_FormatYUV420PackedSemiPlanar = 2130706688; // 0x7f000100
-    field public static final java.lang.String FEATURE_AdaptivePlayback = "adaptive-playback";
-    field public static final java.lang.String FEATURE_DynamicTimestamp = "dynamic-timestamp";
-    field public static final java.lang.String FEATURE_FrameParsing = "frame-parsing";
-    field public static final java.lang.String FEATURE_IntraRefresh = "intra-refresh";
-    field public static final java.lang.String FEATURE_MultipleFrames = "multiple-frames";
-    field public static final java.lang.String FEATURE_PartialFrame = "partial-frame";
-    field public static final java.lang.String FEATURE_SecurePlayback = "secure-playback";
-    field public static final java.lang.String FEATURE_TunneledPlayback = "tunneled-playback";
+    field @Deprecated public static final int COLOR_FormatYUV444Interleaved = 29; // 0x1d
+    field @Deprecated public static final int COLOR_QCOM_FormatYUV420SemiPlanar = 2141391872; // 0x7fa30c00
+    field @Deprecated public static final int COLOR_TI_FormatYUV420PackedSemiPlanar = 2130706688; // 0x7f000100
+    field public static final String FEATURE_AdaptivePlayback = "adaptive-playback";
+    field public static final String FEATURE_DynamicTimestamp = "dynamic-timestamp";
+    field public static final String FEATURE_FrameParsing = "frame-parsing";
+    field public static final String FEATURE_IntraRefresh = "intra-refresh";
+    field public static final String FEATURE_MultipleFrames = "multiple-frames";
+    field public static final String FEATURE_PartialFrame = "partial-frame";
+    field public static final String FEATURE_SecurePlayback = "secure-playback";
+    field public static final String FEATURE_TunneledPlayback = "tunneled-playback";
     field public int[] colorFormats;
     field public android.media.MediaCodecInfo.CodecProfileLevel[] profileLevels;
   }
@@ -24589,14 +24463,14 @@
 
   public static final class MediaCodecInfo.VideoCapabilities {
     method public boolean areSizeAndRateSupported(int, int, double);
-    method public android.util.Range<java.lang.Double> getAchievableFrameRatesFor(int, int);
+    method @Nullable public android.util.Range<java.lang.Double> getAchievableFrameRatesFor(int, int);
     method public android.util.Range<java.lang.Integer> getBitrateRange();
     method public int getHeightAlignment();
     method public android.util.Range<java.lang.Integer> getSupportedFrameRates();
     method public android.util.Range<java.lang.Double> getSupportedFrameRatesFor(int, int);
     method public android.util.Range<java.lang.Integer> getSupportedHeights();
     method public android.util.Range<java.lang.Integer> getSupportedHeightsFor(int);
-    method public java.util.List<android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint> getSupportedPerformancePoints();
+    method @Nullable public java.util.List<android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint> getSupportedPerformancePoints();
     method public android.util.Range<java.lang.Integer> getSupportedWidths();
     method public android.util.Range<java.lang.Integer> getSupportedWidthsFor(int);
     method public int getWidthAlignment();
@@ -24604,7 +24478,7 @@
   }
 
   public static final class MediaCodecInfo.VideoCapabilities.PerformancePoint {
-    method public boolean covers(android.media.MediaFormat);
+    method public boolean covers(@NonNull android.media.MediaFormat);
     field public static final android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint FHD_100;
     field public static final android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint FHD_120;
     field public static final android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint FHD_200;
@@ -24645,42 +24519,44 @@
 
   public final class MediaCodecList {
     ctor public MediaCodecList(int);
-    method public java.lang.String findDecoderForFormat(android.media.MediaFormat);
-    method public java.lang.String findEncoderForFormat(android.media.MediaFormat);
-    method public static deprecated int getCodecCount();
-    method public static deprecated android.media.MediaCodecInfo getCodecInfoAt(int);
+    method public String findDecoderForFormat(android.media.MediaFormat);
+    method public String findEncoderForFormat(android.media.MediaFormat);
+    method @Deprecated public static int getCodecCount();
+    method @Deprecated public static android.media.MediaCodecInfo getCodecInfoAt(int);
     method public android.media.MediaCodecInfo[] getCodecInfos();
     field public static final int ALL_CODECS = 1; // 0x1
     field public static final int REGULAR_CODECS = 0; // 0x0
   }
 
   public class MediaController2 implements java.lang.AutoCloseable {
-    ctor public MediaController2(android.content.Context, android.media.Session2Token);
-    ctor public MediaController2(android.content.Context, android.media.Session2Token, java.util.concurrent.Executor, android.media.MediaController2.ControllerCallback);
-    method public void cancelSessionCommand(java.lang.Object);
+    ctor public MediaController2(@NonNull android.content.Context, @NonNull android.media.Session2Token);
+    ctor public MediaController2(@NonNull android.content.Context, @NonNull android.media.Session2Token, @NonNull java.util.concurrent.Executor, @NonNull android.media.MediaController2.ControllerCallback);
+    method public void cancelSessionCommand(@NonNull Object);
     method public void close();
-    method public java.lang.Object sendSessionCommand(android.media.Session2Command, android.os.Bundle);
+    method public boolean isPlaybackActive();
+    method @NonNull public Object sendSessionCommand(@NonNull android.media.Session2Command, @Nullable android.os.Bundle);
   }
 
-  public static abstract class MediaController2.ControllerCallback {
+  public abstract static class MediaController2.ControllerCallback {
     ctor public MediaController2.ControllerCallback();
-    method public void onCommandResult(android.media.MediaController2, java.lang.Object, android.media.Session2Command, android.media.Session2Command.Result);
-    method public void onConnected(android.media.MediaController2, android.media.Session2CommandGroup);
-    method public void onDisconnected(android.media.MediaController2);
-    method public android.media.Session2Command.Result onSessionCommand(android.media.MediaController2, android.media.Session2Command, android.os.Bundle);
+    method public void onCommandResult(@NonNull android.media.MediaController2, @NonNull Object, @NonNull android.media.Session2Command, @NonNull android.media.Session2Command.Result);
+    method public void onConnected(@NonNull android.media.MediaController2, @NonNull android.media.Session2CommandGroup);
+    method public void onDisconnected(@NonNull android.media.MediaController2);
+    method public void onPlaybackActiveChanged(@NonNull android.media.MediaController2, boolean);
+    method @Nullable public android.media.Session2Command.Result onSessionCommand(@NonNull android.media.MediaController2, @NonNull android.media.Session2Command, @Nullable android.os.Bundle);
   }
 
   public final class MediaCrypto {
-    ctor public MediaCrypto(java.util.UUID, byte[]) throws android.media.MediaCryptoException;
+    ctor public MediaCrypto(@NonNull java.util.UUID, @NonNull byte[]) throws android.media.MediaCryptoException;
     method protected void finalize();
-    method public static boolean isCryptoSchemeSupported(java.util.UUID);
+    method public static boolean isCryptoSchemeSupported(@NonNull java.util.UUID);
     method public void release();
-    method public boolean requiresSecureDecoderComponent(java.lang.String);
-    method public void setMediaDrmSession(byte[]) throws android.media.MediaCryptoException;
+    method public boolean requiresSecureDecoderComponent(@NonNull String);
+    method public void setMediaDrmSession(@NonNull byte[]) throws android.media.MediaCryptoException;
   }
 
   public final class MediaCryptoException extends java.lang.Exception {
-    ctor public MediaCryptoException(java.lang.String);
+    ctor public MediaCryptoException(@Nullable String);
   }
 
   public abstract class MediaDataSource implements java.io.Closeable {
@@ -24692,10 +24568,10 @@
   public final class MediaDescrambler implements java.lang.AutoCloseable {
     ctor public MediaDescrambler(int) throws android.media.MediaCasException.UnsupportedCasException;
     method public void close();
-    method public int descramble(java.nio.ByteBuffer, java.nio.ByteBuffer, android.media.MediaCodec.CryptoInfo);
+    method public int descramble(@NonNull java.nio.ByteBuffer, @NonNull java.nio.ByteBuffer, @NonNull android.media.MediaCodec.CryptoInfo);
     method protected void finalize();
-    method public boolean requiresSecureDecoderComponent(java.lang.String);
-    method public void setMediaCasSession(android.media.MediaCas.Session);
+    method public boolean requiresSecureDecoderComponent(@NonNull String);
+    method public void setMediaCasSession(@NonNull android.media.MediaCas.Session);
     field public static final byte SCRAMBLE_CONTROL_EVEN_KEY = 2; // 0x2
     field public static final byte SCRAMBLE_CONTROL_ODD_KEY = 3; // 0x3
     field public static final byte SCRAMBLE_CONTROL_RESERVED = 1; // 0x1
@@ -24705,14 +24581,14 @@
 
   public class MediaDescription implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.CharSequence getDescription();
-    method public android.os.Bundle getExtras();
-    method public android.graphics.Bitmap getIconBitmap();
-    method public android.net.Uri getIconUri();
-    method public java.lang.String getMediaId();
-    method public android.net.Uri getMediaUri();
-    method public java.lang.CharSequence getSubtitle();
-    method public java.lang.CharSequence getTitle();
+    method @Nullable public CharSequence getDescription();
+    method @Nullable public android.os.Bundle getExtras();
+    method @Nullable public android.graphics.Bitmap getIconBitmap();
+    method @Nullable public android.net.Uri getIconUri();
+    method @Nullable public String getMediaId();
+    method @Nullable public android.net.Uri getMediaUri();
+    method @Nullable public CharSequence getSubtitle();
+    method @Nullable public CharSequence getTitle();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final long BT_FOLDER_TYPE_ALBUMS = 2L; // 0x2L
     field public static final long BT_FOLDER_TYPE_ARTISTS = 3L; // 0x3L
@@ -24722,67 +24598,67 @@
     field public static final long BT_FOLDER_TYPE_TITLES = 1L; // 0x1L
     field public static final long BT_FOLDER_TYPE_YEARS = 6L; // 0x6L
     field public static final android.os.Parcelable.Creator<android.media.MediaDescription> CREATOR;
-    field public static final java.lang.String EXTRA_BT_FOLDER_TYPE = "android.media.extra.BT_FOLDER_TYPE";
+    field public static final String EXTRA_BT_FOLDER_TYPE = "android.media.extra.BT_FOLDER_TYPE";
   }
 
   public static class MediaDescription.Builder {
     ctor public MediaDescription.Builder();
     method public android.media.MediaDescription build();
-    method public android.media.MediaDescription.Builder setDescription(java.lang.CharSequence);
-    method public android.media.MediaDescription.Builder setExtras(android.os.Bundle);
-    method public android.media.MediaDescription.Builder setIconBitmap(android.graphics.Bitmap);
-    method public android.media.MediaDescription.Builder setIconUri(android.net.Uri);
-    method public android.media.MediaDescription.Builder setMediaId(java.lang.String);
-    method public android.media.MediaDescription.Builder setMediaUri(android.net.Uri);
-    method public android.media.MediaDescription.Builder setSubtitle(java.lang.CharSequence);
-    method public android.media.MediaDescription.Builder setTitle(java.lang.CharSequence);
+    method public android.media.MediaDescription.Builder setDescription(@Nullable CharSequence);
+    method public android.media.MediaDescription.Builder setExtras(@Nullable android.os.Bundle);
+    method public android.media.MediaDescription.Builder setIconBitmap(@Nullable android.graphics.Bitmap);
+    method public android.media.MediaDescription.Builder setIconUri(@Nullable android.net.Uri);
+    method public android.media.MediaDescription.Builder setMediaId(@Nullable String);
+    method public android.media.MediaDescription.Builder setMediaUri(@Nullable android.net.Uri);
+    method public android.media.MediaDescription.Builder setSubtitle(@Nullable CharSequence);
+    method public android.media.MediaDescription.Builder setTitle(@Nullable CharSequence);
   }
 
   public final class MediaDrm implements java.lang.AutoCloseable {
-    ctor public MediaDrm(java.util.UUID) throws android.media.UnsupportedSchemeException;
+    ctor public MediaDrm(@NonNull java.util.UUID) throws android.media.UnsupportedSchemeException;
     method public void close();
-    method public void closeSession(byte[]);
-    method public int getConnectedHdcpLevel();
-    method public android.media.MediaDrm.CryptoSession getCryptoSession(byte[], java.lang.String, java.lang.String);
-    method public android.media.MediaDrm.KeyRequest getKeyRequest(byte[], byte[], java.lang.String, int, java.util.HashMap<java.lang.String, java.lang.String>) throws android.media.NotProvisionedException;
-    method public int getMaxHdcpLevel();
+    method public void closeSession(@NonNull byte[]);
+    method @android.media.MediaDrm.HdcpLevel public int getConnectedHdcpLevel();
+    method public android.media.MediaDrm.CryptoSession getCryptoSession(@NonNull byte[], @NonNull String, @NonNull String);
+    method @NonNull public android.media.MediaDrm.KeyRequest getKeyRequest(@NonNull byte[], @Nullable byte[], @Nullable String, int, @Nullable java.util.HashMap<java.lang.String,java.lang.String>) throws android.media.NotProvisionedException;
+    method @android.media.MediaDrm.HdcpLevel public int getMaxHdcpLevel();
     method public static int getMaxSecurityLevel();
     method public int getMaxSessionCount();
     method public android.os.PersistableBundle getMetrics();
-    method public java.util.List<byte[]> getOfflineLicenseKeySetIds();
-    method public int getOfflineLicenseState(byte[]);
+    method @NonNull public java.util.List<byte[]> getOfflineLicenseKeySetIds();
+    method public int getOfflineLicenseState(@NonNull byte[]);
     method public int getOpenSessionCount();
-    method public byte[] getPropertyByteArray(java.lang.String);
-    method public java.lang.String getPropertyString(java.lang.String);
-    method public android.media.MediaDrm.ProvisionRequest getProvisionRequest();
-    method public byte[] getSecureStop(byte[]);
-    method public java.util.List<byte[]> getSecureStopIds();
-    method public java.util.List<byte[]> getSecureStops();
-    method public int getSecurityLevel(byte[]);
-    method public static boolean isCryptoSchemeSupported(java.util.UUID);
-    method public static boolean isCryptoSchemeSupported(java.util.UUID, java.lang.String);
-    method public byte[] openSession() throws android.media.NotProvisionedException, android.media.ResourceBusyException;
-    method public byte[] openSession(int) throws android.media.NotProvisionedException, android.media.ResourceBusyException;
-    method public byte[] provideKeyResponse(byte[], byte[]) throws android.media.DeniedByServerException, android.media.NotProvisionedException;
-    method public void provideProvisionResponse(byte[]) throws android.media.DeniedByServerException;
-    method public java.util.HashMap<java.lang.String, java.lang.String> queryKeyStatus(byte[]);
-    method public deprecated void release();
-    method public deprecated void releaseAllSecureStops();
-    method public void releaseSecureStops(byte[]);
+    method @NonNull public byte[] getPropertyByteArray(String);
+    method @NonNull public String getPropertyString(@NonNull String);
+    method @NonNull public android.media.MediaDrm.ProvisionRequest getProvisionRequest();
+    method @NonNull public byte[] getSecureStop(@NonNull byte[]);
+    method @NonNull public java.util.List<byte[]> getSecureStopIds();
+    method @NonNull public java.util.List<byte[]> getSecureStops();
+    method @android.media.MediaDrm.SecurityLevel public int getSecurityLevel(@NonNull byte[]);
+    method public static boolean isCryptoSchemeSupported(@NonNull java.util.UUID);
+    method public static boolean isCryptoSchemeSupported(@NonNull java.util.UUID, @NonNull String);
+    method @NonNull public byte[] openSession() throws android.media.NotProvisionedException, android.media.ResourceBusyException;
+    method @NonNull public byte[] openSession(@android.media.MediaDrm.SecurityLevel int) throws android.media.NotProvisionedException, android.media.ResourceBusyException;
+    method @Nullable public byte[] provideKeyResponse(@NonNull byte[], @NonNull byte[]) throws android.media.DeniedByServerException, android.media.NotProvisionedException;
+    method public void provideProvisionResponse(@NonNull byte[]) throws android.media.DeniedByServerException;
+    method @NonNull public java.util.HashMap<java.lang.String,java.lang.String> queryKeyStatus(@NonNull byte[]);
+    method @Deprecated public void release();
+    method @Deprecated public void releaseAllSecureStops();
+    method public void releaseSecureStops(@NonNull byte[]);
     method public void removeAllSecureStops();
-    method public void removeKeys(byte[]);
-    method public void removeOfflineLicense(byte[]);
-    method public void removeSecureStop(byte[]);
-    method public void restoreKeys(byte[], byte[]);
-    method public void setOnEventListener(android.media.MediaDrm.OnEventListener);
-    method public void setOnExpirationUpdateListener(android.media.MediaDrm.OnExpirationUpdateListener, android.os.Handler);
-    method public void setOnKeyStatusChangeListener(android.media.MediaDrm.OnKeyStatusChangeListener, android.os.Handler);
-    method public void setOnSessionLostStateListener(android.media.MediaDrm.OnSessionLostStateListener, android.os.Handler);
-    method public void setPropertyByteArray(java.lang.String, byte[]);
-    method public void setPropertyString(java.lang.String, java.lang.String);
-    field public static final deprecated int EVENT_KEY_EXPIRED = 3; // 0x3
+    method public void removeKeys(@NonNull byte[]);
+    method public void removeOfflineLicense(@NonNull byte[]);
+    method public void removeSecureStop(@NonNull byte[]);
+    method public void restoreKeys(@NonNull byte[], @NonNull byte[]);
+    method public void setOnEventListener(@Nullable android.media.MediaDrm.OnEventListener);
+    method public void setOnExpirationUpdateListener(@Nullable android.media.MediaDrm.OnExpirationUpdateListener, @Nullable android.os.Handler);
+    method public void setOnKeyStatusChangeListener(@Nullable android.media.MediaDrm.OnKeyStatusChangeListener, @Nullable android.os.Handler);
+    method public void setOnSessionLostStateListener(@Nullable android.media.MediaDrm.OnSessionLostStateListener, @Nullable android.os.Handler);
+    method public void setPropertyByteArray(@NonNull String, @NonNull byte[]);
+    method public void setPropertyString(@NonNull String, @NonNull String);
+    field @Deprecated public static final int EVENT_KEY_EXPIRED = 3; // 0x3
     field public static final int EVENT_KEY_REQUIRED = 2; // 0x2
-    field public static final deprecated int EVENT_PROVISION_REQUIRED = 1; // 0x1
+    field @Deprecated public static final int EVENT_PROVISION_REQUIRED = 1; // 0x1
     field public static final int EVENT_SESSION_RECLAIMED = 5; // 0x5
     field public static final int EVENT_VENDOR_DEFINED = 4; // 0x4
     field public static final int HDCP_LEVEL_UNKNOWN = 0; // 0x0
@@ -24792,17 +24668,18 @@
     field public static final int HDCP_V2 = 3; // 0x3
     field public static final int HDCP_V2_1 = 4; // 0x4
     field public static final int HDCP_V2_2 = 5; // 0x5
+    field public static final int HDCP_V2_3 = 6; // 0x6
     field public static final int KEY_TYPE_OFFLINE = 2; // 0x2
     field public static final int KEY_TYPE_RELEASE = 3; // 0x3
     field public static final int KEY_TYPE_STREAMING = 1; // 0x1
     field public static final int OFFLINE_LICENSE_INACTIVE = 2; // 0x2
     field public static final int OFFLINE_LICENSE_STATE_UNKNOWN = 0; // 0x0
     field public static final int OFFLINE_LICENSE_USABLE = 1; // 0x1
-    field public static final java.lang.String PROPERTY_ALGORITHMS = "algorithms";
-    field public static final java.lang.String PROPERTY_DESCRIPTION = "description";
-    field public static final java.lang.String PROPERTY_DEVICE_UNIQUE_ID = "deviceUniqueId";
-    field public static final java.lang.String PROPERTY_VENDOR = "vendor";
-    field public static final java.lang.String PROPERTY_VERSION = "version";
+    field public static final String PROPERTY_ALGORITHMS = "algorithms";
+    field public static final String PROPERTY_DESCRIPTION = "description";
+    field public static final String PROPERTY_DEVICE_UNIQUE_ID = "deviceUniqueId";
+    field public static final String PROPERTY_VENDOR = "vendor";
+    field public static final String PROPERTY_VERSION = "version";
     field public static final int SECURITY_LEVEL_HW_SECURE_ALL = 5; // 0x5
     field public static final int SECURITY_LEVEL_HW_SECURE_CRYPTO = 3; // 0x3
     field public static final int SECURITY_LEVEL_HW_SECURE_DECODE = 4; // 0x4
@@ -24812,18 +24689,18 @@
   }
 
   public final class MediaDrm.CryptoSession {
-    method public byte[] decrypt(byte[], byte[], byte[]);
-    method public byte[] encrypt(byte[], byte[], byte[]);
-    method public byte[] sign(byte[], byte[]);
-    method public boolean verify(byte[], byte[], byte[]);
+    method @NonNull public byte[] decrypt(@NonNull byte[], @NonNull byte[], @NonNull byte[]);
+    method @NonNull public byte[] encrypt(@NonNull byte[], @NonNull byte[], @NonNull byte[]);
+    method @NonNull public byte[] sign(@NonNull byte[], @NonNull byte[]);
+    method public boolean verify(@NonNull byte[], @NonNull byte[], @NonNull byte[]);
   }
 
-  public static abstract class MediaDrm.HdcpLevel implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef({android.media.MediaDrm.HDCP_LEVEL_UNKNOWN, android.media.MediaDrm.HDCP_NONE, android.media.MediaDrm.HDCP_V1, android.media.MediaDrm.HDCP_V2, android.media.MediaDrm.HDCP_V2_1, android.media.MediaDrm.HDCP_V2_2, android.media.MediaDrm.HDCP_V2_3, android.media.MediaDrm.HDCP_NO_DIGITAL_OUTPUT}) public static @interface MediaDrm.HdcpLevel {
   }
 
   public static final class MediaDrm.KeyRequest {
-    method public byte[] getData();
-    method public java.lang.String getDefaultUrl();
+    method @NonNull public byte[] getData();
+    method @NonNull public String getDefaultUrl();
     method public int getRequestType();
     field public static final int REQUEST_TYPE_INITIAL = 0; // 0x0
     field public static final int REQUEST_TYPE_NONE = 3; // 0x3
@@ -24833,7 +24710,7 @@
   }
 
   public static final class MediaDrm.KeyStatus {
-    method public byte[] getKeyId();
+    method @NonNull public byte[] getKeyId();
     method public int getStatusCode();
     field public static final int STATUS_EXPIRED = 1; // 0x1
     field public static final int STATUS_INTERNAL_ERROR = 4; // 0x4
@@ -24843,115 +24720,115 @@
   }
 
   public static final class MediaDrm.MediaDrmStateException extends java.lang.IllegalStateException {
-    method public java.lang.String getDiagnosticInfo();
+    method @NonNull public String getDiagnosticInfo();
   }
 
   public static final class MediaDrm.MetricsConstants {
-    field public static final java.lang.String CLOSE_SESSION_ERROR_COUNT = "drm.mediadrm.close_session.error.count";
-    field public static final java.lang.String CLOSE_SESSION_ERROR_LIST = "drm.mediadrm.close_session.error.list";
-    field public static final java.lang.String CLOSE_SESSION_OK_COUNT = "drm.mediadrm.close_session.ok.count";
-    field public static final java.lang.String EVENT_KEY_EXPIRED_COUNT = "drm.mediadrm.event.KEY_EXPIRED.count";
-    field public static final java.lang.String EVENT_KEY_NEEDED_COUNT = "drm.mediadrm.event.KEY_NEEDED.count";
-    field public static final java.lang.String EVENT_PROVISION_REQUIRED_COUNT = "drm.mediadrm.event.PROVISION_REQUIRED.count";
-    field public static final java.lang.String EVENT_SESSION_RECLAIMED_COUNT = "drm.mediadrm.event.SESSION_RECLAIMED.count";
-    field public static final java.lang.String EVENT_VENDOR_DEFINED_COUNT = "drm.mediadrm.event.VENDOR_DEFINED.count";
-    field public static final java.lang.String GET_DEVICE_UNIQUE_ID_ERROR_COUNT = "drm.mediadrm.get_device_unique_id.error.count";
-    field public static final java.lang.String GET_DEVICE_UNIQUE_ID_ERROR_LIST = "drm.mediadrm.get_device_unique_id.error.list";
-    field public static final java.lang.String GET_DEVICE_UNIQUE_ID_OK_COUNT = "drm.mediadrm.get_device_unique_id.ok.count";
-    field public static final java.lang.String GET_KEY_REQUEST_ERROR_COUNT = "drm.mediadrm.get_key_request.error.count";
-    field public static final java.lang.String GET_KEY_REQUEST_ERROR_LIST = "drm.mediadrm.get_key_request.error.list";
-    field public static final java.lang.String GET_KEY_REQUEST_OK_COUNT = "drm.mediadrm.get_key_request.ok.count";
-    field public static final java.lang.String GET_KEY_REQUEST_OK_TIME_MICROS = "drm.mediadrm.get_key_request.ok.average_time_micros";
-    field public static final java.lang.String GET_PROVISION_REQUEST_ERROR_COUNT = "drm.mediadrm.get_provision_request.error.count";
-    field public static final java.lang.String GET_PROVISION_REQUEST_ERROR_LIST = "drm.mediadrm.get_provision_request.error.list";
-    field public static final java.lang.String GET_PROVISION_REQUEST_OK_COUNT = "drm.mediadrm.get_provision_request.ok.count";
-    field public static final java.lang.String KEY_STATUS_EXPIRED_COUNT = "drm.mediadrm.key_status.EXPIRED.count";
-    field public static final java.lang.String KEY_STATUS_INTERNAL_ERROR_COUNT = "drm.mediadrm.key_status.INTERNAL_ERROR.count";
-    field public static final java.lang.String KEY_STATUS_OUTPUT_NOT_ALLOWED_COUNT = "drm.mediadrm.key_status_change.OUTPUT_NOT_ALLOWED.count";
-    field public static final java.lang.String KEY_STATUS_PENDING_COUNT = "drm.mediadrm.key_status_change.PENDING.count";
-    field public static final java.lang.String KEY_STATUS_USABLE_COUNT = "drm.mediadrm.key_status_change.USABLE.count";
-    field public static final java.lang.String OPEN_SESSION_ERROR_COUNT = "drm.mediadrm.open_session.error.count";
-    field public static final java.lang.String OPEN_SESSION_ERROR_LIST = "drm.mediadrm.open_session.error.list";
-    field public static final java.lang.String OPEN_SESSION_OK_COUNT = "drm.mediadrm.open_session.ok.count";
-    field public static final java.lang.String PROVIDE_KEY_RESPONSE_ERROR_COUNT = "drm.mediadrm.provide_key_response.error.count";
-    field public static final java.lang.String PROVIDE_KEY_RESPONSE_ERROR_LIST = "drm.mediadrm.provide_key_response.error.list";
-    field public static final java.lang.String PROVIDE_KEY_RESPONSE_OK_COUNT = "drm.mediadrm.provide_key_response.ok.count";
-    field public static final java.lang.String PROVIDE_KEY_RESPONSE_OK_TIME_MICROS = "drm.mediadrm.provide_key_response.ok.average_time_micros";
-    field public static final java.lang.String PROVIDE_PROVISION_RESPONSE_ERROR_COUNT = "drm.mediadrm.provide_provision_response.error.count";
-    field public static final java.lang.String PROVIDE_PROVISION_RESPONSE_ERROR_LIST = "drm.mediadrm.provide_provision_response.error.list";
-    field public static final java.lang.String PROVIDE_PROVISION_RESPONSE_OK_COUNT = "drm.mediadrm.provide_provision_response.ok.count";
-    field public static final java.lang.String SESSION_END_TIMES_MS = "drm.mediadrm.session_end_times_ms";
-    field public static final java.lang.String SESSION_START_TIMES_MS = "drm.mediadrm.session_start_times_ms";
+    field public static final String CLOSE_SESSION_ERROR_COUNT = "drm.mediadrm.close_session.error.count";
+    field public static final String CLOSE_SESSION_ERROR_LIST = "drm.mediadrm.close_session.error.list";
+    field public static final String CLOSE_SESSION_OK_COUNT = "drm.mediadrm.close_session.ok.count";
+    field public static final String EVENT_KEY_EXPIRED_COUNT = "drm.mediadrm.event.KEY_EXPIRED.count";
+    field public static final String EVENT_KEY_NEEDED_COUNT = "drm.mediadrm.event.KEY_NEEDED.count";
+    field public static final String EVENT_PROVISION_REQUIRED_COUNT = "drm.mediadrm.event.PROVISION_REQUIRED.count";
+    field public static final String EVENT_SESSION_RECLAIMED_COUNT = "drm.mediadrm.event.SESSION_RECLAIMED.count";
+    field public static final String EVENT_VENDOR_DEFINED_COUNT = "drm.mediadrm.event.VENDOR_DEFINED.count";
+    field public static final String GET_DEVICE_UNIQUE_ID_ERROR_COUNT = "drm.mediadrm.get_device_unique_id.error.count";
+    field public static final String GET_DEVICE_UNIQUE_ID_ERROR_LIST = "drm.mediadrm.get_device_unique_id.error.list";
+    field public static final String GET_DEVICE_UNIQUE_ID_OK_COUNT = "drm.mediadrm.get_device_unique_id.ok.count";
+    field public static final String GET_KEY_REQUEST_ERROR_COUNT = "drm.mediadrm.get_key_request.error.count";
+    field public static final String GET_KEY_REQUEST_ERROR_LIST = "drm.mediadrm.get_key_request.error.list";
+    field public static final String GET_KEY_REQUEST_OK_COUNT = "drm.mediadrm.get_key_request.ok.count";
+    field public static final String GET_KEY_REQUEST_OK_TIME_MICROS = "drm.mediadrm.get_key_request.ok.average_time_micros";
+    field public static final String GET_PROVISION_REQUEST_ERROR_COUNT = "drm.mediadrm.get_provision_request.error.count";
+    field public static final String GET_PROVISION_REQUEST_ERROR_LIST = "drm.mediadrm.get_provision_request.error.list";
+    field public static final String GET_PROVISION_REQUEST_OK_COUNT = "drm.mediadrm.get_provision_request.ok.count";
+    field public static final String KEY_STATUS_EXPIRED_COUNT = "drm.mediadrm.key_status.EXPIRED.count";
+    field public static final String KEY_STATUS_INTERNAL_ERROR_COUNT = "drm.mediadrm.key_status.INTERNAL_ERROR.count";
+    field public static final String KEY_STATUS_OUTPUT_NOT_ALLOWED_COUNT = "drm.mediadrm.key_status_change.OUTPUT_NOT_ALLOWED.count";
+    field public static final String KEY_STATUS_PENDING_COUNT = "drm.mediadrm.key_status_change.PENDING.count";
+    field public static final String KEY_STATUS_USABLE_COUNT = "drm.mediadrm.key_status_change.USABLE.count";
+    field public static final String OPEN_SESSION_ERROR_COUNT = "drm.mediadrm.open_session.error.count";
+    field public static final String OPEN_SESSION_ERROR_LIST = "drm.mediadrm.open_session.error.list";
+    field public static final String OPEN_SESSION_OK_COUNT = "drm.mediadrm.open_session.ok.count";
+    field public static final String PROVIDE_KEY_RESPONSE_ERROR_COUNT = "drm.mediadrm.provide_key_response.error.count";
+    field public static final String PROVIDE_KEY_RESPONSE_ERROR_LIST = "drm.mediadrm.provide_key_response.error.list";
+    field public static final String PROVIDE_KEY_RESPONSE_OK_COUNT = "drm.mediadrm.provide_key_response.ok.count";
+    field public static final String PROVIDE_KEY_RESPONSE_OK_TIME_MICROS = "drm.mediadrm.provide_key_response.ok.average_time_micros";
+    field public static final String PROVIDE_PROVISION_RESPONSE_ERROR_COUNT = "drm.mediadrm.provide_provision_response.error.count";
+    field public static final String PROVIDE_PROVISION_RESPONSE_ERROR_LIST = "drm.mediadrm.provide_provision_response.error.list";
+    field public static final String PROVIDE_PROVISION_RESPONSE_OK_COUNT = "drm.mediadrm.provide_provision_response.ok.count";
+    field public static final String SESSION_END_TIMES_MS = "drm.mediadrm.session_end_times_ms";
+    field public static final String SESSION_START_TIMES_MS = "drm.mediadrm.session_start_times_ms";
   }
 
-  public static abstract interface MediaDrm.OnEventListener {
-    method public abstract void onEvent(android.media.MediaDrm, byte[], int, int, byte[]);
+  public static interface MediaDrm.OnEventListener {
+    method public void onEvent(@NonNull android.media.MediaDrm, @Nullable byte[], int, int, @Nullable byte[]);
   }
 
-  public static abstract interface MediaDrm.OnExpirationUpdateListener {
-    method public abstract void onExpirationUpdate(android.media.MediaDrm, byte[], long);
+  public static interface MediaDrm.OnExpirationUpdateListener {
+    method public void onExpirationUpdate(@NonNull android.media.MediaDrm, @NonNull byte[], long);
   }
 
-  public static abstract interface MediaDrm.OnKeyStatusChangeListener {
-    method public abstract void onKeyStatusChange(android.media.MediaDrm, byte[], java.util.List<android.media.MediaDrm.KeyStatus>, boolean);
+  public static interface MediaDrm.OnKeyStatusChangeListener {
+    method public void onKeyStatusChange(@NonNull android.media.MediaDrm, @NonNull byte[], @NonNull java.util.List<android.media.MediaDrm.KeyStatus>, boolean);
   }
 
-  public static abstract interface MediaDrm.OnSessionLostStateListener {
-    method public abstract void onSessionLostState(android.media.MediaDrm, byte[]);
+  public static interface MediaDrm.OnSessionLostStateListener {
+    method public void onSessionLostState(@NonNull android.media.MediaDrm, @NonNull byte[]);
   }
 
   public static final class MediaDrm.ProvisionRequest {
-    method public byte[] getData();
-    method public java.lang.String getDefaultUrl();
+    method @NonNull public byte[] getData();
+    method @NonNull public String getDefaultUrl();
   }
 
-  public static abstract class MediaDrm.SecurityLevel implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef({android.media.MediaDrm.SECURITY_LEVEL_UNKNOWN, android.media.MediaDrm.SECURITY_LEVEL_SW_SECURE_CRYPTO, android.media.MediaDrm.SECURITY_LEVEL_SW_SECURE_DECODE, android.media.MediaDrm.SECURITY_LEVEL_HW_SECURE_CRYPTO, android.media.MediaDrm.SECURITY_LEVEL_HW_SECURE_DECODE, android.media.MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL}) public static @interface MediaDrm.SecurityLevel {
   }
 
   public static final class MediaDrm.SessionException extends java.lang.RuntimeException {
-    ctor public MediaDrm.SessionException(int, java.lang.String);
+    ctor public MediaDrm.SessionException(int, @Nullable String);
     method public int getErrorCode();
     field public static final int ERROR_RESOURCE_CONTENTION = 1; // 0x1
   }
 
   public class MediaDrmException extends java.lang.Exception {
-    ctor public MediaDrmException(java.lang.String);
+    ctor public MediaDrmException(String);
   }
 
   public class MediaDrmResetException extends java.lang.IllegalStateException {
-    ctor public MediaDrmResetException(java.lang.String);
+    ctor public MediaDrmResetException(String);
   }
 
   public final class MediaExtractor {
     ctor public MediaExtractor();
     method public boolean advance();
     method protected void finalize();
-    method public java.util.List<android.media.AudioPresentation> getAudioPresentations(int);
+    method @NonNull public java.util.List<android.media.AudioPresentation> getAudioPresentations(int);
     method public long getCachedDuration();
     method public android.media.MediaExtractor.CasInfo getCasInfo(int);
     method public android.media.DrmInitData getDrmInitData();
     method public android.os.PersistableBundle getMetrics();
-    method public java.util.Map<java.util.UUID, byte[]> getPsshInfo();
-    method public boolean getSampleCryptoInfo(android.media.MediaCodec.CryptoInfo);
+    method @Nullable public java.util.Map<java.util.UUID,byte[]> getPsshInfo();
+    method public boolean getSampleCryptoInfo(@NonNull android.media.MediaCodec.CryptoInfo);
     method public int getSampleFlags();
     method public long getSampleSize();
     method public long getSampleTime();
     method public int getSampleTrackIndex();
     method public int getTrackCount();
-    method public android.media.MediaFormat getTrackFormat(int);
+    method @NonNull public android.media.MediaFormat getTrackFormat(int);
     method public boolean hasCacheReachedEndOfStream();
-    method public int readSampleData(java.nio.ByteBuffer, int);
+    method public int readSampleData(@NonNull java.nio.ByteBuffer, int);
     method public void release();
     method public void seekTo(long, int);
     method public void selectTrack(int);
-    method public void setDataSource(android.media.MediaDataSource) throws java.io.IOException;
-    method public void setDataSource(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException;
-    method public void setDataSource(java.lang.String, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException;
-    method public void setDataSource(java.lang.String) throws java.io.IOException;
-    method public void setDataSource(android.content.res.AssetFileDescriptor) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public void setDataSource(java.io.FileDescriptor) throws java.io.IOException;
-    method public void setDataSource(java.io.FileDescriptor, long, long) throws java.io.IOException;
-    method public void setMediaCas(android.media.MediaCas);
+    method public void setDataSource(@NonNull android.media.MediaDataSource) throws java.io.IOException;
+    method public void setDataSource(@NonNull android.content.Context, @NonNull android.net.Uri, @Nullable java.util.Map<java.lang.String,java.lang.String>) throws java.io.IOException;
+    method public void setDataSource(@NonNull String, @Nullable java.util.Map<java.lang.String,java.lang.String>) throws java.io.IOException;
+    method public void setDataSource(@NonNull String) throws java.io.IOException;
+    method public void setDataSource(@NonNull android.content.res.AssetFileDescriptor) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void setDataSource(@NonNull java.io.FileDescriptor) throws java.io.IOException;
+    method public void setDataSource(@NonNull java.io.FileDescriptor, long, long) throws java.io.IOException;
+    method public void setMediaCas(@NonNull android.media.MediaCas);
     method public void unselectTrack(int);
     field public static final int SAMPLE_FLAG_ENCRYPTED = 2; // 0x2
     field public static final int SAMPLE_FLAG_PARTIAL_FRAME = 4; // 0x4
@@ -24962,49 +24839,49 @@
   }
 
   public static final class MediaExtractor.CasInfo {
-    method public byte[] getPrivateData();
+    method @Nullable public byte[] getPrivateData();
     method public android.media.MediaCas.Session getSession();
     method public int getSystemId();
   }
 
   public static final class MediaExtractor.MetricsConstants {
-    field public static final java.lang.String FORMAT = "android.media.mediaextractor.fmt";
-    field public static final java.lang.String MIME_TYPE = "android.media.mediaextractor.mime";
-    field public static final java.lang.String TRACKS = "android.media.mediaextractor.ntrk";
+    field public static final String FORMAT = "android.media.mediaextractor.fmt";
+    field public static final String MIME_TYPE = "android.media.mediaextractor.mime";
+    field public static final String TRACKS = "android.media.mediaextractor.ntrk";
   }
 
   public final class MediaFormat {
     ctor public MediaFormat();
-    ctor public MediaFormat(android.media.MediaFormat);
-    method public boolean containsFeature(java.lang.String);
-    method public boolean containsKey(java.lang.String);
-    method public static android.media.MediaFormat createAudioFormat(java.lang.String, int, int);
-    method public static android.media.MediaFormat createSubtitleFormat(java.lang.String, java.lang.String);
-    method public static android.media.MediaFormat createVideoFormat(java.lang.String, int, int);
-    method public java.nio.ByteBuffer getByteBuffer(java.lang.String);
-    method public java.nio.ByteBuffer getByteBuffer(java.lang.String, java.nio.ByteBuffer);
-    method public boolean getFeatureEnabled(java.lang.String);
-    method public java.util.Set<java.lang.String> getFeatures();
-    method public float getFloat(java.lang.String);
-    method public float getFloat(java.lang.String, float);
-    method public int getInteger(java.lang.String);
-    method public int getInteger(java.lang.String, int);
-    method public java.util.Set<java.lang.String> getKeys();
-    method public long getLong(java.lang.String);
-    method public long getLong(java.lang.String, long);
-    method public java.lang.Number getNumber(java.lang.String);
-    method public java.lang.Number getNumber(java.lang.String, java.lang.Number);
-    method public java.lang.String getString(java.lang.String);
-    method public java.lang.String getString(java.lang.String, java.lang.String);
-    method public int getValueTypeForKey(java.lang.String);
-    method public void removeFeature(java.lang.String);
-    method public void removeKey(java.lang.String);
-    method public void setByteBuffer(java.lang.String, java.nio.ByteBuffer);
-    method public void setFeatureEnabled(java.lang.String, boolean);
-    method public void setFloat(java.lang.String, float);
-    method public void setInteger(java.lang.String, int);
-    method public void setLong(java.lang.String, long);
-    method public void setString(java.lang.String, java.lang.String);
+    ctor public MediaFormat(@NonNull android.media.MediaFormat);
+    method public boolean containsFeature(@NonNull String);
+    method public boolean containsKey(@NonNull String);
+    method @NonNull public static android.media.MediaFormat createAudioFormat(@NonNull String, int, int);
+    method @NonNull public static android.media.MediaFormat createSubtitleFormat(@NonNull String, String);
+    method @NonNull public static android.media.MediaFormat createVideoFormat(@NonNull String, int, int);
+    method @Nullable public java.nio.ByteBuffer getByteBuffer(@NonNull String);
+    method @NonNull public java.nio.ByteBuffer getByteBuffer(@NonNull String, @NonNull java.nio.ByteBuffer);
+    method public boolean getFeatureEnabled(@NonNull String);
+    method @NonNull public java.util.Set<java.lang.String> getFeatures();
+    method public float getFloat(@NonNull String);
+    method public float getFloat(@NonNull String, float);
+    method public int getInteger(@NonNull String);
+    method public int getInteger(@NonNull String, int);
+    method @NonNull public java.util.Set<java.lang.String> getKeys();
+    method public long getLong(@NonNull String);
+    method public long getLong(@NonNull String, long);
+    method @Nullable public Number getNumber(@NonNull String);
+    method @NonNull public Number getNumber(@NonNull String, @NonNull Number);
+    method @Nullable public String getString(@NonNull String);
+    method @NonNull public String getString(@NonNull String, @NonNull String);
+    method public int getValueTypeForKey(@NonNull String);
+    method public void removeFeature(@NonNull String);
+    method public void removeKey(@NonNull String);
+    method public void setByteBuffer(@NonNull String, @Nullable java.nio.ByteBuffer);
+    method public void setFeatureEnabled(@NonNull String, boolean);
+    method public void setFloat(@NonNull String, float);
+    method public void setInteger(@NonNull String, int);
+    method public void setLong(@NonNull String, long);
+    method public void setString(@NonNull String, @Nullable String);
     field public static final int COLOR_RANGE_FULL = 1; // 0x1
     field public static final int COLOR_RANGE_LIMITED = 2; // 0x2
     field public static final int COLOR_STANDARD_BT2020 = 6; // 0x6
@@ -25015,97 +24892,97 @@
     field public static final int COLOR_TRANSFER_LINEAR = 1; // 0x1
     field public static final int COLOR_TRANSFER_SDR_VIDEO = 3; // 0x3
     field public static final int COLOR_TRANSFER_ST2084 = 6; // 0x6
-    field public static final java.lang.String KEY_AAC_DRC_ATTENUATION_FACTOR = "aac-drc-cut-level";
-    field public static final java.lang.String KEY_AAC_DRC_BOOST_FACTOR = "aac-drc-boost-level";
-    field public static final java.lang.String KEY_AAC_DRC_EFFECT_TYPE = "aac-drc-effect-type";
-    field public static final java.lang.String KEY_AAC_DRC_HEAVY_COMPRESSION = "aac-drc-heavy-compression";
-    field public static final java.lang.String KEY_AAC_DRC_TARGET_REFERENCE_LEVEL = "aac-target-ref-level";
-    field public static final java.lang.String KEY_AAC_ENCODED_TARGET_LEVEL = "aac-encoded-target-level";
-    field public static final java.lang.String KEY_AAC_MAX_OUTPUT_CHANNEL_COUNT = "aac-max-output-channel_count";
-    field public static final java.lang.String KEY_AAC_PROFILE = "aac-profile";
-    field public static final java.lang.String KEY_AAC_SBR_MODE = "aac-sbr-mode";
-    field public static final java.lang.String KEY_AUDIO_SESSION_ID = "audio-session-id";
-    field public static final java.lang.String KEY_BITRATE_MODE = "bitrate-mode";
-    field public static final java.lang.String KEY_BIT_RATE = "bitrate";
-    field public static final java.lang.String KEY_CAPTURE_RATE = "capture-rate";
-    field public static final java.lang.String KEY_CHANNEL_COUNT = "channel-count";
-    field public static final java.lang.String KEY_CHANNEL_MASK = "channel-mask";
-    field public static final java.lang.String KEY_COLOR_FORMAT = "color-format";
-    field public static final java.lang.String KEY_COLOR_RANGE = "color-range";
-    field public static final java.lang.String KEY_COLOR_STANDARD = "color-standard";
-    field public static final java.lang.String KEY_COLOR_TRANSFER = "color-transfer";
-    field public static final java.lang.String KEY_COMPLEXITY = "complexity";
-    field public static final java.lang.String KEY_DURATION = "durationUs";
-    field public static final java.lang.String KEY_FLAC_COMPRESSION_LEVEL = "flac-compression-level";
-    field public static final java.lang.String KEY_FRAME_RATE = "frame-rate";
-    field public static final java.lang.String KEY_GRID_COLUMNS = "grid-cols";
-    field public static final java.lang.String KEY_GRID_ROWS = "grid-rows";
-    field public static final java.lang.String KEY_HDR10_PLUS_INFO = "hdr10-plus-info";
-    field public static final java.lang.String KEY_HDR_STATIC_INFO = "hdr-static-info";
-    field public static final java.lang.String KEY_HEIGHT = "height";
-    field public static final java.lang.String KEY_INTRA_REFRESH_PERIOD = "intra-refresh-period";
-    field public static final java.lang.String KEY_IS_ADTS = "is-adts";
-    field public static final java.lang.String KEY_IS_AUTOSELECT = "is-autoselect";
-    field public static final java.lang.String KEY_IS_DEFAULT = "is-default";
-    field public static final java.lang.String KEY_IS_FORCED_SUBTITLE = "is-forced-subtitle";
-    field public static final java.lang.String KEY_I_FRAME_INTERVAL = "i-frame-interval";
-    field public static final java.lang.String KEY_LANGUAGE = "language";
-    field public static final java.lang.String KEY_LATENCY = "latency";
-    field public static final java.lang.String KEY_LEVEL = "level";
-    field public static final java.lang.String KEY_MAX_HEIGHT = "max-height";
-    field public static final java.lang.String KEY_MAX_INPUT_SIZE = "max-input-size";
-    field public static final java.lang.String KEY_MAX_WIDTH = "max-width";
-    field public static final java.lang.String KEY_MIME = "mime";
-    field public static final java.lang.String KEY_OPERATING_RATE = "operating-rate";
-    field public static final java.lang.String KEY_OUTPUT_REORDER_DEPTH = "output-reorder-depth";
-    field public static final java.lang.String KEY_PCM_ENCODING = "pcm-encoding";
-    field public static final java.lang.String KEY_PRIORITY = "priority";
-    field public static final java.lang.String KEY_PROFILE = "profile";
-    field public static final java.lang.String KEY_PUSH_BLANK_BUFFERS_ON_STOP = "push-blank-buffers-on-shutdown";
-    field public static final java.lang.String KEY_QUALITY = "quality";
-    field public static final java.lang.String KEY_REPEAT_PREVIOUS_FRAME_AFTER = "repeat-previous-frame-after";
-    field public static final java.lang.String KEY_ROTATION = "rotation-degrees";
-    field public static final java.lang.String KEY_SAMPLE_RATE = "sample-rate";
-    field public static final java.lang.String KEY_SLICE_HEIGHT = "slice-height";
-    field public static final java.lang.String KEY_STRIDE = "stride";
-    field public static final java.lang.String KEY_TEMPORAL_LAYERING = "ts-schema";
-    field public static final java.lang.String KEY_TILE_HEIGHT = "tile-height";
-    field public static final java.lang.String KEY_TILE_WIDTH = "tile-width";
-    field public static final java.lang.String KEY_TRACK_ID = "track-id";
-    field public static final java.lang.String KEY_WIDTH = "width";
-    field public static final java.lang.String MIMETYPE_AUDIO_AAC = "audio/mp4a-latm";
-    field public static final java.lang.String MIMETYPE_AUDIO_AC3 = "audio/ac3";
-    field public static final java.lang.String MIMETYPE_AUDIO_AC4 = "audio/ac4";
-    field public static final java.lang.String MIMETYPE_AUDIO_AMR_NB = "audio/3gpp";
-    field public static final java.lang.String MIMETYPE_AUDIO_AMR_WB = "audio/amr-wb";
-    field public static final java.lang.String MIMETYPE_AUDIO_EAC3 = "audio/eac3";
-    field public static final java.lang.String MIMETYPE_AUDIO_EAC3_JOC = "audio/eac3-joc";
-    field public static final java.lang.String MIMETYPE_AUDIO_FLAC = "audio/flac";
-    field public static final java.lang.String MIMETYPE_AUDIO_G711_ALAW = "audio/g711-alaw";
-    field public static final java.lang.String MIMETYPE_AUDIO_G711_MLAW = "audio/g711-mlaw";
-    field public static final java.lang.String MIMETYPE_AUDIO_MPEG = "audio/mpeg";
-    field public static final java.lang.String MIMETYPE_AUDIO_MSGSM = "audio/gsm";
-    field public static final java.lang.String MIMETYPE_AUDIO_OPUS = "audio/opus";
-    field public static final java.lang.String MIMETYPE_AUDIO_QCELP = "audio/qcelp";
-    field public static final java.lang.String MIMETYPE_AUDIO_RAW = "audio/raw";
-    field public static final java.lang.String MIMETYPE_AUDIO_SCRAMBLED = "audio/scrambled";
-    field public static final java.lang.String MIMETYPE_AUDIO_VORBIS = "audio/vorbis";
-    field public static final java.lang.String MIMETYPE_IMAGE_ANDROID_HEIC = "image/vnd.android.heic";
-    field public static final java.lang.String MIMETYPE_TEXT_CEA_608 = "text/cea-608";
-    field public static final java.lang.String MIMETYPE_TEXT_CEA_708 = "text/cea-708";
-    field public static final java.lang.String MIMETYPE_TEXT_SUBRIP = "application/x-subrip";
-    field public static final java.lang.String MIMETYPE_TEXT_VTT = "text/vtt";
-    field public static final java.lang.String MIMETYPE_VIDEO_AV1 = "video/av01";
-    field public static final java.lang.String MIMETYPE_VIDEO_AVC = "video/avc";
-    field public static final java.lang.String MIMETYPE_VIDEO_DOLBY_VISION = "video/dolby-vision";
-    field public static final java.lang.String MIMETYPE_VIDEO_H263 = "video/3gpp";
-    field public static final java.lang.String MIMETYPE_VIDEO_HEVC = "video/hevc";
-    field public static final java.lang.String MIMETYPE_VIDEO_MPEG2 = "video/mpeg2";
-    field public static final java.lang.String MIMETYPE_VIDEO_MPEG4 = "video/mp4v-es";
-    field public static final java.lang.String MIMETYPE_VIDEO_RAW = "video/raw";
-    field public static final java.lang.String MIMETYPE_VIDEO_SCRAMBLED = "video/scrambled";
-    field public static final java.lang.String MIMETYPE_VIDEO_VP8 = "video/x-vnd.on2.vp8";
-    field public static final java.lang.String MIMETYPE_VIDEO_VP9 = "video/x-vnd.on2.vp9";
+    field public static final String KEY_AAC_DRC_ATTENUATION_FACTOR = "aac-drc-cut-level";
+    field public static final String KEY_AAC_DRC_BOOST_FACTOR = "aac-drc-boost-level";
+    field public static final String KEY_AAC_DRC_EFFECT_TYPE = "aac-drc-effect-type";
+    field public static final String KEY_AAC_DRC_HEAVY_COMPRESSION = "aac-drc-heavy-compression";
+    field public static final String KEY_AAC_DRC_TARGET_REFERENCE_LEVEL = "aac-target-ref-level";
+    field public static final String KEY_AAC_ENCODED_TARGET_LEVEL = "aac-encoded-target-level";
+    field public static final String KEY_AAC_MAX_OUTPUT_CHANNEL_COUNT = "aac-max-output-channel_count";
+    field public static final String KEY_AAC_PROFILE = "aac-profile";
+    field public static final String KEY_AAC_SBR_MODE = "aac-sbr-mode";
+    field public static final String KEY_AUDIO_SESSION_ID = "audio-session-id";
+    field public static final String KEY_BITRATE_MODE = "bitrate-mode";
+    field public static final String KEY_BIT_RATE = "bitrate";
+    field public static final String KEY_CAPTURE_RATE = "capture-rate";
+    field public static final String KEY_CHANNEL_COUNT = "channel-count";
+    field public static final String KEY_CHANNEL_MASK = "channel-mask";
+    field public static final String KEY_COLOR_FORMAT = "color-format";
+    field public static final String KEY_COLOR_RANGE = "color-range";
+    field public static final String KEY_COLOR_STANDARD = "color-standard";
+    field public static final String KEY_COLOR_TRANSFER = "color-transfer";
+    field public static final String KEY_COMPLEXITY = "complexity";
+    field public static final String KEY_DURATION = "durationUs";
+    field public static final String KEY_FLAC_COMPRESSION_LEVEL = "flac-compression-level";
+    field public static final String KEY_FRAME_RATE = "frame-rate";
+    field public static final String KEY_GRID_COLUMNS = "grid-cols";
+    field public static final String KEY_GRID_ROWS = "grid-rows";
+    field public static final String KEY_HDR10_PLUS_INFO = "hdr10-plus-info";
+    field public static final String KEY_HDR_STATIC_INFO = "hdr-static-info";
+    field public static final String KEY_HEIGHT = "height";
+    field public static final String KEY_INTRA_REFRESH_PERIOD = "intra-refresh-period";
+    field public static final String KEY_IS_ADTS = "is-adts";
+    field public static final String KEY_IS_AUTOSELECT = "is-autoselect";
+    field public static final String KEY_IS_DEFAULT = "is-default";
+    field public static final String KEY_IS_FORCED_SUBTITLE = "is-forced-subtitle";
+    field public static final String KEY_I_FRAME_INTERVAL = "i-frame-interval";
+    field public static final String KEY_LANGUAGE = "language";
+    field public static final String KEY_LATENCY = "latency";
+    field public static final String KEY_LEVEL = "level";
+    field public static final String KEY_MAX_HEIGHT = "max-height";
+    field public static final String KEY_MAX_INPUT_SIZE = "max-input-size";
+    field public static final String KEY_MAX_WIDTH = "max-width";
+    field public static final String KEY_MIME = "mime";
+    field public static final String KEY_OPERATING_RATE = "operating-rate";
+    field public static final String KEY_OUTPUT_REORDER_DEPTH = "output-reorder-depth";
+    field public static final String KEY_PCM_ENCODING = "pcm-encoding";
+    field public static final String KEY_PRIORITY = "priority";
+    field public static final String KEY_PROFILE = "profile";
+    field public static final String KEY_PUSH_BLANK_BUFFERS_ON_STOP = "push-blank-buffers-on-shutdown";
+    field public static final String KEY_QUALITY = "quality";
+    field public static final String KEY_REPEAT_PREVIOUS_FRAME_AFTER = "repeat-previous-frame-after";
+    field public static final String KEY_ROTATION = "rotation-degrees";
+    field public static final String KEY_SAMPLE_RATE = "sample-rate";
+    field public static final String KEY_SLICE_HEIGHT = "slice-height";
+    field public static final String KEY_STRIDE = "stride";
+    field public static final String KEY_TEMPORAL_LAYERING = "ts-schema";
+    field public static final String KEY_TILE_HEIGHT = "tile-height";
+    field public static final String KEY_TILE_WIDTH = "tile-width";
+    field public static final String KEY_TRACK_ID = "track-id";
+    field public static final String KEY_WIDTH = "width";
+    field public static final String MIMETYPE_AUDIO_AAC = "audio/mp4a-latm";
+    field public static final String MIMETYPE_AUDIO_AC3 = "audio/ac3";
+    field public static final String MIMETYPE_AUDIO_AC4 = "audio/ac4";
+    field public static final String MIMETYPE_AUDIO_AMR_NB = "audio/3gpp";
+    field public static final String MIMETYPE_AUDIO_AMR_WB = "audio/amr-wb";
+    field public static final String MIMETYPE_AUDIO_EAC3 = "audio/eac3";
+    field public static final String MIMETYPE_AUDIO_EAC3_JOC = "audio/eac3-joc";
+    field public static final String MIMETYPE_AUDIO_FLAC = "audio/flac";
+    field public static final String MIMETYPE_AUDIO_G711_ALAW = "audio/g711-alaw";
+    field public static final String MIMETYPE_AUDIO_G711_MLAW = "audio/g711-mlaw";
+    field public static final String MIMETYPE_AUDIO_MPEG = "audio/mpeg";
+    field public static final String MIMETYPE_AUDIO_MSGSM = "audio/gsm";
+    field public static final String MIMETYPE_AUDIO_OPUS = "audio/opus";
+    field public static final String MIMETYPE_AUDIO_QCELP = "audio/qcelp";
+    field public static final String MIMETYPE_AUDIO_RAW = "audio/raw";
+    field public static final String MIMETYPE_AUDIO_SCRAMBLED = "audio/scrambled";
+    field public static final String MIMETYPE_AUDIO_VORBIS = "audio/vorbis";
+    field public static final String MIMETYPE_IMAGE_ANDROID_HEIC = "image/vnd.android.heic";
+    field public static final String MIMETYPE_TEXT_CEA_608 = "text/cea-608";
+    field public static final String MIMETYPE_TEXT_CEA_708 = "text/cea-708";
+    field public static final String MIMETYPE_TEXT_SUBRIP = "application/x-subrip";
+    field public static final String MIMETYPE_TEXT_VTT = "text/vtt";
+    field public static final String MIMETYPE_VIDEO_AV1 = "video/av01";
+    field public static final String MIMETYPE_VIDEO_AVC = "video/avc";
+    field public static final String MIMETYPE_VIDEO_DOLBY_VISION = "video/dolby-vision";
+    field public static final String MIMETYPE_VIDEO_H263 = "video/3gpp";
+    field public static final String MIMETYPE_VIDEO_HEVC = "video/hevc";
+    field public static final String MIMETYPE_VIDEO_MPEG2 = "video/mpeg2";
+    field public static final String MIMETYPE_VIDEO_MPEG4 = "video/mp4v-es";
+    field public static final String MIMETYPE_VIDEO_RAW = "video/raw";
+    field public static final String MIMETYPE_VIDEO_SCRAMBLED = "video/scrambled";
+    field public static final String MIMETYPE_VIDEO_VP8 = "video/x-vnd.on2.vp8";
+    field public static final String MIMETYPE_VIDEO_VP9 = "video/x-vnd.on2.vp9";
     field public static final int TYPE_BYTE_BUFFER = 5; // 0x5
     field public static final int TYPE_FLOAT = 3; // 0x3
     field public static final int TYPE_INTEGER = 1; // 0x1
@@ -25117,9 +24994,9 @@
   public final class MediaItem2 implements android.os.Parcelable {
     method public int describeContents();
     method public long getEndPosition();
-    method public android.media.MediaMetadata getMetadata();
+    method @Nullable public android.media.MediaMetadata getMetadata();
     method public long getStartPosition();
-    method public void setMetadata(android.media.MediaMetadata);
+    method public void setMetadata(@Nullable android.media.MediaMetadata);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.MediaItem2> CREATOR;
     field public static final long POSITION_UNKNOWN = 576460752303423487L; // 0x7ffffffffffffffL
@@ -25127,106 +25004,106 @@
 
   public static class MediaItem2.Builder {
     ctor public MediaItem2.Builder();
-    method public android.media.MediaItem2 build();
-    method public android.media.MediaItem2.Builder setEndPosition(long);
-    method public android.media.MediaItem2.Builder setMetadata(android.media.MediaMetadata);
-    method public android.media.MediaItem2.Builder setStartPosition(long);
+    method @NonNull public android.media.MediaItem2 build();
+    method @NonNull public android.media.MediaItem2.Builder setEndPosition(long);
+    method @NonNull public android.media.MediaItem2.Builder setMetadata(@Nullable android.media.MediaMetadata);
+    method @NonNull public android.media.MediaItem2.Builder setStartPosition(long);
   }
 
   public final class MediaMetadata implements android.os.Parcelable {
-    method public boolean containsKey(java.lang.String);
+    method public boolean containsKey(String);
     method public int describeContents();
-    method public android.graphics.Bitmap getBitmap(java.lang.String);
-    method public android.media.MediaDescription getDescription();
-    method public long getLong(java.lang.String);
-    method public android.media.Rating getRating(java.lang.String);
-    method public java.lang.String getString(java.lang.String);
-    method public java.lang.CharSequence getText(java.lang.String);
+    method public android.graphics.Bitmap getBitmap(String);
+    method @NonNull public android.media.MediaDescription getDescription();
+    method public long getLong(String);
+    method public android.media.Rating getRating(String);
+    method public String getString(String);
+    method public CharSequence getText(String);
     method public java.util.Set<java.lang.String> keySet();
     method public int size();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.MediaMetadata> CREATOR;
-    field public static final java.lang.String METADATA_KEY_ALBUM = "android.media.metadata.ALBUM";
-    field public static final java.lang.String METADATA_KEY_ALBUM_ART = "android.media.metadata.ALBUM_ART";
-    field public static final java.lang.String METADATA_KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
-    field public static final java.lang.String METADATA_KEY_ALBUM_ART_URI = "android.media.metadata.ALBUM_ART_URI";
-    field public static final java.lang.String METADATA_KEY_ART = "android.media.metadata.ART";
-    field public static final java.lang.String METADATA_KEY_ARTIST = "android.media.metadata.ARTIST";
-    field public static final java.lang.String METADATA_KEY_ART_URI = "android.media.metadata.ART_URI";
-    field public static final java.lang.String METADATA_KEY_AUTHOR = "android.media.metadata.AUTHOR";
-    field public static final java.lang.String METADATA_KEY_BT_FOLDER_TYPE = "android.media.metadata.BT_FOLDER_TYPE";
-    field public static final java.lang.String METADATA_KEY_COMPILATION = "android.media.metadata.COMPILATION";
-    field public static final java.lang.String METADATA_KEY_COMPOSER = "android.media.metadata.COMPOSER";
-    field public static final java.lang.String METADATA_KEY_DATE = "android.media.metadata.DATE";
-    field public static final java.lang.String METADATA_KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_DESCRIPTION = "android.media.metadata.DISPLAY_DESCRIPTION";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_ICON = "android.media.metadata.DISPLAY_ICON";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_ICON_URI = "android.media.metadata.DISPLAY_ICON_URI";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_SUBTITLE = "android.media.metadata.DISPLAY_SUBTITLE";
-    field public static final java.lang.String METADATA_KEY_DISPLAY_TITLE = "android.media.metadata.DISPLAY_TITLE";
-    field public static final java.lang.String METADATA_KEY_DURATION = "android.media.metadata.DURATION";
-    field public static final java.lang.String METADATA_KEY_GENRE = "android.media.metadata.GENRE";
-    field public static final java.lang.String METADATA_KEY_MEDIA_ID = "android.media.metadata.MEDIA_ID";
-    field public static final java.lang.String METADATA_KEY_MEDIA_URI = "android.media.metadata.MEDIA_URI";
-    field public static final java.lang.String METADATA_KEY_NUM_TRACKS = "android.media.metadata.NUM_TRACKS";
-    field public static final java.lang.String METADATA_KEY_RATING = "android.media.metadata.RATING";
-    field public static final java.lang.String METADATA_KEY_TITLE = "android.media.metadata.TITLE";
-    field public static final java.lang.String METADATA_KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
-    field public static final java.lang.String METADATA_KEY_USER_RATING = "android.media.metadata.USER_RATING";
-    field public static final java.lang.String METADATA_KEY_WRITER = "android.media.metadata.WRITER";
-    field public static final java.lang.String METADATA_KEY_YEAR = "android.media.metadata.YEAR";
+    field public static final String METADATA_KEY_ALBUM = "android.media.metadata.ALBUM";
+    field public static final String METADATA_KEY_ALBUM_ART = "android.media.metadata.ALBUM_ART";
+    field public static final String METADATA_KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
+    field public static final String METADATA_KEY_ALBUM_ART_URI = "android.media.metadata.ALBUM_ART_URI";
+    field public static final String METADATA_KEY_ART = "android.media.metadata.ART";
+    field public static final String METADATA_KEY_ARTIST = "android.media.metadata.ARTIST";
+    field public static final String METADATA_KEY_ART_URI = "android.media.metadata.ART_URI";
+    field public static final String METADATA_KEY_AUTHOR = "android.media.metadata.AUTHOR";
+    field public static final String METADATA_KEY_BT_FOLDER_TYPE = "android.media.metadata.BT_FOLDER_TYPE";
+    field public static final String METADATA_KEY_COMPILATION = "android.media.metadata.COMPILATION";
+    field public static final String METADATA_KEY_COMPOSER = "android.media.metadata.COMPOSER";
+    field public static final String METADATA_KEY_DATE = "android.media.metadata.DATE";
+    field public static final String METADATA_KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
+    field public static final String METADATA_KEY_DISPLAY_DESCRIPTION = "android.media.metadata.DISPLAY_DESCRIPTION";
+    field public static final String METADATA_KEY_DISPLAY_ICON = "android.media.metadata.DISPLAY_ICON";
+    field public static final String METADATA_KEY_DISPLAY_ICON_URI = "android.media.metadata.DISPLAY_ICON_URI";
+    field public static final String METADATA_KEY_DISPLAY_SUBTITLE = "android.media.metadata.DISPLAY_SUBTITLE";
+    field public static final String METADATA_KEY_DISPLAY_TITLE = "android.media.metadata.DISPLAY_TITLE";
+    field public static final String METADATA_KEY_DURATION = "android.media.metadata.DURATION";
+    field public static final String METADATA_KEY_GENRE = "android.media.metadata.GENRE";
+    field public static final String METADATA_KEY_MEDIA_ID = "android.media.metadata.MEDIA_ID";
+    field public static final String METADATA_KEY_MEDIA_URI = "android.media.metadata.MEDIA_URI";
+    field public static final String METADATA_KEY_NUM_TRACKS = "android.media.metadata.NUM_TRACKS";
+    field public static final String METADATA_KEY_RATING = "android.media.metadata.RATING";
+    field public static final String METADATA_KEY_TITLE = "android.media.metadata.TITLE";
+    field public static final String METADATA_KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
+    field public static final String METADATA_KEY_USER_RATING = "android.media.metadata.USER_RATING";
+    field public static final String METADATA_KEY_WRITER = "android.media.metadata.WRITER";
+    field public static final String METADATA_KEY_YEAR = "android.media.metadata.YEAR";
   }
 
   public static final class MediaMetadata.Builder {
     ctor public MediaMetadata.Builder();
     ctor public MediaMetadata.Builder(android.media.MediaMetadata);
     method public android.media.MediaMetadata build();
-    method public android.media.MediaMetadata.Builder putBitmap(java.lang.String, android.graphics.Bitmap);
-    method public android.media.MediaMetadata.Builder putLong(java.lang.String, long);
-    method public android.media.MediaMetadata.Builder putRating(java.lang.String, android.media.Rating);
-    method public android.media.MediaMetadata.Builder putString(java.lang.String, java.lang.String);
-    method public android.media.MediaMetadata.Builder putText(java.lang.String, java.lang.CharSequence);
+    method public android.media.MediaMetadata.Builder putBitmap(String, android.graphics.Bitmap);
+    method public android.media.MediaMetadata.Builder putLong(String, long);
+    method public android.media.MediaMetadata.Builder putRating(String, android.media.Rating);
+    method public android.media.MediaMetadata.Builder putString(String, String);
+    method public android.media.MediaMetadata.Builder putText(String, CharSequence);
   }
 
-  public abstract deprecated class MediaMetadataEditor {
-    method public synchronized void addEditableKey(int);
-    method public abstract void apply();
-    method public synchronized void clear();
-    method public synchronized android.graphics.Bitmap getBitmap(int, android.graphics.Bitmap) throws java.lang.IllegalArgumentException;
-    method public synchronized int[] getEditableKeys();
-    method public synchronized long getLong(int, long) throws java.lang.IllegalArgumentException;
-    method public synchronized java.lang.Object getObject(int, java.lang.Object) throws java.lang.IllegalArgumentException;
-    method public synchronized java.lang.String getString(int, java.lang.String) throws java.lang.IllegalArgumentException;
-    method public synchronized android.media.MediaMetadataEditor putBitmap(int, android.graphics.Bitmap) throws java.lang.IllegalArgumentException;
-    method public synchronized android.media.MediaMetadataEditor putLong(int, long) throws java.lang.IllegalArgumentException;
-    method public synchronized android.media.MediaMetadataEditor putObject(int, java.lang.Object) throws java.lang.IllegalArgumentException;
-    method public synchronized android.media.MediaMetadataEditor putString(int, java.lang.String) throws java.lang.IllegalArgumentException;
-    method public synchronized void removeEditableKeys();
-    field public static final int BITMAP_KEY_ARTWORK = 100; // 0x64
-    field public static final int RATING_KEY_BY_OTHERS = 101; // 0x65
-    field public static final int RATING_KEY_BY_USER = 268435457; // 0x10000001
+  @Deprecated public abstract class MediaMetadataEditor {
+    method @Deprecated public void addEditableKey(int);
+    method @Deprecated public abstract void apply();
+    method @Deprecated public void clear();
+    method @Deprecated public android.graphics.Bitmap getBitmap(int, android.graphics.Bitmap) throws java.lang.IllegalArgumentException;
+    method @Deprecated public int[] getEditableKeys();
+    method @Deprecated public long getLong(int, long) throws java.lang.IllegalArgumentException;
+    method @Deprecated public Object getObject(int, Object) throws java.lang.IllegalArgumentException;
+    method @Deprecated public String getString(int, String) throws java.lang.IllegalArgumentException;
+    method @Deprecated public android.media.MediaMetadataEditor putBitmap(int, android.graphics.Bitmap) throws java.lang.IllegalArgumentException;
+    method @Deprecated public android.media.MediaMetadataEditor putLong(int, long) throws java.lang.IllegalArgumentException;
+    method @Deprecated public android.media.MediaMetadataEditor putObject(int, Object) throws java.lang.IllegalArgumentException;
+    method @Deprecated public android.media.MediaMetadataEditor putString(int, String) throws java.lang.IllegalArgumentException;
+    method @Deprecated public void removeEditableKeys();
+    field @Deprecated public static final int BITMAP_KEY_ARTWORK = 100; // 0x64
+    field @Deprecated public static final int RATING_KEY_BY_OTHERS = 101; // 0x65
+    field @Deprecated public static final int RATING_KEY_BY_USER = 268435457; // 0x10000001
   }
 
   public class MediaMetadataRetriever implements java.lang.AutoCloseable {
     ctor public MediaMetadataRetriever();
     method public void close();
-    method public java.lang.String extractMetadata(int);
+    method public String extractMetadata(int);
     method public byte[] getEmbeddedPicture();
-    method public android.graphics.Bitmap getFrameAtIndex(int, android.media.MediaMetadataRetriever.BitmapParams);
+    method public android.graphics.Bitmap getFrameAtIndex(int, @NonNull android.media.MediaMetadataRetriever.BitmapParams);
     method public android.graphics.Bitmap getFrameAtIndex(int);
     method public android.graphics.Bitmap getFrameAtTime(long, int);
     method public android.graphics.Bitmap getFrameAtTime(long);
     method public android.graphics.Bitmap getFrameAtTime();
-    method public java.util.List<android.graphics.Bitmap> getFramesAtIndex(int, int, android.media.MediaMetadataRetriever.BitmapParams);
-    method public java.util.List<android.graphics.Bitmap> getFramesAtIndex(int, int);
-    method public android.graphics.Bitmap getImageAtIndex(int, android.media.MediaMetadataRetriever.BitmapParams);
+    method @NonNull public java.util.List<android.graphics.Bitmap> getFramesAtIndex(int, int, @NonNull android.media.MediaMetadataRetriever.BitmapParams);
+    method @NonNull public java.util.List<android.graphics.Bitmap> getFramesAtIndex(int, int);
+    method public android.graphics.Bitmap getImageAtIndex(int, @NonNull android.media.MediaMetadataRetriever.BitmapParams);
     method public android.graphics.Bitmap getImageAtIndex(int);
-    method public android.graphics.Bitmap getPrimaryImage(android.media.MediaMetadataRetriever.BitmapParams);
+    method public android.graphics.Bitmap getPrimaryImage(@NonNull android.media.MediaMetadataRetriever.BitmapParams);
     method public android.graphics.Bitmap getPrimaryImage();
     method public android.graphics.Bitmap getScaledFrameAtTime(long, int, int, int);
     method public void release();
-    method public void setDataSource(java.lang.String) throws java.lang.IllegalArgumentException;
-    method public void setDataSource(java.lang.String, java.util.Map<java.lang.String, java.lang.String>) throws java.lang.IllegalArgumentException;
+    method public void setDataSource(String) throws java.lang.IllegalArgumentException;
+    method public void setDataSource(String, java.util.Map<java.lang.String,java.lang.String>) throws java.lang.IllegalArgumentException;
     method public void setDataSource(java.io.FileDescriptor, long, long) throws java.lang.IllegalArgumentException;
     method public void setDataSource(java.io.FileDescriptor) throws java.lang.IllegalArgumentException;
     method public void setDataSource(android.content.Context, android.net.Uri) throws java.lang.IllegalArgumentException, java.lang.SecurityException;
@@ -25270,21 +25147,21 @@
 
   public static final class MediaMetadataRetriever.BitmapParams {
     ctor public MediaMetadataRetriever.BitmapParams();
-    method public android.graphics.Bitmap.Config getActualConfig();
-    method public android.graphics.Bitmap.Config getPreferredConfig();
-    method public void setPreferredConfig(android.graphics.Bitmap.Config);
+    method @NonNull public android.graphics.Bitmap.Config getActualConfig();
+    method @NonNull public android.graphics.Bitmap.Config getPreferredConfig();
+    method public void setPreferredConfig(@NonNull android.graphics.Bitmap.Config);
   }
 
   public final class MediaMuxer {
-    ctor public MediaMuxer(java.lang.String, int) throws java.io.IOException;
-    ctor public MediaMuxer(java.io.FileDescriptor, int) throws java.io.IOException;
-    method public int addTrack(android.media.MediaFormat);
+    ctor public MediaMuxer(@NonNull String, int) throws java.io.IOException;
+    ctor public MediaMuxer(@NonNull java.io.FileDescriptor, int) throws java.io.IOException;
+    method public int addTrack(@NonNull android.media.MediaFormat);
     method public void release();
     method public void setLocation(float, float);
     method public void setOrientationHint(int);
     method public void start();
     method public void stop();
-    method public void writeSampleData(int, java.nio.ByteBuffer, android.media.MediaCodec.BufferInfo);
+    method public void writeSampleData(int, @NonNull java.nio.ByteBuffer, @NonNull android.media.MediaCodec.BufferInfo);
   }
 
   public static final class MediaMuxer.OutputFormat {
@@ -25298,10 +25175,10 @@
   public class MediaPlayer implements android.media.AudioRouting android.media.VolumeAutomation {
     ctor public MediaPlayer();
     method public void addOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener, android.os.Handler);
-    method public void addTimedTextSource(java.lang.String, java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public void addTimedTextSource(android.content.Context, android.net.Uri, java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public void addTimedTextSource(java.io.FileDescriptor, java.lang.String) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public void addTimedTextSource(java.io.FileDescriptor, long, long, java.lang.String) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void addTimedTextSource(String, String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void addTimedTextSource(android.content.Context, android.net.Uri, String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void addTimedTextSource(java.io.FileDescriptor, String) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void addTimedTextSource(java.io.FileDescriptor, long, long, String) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
     method public void attachAuxEffect(int);
     method public void clearOnMediaTimeDiscontinuityListener();
     method public void clearOnSubtitleDataListener();
@@ -25310,22 +25187,23 @@
     method public static android.media.MediaPlayer create(android.content.Context, android.net.Uri, android.view.SurfaceHolder, android.media.AudioAttributes, int);
     method public static android.media.MediaPlayer create(android.content.Context, int);
     method public static android.media.MediaPlayer create(android.content.Context, int, android.media.AudioAttributes, int);
-    method public android.media.VolumeShaper createVolumeShaper(android.media.VolumeShaper.Configuration);
+    method @NonNull public android.media.VolumeShaper createVolumeShaper(@NonNull android.media.VolumeShaper.Configuration);
+    method public static void deprecateStreamTypeForPlayback(int, String, String) throws java.lang.IllegalArgumentException;
     method public void deselectTrack(int) throws java.lang.IllegalStateException;
     method protected void finalize();
     method public int getAudioSessionId();
     method public int getCurrentPosition();
     method public android.media.MediaPlayer.DrmInfo getDrmInfo();
-    method public java.lang.String getDrmPropertyString(java.lang.String) throws android.media.MediaPlayer.NoDrmSchemeException;
+    method @NonNull public String getDrmPropertyString(@NonNull String) throws android.media.MediaPlayer.NoDrmSchemeException;
     method public int getDuration();
-    method public android.media.MediaDrm.KeyRequest getKeyRequest(byte[], byte[], java.lang.String, int, java.util.Map<java.lang.String, java.lang.String>) throws android.media.MediaPlayer.NoDrmSchemeException;
+    method @NonNull public android.media.MediaDrm.KeyRequest getKeyRequest(@Nullable byte[], @Nullable byte[], @Nullable String, int, @Nullable java.util.Map<java.lang.String,java.lang.String>) throws android.media.MediaPlayer.NoDrmSchemeException;
     method public android.os.PersistableBundle getMetrics();
-    method public android.media.PlaybackParams getPlaybackParams();
+    method @NonNull public android.media.PlaybackParams getPlaybackParams();
     method public android.media.AudioDeviceInfo getPreferredDevice();
     method public android.media.AudioDeviceInfo getRoutedDevice();
     method public int getSelectedTrack(int) throws java.lang.IllegalStateException;
-    method public android.media.SyncParams getSyncParams();
-    method public android.media.MediaTimestamp getTimestamp();
+    method @NonNull public android.media.SyncParams getSyncParams();
+    method @Nullable public android.media.MediaTimestamp getTimestamp();
     method public android.media.MediaPlayer.TrackInfo[] getTrackInfo() throws java.lang.IllegalStateException;
     method public int getVideoHeight();
     method public int getVideoWidth();
@@ -25334,30 +25212,30 @@
     method public void pause() throws java.lang.IllegalStateException;
     method public void prepare() throws java.io.IOException, java.lang.IllegalStateException;
     method public void prepareAsync() throws java.lang.IllegalStateException;
-    method public void prepareDrm(java.util.UUID) throws android.media.MediaPlayer.ProvisioningNetworkErrorException, android.media.MediaPlayer.ProvisioningServerErrorException, android.media.ResourceBusyException, android.media.UnsupportedSchemeException;
-    method public byte[] provideKeyResponse(byte[], byte[]) throws android.media.DeniedByServerException, android.media.MediaPlayer.NoDrmSchemeException;
+    method public void prepareDrm(@NonNull java.util.UUID) throws android.media.MediaPlayer.ProvisioningNetworkErrorException, android.media.MediaPlayer.ProvisioningServerErrorException, android.media.ResourceBusyException, android.media.UnsupportedSchemeException;
+    method public byte[] provideKeyResponse(@Nullable byte[], @NonNull byte[]) throws android.media.DeniedByServerException, android.media.MediaPlayer.NoDrmSchemeException;
     method public void release();
     method public void releaseDrm() throws android.media.MediaPlayer.NoDrmSchemeException;
     method public void removeOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener);
     method public void reset();
-    method public void restoreKeys(byte[]) throws android.media.MediaPlayer.NoDrmSchemeException;
+    method public void restoreKeys(@NonNull byte[]) throws android.media.MediaPlayer.NoDrmSchemeException;
     method public void seekTo(long, int);
     method public void seekTo(int) throws java.lang.IllegalStateException;
     method public void selectTrack(int) throws java.lang.IllegalStateException;
     method public void setAudioAttributes(android.media.AudioAttributes) throws java.lang.IllegalArgumentException;
     method public void setAudioSessionId(int) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public deprecated void setAudioStreamType(int);
+    method @Deprecated public void setAudioStreamType(int);
     method public void setAuxEffectSendLevel(float);
-    method public void setDataSource(android.content.Context, android.net.Uri) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.SecurityException;
-    method public void setDataSource(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>, java.util.List<java.net.HttpCookie>) throws java.io.IOException;
-    method public void setDataSource(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.SecurityException;
-    method public void setDataSource(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.SecurityException;
-    method public void setDataSource(android.content.res.AssetFileDescriptor) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void setDataSource(@NonNull android.content.Context, @NonNull android.net.Uri) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.SecurityException;
+    method public void setDataSource(@NonNull android.content.Context, @NonNull android.net.Uri, @Nullable java.util.Map<java.lang.String,java.lang.String>, @Nullable java.util.List<java.net.HttpCookie>) throws java.io.IOException;
+    method public void setDataSource(@NonNull android.content.Context, @NonNull android.net.Uri, @Nullable java.util.Map<java.lang.String,java.lang.String>) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.SecurityException;
+    method public void setDataSource(String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.SecurityException;
+    method public void setDataSource(@NonNull android.content.res.AssetFileDescriptor) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
     method public void setDataSource(java.io.FileDescriptor) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
     method public void setDataSource(java.io.FileDescriptor, long, long) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
     method public void setDataSource(android.media.MediaDataSource) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
     method public void setDisplay(android.view.SurfaceHolder);
-    method public void setDrmPropertyString(java.lang.String, java.lang.String) throws android.media.MediaPlayer.NoDrmSchemeException;
+    method public void setDrmPropertyString(@NonNull String, @NonNull String) throws android.media.MediaPlayer.NoDrmSchemeException;
     method public void setLooping(boolean);
     method public void setNextMediaPlayer(android.media.MediaPlayer);
     method public void setOnBufferingUpdateListener(android.media.MediaPlayer.OnBufferingUpdateListener);
@@ -25369,20 +25247,20 @@
     method public void setOnDrmPreparedListener(android.media.MediaPlayer.OnDrmPreparedListener, android.os.Handler);
     method public void setOnErrorListener(android.media.MediaPlayer.OnErrorListener);
     method public void setOnInfoListener(android.media.MediaPlayer.OnInfoListener);
-    method public void setOnMediaTimeDiscontinuityListener(android.media.MediaPlayer.OnMediaTimeDiscontinuityListener, android.os.Handler);
-    method public void setOnMediaTimeDiscontinuityListener(android.media.MediaPlayer.OnMediaTimeDiscontinuityListener);
+    method public void setOnMediaTimeDiscontinuityListener(@NonNull android.media.MediaPlayer.OnMediaTimeDiscontinuityListener, @NonNull android.os.Handler);
+    method public void setOnMediaTimeDiscontinuityListener(@NonNull android.media.MediaPlayer.OnMediaTimeDiscontinuityListener);
     method public void setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener);
     method public void setOnSeekCompleteListener(android.media.MediaPlayer.OnSeekCompleteListener);
-    method public void setOnSubtitleDataListener(android.media.MediaPlayer.OnSubtitleDataListener, android.os.Handler);
-    method public void setOnSubtitleDataListener(android.media.MediaPlayer.OnSubtitleDataListener);
+    method public void setOnSubtitleDataListener(@NonNull android.media.MediaPlayer.OnSubtitleDataListener, @NonNull android.os.Handler);
+    method public void setOnSubtitleDataListener(@NonNull android.media.MediaPlayer.OnSubtitleDataListener);
     method public void setOnTimedMetaDataAvailableListener(android.media.MediaPlayer.OnTimedMetaDataAvailableListener);
     method public void setOnTimedTextListener(android.media.MediaPlayer.OnTimedTextListener);
     method public void setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener);
-    method public void setPlaybackParams(android.media.PlaybackParams);
+    method public void setPlaybackParams(@NonNull android.media.PlaybackParams);
     method public boolean setPreferredDevice(android.media.AudioDeviceInfo);
     method public void setScreenOnWhilePlaying(boolean);
     method public void setSurface(android.view.Surface);
-    method public void setSyncParams(android.media.SyncParams);
+    method public void setSyncParams(@NonNull android.media.SyncParams);
     method public void setVideoScalingMode(int);
     method public void setVolume(float, float);
     method public void setWakeMode(android.content.Context, int);
@@ -25408,7 +25286,7 @@
     field public static final int MEDIA_INFO_VIDEO_NOT_PLAYING = 805; // 0x325
     field public static final int MEDIA_INFO_VIDEO_RENDERING_START = 3; // 0x3
     field public static final int MEDIA_INFO_VIDEO_TRACK_LAGGING = 700; // 0x2bc
-    field public static final deprecated java.lang.String MEDIA_MIMETYPE_TEXT_SUBRIP = "application/x-subrip";
+    field @Deprecated public static final String MEDIA_MIMETYPE_TEXT_SUBRIP = "application/x-subrip";
     field public static final int PREPARE_DRM_STATUS_PREPARATION_ERROR = 3; // 0x3
     field public static final int PREPARE_DRM_STATUS_PROVISIONING_NETWORK_ERROR = 1; // 0x1
     field public static final int PREPARE_DRM_STATUS_PROVISIONING_SERVER_ERROR = 2; // 0x2
@@ -25422,97 +25300,97 @@
   }
 
   public static final class MediaPlayer.DrmInfo {
-    method public java.util.Map<java.util.UUID, byte[]> getPssh();
+    method public java.util.Map<java.util.UUID,byte[]> getPssh();
     method public java.util.UUID[] getSupportedSchemes();
   }
 
   public static final class MediaPlayer.MetricsConstants {
-    field public static final java.lang.String CODEC_AUDIO = "android.media.mediaplayer.audio.codec";
-    field public static final java.lang.String CODEC_VIDEO = "android.media.mediaplayer.video.codec";
-    field public static final java.lang.String DURATION = "android.media.mediaplayer.durationMs";
-    field public static final java.lang.String ERRORS = "android.media.mediaplayer.err";
-    field public static final java.lang.String ERROR_CODE = "android.media.mediaplayer.errcode";
-    field public static final java.lang.String FRAMES = "android.media.mediaplayer.frames";
-    field public static final java.lang.String FRAMES_DROPPED = "android.media.mediaplayer.dropped";
-    field public static final java.lang.String HEIGHT = "android.media.mediaplayer.height";
-    field public static final java.lang.String MIME_TYPE_AUDIO = "android.media.mediaplayer.audio.mime";
-    field public static final java.lang.String MIME_TYPE_VIDEO = "android.media.mediaplayer.video.mime";
-    field public static final java.lang.String PLAYING = "android.media.mediaplayer.playingMs";
-    field public static final java.lang.String WIDTH = "android.media.mediaplayer.width";
+    field public static final String CODEC_AUDIO = "android.media.mediaplayer.audio.codec";
+    field public static final String CODEC_VIDEO = "android.media.mediaplayer.video.codec";
+    field public static final String DURATION = "android.media.mediaplayer.durationMs";
+    field public static final String ERRORS = "android.media.mediaplayer.err";
+    field public static final String ERROR_CODE = "android.media.mediaplayer.errcode";
+    field public static final String FRAMES = "android.media.mediaplayer.frames";
+    field public static final String FRAMES_DROPPED = "android.media.mediaplayer.dropped";
+    field public static final String HEIGHT = "android.media.mediaplayer.height";
+    field public static final String MIME_TYPE_AUDIO = "android.media.mediaplayer.audio.mime";
+    field public static final String MIME_TYPE_VIDEO = "android.media.mediaplayer.video.mime";
+    field public static final String PLAYING = "android.media.mediaplayer.playingMs";
+    field public static final String WIDTH = "android.media.mediaplayer.width";
   }
 
   public static final class MediaPlayer.NoDrmSchemeException extends android.media.MediaDrmException {
-    ctor public MediaPlayer.NoDrmSchemeException(java.lang.String);
+    ctor public MediaPlayer.NoDrmSchemeException(String);
   }
 
-  public static abstract interface MediaPlayer.OnBufferingUpdateListener {
-    method public abstract void onBufferingUpdate(android.media.MediaPlayer, int);
+  public static interface MediaPlayer.OnBufferingUpdateListener {
+    method public void onBufferingUpdate(android.media.MediaPlayer, int);
   }
 
-  public static abstract interface MediaPlayer.OnCompletionListener {
-    method public abstract void onCompletion(android.media.MediaPlayer);
+  public static interface MediaPlayer.OnCompletionListener {
+    method public void onCompletion(android.media.MediaPlayer);
   }
 
-  public static abstract interface MediaPlayer.OnDrmConfigHelper {
-    method public abstract void onDrmConfig(android.media.MediaPlayer);
+  public static interface MediaPlayer.OnDrmConfigHelper {
+    method public void onDrmConfig(android.media.MediaPlayer);
   }
 
-  public static abstract interface MediaPlayer.OnDrmInfoListener {
-    method public abstract void onDrmInfo(android.media.MediaPlayer, android.media.MediaPlayer.DrmInfo);
+  public static interface MediaPlayer.OnDrmInfoListener {
+    method public void onDrmInfo(android.media.MediaPlayer, android.media.MediaPlayer.DrmInfo);
   }
 
-  public static abstract interface MediaPlayer.OnDrmPreparedListener {
-    method public abstract void onDrmPrepared(android.media.MediaPlayer, int);
+  public static interface MediaPlayer.OnDrmPreparedListener {
+    method public void onDrmPrepared(android.media.MediaPlayer, int);
   }
 
-  public static abstract interface MediaPlayer.OnErrorListener {
-    method public abstract boolean onError(android.media.MediaPlayer, int, int);
+  public static interface MediaPlayer.OnErrorListener {
+    method public boolean onError(android.media.MediaPlayer, int, int);
   }
 
-  public static abstract interface MediaPlayer.OnInfoListener {
-    method public abstract boolean onInfo(android.media.MediaPlayer, int, int);
+  public static interface MediaPlayer.OnInfoListener {
+    method public boolean onInfo(android.media.MediaPlayer, int, int);
   }
 
-  public static abstract interface MediaPlayer.OnMediaTimeDiscontinuityListener {
-    method public abstract void onMediaTimeDiscontinuity(android.media.MediaPlayer, android.media.MediaTimestamp);
+  public static interface MediaPlayer.OnMediaTimeDiscontinuityListener {
+    method public void onMediaTimeDiscontinuity(@NonNull android.media.MediaPlayer, @NonNull android.media.MediaTimestamp);
   }
 
-  public static abstract interface MediaPlayer.OnPreparedListener {
-    method public abstract void onPrepared(android.media.MediaPlayer);
+  public static interface MediaPlayer.OnPreparedListener {
+    method public void onPrepared(android.media.MediaPlayer);
   }
 
-  public static abstract interface MediaPlayer.OnSeekCompleteListener {
-    method public abstract void onSeekComplete(android.media.MediaPlayer);
+  public static interface MediaPlayer.OnSeekCompleteListener {
+    method public void onSeekComplete(android.media.MediaPlayer);
   }
 
-  public static abstract interface MediaPlayer.OnSubtitleDataListener {
-    method public abstract void onSubtitleData(android.media.MediaPlayer, android.media.SubtitleData);
+  public static interface MediaPlayer.OnSubtitleDataListener {
+    method public void onSubtitleData(@NonNull android.media.MediaPlayer, @NonNull android.media.SubtitleData);
   }
 
-  public static abstract interface MediaPlayer.OnTimedMetaDataAvailableListener {
-    method public abstract void onTimedMetaDataAvailable(android.media.MediaPlayer, android.media.TimedMetaData);
+  public static interface MediaPlayer.OnTimedMetaDataAvailableListener {
+    method public void onTimedMetaDataAvailable(android.media.MediaPlayer, android.media.TimedMetaData);
   }
 
-  public static abstract interface MediaPlayer.OnTimedTextListener {
-    method public abstract void onTimedText(android.media.MediaPlayer, android.media.TimedText);
+  public static interface MediaPlayer.OnTimedTextListener {
+    method public void onTimedText(android.media.MediaPlayer, android.media.TimedText);
   }
 
-  public static abstract interface MediaPlayer.OnVideoSizeChangedListener {
-    method public abstract void onVideoSizeChanged(android.media.MediaPlayer, int, int);
+  public static interface MediaPlayer.OnVideoSizeChangedListener {
+    method public void onVideoSizeChanged(android.media.MediaPlayer, int, int);
   }
 
   public static final class MediaPlayer.ProvisioningNetworkErrorException extends android.media.MediaDrmException {
-    ctor public MediaPlayer.ProvisioningNetworkErrorException(java.lang.String);
+    ctor public MediaPlayer.ProvisioningNetworkErrorException(String);
   }
 
   public static final class MediaPlayer.ProvisioningServerErrorException extends android.media.MediaDrmException {
-    ctor public MediaPlayer.ProvisioningServerErrorException(java.lang.String);
+    ctor public MediaPlayer.ProvisioningServerErrorException(String);
   }
 
   public static class MediaPlayer.TrackInfo implements android.os.Parcelable {
     method public int describeContents();
     method public android.media.MediaFormat getFormat();
-    method public java.lang.String getLanguage();
+    method public String getLanguage();
     method public int getTrackType();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int MEDIA_TRACK_TYPE_AUDIO = 2; // 0x2
@@ -25526,64 +25404,64 @@
   public class MediaPlayer2 implements android.media.AudioRouting java.lang.AutoCloseable {
     ctor public MediaPlayer2(android.content.Context);
     method public void addOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener, android.os.Handler);
-    method public java.lang.Object attachAuxEffect(int);
-    method public boolean cancelCommand(java.lang.Object);
-    method public java.lang.Object clearNextDataSources();
+    method public Object attachAuxEffect(int);
+    method public boolean cancelCommand(@NonNull Object);
+    method public Object clearNextDataSources();
     method public void clearPendingCommands();
     method public void close();
-    method public java.lang.Object deselectTrack(int);
-    method public java.lang.Object deselectTrack(android.media.DataSourceDesc, int);
-    method public android.media.AudioAttributes getAudioAttributes();
+    method public Object deselectTrack(int);
+    method public Object deselectTrack(@NonNull android.media.DataSourceDesc, int);
+    method @NonNull public android.media.AudioAttributes getAudioAttributes();
     method public int getAudioSessionId();
     method public long getBufferedPosition();
-    method public long getBufferedPosition(android.media.DataSourceDesc);
-    method public android.media.DataSourceDesc getCurrentDataSource();
+    method public long getBufferedPosition(@NonNull android.media.DataSourceDesc);
+    method @Nullable public android.media.DataSourceDesc getCurrentDataSource();
     method public long getCurrentPosition();
     method public long getDuration();
-    method public long getDuration(android.media.DataSourceDesc);
+    method public long getDuration(@NonNull android.media.DataSourceDesc);
     method public float getMaxPlayerVolume();
     method public android.os.PersistableBundle getMetrics();
-    method public android.media.PlaybackParams getPlaybackParams();
+    method @NonNull public android.media.PlaybackParams getPlaybackParams();
     method public float getPlayerVolume();
     method public android.media.AudioDeviceInfo getPreferredDevice();
     method public android.media.AudioDeviceInfo getRoutedDevice();
     method public int getSelectedTrack(int);
-    method public int getSelectedTrack(android.media.DataSourceDesc, int);
+    method public int getSelectedTrack(@NonNull android.media.DataSourceDesc, int);
     method public int getState();
-    method public android.media.SyncParams getSyncParams();
-    method public android.media.MediaTimestamp getTimestamp();
-    method public java.util.List<android.media.MediaPlayer2.TrackInfo> getTrackInfo();
-    method public java.util.List<android.media.MediaPlayer2.TrackInfo> getTrackInfo(android.media.DataSourceDesc);
+    method @NonNull public android.media.SyncParams getSyncParams();
+    method @Nullable public android.media.MediaTimestamp getTimestamp();
+    method @NonNull public java.util.List<android.media.MediaPlayer2.TrackInfo> getTrackInfo();
+    method @NonNull public java.util.List<android.media.MediaPlayer2.TrackInfo> getTrackInfo(@NonNull android.media.DataSourceDesc);
     method public android.media.VideoSize getVideoSize();
     method public boolean isLooping();
-    method public java.lang.Object loopCurrent(boolean);
-    method public java.lang.Object notifyWhenCommandLabelReached(java.lang.Object);
-    method public java.lang.Object pause();
-    method public java.lang.Object play();
-    method public java.lang.Object prepare();
-    method public void registerEventCallback(java.util.concurrent.Executor, android.media.MediaPlayer2.EventCallback);
+    method public Object loopCurrent(boolean);
+    method public Object notifyWhenCommandLabelReached(@NonNull Object);
+    method public Object pause();
+    method public Object play();
+    method public Object prepare();
+    method public void registerEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaPlayer2.EventCallback);
     method public void removeOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener);
     method public void reset();
-    method public java.lang.Object seekTo(long);
-    method public java.lang.Object seekTo(long, int);
-    method public java.lang.Object selectTrack(int);
-    method public java.lang.Object selectTrack(android.media.DataSourceDesc, int);
-    method public java.lang.Object setAudioAttributes(android.media.AudioAttributes);
-    method public java.lang.Object setAudioSessionId(int);
-    method public java.lang.Object setAuxEffectSendLevel(float);
-    method public java.lang.Object setDataSource(android.media.DataSourceDesc);
-    method public java.lang.Object setDisplay(android.view.SurfaceHolder);
-    method public void setDrmEventCallback(java.util.concurrent.Executor, android.media.MediaPlayer2.DrmEventCallback);
-    method public java.lang.Object setNextDataSource(android.media.DataSourceDesc);
-    method public java.lang.Object setNextDataSources(java.util.List<android.media.DataSourceDesc>);
-    method public java.lang.Object setPlaybackParams(android.media.PlaybackParams);
-    method public java.lang.Object setPlayerVolume(float);
+    method public Object seekTo(long);
+    method public Object seekTo(long, int);
+    method public Object selectTrack(int);
+    method public Object selectTrack(@NonNull android.media.DataSourceDesc, int);
+    method public Object setAudioAttributes(@NonNull android.media.AudioAttributes);
+    method public Object setAudioSessionId(int);
+    method public Object setAuxEffectSendLevel(float);
+    method public Object setDataSource(@NonNull android.media.DataSourceDesc);
+    method public Object setDisplay(android.view.SurfaceHolder);
+    method public void setDrmEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaPlayer2.DrmEventCallback);
+    method public Object setNextDataSource(@NonNull android.media.DataSourceDesc);
+    method public Object setNextDataSources(@NonNull java.util.List<android.media.DataSourceDesc>);
+    method public Object setPlaybackParams(@NonNull android.media.PlaybackParams);
+    method public Object setPlayerVolume(float);
     method public boolean setPreferredDevice(android.media.AudioDeviceInfo);
-    method public java.lang.Object setScreenOnWhilePlaying(boolean);
-    method public java.lang.Object setSurface(android.view.Surface);
-    method public java.lang.Object setSyncParams(android.media.SyncParams);
-    method public java.lang.Object setWakeLock(android.os.PowerManager.WakeLock);
-    method public java.lang.Object skipToNext();
+    method public Object setScreenOnWhilePlaying(boolean);
+    method public Object setSurface(android.view.Surface);
+    method public Object setSyncParams(@NonNull android.media.SyncParams);
+    method public Object setWakeLock(@NonNull android.os.PowerManager.WakeLock);
+    method public Object skipToNext();
     method public void unregisterEventCallback(android.media.MediaPlayer2.EventCallback);
     field public static final int CALL_COMPLETED_ATTACH_AUX_EFFECT = 1; // 0x1
     field public static final int CALL_COMPLETED_CLEAR_NEXT_DATA_SOURCES = 30; // 0x1e
@@ -25654,14 +25532,14 @@
 
   public static class MediaPlayer2.DrmEventCallback {
     ctor public MediaPlayer2.DrmEventCallback();
-    method public void onDrmConfig(android.media.MediaPlayer2, android.media.DataSourceDesc, android.media.MediaDrm);
+    method public void onDrmConfig(@NonNull android.media.MediaPlayer2, @NonNull android.media.DataSourceDesc, @NonNull android.media.MediaDrm);
     method public android.media.MediaPlayer2.DrmPreparationInfo onDrmInfo(android.media.MediaPlayer2, android.media.DataSourceDesc, android.media.MediaPlayer2.DrmInfo);
-    method public byte[] onDrmKeyRequest(android.media.MediaPlayer2, android.media.DataSourceDesc, android.media.MediaDrm.KeyRequest);
-    method public void onDrmPrepared(android.media.MediaPlayer2, android.media.DataSourceDesc, int, byte[]);
+    method public byte[] onDrmKeyRequest(@NonNull android.media.MediaPlayer2, @NonNull android.media.DataSourceDesc, @NonNull android.media.MediaDrm.KeyRequest);
+    method public void onDrmPrepared(@NonNull android.media.MediaPlayer2, @NonNull android.media.DataSourceDesc, int, @Nullable byte[]);
   }
 
   public static final class MediaPlayer2.DrmInfo {
-    method public java.util.Map<java.util.UUID, byte[]> getPssh();
+    method public java.util.Map<java.util.UUID,byte[]> getPssh();
     method public java.util.List<java.util.UUID> getSupportedSchemes();
   }
 
@@ -25671,48 +25549,48 @@
   public static final class MediaPlayer2.DrmPreparationInfo.Builder {
     ctor public MediaPlayer2.DrmPreparationInfo.Builder();
     method public android.media.MediaPlayer2.DrmPreparationInfo build();
-    method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setInitData(byte[]);
-    method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setKeySetId(byte[]);
+    method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setInitData(@Nullable byte[]);
+    method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setKeySetId(@Nullable byte[]);
     method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setKeyType(int);
-    method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setMimeType(java.lang.String);
-    method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setOptionalParameters(java.util.Map<java.lang.String, java.lang.String>);
-    method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setUuid(java.util.UUID);
+    method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setMimeType(@Nullable String);
+    method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setOptionalParameters(@Nullable java.util.Map<java.lang.String,java.lang.String>);
+    method public android.media.MediaPlayer2.DrmPreparationInfo.Builder setUuid(@NonNull java.util.UUID);
   }
 
   public static class MediaPlayer2.EventCallback {
     ctor public MediaPlayer2.EventCallback();
-    method public void onCallCompleted(android.media.MediaPlayer2, android.media.DataSourceDesc, int, int);
-    method public void onCommandLabelReached(android.media.MediaPlayer2, java.lang.Object);
-    method public void onError(android.media.MediaPlayer2, android.media.DataSourceDesc, int, int);
-    method public void onInfo(android.media.MediaPlayer2, android.media.DataSourceDesc, int, int);
-    method public void onMediaTimeDiscontinuity(android.media.MediaPlayer2, android.media.DataSourceDesc, android.media.MediaTimestamp);
-    method public void onSubtitleData(android.media.MediaPlayer2, android.media.DataSourceDesc, android.media.SubtitleData);
-    method public void onTimedMetaDataAvailable(android.media.MediaPlayer2, android.media.DataSourceDesc, android.media.TimedMetaData);
-    method public void onVideoSizeChanged(android.media.MediaPlayer2, android.media.DataSourceDesc, android.media.VideoSize);
+    method public void onCallCompleted(@NonNull android.media.MediaPlayer2, @NonNull android.media.DataSourceDesc, int, int);
+    method public void onCommandLabelReached(@NonNull android.media.MediaPlayer2, @NonNull Object);
+    method public void onError(@NonNull android.media.MediaPlayer2, @NonNull android.media.DataSourceDesc, int, int);
+    method public void onInfo(@NonNull android.media.MediaPlayer2, @NonNull android.media.DataSourceDesc, int, int);
+    method public void onMediaTimeDiscontinuity(@NonNull android.media.MediaPlayer2, @NonNull android.media.DataSourceDesc, @NonNull android.media.MediaTimestamp);
+    method public void onSubtitleData(@NonNull android.media.MediaPlayer2, @NonNull android.media.DataSourceDesc, @NonNull android.media.SubtitleData);
+    method public void onTimedMetaDataAvailable(@NonNull android.media.MediaPlayer2, @NonNull android.media.DataSourceDesc, @NonNull android.media.TimedMetaData);
+    method public void onVideoSizeChanged(@NonNull android.media.MediaPlayer2, @NonNull android.media.DataSourceDesc, @NonNull android.media.VideoSize);
   }
 
   public static final class MediaPlayer2.MetricsConstants {
-    field public static final java.lang.String CODEC_AUDIO = "android.media.mediaplayer.audio.codec";
-    field public static final java.lang.String CODEC_VIDEO = "android.media.mediaplayer.video.codec";
-    field public static final java.lang.String DURATION = "android.media.mediaplayer.durationMs";
-    field public static final java.lang.String ERRORS = "android.media.mediaplayer.err";
-    field public static final java.lang.String ERROR_CODE = "android.media.mediaplayer.errcode";
-    field public static final java.lang.String FRAMES = "android.media.mediaplayer.frames";
-    field public static final java.lang.String FRAMES_DROPPED = "android.media.mediaplayer.dropped";
-    field public static final java.lang.String HEIGHT = "android.media.mediaplayer.height";
-    field public static final java.lang.String MIME_TYPE_AUDIO = "android.media.mediaplayer.audio.mime";
-    field public static final java.lang.String MIME_TYPE_VIDEO = "android.media.mediaplayer.video.mime";
-    field public static final java.lang.String PLAYING = "android.media.mediaplayer.playingMs";
-    field public static final java.lang.String WIDTH = "android.media.mediaplayer.width";
+    field public static final String CODEC_AUDIO = "android.media.mediaplayer.audio.codec";
+    field public static final String CODEC_VIDEO = "android.media.mediaplayer.video.codec";
+    field public static final String DURATION = "android.media.mediaplayer.durationMs";
+    field public static final String ERRORS = "android.media.mediaplayer.err";
+    field public static final String ERROR_CODE = "android.media.mediaplayer.errcode";
+    field public static final String FRAMES = "android.media.mediaplayer.frames";
+    field public static final String FRAMES_DROPPED = "android.media.mediaplayer.dropped";
+    field public static final String HEIGHT = "android.media.mediaplayer.height";
+    field public static final String MIME_TYPE_AUDIO = "android.media.mediaplayer.audio.mime";
+    field public static final String MIME_TYPE_VIDEO = "android.media.mediaplayer.video.mime";
+    field public static final String PLAYING = "android.media.mediaplayer.playingMs";
+    field public static final String WIDTH = "android.media.mediaplayer.width";
   }
 
   public static final class MediaPlayer2.NoDrmSchemeException extends android.media.MediaDrmException {
-    ctor public MediaPlayer2.NoDrmSchemeException(java.lang.String);
+    ctor public MediaPlayer2.NoDrmSchemeException(String);
   }
 
   public static class MediaPlayer2.TrackInfo {
     method public android.media.MediaFormat getFormat();
-    method public java.lang.String getLanguage();
+    method public String getLanguage();
     method public int getTrackType();
     field public static final int MEDIA_TRACK_TYPE_AUDIO = 2; // 0x2
     field public static final int MEDIA_TRACK_TYPE_METADATA = 5; // 0x5
@@ -25726,7 +25604,7 @@
     method public void addOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener, android.os.Handler);
     method protected void finalize();
     method public java.util.List<android.media.MicrophoneInfo> getActiveMicrophones() throws java.io.IOException;
-    method public android.media.AudioRecordingConfiguration getActiveRecordingConfiguration();
+    method @Nullable public android.media.AudioRecordingConfiguration getActiveRecordingConfiguration();
     method public static final int getAudioSourceMax();
     method public int getMaxAmplitude() throws java.lang.IllegalStateException;
     method public android.os.PersistableBundle getMetrics();
@@ -25735,7 +25613,7 @@
     method public android.view.Surface getSurface();
     method public void pause() throws java.lang.IllegalStateException;
     method public void prepare() throws java.io.IOException, java.lang.IllegalStateException;
-    method public void registerAudioRecordingCallback(java.util.concurrent.Executor, android.media.AudioManager.AudioRecordingCallback);
+    method public void registerAudioRecordingCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.AudioRecordingCallback);
     method public void release();
     method public void removeOnRoutingChangedListener(android.media.AudioRouting.OnRoutingChangedListener);
     method public void reset();
@@ -25745,9 +25623,9 @@
     method public void setAudioEncodingBitRate(int);
     method public void setAudioSamplingRate(int);
     method public void setAudioSource(int) throws java.lang.IllegalStateException;
-    method public deprecated void setCamera(android.hardware.Camera);
+    method @Deprecated public void setCamera(android.hardware.Camera);
     method public void setCaptureRate(double);
-    method public void setInputSurface(android.view.Surface);
+    method public void setInputSurface(@NonNull android.view.Surface);
     method public void setLocation(float, float);
     method public void setMaxDuration(int) throws java.lang.IllegalArgumentException;
     method public void setMaxFileSize(long) throws java.lang.IllegalArgumentException;
@@ -25758,7 +25636,7 @@
     method public void setOrientationHint(int);
     method public void setOutputFile(java.io.FileDescriptor) throws java.lang.IllegalStateException;
     method public void setOutputFile(java.io.File);
-    method public void setOutputFile(java.lang.String) throws java.lang.IllegalStateException;
+    method public void setOutputFile(String) throws java.lang.IllegalStateException;
     method public void setOutputFormat(int) throws java.lang.IllegalStateException;
     method public boolean setPreferredDevice(android.media.AudioDeviceInfo);
     method public void setPreviewDisplay(android.view.Surface);
@@ -25771,7 +25649,7 @@
     method public void setVideoSource(int) throws java.lang.IllegalStateException;
     method public void start() throws java.lang.IllegalStateException;
     method public void stop() throws java.lang.IllegalStateException;
-    method public void unregisterAudioRecordingCallback(android.media.AudioManager.AudioRecordingCallback);
+    method public void unregisterAudioRecordingCallback(@NonNull android.media.AudioManager.AudioRecordingCallback);
     field public static final int MEDIA_ERROR_SERVER_DIED = 100; // 0x64
     field public static final int MEDIA_RECORDER_ERROR_UNKNOWN = 1; // 0x1
     field public static final int MEDIA_RECORDER_INFO_MAX_DURATION_REACHED = 800; // 0x320
@@ -25796,7 +25674,7 @@
     field public static final int CAMCORDER = 5; // 0x5
     field public static final int DEFAULT = 0; // 0x0
     field public static final int MIC = 1; // 0x1
-    field public static final int REMOTE_SUBMIX = 8; // 0x8
+    field @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_OUTPUT) public static final int REMOTE_SUBMIX = 8; // 0x8
     field public static final int UNPROCESSED = 9; // 0x9
     field public static final int VOICE_CALL = 4; // 0x4
     field public static final int VOICE_COMMUNICATION = 7; // 0x7
@@ -25807,30 +25685,30 @@
   }
 
   public static final class MediaRecorder.MetricsConstants {
-    field public static final java.lang.String AUDIO_BITRATE = "android.media.mediarecorder.audio-bitrate";
-    field public static final java.lang.String AUDIO_CHANNELS = "android.media.mediarecorder.audio-channels";
-    field public static final java.lang.String AUDIO_SAMPLERATE = "android.media.mediarecorder.audio-samplerate";
-    field public static final java.lang.String AUDIO_TIMESCALE = "android.media.mediarecorder.audio-timescale";
-    field public static final java.lang.String CAPTURE_FPS = "android.media.mediarecorder.capture-fps";
-    field public static final java.lang.String CAPTURE_FPS_ENABLE = "android.media.mediarecorder.capture-fpsenable";
-    field public static final java.lang.String FRAMERATE = "android.media.mediarecorder.frame-rate";
-    field public static final java.lang.String HEIGHT = "android.media.mediarecorder.height";
-    field public static final java.lang.String MOVIE_TIMESCALE = "android.media.mediarecorder.movie-timescale";
-    field public static final java.lang.String ROTATION = "android.media.mediarecorder.rotation";
-    field public static final java.lang.String VIDEO_BITRATE = "android.media.mediarecorder.video-bitrate";
-    field public static final java.lang.String VIDEO_IFRAME_INTERVAL = "android.media.mediarecorder.video-iframe-interval";
-    field public static final java.lang.String VIDEO_LEVEL = "android.media.mediarecorder.video-encoder-level";
-    field public static final java.lang.String VIDEO_PROFILE = "android.media.mediarecorder.video-encoder-profile";
-    field public static final java.lang.String VIDEO_TIMESCALE = "android.media.mediarecorder.video-timescale";
-    field public static final java.lang.String WIDTH = "android.media.mediarecorder.width";
+    field public static final String AUDIO_BITRATE = "android.media.mediarecorder.audio-bitrate";
+    field public static final String AUDIO_CHANNELS = "android.media.mediarecorder.audio-channels";
+    field public static final String AUDIO_SAMPLERATE = "android.media.mediarecorder.audio-samplerate";
+    field public static final String AUDIO_TIMESCALE = "android.media.mediarecorder.audio-timescale";
+    field public static final String CAPTURE_FPS = "android.media.mediarecorder.capture-fps";
+    field public static final String CAPTURE_FPS_ENABLE = "android.media.mediarecorder.capture-fpsenable";
+    field public static final String FRAMERATE = "android.media.mediarecorder.frame-rate";
+    field public static final String HEIGHT = "android.media.mediarecorder.height";
+    field public static final String MOVIE_TIMESCALE = "android.media.mediarecorder.movie-timescale";
+    field public static final String ROTATION = "android.media.mediarecorder.rotation";
+    field public static final String VIDEO_BITRATE = "android.media.mediarecorder.video-bitrate";
+    field public static final String VIDEO_IFRAME_INTERVAL = "android.media.mediarecorder.video-iframe-interval";
+    field public static final String VIDEO_LEVEL = "android.media.mediarecorder.video-encoder-level";
+    field public static final String VIDEO_PROFILE = "android.media.mediarecorder.video-encoder-profile";
+    field public static final String VIDEO_TIMESCALE = "android.media.mediarecorder.video-timescale";
+    field public static final String WIDTH = "android.media.mediarecorder.width";
   }
 
-  public static abstract interface MediaRecorder.OnErrorListener {
-    method public abstract void onError(android.media.MediaRecorder, int, int);
+  public static interface MediaRecorder.OnErrorListener {
+    method public void onError(android.media.MediaRecorder, int, int);
   }
 
-  public static abstract interface MediaRecorder.OnInfoListener {
-    method public abstract void onInfo(android.media.MediaRecorder, int, int);
+  public static interface MediaRecorder.OnInfoListener {
+    method public void onInfo(android.media.MediaRecorder, int, int);
   }
 
   public final class MediaRecorder.OutputFormat {
@@ -25841,7 +25719,7 @@
     field public static final int MPEG_2_TS = 8; // 0x8
     field public static final int MPEG_4 = 2; // 0x2
     field public static final int OGG = 11; // 0xb
-    field public static final deprecated int RAW_AMR = 3; // 0x3
+    field @Deprecated public static final int RAW_AMR = 3; // 0x3
     field public static final int THREE_GPP = 1; // 0x1
     field public static final int WEBM = 9; // 0x9
   }
@@ -25866,7 +25744,7 @@
     method public void addCallback(int, android.media.MediaRouter.Callback, int);
     method public void addUserRoute(android.media.MediaRouter.UserRouteInfo);
     method public void clearUserRoutes();
-    method public android.media.MediaRouter.RouteCategory createRouteCategory(java.lang.CharSequence, boolean);
+    method public android.media.MediaRouter.RouteCategory createRouteCategory(CharSequence, boolean);
     method public android.media.MediaRouter.RouteCategory createRouteCategory(int, boolean);
     method public android.media.MediaRouter.UserRouteInfo createUserRoute(android.media.MediaRouter.RouteCategory);
     method public android.media.MediaRouter.RouteCategory getCategoryAt(int);
@@ -25877,7 +25755,7 @@
     method public android.media.MediaRouter.RouteInfo getSelectedRoute(int);
     method public void removeCallback(android.media.MediaRouter.Callback);
     method public void removeUserRoute(android.media.MediaRouter.UserRouteInfo);
-    method public void selectRoute(int, android.media.MediaRouter.RouteInfo);
+    method public void selectRoute(int, @NonNull android.media.MediaRouter.RouteInfo);
     field public static final int CALLBACK_FLAG_PERFORM_ACTIVE_SCAN = 1; // 0x1
     field public static final int CALLBACK_FLAG_UNFILTERED_EVENTS = 2; // 0x2
     field public static final int ROUTE_TYPE_LIVE_AUDIO = 1; // 0x1
@@ -25885,7 +25763,7 @@
     field public static final int ROUTE_TYPE_USER = 8388608; // 0x800000
   }
 
-  public static abstract class MediaRouter.Callback {
+  public abstract static class MediaRouter.Callback {
     ctor public MediaRouter.Callback();
     method public abstract void onRouteAdded(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
     method public abstract void onRouteChanged(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
@@ -25899,8 +25777,8 @@
   }
 
   public static class MediaRouter.RouteCategory {
-    method public java.lang.CharSequence getName();
-    method public java.lang.CharSequence getName(android.content.Context);
+    method public CharSequence getName();
+    method public CharSequence getName(android.content.Context);
     method public java.util.List<android.media.MediaRouter.RouteInfo> getRoutes(java.util.List<android.media.MediaRouter.RouteInfo>);
     method public int getSupportedTypes();
     method public boolean isGroupable();
@@ -25914,23 +25792,23 @@
     method public void removeRoute(android.media.MediaRouter.RouteInfo);
     method public void removeRoute(int);
     method public void setIconDrawable(android.graphics.drawable.Drawable);
-    method public void setIconResource(int);
+    method public void setIconResource(@DrawableRes int);
   }
 
   public static class MediaRouter.RouteInfo {
     method public android.media.MediaRouter.RouteCategory getCategory();
-    method public java.lang.CharSequence getDescription();
+    method public CharSequence getDescription();
     method public int getDeviceType();
     method public android.media.MediaRouter.RouteGroup getGroup();
     method public android.graphics.drawable.Drawable getIconDrawable();
-    method public java.lang.CharSequence getName();
-    method public java.lang.CharSequence getName(android.content.Context);
+    method public CharSequence getName();
+    method public CharSequence getName(android.content.Context);
     method public int getPlaybackStream();
     method public int getPlaybackType();
     method public android.view.Display getPresentationDisplay();
-    method public java.lang.CharSequence getStatus();
+    method public CharSequence getStatus();
     method public int getSupportedTypes();
-    method public java.lang.Object getTag();
+    method public Object getTag();
     method public int getVolume();
     method public int getVolumeHandling();
     method public int getVolumeMax();
@@ -25938,7 +25816,7 @@
     method public boolean isEnabled();
     method public void requestSetVolume(int);
     method public void requestUpdateVolume(int);
-    method public void setTag(java.lang.Object);
+    method public void setTag(Object);
     field public static final int DEVICE_TYPE_BLUETOOTH = 3; // 0x3
     field public static final int DEVICE_TYPE_SPEAKER = 2; // 0x2
     field public static final int DEVICE_TYPE_TV = 1; // 0x1
@@ -25963,22 +25841,22 @@
 
   public static class MediaRouter.UserRouteInfo extends android.media.MediaRouter.RouteInfo {
     method public android.media.RemoteControlClient getRemoteControlClient();
-    method public void setDescription(java.lang.CharSequence);
+    method public void setDescription(CharSequence);
     method public void setIconDrawable(android.graphics.drawable.Drawable);
-    method public void setIconResource(int);
-    method public void setName(java.lang.CharSequence);
+    method public void setIconResource(@DrawableRes int);
+    method public void setName(CharSequence);
     method public void setName(int);
     method public void setPlaybackStream(int);
     method public void setPlaybackType(int);
     method public void setRemoteControlClient(android.media.RemoteControlClient);
-    method public void setStatus(java.lang.CharSequence);
+    method public void setStatus(CharSequence);
     method public void setVolume(int);
     method public void setVolumeCallback(android.media.MediaRouter.VolumeCallback);
     method public void setVolumeHandling(int);
     method public void setVolumeMax(int);
   }
 
-  public static abstract class MediaRouter.VolumeCallback {
+  public abstract static class MediaRouter.VolumeCallback {
     ctor public MediaRouter.VolumeCallback();
     method public abstract void onVolumeSetRequest(android.media.MediaRouter.RouteInfo, int);
     method public abstract void onVolumeUpdateRequest(android.media.MediaRouter.RouteInfo, int);
@@ -25988,79 +25866,81 @@
     ctor public MediaScannerConnection(android.content.Context, android.media.MediaScannerConnection.MediaScannerConnectionClient);
     method public void connect();
     method public void disconnect();
-    method public synchronized boolean isConnected();
+    method public boolean isConnected();
     method public void onServiceConnected(android.content.ComponentName, android.os.IBinder);
     method public void onServiceDisconnected(android.content.ComponentName);
-    method public void scanFile(java.lang.String, java.lang.String);
-    method public static void scanFile(android.content.Context, java.lang.String[], java.lang.String[], android.media.MediaScannerConnection.OnScanCompletedListener);
+    method public void scanFile(String, String);
+    method public static void scanFile(android.content.Context, String[], String[], android.media.MediaScannerConnection.OnScanCompletedListener);
   }
 
-  public static abstract interface MediaScannerConnection.MediaScannerConnectionClient implements android.media.MediaScannerConnection.OnScanCompletedListener {
-    method public abstract void onMediaScannerConnected();
+  public static interface MediaScannerConnection.MediaScannerConnectionClient extends android.media.MediaScannerConnection.OnScanCompletedListener {
+    method public void onMediaScannerConnected();
   }
 
-  public static abstract interface MediaScannerConnection.OnScanCompletedListener {
-    method public abstract void onScanCompleted(java.lang.String, android.net.Uri);
+  public static interface MediaScannerConnection.OnScanCompletedListener {
+    method public void onScanCompleted(String, android.net.Uri);
   }
 
   public class MediaSession2 implements java.lang.AutoCloseable {
-    method public void broadcastSessionCommand(android.media.Session2Command, android.os.Bundle);
-    method public void cancelSessionCommand(android.media.MediaSession2.ControllerInfo, java.lang.Object);
+    method public void broadcastSessionCommand(@NonNull android.media.Session2Command, @Nullable android.os.Bundle);
+    method public void cancelSessionCommand(@NonNull android.media.MediaSession2.ControllerInfo, @NonNull Object);
     method public void close();
-    method public java.lang.String getSessionId();
-    method public android.media.Session2Token getSessionToken();
-    method public java.lang.Object sendSessionCommand(android.media.MediaSession2.ControllerInfo, android.media.Session2Command, android.os.Bundle);
+    method @NonNull public String getSessionId();
+    method @NonNull public android.media.Session2Token getSessionToken();
+    method public boolean isPlaybackActive();
+    method @NonNull public Object sendSessionCommand(@NonNull android.media.MediaSession2.ControllerInfo, @NonNull android.media.Session2Command, @Nullable android.os.Bundle);
+    method public void setPlaybackActive(boolean);
   }
 
   public static final class MediaSession2.Builder {
-    ctor public MediaSession2.Builder(android.content.Context);
-    method public android.media.MediaSession2 build();
-    method public android.media.MediaSession2.Builder setId(java.lang.String);
-    method public android.media.MediaSession2.Builder setSessionActivity(android.app.PendingIntent);
-    method public android.media.MediaSession2.Builder setSessionCallback(java.util.concurrent.Executor, android.media.MediaSession2.SessionCallback);
+    ctor public MediaSession2.Builder(@NonNull android.content.Context);
+    method @NonNull public android.media.MediaSession2 build();
+    method @NonNull public android.media.MediaSession2.Builder setId(@NonNull String);
+    method @NonNull public android.media.MediaSession2.Builder setSessionActivity(@Nullable android.app.PendingIntent);
+    method @NonNull public android.media.MediaSession2.Builder setSessionCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaSession2.SessionCallback);
   }
 
   public static final class MediaSession2.ControllerInfo {
-    method public java.lang.String getPackageName();
-    method public android.media.session.MediaSessionManager.RemoteUserInfo getRemoteUserInfo();
+    method @NonNull public String getPackageName();
+    method @NonNull public android.media.session.MediaSessionManager.RemoteUserInfo getRemoteUserInfo();
     method public int getUid();
   }
 
-  public static abstract class MediaSession2.SessionCallback {
+  public abstract static class MediaSession2.SessionCallback {
     ctor public MediaSession2.SessionCallback();
-    method public void onCommandResult(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, java.lang.Object, android.media.Session2Command, android.media.Session2Command.Result);
-    method public android.media.Session2CommandGroup onConnect(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo);
-    method public void onDisconnected(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo);
-    method public android.media.Session2Command.Result onSessionCommand(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, android.media.Session2Command, android.os.Bundle);
+    method public void onCommandResult(@NonNull android.media.MediaSession2, @NonNull android.media.MediaSession2.ControllerInfo, @NonNull Object, @NonNull android.media.Session2Command, @NonNull android.media.Session2Command.Result);
+    method @Nullable public android.media.Session2CommandGroup onConnect(@NonNull android.media.MediaSession2, @NonNull android.media.MediaSession2.ControllerInfo);
+    method public void onDisconnected(@NonNull android.media.MediaSession2, @NonNull android.media.MediaSession2.ControllerInfo);
+    method @Nullable public android.media.Session2Command.Result onSessionCommand(@NonNull android.media.MediaSession2, @NonNull android.media.MediaSession2.ControllerInfo, @NonNull android.media.Session2Command, @Nullable android.os.Bundle);
   }
 
   public final class MediaSync {
     ctor public MediaSync();
-    method public android.view.Surface createInputSurface();
+    method @NonNull public android.view.Surface createInputSurface();
     method protected void finalize();
     method public void flush();
-    method public android.media.PlaybackParams getPlaybackParams();
-    method public android.media.SyncParams getSyncParams();
-    method public android.media.MediaTimestamp getTimestamp();
-    method public void queueAudio(java.nio.ByteBuffer, int, long);
+    method @NonNull public android.media.PlaybackParams getPlaybackParams();
+    method @NonNull public android.media.SyncParams getSyncParams();
+    method @Nullable public android.media.MediaTimestamp getTimestamp();
+    method public void queueAudio(@NonNull java.nio.ByteBuffer, int, long);
     method public void release();
-    method public void setAudioTrack(android.media.AudioTrack);
-    method public void setCallback(android.media.MediaSync.Callback, android.os.Handler);
-    method public void setOnErrorListener(android.media.MediaSync.OnErrorListener, android.os.Handler);
-    method public void setPlaybackParams(android.media.PlaybackParams);
-    method public void setSurface(android.view.Surface);
-    method public void setSyncParams(android.media.SyncParams);
+    method public void setAudioTrack(@Nullable android.media.AudioTrack);
+    method public void setCallback(@Nullable android.media.MediaSync.Callback, @Nullable android.os.Handler);
+    method public void setOnErrorListener(@Nullable android.media.MediaSync.OnErrorListener, @Nullable android.os.Handler);
+    method public void setPlaybackParams(@NonNull android.media.PlaybackParams);
+    method public void setSurface(@Nullable android.view.Surface);
+    method public void setSyncParams(@NonNull android.media.SyncParams);
     field public static final int MEDIASYNC_ERROR_AUDIOTRACK_FAIL = 1; // 0x1
     field public static final int MEDIASYNC_ERROR_SURFACE_FAIL = 2; // 0x2
   }
 
-  public static abstract class MediaSync.Callback {
+  public abstract static class MediaSync.Callback {
     ctor public MediaSync.Callback();
-    method public abstract void onAudioBufferConsumed(android.media.MediaSync, java.nio.ByteBuffer, int);
+    method public abstract void onAudioBufferConsumed(@NonNull android.media.MediaSync, @NonNull java.nio.ByteBuffer, int);
   }
 
-  public static abstract interface MediaSync.OnErrorListener {
-    method public abstract void onError(android.media.MediaSync, int, int);
+  public static interface MediaSync.OnErrorListener {
+    method public void onError(@NonNull android.media.MediaSync, int, int);
   }
 
   public class MediaSyncEvent {
@@ -26075,17 +25955,17 @@
   public final class MediaTimestamp {
     method public long getAnchorMediaTimeUs();
     method public long getAnchorSystemNanoTime();
-    method public deprecated long getAnchorSytemNanoTime();
+    method @Deprecated public long getAnchorSytemNanoTime();
     method public float getMediaClockRate();
     field public static final android.media.MediaTimestamp TIMESTAMP_UNKNOWN;
   }
 
   public final class MicrophoneInfo {
-    method public java.lang.String getAddress();
-    method public java.util.List<android.util.Pair<java.lang.Integer, java.lang.Integer>> getChannelMapping();
-    method public java.lang.String getDescription();
+    method @NonNull public String getAddress();
+    method public java.util.List<android.util.Pair<java.lang.Integer,java.lang.Integer>> getChannelMapping();
+    method public String getDescription();
     method public int getDirectionality();
-    method public java.util.List<android.util.Pair<java.lang.Float, java.lang.Float>> getFrequencyResponse();
+    method public java.util.List<android.util.Pair<java.lang.Float,java.lang.Float>> getFrequencyResponse();
     method public int getGroup();
     method public int getId();
     method public int getIndexInTheGroup();
@@ -26123,7 +26003,7 @@
   }
 
   public final class NotProvisionedException extends android.media.MediaDrmException {
-    ctor public NotProvisionedException(java.lang.String);
+    ctor public NotProvisionedException(String);
   }
 
   public final class PlaybackParams implements android.os.Parcelable {
@@ -26167,102 +26047,102 @@
     field public static final int RATING_THUMB_UP_DOWN = 2; // 0x2
   }
 
-  public deprecated class RemoteControlClient {
-    ctor public RemoteControlClient(android.app.PendingIntent);
-    ctor public RemoteControlClient(android.app.PendingIntent, android.os.Looper);
-    method public android.media.RemoteControlClient.MetadataEditor editMetadata(boolean);
-    method public android.media.session.MediaSession getMediaSession();
-    method public void setMetadataUpdateListener(android.media.RemoteControlClient.OnMetadataUpdateListener);
-    method public void setOnGetPlaybackPositionListener(android.media.RemoteControlClient.OnGetPlaybackPositionListener);
-    method public void setPlaybackPositionUpdateListener(android.media.RemoteControlClient.OnPlaybackPositionUpdateListener);
-    method public void setPlaybackState(int);
-    method public void setPlaybackState(int, long, float);
-    method public void setTransportControlFlags(int);
-    field public static final int FLAG_KEY_MEDIA_FAST_FORWARD = 64; // 0x40
-    field public static final int FLAG_KEY_MEDIA_NEXT = 128; // 0x80
-    field public static final int FLAG_KEY_MEDIA_PAUSE = 16; // 0x10
-    field public static final int FLAG_KEY_MEDIA_PLAY = 4; // 0x4
-    field public static final int FLAG_KEY_MEDIA_PLAY_PAUSE = 8; // 0x8
-    field public static final int FLAG_KEY_MEDIA_POSITION_UPDATE = 256; // 0x100
-    field public static final int FLAG_KEY_MEDIA_PREVIOUS = 1; // 0x1
-    field public static final int FLAG_KEY_MEDIA_RATING = 512; // 0x200
-    field public static final int FLAG_KEY_MEDIA_REWIND = 2; // 0x2
-    field public static final int FLAG_KEY_MEDIA_STOP = 32; // 0x20
-    field public static final int PLAYSTATE_BUFFERING = 8; // 0x8
-    field public static final int PLAYSTATE_ERROR = 9; // 0x9
-    field public static final int PLAYSTATE_FAST_FORWARDING = 4; // 0x4
-    field public static final int PLAYSTATE_PAUSED = 2; // 0x2
-    field public static final int PLAYSTATE_PLAYING = 3; // 0x3
-    field public static final int PLAYSTATE_REWINDING = 5; // 0x5
-    field public static final int PLAYSTATE_SKIPPING_BACKWARDS = 7; // 0x7
-    field public static final int PLAYSTATE_SKIPPING_FORWARDS = 6; // 0x6
-    field public static final int PLAYSTATE_STOPPED = 1; // 0x1
+  @Deprecated public class RemoteControlClient {
+    ctor @Deprecated public RemoteControlClient(android.app.PendingIntent);
+    ctor @Deprecated public RemoteControlClient(android.app.PendingIntent, android.os.Looper);
+    method @Deprecated public android.media.RemoteControlClient.MetadataEditor editMetadata(boolean);
+    method @Deprecated public android.media.session.MediaSession getMediaSession();
+    method @Deprecated public void setMetadataUpdateListener(android.media.RemoteControlClient.OnMetadataUpdateListener);
+    method @Deprecated public void setOnGetPlaybackPositionListener(android.media.RemoteControlClient.OnGetPlaybackPositionListener);
+    method @Deprecated public void setPlaybackPositionUpdateListener(android.media.RemoteControlClient.OnPlaybackPositionUpdateListener);
+    method @Deprecated public void setPlaybackState(int);
+    method @Deprecated public void setPlaybackState(int, long, float);
+    method @Deprecated public void setTransportControlFlags(int);
+    field @Deprecated public static final int FLAG_KEY_MEDIA_FAST_FORWARD = 64; // 0x40
+    field @Deprecated public static final int FLAG_KEY_MEDIA_NEXT = 128; // 0x80
+    field @Deprecated public static final int FLAG_KEY_MEDIA_PAUSE = 16; // 0x10
+    field @Deprecated public static final int FLAG_KEY_MEDIA_PLAY = 4; // 0x4
+    field @Deprecated public static final int FLAG_KEY_MEDIA_PLAY_PAUSE = 8; // 0x8
+    field @Deprecated public static final int FLAG_KEY_MEDIA_POSITION_UPDATE = 256; // 0x100
+    field @Deprecated public static final int FLAG_KEY_MEDIA_PREVIOUS = 1; // 0x1
+    field @Deprecated public static final int FLAG_KEY_MEDIA_RATING = 512; // 0x200
+    field @Deprecated public static final int FLAG_KEY_MEDIA_REWIND = 2; // 0x2
+    field @Deprecated public static final int FLAG_KEY_MEDIA_STOP = 32; // 0x20
+    field @Deprecated public static final int PLAYSTATE_BUFFERING = 8; // 0x8
+    field @Deprecated public static final int PLAYSTATE_ERROR = 9; // 0x9
+    field @Deprecated public static final int PLAYSTATE_FAST_FORWARDING = 4; // 0x4
+    field @Deprecated public static final int PLAYSTATE_PAUSED = 2; // 0x2
+    field @Deprecated public static final int PLAYSTATE_PLAYING = 3; // 0x3
+    field @Deprecated public static final int PLAYSTATE_REWINDING = 5; // 0x5
+    field @Deprecated public static final int PLAYSTATE_SKIPPING_BACKWARDS = 7; // 0x7
+    field @Deprecated public static final int PLAYSTATE_SKIPPING_FORWARDS = 6; // 0x6
+    field @Deprecated public static final int PLAYSTATE_STOPPED = 1; // 0x1
   }
 
-  public deprecated class RemoteControlClient.MetadataEditor extends android.media.MediaMetadataEditor {
-    method public synchronized void apply();
-    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
-    method public synchronized android.media.RemoteControlClient.MetadataEditor putBitmap(int, android.graphics.Bitmap) throws java.lang.IllegalArgumentException;
-    method public synchronized android.media.RemoteControlClient.MetadataEditor putLong(int, long) throws java.lang.IllegalArgumentException;
-    method public synchronized android.media.RemoteControlClient.MetadataEditor putObject(int, java.lang.Object) throws java.lang.IllegalArgumentException;
-    method public synchronized android.media.RemoteControlClient.MetadataEditor putString(int, java.lang.String) throws java.lang.IllegalArgumentException;
-    field public static final int BITMAP_KEY_ARTWORK = 100; // 0x64
+  @Deprecated public class RemoteControlClient.MetadataEditor extends android.media.MediaMetadataEditor {
+    method @Deprecated public void apply();
+    method public Object clone() throws java.lang.CloneNotSupportedException;
+    method @Deprecated public android.media.RemoteControlClient.MetadataEditor putBitmap(int, android.graphics.Bitmap) throws java.lang.IllegalArgumentException;
+    method @Deprecated public android.media.RemoteControlClient.MetadataEditor putLong(int, long) throws java.lang.IllegalArgumentException;
+    method @Deprecated public android.media.RemoteControlClient.MetadataEditor putObject(int, Object) throws java.lang.IllegalArgumentException;
+    method @Deprecated public android.media.RemoteControlClient.MetadataEditor putString(int, String) throws java.lang.IllegalArgumentException;
+    field @Deprecated public static final int BITMAP_KEY_ARTWORK = 100; // 0x64
   }
 
-  public static abstract interface RemoteControlClient.OnGetPlaybackPositionListener {
-    method public abstract long onGetPlaybackPosition();
+  @Deprecated public static interface RemoteControlClient.OnGetPlaybackPositionListener {
+    method @Deprecated public long onGetPlaybackPosition();
   }
 
-  public static abstract interface RemoteControlClient.OnMetadataUpdateListener {
-    method public abstract void onMetadataUpdate(int, java.lang.Object);
+  @Deprecated public static interface RemoteControlClient.OnMetadataUpdateListener {
+    method @Deprecated public void onMetadataUpdate(int, Object);
   }
 
-  public static abstract interface RemoteControlClient.OnPlaybackPositionUpdateListener {
-    method public abstract void onPlaybackPositionUpdate(long);
+  @Deprecated public static interface RemoteControlClient.OnPlaybackPositionUpdateListener {
+    method @Deprecated public void onPlaybackPositionUpdate(long);
   }
 
-  public final deprecated class RemoteController {
-    ctor public RemoteController(android.content.Context, android.media.RemoteController.OnClientUpdateListener) throws java.lang.IllegalArgumentException;
-    ctor public RemoteController(android.content.Context, android.media.RemoteController.OnClientUpdateListener, android.os.Looper) throws java.lang.IllegalArgumentException;
-    method public boolean clearArtworkConfiguration();
-    method public android.media.RemoteController.MetadataEditor editMetadata();
-    method public long getEstimatedMediaPosition();
-    method public boolean seekTo(long) throws java.lang.IllegalArgumentException;
-    method public boolean sendMediaKeyEvent(android.view.KeyEvent) throws java.lang.IllegalArgumentException;
-    method public boolean setArtworkConfiguration(int, int) throws java.lang.IllegalArgumentException;
-    method public boolean setSynchronizationMode(int) throws java.lang.IllegalArgumentException;
-    field public static final int POSITION_SYNCHRONIZATION_CHECK = 1; // 0x1
-    field public static final int POSITION_SYNCHRONIZATION_NONE = 0; // 0x0
+  @Deprecated public final class RemoteController {
+    ctor @Deprecated public RemoteController(android.content.Context, android.media.RemoteController.OnClientUpdateListener) throws java.lang.IllegalArgumentException;
+    ctor @Deprecated public RemoteController(android.content.Context, android.media.RemoteController.OnClientUpdateListener, android.os.Looper) throws java.lang.IllegalArgumentException;
+    method @Deprecated public boolean clearArtworkConfiguration();
+    method @Deprecated public android.media.RemoteController.MetadataEditor editMetadata();
+    method @Deprecated public long getEstimatedMediaPosition();
+    method @Deprecated public boolean seekTo(long) throws java.lang.IllegalArgumentException;
+    method @Deprecated public boolean sendMediaKeyEvent(android.view.KeyEvent) throws java.lang.IllegalArgumentException;
+    method @Deprecated public boolean setArtworkConfiguration(int, int) throws java.lang.IllegalArgumentException;
+    method @Deprecated public boolean setSynchronizationMode(int) throws java.lang.IllegalArgumentException;
+    field @Deprecated public static final int POSITION_SYNCHRONIZATION_CHECK = 1; // 0x1
+    field @Deprecated public static final int POSITION_SYNCHRONIZATION_NONE = 0; // 0x0
   }
 
-  public class RemoteController.MetadataEditor extends android.media.MediaMetadataEditor {
-    method public synchronized void apply();
+  @Deprecated public class RemoteController.MetadataEditor extends android.media.MediaMetadataEditor {
+    method @Deprecated public void apply();
   }
 
-  public static abstract interface RemoteController.OnClientUpdateListener {
-    method public abstract void onClientChange(boolean);
-    method public abstract void onClientMetadataUpdate(android.media.RemoteController.MetadataEditor);
-    method public abstract void onClientPlaybackStateUpdate(int);
-    method public abstract void onClientPlaybackStateUpdate(int, long, long, float);
-    method public abstract void onClientTransportControlUpdate(int);
+  @Deprecated public static interface RemoteController.OnClientUpdateListener {
+    method @Deprecated public void onClientChange(boolean);
+    method @Deprecated public void onClientMetadataUpdate(android.media.RemoteController.MetadataEditor);
+    method @Deprecated public void onClientPlaybackStateUpdate(int);
+    method @Deprecated public void onClientPlaybackStateUpdate(int, long, long, float);
+    method @Deprecated public void onClientTransportControlUpdate(int);
   }
 
   public final class ResourceBusyException extends android.media.MediaDrmException {
-    ctor public ResourceBusyException(java.lang.String);
+    ctor public ResourceBusyException(String);
   }
 
   public class Ringtone {
     method protected void finalize();
     method public android.media.AudioAttributes getAudioAttributes();
-    method public deprecated int getStreamType();
-    method public java.lang.String getTitle(android.content.Context);
+    method @Deprecated public int getStreamType();
+    method public String getTitle(android.content.Context);
     method public float getVolume();
     method public boolean isLooping();
     method public boolean isPlaying();
     method public void play();
     method public void setAudioAttributes(android.media.AudioAttributes) throws java.lang.IllegalArgumentException;
     method public void setLooping(boolean);
-    method public deprecated void setStreamType(int);
+    method @Deprecated public void setStreamType(int);
     method public void setVolume(float);
     method public void stop();
   }
@@ -26274,7 +26154,7 @@
     method public android.database.Cursor getCursor();
     method public static int getDefaultType(android.net.Uri);
     method public static android.net.Uri getDefaultUri(int);
-    method public deprecated boolean getIncludeDrm();
+    method @Deprecated public boolean getIncludeDrm();
     method public android.media.Ringtone getRingtone(int);
     method public static android.media.Ringtone getRingtone(android.content.Context, android.net.Uri);
     method public int getRingtonePosition(android.net.Uri);
@@ -26283,21 +26163,21 @@
     method public static android.net.Uri getValidRingtoneUri(android.content.Context);
     method public int inferStreamType();
     method public static boolean isDefault(android.net.Uri);
-    method public static android.content.res.AssetFileDescriptor openDefaultRingtoneUri(android.content.Context, android.net.Uri) throws java.io.FileNotFoundException;
+    method @Nullable public static android.content.res.AssetFileDescriptor openDefaultRingtoneUri(@NonNull android.content.Context, @NonNull android.net.Uri) throws java.io.FileNotFoundException;
     method public static void setActualDefaultRingtoneUri(android.content.Context, int, android.net.Uri);
-    method public deprecated void setIncludeDrm(boolean);
+    method @Deprecated public void setIncludeDrm(boolean);
     method public void setStopPreviousRingtone(boolean);
     method public void setType(int);
     method public void stopPreviousRingtone();
-    field public static final java.lang.String ACTION_RINGTONE_PICKER = "android.intent.action.RINGTONE_PICKER";
-    field public static final java.lang.String EXTRA_RINGTONE_DEFAULT_URI = "android.intent.extra.ringtone.DEFAULT_URI";
-    field public static final java.lang.String EXTRA_RINGTONE_EXISTING_URI = "android.intent.extra.ringtone.EXISTING_URI";
-    field public static final deprecated java.lang.String EXTRA_RINGTONE_INCLUDE_DRM = "android.intent.extra.ringtone.INCLUDE_DRM";
-    field public static final java.lang.String EXTRA_RINGTONE_PICKED_URI = "android.intent.extra.ringtone.PICKED_URI";
-    field public static final java.lang.String EXTRA_RINGTONE_SHOW_DEFAULT = "android.intent.extra.ringtone.SHOW_DEFAULT";
-    field public static final java.lang.String EXTRA_RINGTONE_SHOW_SILENT = "android.intent.extra.ringtone.SHOW_SILENT";
-    field public static final java.lang.String EXTRA_RINGTONE_TITLE = "android.intent.extra.ringtone.TITLE";
-    field public static final java.lang.String EXTRA_RINGTONE_TYPE = "android.intent.extra.ringtone.TYPE";
+    field public static final String ACTION_RINGTONE_PICKER = "android.intent.action.RINGTONE_PICKER";
+    field public static final String EXTRA_RINGTONE_DEFAULT_URI = "android.intent.extra.ringtone.DEFAULT_URI";
+    field public static final String EXTRA_RINGTONE_EXISTING_URI = "android.intent.extra.ringtone.EXISTING_URI";
+    field @Deprecated public static final String EXTRA_RINGTONE_INCLUDE_DRM = "android.intent.extra.ringtone.INCLUDE_DRM";
+    field public static final String EXTRA_RINGTONE_PICKED_URI = "android.intent.extra.ringtone.PICKED_URI";
+    field public static final String EXTRA_RINGTONE_SHOW_DEFAULT = "android.intent.extra.ringtone.SHOW_DEFAULT";
+    field public static final String EXTRA_RINGTONE_SHOW_SILENT = "android.intent.extra.ringtone.SHOW_SILENT";
+    field public static final String EXTRA_RINGTONE_TITLE = "android.intent.extra.ringtone.TITLE";
+    field public static final String EXTRA_RINGTONE_TYPE = "android.intent.extra.ringtone.TYPE";
     field public static final int ID_COLUMN_INDEX = 0; // 0x0
     field public static final int TITLE_COLUMN_INDEX = 1; // 0x1
     field public static final int TYPE_ALARM = 4; // 0x4
@@ -26309,12 +26189,12 @@
 
   public final class Session2Command implements android.os.Parcelable {
     ctor public Session2Command(int);
-    ctor public Session2Command(java.lang.String, android.os.Bundle);
+    ctor public Session2Command(@NonNull String, @Nullable android.os.Bundle);
     method public int describeContents();
     method public int getCommandCode();
-    method public java.lang.String getCustomCommand();
-    method public android.os.Bundle getExtras();
-    method public void writeToParcel(android.os.Parcel, int);
+    method @Nullable public String getCustomCommand();
+    method @Nullable public android.os.Bundle getExtras();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
     field public static final int COMMAND_CODE_CUSTOM = 0; // 0x0
     field public static final android.os.Parcelable.Creator<android.media.Session2Command> CREATOR;
     field public static final int RESULT_ERROR_UNKNOWN_ERROR = -1; // 0xffffffff
@@ -26323,35 +26203,35 @@
   }
 
   public static final class Session2Command.Result {
-    ctor public Session2Command.Result(int, android.os.Bundle);
+    ctor public Session2Command.Result(int, @Nullable android.os.Bundle);
     method public int getResultCode();
-    method public android.os.Bundle getResultData();
+    method @Nullable public android.os.Bundle getResultData();
   }
 
   public final class Session2CommandGroup implements android.os.Parcelable {
     method public int describeContents();
-    method public java.util.Set<android.media.Session2Command> getCommands();
-    method public boolean hasCommand(android.media.Session2Command);
+    method @NonNull public java.util.Set<android.media.Session2Command> getCommands();
+    method public boolean hasCommand(@NonNull android.media.Session2Command);
     method public boolean hasCommand(int);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.Session2CommandGroup> CREATOR;
   }
 
   public static final class Session2CommandGroup.Builder {
     ctor public Session2CommandGroup.Builder();
-    ctor public Session2CommandGroup.Builder(android.media.Session2CommandGroup);
-    method public android.media.Session2CommandGroup.Builder addCommand(android.media.Session2Command);
-    method public android.media.Session2CommandGroup.Builder addCommand(int);
-    method public android.media.Session2CommandGroup build();
-    method public android.media.Session2CommandGroup.Builder removeCommand(android.media.Session2Command);
-    method public android.media.Session2CommandGroup.Builder removeCommand(int);
+    ctor public Session2CommandGroup.Builder(@NonNull android.media.Session2CommandGroup);
+    method @NonNull public android.media.Session2CommandGroup.Builder addCommand(@NonNull android.media.Session2Command);
+    method @NonNull public android.media.Session2CommandGroup.Builder addCommand(int);
+    method @NonNull public android.media.Session2CommandGroup build();
+    method @NonNull public android.media.Session2CommandGroup.Builder removeCommand(@NonNull android.media.Session2Command);
+    method @NonNull public android.media.Session2CommandGroup.Builder removeCommand(int);
   }
 
   public final class Session2Token implements android.os.Parcelable {
-    ctor public Session2Token(android.content.Context, android.content.ComponentName);
+    ctor public Session2Token(@NonNull android.content.Context, @NonNull android.content.ComponentName);
     method public int describeContents();
-    method public java.lang.String getPackageName();
-    method public java.lang.String getServiceName();
+    method @NonNull public String getPackageName();
+    method @Nullable public String getServiceName();
     method public int getType();
     method public int getUid();
     method public void writeToParcel(android.os.Parcel, int);
@@ -26361,11 +26241,12 @@
   }
 
   public class SoundPool {
-    ctor public deprecated SoundPool(int, int, int);
+    ctor @Deprecated public SoundPool(int, int, int);
     method public final void autoPause();
     method public final void autoResume();
+    method public static void deprecateStreamTypeForPlayback(int, String, String) throws java.lang.IllegalArgumentException;
     method protected void finalize();
-    method public int load(java.lang.String, int);
+    method public int load(String, int);
     method public int load(android.content.Context, int, int);
     method public int load(android.content.res.AssetFileDescriptor, int);
     method public int load(java.io.FileDescriptor, long, long, int);
@@ -26389,12 +26270,12 @@
     method public android.media.SoundPool.Builder setMaxStreams(int) throws java.lang.IllegalArgumentException;
   }
 
-  public static abstract interface SoundPool.OnLoadCompleteListener {
-    method public abstract void onLoadComplete(android.media.SoundPool, int, int);
+  public static interface SoundPool.OnLoadCompleteListener {
+    method public void onLoadComplete(android.media.SoundPool, int, int);
   }
 
   public final class SubtitleData {
-    method public byte[] getData();
+    method @NonNull public byte[] getData();
     method public long getDurationUs();
     method public long getStartTimeUs();
     method public int getTrackIndex();
@@ -26422,12 +26303,12 @@
 
   public class ThumbnailUtils {
     ctor public ThumbnailUtils();
-    method public static deprecated android.graphics.Bitmap createAudioThumbnail(java.lang.String, int);
-    method public static android.graphics.Bitmap createAudioThumbnail(java.io.File, android.util.Size, android.os.CancellationSignal) throws java.io.IOException;
-    method public static deprecated android.graphics.Bitmap createImageThumbnail(java.lang.String, int);
-    method public static android.graphics.Bitmap createImageThumbnail(java.io.File, android.util.Size, android.os.CancellationSignal) throws java.io.IOException;
-    method public static deprecated android.graphics.Bitmap createVideoThumbnail(java.lang.String, int);
-    method public static android.graphics.Bitmap createVideoThumbnail(java.io.File, android.util.Size, android.os.CancellationSignal) throws java.io.IOException;
+    method @Deprecated @Nullable public static android.graphics.Bitmap createAudioThumbnail(@NonNull String, int);
+    method @NonNull public static android.graphics.Bitmap createAudioThumbnail(@NonNull java.io.File, @NonNull android.util.Size, @Nullable android.os.CancellationSignal) throws java.io.IOException;
+    method @Deprecated @Nullable public static android.graphics.Bitmap createImageThumbnail(@NonNull String, int);
+    method @NonNull public static android.graphics.Bitmap createImageThumbnail(@NonNull java.io.File, @NonNull android.util.Size, @Nullable android.os.CancellationSignal) throws java.io.IOException;
+    method @Deprecated @Nullable public static android.graphics.Bitmap createVideoThumbnail(@NonNull String, int);
+    method @NonNull public static android.graphics.Bitmap createVideoThumbnail(@NonNull java.io.File, @NonNull android.util.Size, @Nullable android.os.CancellationSignal) throws java.io.IOException;
     method public static android.graphics.Bitmap extractThumbnail(android.graphics.Bitmap, int, int);
     method public static android.graphics.Bitmap extractThumbnail(android.graphics.Bitmap, int, int, int);
     field public static final int OPTIONS_RECYCLE_INPUT = 2; // 0x2
@@ -26440,7 +26321,7 @@
 
   public final class TimedText {
     method public android.graphics.Rect getBounds();
-    method public java.lang.String getText();
+    method public String getText();
   }
 
   public class ToneGenerator {
@@ -26555,22 +26436,22 @@
   }
 
   public final class UnsupportedSchemeException extends android.media.MediaDrmException {
-    ctor public UnsupportedSchemeException(java.lang.String);
+    ctor public UnsupportedSchemeException(String);
   }
 
   public class UriDataSourceDesc extends android.media.DataSourceDesc {
     method public android.content.Context getContext();
     method public java.util.List<java.net.HttpCookie> getCookies();
-    method public java.util.Map<java.lang.String, java.lang.String> getHeaders();
+    method public java.util.Map<java.lang.String,java.lang.String> getHeaders();
     method public android.net.Uri getUri();
   }
 
-  public static class UriDataSourceDesc.Builder extends android.media.DataSourceDesc.BuilderBase {
+  public static class UriDataSourceDesc.Builder extends android.media.DataSourceDesc.BuilderBase<android.media.UriDataSourceDesc.Builder> {
     ctor public UriDataSourceDesc.Builder();
     ctor public UriDataSourceDesc.Builder(android.media.UriDataSourceDesc);
-    method public android.media.UriDataSourceDesc build();
-    method public android.media.UriDataSourceDesc.Builder setDataSource(android.content.Context, android.net.Uri);
-    method public android.media.UriDataSourceDesc.Builder setDataSource(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>, java.util.List<java.net.HttpCookie>);
+    method @NonNull public android.media.UriDataSourceDesc build();
+    method @NonNull public android.media.UriDataSourceDesc.Builder setDataSource(@NonNull android.content.Context, @NonNull android.net.Uri);
+    method @NonNull public android.media.UriDataSourceDesc.Builder setDataSource(@NonNull android.content.Context, @NonNull android.net.Uri, @Nullable java.util.Map<java.lang.String,java.lang.String>, @Nullable java.util.List<java.net.HttpCookie>);
   }
 
   public final class VideoSize {
@@ -26578,8 +26459,8 @@
     method public int getWidth();
   }
 
-  public abstract interface VolumeAutomation {
-    method public abstract android.media.VolumeShaper createVolumeShaper(android.media.VolumeShaper.Configuration);
+  public interface VolumeAutomation {
+    method @NonNull public android.media.VolumeShaper createVolumeShaper(@NonNull android.media.VolumeShaper.Configuration);
   }
 
   public abstract class VolumeProvider {
@@ -26596,11 +26477,11 @@
   }
 
   public final class VolumeShaper implements java.lang.AutoCloseable {
-    method public void apply(android.media.VolumeShaper.Operation);
+    method public void apply(@NonNull android.media.VolumeShaper.Operation);
     method public void close();
     method protected void finalize();
     method public float getVolume();
-    method public void replace(android.media.VolumeShaper.Configuration, android.media.VolumeShaper.Operation, boolean);
+    method public void replace(@NonNull android.media.VolumeShaper.Configuration, @NonNull android.media.VolumeShaper.Operation, boolean);
   }
 
   public static final class VolumeShaper.Configuration implements android.os.Parcelable {
@@ -26624,15 +26505,15 @@
 
   public static final class VolumeShaper.Configuration.Builder {
     ctor public VolumeShaper.Configuration.Builder();
-    ctor public VolumeShaper.Configuration.Builder(android.media.VolumeShaper.Configuration);
-    method public android.media.VolumeShaper.Configuration build();
-    method public android.media.VolumeShaper.Configuration.Builder invertVolumes();
-    method public android.media.VolumeShaper.Configuration.Builder reflectTimes();
-    method public android.media.VolumeShaper.Configuration.Builder scaleToEndVolume(float);
-    method public android.media.VolumeShaper.Configuration.Builder scaleToStartVolume(float);
-    method public android.media.VolumeShaper.Configuration.Builder setCurve(float[], float[]);
-    method public android.media.VolumeShaper.Configuration.Builder setDuration(long);
-    method public android.media.VolumeShaper.Configuration.Builder setInterpolatorType(int);
+    ctor public VolumeShaper.Configuration.Builder(@NonNull android.media.VolumeShaper.Configuration);
+    method @NonNull public android.media.VolumeShaper.Configuration build();
+    method @NonNull public android.media.VolumeShaper.Configuration.Builder invertVolumes();
+    method @NonNull public android.media.VolumeShaper.Configuration.Builder reflectTimes();
+    method @NonNull public android.media.VolumeShaper.Configuration.Builder scaleToEndVolume(float);
+    method @NonNull public android.media.VolumeShaper.Configuration.Builder scaleToStartVolume(float);
+    method @NonNull public android.media.VolumeShaper.Configuration.Builder setCurve(@NonNull float[], @NonNull float[]);
+    method @NonNull public android.media.VolumeShaper.Configuration.Builder setDuration(long);
+    method @NonNull public android.media.VolumeShaper.Configuration.Builder setInterpolatorType(int);
   }
 
   public static final class VolumeShaper.Operation implements android.os.Parcelable {
@@ -26663,16 +26544,16 @@
     method public void setControlStatusListener(android.media.audiofx.AudioEffect.OnControlStatusChangeListener);
     method public void setEnableStatusListener(android.media.audiofx.AudioEffect.OnEnableStatusChangeListener);
     method public int setEnabled(boolean) throws java.lang.IllegalStateException;
-    field public static final java.lang.String ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION = "android.media.action.CLOSE_AUDIO_EFFECT_CONTROL_SESSION";
-    field public static final java.lang.String ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL = "android.media.action.DISPLAY_AUDIO_EFFECT_CONTROL_PANEL";
-    field public static final java.lang.String ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION = "android.media.action.OPEN_AUDIO_EFFECT_CONTROL_SESSION";
+    field public static final String ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION = "android.media.action.CLOSE_AUDIO_EFFECT_CONTROL_SESSION";
+    field public static final String ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL = "android.media.action.DISPLAY_AUDIO_EFFECT_CONTROL_PANEL";
+    field public static final String ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION = "android.media.action.OPEN_AUDIO_EFFECT_CONTROL_SESSION";
     field public static final int ALREADY_EXISTS = -2; // 0xfffffffe
     field public static final int CONTENT_TYPE_GAME = 2; // 0x2
     field public static final int CONTENT_TYPE_MOVIE = 1; // 0x1
     field public static final int CONTENT_TYPE_MUSIC = 0; // 0x0
     field public static final int CONTENT_TYPE_VOICE = 3; // 0x3
-    field public static final java.lang.String EFFECT_AUXILIARY = "Auxiliary";
-    field public static final java.lang.String EFFECT_INSERT = "Insert";
+    field public static final String EFFECT_AUXILIARY = "Auxiliary";
+    field public static final String EFFECT_INSERT = "Insert";
     field public static final java.util.UUID EFFECT_TYPE_AEC;
     field public static final java.util.UUID EFFECT_TYPE_AGC;
     field public static final java.util.UUID EFFECT_TYPE_BASS_BOOST;
@@ -26689,31 +26570,31 @@
     field public static final int ERROR_INVALID_OPERATION = -5; // 0xfffffffb
     field public static final int ERROR_NO_INIT = -3; // 0xfffffffd
     field public static final int ERROR_NO_MEMORY = -6; // 0xfffffffa
-    field public static final java.lang.String EXTRA_AUDIO_SESSION = "android.media.extra.AUDIO_SESSION";
-    field public static final java.lang.String EXTRA_CONTENT_TYPE = "android.media.extra.CONTENT_TYPE";
-    field public static final java.lang.String EXTRA_PACKAGE_NAME = "android.media.extra.PACKAGE_NAME";
+    field public static final String EXTRA_AUDIO_SESSION = "android.media.extra.AUDIO_SESSION";
+    field public static final String EXTRA_CONTENT_TYPE = "android.media.extra.CONTENT_TYPE";
+    field public static final String EXTRA_PACKAGE_NAME = "android.media.extra.PACKAGE_NAME";
     field public static final int SUCCESS = 0; // 0x0
   }
 
   public static final class AudioEffect.Descriptor implements android.os.Parcelable {
     ctor public AudioEffect.Descriptor();
-    ctor public AudioEffect.Descriptor(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+    ctor public AudioEffect.Descriptor(String, String, String, String, String);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.audiofx.AudioEffect.Descriptor> CREATOR;
-    field public java.lang.String connectMode;
-    field public java.lang.String implementor;
-    field public java.lang.String name;
+    field public String connectMode;
+    field public String implementor;
+    field public String name;
     field public java.util.UUID type;
     field public java.util.UUID uuid;
   }
 
-  public static abstract interface AudioEffect.OnControlStatusChangeListener {
-    method public abstract void onControlStatusChange(android.media.audiofx.AudioEffect, boolean);
+  public static interface AudioEffect.OnControlStatusChangeListener {
+    method public void onControlStatusChange(android.media.audiofx.AudioEffect, boolean);
   }
 
-  public static abstract interface AudioEffect.OnEnableStatusChangeListener {
-    method public abstract void onEnableStatusChange(android.media.audiofx.AudioEffect, boolean);
+  public static interface AudioEffect.OnEnableStatusChangeListener {
+    method public void onEnableStatusChange(android.media.audiofx.AudioEffect, boolean);
   }
 
   public class AutomaticGainControl extends android.media.audiofx.AudioEffect {
@@ -26733,19 +26614,19 @@
     field public static final int PARAM_STRENGTH_SUPPORTED = 0; // 0x0
   }
 
-  public static abstract interface BassBoost.OnParameterChangeListener {
-    method public abstract void onParameterChange(android.media.audiofx.BassBoost, int, int, short);
+  public static interface BassBoost.OnParameterChangeListener {
+    method public void onParameterChange(android.media.audiofx.BassBoost, int, int, short);
   }
 
   public static class BassBoost.Settings {
     ctor public BassBoost.Settings();
-    ctor public BassBoost.Settings(java.lang.String);
+    ctor public BassBoost.Settings(String);
     field public short strength;
   }
 
   public final class DynamicsProcessing extends android.media.audiofx.AudioEffect {
     ctor public DynamicsProcessing(int);
-    ctor public DynamicsProcessing(int, int, android.media.audiofx.DynamicsProcessing.Config);
+    ctor public DynamicsProcessing(int, int, @Nullable android.media.audiofx.DynamicsProcessing.Config);
     method public android.media.audiofx.DynamicsProcessing.Channel getChannelByChannelIndex(int);
     method public int getChannelCount();
     method public android.media.audiofx.DynamicsProcessing.Config getConfig();
@@ -26975,13 +26856,13 @@
     field public static final int PARAM_ROOM_LEVEL = 0; // 0x0
   }
 
-  public static abstract interface EnvironmentalReverb.OnParameterChangeListener {
-    method public abstract void onParameterChange(android.media.audiofx.EnvironmentalReverb, int, int, int);
+  public static interface EnvironmentalReverb.OnParameterChangeListener {
+    method public void onParameterChange(android.media.audiofx.EnvironmentalReverb, int, int, int);
   }
 
   public static class EnvironmentalReverb.Settings {
     ctor public EnvironmentalReverb.Settings();
-    ctor public EnvironmentalReverb.Settings(java.lang.String);
+    ctor public EnvironmentalReverb.Settings(String);
     field public short decayHFRatio;
     field public int decayTime;
     field public short density;
@@ -27004,7 +26885,7 @@
     method public short getCurrentPreset() throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.UnsupportedOperationException;
     method public short getNumberOfBands() throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.UnsupportedOperationException;
     method public short getNumberOfPresets() throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.UnsupportedOperationException;
-    method public java.lang.String getPresetName(short);
+    method public String getPresetName(short);
     method public android.media.audiofx.Equalizer.Settings getProperties() throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.UnsupportedOperationException;
     method public void setBandLevel(short, short) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.UnsupportedOperationException;
     method public void setParameterListener(android.media.audiofx.Equalizer.OnParameterChangeListener);
@@ -27022,13 +26903,13 @@
     field public static final int PARAM_STRING_SIZE_MAX = 32; // 0x20
   }
 
-  public static abstract interface Equalizer.OnParameterChangeListener {
-    method public abstract void onParameterChange(android.media.audiofx.Equalizer, int, int, int, int);
+  public static interface Equalizer.OnParameterChangeListener {
+    method public void onParameterChange(android.media.audiofx.Equalizer, int, int, int, int);
   }
 
   public static class Equalizer.Settings {
     ctor public Equalizer.Settings();
-    ctor public Equalizer.Settings(java.lang.String);
+    ctor public Equalizer.Settings(String);
     field public short[] bandLevels;
     field public short curPreset;
     field public short numBands;
@@ -27063,13 +26944,13 @@
     field public static final short PRESET_SMALLROOM = 1; // 0x1
   }
 
-  public static abstract interface PresetReverb.OnParameterChangeListener {
-    method public abstract void onParameterChange(android.media.audiofx.PresetReverb, int, int, short);
+  public static interface PresetReverb.OnParameterChangeListener {
+    method public void onParameterChange(android.media.audiofx.PresetReverb, int, int, short);
   }
 
   public static class PresetReverb.Settings {
     ctor public PresetReverb.Settings();
-    ctor public PresetReverb.Settings(java.lang.String);
+    ctor public PresetReverb.Settings(String);
     field public short preset;
   }
 
@@ -27093,13 +26974,13 @@
     field public static final int VIRTUALIZATION_MODE_TRANSAURAL = 3; // 0x3
   }
 
-  public static abstract interface Virtualizer.OnParameterChangeListener {
-    method public abstract void onParameterChange(android.media.audiofx.Virtualizer, int, int, short);
+  public static interface Virtualizer.OnParameterChangeListener {
+    method public void onParameterChange(android.media.audiofx.Virtualizer, int, int, short);
   }
 
   public static class Virtualizer.Settings {
     ctor public Virtualizer.Settings();
-    ctor public Virtualizer.Settings(java.lang.String);
+    ctor public Virtualizer.Settings(String);
     field public short strength;
   }
 
@@ -27145,9 +27026,9 @@
     field public int mRms;
   }
 
-  public static abstract interface Visualizer.OnDataCaptureListener {
-    method public abstract void onFftDataCapture(android.media.audiofx.Visualizer, byte[], int);
-    method public abstract void onWaveFormDataCapture(android.media.audiofx.Visualizer, byte[], int);
+  public static interface Visualizer.OnDataCaptureListener {
+    method public void onFftDataCapture(android.media.audiofx.Visualizer, byte[], int);
+    method public void onWaveFormDataCapture(android.media.audiofx.Visualizer, byte[], int);
   }
 
 }
@@ -27158,18 +27039,18 @@
     ctor public MediaBrowser(android.content.Context, android.content.ComponentName, android.media.browse.MediaBrowser.ConnectionCallback, android.os.Bundle);
     method public void connect();
     method public void disconnect();
-    method public android.os.Bundle getExtras();
-    method public void getItem(java.lang.String, android.media.browse.MediaBrowser.ItemCallback);
-    method public java.lang.String getRoot();
-    method public android.content.ComponentName getServiceComponent();
-    method public android.media.session.MediaSession.Token getSessionToken();
+    method @Nullable public android.os.Bundle getExtras();
+    method public void getItem(@NonNull String, @NonNull android.media.browse.MediaBrowser.ItemCallback);
+    method @NonNull public String getRoot();
+    method @NonNull public android.content.ComponentName getServiceComponent();
+    method @NonNull public android.media.session.MediaSession.Token getSessionToken();
     method public boolean isConnected();
-    method public void subscribe(java.lang.String, android.media.browse.MediaBrowser.SubscriptionCallback);
-    method public void subscribe(java.lang.String, android.os.Bundle, android.media.browse.MediaBrowser.SubscriptionCallback);
-    method public void unsubscribe(java.lang.String);
-    method public void unsubscribe(java.lang.String, android.media.browse.MediaBrowser.SubscriptionCallback);
-    field public static final java.lang.String EXTRA_PAGE = "android.media.browse.extra.PAGE";
-    field public static final java.lang.String EXTRA_PAGE_SIZE = "android.media.browse.extra.PAGE_SIZE";
+    method public void subscribe(@NonNull String, @NonNull android.media.browse.MediaBrowser.SubscriptionCallback);
+    method public void subscribe(@NonNull String, @NonNull android.os.Bundle, @NonNull android.media.browse.MediaBrowser.SubscriptionCallback);
+    method public void unsubscribe(@NonNull String);
+    method public void unsubscribe(@NonNull String, @NonNull android.media.browse.MediaBrowser.SubscriptionCallback);
+    field public static final String EXTRA_PAGE = "android.media.browse.extra.PAGE";
+    field public static final String EXTRA_PAGE_SIZE = "android.media.browse.extra.PAGE_SIZE";
   }
 
   public static class MediaBrowser.ConnectionCallback {
@@ -27179,18 +27060,18 @@
     method public void onConnectionSuspended();
   }
 
-  public static abstract class MediaBrowser.ItemCallback {
+  public abstract static class MediaBrowser.ItemCallback {
     ctor public MediaBrowser.ItemCallback();
-    method public void onError(java.lang.String);
+    method public void onError(@NonNull String);
     method public void onItemLoaded(android.media.browse.MediaBrowser.MediaItem);
   }
 
   public static class MediaBrowser.MediaItem implements android.os.Parcelable {
-    ctor public MediaBrowser.MediaItem(android.media.MediaDescription, int);
+    ctor public MediaBrowser.MediaItem(@NonNull android.media.MediaDescription, int);
     method public int describeContents();
-    method public android.media.MediaDescription getDescription();
+    method @NonNull public android.media.MediaDescription getDescription();
     method public int getFlags();
-    method public java.lang.String getMediaId();
+    method @Nullable public String getMediaId();
     method public boolean isBrowsable();
     method public boolean isPlayable();
     method public void writeToParcel(android.os.Parcel, int);
@@ -27199,12 +27080,12 @@
     field public static final int FLAG_PLAYABLE = 2; // 0x2
   }
 
-  public static abstract class MediaBrowser.SubscriptionCallback {
+  public abstract static class MediaBrowser.SubscriptionCallback {
     ctor public MediaBrowser.SubscriptionCallback();
-    method public void onChildrenLoaded(java.lang.String, java.util.List<android.media.browse.MediaBrowser.MediaItem>);
-    method public void onChildrenLoaded(java.lang.String, java.util.List<android.media.browse.MediaBrowser.MediaItem>, android.os.Bundle);
-    method public void onError(java.lang.String);
-    method public void onError(java.lang.String, android.os.Bundle);
+    method public void onChildrenLoaded(@NonNull String, @NonNull java.util.List<android.media.browse.MediaBrowser.MediaItem>);
+    method public void onChildrenLoaded(@NonNull String, @NonNull java.util.List<android.media.browse.MediaBrowser.MediaItem>, @NonNull android.os.Bundle);
+    method public void onError(@NonNull String);
+    method public void onError(@NonNull String, @NonNull android.os.Bundle);
   }
 
 }
@@ -27214,9 +27095,9 @@
   public abstract class Effect {
     ctor public Effect();
     method public abstract void apply(int, int, int, int);
-    method public abstract java.lang.String getName();
+    method public abstract String getName();
     method public abstract void release();
-    method public abstract void setParameter(java.lang.String, java.lang.Object);
+    method public abstract void setParameter(String, Object);
     method public void setUpdateListener(android.media.effect.EffectUpdateListener);
   }
 
@@ -27227,39 +27108,39 @@
   }
 
   public class EffectFactory {
-    method public android.media.effect.Effect createEffect(java.lang.String);
-    method public static boolean isEffectSupported(java.lang.String);
-    field public static final java.lang.String EFFECT_AUTOFIX = "android.media.effect.effects.AutoFixEffect";
-    field public static final java.lang.String EFFECT_BACKDROPPER = "android.media.effect.effects.BackDropperEffect";
-    field public static final java.lang.String EFFECT_BITMAPOVERLAY = "android.media.effect.effects.BitmapOverlayEffect";
-    field public static final java.lang.String EFFECT_BLACKWHITE = "android.media.effect.effects.BlackWhiteEffect";
-    field public static final java.lang.String EFFECT_BRIGHTNESS = "android.media.effect.effects.BrightnessEffect";
-    field public static final java.lang.String EFFECT_CONTRAST = "android.media.effect.effects.ContrastEffect";
-    field public static final java.lang.String EFFECT_CROP = "android.media.effect.effects.CropEffect";
-    field public static final java.lang.String EFFECT_CROSSPROCESS = "android.media.effect.effects.CrossProcessEffect";
-    field public static final java.lang.String EFFECT_DOCUMENTARY = "android.media.effect.effects.DocumentaryEffect";
-    field public static final java.lang.String EFFECT_DUOTONE = "android.media.effect.effects.DuotoneEffect";
-    field public static final java.lang.String EFFECT_FILLLIGHT = "android.media.effect.effects.FillLightEffect";
-    field public static final java.lang.String EFFECT_FISHEYE = "android.media.effect.effects.FisheyeEffect";
-    field public static final java.lang.String EFFECT_FLIP = "android.media.effect.effects.FlipEffect";
-    field public static final java.lang.String EFFECT_GRAIN = "android.media.effect.effects.GrainEffect";
-    field public static final java.lang.String EFFECT_GRAYSCALE = "android.media.effect.effects.GrayscaleEffect";
-    field public static final java.lang.String EFFECT_LOMOISH = "android.media.effect.effects.LomoishEffect";
-    field public static final java.lang.String EFFECT_NEGATIVE = "android.media.effect.effects.NegativeEffect";
-    field public static final java.lang.String EFFECT_POSTERIZE = "android.media.effect.effects.PosterizeEffect";
-    field public static final java.lang.String EFFECT_REDEYE = "android.media.effect.effects.RedEyeEffect";
-    field public static final java.lang.String EFFECT_ROTATE = "android.media.effect.effects.RotateEffect";
-    field public static final java.lang.String EFFECT_SATURATE = "android.media.effect.effects.SaturateEffect";
-    field public static final java.lang.String EFFECT_SEPIA = "android.media.effect.effects.SepiaEffect";
-    field public static final java.lang.String EFFECT_SHARPEN = "android.media.effect.effects.SharpenEffect";
-    field public static final java.lang.String EFFECT_STRAIGHTEN = "android.media.effect.effects.StraightenEffect";
-    field public static final java.lang.String EFFECT_TEMPERATURE = "android.media.effect.effects.ColorTemperatureEffect";
-    field public static final java.lang.String EFFECT_TINT = "android.media.effect.effects.TintEffect";
-    field public static final java.lang.String EFFECT_VIGNETTE = "android.media.effect.effects.VignetteEffect";
+    method public android.media.effect.Effect createEffect(String);
+    method public static boolean isEffectSupported(String);
+    field public static final String EFFECT_AUTOFIX = "android.media.effect.effects.AutoFixEffect";
+    field public static final String EFFECT_BACKDROPPER = "android.media.effect.effects.BackDropperEffect";
+    field public static final String EFFECT_BITMAPOVERLAY = "android.media.effect.effects.BitmapOverlayEffect";
+    field public static final String EFFECT_BLACKWHITE = "android.media.effect.effects.BlackWhiteEffect";
+    field public static final String EFFECT_BRIGHTNESS = "android.media.effect.effects.BrightnessEffect";
+    field public static final String EFFECT_CONTRAST = "android.media.effect.effects.ContrastEffect";
+    field public static final String EFFECT_CROP = "android.media.effect.effects.CropEffect";
+    field public static final String EFFECT_CROSSPROCESS = "android.media.effect.effects.CrossProcessEffect";
+    field public static final String EFFECT_DOCUMENTARY = "android.media.effect.effects.DocumentaryEffect";
+    field public static final String EFFECT_DUOTONE = "android.media.effect.effects.DuotoneEffect";
+    field public static final String EFFECT_FILLLIGHT = "android.media.effect.effects.FillLightEffect";
+    field public static final String EFFECT_FISHEYE = "android.media.effect.effects.FisheyeEffect";
+    field public static final String EFFECT_FLIP = "android.media.effect.effects.FlipEffect";
+    field public static final String EFFECT_GRAIN = "android.media.effect.effects.GrainEffect";
+    field public static final String EFFECT_GRAYSCALE = "android.media.effect.effects.GrayscaleEffect";
+    field public static final String EFFECT_LOMOISH = "android.media.effect.effects.LomoishEffect";
+    field public static final String EFFECT_NEGATIVE = "android.media.effect.effects.NegativeEffect";
+    field public static final String EFFECT_POSTERIZE = "android.media.effect.effects.PosterizeEffect";
+    field public static final String EFFECT_REDEYE = "android.media.effect.effects.RedEyeEffect";
+    field public static final String EFFECT_ROTATE = "android.media.effect.effects.RotateEffect";
+    field public static final String EFFECT_SATURATE = "android.media.effect.effects.SaturateEffect";
+    field public static final String EFFECT_SEPIA = "android.media.effect.effects.SepiaEffect";
+    field public static final String EFFECT_SHARPEN = "android.media.effect.effects.SharpenEffect";
+    field public static final String EFFECT_STRAIGHTEN = "android.media.effect.effects.StraightenEffect";
+    field public static final String EFFECT_TEMPERATURE = "android.media.effect.effects.ColorTemperatureEffect";
+    field public static final String EFFECT_TINT = "android.media.effect.effects.TintEffect";
+    field public static final String EFFECT_VIGNETTE = "android.media.effect.effects.VignetteEffect";
   }
 
-  public abstract interface EffectUpdateListener {
-    method public abstract void onEffectUpdated(android.media.effect.Effect, java.lang.Object);
+  public interface EffectUpdateListener {
+    method public void onEffectUpdated(android.media.effect.Effect, Object);
   }
 
 }
@@ -27289,20 +27170,20 @@
     method public boolean isPrivate();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.midi.MidiDeviceInfo> CREATOR;
-    field public static final java.lang.String PROPERTY_BLUETOOTH_DEVICE = "bluetooth_device";
-    field public static final java.lang.String PROPERTY_MANUFACTURER = "manufacturer";
-    field public static final java.lang.String PROPERTY_NAME = "name";
-    field public static final java.lang.String PROPERTY_PRODUCT = "product";
-    field public static final java.lang.String PROPERTY_SERIAL_NUMBER = "serial_number";
-    field public static final java.lang.String PROPERTY_USB_DEVICE = "usb_device";
-    field public static final java.lang.String PROPERTY_VERSION = "version";
+    field public static final String PROPERTY_BLUETOOTH_DEVICE = "bluetooth_device";
+    field public static final String PROPERTY_MANUFACTURER = "manufacturer";
+    field public static final String PROPERTY_NAME = "name";
+    field public static final String PROPERTY_PRODUCT = "product";
+    field public static final String PROPERTY_SERIAL_NUMBER = "serial_number";
+    field public static final String PROPERTY_USB_DEVICE = "usb_device";
+    field public static final String PROPERTY_VERSION = "version";
     field public static final int TYPE_BLUETOOTH = 3; // 0x3
     field public static final int TYPE_USB = 1; // 0x1
     field public static final int TYPE_VIRTUAL = 2; // 0x2
   }
 
   public static final class MidiDeviceInfo.PortInfo {
-    method public java.lang.String getName();
+    method public String getName();
     method public int getPortNumber();
     method public int getType();
     field public static final int TYPE_INPUT = 1; // 0x1
@@ -27317,7 +27198,7 @@
     method public void onClose();
     method public void onDeviceStatusChanged(android.media.midi.MidiDeviceStatus);
     method public abstract android.media.midi.MidiReceiver[] onGetInputPortReceivers();
-    field public static final java.lang.String SERVICE_INTERFACE = "android.media.midi.MidiDeviceService";
+    field public static final String SERVICE_INTERFACE = "android.media.midi.MidiDeviceService";
   }
 
   public final class MidiDeviceStatus implements android.os.Parcelable {
@@ -27350,8 +27231,8 @@
     method public void onDeviceStatusChanged(android.media.midi.MidiDeviceStatus);
   }
 
-  public static abstract interface MidiManager.OnDeviceOpenedListener {
-    method public abstract void onDeviceOpened(android.media.midi.MidiDevice);
+  public static interface MidiManager.OnDeviceOpenedListener {
+    method public void onDeviceOpened(android.media.midi.MidiDevice);
   }
 
   public final class MidiOutputPort extends android.media.midi.MidiSender implements java.io.Closeable {
@@ -27385,20 +27266,20 @@
 package android.media.projection {
 
   public final class MediaProjection {
-    method public android.hardware.display.VirtualDisplay createVirtualDisplay(java.lang.String, int, int, int, int, android.view.Surface, android.hardware.display.VirtualDisplay.Callback, android.os.Handler);
+    method public android.hardware.display.VirtualDisplay createVirtualDisplay(@NonNull String, int, int, int, int, @Nullable android.view.Surface, @Nullable android.hardware.display.VirtualDisplay.Callback, @Nullable android.os.Handler);
     method public void registerCallback(android.media.projection.MediaProjection.Callback, android.os.Handler);
     method public void stop();
     method public void unregisterCallback(android.media.projection.MediaProjection.Callback);
   }
 
-  public static abstract class MediaProjection.Callback {
+  public abstract static class MediaProjection.Callback {
     ctor public MediaProjection.Callback();
     method public void onStop();
   }
 
   public final class MediaProjectionManager {
     method public android.content.Intent createScreenCaptureIntent();
-    method public android.media.projection.MediaProjection getMediaProjection(int, android.content.Intent);
+    method public android.media.projection.MediaProjection getMediaProjection(int, @NonNull android.content.Intent);
   }
 
 }
@@ -27407,52 +27288,52 @@
 
   public final class ControllerCallbackLink implements android.os.Parcelable {
     method public int describeContents();
-    method public android.os.IBinder getBinder();
-    method public void notifyEvent(java.lang.String, android.os.Bundle);
-    method public void notifyExtrasChanged(android.os.Bundle);
-    method public void notifyMetadataChanged(android.media.MediaMetadata);
-    method public void notifyPlaybackStateChanged(android.media.session.PlaybackState);
-    method public void notifyQueueChanged(java.util.List<android.media.session.MediaSession.QueueItem>);
-    method public void notifyQueueTitleChanged(java.lang.CharSequence);
+    method @NonNull public android.os.IBinder getBinder();
+    method public void notifyEvent(@NonNull String, @Nullable android.os.Bundle);
+    method public void notifyExtrasChanged(@Nullable android.os.Bundle);
+    method public void notifyMetadataChanged(@Nullable android.media.MediaMetadata);
+    method public void notifyPlaybackStateChanged(@Nullable android.media.session.PlaybackState);
+    method public void notifyQueueChanged(@Nullable java.util.List<android.media.session.MediaSession.QueueItem>);
+    method public void notifyQueueTitleChanged(@Nullable CharSequence);
     method public void notifySessionDestroyed();
-    method public void notifyVolumeInfoChanged(android.media.session.MediaController.PlaybackInfo);
+    method public void notifyVolumeInfoChanged(@NonNull android.media.session.MediaController.PlaybackInfo);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.session.ControllerCallbackLink> CREATOR;
   }
 
   public final class MediaController {
-    ctor public MediaController(android.content.Context, android.media.session.MediaSession.Token);
+    ctor public MediaController(@NonNull android.content.Context, @NonNull android.media.session.MediaSession.Token);
     method public void adjustVolume(int, int);
-    method public boolean dispatchMediaButtonEvent(android.view.KeyEvent);
-    method public android.os.Bundle getExtras();
+    method public boolean dispatchMediaButtonEvent(@NonNull android.view.KeyEvent);
+    method @Nullable public android.os.Bundle getExtras();
     method public long getFlags();
-    method public android.media.MediaMetadata getMetadata();
-    method public java.lang.String getPackageName();
-    method public android.media.session.MediaController.PlaybackInfo getPlaybackInfo();
-    method public android.media.session.PlaybackState getPlaybackState();
-    method public java.util.List<android.media.session.MediaSession.QueueItem> getQueue();
-    method public java.lang.CharSequence getQueueTitle();
+    method @Nullable public android.media.MediaMetadata getMetadata();
+    method public String getPackageName();
+    method @Nullable public android.media.session.MediaController.PlaybackInfo getPlaybackInfo();
+    method @Nullable public android.media.session.PlaybackState getPlaybackState();
+    method @Nullable public java.util.List<android.media.session.MediaSession.QueueItem> getQueue();
+    method @Nullable public CharSequence getQueueTitle();
     method public int getRatingType();
-    method public android.app.PendingIntent getSessionActivity();
-    method public android.media.session.MediaSession.Token getSessionToken();
-    method public android.media.session.MediaController.TransportControls getTransportControls();
-    method public void registerCallback(android.media.session.MediaController.Callback);
-    method public void registerCallback(android.media.session.MediaController.Callback, android.os.Handler);
-    method public void sendCommand(java.lang.String, android.os.Bundle, android.os.ResultReceiver);
+    method @Nullable public android.app.PendingIntent getSessionActivity();
+    method @NonNull public android.media.session.MediaSession.Token getSessionToken();
+    method @NonNull public android.media.session.MediaController.TransportControls getTransportControls();
+    method public void registerCallback(@NonNull android.media.session.MediaController.Callback);
+    method public void registerCallback(@NonNull android.media.session.MediaController.Callback, @Nullable android.os.Handler);
+    method public void sendCommand(@NonNull String, @Nullable android.os.Bundle, @Nullable android.os.ResultReceiver);
     method public void setVolumeTo(int, int);
-    method public void unregisterCallback(android.media.session.MediaController.Callback);
+    method public void unregisterCallback(@NonNull android.media.session.MediaController.Callback);
   }
 
-  public static abstract class MediaController.Callback {
+  public abstract static class MediaController.Callback {
     ctor public MediaController.Callback();
     method public void onAudioInfoChanged(android.media.session.MediaController.PlaybackInfo);
-    method public void onExtrasChanged(android.os.Bundle);
-    method public void onMetadataChanged(android.media.MediaMetadata);
-    method public void onPlaybackStateChanged(android.media.session.PlaybackState);
-    method public void onQueueChanged(java.util.List<android.media.session.MediaSession.QueueItem>);
-    method public void onQueueTitleChanged(java.lang.CharSequence);
+    method public void onExtrasChanged(@Nullable android.os.Bundle);
+    method public void onMetadataChanged(@Nullable android.media.MediaMetadata);
+    method public void onPlaybackStateChanged(@Nullable android.media.session.PlaybackState);
+    method public void onQueueChanged(@Nullable java.util.List<android.media.session.MediaSession.QueueItem>);
+    method public void onQueueTitleChanged(@Nullable CharSequence);
     method public void onSessionDestroyed();
-    method public void onSessionEvent(java.lang.String, android.os.Bundle);
+    method public void onSessionEvent(@NonNull String, @Nullable android.os.Bundle);
   }
 
   public static final class MediaController.PlaybackInfo implements android.os.Parcelable {
@@ -27472,17 +27353,17 @@
     method public void fastForward();
     method public void pause();
     method public void play();
-    method public void playFromMediaId(java.lang.String, android.os.Bundle);
-    method public void playFromSearch(java.lang.String, android.os.Bundle);
+    method public void playFromMediaId(String, android.os.Bundle);
+    method public void playFromSearch(String, android.os.Bundle);
     method public void playFromUri(android.net.Uri, android.os.Bundle);
     method public void prepare();
-    method public void prepareFromMediaId(java.lang.String, android.os.Bundle);
-    method public void prepareFromSearch(java.lang.String, android.os.Bundle);
+    method public void prepareFromMediaId(String, android.os.Bundle);
+    method public void prepareFromSearch(String, android.os.Bundle);
     method public void prepareFromUri(android.net.Uri, android.os.Bundle);
     method public void rewind();
     method public void seekTo(long);
-    method public void sendCustomAction(android.media.session.PlaybackState.CustomAction, android.os.Bundle);
-    method public void sendCustomAction(java.lang.String, android.os.Bundle);
+    method public void sendCustomAction(@NonNull android.media.session.PlaybackState.CustomAction, @Nullable android.os.Bundle);
+    method public void sendCustomAction(@NonNull String, @Nullable android.os.Bundle);
     method public void setRating(android.media.Rating);
     method public void skipToNext();
     method public void skipToPrevious();
@@ -27491,49 +27372,49 @@
   }
 
   public final class MediaSession {
-    ctor public MediaSession(android.content.Context, java.lang.String);
-    method public android.media.session.MediaController getController();
-    method public android.media.session.MediaSessionManager.RemoteUserInfo getCurrentControllerInfo();
-    method public android.media.session.MediaSession.Token getSessionToken();
+    ctor public MediaSession(@NonNull android.content.Context, @NonNull String);
+    method @NonNull public android.media.session.MediaController getController();
+    method @NonNull public android.media.session.MediaSessionManager.RemoteUserInfo getCurrentControllerInfo();
+    method @NonNull public android.media.session.MediaSession.Token getSessionToken();
     method public boolean isActive();
     method public void release();
-    method public void sendSessionEvent(java.lang.String, android.os.Bundle);
+    method public void sendSessionEvent(@NonNull String, @Nullable android.os.Bundle);
     method public void setActive(boolean);
-    method public void setCallback(android.media.session.MediaSession.Callback);
-    method public void setCallback(android.media.session.MediaSession.Callback, android.os.Handler);
-    method public void setExtras(android.os.Bundle);
+    method public void setCallback(@Nullable android.media.session.MediaSession.Callback);
+    method public void setCallback(@Nullable android.media.session.MediaSession.Callback, @Nullable android.os.Handler);
+    method public void setExtras(@Nullable android.os.Bundle);
     method public void setFlags(int);
-    method public void setMediaButtonReceiver(android.app.PendingIntent);
-    method public void setMetadata(android.media.MediaMetadata);
-    method public void setPlaybackState(android.media.session.PlaybackState);
+    method public void setMediaButtonReceiver(@Nullable android.app.PendingIntent);
+    method public void setMetadata(@Nullable android.media.MediaMetadata);
+    method public void setPlaybackState(@Nullable android.media.session.PlaybackState);
     method public void setPlaybackToLocal(android.media.AudioAttributes);
-    method public void setPlaybackToRemote(android.media.VolumeProvider);
-    method public void setQueue(java.util.List<android.media.session.MediaSession.QueueItem>);
-    method public void setQueueTitle(java.lang.CharSequence);
+    method public void setPlaybackToRemote(@NonNull android.media.VolumeProvider);
+    method public void setQueue(@Nullable java.util.List<android.media.session.MediaSession.QueueItem>);
+    method public void setQueueTitle(@Nullable CharSequence);
     method public void setRatingType(int);
-    method public void setSessionActivity(android.app.PendingIntent);
-    field public static final deprecated int FLAG_HANDLES_MEDIA_BUTTONS = 1; // 0x1
-    field public static final deprecated int FLAG_HANDLES_TRANSPORT_CONTROLS = 2; // 0x2
+    method public void setSessionActivity(@Nullable android.app.PendingIntent);
+    field @Deprecated public static final int FLAG_HANDLES_MEDIA_BUTTONS = 1; // 0x1
+    field @Deprecated public static final int FLAG_HANDLES_TRANSPORT_CONTROLS = 2; // 0x2
   }
 
-  public static abstract class MediaSession.Callback {
+  public abstract static class MediaSession.Callback {
     ctor public MediaSession.Callback();
-    method public void onCommand(java.lang.String, android.os.Bundle, android.os.ResultReceiver);
-    method public void onCustomAction(java.lang.String, android.os.Bundle);
+    method public void onCommand(@NonNull String, @Nullable android.os.Bundle, @Nullable android.os.ResultReceiver);
+    method public void onCustomAction(@NonNull String, @Nullable android.os.Bundle);
     method public void onFastForward();
-    method public boolean onMediaButtonEvent(android.content.Intent);
+    method public boolean onMediaButtonEvent(@NonNull android.content.Intent);
     method public void onPause();
     method public void onPlay();
-    method public void onPlayFromMediaId(java.lang.String, android.os.Bundle);
-    method public void onPlayFromSearch(java.lang.String, android.os.Bundle);
+    method public void onPlayFromMediaId(String, android.os.Bundle);
+    method public void onPlayFromSearch(String, android.os.Bundle);
     method public void onPlayFromUri(android.net.Uri, android.os.Bundle);
     method public void onPrepare();
-    method public void onPrepareFromMediaId(java.lang.String, android.os.Bundle);
-    method public void onPrepareFromSearch(java.lang.String, android.os.Bundle);
+    method public void onPrepareFromMediaId(String, android.os.Bundle);
+    method public void onPrepareFromSearch(String, android.os.Bundle);
     method public void onPrepareFromUri(android.net.Uri, android.os.Bundle);
     method public void onRewind();
     method public void onSeekTo(long);
-    method public void onSetRating(android.media.Rating);
+    method public void onSetRating(@NonNull android.media.Rating);
     method public void onSkipToNext();
     method public void onSkipToPrevious();
     method public void onSkipToQueueItem(long);
@@ -27557,21 +27438,21 @@
   }
 
   public final class MediaSessionManager {
-    method public void addOnActiveSessionsChangedListener(android.media.session.MediaSessionManager.OnActiveSessionsChangedListener, android.content.ComponentName);
-    method public void addOnActiveSessionsChangedListener(android.media.session.MediaSessionManager.OnActiveSessionsChangedListener, android.content.ComponentName, android.os.Handler);
-    method public java.util.List<android.media.session.MediaController> getActiveSessions(android.content.ComponentName);
-    method public boolean isTrustedForMediaControl(android.media.session.MediaSessionManager.RemoteUserInfo);
-    method public void removeOnActiveSessionsChangedListener(android.media.session.MediaSessionManager.OnActiveSessionsChangedListener);
+    method public void addOnActiveSessionsChangedListener(@NonNull android.media.session.MediaSessionManager.OnActiveSessionsChangedListener, @Nullable android.content.ComponentName);
+    method public void addOnActiveSessionsChangedListener(@NonNull android.media.session.MediaSessionManager.OnActiveSessionsChangedListener, @Nullable android.content.ComponentName, @Nullable android.os.Handler);
+    method @NonNull public java.util.List<android.media.session.MediaController> getActiveSessions(@Nullable android.content.ComponentName);
+    method public boolean isTrustedForMediaControl(@NonNull android.media.session.MediaSessionManager.RemoteUserInfo);
+    method public void removeOnActiveSessionsChangedListener(@NonNull android.media.session.MediaSessionManager.OnActiveSessionsChangedListener);
   }
 
-  public static abstract interface MediaSessionManager.OnActiveSessionsChangedListener {
-    method public abstract void onActiveSessionsChanged(java.util.List<android.media.session.MediaController>);
+  public static interface MediaSessionManager.OnActiveSessionsChangedListener {
+    method public void onActiveSessionsChanged(@Nullable java.util.List<android.media.session.MediaController>);
   }
 
   public static final class MediaSessionManager.RemoteUserInfo {
-    ctor public MediaSessionManager.RemoteUserInfo(java.lang.String, int, int);
-    ctor public MediaSessionManager.RemoteUserInfo(java.lang.String, int, int, android.os.IBinder);
-    method public java.lang.String getPackageName();
+    ctor public MediaSessionManager.RemoteUserInfo(@NonNull String, int, int);
+    ctor public MediaSessionManager.RemoteUserInfo(String, int, int, android.os.IBinder);
+    method public String getPackageName();
     method public int getPid();
     method public int getUid();
   }
@@ -27582,8 +27463,8 @@
     method public long getActiveQueueItemId();
     method public long getBufferedPosition();
     method public java.util.List<android.media.session.PlaybackState.CustomAction> getCustomActions();
-    method public java.lang.CharSequence getErrorMessage();
-    method public android.os.Bundle getExtras();
+    method public CharSequence getErrorMessage();
+    method @Nullable public android.os.Bundle getExtras();
     method public long getLastPositionUpdateTime();
     method public float getPlaybackSpeed();
     method public long getPosition();
@@ -27626,13 +27507,13 @@
   public static final class PlaybackState.Builder {
     ctor public PlaybackState.Builder();
     ctor public PlaybackState.Builder(android.media.session.PlaybackState);
-    method public android.media.session.PlaybackState.Builder addCustomAction(java.lang.String, java.lang.String, int);
+    method public android.media.session.PlaybackState.Builder addCustomAction(String, String, int);
     method public android.media.session.PlaybackState.Builder addCustomAction(android.media.session.PlaybackState.CustomAction);
     method public android.media.session.PlaybackState build();
     method public android.media.session.PlaybackState.Builder setActions(long);
     method public android.media.session.PlaybackState.Builder setActiveQueueItemId(long);
     method public android.media.session.PlaybackState.Builder setBufferedPosition(long);
-    method public android.media.session.PlaybackState.Builder setErrorMessage(java.lang.CharSequence);
+    method public android.media.session.PlaybackState.Builder setErrorMessage(CharSequence);
     method public android.media.session.PlaybackState.Builder setExtras(android.os.Bundle);
     method public android.media.session.PlaybackState.Builder setState(int, long, float, long);
     method public android.media.session.PlaybackState.Builder setState(int, long, float);
@@ -27640,46 +27521,46 @@
 
   public static final class PlaybackState.CustomAction implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getAction();
+    method public String getAction();
     method public android.os.Bundle getExtras();
     method public int getIcon();
-    method public java.lang.CharSequence getName();
+    method public CharSequence getName();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.session.PlaybackState.CustomAction> CREATOR;
   }
 
   public static final class PlaybackState.CustomAction.Builder {
-    ctor public PlaybackState.CustomAction.Builder(java.lang.String, java.lang.CharSequence, int);
+    ctor public PlaybackState.CustomAction.Builder(String, CharSequence, @DrawableRes int);
     method public android.media.session.PlaybackState.CustomAction build();
     method public android.media.session.PlaybackState.CustomAction.Builder setExtras(android.os.Bundle);
   }
 
   public final class SessionCallbackLink implements android.os.Parcelable {
     method public int describeContents();
-    method public android.os.IBinder getBinder();
-    method public void notifyAdjustVolume(java.lang.String, int, int, android.media.session.ControllerCallbackLink, int);
-    method public void notifyCommand(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle, android.os.ResultReceiver);
-    method public void notifyCustomAction(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle);
-    method public void notifyFastForward(java.lang.String, int, int, android.media.session.ControllerCallbackLink);
-    method public void notifyMediaButton(java.lang.String, int, int, android.content.Intent, int, android.os.ResultReceiver);
-    method public void notifyMediaButtonFromController(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.content.Intent);
-    method public void notifyNext(java.lang.String, int, int, android.media.session.ControllerCallbackLink);
-    method public void notifyPause(java.lang.String, int, int, android.media.session.ControllerCallbackLink);
-    method public void notifyPlay(java.lang.String, int, int, android.media.session.ControllerCallbackLink);
-    method public void notifyPlayFromMediaId(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle);
-    method public void notifyPlayFromSearch(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle);
-    method public void notifyPlayFromUri(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.net.Uri, android.os.Bundle);
-    method public void notifyPrepare(java.lang.String, int, int, android.media.session.ControllerCallbackLink);
-    method public void notifyPrepareFromMediaId(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle);
-    method public void notifyPrepareFromSearch(java.lang.String, int, int, android.media.session.ControllerCallbackLink, java.lang.String, android.os.Bundle);
-    method public void notifyPrepareFromUri(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.net.Uri, android.os.Bundle);
-    method public void notifyPrevious(java.lang.String, int, int, android.media.session.ControllerCallbackLink);
-    method public void notifyRate(java.lang.String, int, int, android.media.session.ControllerCallbackLink, android.media.Rating);
-    method public void notifyRewind(java.lang.String, int, int, android.media.session.ControllerCallbackLink);
-    method public void notifySeekTo(java.lang.String, int, int, android.media.session.ControllerCallbackLink, long);
-    method public void notifySetVolumeTo(java.lang.String, int, int, android.media.session.ControllerCallbackLink, int);
-    method public void notifySkipToTrack(java.lang.String, int, int, android.media.session.ControllerCallbackLink, long);
-    method public void notifyStop(java.lang.String, int, int, android.media.session.ControllerCallbackLink);
+    method @NonNull public android.os.IBinder getBinder();
+    method public void notifyAdjustVolume(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, int);
+    method public void notifyCommand(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, @NonNull String, @Nullable android.os.Bundle, @Nullable android.os.ResultReceiver);
+    method public void notifyCustomAction(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, @NonNull String, @Nullable android.os.Bundle);
+    method public void notifyFastForward(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink);
+    method public void notifyMediaButton(@NonNull String, int, int, @NonNull android.content.Intent, int, @Nullable android.os.ResultReceiver);
+    method public void notifyMediaButtonFromController(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, @NonNull android.content.Intent);
+    method public void notifyNext(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink);
+    method public void notifyPause(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink);
+    method public void notifyPlay(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink);
+    method public void notifyPlayFromMediaId(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, @NonNull String, @Nullable android.os.Bundle);
+    method public void notifyPlayFromSearch(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, @NonNull String, @Nullable android.os.Bundle);
+    method public void notifyPlayFromUri(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, @NonNull android.net.Uri, @Nullable android.os.Bundle);
+    method public void notifyPrepare(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink);
+    method public void notifyPrepareFromMediaId(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, @NonNull String, @Nullable android.os.Bundle);
+    method public void notifyPrepareFromSearch(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, @NonNull String, @Nullable android.os.Bundle);
+    method public void notifyPrepareFromUri(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, @NonNull android.net.Uri, @Nullable android.os.Bundle);
+    method public void notifyPrevious(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink);
+    method public void notifyRate(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, @NonNull android.media.Rating);
+    method public void notifyRewind(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink);
+    method public void notifySeekTo(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, long);
+    method public void notifySetVolumeTo(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, int);
+    method public void notifySkipToTrack(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink, long);
+    method public void notifyStop(@NonNull String, int, int, @NonNull android.media.session.ControllerCallbackLink);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.session.SessionCallbackLink> CREATOR;
   }
@@ -27689,14 +27570,14 @@
 package android.media.tv {
 
   public final class TvContentRating {
-    method public boolean contains(android.media.tv.TvContentRating);
-    method public static android.media.tv.TvContentRating createRating(java.lang.String, java.lang.String, java.lang.String, java.lang.String...);
-    method public java.lang.String flattenToString();
-    method public java.lang.String getDomain();
-    method public java.lang.String getMainRating();
-    method public java.lang.String getRatingSystem();
+    method public boolean contains(@NonNull android.media.tv.TvContentRating);
+    method public static android.media.tv.TvContentRating createRating(String, String, String, java.lang.String...);
+    method public String flattenToString();
+    method public String getDomain();
+    method public String getMainRating();
+    method public String getRatingSystem();
     method public java.util.List<java.lang.String> getSubRatings();
-    method public static android.media.tv.TvContentRating unflattenFromString(java.lang.String);
+    method public static android.media.tv.TvContentRating unflattenFromString(String);
     field public static final android.media.tv.TvContentRating UNRATED;
   }
 
@@ -27704,9 +27585,9 @@
     method public static android.net.Uri buildChannelLogoUri(long);
     method public static android.net.Uri buildChannelLogoUri(android.net.Uri);
     method public static android.net.Uri buildChannelUri(long);
-    method public static android.net.Uri buildChannelUriForPassthroughInput(java.lang.String);
-    method public static android.net.Uri buildChannelsUriForInput(java.lang.String);
-    method public static java.lang.String buildInputId(android.content.ComponentName);
+    method public static android.net.Uri buildChannelUriForPassthroughInput(String);
+    method public static android.net.Uri buildChannelsUriForInput(@Nullable String);
+    method public static String buildInputId(android.content.ComponentName);
     method public static android.net.Uri buildPreviewProgramUri(long);
     method public static android.net.Uri buildPreviewProgramsUriForChannel(long);
     method public static android.net.Uri buildPreviewProgramsUriForChannel(android.net.Uri);
@@ -27717,107 +27598,107 @@
     method public static android.net.Uri buildProgramsUriForChannel(android.net.Uri, long, long);
     method public static android.net.Uri buildRecordedProgramUri(long);
     method public static android.net.Uri buildWatchNextProgramUri(long);
-    method public static boolean isChannelUri(android.net.Uri);
-    method public static boolean isChannelUriForPassthroughInput(android.net.Uri);
-    method public static boolean isChannelUriForTunerInput(android.net.Uri);
-    method public static boolean isProgramUri(android.net.Uri);
-    method public static boolean isRecordedProgramUri(android.net.Uri);
+    method public static boolean isChannelUri(@NonNull android.net.Uri);
+    method public static boolean isChannelUriForPassthroughInput(@NonNull android.net.Uri);
+    method public static boolean isChannelUriForTunerInput(@NonNull android.net.Uri);
+    method public static boolean isProgramUri(@NonNull android.net.Uri);
+    method public static boolean isRecordedProgramUri(@NonNull android.net.Uri);
     method public static void requestChannelBrowsable(android.content.Context, long);
-    field public static final java.lang.String ACTION_INITIALIZE_PROGRAMS = "android.media.tv.action.INITIALIZE_PROGRAMS";
-    field public static final java.lang.String ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT = "android.media.tv.action.PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT";
-    field public static final java.lang.String ACTION_PREVIEW_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED";
-    field public static final java.lang.String ACTION_REQUEST_CHANNEL_BROWSABLE = "android.media.tv.action.REQUEST_CHANNEL_BROWSABLE";
-    field public static final java.lang.String ACTION_WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED";
-    field public static final java.lang.String AUTHORITY = "android.media.tv";
-    field public static final java.lang.String EXTRA_CHANNEL_ID = "android.media.tv.extra.CHANNEL_ID";
-    field public static final java.lang.String EXTRA_PREVIEW_PROGRAM_ID = "android.media.tv.extra.PREVIEW_PROGRAM_ID";
-    field public static final java.lang.String EXTRA_WATCH_NEXT_PROGRAM_ID = "android.media.tv.extra.WATCH_NEXT_PROGRAM_ID";
+    field public static final String ACTION_INITIALIZE_PROGRAMS = "android.media.tv.action.INITIALIZE_PROGRAMS";
+    field public static final String ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT = "android.media.tv.action.PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT";
+    field public static final String ACTION_PREVIEW_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED";
+    field public static final String ACTION_REQUEST_CHANNEL_BROWSABLE = "android.media.tv.action.REQUEST_CHANNEL_BROWSABLE";
+    field public static final String ACTION_WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED = "android.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED";
+    field public static final String AUTHORITY = "android.media.tv";
+    field public static final String EXTRA_CHANNEL_ID = "android.media.tv.extra.CHANNEL_ID";
+    field public static final String EXTRA_PREVIEW_PROGRAM_ID = "android.media.tv.extra.PREVIEW_PROGRAM_ID";
+    field public static final String EXTRA_WATCH_NEXT_PROGRAM_ID = "android.media.tv.extra.WATCH_NEXT_PROGRAM_ID";
   }
 
-  public static abstract interface TvContract.BaseTvColumns implements android.provider.BaseColumns {
-    field public static final java.lang.String COLUMN_PACKAGE_NAME = "package_name";
+  public static interface TvContract.BaseTvColumns extends android.provider.BaseColumns {
+    field public static final String COLUMN_PACKAGE_NAME = "package_name";
   }
 
   public static final class TvContract.Channels implements android.media.tv.TvContract.BaseTvColumns {
-    method public static java.lang.String getVideoResolution(java.lang.String);
-    field public static final java.lang.String COLUMN_APP_LINK_COLOR = "app_link_color";
-    field public static final java.lang.String COLUMN_APP_LINK_ICON_URI = "app_link_icon_uri";
-    field public static final java.lang.String COLUMN_APP_LINK_INTENT_URI = "app_link_intent_uri";
-    field public static final java.lang.String COLUMN_APP_LINK_POSTER_ART_URI = "app_link_poster_art_uri";
-    field public static final java.lang.String COLUMN_APP_LINK_TEXT = "app_link_text";
-    field public static final java.lang.String COLUMN_BROWSABLE = "browsable";
-    field public static final java.lang.String COLUMN_DESCRIPTION = "description";
-    field public static final java.lang.String COLUMN_DISPLAY_NAME = "display_name";
-    field public static final java.lang.String COLUMN_DISPLAY_NUMBER = "display_number";
-    field public static final java.lang.String COLUMN_INPUT_ID = "input_id";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
-    field public static final java.lang.String COLUMN_LOCKED = "locked";
-    field public static final java.lang.String COLUMN_NETWORK_AFFILIATION = "network_affiliation";
-    field public static final java.lang.String COLUMN_ORIGINAL_NETWORK_ID = "original_network_id";
-    field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
-    field public static final java.lang.String COLUMN_SERVICE_ID = "service_id";
-    field public static final java.lang.String COLUMN_SERVICE_TYPE = "service_type";
-    field public static final java.lang.String COLUMN_TRANSIENT = "transient";
-    field public static final java.lang.String COLUMN_TRANSPORT_STREAM_ID = "transport_stream_id";
-    field public static final java.lang.String COLUMN_TYPE = "type";
-    field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
-    field public static final java.lang.String COLUMN_VIDEO_FORMAT = "video_format";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/channel";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/channel";
+    method @Nullable public static String getVideoResolution(String);
+    field public static final String COLUMN_APP_LINK_COLOR = "app_link_color";
+    field public static final String COLUMN_APP_LINK_ICON_URI = "app_link_icon_uri";
+    field public static final String COLUMN_APP_LINK_INTENT_URI = "app_link_intent_uri";
+    field public static final String COLUMN_APP_LINK_POSTER_ART_URI = "app_link_poster_art_uri";
+    field public static final String COLUMN_APP_LINK_TEXT = "app_link_text";
+    field public static final String COLUMN_BROWSABLE = "browsable";
+    field public static final String COLUMN_DESCRIPTION = "description";
+    field public static final String COLUMN_DISPLAY_NAME = "display_name";
+    field public static final String COLUMN_DISPLAY_NUMBER = "display_number";
+    field public static final String COLUMN_INPUT_ID = "input_id";
+    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
+    field public static final String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
+    field public static final String COLUMN_LOCKED = "locked";
+    field public static final String COLUMN_NETWORK_AFFILIATION = "network_affiliation";
+    field public static final String COLUMN_ORIGINAL_NETWORK_ID = "original_network_id";
+    field public static final String COLUMN_SEARCHABLE = "searchable";
+    field public static final String COLUMN_SERVICE_ID = "service_id";
+    field public static final String COLUMN_SERVICE_TYPE = "service_type";
+    field public static final String COLUMN_TRANSIENT = "transient";
+    field public static final String COLUMN_TRANSPORT_STREAM_ID = "transport_stream_id";
+    field public static final String COLUMN_TYPE = "type";
+    field public static final String COLUMN_VERSION_NUMBER = "version_number";
+    field public static final String COLUMN_VIDEO_FORMAT = "video_format";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/channel";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/channel";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String SERVICE_TYPE_AUDIO = "SERVICE_TYPE_AUDIO";
-    field public static final java.lang.String SERVICE_TYPE_AUDIO_VIDEO = "SERVICE_TYPE_AUDIO_VIDEO";
-    field public static final java.lang.String SERVICE_TYPE_OTHER = "SERVICE_TYPE_OTHER";
-    field public static final java.lang.String TYPE_1SEG = "TYPE_1SEG";
-    field public static final java.lang.String TYPE_ATSC_C = "TYPE_ATSC_C";
-    field public static final java.lang.String TYPE_ATSC_M_H = "TYPE_ATSC_M_H";
-    field public static final java.lang.String TYPE_ATSC_T = "TYPE_ATSC_T";
-    field public static final java.lang.String TYPE_CMMB = "TYPE_CMMB";
-    field public static final java.lang.String TYPE_DTMB = "TYPE_DTMB";
-    field public static final java.lang.String TYPE_DVB_C = "TYPE_DVB_C";
-    field public static final java.lang.String TYPE_DVB_C2 = "TYPE_DVB_C2";
-    field public static final java.lang.String TYPE_DVB_H = "TYPE_DVB_H";
-    field public static final java.lang.String TYPE_DVB_S = "TYPE_DVB_S";
-    field public static final java.lang.String TYPE_DVB_S2 = "TYPE_DVB_S2";
-    field public static final java.lang.String TYPE_DVB_SH = "TYPE_DVB_SH";
-    field public static final java.lang.String TYPE_DVB_T = "TYPE_DVB_T";
-    field public static final java.lang.String TYPE_DVB_T2 = "TYPE_DVB_T2";
-    field public static final java.lang.String TYPE_ISDB_C = "TYPE_ISDB_C";
-    field public static final java.lang.String TYPE_ISDB_S = "TYPE_ISDB_S";
-    field public static final java.lang.String TYPE_ISDB_T = "TYPE_ISDB_T";
-    field public static final java.lang.String TYPE_ISDB_TB = "TYPE_ISDB_TB";
-    field public static final java.lang.String TYPE_NTSC = "TYPE_NTSC";
-    field public static final java.lang.String TYPE_OTHER = "TYPE_OTHER";
-    field public static final java.lang.String TYPE_PAL = "TYPE_PAL";
-    field public static final java.lang.String TYPE_PREVIEW = "TYPE_PREVIEW";
-    field public static final java.lang.String TYPE_SECAM = "TYPE_SECAM";
-    field public static final java.lang.String TYPE_S_DMB = "TYPE_S_DMB";
-    field public static final java.lang.String TYPE_T_DMB = "TYPE_T_DMB";
-    field public static final java.lang.String VIDEO_FORMAT_1080I = "VIDEO_FORMAT_1080I";
-    field public static final java.lang.String VIDEO_FORMAT_1080P = "VIDEO_FORMAT_1080P";
-    field public static final java.lang.String VIDEO_FORMAT_2160P = "VIDEO_FORMAT_2160P";
-    field public static final java.lang.String VIDEO_FORMAT_240P = "VIDEO_FORMAT_240P";
-    field public static final java.lang.String VIDEO_FORMAT_360P = "VIDEO_FORMAT_360P";
-    field public static final java.lang.String VIDEO_FORMAT_4320P = "VIDEO_FORMAT_4320P";
-    field public static final java.lang.String VIDEO_FORMAT_480I = "VIDEO_FORMAT_480I";
-    field public static final java.lang.String VIDEO_FORMAT_480P = "VIDEO_FORMAT_480P";
-    field public static final java.lang.String VIDEO_FORMAT_576I = "VIDEO_FORMAT_576I";
-    field public static final java.lang.String VIDEO_FORMAT_576P = "VIDEO_FORMAT_576P";
-    field public static final java.lang.String VIDEO_FORMAT_720P = "VIDEO_FORMAT_720P";
-    field public static final java.lang.String VIDEO_RESOLUTION_ED = "VIDEO_RESOLUTION_ED";
-    field public static final java.lang.String VIDEO_RESOLUTION_FHD = "VIDEO_RESOLUTION_FHD";
-    field public static final java.lang.String VIDEO_RESOLUTION_HD = "VIDEO_RESOLUTION_HD";
-    field public static final java.lang.String VIDEO_RESOLUTION_SD = "VIDEO_RESOLUTION_SD";
-    field public static final java.lang.String VIDEO_RESOLUTION_UHD = "VIDEO_RESOLUTION_UHD";
+    field public static final String SERVICE_TYPE_AUDIO = "SERVICE_TYPE_AUDIO";
+    field public static final String SERVICE_TYPE_AUDIO_VIDEO = "SERVICE_TYPE_AUDIO_VIDEO";
+    field public static final String SERVICE_TYPE_OTHER = "SERVICE_TYPE_OTHER";
+    field public static final String TYPE_1SEG = "TYPE_1SEG";
+    field public static final String TYPE_ATSC_C = "TYPE_ATSC_C";
+    field public static final String TYPE_ATSC_M_H = "TYPE_ATSC_M_H";
+    field public static final String TYPE_ATSC_T = "TYPE_ATSC_T";
+    field public static final String TYPE_CMMB = "TYPE_CMMB";
+    field public static final String TYPE_DTMB = "TYPE_DTMB";
+    field public static final String TYPE_DVB_C = "TYPE_DVB_C";
+    field public static final String TYPE_DVB_C2 = "TYPE_DVB_C2";
+    field public static final String TYPE_DVB_H = "TYPE_DVB_H";
+    field public static final String TYPE_DVB_S = "TYPE_DVB_S";
+    field public static final String TYPE_DVB_S2 = "TYPE_DVB_S2";
+    field public static final String TYPE_DVB_SH = "TYPE_DVB_SH";
+    field public static final String TYPE_DVB_T = "TYPE_DVB_T";
+    field public static final String TYPE_DVB_T2 = "TYPE_DVB_T2";
+    field public static final String TYPE_ISDB_C = "TYPE_ISDB_C";
+    field public static final String TYPE_ISDB_S = "TYPE_ISDB_S";
+    field public static final String TYPE_ISDB_T = "TYPE_ISDB_T";
+    field public static final String TYPE_ISDB_TB = "TYPE_ISDB_TB";
+    field public static final String TYPE_NTSC = "TYPE_NTSC";
+    field public static final String TYPE_OTHER = "TYPE_OTHER";
+    field public static final String TYPE_PAL = "TYPE_PAL";
+    field public static final String TYPE_PREVIEW = "TYPE_PREVIEW";
+    field public static final String TYPE_SECAM = "TYPE_SECAM";
+    field public static final String TYPE_S_DMB = "TYPE_S_DMB";
+    field public static final String TYPE_T_DMB = "TYPE_T_DMB";
+    field public static final String VIDEO_FORMAT_1080I = "VIDEO_FORMAT_1080I";
+    field public static final String VIDEO_FORMAT_1080P = "VIDEO_FORMAT_1080P";
+    field public static final String VIDEO_FORMAT_2160P = "VIDEO_FORMAT_2160P";
+    field public static final String VIDEO_FORMAT_240P = "VIDEO_FORMAT_240P";
+    field public static final String VIDEO_FORMAT_360P = "VIDEO_FORMAT_360P";
+    field public static final String VIDEO_FORMAT_4320P = "VIDEO_FORMAT_4320P";
+    field public static final String VIDEO_FORMAT_480I = "VIDEO_FORMAT_480I";
+    field public static final String VIDEO_FORMAT_480P = "VIDEO_FORMAT_480P";
+    field public static final String VIDEO_FORMAT_576I = "VIDEO_FORMAT_576I";
+    field public static final String VIDEO_FORMAT_576P = "VIDEO_FORMAT_576P";
+    field public static final String VIDEO_FORMAT_720P = "VIDEO_FORMAT_720P";
+    field public static final String VIDEO_RESOLUTION_ED = "VIDEO_RESOLUTION_ED";
+    field public static final String VIDEO_RESOLUTION_FHD = "VIDEO_RESOLUTION_FHD";
+    field public static final String VIDEO_RESOLUTION_HD = "VIDEO_RESOLUTION_HD";
+    field public static final String VIDEO_RESOLUTION_SD = "VIDEO_RESOLUTION_SD";
+    field public static final String VIDEO_RESOLUTION_UHD = "VIDEO_RESOLUTION_UHD";
   }
 
   public static final class TvContract.Channels.Logo {
-    field public static final java.lang.String CONTENT_DIRECTORY = "logo";
+    field public static final String CONTENT_DIRECTORY = "logo";
   }
 
   public static final class TvContract.PreviewPrograms implements android.media.tv.TvContract.BaseTvColumns {
@@ -27829,55 +27710,55 @@
     field public static final int AVAILABILITY_AVAILABLE = 0; // 0x0
     field public static final int AVAILABILITY_FREE_WITH_SUBSCRIPTION = 1; // 0x1
     field public static final int AVAILABILITY_PAID_CONTENT = 2; // 0x2
-    field public static final java.lang.String COLUMN_AUDIO_LANGUAGE = "audio_language";
-    field public static final java.lang.String COLUMN_AUTHOR = "author";
-    field public static final java.lang.String COLUMN_AVAILABILITY = "availability";
-    field public static final java.lang.String COLUMN_BROWSABLE = "browsable";
-    field public static final java.lang.String COLUMN_CANONICAL_GENRE = "canonical_genre";
-    field public static final java.lang.String COLUMN_CHANNEL_ID = "channel_id";
-    field public static final java.lang.String COLUMN_CONTENT_ID = "content_id";
-    field public static final java.lang.String COLUMN_CONTENT_RATING = "content_rating";
-    field public static final java.lang.String COLUMN_DURATION_MILLIS = "duration_millis";
-    field public static final java.lang.String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
-    field public static final java.lang.String COLUMN_EPISODE_TITLE = "episode_title";
-    field public static final java.lang.String COLUMN_INTENT_URI = "intent_uri";
-    field public static final java.lang.String COLUMN_INTERACTION_COUNT = "interaction_count";
-    field public static final java.lang.String COLUMN_INTERACTION_TYPE = "interaction_type";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
-    field public static final java.lang.String COLUMN_ITEM_COUNT = "item_count";
-    field public static final java.lang.String COLUMN_LAST_PLAYBACK_POSITION_MILLIS = "last_playback_position_millis";
-    field public static final java.lang.String COLUMN_LIVE = "live";
-    field public static final java.lang.String COLUMN_LOGO_URI = "logo_uri";
-    field public static final java.lang.String COLUMN_LONG_DESCRIPTION = "long_description";
-    field public static final java.lang.String COLUMN_OFFER_PRICE = "offer_price";
-    field public static final java.lang.String COLUMN_POSTER_ART_ASPECT_RATIO = "poster_art_aspect_ratio";
-    field public static final java.lang.String COLUMN_POSTER_ART_URI = "poster_art_uri";
-    field public static final java.lang.String COLUMN_PREVIEW_VIDEO_URI = "preview_video_uri";
-    field public static final java.lang.String COLUMN_RELEASE_DATE = "release_date";
-    field public static final java.lang.String COLUMN_REVIEW_RATING = "review_rating";
-    field public static final java.lang.String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
-    field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
-    field public static final java.lang.String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
-    field public static final java.lang.String COLUMN_SEASON_TITLE = "season_title";
-    field public static final java.lang.String COLUMN_SERIES_ID = "series_id";
-    field public static final java.lang.String COLUMN_SHORT_DESCRIPTION = "short_description";
-    field public static final java.lang.String COLUMN_STARTING_PRICE = "starting_price";
-    field public static final java.lang.String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
-    field public static final java.lang.String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_TRANSIENT = "transient";
-    field public static final java.lang.String COLUMN_TYPE = "type";
-    field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
-    field public static final java.lang.String COLUMN_VIDEO_HEIGHT = "video_height";
-    field public static final java.lang.String COLUMN_VIDEO_WIDTH = "video_width";
-    field public static final java.lang.String COLUMN_WEIGHT = "weight";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/preview_program";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/preview_program";
+    field public static final String COLUMN_AUDIO_LANGUAGE = "audio_language";
+    field public static final String COLUMN_AUTHOR = "author";
+    field public static final String COLUMN_AVAILABILITY = "availability";
+    field public static final String COLUMN_BROWSABLE = "browsable";
+    field public static final String COLUMN_CANONICAL_GENRE = "canonical_genre";
+    field public static final String COLUMN_CHANNEL_ID = "channel_id";
+    field public static final String COLUMN_CONTENT_ID = "content_id";
+    field public static final String COLUMN_CONTENT_RATING = "content_rating";
+    field public static final String COLUMN_DURATION_MILLIS = "duration_millis";
+    field public static final String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
+    field public static final String COLUMN_EPISODE_TITLE = "episode_title";
+    field public static final String COLUMN_INTENT_URI = "intent_uri";
+    field public static final String COLUMN_INTERACTION_COUNT = "interaction_count";
+    field public static final String COLUMN_INTERACTION_TYPE = "interaction_type";
+    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
+    field public static final String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
+    field public static final String COLUMN_ITEM_COUNT = "item_count";
+    field public static final String COLUMN_LAST_PLAYBACK_POSITION_MILLIS = "last_playback_position_millis";
+    field public static final String COLUMN_LIVE = "live";
+    field public static final String COLUMN_LOGO_URI = "logo_uri";
+    field public static final String COLUMN_LONG_DESCRIPTION = "long_description";
+    field public static final String COLUMN_OFFER_PRICE = "offer_price";
+    field public static final String COLUMN_POSTER_ART_ASPECT_RATIO = "poster_art_aspect_ratio";
+    field public static final String COLUMN_POSTER_ART_URI = "poster_art_uri";
+    field public static final String COLUMN_PREVIEW_VIDEO_URI = "preview_video_uri";
+    field public static final String COLUMN_RELEASE_DATE = "release_date";
+    field public static final String COLUMN_REVIEW_RATING = "review_rating";
+    field public static final String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
+    field public static final String COLUMN_SEARCHABLE = "searchable";
+    field public static final String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
+    field public static final String COLUMN_SEASON_TITLE = "season_title";
+    field public static final String COLUMN_SERIES_ID = "series_id";
+    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+    field public static final String COLUMN_STARTING_PRICE = "starting_price";
+    field public static final String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
+    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_TRANSIENT = "transient";
+    field public static final String COLUMN_TYPE = "type";
+    field public static final String COLUMN_VERSION_NUMBER = "version_number";
+    field public static final String COLUMN_VIDEO_HEIGHT = "video_height";
+    field public static final String COLUMN_VIDEO_WIDTH = "video_width";
+    field public static final String COLUMN_WEIGHT = "weight";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/preview_program";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/preview_program";
     field public static final android.net.Uri CONTENT_URI;
     field public static final int INTERACTION_TYPE_FANS = 3; // 0x3
     field public static final int INTERACTION_TYPE_FOLLOWERS = 2; // 0x2
@@ -27904,39 +27785,39 @@
   }
 
   public static final class TvContract.Programs implements android.media.tv.TvContract.BaseTvColumns {
-    field public static final java.lang.String COLUMN_AUDIO_LANGUAGE = "audio_language";
-    field public static final java.lang.String COLUMN_BROADCAST_GENRE = "broadcast_genre";
-    field public static final java.lang.String COLUMN_CANONICAL_GENRE = "canonical_genre";
-    field public static final java.lang.String COLUMN_CHANNEL_ID = "channel_id";
-    field public static final java.lang.String COLUMN_CONTENT_RATING = "content_rating";
-    field public static final java.lang.String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
-    field public static final java.lang.String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
-    field public static final deprecated java.lang.String COLUMN_EPISODE_NUMBER = "episode_number";
-    field public static final java.lang.String COLUMN_EPISODE_TITLE = "episode_title";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
-    field public static final java.lang.String COLUMN_LONG_DESCRIPTION = "long_description";
-    field public static final java.lang.String COLUMN_POSTER_ART_URI = "poster_art_uri";
-    field public static final java.lang.String COLUMN_RECORDING_PROHIBITED = "recording_prohibited";
-    field public static final java.lang.String COLUMN_REVIEW_RATING = "review_rating";
-    field public static final java.lang.String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
-    field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
-    field public static final java.lang.String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
-    field public static final deprecated java.lang.String COLUMN_SEASON_NUMBER = "season_number";
-    field public static final java.lang.String COLUMN_SEASON_TITLE = "season_title";
-    field public static final java.lang.String COLUMN_SERIES_ID = "series_id";
-    field public static final java.lang.String COLUMN_SHORT_DESCRIPTION = "short_description";
-    field public static final java.lang.String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
-    field public static final java.lang.String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
-    field public static final java.lang.String COLUMN_VIDEO_HEIGHT = "video_height";
-    field public static final java.lang.String COLUMN_VIDEO_WIDTH = "video_width";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/program";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/program";
+    field public static final String COLUMN_AUDIO_LANGUAGE = "audio_language";
+    field public static final String COLUMN_BROADCAST_GENRE = "broadcast_genre";
+    field public static final String COLUMN_CANONICAL_GENRE = "canonical_genre";
+    field public static final String COLUMN_CHANNEL_ID = "channel_id";
+    field public static final String COLUMN_CONTENT_RATING = "content_rating";
+    field public static final String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
+    field public static final String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
+    field @Deprecated public static final String COLUMN_EPISODE_NUMBER = "episode_number";
+    field public static final String COLUMN_EPISODE_TITLE = "episode_title";
+    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
+    field public static final String COLUMN_LONG_DESCRIPTION = "long_description";
+    field public static final String COLUMN_POSTER_ART_URI = "poster_art_uri";
+    field public static final String COLUMN_RECORDING_PROHIBITED = "recording_prohibited";
+    field public static final String COLUMN_REVIEW_RATING = "review_rating";
+    field public static final String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
+    field public static final String COLUMN_SEARCHABLE = "searchable";
+    field public static final String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
+    field @Deprecated public static final String COLUMN_SEASON_NUMBER = "season_number";
+    field public static final String COLUMN_SEASON_TITLE = "season_title";
+    field public static final String COLUMN_SERIES_ID = "series_id";
+    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+    field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
+    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_VERSION_NUMBER = "version_number";
+    field public static final String COLUMN_VIDEO_HEIGHT = "video_height";
+    field public static final String COLUMN_VIDEO_WIDTH = "video_width";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/program";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/program";
     field public static final android.net.Uri CONTENT_URI;
     field public static final int REVIEW_RATING_STYLE_PERCENTAGE = 2; // 0x2
     field public static final int REVIEW_RATING_STYLE_STARS = 0; // 0x0
@@ -27944,64 +27825,64 @@
   }
 
   public static final class TvContract.Programs.Genres {
-    method public static java.lang.String[] decode(java.lang.String);
-    method public static java.lang.String encode(java.lang.String...);
-    method public static boolean isCanonical(java.lang.String);
-    field public static final java.lang.String ANIMAL_WILDLIFE = "ANIMAL_WILDLIFE";
-    field public static final java.lang.String ARTS = "ARTS";
-    field public static final java.lang.String COMEDY = "COMEDY";
-    field public static final java.lang.String DRAMA = "DRAMA";
-    field public static final java.lang.String EDUCATION = "EDUCATION";
-    field public static final java.lang.String ENTERTAINMENT = "ENTERTAINMENT";
-    field public static final java.lang.String FAMILY_KIDS = "FAMILY_KIDS";
-    field public static final java.lang.String GAMING = "GAMING";
-    field public static final java.lang.String LIFE_STYLE = "LIFE_STYLE";
-    field public static final java.lang.String MOVIES = "MOVIES";
-    field public static final java.lang.String MUSIC = "MUSIC";
-    field public static final java.lang.String NEWS = "NEWS";
-    field public static final java.lang.String PREMIER = "PREMIER";
-    field public static final java.lang.String SHOPPING = "SHOPPING";
-    field public static final java.lang.String SPORTS = "SPORTS";
-    field public static final java.lang.String TECH_SCIENCE = "TECH_SCIENCE";
-    field public static final java.lang.String TRAVEL = "TRAVEL";
+    method public static String[] decode(@NonNull String);
+    method public static String encode(@NonNull java.lang.String...);
+    method public static boolean isCanonical(String);
+    field public static final String ANIMAL_WILDLIFE = "ANIMAL_WILDLIFE";
+    field public static final String ARTS = "ARTS";
+    field public static final String COMEDY = "COMEDY";
+    field public static final String DRAMA = "DRAMA";
+    field public static final String EDUCATION = "EDUCATION";
+    field public static final String ENTERTAINMENT = "ENTERTAINMENT";
+    field public static final String FAMILY_KIDS = "FAMILY_KIDS";
+    field public static final String GAMING = "GAMING";
+    field public static final String LIFE_STYLE = "LIFE_STYLE";
+    field public static final String MOVIES = "MOVIES";
+    field public static final String MUSIC = "MUSIC";
+    field public static final String NEWS = "NEWS";
+    field public static final String PREMIER = "PREMIER";
+    field public static final String SHOPPING = "SHOPPING";
+    field public static final String SPORTS = "SPORTS";
+    field public static final String TECH_SCIENCE = "TECH_SCIENCE";
+    field public static final String TRAVEL = "TRAVEL";
   }
 
   public static final class TvContract.RecordedPrograms implements android.media.tv.TvContract.BaseTvColumns {
-    field public static final java.lang.String COLUMN_AUDIO_LANGUAGE = "audio_language";
-    field public static final java.lang.String COLUMN_BROADCAST_GENRE = "broadcast_genre";
-    field public static final java.lang.String COLUMN_CANONICAL_GENRE = "canonical_genre";
-    field public static final java.lang.String COLUMN_CHANNEL_ID = "channel_id";
-    field public static final java.lang.String COLUMN_CONTENT_RATING = "content_rating";
-    field public static final java.lang.String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
-    field public static final java.lang.String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
-    field public static final java.lang.String COLUMN_EPISODE_TITLE = "episode_title";
-    field public static final java.lang.String COLUMN_INPUT_ID = "input_id";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
-    field public static final java.lang.String COLUMN_LONG_DESCRIPTION = "long_description";
-    field public static final java.lang.String COLUMN_POSTER_ART_URI = "poster_art_uri";
-    field public static final java.lang.String COLUMN_RECORDING_DATA_BYTES = "recording_data_bytes";
-    field public static final java.lang.String COLUMN_RECORDING_DATA_URI = "recording_data_uri";
-    field public static final java.lang.String COLUMN_RECORDING_DURATION_MILLIS = "recording_duration_millis";
-    field public static final java.lang.String COLUMN_RECORDING_EXPIRE_TIME_UTC_MILLIS = "recording_expire_time_utc_millis";
-    field public static final java.lang.String COLUMN_REVIEW_RATING = "review_rating";
-    field public static final java.lang.String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
-    field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
-    field public static final java.lang.String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
-    field public static final java.lang.String COLUMN_SEASON_TITLE = "season_title";
-    field public static final java.lang.String COLUMN_SERIES_ID = "series_id";
-    field public static final java.lang.String COLUMN_SHORT_DESCRIPTION = "short_description";
-    field public static final java.lang.String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
-    field public static final java.lang.String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
-    field public static final java.lang.String COLUMN_VIDEO_HEIGHT = "video_height";
-    field public static final java.lang.String COLUMN_VIDEO_WIDTH = "video_width";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/recorded_program";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/recorded_program";
+    field public static final String COLUMN_AUDIO_LANGUAGE = "audio_language";
+    field public static final String COLUMN_BROADCAST_GENRE = "broadcast_genre";
+    field public static final String COLUMN_CANONICAL_GENRE = "canonical_genre";
+    field public static final String COLUMN_CHANNEL_ID = "channel_id";
+    field public static final String COLUMN_CONTENT_RATING = "content_rating";
+    field public static final String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
+    field public static final String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
+    field public static final String COLUMN_EPISODE_TITLE = "episode_title";
+    field public static final String COLUMN_INPUT_ID = "input_id";
+    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
+    field public static final String COLUMN_LONG_DESCRIPTION = "long_description";
+    field public static final String COLUMN_POSTER_ART_URI = "poster_art_uri";
+    field public static final String COLUMN_RECORDING_DATA_BYTES = "recording_data_bytes";
+    field public static final String COLUMN_RECORDING_DATA_URI = "recording_data_uri";
+    field public static final String COLUMN_RECORDING_DURATION_MILLIS = "recording_duration_millis";
+    field public static final String COLUMN_RECORDING_EXPIRE_TIME_UTC_MILLIS = "recording_expire_time_utc_millis";
+    field public static final String COLUMN_REVIEW_RATING = "review_rating";
+    field public static final String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
+    field public static final String COLUMN_SEARCHABLE = "searchable";
+    field public static final String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
+    field public static final String COLUMN_SEASON_TITLE = "season_title";
+    field public static final String COLUMN_SERIES_ID = "series_id";
+    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+    field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
+    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_VERSION_NUMBER = "version_number";
+    field public static final String COLUMN_VIDEO_HEIGHT = "video_height";
+    field public static final String COLUMN_VIDEO_WIDTH = "video_width";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/recorded_program";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/recorded_program";
     field public static final android.net.Uri CONTENT_URI;
     field public static final int REVIEW_RATING_STYLE_PERCENTAGE = 2; // 0x2
     field public static final int REVIEW_RATING_STYLE_STARS = 0; // 0x0
@@ -28017,55 +27898,55 @@
     field public static final int AVAILABILITY_AVAILABLE = 0; // 0x0
     field public static final int AVAILABILITY_FREE_WITH_SUBSCRIPTION = 1; // 0x1
     field public static final int AVAILABILITY_PAID_CONTENT = 2; // 0x2
-    field public static final java.lang.String COLUMN_AUDIO_LANGUAGE = "audio_language";
-    field public static final java.lang.String COLUMN_AUTHOR = "author";
-    field public static final java.lang.String COLUMN_AVAILABILITY = "availability";
-    field public static final java.lang.String COLUMN_BROWSABLE = "browsable";
-    field public static final java.lang.String COLUMN_CANONICAL_GENRE = "canonical_genre";
-    field public static final java.lang.String COLUMN_CONTENT_ID = "content_id";
-    field public static final java.lang.String COLUMN_CONTENT_RATING = "content_rating";
-    field public static final java.lang.String COLUMN_DURATION_MILLIS = "duration_millis";
-    field public static final java.lang.String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
-    field public static final java.lang.String COLUMN_EPISODE_TITLE = "episode_title";
-    field public static final java.lang.String COLUMN_INTENT_URI = "intent_uri";
-    field public static final java.lang.String COLUMN_INTERACTION_COUNT = "interaction_count";
-    field public static final java.lang.String COLUMN_INTERACTION_TYPE = "interaction_type";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
-    field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
-    field public static final java.lang.String COLUMN_ITEM_COUNT = "item_count";
-    field public static final java.lang.String COLUMN_LAST_ENGAGEMENT_TIME_UTC_MILLIS = "last_engagement_time_utc_millis";
-    field public static final java.lang.String COLUMN_LAST_PLAYBACK_POSITION_MILLIS = "last_playback_position_millis";
-    field public static final java.lang.String COLUMN_LIVE = "live";
-    field public static final java.lang.String COLUMN_LOGO_URI = "logo_uri";
-    field public static final java.lang.String COLUMN_LONG_DESCRIPTION = "long_description";
-    field public static final java.lang.String COLUMN_OFFER_PRICE = "offer_price";
-    field public static final java.lang.String COLUMN_POSTER_ART_ASPECT_RATIO = "poster_art_aspect_ratio";
-    field public static final java.lang.String COLUMN_POSTER_ART_URI = "poster_art_uri";
-    field public static final java.lang.String COLUMN_PREVIEW_VIDEO_URI = "preview_video_uri";
-    field public static final java.lang.String COLUMN_RELEASE_DATE = "release_date";
-    field public static final java.lang.String COLUMN_REVIEW_RATING = "review_rating";
-    field public static final java.lang.String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
-    field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
-    field public static final java.lang.String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
-    field public static final java.lang.String COLUMN_SEASON_TITLE = "season_title";
-    field public static final java.lang.String COLUMN_SERIES_ID = "series_id";
-    field public static final java.lang.String COLUMN_SHORT_DESCRIPTION = "short_description";
-    field public static final java.lang.String COLUMN_STARTING_PRICE = "starting_price";
-    field public static final java.lang.String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
-    field public static final java.lang.String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_TRANSIENT = "transient";
-    field public static final java.lang.String COLUMN_TYPE = "type";
-    field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
-    field public static final java.lang.String COLUMN_VIDEO_HEIGHT = "video_height";
-    field public static final java.lang.String COLUMN_VIDEO_WIDTH = "video_width";
-    field public static final java.lang.String COLUMN_WATCH_NEXT_TYPE = "watch_next_type";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/watch_next_program";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/watch_next_program";
+    field public static final String COLUMN_AUDIO_LANGUAGE = "audio_language";
+    field public static final String COLUMN_AUTHOR = "author";
+    field public static final String COLUMN_AVAILABILITY = "availability";
+    field public static final String COLUMN_BROWSABLE = "browsable";
+    field public static final String COLUMN_CANONICAL_GENRE = "canonical_genre";
+    field public static final String COLUMN_CONTENT_ID = "content_id";
+    field public static final String COLUMN_CONTENT_RATING = "content_rating";
+    field public static final String COLUMN_DURATION_MILLIS = "duration_millis";
+    field public static final String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
+    field public static final String COLUMN_EPISODE_TITLE = "episode_title";
+    field public static final String COLUMN_INTENT_URI = "intent_uri";
+    field public static final String COLUMN_INTERACTION_COUNT = "interaction_count";
+    field public static final String COLUMN_INTERACTION_TYPE = "interaction_type";
+    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
+    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
+    field public static final String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
+    field public static final String COLUMN_ITEM_COUNT = "item_count";
+    field public static final String COLUMN_LAST_ENGAGEMENT_TIME_UTC_MILLIS = "last_engagement_time_utc_millis";
+    field public static final String COLUMN_LAST_PLAYBACK_POSITION_MILLIS = "last_playback_position_millis";
+    field public static final String COLUMN_LIVE = "live";
+    field public static final String COLUMN_LOGO_URI = "logo_uri";
+    field public static final String COLUMN_LONG_DESCRIPTION = "long_description";
+    field public static final String COLUMN_OFFER_PRICE = "offer_price";
+    field public static final String COLUMN_POSTER_ART_ASPECT_RATIO = "poster_art_aspect_ratio";
+    field public static final String COLUMN_POSTER_ART_URI = "poster_art_uri";
+    field public static final String COLUMN_PREVIEW_VIDEO_URI = "preview_video_uri";
+    field public static final String COLUMN_RELEASE_DATE = "release_date";
+    field public static final String COLUMN_REVIEW_RATING = "review_rating";
+    field public static final String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
+    field public static final String COLUMN_SEARCHABLE = "searchable";
+    field public static final String COLUMN_SEASON_DISPLAY_NUMBER = "season_display_number";
+    field public static final String COLUMN_SEASON_TITLE = "season_title";
+    field public static final String COLUMN_SERIES_ID = "series_id";
+    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+    field public static final String COLUMN_STARTING_PRICE = "starting_price";
+    field public static final String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
+    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_TRANSIENT = "transient";
+    field public static final String COLUMN_TYPE = "type";
+    field public static final String COLUMN_VERSION_NUMBER = "version_number";
+    field public static final String COLUMN_VIDEO_HEIGHT = "video_height";
+    field public static final String COLUMN_VIDEO_WIDTH = "video_width";
+    field public static final String COLUMN_WATCH_NEXT_TYPE = "watch_next_type";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/watch_next_program";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/watch_next_program";
     field public static final android.net.Uri CONTENT_URI;
     field public static final int INTERACTION_TYPE_FANS = 3; // 0x3
     field public static final int INTERACTION_TYPE_FOLLOWERS = 2; // 0x2
@@ -28097,23 +27978,23 @@
 
   public final class TvInputInfo implements android.os.Parcelable {
     method public boolean canRecord();
-    method public deprecated android.content.Intent createSettingsIntent();
+    method @Deprecated public android.content.Intent createSettingsIntent();
     method public android.content.Intent createSetupIntent();
     method public int describeContents();
     method public android.os.Bundle getExtras();
-    method public java.lang.String getId();
-    method public java.lang.String getParentId();
+    method public String getId();
+    method public String getParentId();
     method public android.content.pm.ServiceInfo getServiceInfo();
     method public int getTunerCount();
     method public int getType();
     method public boolean isHidden(android.content.Context);
     method public boolean isPassthroughInput();
-    method public java.lang.CharSequence loadCustomLabel(android.content.Context);
-    method public android.graphics.drawable.Drawable loadIcon(android.content.Context);
-    method public java.lang.CharSequence loadLabel(android.content.Context);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public CharSequence loadCustomLabel(android.content.Context);
+    method public android.graphics.drawable.Drawable loadIcon(@NonNull android.content.Context);
+    method public CharSequence loadLabel(@NonNull android.content.Context);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.tv.TvInputInfo> CREATOR;
-    field public static final java.lang.String EXTRA_INPUT_ID = "android.media.tv.extra.INPUT_ID";
+    field public static final String EXTRA_INPUT_ID = "android.media.tv.extra.INPUT_ID";
     field public static final int TYPE_COMPONENT = 1004; // 0x3ec
     field public static final int TYPE_COMPOSITE = 1001; // 0x3e9
     field public static final int TYPE_DISPLAY_PORT = 1008; // 0x3f0
@@ -28136,23 +28017,23 @@
 
   public final class TvInputManager {
     method public java.util.List<android.media.tv.TvContentRating> getBlockedRatings();
-    method public int getInputState(java.lang.String);
-    method public android.media.tv.TvInputInfo getTvInputInfo(java.lang.String);
+    method public int getInputState(@NonNull String);
+    method @Nullable public android.media.tv.TvInputInfo getTvInputInfo(@NonNull String);
     method public java.util.List<android.media.tv.TvInputInfo> getTvInputList();
     method public boolean isParentalControlsEnabled();
-    method public boolean isRatingBlocked(android.media.tv.TvContentRating);
-    method public void registerCallback(android.media.tv.TvInputManager.TvInputCallback, android.os.Handler);
-    method public void unregisterCallback(android.media.tv.TvInputManager.TvInputCallback);
-    method public void updateTvInputInfo(android.media.tv.TvInputInfo);
-    field public static final java.lang.String ACTION_BLOCKED_RATINGS_CHANGED = "android.media.tv.action.BLOCKED_RATINGS_CHANGED";
-    field public static final java.lang.String ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED = "android.media.tv.action.PARENTAL_CONTROLS_ENABLED_CHANGED";
-    field public static final java.lang.String ACTION_QUERY_CONTENT_RATING_SYSTEMS = "android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS";
-    field public static final java.lang.String ACTION_SETUP_INPUTS = "android.media.tv.action.SETUP_INPUTS";
-    field public static final java.lang.String ACTION_VIEW_RECORDING_SCHEDULES = "android.media.tv.action.VIEW_RECORDING_SCHEDULES";
+    method public boolean isRatingBlocked(@NonNull android.media.tv.TvContentRating);
+    method public void registerCallback(@NonNull android.media.tv.TvInputManager.TvInputCallback, @NonNull android.os.Handler);
+    method public void unregisterCallback(@NonNull android.media.tv.TvInputManager.TvInputCallback);
+    method public void updateTvInputInfo(@NonNull android.media.tv.TvInputInfo);
+    field public static final String ACTION_BLOCKED_RATINGS_CHANGED = "android.media.tv.action.BLOCKED_RATINGS_CHANGED";
+    field public static final String ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED = "android.media.tv.action.PARENTAL_CONTROLS_ENABLED_CHANGED";
+    field public static final String ACTION_QUERY_CONTENT_RATING_SYSTEMS = "android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS";
+    field public static final String ACTION_SETUP_INPUTS = "android.media.tv.action.SETUP_INPUTS";
+    field public static final String ACTION_VIEW_RECORDING_SCHEDULES = "android.media.tv.action.VIEW_RECORDING_SCHEDULES";
     field public static final int INPUT_STATE_CONNECTED = 0; // 0x0
     field public static final int INPUT_STATE_CONNECTED_STANDBY = 1; // 0x1
     field public static final int INPUT_STATE_DISCONNECTED = 2; // 0x2
-    field public static final java.lang.String META_DATA_CONTENT_RATING_SYSTEMS = "android.media.tv.metadata.CONTENT_RATING_SYSTEMS";
+    field public static final String META_DATA_CONTENT_RATING_SYSTEMS = "android.media.tv.metadata.CONTENT_RATING_SYSTEMS";
     field public static final int RECORDING_ERROR_INSUFFICIENT_SPACE = 1; // 0x1
     field public static final int RECORDING_ERROR_RESOURCE_BUSY = 2; // 0x2
     field public static final int RECORDING_ERROR_UNKNOWN = 0; // 0x0
@@ -28168,57 +28049,57 @@
     field public static final int VIDEO_UNAVAILABLE_REASON_WEAK_SIGNAL = 2; // 0x2
   }
 
-  public static abstract class TvInputManager.TvInputCallback {
+  public abstract static class TvInputManager.TvInputCallback {
     ctor public TvInputManager.TvInputCallback();
-    method public void onInputAdded(java.lang.String);
-    method public void onInputRemoved(java.lang.String);
-    method public void onInputStateChanged(java.lang.String, int);
-    method public void onInputUpdated(java.lang.String);
+    method public void onInputAdded(String);
+    method public void onInputRemoved(String);
+    method public void onInputStateChanged(String, int);
+    method public void onInputUpdated(String);
     method public void onTvInputInfoUpdated(android.media.tv.TvInputInfo);
   }
 
   public abstract class TvInputService extends android.app.Service {
     ctor public TvInputService();
     method public final android.os.IBinder onBind(android.content.Intent);
-    method public android.media.tv.TvInputService.RecordingSession onCreateRecordingSession(java.lang.String);
-    method public abstract android.media.tv.TvInputService.Session onCreateSession(java.lang.String);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.media.tv.TvInputService";
-    field public static final java.lang.String SERVICE_META_DATA = "android.media.tv.input";
+    method @Nullable public android.media.tv.TvInputService.RecordingSession onCreateRecordingSession(String);
+    method @Nullable public abstract android.media.tv.TvInputService.Session onCreateSession(String);
+    field public static final String SERVICE_INTERFACE = "android.media.tv.TvInputService";
+    field public static final String SERVICE_META_DATA = "android.media.tv.input";
   }
 
-  public static abstract class TvInputService.HardwareSession extends android.media.tv.TvInputService.Session {
+  public abstract static class TvInputService.HardwareSession extends android.media.tv.TvInputService.Session {
     ctor public TvInputService.HardwareSession(android.content.Context);
-    method public abstract java.lang.String getHardwareInputId();
+    method public abstract String getHardwareInputId();
     method public void onHardwareVideoAvailable();
     method public void onHardwareVideoUnavailable(int);
     method public final boolean onSetSurface(android.view.Surface);
   }
 
-  public static abstract class TvInputService.RecordingSession {
+  public abstract static class TvInputService.RecordingSession {
     ctor public TvInputService.RecordingSession(android.content.Context);
     method public void notifyError(int);
     method public void notifyRecordingStopped(android.net.Uri);
     method public void notifyTuned(android.net.Uri);
-    method public void onAppPrivateCommand(java.lang.String, android.os.Bundle);
+    method public void onAppPrivateCommand(@NonNull String, android.os.Bundle);
     method public abstract void onRelease();
-    method public abstract void onStartRecording(android.net.Uri);
+    method public abstract void onStartRecording(@Nullable android.net.Uri);
     method public abstract void onStopRecording();
     method public abstract void onTune(android.net.Uri);
     method public void onTune(android.net.Uri, android.os.Bundle);
   }
 
-  public static abstract class TvInputService.Session implements android.view.KeyEvent.Callback {
+  public abstract static class TvInputService.Session implements android.view.KeyEvent.Callback {
     ctor public TvInputService.Session(android.content.Context);
     method public void layoutSurface(int, int, int, int);
     method public void notifyChannelRetuned(android.net.Uri);
     method public void notifyContentAllowed();
-    method public void notifyContentBlocked(android.media.tv.TvContentRating);
+    method public void notifyContentBlocked(@NonNull android.media.tv.TvContentRating);
     method public void notifyTimeShiftStatusChanged(int);
-    method public void notifyTrackSelected(int, java.lang.String);
+    method public void notifyTrackSelected(int, String);
     method public void notifyTracksChanged(java.util.List<android.media.tv.TvTrackInfo>);
     method public void notifyVideoAvailable();
     method public void notifyVideoUnavailable(int);
-    method public void onAppPrivateCommand(java.lang.String, android.os.Bundle);
+    method public void onAppPrivateCommand(@NonNull String, android.os.Bundle);
     method public android.view.View onCreateOverlayView();
     method public boolean onGenericMotionEvent(android.view.MotionEvent);
     method public boolean onKeyDown(int, android.view.KeyEvent);
@@ -28227,10 +28108,10 @@
     method public boolean onKeyUp(int, android.view.KeyEvent);
     method public void onOverlayViewSizeChanged(int, int);
     method public abstract void onRelease();
-    method public boolean onSelectTrack(int, java.lang.String);
+    method public boolean onSelectTrack(int, @Nullable String);
     method public abstract void onSetCaptionEnabled(boolean);
-    method public abstract void onSetStreamVolume(float);
-    method public abstract boolean onSetSurface(android.view.Surface);
+    method public abstract void onSetStreamVolume(@FloatRange(from=0.0, to=1.0) float);
+    method public abstract boolean onSetSurface(@Nullable android.view.Surface);
     method public void onSurfaceChanged(int, int, int);
     method public long onTimeShiftGetCurrentPosition();
     method public long onTimeShiftGetStartPosition();
@@ -28248,19 +28129,19 @@
   }
 
   public class TvRecordingClient {
-    ctor public TvRecordingClient(android.content.Context, java.lang.String, android.media.tv.TvRecordingClient.RecordingCallback, android.os.Handler);
+    ctor public TvRecordingClient(android.content.Context, String, @NonNull android.media.tv.TvRecordingClient.RecordingCallback, android.os.Handler);
     method public void release();
-    method public void sendAppPrivateCommand(java.lang.String, android.os.Bundle);
-    method public void startRecording(android.net.Uri);
+    method public void sendAppPrivateCommand(@NonNull String, android.os.Bundle);
+    method public void startRecording(@Nullable android.net.Uri);
     method public void stopRecording();
-    method public void tune(java.lang.String, android.net.Uri);
-    method public void tune(java.lang.String, android.net.Uri, android.os.Bundle);
+    method public void tune(String, android.net.Uri);
+    method public void tune(String, android.net.Uri, android.os.Bundle);
   }
 
-  public static abstract class TvRecordingClient.RecordingCallback {
+  public abstract static class TvRecordingClient.RecordingCallback {
     ctor public TvRecordingClient.RecordingCallback();
-    method public void onConnectionFailed(java.lang.String);
-    method public void onDisconnected(java.lang.String);
+    method public void onConnectionFailed(String);
+    method public void onDisconnected(String);
     method public void onError(int);
     method public void onRecordingStopped(android.net.Uri);
     method public void onTuned(android.net.Uri);
@@ -28270,10 +28151,10 @@
     method public int describeContents();
     method public int getAudioChannelCount();
     method public int getAudioSampleRate();
-    method public java.lang.CharSequence getDescription();
+    method public CharSequence getDescription();
     method public android.os.Bundle getExtra();
-    method public java.lang.String getId();
-    method public java.lang.String getLanguage();
+    method public String getId();
+    method public String getLanguage();
     method public int getType();
     method public byte getVideoActiveFormatDescription();
     method public float getVideoFrameRate();
@@ -28288,13 +28169,13 @@
   }
 
   public static final class TvTrackInfo.Builder {
-    ctor public TvTrackInfo.Builder(int, java.lang.String);
+    ctor public TvTrackInfo.Builder(int, @NonNull String);
     method public android.media.tv.TvTrackInfo build();
     method public android.media.tv.TvTrackInfo.Builder setAudioChannelCount(int);
     method public android.media.tv.TvTrackInfo.Builder setAudioSampleRate(int);
-    method public android.media.tv.TvTrackInfo.Builder setDescription(java.lang.CharSequence);
+    method public android.media.tv.TvTrackInfo.Builder setDescription(CharSequence);
     method public android.media.tv.TvTrackInfo.Builder setExtra(android.os.Bundle);
-    method public android.media.tv.TvTrackInfo.Builder setLanguage(java.lang.String);
+    method public android.media.tv.TvTrackInfo.Builder setLanguage(String);
     method public android.media.tv.TvTrackInfo.Builder setVideoActiveFormatDescription(byte);
     method public android.media.tv.TvTrackInfo.Builder setVideoFrameRate(float);
     method public android.media.tv.TvTrackInfo.Builder setVideoHeight(int);
@@ -28307,51 +28188,51 @@
     ctor public TvView(android.content.Context, android.util.AttributeSet);
     ctor public TvView(android.content.Context, android.util.AttributeSet, int);
     method public boolean dispatchUnhandledInputEvent(android.view.InputEvent);
-    method public java.lang.String getSelectedTrack(int);
+    method public String getSelectedTrack(int);
     method public java.util.List<android.media.tv.TvTrackInfo> getTracks(int);
     method public boolean onUnhandledInputEvent(android.view.InputEvent);
     method public void reset();
-    method public void selectTrack(int, java.lang.String);
-    method public void sendAppPrivateCommand(java.lang.String, android.os.Bundle);
-    method public void setCallback(android.media.tv.TvView.TvInputCallback);
+    method public void selectTrack(int, String);
+    method public void sendAppPrivateCommand(@NonNull String, android.os.Bundle);
+    method public void setCallback(@Nullable android.media.tv.TvView.TvInputCallback);
     method public void setCaptionEnabled(boolean);
     method public void setOnUnhandledInputEventListener(android.media.tv.TvView.OnUnhandledInputEventListener);
-    method public void setStreamVolume(float);
-    method public void setTimeShiftPositionCallback(android.media.tv.TvView.TimeShiftPositionCallback);
+    method public void setStreamVolume(@FloatRange(from=0.0, to=1.0) float);
+    method public void setTimeShiftPositionCallback(@Nullable android.media.tv.TvView.TimeShiftPositionCallback);
     method public void setZOrderMediaOverlay(boolean);
     method public void setZOrderOnTop(boolean);
     method public void timeShiftPause();
-    method public void timeShiftPlay(java.lang.String, android.net.Uri);
+    method public void timeShiftPlay(String, android.net.Uri);
     method public void timeShiftResume();
     method public void timeShiftSeekTo(long);
-    method public void timeShiftSetPlaybackParams(android.media.PlaybackParams);
-    method public void tune(java.lang.String, android.net.Uri);
-    method public void tune(java.lang.String, android.net.Uri, android.os.Bundle);
+    method public void timeShiftSetPlaybackParams(@NonNull android.media.PlaybackParams);
+    method public void tune(@NonNull String, android.net.Uri);
+    method public void tune(String, android.net.Uri, android.os.Bundle);
   }
 
-  public static abstract interface TvView.OnUnhandledInputEventListener {
-    method public abstract boolean onUnhandledInputEvent(android.view.InputEvent);
+  public static interface TvView.OnUnhandledInputEventListener {
+    method public boolean onUnhandledInputEvent(android.view.InputEvent);
   }
 
-  public static abstract class TvView.TimeShiftPositionCallback {
+  public abstract static class TvView.TimeShiftPositionCallback {
     ctor public TvView.TimeShiftPositionCallback();
-    method public void onTimeShiftCurrentPositionChanged(java.lang.String, long);
-    method public void onTimeShiftStartPositionChanged(java.lang.String, long);
+    method public void onTimeShiftCurrentPositionChanged(String, long);
+    method public void onTimeShiftStartPositionChanged(String, long);
   }
 
-  public static abstract class TvView.TvInputCallback {
+  public abstract static class TvView.TvInputCallback {
     ctor public TvView.TvInputCallback();
-    method public void onChannelRetuned(java.lang.String, android.net.Uri);
-    method public void onConnectionFailed(java.lang.String);
-    method public void onContentAllowed(java.lang.String);
-    method public void onContentBlocked(java.lang.String, android.media.tv.TvContentRating);
-    method public void onDisconnected(java.lang.String);
-    method public void onTimeShiftStatusChanged(java.lang.String, int);
-    method public void onTrackSelected(java.lang.String, int, java.lang.String);
-    method public void onTracksChanged(java.lang.String, java.util.List<android.media.tv.TvTrackInfo>);
-    method public void onVideoAvailable(java.lang.String);
-    method public void onVideoSizeChanged(java.lang.String, int, int);
-    method public void onVideoUnavailable(java.lang.String, int);
+    method public void onChannelRetuned(String, android.net.Uri);
+    method public void onConnectionFailed(String);
+    method public void onContentAllowed(String);
+    method public void onContentBlocked(String, android.media.tv.TvContentRating);
+    method public void onDisconnected(String);
+    method public void onTimeShiftStatusChanged(String, int);
+    method public void onTrackSelected(String, int, String);
+    method public void onTracksChanged(String, java.util.List<android.media.tv.TvTrackInfo>);
+    method public void onVideoAvailable(String);
+    method public void onVideoSizeChanged(String, int, int);
+    method public void onVideoUnavailable(String, int);
   }
 
 }
@@ -28463,37 +28344,37 @@
   }
 
   public final class MtpDevice {
-    ctor public MtpDevice(android.hardware.usb.UsbDevice);
+    ctor public MtpDevice(@NonNull android.hardware.usb.UsbDevice);
     method public void close();
     method public boolean deleteObject(int);
     method public int getDeviceId();
-    method public android.mtp.MtpDeviceInfo getDeviceInfo();
-    method public java.lang.String getDeviceName();
-    method public byte[] getObject(int, int);
-    method public int[] getObjectHandles(int, int, int);
-    method public android.mtp.MtpObjectInfo getObjectInfo(int);
+    method @Nullable public android.mtp.MtpDeviceInfo getDeviceInfo();
+    method @NonNull public String getDeviceName();
+    method @Nullable public byte[] getObject(int, int);
+    method @Nullable public int[] getObjectHandles(int, int, int);
+    method @Nullable public android.mtp.MtpObjectInfo getObjectInfo(int);
     method public long getParent(int);
-    method public long getPartialObject(int, long, long, byte[]) throws java.io.IOException;
-    method public long getPartialObject64(int, long, long, byte[]) throws java.io.IOException;
+    method public long getPartialObject(int, long, long, @NonNull byte[]) throws java.io.IOException;
+    method public long getPartialObject64(int, long, long, @NonNull byte[]) throws java.io.IOException;
     method public long getStorageId(int);
-    method public int[] getStorageIds();
-    method public android.mtp.MtpStorageInfo getStorageInfo(int);
-    method public byte[] getThumbnail(int);
-    method public boolean importFile(int, java.lang.String);
-    method public boolean importFile(int, android.os.ParcelFileDescriptor);
-    method public boolean open(android.hardware.usb.UsbDeviceConnection);
-    method public android.mtp.MtpEvent readEvent(android.os.CancellationSignal) throws java.io.IOException;
-    method public boolean sendObject(int, long, android.os.ParcelFileDescriptor);
-    method public android.mtp.MtpObjectInfo sendObjectInfo(android.mtp.MtpObjectInfo);
+    method @Nullable public int[] getStorageIds();
+    method @Nullable public android.mtp.MtpStorageInfo getStorageInfo(int);
+    method @Nullable public byte[] getThumbnail(int);
+    method public boolean importFile(int, @NonNull String);
+    method public boolean importFile(int, @NonNull android.os.ParcelFileDescriptor);
+    method public boolean open(@NonNull android.hardware.usb.UsbDeviceConnection);
+    method @NonNull public android.mtp.MtpEvent readEvent(@Nullable android.os.CancellationSignal) throws java.io.IOException;
+    method public boolean sendObject(int, long, @NonNull android.os.ParcelFileDescriptor);
+    method @Nullable public android.mtp.MtpObjectInfo sendObjectInfo(@NonNull android.mtp.MtpObjectInfo);
   }
 
   public class MtpDeviceInfo {
-    method public final int[] getEventsSupported();
-    method public final java.lang.String getManufacturer();
-    method public final java.lang.String getModel();
-    method public final int[] getOperationsSupported();
-    method public final java.lang.String getSerialNumber();
-    method public final java.lang.String getVersion();
+    method @NonNull public final int[] getEventsSupported();
+    method @NonNull public final String getManufacturer();
+    method @NonNull public final String getModel();
+    method @NonNull public final int[] getOperationsSupported();
+    method @NonNull public final String getSerialNumber();
+    method @NonNull public final String getVersion();
     method public boolean isEventSupported(int);
     method public boolean isOperationSupported(int);
   }
@@ -28543,8 +28424,8 @@
     method public long getImagePixHeightLong();
     method public int getImagePixWidth();
     method public long getImagePixWidthLong();
-    method public java.lang.String getKeywords();
-    method public java.lang.String getName();
+    method @NonNull public String getKeywords();
+    method @NonNull public String getName();
     method public int getObjectHandle();
     method public int getParent();
     method public int getProtectionStatus();
@@ -28573,8 +28454,8 @@
     method public android.mtp.MtpObjectInfo.Builder setImagePixDepth(long);
     method public android.mtp.MtpObjectInfo.Builder setImagePixHeight(long);
     method public android.mtp.MtpObjectInfo.Builder setImagePixWidth(long);
-    method public android.mtp.MtpObjectInfo.Builder setKeywords(java.lang.String);
-    method public android.mtp.MtpObjectInfo.Builder setName(java.lang.String);
+    method public android.mtp.MtpObjectInfo.Builder setKeywords(@NonNull String);
+    method public android.mtp.MtpObjectInfo.Builder setName(@NonNull String);
     method public android.mtp.MtpObjectInfo.Builder setObjectHandle(int);
     method public android.mtp.MtpObjectInfo.Builder setParent(int);
     method public android.mtp.MtpObjectInfo.Builder setProtectionStatus(int);
@@ -28587,11 +28468,11 @@
   }
 
   public final class MtpStorageInfo {
-    method public java.lang.String getDescription();
+    method @NonNull public String getDescription();
     method public long getFreeSpace();
     method public long getMaxCapacity();
     method public int getStorageId();
-    method public java.lang.String getVolumeIdentifier();
+    method @NonNull public String getVolumeIdentifier();
   }
 
 }
@@ -28608,79 +28489,79 @@
 
   public class ConnectivityManager {
     method public void addDefaultNetworkActiveListener(android.net.ConnectivityManager.OnNetworkActiveListener);
-    method public boolean bindProcessToNetwork(android.net.Network);
-    method public android.net.Network getActiveNetwork();
-    method public deprecated android.net.NetworkInfo getActiveNetworkInfo();
-    method public deprecated android.net.NetworkInfo[] getAllNetworkInfo();
-    method public android.net.Network[] getAllNetworks();
-    method public deprecated boolean getBackgroundDataSetting();
-    method public android.net.Network getBoundNetworkForProcess();
-    method public int getConnectionOwnerUid(int, java.net.InetSocketAddress, java.net.InetSocketAddress);
-    method public android.net.ProxyInfo getDefaultProxy();
-    method public android.net.LinkProperties getLinkProperties(android.net.Network);
-    method public int getMultipathPreference(android.net.Network);
-    method public android.net.NetworkCapabilities getNetworkCapabilities(android.net.Network);
-    method public deprecated android.net.NetworkInfo getNetworkInfo(int);
-    method public deprecated android.net.NetworkInfo getNetworkInfo(android.net.Network);
-    method public deprecated int getNetworkPreference();
-    method public byte[] getNetworkWatchlistConfigHash();
-    method public static deprecated android.net.Network getProcessDefaultNetwork();
+    method public boolean bindProcessToNetwork(@Nullable android.net.Network);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) @Nullable public android.net.Network getActiveNetwork();
+    method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.NetworkInfo getActiveNetworkInfo();
+    method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.NetworkInfo[] getAllNetworkInfo();
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) @NonNull public android.net.Network[] getAllNetworks();
+    method @Deprecated public boolean getBackgroundDataSetting();
+    method @Nullable public android.net.Network getBoundNetworkForProcess();
+    method public int getConnectionOwnerUid(int, @NonNull java.net.InetSocketAddress, @NonNull java.net.InetSocketAddress);
+    method @Nullable public android.net.ProxyInfo getDefaultProxy();
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) @Nullable public android.net.LinkProperties getLinkProperties(@Nullable android.net.Network);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public int getMultipathPreference(@Nullable android.net.Network);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) @Nullable public android.net.NetworkCapabilities getNetworkCapabilities(@Nullable android.net.Network);
+    method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.NetworkInfo getNetworkInfo(int);
+    method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.NetworkInfo getNetworkInfo(@Nullable android.net.Network);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public int getNetworkPreference();
+    method @Nullable public byte[] getNetworkWatchlistConfigHash();
+    method @Deprecated @Nullable public static android.net.Network getProcessDefaultNetwork();
     method public int getRestrictBackgroundStatus();
-    method public boolean isActiveNetworkMetered();
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public boolean isActiveNetworkMetered();
     method public boolean isDefaultNetworkActive();
-    method public static deprecated boolean isNetworkTypeValid(int);
-    method public void registerDefaultNetworkCallback(android.net.ConnectivityManager.NetworkCallback);
-    method public void registerDefaultNetworkCallback(android.net.ConnectivityManager.NetworkCallback, android.os.Handler);
-    method public void registerNetworkCallback(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback);
-    method public void registerNetworkCallback(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler);
-    method public void registerNetworkCallback(android.net.NetworkRequest, android.app.PendingIntent);
-    method public void releaseNetworkRequest(android.app.PendingIntent);
-    method public void removeDefaultNetworkActiveListener(android.net.ConnectivityManager.OnNetworkActiveListener);
-    method public deprecated void reportBadNetwork(android.net.Network);
-    method public void reportNetworkConnectivity(android.net.Network, boolean);
-    method public boolean requestBandwidthUpdate(android.net.Network);
-    method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback);
-    method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler);
-    method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, int);
-    method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler, int);
-    method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent);
-    method public deprecated void setNetworkPreference(int);
-    method public static deprecated boolean setProcessDefaultNetwork(android.net.Network);
-    method public void unregisterNetworkCallback(android.net.ConnectivityManager.NetworkCallback);
-    method public void unregisterNetworkCallback(android.app.PendingIntent);
-    field public static final deprecated java.lang.String ACTION_BACKGROUND_DATA_SETTING_CHANGED = "android.net.conn.BACKGROUND_DATA_SETTING_CHANGED";
-    field public static final java.lang.String ACTION_CAPTIVE_PORTAL_SIGN_IN = "android.net.conn.CAPTIVE_PORTAL";
-    field public static final java.lang.String ACTION_RESTRICT_BACKGROUND_CHANGED = "android.net.conn.RESTRICT_BACKGROUND_CHANGED";
-    field public static final deprecated java.lang.String CONNECTIVITY_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
-    field public static final deprecated int DEFAULT_NETWORK_PREFERENCE = 1; // 0x1
-    field public static final java.lang.String EXTRA_CAPTIVE_PORTAL = "android.net.extra.CAPTIVE_PORTAL";
-    field public static final java.lang.String EXTRA_CAPTIVE_PORTAL_URL = "android.net.extra.CAPTIVE_PORTAL_URL";
-    field public static final deprecated java.lang.String EXTRA_EXTRA_INFO = "extraInfo";
-    field public static final deprecated java.lang.String EXTRA_IS_FAILOVER = "isFailover";
-    field public static final java.lang.String EXTRA_NETWORK = "android.net.extra.NETWORK";
-    field public static final deprecated java.lang.String EXTRA_NETWORK_INFO = "networkInfo";
-    field public static final java.lang.String EXTRA_NETWORK_REQUEST = "android.net.extra.NETWORK_REQUEST";
-    field public static final java.lang.String EXTRA_NETWORK_TYPE = "networkType";
-    field public static final java.lang.String EXTRA_NO_CONNECTIVITY = "noConnectivity";
-    field public static final deprecated java.lang.String EXTRA_OTHER_NETWORK_INFO = "otherNetwork";
-    field public static final java.lang.String EXTRA_REASON = "reason";
+    method @Deprecated public static boolean isNetworkTypeValid(int);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerNetworkCallback(@NonNull android.net.NetworkRequest, @NonNull android.net.ConnectivityManager.NetworkCallback);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerNetworkCallback(@NonNull android.net.NetworkRequest, @NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerNetworkCallback(@NonNull android.net.NetworkRequest, @NonNull android.app.PendingIntent);
+    method public void releaseNetworkRequest(@NonNull android.app.PendingIntent);
+    method public void removeDefaultNetworkActiveListener(@NonNull android.net.ConnectivityManager.OnNetworkActiveListener);
+    method @Deprecated public void reportBadNetwork(@Nullable android.net.Network);
+    method public void reportNetworkConnectivity(@Nullable android.net.Network, boolean);
+    method public boolean requestBandwidthUpdate(@NonNull android.net.Network);
+    method public void requestNetwork(@NonNull android.net.NetworkRequest, @NonNull android.net.ConnectivityManager.NetworkCallback);
+    method public void requestNetwork(@NonNull android.net.NetworkRequest, @NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
+    method public void requestNetwork(@NonNull android.net.NetworkRequest, @NonNull android.net.ConnectivityManager.NetworkCallback, int);
+    method public void requestNetwork(@NonNull android.net.NetworkRequest, @NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler, int);
+    method public void requestNetwork(@NonNull android.net.NetworkRequest, @NonNull android.app.PendingIntent);
+    method @Deprecated public void setNetworkPreference(int);
+    method @Deprecated public static boolean setProcessDefaultNetwork(@Nullable android.net.Network);
+    method public void unregisterNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback);
+    method public void unregisterNetworkCallback(@NonNull android.app.PendingIntent);
+    field @Deprecated public static final String ACTION_BACKGROUND_DATA_SETTING_CHANGED = "android.net.conn.BACKGROUND_DATA_SETTING_CHANGED";
+    field public static final String ACTION_CAPTIVE_PORTAL_SIGN_IN = "android.net.conn.CAPTIVE_PORTAL";
+    field public static final String ACTION_RESTRICT_BACKGROUND_CHANGED = "android.net.conn.RESTRICT_BACKGROUND_CHANGED";
+    field @Deprecated public static final String CONNECTIVITY_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
+    field @Deprecated public static final int DEFAULT_NETWORK_PREFERENCE = 1; // 0x1
+    field public static final String EXTRA_CAPTIVE_PORTAL = "android.net.extra.CAPTIVE_PORTAL";
+    field public static final String EXTRA_CAPTIVE_PORTAL_URL = "android.net.extra.CAPTIVE_PORTAL_URL";
+    field @Deprecated public static final String EXTRA_EXTRA_INFO = "extraInfo";
+    field @Deprecated public static final String EXTRA_IS_FAILOVER = "isFailover";
+    field public static final String EXTRA_NETWORK = "android.net.extra.NETWORK";
+    field @Deprecated public static final String EXTRA_NETWORK_INFO = "networkInfo";
+    field public static final String EXTRA_NETWORK_REQUEST = "android.net.extra.NETWORK_REQUEST";
+    field public static final String EXTRA_NETWORK_TYPE = "networkType";
+    field public static final String EXTRA_NO_CONNECTIVITY = "noConnectivity";
+    field @Deprecated public static final String EXTRA_OTHER_NETWORK_INFO = "otherNetwork";
+    field public static final String EXTRA_REASON = "reason";
     field public static final int MULTIPATH_PREFERENCE_HANDOVER = 1; // 0x1
     field public static final int MULTIPATH_PREFERENCE_PERFORMANCE = 4; // 0x4
     field public static final int MULTIPATH_PREFERENCE_RELIABILITY = 2; // 0x2
     field public static final int RESTRICT_BACKGROUND_STATUS_DISABLED = 1; // 0x1
     field public static final int RESTRICT_BACKGROUND_STATUS_ENABLED = 3; // 0x3
     field public static final int RESTRICT_BACKGROUND_STATUS_WHITELISTED = 2; // 0x2
-    field public static final deprecated int TYPE_BLUETOOTH = 7; // 0x7
-    field public static final deprecated int TYPE_DUMMY = 8; // 0x8
-    field public static final deprecated int TYPE_ETHERNET = 9; // 0x9
-    field public static final deprecated int TYPE_MOBILE = 0; // 0x0
-    field public static final deprecated int TYPE_MOBILE_DUN = 4; // 0x4
-    field public static final deprecated int TYPE_MOBILE_HIPRI = 5; // 0x5
-    field public static final deprecated int TYPE_MOBILE_MMS = 2; // 0x2
-    field public static final deprecated int TYPE_MOBILE_SUPL = 3; // 0x3
-    field public static final deprecated int TYPE_VPN = 17; // 0x11
-    field public static final deprecated int TYPE_WIFI = 1; // 0x1
-    field public static final deprecated int TYPE_WIMAX = 6; // 0x6
+    field @Deprecated public static final int TYPE_BLUETOOTH = 7; // 0x7
+    field @Deprecated public static final int TYPE_DUMMY = 8; // 0x8
+    field @Deprecated public static final int TYPE_ETHERNET = 9; // 0x9
+    field @Deprecated public static final int TYPE_MOBILE = 0; // 0x0
+    field @Deprecated public static final int TYPE_MOBILE_DUN = 4; // 0x4
+    field @Deprecated public static final int TYPE_MOBILE_HIPRI = 5; // 0x5
+    field @Deprecated public static final int TYPE_MOBILE_MMS = 2; // 0x2
+    field @Deprecated public static final int TYPE_MOBILE_SUPL = 3; // 0x3
+    field @Deprecated public static final int TYPE_VPN = 17; // 0x11
+    field @Deprecated public static final int TYPE_WIFI = 1; // 0x1
+    field @Deprecated public static final int TYPE_WIMAX = 6; // 0x6
   }
 
   public static class ConnectivityManager.NetworkCallback {
@@ -28694,8 +28575,8 @@
     method public void onUnavailable();
   }
 
-  public static abstract interface ConnectivityManager.OnNetworkActiveListener {
-    method public abstract void onNetworkActive();
+  public static interface ConnectivityManager.OnNetworkActiveListener {
+    method public void onNetworkActive();
   }
 
   public class Credentials {
@@ -28719,8 +28600,8 @@
   }
 
   public class InetAddresses {
-    method public static boolean isNumericAddress(java.lang.String);
-    method public static java.net.InetAddress parseNumericAddress(java.lang.String);
+    method public static boolean isNumericAddress(String);
+    method public static java.net.InetAddress parseNumericAddress(String);
   }
 
   public final class IpPrefix implements android.os.Parcelable {
@@ -28734,34 +28615,34 @@
   }
 
   public final class IpSecAlgorithm implements android.os.Parcelable {
-    ctor public IpSecAlgorithm(java.lang.String, byte[]);
-    ctor public IpSecAlgorithm(java.lang.String, byte[], int);
+    ctor public IpSecAlgorithm(@NonNull String, @NonNull byte[]);
+    ctor public IpSecAlgorithm(@NonNull String, @NonNull byte[], int);
     method public int describeContents();
-    method public byte[] getKey();
-    method public java.lang.String getName();
+    method @NonNull public byte[] getKey();
+    method @NonNull public String getName();
     method public int getTruncationLengthBits();
     method public void writeToParcel(android.os.Parcel, int);
-    field public static final java.lang.String AUTH_CRYPT_AES_GCM = "rfc4106(gcm(aes))";
-    field public static final java.lang.String AUTH_HMAC_MD5 = "hmac(md5)";
-    field public static final java.lang.String AUTH_HMAC_SHA1 = "hmac(sha1)";
-    field public static final java.lang.String AUTH_HMAC_SHA256 = "hmac(sha256)";
-    field public static final java.lang.String AUTH_HMAC_SHA384 = "hmac(sha384)";
-    field public static final java.lang.String AUTH_HMAC_SHA512 = "hmac(sha512)";
+    field public static final String AUTH_CRYPT_AES_GCM = "rfc4106(gcm(aes))";
+    field public static final String AUTH_HMAC_MD5 = "hmac(md5)";
+    field public static final String AUTH_HMAC_SHA1 = "hmac(sha1)";
+    field public static final String AUTH_HMAC_SHA256 = "hmac(sha256)";
+    field public static final String AUTH_HMAC_SHA384 = "hmac(sha384)";
+    field public static final String AUTH_HMAC_SHA512 = "hmac(sha512)";
     field public static final android.os.Parcelable.Creator<android.net.IpSecAlgorithm> CREATOR;
-    field public static final java.lang.String CRYPT_AES_CBC = "cbc(aes)";
+    field public static final String CRYPT_AES_CBC = "cbc(aes)";
   }
 
   public final class IpSecManager {
-    method public android.net.IpSecManager.SecurityParameterIndex allocateSecurityParameterIndex(java.net.InetAddress) throws android.net.IpSecManager.ResourceUnavailableException;
-    method public android.net.IpSecManager.SecurityParameterIndex allocateSecurityParameterIndex(java.net.InetAddress, int) throws android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
-    method public void applyTransportModeTransform(java.net.Socket, int, android.net.IpSecTransform) throws java.io.IOException;
-    method public void applyTransportModeTransform(java.net.DatagramSocket, int, android.net.IpSecTransform) throws java.io.IOException;
-    method public void applyTransportModeTransform(java.io.FileDescriptor, int, android.net.IpSecTransform) throws java.io.IOException;
-    method public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket(int) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
-    method public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket() throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
-    method public void removeTransportModeTransforms(java.net.Socket) throws java.io.IOException;
-    method public void removeTransportModeTransforms(java.net.DatagramSocket) throws java.io.IOException;
-    method public void removeTransportModeTransforms(java.io.FileDescriptor) throws java.io.IOException;
+    method @NonNull public android.net.IpSecManager.SecurityParameterIndex allocateSecurityParameterIndex(@NonNull java.net.InetAddress) throws android.net.IpSecManager.ResourceUnavailableException;
+    method @NonNull public android.net.IpSecManager.SecurityParameterIndex allocateSecurityParameterIndex(@NonNull java.net.InetAddress, int) throws android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
+    method public void applyTransportModeTransform(@NonNull java.net.Socket, int, @NonNull android.net.IpSecTransform) throws java.io.IOException;
+    method public void applyTransportModeTransform(@NonNull java.net.DatagramSocket, int, @NonNull android.net.IpSecTransform) throws java.io.IOException;
+    method public void applyTransportModeTransform(@NonNull java.io.FileDescriptor, int, @NonNull android.net.IpSecTransform) throws java.io.IOException;
+    method @NonNull public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket(int) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
+    method @NonNull public android.net.IpSecManager.UdpEncapsulationSocket openUdpEncapsulationSocket() throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
+    method public void removeTransportModeTransforms(@NonNull java.net.Socket) throws java.io.IOException;
+    method public void removeTransportModeTransforms(@NonNull java.net.DatagramSocket) throws java.io.IOException;
+    method public void removeTransportModeTransforms(@NonNull java.io.FileDescriptor) throws java.io.IOException;
     field public static final int DIRECTION_IN = 0; // 0x0
     field public static final int DIRECTION_OUT = 1; // 0x1
   }
@@ -28789,12 +28670,12 @@
   }
 
   public static class IpSecTransform.Builder {
-    ctor public IpSecTransform.Builder(android.content.Context);
-    method public android.net.IpSecTransform buildTransportModeTransform(java.net.InetAddress, android.net.IpSecManager.SecurityParameterIndex) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
-    method public android.net.IpSecTransform.Builder setAuthenticatedEncryption(android.net.IpSecAlgorithm);
-    method public android.net.IpSecTransform.Builder setAuthentication(android.net.IpSecAlgorithm);
-    method public android.net.IpSecTransform.Builder setEncryption(android.net.IpSecAlgorithm);
-    method public android.net.IpSecTransform.Builder setIpv4Encapsulation(android.net.IpSecManager.UdpEncapsulationSocket, int);
+    ctor public IpSecTransform.Builder(@NonNull android.content.Context);
+    method @NonNull public android.net.IpSecTransform buildTransportModeTransform(@NonNull java.net.InetAddress, @NonNull android.net.IpSecManager.SecurityParameterIndex) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
+    method @NonNull public android.net.IpSecTransform.Builder setAuthenticatedEncryption(@NonNull android.net.IpSecAlgorithm);
+    method @NonNull public android.net.IpSecTransform.Builder setAuthentication(@NonNull android.net.IpSecAlgorithm);
+    method @NonNull public android.net.IpSecTransform.Builder setEncryption(@NonNull android.net.IpSecAlgorithm);
+    method @NonNull public android.net.IpSecTransform.Builder setIpv4Encapsulation(@NonNull android.net.IpSecManager.UdpEncapsulationSocket, int);
   }
 
   public class LinkAddress implements android.os.Parcelable {
@@ -28810,12 +28691,12 @@
   public final class LinkProperties implements android.os.Parcelable {
     method public int describeContents();
     method public java.util.List<java.net.InetAddress> getDnsServers();
-    method public java.lang.String getDomains();
+    method public String getDomains();
     method public android.net.ProxyInfo getHttpProxy();
-    method public java.lang.String getInterfaceName();
+    method @Nullable public String getInterfaceName();
     method public java.util.List<android.net.LinkAddress> getLinkAddresses();
     method public int getMtu();
-    method public java.lang.String getPrivateDnsServerName();
+    method @Nullable public String getPrivateDnsServerName();
     method public java.util.List<android.net.RouteInfo> getRoutes();
     method public boolean isPrivateDnsActive();
     method public void writeToParcel(android.os.Parcel, int);
@@ -28823,7 +28704,7 @@
   }
 
   public class LocalServerSocket implements java.io.Closeable {
-    ctor public LocalServerSocket(java.lang.String) throws java.io.IOException;
+    ctor public LocalServerSocket(String) throws java.io.IOException;
     ctor public LocalServerSocket(java.io.FileDescriptor) throws java.io.IOException;
     method public android.net.LocalSocket accept() throws java.io.IOException;
     method public void close() throws java.io.IOException;
@@ -28848,9 +28729,9 @@
     method public android.net.LocalSocketAddress getRemoteSocketAddress();
     method public int getSendBufferSize() throws java.io.IOException;
     method public int getSoTimeout() throws java.io.IOException;
-    method public synchronized boolean isBound();
+    method public boolean isBound();
     method public boolean isClosed();
-    method public synchronized boolean isConnected();
+    method public boolean isConnected();
     method public boolean isInputShutdown();
     method public boolean isOutputShutdown();
     method public void setFileDescriptorsForSend(java.io.FileDescriptor[]);
@@ -28865,15 +28746,13 @@
   }
 
   public class LocalSocketAddress {
-    ctor public LocalSocketAddress(java.lang.String, android.net.LocalSocketAddress.Namespace);
-    ctor public LocalSocketAddress(java.lang.String);
-    method public java.lang.String getName();
+    ctor public LocalSocketAddress(String, android.net.LocalSocketAddress.Namespace);
+    ctor public LocalSocketAddress(String);
+    method public String getName();
     method public android.net.LocalSocketAddress.Namespace getNamespace();
   }
 
-  public static final class LocalSocketAddress.Namespace extends java.lang.Enum {
-    method public static android.net.LocalSocketAddress.Namespace valueOf(java.lang.String);
-    method public static final android.net.LocalSocketAddress.Namespace[] values();
+  public enum LocalSocketAddress.Namespace {
     enum_constant public static final android.net.LocalSocketAddress.Namespace ABSTRACT;
     enum_constant public static final android.net.LocalSocketAddress.Namespace FILESYSTEM;
     enum_constant public static final android.net.LocalSocketAddress.Namespace RESERVED;
@@ -28881,12 +28760,12 @@
 
   public final class MacAddress implements android.os.Parcelable {
     method public int describeContents();
-    method public static android.net.MacAddress fromBytes(byte[]);
-    method public static android.net.MacAddress fromString(java.lang.String);
+    method @NonNull public static android.net.MacAddress fromBytes(@NonNull byte[]);
+    method @NonNull public static android.net.MacAddress fromString(@NonNull String);
     method public int getAddressType();
     method public boolean isLocallyAssigned();
-    method public byte[] toByteArray();
-    method public java.lang.String toOuiString();
+    method @NonNull public byte[] toByteArray();
+    method @NonNull public String toOuiString();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.net.MacAddress BROADCAST_ADDRESS;
     field public static final android.os.Parcelable.Creator<android.net.MacAddress> CREATOR;
@@ -28896,14 +28775,14 @@
   }
 
   public class MailTo {
-    method public java.lang.String getBody();
-    method public java.lang.String getCc();
-    method public java.util.Map<java.lang.String, java.lang.String> getHeaders();
-    method public java.lang.String getSubject();
-    method public java.lang.String getTo();
-    method public static boolean isMailTo(java.lang.String);
-    method public static android.net.MailTo parse(java.lang.String) throws android.net.ParseException;
-    field public static final java.lang.String MAILTO_SCHEME = "mailto:";
+    method public String getBody();
+    method public String getCc();
+    method public java.util.Map<java.lang.String,java.lang.String> getHeaders();
+    method public String getSubject();
+    method public String getTo();
+    method public static boolean isMailTo(String);
+    method public static android.net.MailTo parse(String) throws android.net.ParseException;
+    field public static final String MAILTO_SCHEME = "mailto:";
   }
 
   public class Network implements android.os.Parcelable {
@@ -28912,8 +28791,8 @@
     method public void bindSocket(java.io.FileDescriptor) throws java.io.IOException;
     method public int describeContents();
     method public static android.net.Network fromNetworkHandle(long);
-    method public java.net.InetAddress[] getAllByName(java.lang.String) throws java.net.UnknownHostException;
-    method public java.net.InetAddress getByName(java.lang.String) throws java.net.UnknownHostException;
+    method public java.net.InetAddress[] getAllByName(String) throws java.net.UnknownHostException;
+    method public java.net.InetAddress getByName(String) throws java.net.UnknownHostException;
     method public long getNetworkHandle();
     method public javax.net.SocketFactory getSocketFactory();
     method public java.net.URLConnection openConnection(java.net.URL) throws java.io.IOException;
@@ -28927,7 +28806,7 @@
     method public int describeContents();
     method public int getLinkDownstreamBandwidthKbps();
     method public int getLinkUpstreamBandwidthKbps();
-    method public android.net.TransportInfo getTransportInfo();
+    method @Nullable public android.net.TransportInfo getTransportInfo();
     method public boolean hasCapability(int);
     method public boolean hasTransport(int);
     method public void writeToParcel(android.os.Parcel, int);
@@ -28963,52 +28842,48 @@
     field public static final int TRANSPORT_WIFI_AWARE = 5; // 0x5
   }
 
-  public deprecated class NetworkInfo implements android.os.Parcelable {
-    method public int describeContents();
-    method public deprecated android.net.NetworkInfo.DetailedState getDetailedState();
-    method public deprecated java.lang.String getExtraInfo();
-    method public deprecated java.lang.String getReason();
-    method public deprecated android.net.NetworkInfo.State getState();
-    method public deprecated int getSubtype();
-    method public deprecated java.lang.String getSubtypeName();
-    method public deprecated int getType();
-    method public deprecated java.lang.String getTypeName();
-    method public deprecated boolean isAvailable();
-    method public deprecated boolean isConnected();
-    method public deprecated boolean isConnectedOrConnecting();
-    method public deprecated boolean isFailover();
-    method public deprecated boolean isRoaming();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.net.NetworkInfo> CREATOR;
+  @Deprecated public class NetworkInfo implements android.os.Parcelable {
+    method @Deprecated public int describeContents();
+    method @Deprecated public android.net.NetworkInfo.DetailedState getDetailedState();
+    method @Deprecated public String getExtraInfo();
+    method @Deprecated public String getReason();
+    method @Deprecated public android.net.NetworkInfo.State getState();
+    method @Deprecated public int getSubtype();
+    method @Deprecated public String getSubtypeName();
+    method @Deprecated public int getType();
+    method @Deprecated public String getTypeName();
+    method @Deprecated public boolean isAvailable();
+    method @Deprecated public boolean isConnected();
+    method @Deprecated public boolean isConnectedOrConnecting();
+    method @Deprecated public boolean isFailover();
+    method @Deprecated public boolean isRoaming();
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.net.NetworkInfo> CREATOR;
   }
 
-  public static final deprecated class NetworkInfo.DetailedState extends java.lang.Enum {
-    method public static android.net.NetworkInfo.DetailedState valueOf(java.lang.String);
-    method public static final android.net.NetworkInfo.DetailedState[] values();
-    enum_constant public static final android.net.NetworkInfo.DetailedState AUTHENTICATING;
-    enum_constant public static final android.net.NetworkInfo.DetailedState BLOCKED;
-    enum_constant public static final android.net.NetworkInfo.DetailedState CAPTIVE_PORTAL_CHECK;
-    enum_constant public static final android.net.NetworkInfo.DetailedState CONNECTED;
-    enum_constant public static final android.net.NetworkInfo.DetailedState CONNECTING;
-    enum_constant public static final android.net.NetworkInfo.DetailedState DISCONNECTED;
-    enum_constant public static final android.net.NetworkInfo.DetailedState DISCONNECTING;
-    enum_constant public static final android.net.NetworkInfo.DetailedState FAILED;
-    enum_constant public static final android.net.NetworkInfo.DetailedState IDLE;
-    enum_constant public static final android.net.NetworkInfo.DetailedState OBTAINING_IPADDR;
-    enum_constant public static final android.net.NetworkInfo.DetailedState SCANNING;
-    enum_constant public static final android.net.NetworkInfo.DetailedState SUSPENDED;
-    enum_constant public static final android.net.NetworkInfo.DetailedState VERIFYING_POOR_LINK;
+  @Deprecated public enum NetworkInfo.DetailedState {
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState AUTHENTICATING;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState BLOCKED;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState CAPTIVE_PORTAL_CHECK;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState CONNECTED;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState CONNECTING;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState DISCONNECTED;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState DISCONNECTING;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState FAILED;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState IDLE;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState OBTAINING_IPADDR;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState SCANNING;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState SUSPENDED;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.DetailedState VERIFYING_POOR_LINK;
   }
 
-  public static final deprecated class NetworkInfo.State extends java.lang.Enum {
-    method public static android.net.NetworkInfo.State valueOf(java.lang.String);
-    method public static final android.net.NetworkInfo.State[] values();
-    enum_constant public static final android.net.NetworkInfo.State CONNECTED;
-    enum_constant public static final android.net.NetworkInfo.State CONNECTING;
-    enum_constant public static final android.net.NetworkInfo.State DISCONNECTED;
-    enum_constant public static final android.net.NetworkInfo.State DISCONNECTING;
-    enum_constant public static final android.net.NetworkInfo.State SUSPENDED;
-    enum_constant public static final android.net.NetworkInfo.State UNKNOWN;
+  @Deprecated public enum NetworkInfo.State {
+    enum_constant @Deprecated public static final android.net.NetworkInfo.State CONNECTED;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.State CONNECTING;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.State DISCONNECTED;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.State DISCONNECTING;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.State SUSPENDED;
+    enum_constant @Deprecated public static final android.net.NetworkInfo.State UNKNOWN;
   }
 
   public class NetworkRequest implements android.os.Parcelable {
@@ -29026,7 +28901,7 @@
     method public android.net.NetworkRequest build();
     method public android.net.NetworkRequest.Builder removeCapability(int);
     method public android.net.NetworkRequest.Builder removeTransportType(int);
-    method public android.net.NetworkRequest.Builder setNetworkSpecifier(java.lang.String);
+    method public android.net.NetworkRequest.Builder setNetworkSpecifier(String);
     method public android.net.NetworkRequest.Builder setNetworkSpecifier(android.net.NetworkSpecifier);
   }
 
@@ -29034,26 +28909,26 @@
   }
 
   public class ParseException extends java.lang.RuntimeException {
-    field public java.lang.String response;
+    field public String response;
   }
 
   public final class Proxy {
     ctor public Proxy();
-    method public static deprecated java.lang.String getDefaultHost();
-    method public static deprecated int getDefaultPort();
-    method public static deprecated java.lang.String getHost(android.content.Context);
-    method public static deprecated int getPort(android.content.Context);
-    field public static final deprecated java.lang.String EXTRA_PROXY_INFO = "android.intent.extra.PROXY_INFO";
-    field public static final java.lang.String PROXY_CHANGE_ACTION = "android.intent.action.PROXY_CHANGE";
+    method @Deprecated public static String getDefaultHost();
+    method @Deprecated public static int getDefaultPort();
+    method @Deprecated public static String getHost(android.content.Context);
+    method @Deprecated public static int getPort(android.content.Context);
+    field @Deprecated public static final String EXTRA_PROXY_INFO = "android.intent.extra.PROXY_INFO";
+    field public static final String PROXY_CHANGE_ACTION = "android.intent.action.PROXY_CHANGE";
   }
 
   public class ProxyInfo implements android.os.Parcelable {
-    method public static android.net.ProxyInfo buildDirectProxy(java.lang.String, int);
-    method public static android.net.ProxyInfo buildDirectProxy(java.lang.String, int, java.util.List<java.lang.String>);
+    method public static android.net.ProxyInfo buildDirectProxy(String, int);
+    method public static android.net.ProxyInfo buildDirectProxy(String, int, java.util.List<java.lang.String>);
     method public static android.net.ProxyInfo buildPacProxy(android.net.Uri);
     method public int describeContents();
-    method public java.lang.String[] getExclusionList();
-    method public java.lang.String getHost();
+    method public String[] getExclusionList();
+    method public String getHost();
     method public android.net.Uri getPacFileUrl();
     method public int getPort();
     method public void writeToParcel(android.os.Parcel, int);
@@ -29064,7 +28939,7 @@
     method public int describeContents();
     method public android.net.IpPrefix getDestination();
     method public java.net.InetAddress getGateway();
-    method public java.lang.String getInterface();
+    method public String getInterface();
     method public boolean isDefaultRoute();
     method public boolean matches(java.net.InetAddress);
     method public void writeToParcel(android.os.Parcel, int);
@@ -29072,19 +28947,19 @@
   }
 
   public class SSLCertificateSocketFactory extends javax.net.ssl.SSLSocketFactory {
-    ctor public deprecated SSLCertificateSocketFactory(int);
-    method public java.net.Socket createSocket(java.net.Socket, java.lang.String, int, boolean) throws java.io.IOException;
+    ctor @Deprecated public SSLCertificateSocketFactory(int);
+    method public java.net.Socket createSocket(java.net.Socket, String, int, boolean) throws java.io.IOException;
     method public java.net.Socket createSocket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
     method public java.net.Socket createSocket(java.net.InetAddress, int) throws java.io.IOException;
-    method public java.net.Socket createSocket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException;
-    method public java.net.Socket createSocket(java.lang.String, int) throws java.io.IOException;
+    method public java.net.Socket createSocket(String, int, java.net.InetAddress, int) throws java.io.IOException;
+    method public java.net.Socket createSocket(String, int) throws java.io.IOException;
     method public static javax.net.SocketFactory getDefault(int);
     method public static javax.net.ssl.SSLSocketFactory getDefault(int, android.net.SSLSessionCache);
-    method public java.lang.String[] getDefaultCipherSuites();
+    method public String[] getDefaultCipherSuites();
     method public static javax.net.ssl.SSLSocketFactory getInsecure(int, android.net.SSLSessionCache);
     method public byte[] getNpnSelectedProtocol(java.net.Socket);
-    method public java.lang.String[] getSupportedCipherSuites();
-    method public void setHostname(java.net.Socket, java.lang.String);
+    method public String[] getSupportedCipherSuites();
+    method public void setHostname(java.net.Socket, String);
     method public void setKeyManagers(javax.net.ssl.KeyManager[]);
     method public void setNpnProtocols(byte[][]);
     method public void setTrustManagers(javax.net.ssl.TrustManager[]);
@@ -29113,16 +28988,16 @@
     method public static long getTotalTxPackets();
     method public static long getUidRxBytes(int);
     method public static long getUidRxPackets(int);
-    method public static deprecated long getUidTcpRxBytes(int);
-    method public static deprecated long getUidTcpRxSegments(int);
-    method public static deprecated long getUidTcpTxBytes(int);
-    method public static deprecated long getUidTcpTxSegments(int);
+    method @Deprecated public static long getUidTcpRxBytes(int);
+    method @Deprecated public static long getUidTcpRxSegments(int);
+    method @Deprecated public static long getUidTcpTxBytes(int);
+    method @Deprecated public static long getUidTcpTxSegments(int);
     method public static long getUidTxBytes(int);
     method public static long getUidTxPackets(int);
-    method public static deprecated long getUidUdpRxBytes(int);
-    method public static deprecated long getUidUdpRxPackets(int);
-    method public static deprecated long getUidUdpTxBytes(int);
-    method public static deprecated long getUidUdpTxPackets(int);
+    method @Deprecated public static long getUidUdpRxBytes(int);
+    method @Deprecated public static long getUidUdpRxPackets(int);
+    method @Deprecated public static long getUidUdpTxBytes(int);
+    method @Deprecated public static long getUidUdpTxPackets(int);
     method public static void incrementOperationCount(int);
     method public static void incrementOperationCount(int, int);
     method public static void setThreadStatsTag(int);
@@ -29136,47 +29011,47 @@
     field public static final int UNSUPPORTED = -1; // 0xffffffff
   }
 
-  public abstract interface TransportInfo {
+  public interface TransportInfo {
   }
 
-  public abstract class Uri implements java.lang.Comparable android.os.Parcelable {
+  public abstract class Uri implements java.lang.Comparable<android.net.Uri> android.os.Parcelable {
     method public abstract android.net.Uri.Builder buildUpon();
     method public int compareTo(android.net.Uri);
-    method public static java.lang.String decode(java.lang.String);
-    method public static java.lang.String encode(java.lang.String);
-    method public static java.lang.String encode(java.lang.String, java.lang.String);
+    method public static String decode(String);
+    method public static String encode(String);
+    method public static String encode(String, String);
     method public static android.net.Uri fromFile(java.io.File);
-    method public static android.net.Uri fromParts(java.lang.String, java.lang.String, java.lang.String);
-    method public abstract java.lang.String getAuthority();
-    method public boolean getBooleanQueryParameter(java.lang.String, boolean);
-    method public abstract java.lang.String getEncodedAuthority();
-    method public abstract java.lang.String getEncodedFragment();
-    method public abstract java.lang.String getEncodedPath();
-    method public abstract java.lang.String getEncodedQuery();
-    method public abstract java.lang.String getEncodedSchemeSpecificPart();
-    method public abstract java.lang.String getEncodedUserInfo();
-    method public abstract java.lang.String getFragment();
-    method public abstract java.lang.String getHost();
-    method public abstract java.lang.String getLastPathSegment();
-    method public abstract java.lang.String getPath();
+    method public static android.net.Uri fromParts(String, String, String);
+    method @Nullable public abstract String getAuthority();
+    method public boolean getBooleanQueryParameter(String, boolean);
+    method @Nullable public abstract String getEncodedAuthority();
+    method @Nullable public abstract String getEncodedFragment();
+    method @Nullable public abstract String getEncodedPath();
+    method @Nullable public abstract String getEncodedQuery();
+    method public abstract String getEncodedSchemeSpecificPart();
+    method @Nullable public abstract String getEncodedUserInfo();
+    method @Nullable public abstract String getFragment();
+    method @Nullable public abstract String getHost();
+    method @Nullable public abstract String getLastPathSegment();
+    method @Nullable public abstract String getPath();
     method public abstract java.util.List<java.lang.String> getPathSegments();
     method public abstract int getPort();
-    method public abstract java.lang.String getQuery();
-    method public java.lang.String getQueryParameter(java.lang.String);
+    method @Nullable public abstract String getQuery();
+    method @Nullable public String getQueryParameter(String);
     method public java.util.Set<java.lang.String> getQueryParameterNames();
-    method public java.util.List<java.lang.String> getQueryParameters(java.lang.String);
-    method public abstract java.lang.String getScheme();
-    method public abstract java.lang.String getSchemeSpecificPart();
-    method public abstract java.lang.String getUserInfo();
+    method public java.util.List<java.lang.String> getQueryParameters(String);
+    method @Nullable public abstract String getScheme();
+    method public abstract String getSchemeSpecificPart();
+    method @Nullable public abstract String getUserInfo();
     method public boolean isAbsolute();
     method public abstract boolean isHierarchical();
     method public boolean isOpaque();
     method public abstract boolean isRelative();
     method public android.net.Uri normalizeScheme();
-    method public static android.net.Uri parse(java.lang.String);
-    method public java.lang.String toSafeString();
-    method public abstract java.lang.String toString();
-    method public static android.net.Uri withAppendedPath(android.net.Uri, java.lang.String);
+    method public static android.net.Uri parse(String);
+    method public String toSafeString();
+    method public abstract String toString();
+    method public static android.net.Uri withAppendedPath(android.net.Uri, String);
     method public static void writeToParcel(android.os.Parcel, android.net.Uri);
     field public static final android.os.Parcelable.Creator<android.net.Uri> CREATOR;
     field public static final android.net.Uri EMPTY;
@@ -29184,28 +29059,28 @@
 
   public static final class Uri.Builder {
     ctor public Uri.Builder();
-    method public android.net.Uri.Builder appendEncodedPath(java.lang.String);
-    method public android.net.Uri.Builder appendPath(java.lang.String);
-    method public android.net.Uri.Builder appendQueryParameter(java.lang.String, java.lang.String);
-    method public android.net.Uri.Builder authority(java.lang.String);
+    method public android.net.Uri.Builder appendEncodedPath(String);
+    method public android.net.Uri.Builder appendPath(String);
+    method public android.net.Uri.Builder appendQueryParameter(String, String);
+    method public android.net.Uri.Builder authority(String);
     method public android.net.Uri build();
     method public android.net.Uri.Builder clearQuery();
-    method public android.net.Uri.Builder encodedAuthority(java.lang.String);
-    method public android.net.Uri.Builder encodedFragment(java.lang.String);
-    method public android.net.Uri.Builder encodedOpaquePart(java.lang.String);
-    method public android.net.Uri.Builder encodedPath(java.lang.String);
-    method public android.net.Uri.Builder encodedQuery(java.lang.String);
-    method public android.net.Uri.Builder fragment(java.lang.String);
-    method public android.net.Uri.Builder opaquePart(java.lang.String);
-    method public android.net.Uri.Builder path(java.lang.String);
-    method public android.net.Uri.Builder query(java.lang.String);
-    method public android.net.Uri.Builder scheme(java.lang.String);
+    method public android.net.Uri.Builder encodedAuthority(String);
+    method public android.net.Uri.Builder encodedFragment(String);
+    method public android.net.Uri.Builder encodedOpaquePart(String);
+    method public android.net.Uri.Builder encodedPath(String);
+    method public android.net.Uri.Builder encodedQuery(String);
+    method public android.net.Uri.Builder fragment(String);
+    method public android.net.Uri.Builder opaquePart(String);
+    method public android.net.Uri.Builder path(String);
+    method public android.net.Uri.Builder query(String);
+    method public android.net.Uri.Builder scheme(String);
   }
 
   public class UrlQuerySanitizer {
     ctor public UrlQuerySanitizer();
-    ctor public UrlQuerySanitizer(java.lang.String);
-    method protected void addSanitizedEntry(java.lang.String, java.lang.String);
+    ctor public UrlQuerySanitizer(String);
+    method protected void addSanitizedEntry(String, String);
     method protected void clear();
     method protected int decodeHexDigit(char);
     method public static final android.net.UrlQuerySanitizer.ValueSanitizer getAllButNulAndAngleBracketsLegal();
@@ -29215,7 +29090,7 @@
     method public boolean getAllowUnregisteredParamaters();
     method public static final android.net.UrlQuerySanitizer.ValueSanitizer getAmpAndSpaceLegal();
     method public static final android.net.UrlQuerySanitizer.ValueSanitizer getAmpLegal();
-    method public android.net.UrlQuerySanitizer.ValueSanitizer getEffectiveValueSanitizer(java.lang.String);
+    method public android.net.UrlQuerySanitizer.ValueSanitizer getEffectiveValueSanitizer(String);
     method public java.util.List<android.net.UrlQuerySanitizer.ParameterValuePair> getParameterList();
     method public java.util.Set<java.lang.String> getParameterSet();
     method public boolean getPreferFirstRepeatedParameter();
@@ -29223,24 +29098,24 @@
     method public android.net.UrlQuerySanitizer.ValueSanitizer getUnregisteredParameterValueSanitizer();
     method public static final android.net.UrlQuerySanitizer.ValueSanitizer getUrlAndSpaceLegal();
     method public static final android.net.UrlQuerySanitizer.ValueSanitizer getUrlLegal();
-    method public java.lang.String getValue(java.lang.String);
-    method public android.net.UrlQuerySanitizer.ValueSanitizer getValueSanitizer(java.lang.String);
-    method public boolean hasParameter(java.lang.String);
+    method public String getValue(String);
+    method public android.net.UrlQuerySanitizer.ValueSanitizer getValueSanitizer(String);
+    method public boolean hasParameter(String);
     method protected boolean isHexDigit(char);
-    method protected void parseEntry(java.lang.String, java.lang.String);
-    method public void parseQuery(java.lang.String);
-    method public void parseUrl(java.lang.String);
-    method public void registerParameter(java.lang.String, android.net.UrlQuerySanitizer.ValueSanitizer);
-    method public void registerParameters(java.lang.String[], android.net.UrlQuerySanitizer.ValueSanitizer);
+    method protected void parseEntry(String, String);
+    method public void parseQuery(String);
+    method public void parseUrl(String);
+    method public void registerParameter(String, android.net.UrlQuerySanitizer.ValueSanitizer);
+    method public void registerParameters(String[], android.net.UrlQuerySanitizer.ValueSanitizer);
     method public void setAllowUnregisteredParamaters(boolean);
     method public void setPreferFirstRepeatedParameter(boolean);
     method public void setUnregisteredParameterValueSanitizer(android.net.UrlQuerySanitizer.ValueSanitizer);
-    method public java.lang.String unescape(java.lang.String);
+    method public String unescape(String);
   }
 
   public static class UrlQuerySanitizer.IllegalCharacterValueSanitizer implements android.net.UrlQuerySanitizer.ValueSanitizer {
     ctor public UrlQuerySanitizer.IllegalCharacterValueSanitizer(int);
-    method public java.lang.String sanitize(java.lang.String);
+    method public String sanitize(String);
     field public static final int ALL_BUT_NUL_AND_ANGLE_BRACKETS_LEGAL = 1439; // 0x59f
     field public static final int ALL_BUT_NUL_LEGAL = 1535; // 0x5ff
     field public static final int ALL_BUT_WHITESPACE_LEGAL = 1532; // 0x5fc
@@ -29266,13 +29141,13 @@
   }
 
   public class UrlQuerySanitizer.ParameterValuePair {
-    ctor public UrlQuerySanitizer.ParameterValuePair(java.lang.String, java.lang.String);
-    field public java.lang.String mParameter;
-    field public java.lang.String mValue;
+    ctor public UrlQuerySanitizer.ParameterValuePair(String, String);
+    field public String mParameter;
+    field public String mValue;
   }
 
-  public static abstract interface UrlQuerySanitizer.ValueSanitizer {
-    method public abstract java.lang.String sanitize(java.lang.String);
+  public static interface UrlQuerySanitizer.ValueSanitizer {
+    method public String sanitize(String);
   }
 
   public class VpnService extends android.app.Service {
@@ -29284,28 +29159,28 @@
     method public boolean protect(java.net.Socket);
     method public boolean protect(java.net.DatagramSocket);
     method public boolean setUnderlyingNetworks(android.net.Network[]);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.net.VpnService";
-    field public static final java.lang.String SERVICE_META_DATA_SUPPORTS_ALWAYS_ON = "android.net.VpnService.SUPPORTS_ALWAYS_ON";
+    field public static final String SERVICE_INTERFACE = "android.net.VpnService";
+    field public static final String SERVICE_META_DATA_SUPPORTS_ALWAYS_ON = "android.net.VpnService.SUPPORTS_ALWAYS_ON";
   }
 
   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(java.lang.String, int);
-    method public android.net.VpnService.Builder addAllowedApplication(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.net.VpnService.Builder addDisallowedApplication(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+    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(java.lang.String);
+    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(java.lang.String, int);
-    method public android.net.VpnService.Builder addSearchDomain(java.lang.String);
+    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 setMtu(int);
-    method public android.net.VpnService.Builder setSession(java.lang.String);
+    method public android.net.VpnService.Builder setSession(String);
     method public android.net.VpnService.Builder setUnderlyingNetworks(android.net.Network[]);
   }
 
@@ -29317,26 +29192,26 @@
     method public void close() throws java.io.IOException;
     method public void delete() throws java.io.IOException;
     method public void flush();
-    method public java.net.CacheResponse get(java.net.URI, java.lang.String, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
+    method public java.net.CacheResponse get(java.net.URI, String, java.util.Map<java.lang.String,java.util.List<java.lang.String>>) throws java.io.IOException;
     method public int getHitCount();
     method public static android.net.http.HttpResponseCache getInstalled();
     method public int getNetworkCount();
     method public int getRequestCount();
-    method public static synchronized android.net.http.HttpResponseCache install(java.io.File, long) throws java.io.IOException;
+    method public static android.net.http.HttpResponseCache install(java.io.File, long) throws java.io.IOException;
     method public long maxSize();
     method public java.net.CacheRequest put(java.net.URI, java.net.URLConnection) throws java.io.IOException;
     method public long size();
   }
 
   public class SslCertificate {
-    ctor public deprecated SslCertificate(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    ctor public deprecated SslCertificate(java.lang.String, java.lang.String, java.util.Date, java.util.Date);
+    ctor @Deprecated public SslCertificate(String, String, String, String);
+    ctor @Deprecated public SslCertificate(String, String, java.util.Date, java.util.Date);
     ctor public SslCertificate(java.security.cert.X509Certificate);
     method public android.net.http.SslCertificate.DName getIssuedBy();
     method public android.net.http.SslCertificate.DName getIssuedTo();
-    method public deprecated java.lang.String getValidNotAfter();
+    method @Deprecated public String getValidNotAfter();
     method public java.util.Date getValidNotAfterDate();
-    method public deprecated java.lang.String getValidNotBefore();
+    method @Deprecated public String getValidNotBefore();
     method public java.util.Date getValidNotBeforeDate();
     method public java.security.cert.X509Certificate getX509Certificate();
     method public static android.net.http.SslCertificate restoreState(android.os.Bundle);
@@ -29344,36 +29219,36 @@
   }
 
   public class SslCertificate.DName {
-    ctor public SslCertificate.DName(java.lang.String);
-    method public java.lang.String getCName();
-    method public java.lang.String getDName();
-    method public java.lang.String getOName();
-    method public java.lang.String getUName();
+    ctor public SslCertificate.DName(String);
+    method public String getCName();
+    method public String getDName();
+    method public String getOName();
+    method public String getUName();
   }
 
   public class SslError {
-    ctor public deprecated SslError(int, android.net.http.SslCertificate);
-    ctor public deprecated SslError(int, java.security.cert.X509Certificate);
-    ctor public SslError(int, android.net.http.SslCertificate, java.lang.String);
-    ctor public SslError(int, java.security.cert.X509Certificate, java.lang.String);
+    ctor @Deprecated public SslError(int, android.net.http.SslCertificate);
+    ctor @Deprecated public SslError(int, java.security.cert.X509Certificate);
+    ctor public SslError(int, android.net.http.SslCertificate, String);
+    ctor public SslError(int, java.security.cert.X509Certificate, String);
     method public boolean addError(int);
     method public android.net.http.SslCertificate getCertificate();
     method public int getPrimaryError();
-    method public java.lang.String getUrl();
+    method public String getUrl();
     method public boolean hasError(int);
     field public static final int SSL_DATE_INVALID = 4; // 0x4
     field public static final int SSL_EXPIRED = 1; // 0x1
     field public static final int SSL_IDMISMATCH = 2; // 0x2
     field public static final int SSL_INVALID = 5; // 0x5
-    field public static final deprecated int SSL_MAX_ERROR = 6; // 0x6
+    field @Deprecated public static final int SSL_MAX_ERROR = 6; // 0x6
     field public static final int SSL_NOTYETVALID = 0; // 0x0
     field public static final int SSL_UNTRUSTED = 3; // 0x3
   }
 
   public class X509TrustManagerExtensions {
     ctor public X509TrustManagerExtensions(javax.net.ssl.X509TrustManager) throws java.lang.IllegalArgumentException;
-    method public java.util.List<java.security.cert.X509Certificate> checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, java.lang.String) throws java.security.cert.CertificateException;
-    method public boolean isSameTrustConfiguration(java.lang.String, java.lang.String);
+    method public java.util.List<java.security.cert.X509Certificate> checkServerTrusted(java.security.cert.X509Certificate[], String, String) throws java.security.cert.CertificateException;
+    method public boolean isSameTrustConfiguration(String, String);
     method public boolean isUserAddedCertificate(java.security.cert.X509Certificate);
   }
 
@@ -29382,13 +29257,13 @@
 package android.net.nsd {
 
   public final class NsdManager {
-    method public void discoverServices(java.lang.String, int, android.net.nsd.NsdManager.DiscoveryListener);
+    method public void discoverServices(String, int, android.net.nsd.NsdManager.DiscoveryListener);
     method public void registerService(android.net.nsd.NsdServiceInfo, int, android.net.nsd.NsdManager.RegistrationListener);
     method public void resolveService(android.net.nsd.NsdServiceInfo, android.net.nsd.NsdManager.ResolveListener);
     method public void stopServiceDiscovery(android.net.nsd.NsdManager.DiscoveryListener);
     method public void unregisterService(android.net.nsd.NsdManager.RegistrationListener);
-    field public static final java.lang.String ACTION_NSD_STATE_CHANGED = "android.net.nsd.STATE_CHANGED";
-    field public static final java.lang.String EXTRA_NSD_STATE = "nsd_state";
+    field public static final String ACTION_NSD_STATE_CHANGED = "android.net.nsd.STATE_CHANGED";
+    field public static final String EXTRA_NSD_STATE = "nsd_state";
     field public static final int FAILURE_ALREADY_ACTIVE = 3; // 0x3
     field public static final int FAILURE_INTERNAL_ERROR = 0; // 0x0
     field public static final int FAILURE_MAX_LIMIT = 4; // 0x4
@@ -29397,41 +29272,41 @@
     field public static final int PROTOCOL_DNS_SD = 1; // 0x1
   }
 
-  public static abstract interface NsdManager.DiscoveryListener {
-    method public abstract void onDiscoveryStarted(java.lang.String);
-    method public abstract void onDiscoveryStopped(java.lang.String);
-    method public abstract void onServiceFound(android.net.nsd.NsdServiceInfo);
-    method public abstract void onServiceLost(android.net.nsd.NsdServiceInfo);
-    method public abstract void onStartDiscoveryFailed(java.lang.String, int);
-    method public abstract void onStopDiscoveryFailed(java.lang.String, int);
+  public static interface NsdManager.DiscoveryListener {
+    method public void onDiscoveryStarted(String);
+    method public void onDiscoveryStopped(String);
+    method public void onServiceFound(android.net.nsd.NsdServiceInfo);
+    method public void onServiceLost(android.net.nsd.NsdServiceInfo);
+    method public void onStartDiscoveryFailed(String, int);
+    method public void onStopDiscoveryFailed(String, int);
   }
 
-  public static abstract interface NsdManager.RegistrationListener {
-    method public abstract void onRegistrationFailed(android.net.nsd.NsdServiceInfo, int);
-    method public abstract void onServiceRegistered(android.net.nsd.NsdServiceInfo);
-    method public abstract void onServiceUnregistered(android.net.nsd.NsdServiceInfo);
-    method public abstract void onUnregistrationFailed(android.net.nsd.NsdServiceInfo, int);
+  public static interface NsdManager.RegistrationListener {
+    method public void onRegistrationFailed(android.net.nsd.NsdServiceInfo, int);
+    method public void onServiceRegistered(android.net.nsd.NsdServiceInfo);
+    method public void onServiceUnregistered(android.net.nsd.NsdServiceInfo);
+    method public void onUnregistrationFailed(android.net.nsd.NsdServiceInfo, int);
   }
 
-  public static abstract interface NsdManager.ResolveListener {
-    method public abstract void onResolveFailed(android.net.nsd.NsdServiceInfo, int);
-    method public abstract void onServiceResolved(android.net.nsd.NsdServiceInfo);
+  public static interface NsdManager.ResolveListener {
+    method public void onResolveFailed(android.net.nsd.NsdServiceInfo, int);
+    method public void onServiceResolved(android.net.nsd.NsdServiceInfo);
   }
 
   public final class NsdServiceInfo implements android.os.Parcelable {
     ctor public NsdServiceInfo();
     method public int describeContents();
-    method public java.util.Map<java.lang.String, byte[]> getAttributes();
+    method public java.util.Map<java.lang.String,byte[]> getAttributes();
     method public java.net.InetAddress getHost();
     method public int getPort();
-    method public java.lang.String getServiceName();
-    method public java.lang.String getServiceType();
-    method public void removeAttribute(java.lang.String);
-    method public void setAttribute(java.lang.String, java.lang.String);
+    method public String getServiceName();
+    method public String getServiceType();
+    method public void removeAttribute(String);
+    method public void setAttribute(String, String);
     method public void setHost(java.net.InetAddress);
     method public void setPort(int);
-    method public void setServiceName(java.lang.String);
-    method public void setServiceType(java.lang.String);
+    method public void setServiceName(String);
+    method public void setServiceType(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.nsd.NsdServiceInfo> CREATOR;
   }
@@ -29441,15 +29316,15 @@
 package android.net.rtp {
 
   public class AudioCodec {
-    method public static android.net.rtp.AudioCodec getCodec(int, java.lang.String, java.lang.String);
+    method public static android.net.rtp.AudioCodec getCodec(int, String, String);
     method public static android.net.rtp.AudioCodec[] getCodecs();
     field public static final android.net.rtp.AudioCodec AMR;
     field public static final android.net.rtp.AudioCodec GSM;
     field public static final android.net.rtp.AudioCodec GSM_EFR;
     field public static final android.net.rtp.AudioCodec PCMA;
     field public static final android.net.rtp.AudioCodec PCMU;
-    field public final java.lang.String fmtp;
-    field public final java.lang.String rtpmap;
+    field public final String fmtp;
+    field public final String rtpmap;
     field public final int type;
   }
 
@@ -29499,7 +29374,7 @@
   public class SipAudioCall {
     ctor public SipAudioCall(android.content.Context, android.net.sip.SipProfile);
     method public void answerCall(int) throws android.net.sip.SipException;
-    method public void attachCall(android.net.sip.SipSession, java.lang.String) throws android.net.sip.SipException;
+    method public void attachCall(android.net.sip.SipSession, String) throws android.net.sip.SipException;
     method public void close();
     method public void continueCall(int) throws android.net.sip.SipException;
     method public void endCall() throws android.net.sip.SipException;
@@ -29528,14 +29403,14 @@
     method public void onCallHeld(android.net.sip.SipAudioCall);
     method public void onCalling(android.net.sip.SipAudioCall);
     method public void onChanged(android.net.sip.SipAudioCall);
-    method public void onError(android.net.sip.SipAudioCall, int, java.lang.String);
+    method public void onError(android.net.sip.SipAudioCall, int, String);
     method public void onReadyToCall(android.net.sip.SipAudioCall);
     method public void onRinging(android.net.sip.SipAudioCall, android.net.sip.SipProfile);
     method public void onRingingBack(android.net.sip.SipAudioCall);
   }
 
   public class SipErrorCode {
-    method public static java.lang.String toString(int);
+    method public static String toString(int);
     field public static final int CLIENT_ERROR = -4; // 0xfffffffc
     field public static final int CROSS_DOMAIN_AUTHENTICATION = -11; // 0xfffffff5
     field public static final int DATA_CONNECTION_LOST = -10; // 0xfffffff6
@@ -29553,87 +29428,87 @@
 
   public class SipException extends java.lang.Exception {
     ctor public SipException();
-    ctor public SipException(java.lang.String);
-    ctor public SipException(java.lang.String, java.lang.Throwable);
+    ctor public SipException(String);
+    ctor public SipException(String, Throwable);
   }
 
   public class SipManager {
-    method public void close(java.lang.String) throws android.net.sip.SipException;
+    method public void close(String) throws android.net.sip.SipException;
     method public android.net.sip.SipSession createSipSession(android.net.sip.SipProfile, android.net.sip.SipSession.Listener) throws android.net.sip.SipException;
-    method public static java.lang.String getCallId(android.content.Intent);
-    method public static java.lang.String getOfferSessionDescription(android.content.Intent);
+    method public static String getCallId(android.content.Intent);
+    method public static String getOfferSessionDescription(android.content.Intent);
     method public android.net.sip.SipSession getSessionFor(android.content.Intent) throws android.net.sip.SipException;
     method public static boolean isApiSupported(android.content.Context);
     method public static boolean isIncomingCallIntent(android.content.Intent);
-    method public boolean isOpened(java.lang.String) throws android.net.sip.SipException;
-    method public boolean isRegistered(java.lang.String) throws android.net.sip.SipException;
+    method public boolean isOpened(String) throws android.net.sip.SipException;
+    method public boolean isRegistered(String) throws android.net.sip.SipException;
     method public static boolean isSipWifiOnly(android.content.Context);
     method public static boolean isVoipSupported(android.content.Context);
     method public android.net.sip.SipAudioCall makeAudioCall(android.net.sip.SipProfile, android.net.sip.SipProfile, android.net.sip.SipAudioCall.Listener, int) throws android.net.sip.SipException;
-    method public android.net.sip.SipAudioCall makeAudioCall(java.lang.String, java.lang.String, android.net.sip.SipAudioCall.Listener, int) throws android.net.sip.SipException;
+    method public android.net.sip.SipAudioCall makeAudioCall(String, String, android.net.sip.SipAudioCall.Listener, int) throws android.net.sip.SipException;
     method public static android.net.sip.SipManager newInstance(android.content.Context);
     method public void open(android.net.sip.SipProfile) throws android.net.sip.SipException;
     method public void open(android.net.sip.SipProfile, android.app.PendingIntent, android.net.sip.SipRegistrationListener) throws android.net.sip.SipException;
     method public void register(android.net.sip.SipProfile, int, android.net.sip.SipRegistrationListener) throws android.net.sip.SipException;
-    method public void setRegistrationListener(java.lang.String, android.net.sip.SipRegistrationListener) throws android.net.sip.SipException;
+    method public void setRegistrationListener(String, android.net.sip.SipRegistrationListener) throws android.net.sip.SipException;
     method public android.net.sip.SipAudioCall takeAudioCall(android.content.Intent, android.net.sip.SipAudioCall.Listener) throws android.net.sip.SipException;
     method public void unregister(android.net.sip.SipProfile, android.net.sip.SipRegistrationListener) throws android.net.sip.SipException;
-    field public static final java.lang.String EXTRA_CALL_ID = "android:sipCallID";
-    field public static final java.lang.String EXTRA_OFFER_SD = "android:sipOfferSD";
+    field public static final String EXTRA_CALL_ID = "android:sipCallID";
+    field public static final String EXTRA_OFFER_SD = "android:sipOfferSD";
     field public static final int INCOMING_CALL_RESULT_CODE = 101; // 0x65
   }
 
   public class SipProfile implements java.lang.Cloneable android.os.Parcelable java.io.Serializable {
     method public int describeContents();
-    method public java.lang.String getAuthUserName();
+    method public String getAuthUserName();
     method public boolean getAutoRegistration();
-    method public java.lang.String getDisplayName();
-    method public java.lang.String getPassword();
+    method public String getDisplayName();
+    method public String getPassword();
     method public int getPort();
-    method public java.lang.String getProfileName();
-    method public java.lang.String getProtocol();
-    method public java.lang.String getProxyAddress();
+    method public String getProfileName();
+    method public String getProtocol();
+    method public String getProxyAddress();
     method public boolean getSendKeepAlive();
-    method public java.lang.String getSipDomain();
-    method public java.lang.String getUriString();
-    method public java.lang.String getUserName();
+    method public String getSipDomain();
+    method public String getUriString();
+    method public String getUserName();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.sip.SipProfile> CREATOR;
   }
 
   public static class SipProfile.Builder {
     ctor public SipProfile.Builder(android.net.sip.SipProfile);
-    ctor public SipProfile.Builder(java.lang.String) throws java.text.ParseException;
-    ctor public SipProfile.Builder(java.lang.String, java.lang.String) throws java.text.ParseException;
+    ctor public SipProfile.Builder(String) throws java.text.ParseException;
+    ctor public SipProfile.Builder(String, String) throws java.text.ParseException;
     method public android.net.sip.SipProfile build();
-    method public android.net.sip.SipProfile.Builder setAuthUserName(java.lang.String);
+    method public android.net.sip.SipProfile.Builder setAuthUserName(String);
     method public android.net.sip.SipProfile.Builder setAutoRegistration(boolean);
-    method public android.net.sip.SipProfile.Builder setDisplayName(java.lang.String);
-    method public android.net.sip.SipProfile.Builder setOutboundProxy(java.lang.String);
-    method public android.net.sip.SipProfile.Builder setPassword(java.lang.String);
+    method public android.net.sip.SipProfile.Builder setDisplayName(String);
+    method public android.net.sip.SipProfile.Builder setOutboundProxy(String);
+    method public android.net.sip.SipProfile.Builder setPassword(String);
     method public android.net.sip.SipProfile.Builder setPort(int) throws java.lang.IllegalArgumentException;
-    method public android.net.sip.SipProfile.Builder setProfileName(java.lang.String);
-    method public android.net.sip.SipProfile.Builder setProtocol(java.lang.String) throws java.lang.IllegalArgumentException;
+    method public android.net.sip.SipProfile.Builder setProfileName(String);
+    method public android.net.sip.SipProfile.Builder setProtocol(String) throws java.lang.IllegalArgumentException;
     method public android.net.sip.SipProfile.Builder setSendKeepAlive(boolean);
   }
 
-  public abstract interface SipRegistrationListener {
-    method public abstract void onRegistering(java.lang.String);
-    method public abstract void onRegistrationDone(java.lang.String, long);
-    method public abstract void onRegistrationFailed(java.lang.String, int, java.lang.String);
+  public interface SipRegistrationListener {
+    method public void onRegistering(String);
+    method public void onRegistrationDone(String, long);
+    method public void onRegistrationFailed(String, int, String);
   }
 
   public final class SipSession {
-    method public void answerCall(java.lang.String, int);
-    method public void changeCall(java.lang.String, int);
+    method public void answerCall(String, int);
+    method public void changeCall(String, int);
     method public void endCall();
-    method public java.lang.String getCallId();
-    method public java.lang.String getLocalIp();
+    method public String getCallId();
+    method public String getLocalIp();
     method public android.net.sip.SipProfile getLocalProfile();
     method public android.net.sip.SipProfile getPeerProfile();
     method public int getState();
     method public boolean isInCall();
-    method public void makeCall(android.net.sip.SipProfile, java.lang.String, int);
+    method public void makeCall(android.net.sip.SipProfile, String, int);
     method public void register(int);
     method public void setListener(android.net.sip.SipSession.Listener);
     method public void unregister();
@@ -29642,21 +29517,21 @@
   public static class SipSession.Listener {
     ctor public SipSession.Listener();
     method public void onCallBusy(android.net.sip.SipSession);
-    method public void onCallChangeFailed(android.net.sip.SipSession, int, java.lang.String);
+    method public void onCallChangeFailed(android.net.sip.SipSession, int, String);
     method public void onCallEnded(android.net.sip.SipSession);
-    method public void onCallEstablished(android.net.sip.SipSession, java.lang.String);
+    method public void onCallEstablished(android.net.sip.SipSession, String);
     method public void onCalling(android.net.sip.SipSession);
-    method public void onError(android.net.sip.SipSession, int, java.lang.String);
+    method public void onError(android.net.sip.SipSession, int, String);
     method public void onRegistering(android.net.sip.SipSession);
     method public void onRegistrationDone(android.net.sip.SipSession, int);
-    method public void onRegistrationFailed(android.net.sip.SipSession, int, java.lang.String);
+    method public void onRegistrationFailed(android.net.sip.SipSession, int, String);
     method public void onRegistrationTimeout(android.net.sip.SipSession);
-    method public void onRinging(android.net.sip.SipSession, android.net.sip.SipProfile, java.lang.String);
+    method public void onRinging(android.net.sip.SipSession, android.net.sip.SipProfile, String);
     method public void onRingingBack(android.net.sip.SipSession);
   }
 
   public static class SipSession.State {
-    method public static java.lang.String toString(int);
+    method public static String toString(int);
     field public static final int DEREGISTERING = 2; // 0x2
     field public static final int INCOMING_CALL = 3; // 0x3
     field public static final int INCOMING_CALL_ANSWERING = 4; // 0x4
@@ -29675,13 +29550,13 @@
 package android.net.ssl {
 
   public class SSLEngines {
-    method public static boolean isSupportedEngine(javax.net.ssl.SSLEngine);
-    method public static void setUseSessionTickets(javax.net.ssl.SSLEngine, boolean);
+    method public static boolean isSupportedEngine(@NonNull javax.net.ssl.SSLEngine);
+    method public static void setUseSessionTickets(@NonNull javax.net.ssl.SSLEngine, boolean);
   }
 
   public class SSLSockets {
-    method public static boolean isSupportedSocket(javax.net.ssl.SSLSocket);
-    method public static void setUseSessionTickets(javax.net.ssl.SSLSocket, boolean);
+    method public static boolean isSupportedSocket(@NonNull javax.net.ssl.SSLSocket);
+    method public static void setUseSessionTickets(@NonNull javax.net.ssl.SSLSocket, boolean);
   }
 
 }
@@ -29693,29 +29568,27 @@
     method public boolean is80211mcResponder();
     method public boolean isPasspointNetwork();
     method public void writeToParcel(android.os.Parcel, int);
-    field public java.lang.String BSSID;
+    field public String BSSID;
     field public static final int CHANNEL_WIDTH_160MHZ = 3; // 0x3
     field public static final int CHANNEL_WIDTH_20MHZ = 0; // 0x0
     field public static final int CHANNEL_WIDTH_40MHZ = 1; // 0x1
     field public static final int CHANNEL_WIDTH_80MHZ = 2; // 0x2
     field public static final int CHANNEL_WIDTH_80MHZ_PLUS_MHZ = 4; // 0x4
-    field public java.lang.String SSID;
-    field public java.lang.String capabilities;
+    field public String SSID;
+    field public String capabilities;
     field public int centerFreq0;
     field public int centerFreq1;
     field public int channelWidth;
     field public int frequency;
     field public int level;
-    field public java.lang.CharSequence operatorFriendlyName;
+    field public CharSequence operatorFriendlyName;
     field public long timestamp;
-    field public java.lang.CharSequence venueName;
+    field public CharSequence venueName;
   }
 
-  public final class SupplicantState extends java.lang.Enum implements android.os.Parcelable {
+  public enum SupplicantState implements android.os.Parcelable {
     method public int describeContents();
     method public static boolean isValidState(android.net.wifi.SupplicantState);
-    method public static android.net.wifi.SupplicantState valueOf(java.lang.String);
-    method public static final android.net.wifi.SupplicantState[] values();
     method public void writeToParcel(android.os.Parcel, int);
     enum_constant public static final android.net.wifi.SupplicantState ASSOCIATED;
     enum_constant public static final android.net.wifi.SupplicantState ASSOCIATING;
@@ -29732,127 +29605,128 @@
     enum_constant public static final android.net.wifi.SupplicantState UNINITIALIZED;
   }
 
-  public deprecated class WifiConfiguration implements android.os.Parcelable {
-    ctor public WifiConfiguration();
+  @Deprecated public class WifiConfiguration implements android.os.Parcelable {
+    ctor @Deprecated public WifiConfiguration();
     method public int describeContents();
-    method public android.net.ProxyInfo getHttpProxy();
-    method public boolean isPasspoint();
-    method public void setHttpProxy(android.net.ProxyInfo);
+    method @Deprecated public android.net.ProxyInfo getHttpProxy();
+    method @Deprecated @NonNull public android.net.MacAddress getRandomizedMacAddress();
+    method @Deprecated public boolean isPasspoint();
+    method @Deprecated public void setHttpProxy(android.net.ProxyInfo);
     method public void writeToParcel(android.os.Parcel, int);
-    field public java.lang.String BSSID;
-    field public java.lang.String FQDN;
-    field public java.lang.String SSID;
-    field public java.util.BitSet allowedAuthAlgorithms;
-    field public java.util.BitSet allowedGroupCiphers;
-    field public java.util.BitSet allowedGroupManagementCiphers;
-    field public java.util.BitSet allowedKeyManagement;
-    field public java.util.BitSet allowedPairwiseCiphers;
-    field public java.util.BitSet allowedProtocols;
-    field public java.util.BitSet allowedSuiteBCiphers;
-    field public android.net.wifi.WifiEnterpriseConfig enterpriseConfig;
-    field public boolean hiddenSSID;
-    field public boolean isHomeProviderNetwork;
-    field public int networkId;
-    field public java.lang.String preSharedKey;
-    field public deprecated int priority;
-    field public java.lang.String providerFriendlyName;
-    field public long[] roamingConsortiumIds;
-    field public int status;
-    field public deprecated java.lang.String[] wepKeys;
-    field public deprecated int wepTxKeyIndex;
+    field @Deprecated public String BSSID;
+    field @Deprecated public String FQDN;
+    field @Deprecated public String SSID;
+    field @Deprecated public java.util.BitSet allowedAuthAlgorithms;
+    field @Deprecated public java.util.BitSet allowedGroupCiphers;
+    field @Deprecated public java.util.BitSet allowedGroupManagementCiphers;
+    field @Deprecated public java.util.BitSet allowedKeyManagement;
+    field @Deprecated public java.util.BitSet allowedPairwiseCiphers;
+    field @Deprecated public java.util.BitSet allowedProtocols;
+    field @Deprecated public java.util.BitSet allowedSuiteBCiphers;
+    field @Deprecated public android.net.wifi.WifiEnterpriseConfig enterpriseConfig;
+    field @Deprecated public boolean hiddenSSID;
+    field @Deprecated public boolean isHomeProviderNetwork;
+    field @Deprecated public int networkId;
+    field @Deprecated public String preSharedKey;
+    field @Deprecated public int priority;
+    field @Deprecated public String providerFriendlyName;
+    field @Deprecated public long[] roamingConsortiumIds;
+    field @Deprecated public int status;
+    field @Deprecated public String[] wepKeys;
+    field @Deprecated public int wepTxKeyIndex;
   }
 
-  public static class WifiConfiguration.AuthAlgorithm {
-    field public static final int LEAP = 2; // 0x2
-    field public static final int OPEN = 0; // 0x0
-    field public static final deprecated int SHARED = 1; // 0x1
-    field public static final java.lang.String[] strings;
-    field public static final java.lang.String varName = "auth_alg";
+  @Deprecated public static class WifiConfiguration.AuthAlgorithm {
+    field @Deprecated public static final int LEAP = 2; // 0x2
+    field @Deprecated public static final int OPEN = 0; // 0x0
+    field @Deprecated public static final int SHARED = 1; // 0x1
+    field @Deprecated public static final String[] strings;
+    field @Deprecated public static final String varName = "auth_alg";
   }
 
-  public static class WifiConfiguration.GroupCipher {
-    field public static final int CCMP = 3; // 0x3
-    field public static final int GCMP_256 = 5; // 0x5
-    field public static final int TKIP = 2; // 0x2
-    field public static final deprecated int WEP104 = 1; // 0x1
-    field public static final deprecated int WEP40 = 0; // 0x0
-    field public static final java.lang.String[] strings;
-    field public static final java.lang.String varName = "group";
+  @Deprecated public static class WifiConfiguration.GroupCipher {
+    field @Deprecated public static final int CCMP = 3; // 0x3
+    field @Deprecated public static final int GCMP_256 = 5; // 0x5
+    field @Deprecated public static final int TKIP = 2; // 0x2
+    field @Deprecated public static final int WEP104 = 1; // 0x1
+    field @Deprecated public static final int WEP40 = 0; // 0x0
+    field @Deprecated public static final String[] strings;
+    field @Deprecated public static final String varName = "group";
   }
 
-  public static class WifiConfiguration.GroupMgmtCipher {
-    field public static final int BIP_CMAC_256 = 0; // 0x0
-    field public static final int BIP_GMAC_128 = 1; // 0x1
-    field public static final int BIP_GMAC_256 = 2; // 0x2
+  @Deprecated public static class WifiConfiguration.GroupMgmtCipher {
+    field @Deprecated public static final int BIP_CMAC_256 = 0; // 0x0
+    field @Deprecated public static final int BIP_GMAC_128 = 1; // 0x1
+    field @Deprecated public static final int BIP_GMAC_256 = 2; // 0x2
   }
 
-  public static class WifiConfiguration.KeyMgmt {
-    field public static final int IEEE8021X = 3; // 0x3
-    field public static final int NONE = 0; // 0x0
-    field public static final int OWE = 9; // 0x9
-    field public static final int SAE = 8; // 0x8
-    field public static final int SUITE_B_192 = 10; // 0xa
-    field public static final int WPA_EAP = 2; // 0x2
-    field public static final int WPA_PSK = 1; // 0x1
-    field public static final java.lang.String[] strings;
-    field public static final java.lang.String varName = "key_mgmt";
+  @Deprecated public static class WifiConfiguration.KeyMgmt {
+    field @Deprecated public static final int IEEE8021X = 3; // 0x3
+    field @Deprecated public static final int NONE = 0; // 0x0
+    field @Deprecated public static final int OWE = 9; // 0x9
+    field @Deprecated public static final int SAE = 8; // 0x8
+    field @Deprecated public static final int SUITE_B_192 = 10; // 0xa
+    field @Deprecated public static final int WPA_EAP = 2; // 0x2
+    field @Deprecated public static final int WPA_PSK = 1; // 0x1
+    field @Deprecated public static final String[] strings;
+    field @Deprecated public static final String varName = "key_mgmt";
   }
 
-  public static class WifiConfiguration.PairwiseCipher {
-    field public static final int CCMP = 2; // 0x2
-    field public static final int GCMP_256 = 3; // 0x3
-    field public static final int NONE = 0; // 0x0
-    field public static final deprecated int TKIP = 1; // 0x1
-    field public static final java.lang.String[] strings;
-    field public static final java.lang.String varName = "pairwise";
+  @Deprecated public static class WifiConfiguration.PairwiseCipher {
+    field @Deprecated public static final int CCMP = 2; // 0x2
+    field @Deprecated public static final int GCMP_256 = 3; // 0x3
+    field @Deprecated public static final int NONE = 0; // 0x0
+    field @Deprecated public static final int TKIP = 1; // 0x1
+    field @Deprecated public static final String[] strings;
+    field @Deprecated public static final String varName = "pairwise";
   }
 
-  public static class WifiConfiguration.Protocol {
-    field public static final int RSN = 1; // 0x1
-    field public static final deprecated int WPA = 0; // 0x0
-    field public static final java.lang.String[] strings;
-    field public static final java.lang.String varName = "proto";
+  @Deprecated public static class WifiConfiguration.Protocol {
+    field @Deprecated public static final int RSN = 1; // 0x1
+    field @Deprecated public static final int WPA = 0; // 0x0
+    field @Deprecated public static final String[] strings;
+    field @Deprecated public static final String varName = "proto";
   }
 
-  public static class WifiConfiguration.Status {
-    field public static final int CURRENT = 0; // 0x0
-    field public static final int DISABLED = 1; // 0x1
-    field public static final int ENABLED = 2; // 0x2
-    field public static final java.lang.String[] strings;
+  @Deprecated public static class WifiConfiguration.Status {
+    field @Deprecated public static final int CURRENT = 0; // 0x0
+    field @Deprecated public static final int DISABLED = 1; // 0x1
+    field @Deprecated public static final int ENABLED = 2; // 0x2
+    field @Deprecated public static final String[] strings;
   }
 
   public class WifiEnterpriseConfig implements android.os.Parcelable {
     ctor public WifiEnterpriseConfig();
     ctor public WifiEnterpriseConfig(android.net.wifi.WifiEnterpriseConfig);
     method public int describeContents();
-    method public java.lang.String getAltSubjectMatch();
-    method public java.lang.String getAnonymousIdentity();
-    method public java.security.cert.X509Certificate getCaCertificate();
-    method public java.security.cert.X509Certificate[] getCaCertificates();
+    method public String getAltSubjectMatch();
+    method public String getAnonymousIdentity();
+    method @Nullable public java.security.cert.X509Certificate getCaCertificate();
+    method @Nullable public java.security.cert.X509Certificate[] getCaCertificates();
     method public java.security.cert.X509Certificate getClientCertificate();
-    method public java.security.cert.X509Certificate[] getClientCertificateChain();
-    method public java.lang.String getDomainSuffixMatch();
+    method @Nullable public java.security.cert.X509Certificate[] getClientCertificateChain();
+    method public String getDomainSuffixMatch();
     method public int getEapMethod();
-    method public java.lang.String getIdentity();
-    method public java.lang.String getPassword();
+    method public String getIdentity();
+    method public String getPassword();
     method public int getPhase2Method();
-    method public java.lang.String getPlmn();
-    method public java.lang.String getRealm();
-    method public deprecated java.lang.String getSubjectMatch();
-    method public void setAltSubjectMatch(java.lang.String);
-    method public void setAnonymousIdentity(java.lang.String);
-    method public void setCaCertificate(java.security.cert.X509Certificate);
-    method public void setCaCertificates(java.security.cert.X509Certificate[]);
+    method public String getPlmn();
+    method public String getRealm();
+    method @Deprecated public String getSubjectMatch();
+    method public void setAltSubjectMatch(String);
+    method public void setAnonymousIdentity(String);
+    method public void setCaCertificate(@Nullable java.security.cert.X509Certificate);
+    method public void setCaCertificates(@Nullable java.security.cert.X509Certificate[]);
     method public void setClientKeyEntry(java.security.PrivateKey, java.security.cert.X509Certificate);
     method public void setClientKeyEntryWithCertificateChain(java.security.PrivateKey, java.security.cert.X509Certificate[]);
-    method public void setDomainSuffixMatch(java.lang.String);
+    method public void setDomainSuffixMatch(String);
     method public void setEapMethod(int);
-    method public void setIdentity(java.lang.String);
-    method public void setPassword(java.lang.String);
+    method public void setIdentity(String);
+    method public void setPassword(String);
     method public void setPhase2Method(int);
-    method public void setPlmn(java.lang.String);
-    method public void setRealm(java.lang.String);
-    method public deprecated void setSubjectMatch(java.lang.String);
+    method public void setPlmn(String);
+    method public void setRealm(String);
+    method @Deprecated public void setSubjectMatch(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.wifi.WifiEnterpriseConfig> CREATOR;
   }
@@ -29882,112 +29756,112 @@
 
   public class WifiInfo implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getBSSID();
+    method public String getBSSID();
     method public static android.net.NetworkInfo.DetailedState getDetailedStateOf(android.net.wifi.SupplicantState);
     method public int getFrequency();
     method public boolean getHiddenSSID();
     method public int getIpAddress();
     method public int getLinkSpeed();
-    method public java.lang.String getMacAddress();
+    method public String getMacAddress();
     method public int getNetworkId();
     method public int getRssi();
     method public int getRxLinkSpeedMbps();
-    method public java.lang.String getSSID();
+    method public String getSSID();
     method public android.net.wifi.SupplicantState getSupplicantState();
     method public int getTxLinkSpeedMbps();
     method public void writeToParcel(android.os.Parcel, int);
-    field public static final java.lang.String FREQUENCY_UNITS = "MHz";
-    field public static final java.lang.String LINK_SPEED_UNITS = "Mbps";
+    field public static final String FREQUENCY_UNITS = "MHz";
+    field public static final String LINK_SPEED_UNITS = "Mbps";
   }
 
   public class WifiManager {
-    method public deprecated int addNetwork(android.net.wifi.WifiConfiguration);
-    method public int addNetworkSuggestions(java.util.List<android.net.wifi.WifiNetworkSuggestion>);
+    method @Deprecated public int addNetwork(android.net.wifi.WifiConfiguration);
+    method @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE) public int addNetworkSuggestions(@NonNull java.util.List<android.net.wifi.WifiNetworkSuggestion>);
     method public void addOrUpdatePasspointConfiguration(android.net.wifi.hotspot2.PasspointConfiguration);
     method public static int calculateSignalLevel(int, int);
-    method public deprecated void cancelWps(android.net.wifi.WifiManager.WpsCallback);
+    method @Deprecated public void cancelWps(android.net.wifi.WifiManager.WpsCallback);
     method public static int compareSignalLevel(int, int);
-    method public android.net.wifi.WifiManager.MulticastLock createMulticastLock(java.lang.String);
-    method public android.net.wifi.WifiManager.WifiLock createWifiLock(int, java.lang.String);
-    method public deprecated android.net.wifi.WifiManager.WifiLock createWifiLock(java.lang.String);
-    method public deprecated boolean disableNetwork(int);
-    method public deprecated boolean disconnect();
-    method public deprecated boolean enableNetwork(int, boolean);
-    method public deprecated java.util.List<android.net.wifi.WifiConfiguration> getConfiguredNetworks();
+    method public android.net.wifi.WifiManager.MulticastLock createMulticastLock(String);
+    method public android.net.wifi.WifiManager.WifiLock createWifiLock(int, String);
+    method @Deprecated public android.net.wifi.WifiManager.WifiLock createWifiLock(String);
+    method @Deprecated public boolean disableNetwork(int);
+    method @Deprecated public boolean disconnect();
+    method @Deprecated public boolean enableNetwork(int, boolean);
+    method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_WIFI_STATE}) public java.util.List<android.net.wifi.WifiConfiguration> getConfiguredNetworks();
     method public android.net.wifi.WifiInfo getConnectionInfo();
     method public android.net.DhcpInfo getDhcpInfo();
     method public int getMaxNumberOfNetworkSuggestionsPerApp();
-    method public deprecated java.util.List<android.net.wifi.hotspot2.PasspointConfiguration> getPasspointConfigurations();
+    method @Deprecated @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", "android.permission.NETWORK_SETUP_WIZARD"}) public java.util.List<android.net.wifi.hotspot2.PasspointConfiguration> getPasspointConfigurations();
     method public java.util.List<android.net.wifi.ScanResult> getScanResults();
     method public int getWifiState();
     method public boolean is5GHzBandSupported();
     method public boolean isDeviceToApRttSupported();
-    method public boolean isDppSupported();
+    method public boolean isEasyConnectSupported();
     method public boolean isEnhancedPowerReportingSupported();
     method public boolean isOweSupported();
     method public boolean isP2pSupported();
     method public boolean isPreferredNetworkOffloadSupported();
-    method public deprecated boolean isScanAlwaysAvailable();
+    method @Deprecated public boolean isScanAlwaysAvailable();
     method public boolean isTdlsSupported();
     method public boolean isWifiEnabled();
     method public boolean isWpa3SaeSupported();
     method public boolean isWpa3SuiteBSupported();
-    method public deprecated boolean pingSupplicant();
-    method public deprecated boolean reassociate();
-    method public deprecated boolean reconnect();
-    method public deprecated boolean removeNetwork(int);
-    method public int removeNetworkSuggestions(java.util.List<android.net.wifi.WifiNetworkSuggestion>);
-    method public deprecated void removePasspointConfiguration(java.lang.String);
-    method public deprecated boolean saveConfiguration();
+    method @Deprecated public boolean pingSupplicant();
+    method @Deprecated public boolean reassociate();
+    method @Deprecated public boolean reconnect();
+    method @Deprecated public boolean removeNetwork(int);
+    method @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE) public int removeNetworkSuggestions(@NonNull java.util.List<android.net.wifi.WifiNetworkSuggestion>);
+    method @Deprecated @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", "android.permission.NETWORK_SETUP_WIZARD"}) public void removePasspointConfiguration(String);
+    method @Deprecated public boolean saveConfiguration();
     method public void setTdlsEnabled(java.net.InetAddress, boolean);
-    method public void setTdlsEnabledWithMacAddress(java.lang.String, boolean);
-    method public deprecated boolean setWifiEnabled(boolean);
-    method public void startLocalOnlyHotspot(android.net.wifi.WifiManager.LocalOnlyHotspotCallback, android.os.Handler);
-    method public deprecated boolean startScan();
-    method public deprecated void startWps(android.net.wifi.WpsInfo, android.net.wifi.WifiManager.WpsCallback);
-    method public deprecated int updateNetwork(android.net.wifi.WifiConfiguration);
-    field public static final java.lang.String ACTION_PICK_WIFI_NETWORK = "android.net.wifi.PICK_WIFI_NETWORK";
-    field public static final java.lang.String ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE = "android.net.wifi.action.REQUEST_SCAN_ALWAYS_AVAILABLE";
-    field public static final java.lang.String ACTION_WIFI_NETWORK_SUGGESTION_POST_CONNECTION = "android.net.wifi.action.WIFI_NETWORK_SUGGESTION_POST_CONNECTION";
-    field public static final deprecated int ERROR_AUTHENTICATING = 1; // 0x1
-    field public static final deprecated java.lang.String EXTRA_BSSID = "bssid";
-    field public static final java.lang.String EXTRA_NETWORK_INFO = "networkInfo";
-    field public static final java.lang.String EXTRA_NETWORK_SUGGESTION = "android.net.wifi.extra.NETWORK_SUGGESTION";
-    field public static final java.lang.String EXTRA_NEW_RSSI = "newRssi";
-    field public static final deprecated java.lang.String EXTRA_NEW_STATE = "newState";
-    field public static final java.lang.String EXTRA_PREVIOUS_WIFI_STATE = "previous_wifi_state";
-    field public static final java.lang.String EXTRA_RESULTS_UPDATED = "resultsUpdated";
-    field public static final deprecated java.lang.String EXTRA_SUPPLICANT_CONNECTED = "connected";
-    field public static final deprecated java.lang.String EXTRA_SUPPLICANT_ERROR = "supplicantError";
-    field public static final deprecated java.lang.String EXTRA_WIFI_INFO = "wifiInfo";
-    field public static final java.lang.String EXTRA_WIFI_STATE = "wifi_state";
-    field public static final java.lang.String NETWORK_IDS_CHANGED_ACTION = "android.net.wifi.NETWORK_IDS_CHANGED";
-    field public static final java.lang.String NETWORK_STATE_CHANGED_ACTION = "android.net.wifi.STATE_CHANGE";
-    field public static final java.lang.String RSSI_CHANGED_ACTION = "android.net.wifi.RSSI_CHANGED";
-    field public static final java.lang.String SCAN_RESULTS_AVAILABLE_ACTION = "android.net.wifi.SCAN_RESULTS";
+    method public void setTdlsEnabledWithMacAddress(String, boolean);
+    method @Deprecated public boolean setWifiEnabled(boolean);
+    method public void startLocalOnlyHotspot(android.net.wifi.WifiManager.LocalOnlyHotspotCallback, @Nullable android.os.Handler);
+    method @Deprecated public boolean startScan();
+    method @Deprecated public void startWps(android.net.wifi.WpsInfo, android.net.wifi.WifiManager.WpsCallback);
+    method @Deprecated public int updateNetwork(android.net.wifi.WifiConfiguration);
+    field public static final String ACTION_PICK_WIFI_NETWORK = "android.net.wifi.PICK_WIFI_NETWORK";
+    field public static final String ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE = "android.net.wifi.action.REQUEST_SCAN_ALWAYS_AVAILABLE";
+    field public static final String ACTION_WIFI_NETWORK_SUGGESTION_POST_CONNECTION = "android.net.wifi.action.WIFI_NETWORK_SUGGESTION_POST_CONNECTION";
+    field @Deprecated public static final int ERROR_AUTHENTICATING = 1; // 0x1
+    field @Deprecated public static final String EXTRA_BSSID = "bssid";
+    field public static final String EXTRA_NETWORK_INFO = "networkInfo";
+    field public static final String EXTRA_NETWORK_SUGGESTION = "android.net.wifi.extra.NETWORK_SUGGESTION";
+    field public static final String EXTRA_NEW_RSSI = "newRssi";
+    field @Deprecated public static final String EXTRA_NEW_STATE = "newState";
+    field public static final String EXTRA_PREVIOUS_WIFI_STATE = "previous_wifi_state";
+    field public static final String EXTRA_RESULTS_UPDATED = "resultsUpdated";
+    field @Deprecated public static final String EXTRA_SUPPLICANT_CONNECTED = "connected";
+    field @Deprecated public static final String EXTRA_SUPPLICANT_ERROR = "supplicantError";
+    field @Deprecated public static final String EXTRA_WIFI_INFO = "wifiInfo";
+    field public static final String EXTRA_WIFI_STATE = "wifi_state";
+    field public static final String NETWORK_IDS_CHANGED_ACTION = "android.net.wifi.NETWORK_IDS_CHANGED";
+    field public static final String NETWORK_STATE_CHANGED_ACTION = "android.net.wifi.STATE_CHANGE";
+    field public static final String RSSI_CHANGED_ACTION = "android.net.wifi.RSSI_CHANGED";
+    field public static final String SCAN_RESULTS_AVAILABLE_ACTION = "android.net.wifi.SCAN_RESULTS";
     field public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_DUPLICATE = 3; // 0x3
     field public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_EXCEEDS_MAX_PER_APP = 4; // 0x4
     field public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_APP_DISALLOWED = 2; // 0x2
     field public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL = 1; // 0x1
     field public static final int STATUS_NETWORK_SUGGESTIONS_ERROR_REMOVE_INVALID = 5; // 0x5
     field public static final int STATUS_NETWORK_SUGGESTIONS_SUCCESS = 0; // 0x0
-    field public static final deprecated java.lang.String SUPPLICANT_CONNECTION_CHANGE_ACTION = "android.net.wifi.supplicant.CONNECTION_CHANGE";
-    field public static final deprecated java.lang.String SUPPLICANT_STATE_CHANGED_ACTION = "android.net.wifi.supplicant.STATE_CHANGE";
-    field public static final deprecated int WIFI_MODE_FULL = 1; // 0x1
+    field @Deprecated public static final String SUPPLICANT_CONNECTION_CHANGE_ACTION = "android.net.wifi.supplicant.CONNECTION_CHANGE";
+    field @Deprecated public static final String SUPPLICANT_STATE_CHANGED_ACTION = "android.net.wifi.supplicant.STATE_CHANGE";
+    field @Deprecated public static final int WIFI_MODE_FULL = 1; // 0x1
     field public static final int WIFI_MODE_FULL_HIGH_PERF = 3; // 0x3
     field public static final int WIFI_MODE_FULL_LOW_LATENCY = 4; // 0x4
-    field public static final deprecated int WIFI_MODE_SCAN_ONLY = 2; // 0x2
-    field public static final java.lang.String WIFI_STATE_CHANGED_ACTION = "android.net.wifi.WIFI_STATE_CHANGED";
+    field @Deprecated public static final int WIFI_MODE_SCAN_ONLY = 2; // 0x2
+    field public static final String WIFI_STATE_CHANGED_ACTION = "android.net.wifi.WIFI_STATE_CHANGED";
     field public static final int WIFI_STATE_DISABLED = 1; // 0x1
     field public static final int WIFI_STATE_DISABLING = 0; // 0x0
     field public static final int WIFI_STATE_ENABLED = 3; // 0x3
     field public static final int WIFI_STATE_ENABLING = 2; // 0x2
     field public static final int WIFI_STATE_UNKNOWN = 4; // 0x4
-    field public static final deprecated int WPS_AUTH_FAILURE = 6; // 0x6
-    field public static final deprecated int WPS_OVERLAP_ERROR = 3; // 0x3
-    field public static final deprecated int WPS_TIMED_OUT = 7; // 0x7
-    field public static final deprecated int WPS_TKIP_ONLY_PROHIBITED = 5; // 0x5
-    field public static final deprecated int WPS_WEP_PROHIBITED = 4; // 0x4
+    field @Deprecated public static final int WPS_AUTH_FAILURE = 6; // 0x6
+    field @Deprecated public static final int WPS_OVERLAP_ERROR = 3; // 0x3
+    field @Deprecated public static final int WPS_TIMED_OUT = 7; // 0x7
+    field @Deprecated public static final int WPS_TKIP_ONLY_PROHIBITED = 5; // 0x5
+    field @Deprecated public static final int WPS_WEP_PROHIBITED = 4; // 0x4
   }
 
   public static class WifiManager.LocalOnlyHotspotCallback {
@@ -30021,31 +29895,31 @@
     method public void setWorkSource(android.os.WorkSource);
   }
 
-  public static abstract deprecated class WifiManager.WpsCallback {
-    ctor public WifiManager.WpsCallback();
-    method public abstract deprecated void onFailed(int);
-    method public abstract deprecated void onStarted(java.lang.String);
-    method public abstract deprecated void onSucceeded();
+  @Deprecated public abstract static class WifiManager.WpsCallback {
+    ctor @Deprecated public WifiManager.WpsCallback();
+    method @Deprecated public abstract void onFailed(int);
+    method @Deprecated public abstract void onStarted(String);
+    method @Deprecated public abstract void onSucceeded();
   }
 
   public class WifiNetworkConfigBuilder {
     ctor public WifiNetworkConfigBuilder();
     method public android.net.NetworkSpecifier buildNetworkSpecifier();
     method public android.net.wifi.WifiNetworkSuggestion buildNetworkSuggestion();
-    method public android.net.wifi.WifiNetworkConfigBuilder setBssid(android.net.MacAddress);
-    method public android.net.wifi.WifiNetworkConfigBuilder setBssidPattern(android.net.MacAddress, android.net.MacAddress);
+    method public android.net.wifi.WifiNetworkConfigBuilder setBssid(@NonNull android.net.MacAddress);
+    method public android.net.wifi.WifiNetworkConfigBuilder setBssidPattern(@NonNull android.net.MacAddress, @NonNull android.net.MacAddress);
     method public android.net.wifi.WifiNetworkConfigBuilder setIsAppInteractionRequired();
     method public android.net.wifi.WifiNetworkConfigBuilder setIsEnhancedOpen();
     method public android.net.wifi.WifiNetworkConfigBuilder setIsHiddenSsid();
     method public android.net.wifi.WifiNetworkConfigBuilder setIsMetered();
     method public android.net.wifi.WifiNetworkConfigBuilder setIsUserInteractionRequired();
     method public android.net.wifi.WifiNetworkConfigBuilder setPriority(int);
-    method public android.net.wifi.WifiNetworkConfigBuilder setSsid(java.lang.String);
-    method public android.net.wifi.WifiNetworkConfigBuilder setSsidPattern(android.os.PatternMatcher);
-    method public android.net.wifi.WifiNetworkConfigBuilder setWpa2EnterpriseConfig(android.net.wifi.WifiEnterpriseConfig);
-    method public android.net.wifi.WifiNetworkConfigBuilder setWpa2Passphrase(java.lang.String);
-    method public android.net.wifi.WifiNetworkConfigBuilder setWpa3EnterpriseConfig(android.net.wifi.WifiEnterpriseConfig);
-    method public android.net.wifi.WifiNetworkConfigBuilder setWpa3Passphrase(java.lang.String);
+    method public android.net.wifi.WifiNetworkConfigBuilder setSsid(@NonNull String);
+    method public android.net.wifi.WifiNetworkConfigBuilder setSsidPattern(@NonNull android.os.PatternMatcher);
+    method public android.net.wifi.WifiNetworkConfigBuilder setWpa2EnterpriseConfig(@NonNull android.net.wifi.WifiEnterpriseConfig);
+    method public android.net.wifi.WifiNetworkConfigBuilder setWpa2Passphrase(@NonNull String);
+    method public android.net.wifi.WifiNetworkConfigBuilder setWpa3EnterpriseConfig(@NonNull android.net.wifi.WifiEnterpriseConfig);
+    method public android.net.wifi.WifiNetworkConfigBuilder setWpa3Passphrase(@NonNull String);
   }
 
   public final class WifiNetworkSuggestion implements android.os.Parcelable {
@@ -30059,14 +29933,14 @@
     ctor public WpsInfo(android.net.wifi.WpsInfo);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
-    field public java.lang.String BSSID;
+    field public String BSSID;
     field public static final android.os.Parcelable.Creator<android.net.wifi.WpsInfo> CREATOR;
     field public static final int DISPLAY = 1; // 0x1
     field public static final int INVALID = 4; // 0x4
     field public static final int KEYPAD = 2; // 0x2
     field public static final int LABEL = 3; // 0x3
     field public static final int PBC = 0; // 0x0
-    field public java.lang.String pin;
+    field public String pin;
     field public int setup;
   }
 
@@ -30091,9 +29965,9 @@
 
   public class DiscoverySession implements java.lang.AutoCloseable {
     method public void close();
-    method public deprecated android.net.NetworkSpecifier createNetworkSpecifierOpen(android.net.wifi.aware.PeerHandle);
-    method public deprecated android.net.NetworkSpecifier createNetworkSpecifierPassphrase(android.net.wifi.aware.PeerHandle, java.lang.String);
-    method public void sendMessage(android.net.wifi.aware.PeerHandle, int, byte[]);
+    method @Deprecated public android.net.NetworkSpecifier createNetworkSpecifierOpen(@NonNull android.net.wifi.aware.PeerHandle);
+    method @Deprecated public android.net.NetworkSpecifier createNetworkSpecifierPassphrase(@NonNull android.net.wifi.aware.PeerHandle, @NonNull String);
+    method public void sendMessage(@NonNull android.net.wifi.aware.PeerHandle, int, @Nullable byte[]);
   }
 
   public class DiscoverySessionCallback {
@@ -30101,13 +29975,13 @@
     method public void onMessageReceived(android.net.wifi.aware.PeerHandle, byte[]);
     method public void onMessageSendFailed(int);
     method public void onMessageSendSucceeded(int);
-    method public void onPublishStarted(android.net.wifi.aware.PublishDiscoverySession);
+    method public void onPublishStarted(@NonNull android.net.wifi.aware.PublishDiscoverySession);
     method public void onServiceDiscovered(android.net.wifi.aware.PeerHandle, byte[], java.util.List<byte[]>);
     method public void onServiceDiscoveredWithinRange(android.net.wifi.aware.PeerHandle, byte[], java.util.List<byte[]>, int);
     method public void onSessionConfigFailed();
     method public void onSessionConfigUpdated();
     method public void onSessionTerminated();
-    method public void onSubscribeStarted(android.net.wifi.aware.SubscribeDiscoverySession);
+    method public void onSubscribeStarted(@NonNull android.net.wifi.aware.SubscribeDiscoverySession);
   }
 
   public class IdentityChangedListener {
@@ -30132,17 +30006,17 @@
   public static final class PublishConfig.Builder {
     ctor public PublishConfig.Builder();
     method public android.net.wifi.aware.PublishConfig build();
-    method public android.net.wifi.aware.PublishConfig.Builder setMatchFilter(java.util.List<byte[]>);
+    method public android.net.wifi.aware.PublishConfig.Builder setMatchFilter(@Nullable java.util.List<byte[]>);
     method public android.net.wifi.aware.PublishConfig.Builder setPublishType(int);
     method public android.net.wifi.aware.PublishConfig.Builder setRangingEnabled(boolean);
-    method public android.net.wifi.aware.PublishConfig.Builder setServiceName(java.lang.String);
-    method public android.net.wifi.aware.PublishConfig.Builder setServiceSpecificInfo(byte[]);
+    method public android.net.wifi.aware.PublishConfig.Builder setServiceName(@NonNull String);
+    method public android.net.wifi.aware.PublishConfig.Builder setServiceSpecificInfo(@Nullable byte[]);
     method public android.net.wifi.aware.PublishConfig.Builder setTerminateNotificationEnabled(boolean);
     method public android.net.wifi.aware.PublishConfig.Builder setTtlSec(int);
   }
 
   public class PublishDiscoverySession extends android.net.wifi.aware.DiscoverySession {
-    method public void updatePublish(android.net.wifi.aware.PublishConfig);
+    method public void updatePublish(@NonNull android.net.wifi.aware.PublishConfig);
   }
 
   public final class SubscribeConfig implements android.os.Parcelable {
@@ -30156,43 +30030,43 @@
   public static final class SubscribeConfig.Builder {
     ctor public SubscribeConfig.Builder();
     method public android.net.wifi.aware.SubscribeConfig build();
-    method public android.net.wifi.aware.SubscribeConfig.Builder setMatchFilter(java.util.List<byte[]>);
+    method public android.net.wifi.aware.SubscribeConfig.Builder setMatchFilter(@Nullable java.util.List<byte[]>);
     method public android.net.wifi.aware.SubscribeConfig.Builder setMaxDistanceMm(int);
     method public android.net.wifi.aware.SubscribeConfig.Builder setMinDistanceMm(int);
-    method public android.net.wifi.aware.SubscribeConfig.Builder setServiceName(java.lang.String);
-    method public android.net.wifi.aware.SubscribeConfig.Builder setServiceSpecificInfo(byte[]);
+    method public android.net.wifi.aware.SubscribeConfig.Builder setServiceName(@NonNull String);
+    method public android.net.wifi.aware.SubscribeConfig.Builder setServiceSpecificInfo(@Nullable byte[]);
     method public android.net.wifi.aware.SubscribeConfig.Builder setSubscribeType(int);
     method public android.net.wifi.aware.SubscribeConfig.Builder setTerminateNotificationEnabled(boolean);
     method public android.net.wifi.aware.SubscribeConfig.Builder setTtlSec(int);
   }
 
   public class SubscribeDiscoverySession extends android.net.wifi.aware.DiscoverySession {
-    method public void updateSubscribe(android.net.wifi.aware.SubscribeConfig);
+    method public void updateSubscribe(@NonNull android.net.wifi.aware.SubscribeConfig);
   }
 
   public class WifiAwareManager {
-    method public void attach(android.net.wifi.aware.AttachCallback, android.os.Handler);
-    method public void attach(android.net.wifi.aware.AttachCallback, android.net.wifi.aware.IdentityChangedListener, android.os.Handler);
+    method public void attach(@NonNull android.net.wifi.aware.AttachCallback, @Nullable android.os.Handler);
+    method public void attach(@NonNull android.net.wifi.aware.AttachCallback, @NonNull android.net.wifi.aware.IdentityChangedListener, @Nullable android.os.Handler);
     method public android.net.wifi.aware.Characteristics getCharacteristics();
     method public boolean isAvailable();
-    field public static final java.lang.String ACTION_WIFI_AWARE_STATE_CHANGED = "android.net.wifi.aware.action.WIFI_AWARE_STATE_CHANGED";
+    field public static final String ACTION_WIFI_AWARE_STATE_CHANGED = "android.net.wifi.aware.action.WIFI_AWARE_STATE_CHANGED";
     field public static final int WIFI_AWARE_DATA_PATH_ROLE_INITIATOR = 0; // 0x0
     field public static final int WIFI_AWARE_DATA_PATH_ROLE_RESPONDER = 1; // 0x1
   }
 
   public static class WifiAwareManager.NetworkSpecifierBuilder {
     ctor public WifiAwareManager.NetworkSpecifierBuilder();
-    method public android.net.NetworkSpecifier build();
-    method public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setDiscoverySession(android.net.wifi.aware.DiscoverySession);
-    method public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setPeerHandle(android.net.wifi.aware.PeerHandle);
-    method public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setPort(int);
-    method public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setPskPassphrase(java.lang.String);
-    method public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setTransportProtocol(int);
+    method @NonNull public android.net.NetworkSpecifier build();
+    method @NonNull public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setDiscoverySession(@NonNull android.net.wifi.aware.DiscoverySession);
+    method @NonNull public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setPeerHandle(@NonNull android.net.wifi.aware.PeerHandle);
+    method @NonNull public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setPort(int);
+    method @NonNull public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setPskPassphrase(@NonNull String);
+    method @NonNull public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setTransportProtocol(int);
   }
 
   public final class WifiAwareNetworkInfo implements android.os.Parcelable android.net.TransportInfo {
     method public int describeContents();
-    method public java.net.Inet6Address getPeerIpv6Addr();
+    method @Nullable public java.net.Inet6Address getPeerIpv6Addr();
     method public int getPort();
     method public int getTransportProtocol();
     method public void writeToParcel(android.os.Parcel, int);
@@ -30201,10 +30075,10 @@
 
   public class WifiAwareSession implements java.lang.AutoCloseable {
     method public void close();
-    method public android.net.NetworkSpecifier createNetworkSpecifierOpen(int, byte[]);
-    method public android.net.NetworkSpecifier createNetworkSpecifierPassphrase(int, byte[], java.lang.String);
-    method public void publish(android.net.wifi.aware.PublishConfig, android.net.wifi.aware.DiscoverySessionCallback, android.os.Handler);
-    method public void subscribe(android.net.wifi.aware.SubscribeConfig, android.net.wifi.aware.DiscoverySessionCallback, android.os.Handler);
+    method public android.net.NetworkSpecifier createNetworkSpecifierOpen(int, @NonNull byte[]);
+    method public android.net.NetworkSpecifier createNetworkSpecifierPassphrase(int, @NonNull byte[], @NonNull String);
+    method public void publish(@NonNull android.net.wifi.aware.PublishConfig, @NonNull android.net.wifi.aware.DiscoverySessionCallback, @Nullable android.os.Handler);
+    method public void subscribe(@NonNull android.net.wifi.aware.SubscribeConfig, @NonNull android.net.wifi.aware.DiscoverySessionCallback, @Nullable android.os.Handler);
   }
 
 }
@@ -30212,7 +30086,7 @@
 package android.net.wifi.hotspot2 {
 
   public final class ConfigParser {
-    method public static android.net.wifi.hotspot2.PasspointConfiguration parsePasspointConfig(java.lang.String, byte[]);
+    method public static android.net.wifi.hotspot2.PasspointConfiguration parsePasspointConfig(String, byte[]);
   }
 
   public final class PasspointConfiguration implements android.os.Parcelable {
@@ -30232,7 +30106,7 @@
 package android.net.wifi.hotspot2.omadm {
 
   public final class PpsMoParser {
-    method public static android.net.wifi.hotspot2.PasspointConfiguration parseMoText(java.lang.String);
+    method public static android.net.wifi.hotspot2.PasspointConfiguration parseMoText(String);
   }
 
 }
@@ -30247,14 +30121,14 @@
     method public android.net.wifi.hotspot2.pps.Credential.CertificateCredential getCertCredential();
     method public java.security.cert.X509Certificate[] getClientCertificateChain();
     method public java.security.PrivateKey getClientPrivateKey();
-    method public java.lang.String getRealm();
+    method public String getRealm();
     method public android.net.wifi.hotspot2.pps.Credential.SimCredential getSimCredential();
     method public android.net.wifi.hotspot2.pps.Credential.UserCredential getUserCredential();
     method public void setCaCertificate(java.security.cert.X509Certificate);
     method public void setCertCredential(android.net.wifi.hotspot2.pps.Credential.CertificateCredential);
     method public void setClientCertificateChain(java.security.cert.X509Certificate[]);
     method public void setClientPrivateKey(java.security.PrivateKey);
-    method public void setRealm(java.lang.String);
+    method public void setRealm(String);
     method public void setSimCredential(android.net.wifi.hotspot2.pps.Credential.SimCredential);
     method public void setUserCredential(android.net.wifi.hotspot2.pps.Credential.UserCredential);
     method public void writeToParcel(android.os.Parcel, int);
@@ -30266,9 +30140,9 @@
     ctor public Credential.CertificateCredential(android.net.wifi.hotspot2.pps.Credential.CertificateCredential);
     method public int describeContents();
     method public byte[] getCertSha256Fingerprint();
-    method public java.lang.String getCertType();
+    method public String getCertType();
     method public void setCertSha256Fingerprint(byte[]);
-    method public void setCertType(java.lang.String);
+    method public void setCertType(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.CertificateCredential> CREATOR;
   }
@@ -30278,9 +30152,9 @@
     ctor public Credential.SimCredential(android.net.wifi.hotspot2.pps.Credential.SimCredential);
     method public int describeContents();
     method public int getEapType();
-    method public java.lang.String getImsi();
+    method public String getImsi();
     method public void setEapType(int);
-    method public void setImsi(java.lang.String);
+    method public void setImsi(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.SimCredential> CREATOR;
   }
@@ -30290,13 +30164,13 @@
     ctor public Credential.UserCredential(android.net.wifi.hotspot2.pps.Credential.UserCredential);
     method public int describeContents();
     method public int getEapType();
-    method public java.lang.String getNonEapInnerMethod();
-    method public java.lang.String getPassword();
-    method public java.lang.String getUsername();
+    method public String getNonEapInnerMethod();
+    method public String getPassword();
+    method public String getUsername();
     method public void setEapType(int);
-    method public void setNonEapInnerMethod(java.lang.String);
-    method public void setPassword(java.lang.String);
-    method public void setUsername(java.lang.String);
+    method public void setNonEapInnerMethod(String);
+    method public void setPassword(String);
+    method public void setUsername(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.Credential.UserCredential> CREATOR;
   }
@@ -30305,11 +30179,11 @@
     ctor public HomeSp();
     ctor public HomeSp(android.net.wifi.hotspot2.pps.HomeSp);
     method public int describeContents();
-    method public java.lang.String getFqdn();
-    method public java.lang.String getFriendlyName();
+    method public String getFqdn();
+    method public String getFriendlyName();
     method public long[] getRoamingConsortiumOis();
-    method public void setFqdn(java.lang.String);
-    method public void setFriendlyName(java.lang.String);
+    method public void setFqdn(String);
+    method public void setFriendlyName(String);
     method public void setRoamingConsortiumOis(long[]);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.pps.HomeSp> CREATOR;
@@ -30328,7 +30202,7 @@
     field public static final int GROUP_OWNER_BAND_2GHZ = 1; // 0x1
     field public static final int GROUP_OWNER_BAND_5GHZ = 2; // 0x2
     field public static final int GROUP_OWNER_BAND_AUTO = 0; // 0x0
-    field public java.lang.String deviceAddress;
+    field public String deviceAddress;
     field public int groupOwnerIntent;
     field public android.net.wifi.WpsInfo wps;
   }
@@ -30340,8 +30214,8 @@
     method public android.net.wifi.p2p.WifiP2pConfig.Builder setDeviceAddress(android.net.MacAddress);
     method public android.net.wifi.p2p.WifiP2pConfig.Builder setGroupOperatingBand(int);
     method public android.net.wifi.p2p.WifiP2pConfig.Builder setGroupOperatingFrequency(int);
-    method public android.net.wifi.p2p.WifiP2pConfig.Builder setNetworkName(java.lang.String);
-    method public android.net.wifi.p2p.WifiP2pConfig.Builder setPassphrase(java.lang.String);
+    method public android.net.wifi.p2p.WifiP2pConfig.Builder setNetworkName(String);
+    method public android.net.wifi.p2p.WifiP2pConfig.Builder setPassphrase(String);
   }
 
   public class WifiP2pDevice implements android.os.Parcelable {
@@ -30360,10 +30234,10 @@
     field public static final int FAILED = 2; // 0x2
     field public static final int INVITED = 1; // 0x1
     field public static final int UNAVAILABLE = 4; // 0x4
-    field public java.lang.String deviceAddress;
-    field public java.lang.String deviceName;
-    field public java.lang.String primaryDeviceType;
-    field public java.lang.String secondaryDeviceType;
+    field public String deviceAddress;
+    field public String deviceName;
+    field public String primaryDeviceType;
+    field public String secondaryDeviceType;
     field public int status;
   }
 
@@ -30371,7 +30245,7 @@
     ctor public WifiP2pDeviceList();
     ctor public WifiP2pDeviceList(android.net.wifi.p2p.WifiP2pDeviceList);
     method public int describeContents();
-    method public android.net.wifi.p2p.WifiP2pDevice get(java.lang.String);
+    method public android.net.wifi.p2p.WifiP2pDevice get(String);
     method public java.util.Collection<android.net.wifi.p2p.WifiP2pDevice> getDeviceList();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pDeviceList> CREATOR;
@@ -30383,10 +30257,10 @@
     method public int describeContents();
     method public java.util.Collection<android.net.wifi.p2p.WifiP2pDevice> getClientList();
     method public int getFrequency();
-    method public java.lang.String getInterface();
-    method public java.lang.String getNetworkName();
+    method public String getInterface();
+    method public String getNetworkName();
     method public android.net.wifi.p2p.WifiP2pDevice getOwner();
-    method public java.lang.String getPassphrase();
+    method public String getPassphrase();
     method public boolean isGroupOwner();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pGroup> CREATOR;
@@ -30404,103 +30278,103 @@
   }
 
   public class WifiP2pManager {
-    method public void addLocalService(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.nsd.WifiP2pServiceInfo, android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public void addLocalService(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.nsd.WifiP2pServiceInfo, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void addServiceRequest(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.nsd.WifiP2pServiceRequest, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void cancelConnect(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void clearLocalServices(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void clearServiceRequests(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
-    method public void connect(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pConfig, android.net.wifi.p2p.WifiP2pManager.ActionListener);
-    method public void createGroup(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
-    method public void createGroup(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pConfig, android.net.wifi.p2p.WifiP2pManager.ActionListener);
-    method public void discoverPeers(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
-    method public void discoverServices(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public void connect(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pConfig, android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public void createGroup(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public void createGroup(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @Nullable android.net.wifi.p2p.WifiP2pConfig, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public void discoverPeers(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public void discoverServices(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public android.net.wifi.p2p.WifiP2pManager.Channel initialize(android.content.Context, android.os.Looper, android.net.wifi.p2p.WifiP2pManager.ChannelListener);
     method public void removeGroup(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void removeLocalService(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.nsd.WifiP2pServiceInfo, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void removeServiceRequest(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.nsd.WifiP2pServiceRequest, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     method public void requestConnectionInfo(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ConnectionInfoListener);
-    method public void requestDiscoveryState(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.DiscoveryStateListener);
-    method public void requestGroupInfo(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.GroupInfoListener);
-    method public void requestNetworkInfo(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.NetworkInfoListener);
-    method public void requestP2pState(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.P2pStateListener);
-    method public void requestPeers(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.PeerListListener);
+    method public void requestDiscoveryState(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @NonNull android.net.wifi.p2p.WifiP2pManager.DiscoveryStateListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public void requestGroupInfo(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.GroupInfoListener);
+    method public void requestNetworkInfo(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @NonNull android.net.wifi.p2p.WifiP2pManager.NetworkInfoListener);
+    method public void requestP2pState(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @NonNull android.net.wifi.p2p.WifiP2pManager.P2pStateListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public void requestPeers(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.PeerListListener);
     method public void setDnsSdResponseListeners(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.DnsSdServiceResponseListener, android.net.wifi.p2p.WifiP2pManager.DnsSdTxtRecordListener);
     method public void setServiceResponseListener(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ServiceResponseListener);
     method public void setUpnpServiceResponseListener(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.UpnpServiceResponseListener);
     method public void stopPeerDiscovery(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.WifiP2pManager.ActionListener);
     field public static final int BUSY = 2; // 0x2
     field public static final int ERROR = 0; // 0x0
-    field public static final java.lang.String EXTRA_DISCOVERY_STATE = "discoveryState";
-    field public static final java.lang.String EXTRA_NETWORK_INFO = "networkInfo";
-    field public static final java.lang.String EXTRA_P2P_DEVICE_LIST = "wifiP2pDeviceList";
-    field public static final java.lang.String EXTRA_WIFI_P2P_DEVICE = "wifiP2pDevice";
-    field public static final java.lang.String EXTRA_WIFI_P2P_GROUP = "p2pGroupInfo";
-    field public static final java.lang.String EXTRA_WIFI_P2P_INFO = "wifiP2pInfo";
-    field public static final java.lang.String EXTRA_WIFI_STATE = "wifi_p2p_state";
+    field public static final String EXTRA_DISCOVERY_STATE = "discoveryState";
+    field public static final String EXTRA_NETWORK_INFO = "networkInfo";
+    field public static final String EXTRA_P2P_DEVICE_LIST = "wifiP2pDeviceList";
+    field public static final String EXTRA_WIFI_P2P_DEVICE = "wifiP2pDevice";
+    field public static final String EXTRA_WIFI_P2P_GROUP = "p2pGroupInfo";
+    field public static final String EXTRA_WIFI_P2P_INFO = "wifiP2pInfo";
+    field public static final String EXTRA_WIFI_STATE = "wifi_p2p_state";
     field public static final int NO_SERVICE_REQUESTS = 3; // 0x3
     field public static final int P2P_UNSUPPORTED = 1; // 0x1
-    field public static final java.lang.String WIFI_P2P_CONNECTION_CHANGED_ACTION = "android.net.wifi.p2p.CONNECTION_STATE_CHANGE";
-    field public static final java.lang.String WIFI_P2P_DISCOVERY_CHANGED_ACTION = "android.net.wifi.p2p.DISCOVERY_STATE_CHANGE";
+    field public static final String WIFI_P2P_CONNECTION_CHANGED_ACTION = "android.net.wifi.p2p.CONNECTION_STATE_CHANGE";
+    field public static final String WIFI_P2P_DISCOVERY_CHANGED_ACTION = "android.net.wifi.p2p.DISCOVERY_STATE_CHANGE";
     field public static final int WIFI_P2P_DISCOVERY_STARTED = 2; // 0x2
     field public static final int WIFI_P2P_DISCOVERY_STOPPED = 1; // 0x1
-    field public static final java.lang.String WIFI_P2P_PEERS_CHANGED_ACTION = "android.net.wifi.p2p.PEERS_CHANGED";
-    field public static final java.lang.String WIFI_P2P_STATE_CHANGED_ACTION = "android.net.wifi.p2p.STATE_CHANGED";
+    field public static final String WIFI_P2P_PEERS_CHANGED_ACTION = "android.net.wifi.p2p.PEERS_CHANGED";
+    field public static final String WIFI_P2P_STATE_CHANGED_ACTION = "android.net.wifi.p2p.STATE_CHANGED";
     field public static final int WIFI_P2P_STATE_DISABLED = 1; // 0x1
     field public static final int WIFI_P2P_STATE_ENABLED = 2; // 0x2
-    field public static final java.lang.String WIFI_P2P_THIS_DEVICE_CHANGED_ACTION = "android.net.wifi.p2p.THIS_DEVICE_CHANGED";
+    field public static final String WIFI_P2P_THIS_DEVICE_CHANGED_ACTION = "android.net.wifi.p2p.THIS_DEVICE_CHANGED";
   }
 
-  public static abstract interface WifiP2pManager.ActionListener {
-    method public abstract void onFailure(int);
-    method public abstract void onSuccess();
+  public static interface WifiP2pManager.ActionListener {
+    method public void onFailure(int);
+    method public void onSuccess();
   }
 
   public static class WifiP2pManager.Channel implements java.lang.AutoCloseable {
     method public void close();
   }
 
-  public static abstract interface WifiP2pManager.ChannelListener {
-    method public abstract void onChannelDisconnected();
+  public static interface WifiP2pManager.ChannelListener {
+    method public void onChannelDisconnected();
   }
 
-  public static abstract interface WifiP2pManager.ConnectionInfoListener {
-    method public abstract void onConnectionInfoAvailable(android.net.wifi.p2p.WifiP2pInfo);
+  public static interface WifiP2pManager.ConnectionInfoListener {
+    method public void onConnectionInfoAvailable(android.net.wifi.p2p.WifiP2pInfo);
   }
 
-  public static abstract interface WifiP2pManager.DiscoveryStateListener {
-    method public abstract void onDiscoveryStateAvailable(int);
+  public static interface WifiP2pManager.DiscoveryStateListener {
+    method public void onDiscoveryStateAvailable(int);
   }
 
-  public static abstract interface WifiP2pManager.DnsSdServiceResponseListener {
-    method public abstract void onDnsSdServiceAvailable(java.lang.String, java.lang.String, android.net.wifi.p2p.WifiP2pDevice);
+  public static interface WifiP2pManager.DnsSdServiceResponseListener {
+    method public void onDnsSdServiceAvailable(String, String, android.net.wifi.p2p.WifiP2pDevice);
   }
 
-  public static abstract interface WifiP2pManager.DnsSdTxtRecordListener {
-    method public abstract void onDnsSdTxtRecordAvailable(java.lang.String, java.util.Map<java.lang.String, java.lang.String>, android.net.wifi.p2p.WifiP2pDevice);
+  public static interface WifiP2pManager.DnsSdTxtRecordListener {
+    method public void onDnsSdTxtRecordAvailable(String, java.util.Map<java.lang.String,java.lang.String>, android.net.wifi.p2p.WifiP2pDevice);
   }
 
-  public static abstract interface WifiP2pManager.GroupInfoListener {
-    method public abstract void onGroupInfoAvailable(android.net.wifi.p2p.WifiP2pGroup);
+  public static interface WifiP2pManager.GroupInfoListener {
+    method public void onGroupInfoAvailable(android.net.wifi.p2p.WifiP2pGroup);
   }
 
-  public static abstract interface WifiP2pManager.NetworkInfoListener {
-    method public abstract void onNetworkInfoAvailable(android.net.NetworkInfo);
+  public static interface WifiP2pManager.NetworkInfoListener {
+    method public void onNetworkInfoAvailable(android.net.NetworkInfo);
   }
 
-  public static abstract interface WifiP2pManager.P2pStateListener {
-    method public abstract void onP2pStateAvailable(int);
+  public static interface WifiP2pManager.P2pStateListener {
+    method public void onP2pStateAvailable(int);
   }
 
-  public static abstract interface WifiP2pManager.PeerListListener {
-    method public abstract void onPeersAvailable(android.net.wifi.p2p.WifiP2pDeviceList);
+  public static interface WifiP2pManager.PeerListListener {
+    method public void onPeersAvailable(android.net.wifi.p2p.WifiP2pDeviceList);
   }
 
-  public static abstract interface WifiP2pManager.ServiceResponseListener {
-    method public abstract void onServiceAvailable(int, byte[], android.net.wifi.p2p.WifiP2pDevice);
+  public static interface WifiP2pManager.ServiceResponseListener {
+    method public void onServiceAvailable(int, byte[], android.net.wifi.p2p.WifiP2pDevice);
   }
 
-  public static abstract interface WifiP2pManager.UpnpServiceResponseListener {
-    method public abstract void onUpnpServiceAvailable(java.util.List<java.lang.String>, android.net.wifi.p2p.WifiP2pDevice);
+  public static interface WifiP2pManager.UpnpServiceResponseListener {
+    method public void onUpnpServiceAvailable(java.util.List<java.lang.String>, android.net.wifi.p2p.WifiP2pDevice);
   }
 
 }
@@ -30508,13 +30382,13 @@
 package android.net.wifi.p2p.nsd {
 
   public class WifiP2pDnsSdServiceInfo extends android.net.wifi.p2p.nsd.WifiP2pServiceInfo {
-    method public static android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo newInstance(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
+    method public static android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo newInstance(String, String, java.util.Map<java.lang.String,java.lang.String>);
   }
 
   public class WifiP2pDnsSdServiceRequest extends android.net.wifi.p2p.nsd.WifiP2pServiceRequest {
     method public static android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest newInstance();
-    method public static android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest newInstance(java.lang.String);
-    method public static android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest newInstance(java.lang.String, java.lang.String);
+    method public static android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest newInstance(String);
+    method public static android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest newInstance(String, String);
   }
 
   public class WifiP2pServiceInfo implements android.os.Parcelable {
@@ -30528,18 +30402,18 @@
 
   public class WifiP2pServiceRequest implements android.os.Parcelable {
     method public int describeContents();
-    method public static android.net.wifi.p2p.nsd.WifiP2pServiceRequest newInstance(int, java.lang.String);
+    method public static android.net.wifi.p2p.nsd.WifiP2pServiceRequest newInstance(int, String);
     method public static android.net.wifi.p2p.nsd.WifiP2pServiceRequest newInstance(int);
     method public void writeToParcel(android.os.Parcel, int);
   }
 
   public class WifiP2pUpnpServiceInfo extends android.net.wifi.p2p.nsd.WifiP2pServiceInfo {
-    method public static android.net.wifi.p2p.nsd.WifiP2pUpnpServiceInfo newInstance(java.lang.String, java.lang.String, java.util.List<java.lang.String>);
+    method public static android.net.wifi.p2p.nsd.WifiP2pUpnpServiceInfo newInstance(String, String, java.util.List<java.lang.String>);
   }
 
   public class WifiP2pUpnpServiceRequest extends android.net.wifi.p2p.nsd.WifiP2pServiceRequest {
     method public static android.net.wifi.p2p.nsd.WifiP2pUpnpServiceRequest newInstance();
-    method public static android.net.wifi.p2p.nsd.WifiP2pUpnpServiceRequest newInstance(java.lang.String);
+    method public static android.net.wifi.p2p.nsd.WifiP2pUpnpServiceRequest newInstance(String);
   }
 
 }
@@ -30555,10 +30429,10 @@
 
   public static final class RangingRequest.Builder {
     ctor public RangingRequest.Builder();
-    method public android.net.wifi.rtt.RangingRequest.Builder addAccessPoint(android.net.wifi.ScanResult);
-    method public android.net.wifi.rtt.RangingRequest.Builder addAccessPoints(java.util.List<android.net.wifi.ScanResult>);
-    method public android.net.wifi.rtt.RangingRequest.Builder addWifiAwarePeer(android.net.MacAddress);
-    method public android.net.wifi.rtt.RangingRequest.Builder addWifiAwarePeer(android.net.wifi.aware.PeerHandle);
+    method public android.net.wifi.rtt.RangingRequest.Builder addAccessPoint(@NonNull android.net.wifi.ScanResult);
+    method public android.net.wifi.rtt.RangingRequest.Builder addAccessPoints(@NonNull java.util.List<android.net.wifi.ScanResult>);
+    method public android.net.wifi.rtt.RangingRequest.Builder addWifiAwarePeer(@NonNull android.net.MacAddress);
+    method public android.net.wifi.rtt.RangingRequest.Builder addWifiAwarePeer(@NonNull android.net.wifi.aware.PeerHandle);
     method public android.net.wifi.rtt.RangingRequest build();
   }
 
@@ -30566,10 +30440,10 @@
     method public int describeContents();
     method public int getDistanceMm();
     method public int getDistanceStdDevMm();
-    method public android.net.MacAddress getMacAddress();
+    method @Nullable public android.net.MacAddress getMacAddress();
     method public int getNumAttemptedMeasurements();
     method public int getNumSuccessfulMeasurements();
-    method public android.net.wifi.aware.PeerHandle getPeerHandle();
+    method @Nullable public android.net.wifi.aware.PeerHandle getPeerHandle();
     method public long getRangingTimestampMillis();
     method public int getRssi();
     method public int getStatus();
@@ -30583,15 +30457,15 @@
   public abstract class RangingResultCallback {
     ctor public RangingResultCallback();
     method public abstract void onRangingFailure(int);
-    method public abstract void onRangingResults(java.util.List<android.net.wifi.rtt.RangingResult>);
+    method public abstract void onRangingResults(@NonNull java.util.List<android.net.wifi.rtt.RangingResult>);
     field public static final int STATUS_CODE_FAIL = 1; // 0x1
     field public static final int STATUS_CODE_FAIL_RTT_NOT_AVAILABLE = 2; // 0x2
   }
 
   public class WifiRttManager {
     method public boolean isAvailable();
-    method public void startRanging(android.net.wifi.rtt.RangingRequest, java.util.concurrent.Executor, android.net.wifi.rtt.RangingResultCallback);
-    field public static final java.lang.String ACTION_WIFI_RTT_STATE_CHANGED = "android.net.wifi.rtt.action.WIFI_RTT_STATE_CHANGED";
+    method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.CHANGE_WIFI_STATE, android.Manifest.permission.ACCESS_WIFI_STATE}) public void startRanging(@NonNull android.net.wifi.rtt.RangingRequest, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.rtt.RangingResultCallback);
+    field public static final String ACTION_WIFI_RTT_STATE_CHANGED = "android.net.wifi.rtt.action.WIFI_RTT_STATE_CHANGED";
   }
 
 }
@@ -30600,8 +30474,8 @@
 
   public class FormatException extends java.lang.Exception {
     ctor public FormatException();
-    ctor public FormatException(java.lang.String);
-    ctor public FormatException(java.lang.String, java.lang.Throwable);
+    ctor public FormatException(String);
+    ctor public FormatException(String, Throwable);
   }
 
   public final class NdefMessage implements android.os.Parcelable {
@@ -30618,20 +30492,20 @@
 
   public final class NdefRecord implements android.os.Parcelable {
     ctor public NdefRecord(short, byte[], byte[], byte[]);
-    ctor public deprecated NdefRecord(byte[]) throws android.nfc.FormatException;
-    method public static android.nfc.NdefRecord createApplicationRecord(java.lang.String);
-    method public static android.nfc.NdefRecord createExternal(java.lang.String, java.lang.String, byte[]);
-    method public static android.nfc.NdefRecord createMime(java.lang.String, byte[]);
-    method public static android.nfc.NdefRecord createTextRecord(java.lang.String, java.lang.String);
+    ctor @Deprecated public NdefRecord(byte[]) throws android.nfc.FormatException;
+    method public static android.nfc.NdefRecord createApplicationRecord(String);
+    method public static android.nfc.NdefRecord createExternal(String, String, byte[]);
+    method public static android.nfc.NdefRecord createMime(String, byte[]);
+    method public static android.nfc.NdefRecord createTextRecord(String, String);
     method public static android.nfc.NdefRecord createUri(android.net.Uri);
-    method public static android.nfc.NdefRecord createUri(java.lang.String);
+    method public static android.nfc.NdefRecord createUri(String);
     method public int describeContents();
     method public byte[] getId();
     method public byte[] getPayload();
     method public short getTnf();
     method public byte[] getType();
-    method public deprecated byte[] toByteArray();
-    method public java.lang.String toMimeType();
+    method @Deprecated public byte[] toByteArray();
+    method public String toMimeType();
     method public android.net.Uri toUri();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.nfc.NdefRecord> CREATOR;
@@ -30653,35 +30527,35 @@
 
   public final class NfcAdapter {
     method public void disableForegroundDispatch(android.app.Activity);
-    method public deprecated void disableForegroundNdefPush(android.app.Activity);
+    method @Deprecated public void disableForegroundNdefPush(android.app.Activity);
     method public void disableReaderMode(android.app.Activity);
-    method public void enableForegroundDispatch(android.app.Activity, android.app.PendingIntent, android.content.IntentFilter[], java.lang.String[][]);
-    method public deprecated void enableForegroundNdefPush(android.app.Activity, android.nfc.NdefMessage);
+    method public void enableForegroundDispatch(android.app.Activity, android.app.PendingIntent, android.content.IntentFilter[], String[][]);
+    method @Deprecated public void enableForegroundNdefPush(android.app.Activity, android.nfc.NdefMessage);
     method public void enableReaderMode(android.app.Activity, android.nfc.NfcAdapter.ReaderCallback, int, android.os.Bundle);
     method public static android.nfc.NfcAdapter getDefaultAdapter(android.content.Context);
-    method public java.util.List<java.lang.String> getSupportedOffHostSecureElements();
+    method @NonNull public java.util.List<java.lang.String> getSupportedOffHostSecureElements();
     method public boolean ignore(android.nfc.Tag, int, android.nfc.NfcAdapter.OnTagRemovedListener, android.os.Handler);
-    method public deprecated boolean invokeBeam(android.app.Activity);
+    method @Deprecated public boolean invokeBeam(android.app.Activity);
     method public boolean isEnabled();
-    method public deprecated boolean isNdefPushEnabled();
-    method public deprecated void setBeamPushUris(android.net.Uri[], android.app.Activity);
-    method public deprecated void setBeamPushUrisCallback(android.nfc.NfcAdapter.CreateBeamUrisCallback, android.app.Activity);
-    method public deprecated void setNdefPushMessage(android.nfc.NdefMessage, android.app.Activity, android.app.Activity...);
-    method public deprecated void setNdefPushMessageCallback(android.nfc.NfcAdapter.CreateNdefMessageCallback, android.app.Activity, android.app.Activity...);
-    method public deprecated void setOnNdefPushCompleteCallback(android.nfc.NfcAdapter.OnNdefPushCompleteCallback, android.app.Activity, android.app.Activity...);
-    field public static final java.lang.String ACTION_ADAPTER_STATE_CHANGED = "android.nfc.action.ADAPTER_STATE_CHANGED";
-    field public static final java.lang.String ACTION_NDEF_DISCOVERED = "android.nfc.action.NDEF_DISCOVERED";
-    field public static final java.lang.String ACTION_TAG_DISCOVERED = "android.nfc.action.TAG_DISCOVERED";
-    field public static final java.lang.String ACTION_TECH_DISCOVERED = "android.nfc.action.TECH_DISCOVERED";
-    field public static final java.lang.String ACTION_TRANSACTION_DETECTED = "android.nfc.action.TRANSACTION_DETECTED";
-    field public static final java.lang.String EXTRA_ADAPTER_STATE = "android.nfc.extra.ADAPTER_STATE";
-    field public static final java.lang.String EXTRA_AID = "android.nfc.extra.AID";
-    field public static final java.lang.String EXTRA_DATA = "android.nfc.extra.DATA";
-    field public static final java.lang.String EXTRA_ID = "android.nfc.extra.ID";
-    field public static final java.lang.String EXTRA_NDEF_MESSAGES = "android.nfc.extra.NDEF_MESSAGES";
-    field public static final java.lang.String EXTRA_READER_PRESENCE_CHECK_DELAY = "presence";
-    field public static final java.lang.String EXTRA_SECURE_ELEMENT_NAME = "android.nfc.extra.SECURE_ELEMENT_NAME";
-    field public static final java.lang.String EXTRA_TAG = "android.nfc.extra.TAG";
+    method @Deprecated public boolean isNdefPushEnabled();
+    method @Deprecated public void setBeamPushUris(android.net.Uri[], android.app.Activity);
+    method @Deprecated public void setBeamPushUrisCallback(android.nfc.NfcAdapter.CreateBeamUrisCallback, android.app.Activity);
+    method @Deprecated public void setNdefPushMessage(android.nfc.NdefMessage, android.app.Activity, android.app.Activity...);
+    method @Deprecated public void setNdefPushMessageCallback(android.nfc.NfcAdapter.CreateNdefMessageCallback, android.app.Activity, android.app.Activity...);
+    method @Deprecated public void setOnNdefPushCompleteCallback(android.nfc.NfcAdapter.OnNdefPushCompleteCallback, android.app.Activity, android.app.Activity...);
+    field public static final String ACTION_ADAPTER_STATE_CHANGED = "android.nfc.action.ADAPTER_STATE_CHANGED";
+    field public static final String ACTION_NDEF_DISCOVERED = "android.nfc.action.NDEF_DISCOVERED";
+    field public static final String ACTION_TAG_DISCOVERED = "android.nfc.action.TAG_DISCOVERED";
+    field public static final String ACTION_TECH_DISCOVERED = "android.nfc.action.TECH_DISCOVERED";
+    field @RequiresPermission(android.Manifest.permission.NFC_TRANSACTION_EVENT) public static final String ACTION_TRANSACTION_DETECTED = "android.nfc.action.TRANSACTION_DETECTED";
+    field public static final String EXTRA_ADAPTER_STATE = "android.nfc.extra.ADAPTER_STATE";
+    field public static final String EXTRA_AID = "android.nfc.extra.AID";
+    field public static final String EXTRA_DATA = "android.nfc.extra.DATA";
+    field public static final String EXTRA_ID = "android.nfc.extra.ID";
+    field public static final String EXTRA_NDEF_MESSAGES = "android.nfc.extra.NDEF_MESSAGES";
+    field public static final String EXTRA_READER_PRESENCE_CHECK_DELAY = "presence";
+    field public static final String EXTRA_SECURE_ELEMENT_NAME = "android.nfc.extra.SECURE_ELEMENT_NAME";
+    field public static final String EXTRA_TAG = "android.nfc.extra.TAG";
     field public static final int FLAG_READER_NFC_A = 1; // 0x1
     field public static final int FLAG_READER_NFC_B = 2; // 0x2
     field public static final int FLAG_READER_NFC_BARCODE = 16; // 0x10
@@ -30695,24 +30569,24 @@
     field public static final int STATE_TURNING_ON = 2; // 0x2
   }
 
-  public static abstract deprecated interface NfcAdapter.CreateBeamUrisCallback {
-    method public abstract android.net.Uri[] createBeamUris(android.nfc.NfcEvent);
+  @Deprecated public static interface NfcAdapter.CreateBeamUrisCallback {
+    method @Deprecated public android.net.Uri[] createBeamUris(android.nfc.NfcEvent);
   }
 
-  public static abstract deprecated interface NfcAdapter.CreateNdefMessageCallback {
-    method public abstract android.nfc.NdefMessage createNdefMessage(android.nfc.NfcEvent);
+  @Deprecated public static interface NfcAdapter.CreateNdefMessageCallback {
+    method @Deprecated public android.nfc.NdefMessage createNdefMessage(android.nfc.NfcEvent);
   }
 
-  public static abstract deprecated interface NfcAdapter.OnNdefPushCompleteCallback {
-    method public abstract void onNdefPushComplete(android.nfc.NfcEvent);
+  @Deprecated public static interface NfcAdapter.OnNdefPushCompleteCallback {
+    method @Deprecated public void onNdefPushComplete(android.nfc.NfcEvent);
   }
 
-  public static abstract interface NfcAdapter.OnTagRemovedListener {
-    method public abstract void onTagRemoved();
+  public static interface NfcAdapter.OnTagRemovedListener {
+    method public void onTagRemoved();
   }
 
-  public static abstract interface NfcAdapter.ReaderCallback {
-    method public abstract void onTagDiscovered(android.nfc.Tag);
+  public static interface NfcAdapter.ReaderCallback {
+    method public void onTagDiscovered(android.nfc.Tag);
   }
 
   public final class NfcEvent {
@@ -30728,14 +30602,14 @@
   public final class Tag implements android.os.Parcelable {
     method public int describeContents();
     method public byte[] getId();
-    method public java.lang.String[] getTechList();
+    method public String[] getTechList();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.nfc.Tag> CREATOR;
   }
 
   public class TagLostException extends java.io.IOException {
     ctor public TagLostException();
-    ctor public TagLostException(java.lang.String);
+    ctor public TagLostException(String);
   }
 
 }
@@ -30743,24 +30617,24 @@
 package android.nfc.cardemulation {
 
   public final class CardEmulation {
-    method public boolean categoryAllowsForegroundPreference(java.lang.String);
-    method public java.util.List<java.lang.String> getAidsForService(android.content.ComponentName, java.lang.String);
-    method public static synchronized android.nfc.cardemulation.CardEmulation getInstance(android.nfc.NfcAdapter);
-    method public int getSelectionModeForCategory(java.lang.String);
-    method public boolean isDefaultServiceForAid(android.content.ComponentName, java.lang.String);
-    method public boolean isDefaultServiceForCategory(android.content.ComponentName, java.lang.String);
-    method public boolean registerAidsForService(android.content.ComponentName, java.lang.String, java.util.List<java.lang.String>);
-    method public boolean removeAidsForService(android.content.ComponentName, java.lang.String);
-    method public boolean setOffHostForService(android.content.ComponentName, java.lang.String);
+    method public boolean categoryAllowsForegroundPreference(String);
+    method public java.util.List<java.lang.String> getAidsForService(android.content.ComponentName, String);
+    method public static android.nfc.cardemulation.CardEmulation getInstance(android.nfc.NfcAdapter);
+    method public int getSelectionModeForCategory(String);
+    method public boolean isDefaultServiceForAid(android.content.ComponentName, String);
+    method public boolean isDefaultServiceForCategory(android.content.ComponentName, String);
+    method public boolean registerAidsForService(android.content.ComponentName, String, java.util.List<java.lang.String>);
+    method public boolean removeAidsForService(android.content.ComponentName, String);
+    method public boolean setOffHostForService(android.content.ComponentName, String);
     method public boolean setPreferredService(android.app.Activity, android.content.ComponentName);
     method public boolean supportsAidPrefixRegistration();
     method public boolean unsetOffHostForService(android.content.ComponentName);
     method public boolean unsetPreferredService(android.app.Activity);
-    field public static final java.lang.String ACTION_CHANGE_DEFAULT = "android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT";
-    field public static final java.lang.String CATEGORY_OTHER = "other";
-    field public static final java.lang.String CATEGORY_PAYMENT = "payment";
-    field public static final java.lang.String EXTRA_CATEGORY = "category";
-    field public static final java.lang.String EXTRA_SERVICE_COMPONENT = "component";
+    field public static final String ACTION_CHANGE_DEFAULT = "android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT";
+    field public static final String CATEGORY_OTHER = "other";
+    field public static final String CATEGORY_PAYMENT = "payment";
+    field public static final String EXTRA_CATEGORY = "category";
+    field public static final String EXTRA_SERVICE_COMPONENT = "component";
     field public static final int SELECTION_MODE_ALWAYS_ASK = 1; // 0x1
     field public static final int SELECTION_MODE_ASK_IF_CONFLICT = 2; // 0x2
     field public static final int SELECTION_MODE_PREFER_DEFAULT = 0; // 0x0
@@ -30775,8 +30649,8 @@
     method public final void sendResponseApdu(byte[]);
     field public static final int DEACTIVATION_DESELECTED = 1; // 0x1
     field public static final int DEACTIVATION_LINK_LOSS = 0; // 0x0
-    field public static final java.lang.String SERVICE_INTERFACE = "android.nfc.cardemulation.action.HOST_APDU_SERVICE";
-    field public static final java.lang.String SERVICE_META_DATA = "android.nfc.cardemulation.host_apdu_service";
+    field public static final String SERVICE_INTERFACE = "android.nfc.cardemulation.action.HOST_APDU_SERVICE";
+    field public static final String SERVICE_META_DATA = "android.nfc.cardemulation.host_apdu_service";
   }
 
   public abstract class HostNfcFService extends android.app.Service {
@@ -30786,25 +30660,25 @@
     method public abstract byte[] processNfcFPacket(byte[], android.os.Bundle);
     method public final void sendResponsePacket(byte[]);
     field public static final int DEACTIVATION_LINK_LOSS = 0; // 0x0
-    field public static final java.lang.String SERVICE_INTERFACE = "android.nfc.cardemulation.action.HOST_NFCF_SERVICE";
-    field public static final java.lang.String SERVICE_META_DATA = "android.nfc.cardemulation.host_nfcf_service";
+    field public static final String SERVICE_INTERFACE = "android.nfc.cardemulation.action.HOST_NFCF_SERVICE";
+    field public static final String SERVICE_META_DATA = "android.nfc.cardemulation.host_nfcf_service";
   }
 
   public final class NfcFCardEmulation {
     method public boolean disableService(android.app.Activity) throws java.lang.RuntimeException;
     method public boolean enableService(android.app.Activity, android.content.ComponentName) throws java.lang.RuntimeException;
-    method public static synchronized android.nfc.cardemulation.NfcFCardEmulation getInstance(android.nfc.NfcAdapter);
-    method public java.lang.String getNfcid2ForService(android.content.ComponentName) throws java.lang.RuntimeException;
-    method public java.lang.String getSystemCodeForService(android.content.ComponentName) throws java.lang.RuntimeException;
-    method public boolean registerSystemCodeForService(android.content.ComponentName, java.lang.String) throws java.lang.RuntimeException;
-    method public boolean setNfcid2ForService(android.content.ComponentName, java.lang.String) throws java.lang.RuntimeException;
+    method public static android.nfc.cardemulation.NfcFCardEmulation getInstance(android.nfc.NfcAdapter);
+    method public String getNfcid2ForService(android.content.ComponentName) throws java.lang.RuntimeException;
+    method public String getSystemCodeForService(android.content.ComponentName) throws java.lang.RuntimeException;
+    method public boolean registerSystemCodeForService(android.content.ComponentName, String) throws java.lang.RuntimeException;
+    method public boolean setNfcid2ForService(android.content.ComponentName, String) throws java.lang.RuntimeException;
     method public boolean unregisterSystemCodeForService(android.content.ComponentName) throws java.lang.RuntimeException;
   }
 
   public abstract class OffHostApduService extends android.app.Service {
     ctor public OffHostApduService();
-    field public static final java.lang.String SERVICE_INTERFACE = "android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE";
-    field public static final java.lang.String SERVICE_META_DATA = "android.nfc.cardemulation.off_host_apdu_service";
+    field public static final String SERVICE_INTERFACE = "android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE";
+    field public static final String SERVICE_META_DATA = "android.nfc.cardemulation.off_host_apdu_service";
   }
 
 }
@@ -30812,11 +30686,15 @@
 package android.nfc.tech {
 
   public final class IsoDep implements android.nfc.tech.TagTechnology {
+    method public void close() throws java.io.IOException;
+    method public void connect() throws java.io.IOException;
     method public static android.nfc.tech.IsoDep get(android.nfc.Tag);
     method public byte[] getHiLayerResponse();
     method public byte[] getHistoricalBytes();
     method public int getMaxTransceiveLength();
+    method public android.nfc.Tag getTag();
     method public int getTimeout();
+    method public boolean isConnected();
     method public boolean isExtendedLengthApduSupported();
     method public void setTimeout(int);
     method public byte[] transceive(byte[]) throws java.io.IOException;
@@ -30826,6 +30704,8 @@
     method public boolean authenticateSectorWithKeyA(int, byte[]) throws java.io.IOException;
     method public boolean authenticateSectorWithKeyB(int, byte[]) throws java.io.IOException;
     method public int blockToSector(int);
+    method public void close() throws java.io.IOException;
+    method public void connect() throws java.io.IOException;
     method public void decrement(int, int) throws java.io.IOException;
     method public static android.nfc.tech.MifareClassic get(android.nfc.Tag);
     method public int getBlockCount();
@@ -30833,9 +30713,11 @@
     method public int getMaxTransceiveLength();
     method public int getSectorCount();
     method public int getSize();
+    method public android.nfc.Tag getTag();
     method public int getTimeout();
     method public int getType();
     method public void increment(int, int) throws java.io.IOException;
+    method public boolean isConnected();
     method public byte[] readBlock(int) throws java.io.IOException;
     method public void restore(int) throws java.io.IOException;
     method public int sectorToBlock(int);
@@ -30858,10 +30740,14 @@
   }
 
   public final class MifareUltralight implements android.nfc.tech.TagTechnology {
+    method public void close() throws java.io.IOException;
+    method public void connect() throws java.io.IOException;
     method public static android.nfc.tech.MifareUltralight get(android.nfc.Tag);
     method public int getMaxTransceiveLength();
+    method public android.nfc.Tag getTag();
     method public int getTimeout();
     method public int getType();
+    method public boolean isConnected();
     method public byte[] readPages(int) throws java.io.IOException;
     method public void setTimeout(int);
     method public byte[] transceive(byte[]) throws java.io.IOException;
@@ -30874,75 +30760,103 @@
 
   public final class Ndef implements android.nfc.tech.TagTechnology {
     method public boolean canMakeReadOnly();
+    method public void close() throws java.io.IOException;
+    method public void connect() throws java.io.IOException;
     method public static android.nfc.tech.Ndef get(android.nfc.Tag);
     method public android.nfc.NdefMessage getCachedNdefMessage();
     method public int getMaxSize();
     method public android.nfc.NdefMessage getNdefMessage() throws android.nfc.FormatException, java.io.IOException;
-    method public java.lang.String getType();
+    method public android.nfc.Tag getTag();
+    method public String getType();
+    method public boolean isConnected();
     method public boolean isWritable();
     method public boolean makeReadOnly() throws java.io.IOException;
     method public void writeNdefMessage(android.nfc.NdefMessage) throws android.nfc.FormatException, java.io.IOException;
-    field public static final java.lang.String MIFARE_CLASSIC = "com.nxp.ndef.mifareclassic";
-    field public static final java.lang.String NFC_FORUM_TYPE_1 = "org.nfcforum.ndef.type1";
-    field public static final java.lang.String NFC_FORUM_TYPE_2 = "org.nfcforum.ndef.type2";
-    field public static final java.lang.String NFC_FORUM_TYPE_3 = "org.nfcforum.ndef.type3";
-    field public static final java.lang.String NFC_FORUM_TYPE_4 = "org.nfcforum.ndef.type4";
+    field public static final String MIFARE_CLASSIC = "com.nxp.ndef.mifareclassic";
+    field public static final String NFC_FORUM_TYPE_1 = "org.nfcforum.ndef.type1";
+    field public static final String NFC_FORUM_TYPE_2 = "org.nfcforum.ndef.type2";
+    field public static final String NFC_FORUM_TYPE_3 = "org.nfcforum.ndef.type3";
+    field public static final String NFC_FORUM_TYPE_4 = "org.nfcforum.ndef.type4";
   }
 
   public final class NdefFormatable implements android.nfc.tech.TagTechnology {
+    method public void close() throws java.io.IOException;
+    method public void connect() throws java.io.IOException;
     method public void format(android.nfc.NdefMessage) throws android.nfc.FormatException, java.io.IOException;
     method public void formatReadOnly(android.nfc.NdefMessage) throws android.nfc.FormatException, java.io.IOException;
     method public static android.nfc.tech.NdefFormatable get(android.nfc.Tag);
+    method public android.nfc.Tag getTag();
+    method public boolean isConnected();
   }
 
   public final class NfcA implements android.nfc.tech.TagTechnology {
+    method public void close() throws java.io.IOException;
+    method public void connect() throws java.io.IOException;
     method public static android.nfc.tech.NfcA get(android.nfc.Tag);
     method public byte[] getAtqa();
     method public int getMaxTransceiveLength();
     method public short getSak();
+    method public android.nfc.Tag getTag();
     method public int getTimeout();
+    method public boolean isConnected();
     method public void setTimeout(int);
     method public byte[] transceive(byte[]) throws java.io.IOException;
   }
 
   public final class NfcB implements android.nfc.tech.TagTechnology {
+    method public void close() throws java.io.IOException;
+    method public void connect() throws java.io.IOException;
     method public static android.nfc.tech.NfcB get(android.nfc.Tag);
     method public byte[] getApplicationData();
     method public int getMaxTransceiveLength();
     method public byte[] getProtocolInfo();
+    method public android.nfc.Tag getTag();
+    method public boolean isConnected();
     method public byte[] transceive(byte[]) throws java.io.IOException;
   }
 
   public final class NfcBarcode implements android.nfc.tech.TagTechnology {
+    method public void close() throws java.io.IOException;
+    method public void connect() throws java.io.IOException;
     method public static android.nfc.tech.NfcBarcode get(android.nfc.Tag);
     method public byte[] getBarcode();
+    method public android.nfc.Tag getTag();
     method public int getType();
+    method public boolean isConnected();
     field public static final int TYPE_KOVIO = 1; // 0x1
     field public static final int TYPE_UNKNOWN = -1; // 0xffffffff
   }
 
   public final class NfcF implements android.nfc.tech.TagTechnology {
+    method public void close() throws java.io.IOException;
+    method public void connect() throws java.io.IOException;
     method public static android.nfc.tech.NfcF get(android.nfc.Tag);
     method public byte[] getManufacturer();
     method public int getMaxTransceiveLength();
     method public byte[] getSystemCode();
+    method public android.nfc.Tag getTag();
     method public int getTimeout();
+    method public boolean isConnected();
     method public void setTimeout(int);
     method public byte[] transceive(byte[]) throws java.io.IOException;
   }
 
   public final class NfcV implements android.nfc.tech.TagTechnology {
+    method public void close() throws java.io.IOException;
+    method public void connect() throws java.io.IOException;
     method public static android.nfc.tech.NfcV get(android.nfc.Tag);
     method public byte getDsfId();
     method public int getMaxTransceiveLength();
     method public byte getResponseFlags();
+    method public android.nfc.Tag getTag();
+    method public boolean isConnected();
     method public byte[] transceive(byte[]) throws java.io.IOException;
   }
 
-  public abstract interface TagTechnology implements java.io.Closeable {
-    method public abstract void connect() throws java.io.IOException;
-    method public abstract android.nfc.Tag getTag();
-    method public abstract boolean isConnected();
+  public interface TagTechnology extends java.io.Closeable {
+    method public void connect() throws java.io.IOException;
+    method public android.nfc.Tag getTag();
+    method public boolean isConnected();
   }
 
 }
@@ -30958,8 +30872,8 @@
     method public static android.opengl.EGLContext eglCreateContext(android.opengl.EGLDisplay, android.opengl.EGLConfig, android.opengl.EGLContext, int[], int);
     method public static android.opengl.EGLSurface eglCreatePbufferFromClientBuffer(android.opengl.EGLDisplay, int, int, android.opengl.EGLConfig, int[], int);
     method public static android.opengl.EGLSurface eglCreatePbufferSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int[], int);
-    method public static deprecated android.opengl.EGLSurface eglCreatePixmapSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int, int[], int);
-    method public static android.opengl.EGLSurface eglCreateWindowSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, java.lang.Object, int[], int);
+    method @Deprecated public static android.opengl.EGLSurface eglCreatePixmapSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int, int[], int);
+    method public static android.opengl.EGLSurface eglCreateWindowSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, Object, int[], int);
     method public static boolean eglDestroyContext(android.opengl.EGLDisplay, android.opengl.EGLContext);
     method public static boolean eglDestroySurface(android.opengl.EGLDisplay, android.opengl.EGLSurface);
     method public static boolean eglGetConfigAttrib(android.opengl.EGLDisplay, android.opengl.EGLConfig, int, int[], int);
@@ -30973,7 +30887,7 @@
     method public static boolean eglMakeCurrent(android.opengl.EGLDisplay, android.opengl.EGLSurface, android.opengl.EGLSurface, android.opengl.EGLContext);
     method public static int eglQueryAPI();
     method public static boolean eglQueryContext(android.opengl.EGLDisplay, android.opengl.EGLContext, int, int[], int);
-    method public static java.lang.String eglQueryString(android.opengl.EGLDisplay, int);
+    method public static String eglQueryString(android.opengl.EGLDisplay, int);
     method public static boolean eglQuerySurface(android.opengl.EGLDisplay, android.opengl.EGLSurface, int, int[], int);
     method public static boolean eglReleaseTexImage(android.opengl.EGLDisplay, android.opengl.EGLSurface, int);
     method public static boolean eglReleaseThread();
@@ -31183,9 +31097,9 @@
   }
 
   public abstract class EGLObjectHandle {
-    ctor protected deprecated EGLObjectHandle(int);
+    ctor @Deprecated protected EGLObjectHandle(int);
     ctor protected EGLObjectHandle(long);
-    method public deprecated int getHandle();
+    method @Deprecated public int getHandle();
     method public long getNativeHandle();
   }
 
@@ -31290,7 +31204,7 @@
     method public static int glGetError();
     method public static void glGetIntegerv(int, int[], int);
     method public static void glGetIntegerv(int, java.nio.IntBuffer);
-    method public static java.lang.String glGetString(int);
+    method public static String glGetString(int);
     method public static void glHint(int, int);
     method public static void glLightModelf(int, float);
     method public static void glLightModelfv(int, float[], int);
@@ -32039,7 +31953,7 @@
     ctor public GLES20();
     method public static void glActiveTexture(int);
     method public static void glAttachShader(int, int);
-    method public static void glBindAttribLocation(int, int, java.lang.String);
+    method public static void glBindAttribLocation(int, int, String);
     method public static void glBindBuffer(int, int);
     method public static void glBindFramebuffer(int, int);
     method public static void glBindRenderbuffer(int, int);
@@ -32101,14 +32015,14 @@
     method public static void glGenTextures(int, java.nio.IntBuffer);
     method public static void glGenerateMipmap(int);
     method public static void glGetActiveAttrib(int, int, int, int[], int, int[], int, int[], int, byte[], int);
-    method public static java.lang.String glGetActiveAttrib(int, int, int[], int, int[], int);
-    method public static java.lang.String glGetActiveAttrib(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
+    method public static String glGetActiveAttrib(int, int, int[], int, int[], int);
+    method public static String glGetActiveAttrib(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
     method public static void glGetActiveUniform(int, int, int, int[], int, int[], int, int[], int, byte[], int);
-    method public static java.lang.String glGetActiveUniform(int, int, int[], int, int[], int);
-    method public static java.lang.String glGetActiveUniform(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
+    method public static String glGetActiveUniform(int, int, int[], int, int[], int);
+    method public static String glGetActiveUniform(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
     method public static void glGetAttachedShaders(int, int, int[], int, int[], int);
     method public static void glGetAttachedShaders(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
-    method public static int glGetAttribLocation(int, java.lang.String);
+    method public static int glGetAttribLocation(int, String);
     method public static void glGetBooleanv(int, boolean[], int);
     method public static void glGetBooleanv(int, java.nio.IntBuffer);
     method public static void glGetBufferParameteriv(int, int, int[], int);
@@ -32120,24 +32034,24 @@
     method public static void glGetFramebufferAttachmentParameteriv(int, int, int, java.nio.IntBuffer);
     method public static void glGetIntegerv(int, int[], int);
     method public static void glGetIntegerv(int, java.nio.IntBuffer);
-    method public static java.lang.String glGetProgramInfoLog(int);
+    method public static String glGetProgramInfoLog(int);
     method public static void glGetProgramiv(int, int, int[], int);
     method public static void glGetProgramiv(int, int, java.nio.IntBuffer);
     method public static void glGetRenderbufferParameteriv(int, int, int[], int);
     method public static void glGetRenderbufferParameteriv(int, int, java.nio.IntBuffer);
-    method public static java.lang.String glGetShaderInfoLog(int);
+    method public static String glGetShaderInfoLog(int);
     method public static void glGetShaderPrecisionFormat(int, int, int[], int, int[], int);
     method public static void glGetShaderPrecisionFormat(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
     method public static void glGetShaderSource(int, int, int[], int, byte[], int);
-    method public static java.lang.String glGetShaderSource(int);
+    method public static String glGetShaderSource(int);
     method public static void glGetShaderiv(int, int, int[], int);
     method public static void glGetShaderiv(int, int, java.nio.IntBuffer);
-    method public static java.lang.String glGetString(int);
+    method public static String glGetString(int);
     method public static void glGetTexParameterfv(int, int, float[], int);
     method public static void glGetTexParameterfv(int, int, java.nio.FloatBuffer);
     method public static void glGetTexParameteriv(int, int, int[], int);
     method public static void glGetTexParameteriv(int, int, java.nio.IntBuffer);
-    method public static int glGetUniformLocation(int, java.lang.String);
+    method public static int glGetUniformLocation(int, String);
     method public static void glGetUniformfv(int, int, float[], int);
     method public static void glGetUniformfv(int, int, java.nio.FloatBuffer);
     method public static void glGetUniformiv(int, int, int[], int);
@@ -32165,7 +32079,7 @@
     method public static void glScissor(int, int, int, int);
     method public static void glShaderBinary(int, int[], int, int, java.nio.Buffer, int);
     method public static void glShaderBinary(int, java.nio.IntBuffer, int, java.nio.Buffer, int);
-    method public static void glShaderSource(int, java.lang.String);
+    method public static void glShaderSource(int, String);
     method public static void glStencilFunc(int, int, int);
     method public static void glStencilFuncSeparate(int, int, int, int);
     method public static void glStencilMask(int);
@@ -32448,7 +32362,7 @@
     field public static final int GL_STENCIL_CLEAR_VALUE = 2961; // 0xb91
     field public static final int GL_STENCIL_FAIL = 2964; // 0xb94
     field public static final int GL_STENCIL_FUNC = 2962; // 0xb92
-    field public static final deprecated int GL_STENCIL_INDEX = 6401; // 0x1901
+    field @Deprecated public static final int GL_STENCIL_INDEX = 6401; // 0x1901
     field public static final int GL_STENCIL_INDEX8 = 36168; // 0x8d48
     field public static final int GL_STENCIL_PASS_DEPTH_FAIL = 2965; // 0xb95
     field public static final int GL_STENCIL_PASS_DEPTH_PASS = 2966; // 0xb96
@@ -32586,7 +32500,7 @@
     method public static void glGenVertexArrays(int, java.nio.IntBuffer);
     method public static void glGetActiveUniformBlockName(int, int, int, int[], int, byte[], int);
     method public static void glGetActiveUniformBlockName(int, int, java.nio.Buffer, java.nio.Buffer);
-    method public static java.lang.String glGetActiveUniformBlockName(int, int);
+    method public static String glGetActiveUniformBlockName(int, int);
     method public static void glGetActiveUniformBlockiv(int, int, int, int[], int);
     method public static void glGetActiveUniformBlockiv(int, int, int, java.nio.IntBuffer);
     method public static void glGetActiveUniformsiv(int, int, int[], int, int, int[], int);
@@ -32594,7 +32508,7 @@
     method public static void glGetBufferParameteri64v(int, int, long[], int);
     method public static void glGetBufferParameteri64v(int, int, java.nio.LongBuffer);
     method public static java.nio.Buffer glGetBufferPointerv(int, int);
-    method public static int glGetFragDataLocation(int, java.lang.String);
+    method public static int glGetFragDataLocation(int, String);
     method public static void glGetInteger64i_v(int, int, long[], int);
     method public static void glGetInteger64i_v(int, int, java.nio.LongBuffer);
     method public static void glGetInteger64v(int, long[], int);
@@ -32613,17 +32527,17 @@
     method public static void glGetSamplerParameterfv(int, int, java.nio.FloatBuffer);
     method public static void glGetSamplerParameteriv(int, int, int[], int);
     method public static void glGetSamplerParameteriv(int, int, java.nio.IntBuffer);
-    method public static java.lang.String glGetStringi(int, int);
+    method public static String glGetStringi(int, int);
     method public static void glGetSynciv(long, int, int, int[], int, int[], int);
     method public static void glGetSynciv(long, int, int, java.nio.IntBuffer, java.nio.IntBuffer);
     method public static void glGetTransformFeedbackVarying(int, int, int, int[], int, int[], int, int[], int, byte[], int);
-    method public static deprecated void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, byte);
+    method @Deprecated public static void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, byte);
     method public static void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.ByteBuffer);
-    method public static java.lang.String glGetTransformFeedbackVarying(int, int, int[], int, int[], int);
-    method public static java.lang.String glGetTransformFeedbackVarying(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
-    method public static int glGetUniformBlockIndex(int, java.lang.String);
-    method public static void glGetUniformIndices(int, java.lang.String[], int[], int);
-    method public static void glGetUniformIndices(int, java.lang.String[], java.nio.IntBuffer);
+    method public static String glGetTransformFeedbackVarying(int, int, int[], int, int[], int);
+    method public static String glGetTransformFeedbackVarying(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
+    method public static int glGetUniformBlockIndex(int, String);
+    method public static void glGetUniformIndices(int, String[], int[], int);
+    method public static void glGetUniformIndices(int, String[], java.nio.IntBuffer);
     method public static void glGetUniformuiv(int, int, int[], int);
     method public static void glGetUniformuiv(int, int, java.nio.IntBuffer);
     method public static void glGetVertexAttribIiv(int, int, int[], int);
@@ -32659,7 +32573,7 @@
     method public static void glTexStorage3D(int, int, int, int, int, int);
     method public static void glTexSubImage3D(int, int, int, int, int, int, int, int, int, int, java.nio.Buffer);
     method public static void glTexSubImage3D(int, int, int, int, int, int, int, int, int, int, int);
-    method public static void glTransformFeedbackVaryings(int, java.lang.String[], int);
+    method public static void glTransformFeedbackVaryings(int, String[], int);
     method public static void glUniform1ui(int, int);
     method public static void glUniform1uiv(int, int, int[], int);
     method public static void glUniform1uiv(int, int, java.nio.IntBuffer);
@@ -33008,7 +32922,7 @@
     method public static void glBindImageTexture(int, int, int, boolean, int, int, int);
     method public static void glBindProgramPipeline(int);
     method public static void glBindVertexBuffer(int, int, long, int);
-    method public static int glCreateShaderProgramv(int, java.lang.String[]);
+    method public static int glCreateShaderProgramv(int, String[]);
     method public static void glDeleteProgramPipelines(int, int[], int);
     method public static void glDeleteProgramPipelines(int, java.nio.IntBuffer);
     method public static void glDispatchCompute(int, int, int);
@@ -33026,12 +32940,12 @@
     method public static void glGetMultisamplefv(int, int, java.nio.FloatBuffer);
     method public static void glGetProgramInterfaceiv(int, int, int, int[], int);
     method public static void glGetProgramInterfaceiv(int, int, int, java.nio.IntBuffer);
-    method public static java.lang.String glGetProgramPipelineInfoLog(int);
+    method public static String glGetProgramPipelineInfoLog(int);
     method public static void glGetProgramPipelineiv(int, int, int[], int);
     method public static void glGetProgramPipelineiv(int, int, java.nio.IntBuffer);
-    method public static int glGetProgramResourceIndex(int, int, java.lang.String);
-    method public static int glGetProgramResourceLocation(int, int, java.lang.String);
-    method public static java.lang.String glGetProgramResourceName(int, int, int);
+    method public static int glGetProgramResourceIndex(int, int, String);
+    method public static int glGetProgramResourceLocation(int, int, String);
+    method public static String glGetProgramResourceName(int, int, int);
     method public static void glGetProgramResourceiv(int, int, int, int, int[], int, int, int[], int, int[], int);
     method public static void glGetProgramResourceiv(int, int, int, int, java.nio.IntBuffer, int, java.nio.IntBuffer, java.nio.IntBuffer);
     method public static void glGetTexLevelParameterfv(int, int, int, float[], int);
@@ -33289,17 +33203,17 @@
     method public static void glDebugMessageCallbackKHR(android.opengl.GLES31Ext.DebugProcKHR);
     method public static void glDebugMessageControlKHR(int, int, int, int, int[], int, boolean);
     method public static void glDebugMessageControlKHR(int, int, int, int, java.nio.IntBuffer, boolean);
-    method public static void glDebugMessageInsertKHR(int, int, int, int, java.lang.String);
+    method public static void glDebugMessageInsertKHR(int, int, int, int, String);
     method public static void glDisableiEXT(int, int);
     method public static void glEnableiEXT(int, int);
     method public static void glFramebufferTextureEXT(int, int, int, int);
     method public static android.opengl.GLES31Ext.DebugProcKHR glGetDebugMessageCallbackKHR();
     method public static int glGetDebugMessageLogKHR(int, int, int[], int, int[], int, int[], int, int[], int, int[], int, byte[], int);
     method public static int glGetDebugMessageLogKHR(int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.ByteBuffer);
-    method public static java.lang.String[] glGetDebugMessageLogKHR(int, int[], int, int[], int, int[], int, int[], int);
-    method public static java.lang.String[] glGetDebugMessageLogKHR(int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer);
-    method public static java.lang.String glGetObjectLabelKHR(int, int);
-    method public static java.lang.String glGetObjectPtrLabelKHR(long);
+    method public static String[] glGetDebugMessageLogKHR(int, int[], int, int[], int, int[], int, int[], int);
+    method public static String[] glGetDebugMessageLogKHR(int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer);
+    method public static String glGetObjectLabelKHR(int, int);
+    method public static String glGetObjectPtrLabelKHR(long);
     method public static void glGetSamplerParameterIivEXT(int, int, int[], int);
     method public static void glGetSamplerParameterIivEXT(int, int, java.nio.IntBuffer);
     method public static void glGetSamplerParameterIuivEXT(int, int, int[], int);
@@ -33310,12 +33224,12 @@
     method public static void glGetTexParameterIuivEXT(int, int, java.nio.IntBuffer);
     method public static boolean glIsEnablediEXT(int, int);
     method public static void glMinSampleShadingOES(float);
-    method public static void glObjectLabelKHR(int, int, int, java.lang.String);
-    method public static void glObjectPtrLabelKHR(long, java.lang.String);
+    method public static void glObjectLabelKHR(int, int, int, String);
+    method public static void glObjectPtrLabelKHR(long, String);
     method public static void glPatchParameteriEXT(int, int);
     method public static void glPopDebugGroupKHR();
     method public static void glPrimitiveBoundingBoxEXT(float, float, float, float, float, float, float, float);
-    method public static void glPushDebugGroupKHR(int, int, int, java.lang.String);
+    method public static void glPushDebugGroupKHR(int, int, int, String);
     method public static void glSamplerParameterIivEXT(int, int, int[], int);
     method public static void glSamplerParameterIivEXT(int, int, java.nio.IntBuffer);
     method public static void glSamplerParameterIuivEXT(int, int, int[], int);
@@ -33529,8 +33443,8 @@
     field public static final int GL_VERTEX_ARRAY_KHR = 32884; // 0x8074
   }
 
-  public static abstract interface GLES31Ext.DebugProcKHR {
-    method public abstract void onMessage(int, int, int, int, java.lang.String);
+  public static interface GLES31Ext.DebugProcKHR {
+    method public void onMessage(int, int, int, int, String);
   }
 
   public class GLES32 extends android.opengl.GLES31 {
@@ -33544,7 +33458,7 @@
     method public static void glDebugMessageCallback(android.opengl.GLES32.DebugProc);
     method public static void glDebugMessageControl(int, int, int, int, int[], int, boolean);
     method public static void glDebugMessageControl(int, int, int, int, java.nio.IntBuffer, boolean);
-    method public static void glDebugMessageInsert(int, int, int, int, int, java.lang.String);
+    method public static void glDebugMessageInsert(int, int, int, int, int, String);
     method public static void glDisablei(int, int);
     method public static void glDrawElementsBaseVertex(int, int, int, java.nio.Buffer, int);
     method public static void glDrawElementsInstancedBaseVertex(int, int, int, java.nio.Buffer, int, int);
@@ -33554,11 +33468,11 @@
     method public static void glFramebufferTexture(int, int, int, int);
     method public static int glGetDebugMessageLog(int, int, int[], int, int[], int, int[], int, int[], int, int[], int, byte[], int);
     method public static int glGetDebugMessageLog(int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.ByteBuffer);
-    method public static java.lang.String[] glGetDebugMessageLog(int, int[], int, int[], int, int[], int, int[], int);
-    method public static java.lang.String[] glGetDebugMessageLog(int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer);
+    method public static String[] glGetDebugMessageLog(int, int[], int, int[], int, int[], int, int[], int);
+    method public static String[] glGetDebugMessageLog(int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer);
     method public static int glGetGraphicsResetStatus();
-    method public static java.lang.String glGetObjectLabel(int, int);
-    method public static java.lang.String glGetObjectPtrLabel(long);
+    method public static String glGetObjectLabel(int, int);
+    method public static String glGetObjectPtrLabel(long);
     method public static long glGetPointerv(int);
     method public static void glGetSamplerParameterIiv(int, int, int[], int);
     method public static void glGetSamplerParameterIiv(int, int, java.nio.IntBuffer);
@@ -33576,12 +33490,12 @@
     method public static void glGetnUniformuiv(int, int, int, java.nio.IntBuffer);
     method public static boolean glIsEnabledi(int, int);
     method public static void glMinSampleShading(float);
-    method public static void glObjectLabel(int, int, int, java.lang.String);
-    method public static void glObjectPtrLabel(long, java.lang.String);
+    method public static void glObjectLabel(int, int, int, String);
+    method public static void glObjectPtrLabel(long, String);
     method public static void glPatchParameteri(int, int);
     method public static void glPopDebugGroup();
     method public static void glPrimitiveBoundingBox(float, float, float, float, float, float, float, float);
-    method public static void glPushDebugGroup(int, int, int, java.lang.String);
+    method public static void glPushDebugGroup(int, int, int, String);
     method public static void glReadnPixels(int, int, int, int, int, int, int, java.nio.Buffer);
     method public static void glSamplerParameterIiv(int, int, int[], int);
     method public static void glSamplerParameterIiv(int, int, java.nio.IntBuffer);
@@ -33802,13 +33716,13 @@
     field public static final int GL_VERTEX_ARRAY = 32884; // 0x8074
   }
 
-  public static abstract interface GLES32.DebugProc {
-    method public abstract void onMessage(int, int, int, int, java.lang.String);
+  public static interface GLES32.DebugProc {
+    method public void onMessage(int, int, int, int, String);
   }
 
   public class GLException extends java.lang.RuntimeException {
     ctor public GLException(int);
-    ctor public GLException(int, java.lang.String);
+    ctor public GLException(int, String);
   }
 
   public class GLSurfaceView extends android.view.SurfaceView implements android.view.SurfaceHolder.Callback2 {
@@ -33819,7 +33733,7 @@
     method public int getRenderMode();
     method public void onPause();
     method public void onResume();
-    method public void queueEvent(java.lang.Runnable);
+    method public void queueEvent(Runnable);
     method public void requestRender();
     method public void setDebugFlags(int);
     method public void setEGLConfigChooser(android.opengl.GLSurfaceView.EGLConfigChooser);
@@ -33835,40 +33749,40 @@
     method public void surfaceChanged(android.view.SurfaceHolder, int, int, int);
     method public void surfaceCreated(android.view.SurfaceHolder);
     method public void surfaceDestroyed(android.view.SurfaceHolder);
-    method public deprecated void surfaceRedrawNeeded(android.view.SurfaceHolder);
+    method @Deprecated public void surfaceRedrawNeeded(android.view.SurfaceHolder);
     field public static final int DEBUG_CHECK_GL_ERROR = 1; // 0x1
     field public static final int DEBUG_LOG_GL_CALLS = 2; // 0x2
     field public static final int RENDERMODE_CONTINUOUSLY = 1; // 0x1
     field public static final int RENDERMODE_WHEN_DIRTY = 0; // 0x0
   }
 
-  public static abstract interface GLSurfaceView.EGLConfigChooser {
-    method public abstract javax.microedition.khronos.egl.EGLConfig chooseConfig(javax.microedition.khronos.egl.EGL10, javax.microedition.khronos.egl.EGLDisplay);
+  public static interface GLSurfaceView.EGLConfigChooser {
+    method public javax.microedition.khronos.egl.EGLConfig chooseConfig(javax.microedition.khronos.egl.EGL10, javax.microedition.khronos.egl.EGLDisplay);
   }
 
-  public static abstract interface GLSurfaceView.EGLContextFactory {
-    method public abstract javax.microedition.khronos.egl.EGLContext createContext(javax.microedition.khronos.egl.EGL10, javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig);
-    method public abstract void destroyContext(javax.microedition.khronos.egl.EGL10, javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLContext);
+  public static interface GLSurfaceView.EGLContextFactory {
+    method public javax.microedition.khronos.egl.EGLContext createContext(javax.microedition.khronos.egl.EGL10, javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig);
+    method public void destroyContext(javax.microedition.khronos.egl.EGL10, javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLContext);
   }
 
-  public static abstract interface GLSurfaceView.EGLWindowSurfaceFactory {
-    method public abstract javax.microedition.khronos.egl.EGLSurface createWindowSurface(javax.microedition.khronos.egl.EGL10, javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object);
-    method public abstract void destroySurface(javax.microedition.khronos.egl.EGL10, javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface);
+  public static interface GLSurfaceView.EGLWindowSurfaceFactory {
+    method public javax.microedition.khronos.egl.EGLSurface createWindowSurface(javax.microedition.khronos.egl.EGL10, javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, Object);
+    method public void destroySurface(javax.microedition.khronos.egl.EGL10, javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface);
   }
 
-  public static abstract interface GLSurfaceView.GLWrapper {
-    method public abstract javax.microedition.khronos.opengles.GL wrap(javax.microedition.khronos.opengles.GL);
+  public static interface GLSurfaceView.GLWrapper {
+    method public javax.microedition.khronos.opengles.GL wrap(javax.microedition.khronos.opengles.GL);
   }
 
-  public static abstract interface GLSurfaceView.Renderer {
-    method public abstract void onDrawFrame(javax.microedition.khronos.opengles.GL10);
-    method public abstract void onSurfaceChanged(javax.microedition.khronos.opengles.GL10, int, int);
-    method public abstract void onSurfaceCreated(javax.microedition.khronos.opengles.GL10, javax.microedition.khronos.egl.EGLConfig);
+  public static interface GLSurfaceView.Renderer {
+    method public void onDrawFrame(javax.microedition.khronos.opengles.GL10);
+    method public void onSurfaceChanged(javax.microedition.khronos.opengles.GL10, int, int);
+    method public void onSurfaceCreated(javax.microedition.khronos.opengles.GL10, javax.microedition.khronos.egl.EGLConfig);
   }
 
   public class GLU {
     ctor public GLU();
-    method public static java.lang.String gluErrorString(int);
+    method public static String gluErrorString(int);
     method public static void gluLookAt(javax.microedition.khronos.opengles.GL10, float, float, float, float, float, float, float, float, float);
     method public static void gluOrtho2D(javax.microedition.khronos.opengles.GL10, float, float, float, float);
     method public static void gluPerspective(javax.microedition.khronos.opengles.GL10, float, float, float, float);
@@ -33877,7 +33791,7 @@
   }
 
   public final class GLUtils {
-    method public static java.lang.String getEGLErrorString(int);
+    method public static String getEGLErrorString(int);
     method public static int getInternalFormat(android.graphics.Bitmap);
     method public static int getType(android.graphics.Bitmap);
     method public static void texImage2D(int, int, int, android.graphics.Bitmap, int);
@@ -33888,7 +33802,7 @@
   }
 
   public class Matrix {
-    ctor public deprecated Matrix();
+    ctor @Deprecated public Matrix();
     method public static void frustumM(float[], int, float, float, float, float, float, float);
     method public static boolean invertM(float[], int, float[], int);
     method public static float length(float, float, float);
@@ -33923,70 +33837,68 @@
   public abstract class AsyncTask<Params, Progress, Result> {
     ctor public AsyncTask();
     method public final boolean cancel(boolean);
-    method protected abstract Result doInBackground(Params...);
-    method public final android.os.AsyncTask<Params, Progress, Result> execute(Params...);
-    method public static void execute(java.lang.Runnable);
-    method public final android.os.AsyncTask<Params, Progress, Result> executeOnExecutor(java.util.concurrent.Executor, Params...);
+    method @WorkerThread protected abstract Result doInBackground(Params...);
+    method @MainThread public final android.os.AsyncTask<Params,Progress,Result> execute(Params...);
+    method @MainThread public static void execute(Runnable);
+    method @MainThread public final android.os.AsyncTask<Params,Progress,Result> executeOnExecutor(java.util.concurrent.Executor, Params...);
     method public final Result get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
     method public final Result get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
     method public final android.os.AsyncTask.Status getStatus();
     method public final boolean isCancelled();
-    method protected void onCancelled(Result);
-    method protected void onCancelled();
-    method protected void onPostExecute(Result);
-    method protected void onPreExecute();
-    method protected void onProgressUpdate(Progress...);
-    method protected final void publishProgress(Progress...);
+    method @MainThread protected void onCancelled(Result);
+    method @MainThread protected void onCancelled();
+    method @MainThread protected void onPostExecute(Result);
+    method @MainThread protected void onPreExecute();
+    method @MainThread protected void onProgressUpdate(Progress...);
+    method @WorkerThread protected final void publishProgress(Progress...);
     field public static final java.util.concurrent.Executor SERIAL_EXECUTOR;
     field public static final java.util.concurrent.Executor THREAD_POOL_EXECUTOR;
   }
 
-  public static final class AsyncTask.Status extends java.lang.Enum {
-    method public static android.os.AsyncTask.Status valueOf(java.lang.String);
-    method public static final android.os.AsyncTask.Status[] values();
+  public enum AsyncTask.Status {
     enum_constant public static final android.os.AsyncTask.Status FINISHED;
     enum_constant public static final android.os.AsyncTask.Status PENDING;
     enum_constant public static final android.os.AsyncTask.Status RUNNING;
   }
 
   public class BadParcelableException extends android.util.AndroidRuntimeException {
-    ctor public BadParcelableException(java.lang.String);
-    ctor public BadParcelableException(java.lang.Exception);
+    ctor public BadParcelableException(String);
+    ctor public BadParcelableException(Exception);
   }
 
   public class BaseBundle {
     method public void clear();
-    method public boolean containsKey(java.lang.String);
-    method public java.lang.Object get(java.lang.String);
-    method public boolean getBoolean(java.lang.String);
-    method public boolean getBoolean(java.lang.String, boolean);
-    method public boolean[] getBooleanArray(java.lang.String);
-    method public double getDouble(java.lang.String);
-    method public double getDouble(java.lang.String, double);
-    method public double[] getDoubleArray(java.lang.String);
-    method public int getInt(java.lang.String);
-    method public int getInt(java.lang.String, int);
-    method public int[] getIntArray(java.lang.String);
-    method public long getLong(java.lang.String);
-    method public long getLong(java.lang.String, long);
-    method public long[] getLongArray(java.lang.String);
-    method public java.lang.String getString(java.lang.String);
-    method public java.lang.String getString(java.lang.String, java.lang.String);
-    method public java.lang.String[] getStringArray(java.lang.String);
+    method public boolean containsKey(String);
+    method @Nullable public Object get(String);
+    method public boolean getBoolean(String);
+    method public boolean getBoolean(String, boolean);
+    method @Nullable public boolean[] getBooleanArray(@Nullable String);
+    method public double getDouble(String);
+    method public double getDouble(String, double);
+    method @Nullable public double[] getDoubleArray(@Nullable String);
+    method public int getInt(String);
+    method public int getInt(String, int);
+    method @Nullable public int[] getIntArray(@Nullable String);
+    method public long getLong(String);
+    method public long getLong(String, long);
+    method @Nullable public long[] getLongArray(@Nullable String);
+    method @Nullable public String getString(@Nullable String);
+    method public String getString(@Nullable String, String);
+    method @Nullable public String[] getStringArray(@Nullable String);
     method public boolean isEmpty();
     method public java.util.Set<java.lang.String> keySet();
     method public void putAll(android.os.PersistableBundle);
-    method public void putBoolean(java.lang.String, boolean);
-    method public void putBooleanArray(java.lang.String, boolean[]);
-    method public void putDouble(java.lang.String, double);
-    method public void putDoubleArray(java.lang.String, double[]);
-    method public void putInt(java.lang.String, int);
-    method public void putIntArray(java.lang.String, int[]);
-    method public void putLong(java.lang.String, long);
-    method public void putLongArray(java.lang.String, long[]);
-    method public void putString(java.lang.String, java.lang.String);
-    method public void putStringArray(java.lang.String, java.lang.String[]);
-    method public void remove(java.lang.String);
+    method public void putBoolean(@Nullable String, boolean);
+    method public void putBooleanArray(@Nullable String, @Nullable boolean[]);
+    method public void putDouble(@Nullable String, double);
+    method public void putDoubleArray(@Nullable String, @Nullable double[]);
+    method public void putInt(@Nullable String, int);
+    method public void putIntArray(@Nullable String, @Nullable int[]);
+    method public void putLong(@Nullable String, long);
+    method public void putLongArray(@Nullable String, @Nullable long[]);
+    method public void putString(@Nullable String, @Nullable String);
+    method public void putStringArray(@Nullable String, @Nullable String[]);
+    method public void remove(String);
     method public int size();
   }
 
@@ -33995,8 +33907,8 @@
     method public int getIntProperty(int);
     method public long getLongProperty(int);
     method public boolean isCharging();
-    field public static final java.lang.String ACTION_CHARGING = "android.os.action.CHARGING";
-    field public static final java.lang.String ACTION_DISCHARGING = "android.os.action.DISCHARGING";
+    field public static final String ACTION_CHARGING = "android.os.action.CHARGING";
+    field public static final String ACTION_DISCHARGING = "android.os.action.DISCHARGING";
     field public static final int BATTERY_HEALTH_COLD = 7; // 0x7
     field public static final int BATTERY_HEALTH_DEAD = 4; // 0x4
     field public static final int BATTERY_HEALTH_GOOD = 2; // 0x2
@@ -34018,93 +33930,93 @@
     field public static final int BATTERY_STATUS_FULL = 5; // 0x5
     field public static final int BATTERY_STATUS_NOT_CHARGING = 4; // 0x4
     field public static final int BATTERY_STATUS_UNKNOWN = 1; // 0x1
-    field public static final java.lang.String EXTRA_BATTERY_LOW = "battery_low";
-    field public static final java.lang.String EXTRA_HEALTH = "health";
-    field public static final java.lang.String EXTRA_ICON_SMALL = "icon-small";
-    field public static final java.lang.String EXTRA_LEVEL = "level";
-    field public static final java.lang.String EXTRA_PLUGGED = "plugged";
-    field public static final java.lang.String EXTRA_PRESENT = "present";
-    field public static final java.lang.String EXTRA_SCALE = "scale";
-    field public static final java.lang.String EXTRA_STATUS = "status";
-    field public static final java.lang.String EXTRA_TECHNOLOGY = "technology";
-    field public static final java.lang.String EXTRA_TEMPERATURE = "temperature";
-    field public static final java.lang.String EXTRA_VOLTAGE = "voltage";
+    field public static final String EXTRA_BATTERY_LOW = "battery_low";
+    field public static final String EXTRA_HEALTH = "health";
+    field public static final String EXTRA_ICON_SMALL = "icon-small";
+    field public static final String EXTRA_LEVEL = "level";
+    field public static final String EXTRA_PLUGGED = "plugged";
+    field public static final String EXTRA_PRESENT = "present";
+    field public static final String EXTRA_SCALE = "scale";
+    field public static final String EXTRA_STATUS = "status";
+    field public static final String EXTRA_TECHNOLOGY = "technology";
+    field public static final String EXTRA_TEMPERATURE = "temperature";
+    field public static final String EXTRA_VOLTAGE = "voltage";
   }
 
   public class Binder implements android.os.IBinder {
     ctor public Binder();
-    ctor public Binder(java.lang.String);
-    method public void attachInterface(android.os.IInterface, java.lang.String);
+    ctor public Binder(@Nullable String);
+    method public void attachInterface(@Nullable android.os.IInterface, @Nullable String);
     method public static final long clearCallingIdentity();
-    method public void dump(java.io.FileDescriptor, java.lang.String[]);
-    method protected void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method public void dumpAsync(java.io.FileDescriptor, java.lang.String[]);
+    method public void dump(@NonNull java.io.FileDescriptor, @Nullable String[]);
+    method protected void dump(@NonNull java.io.FileDescriptor, @NonNull java.io.PrintWriter, @Nullable String[]);
+    method public void dumpAsync(@NonNull java.io.FileDescriptor, @Nullable String[]);
     method public static final void flushPendingCommands();
     method public static final int getCallingPid();
     method public static final int getCallingUid();
     method public static final int getCallingUidOrThrow();
-    method public static final android.os.UserHandle getCallingUserHandle();
-    method public java.lang.String getInterfaceDescriptor();
+    method @NonNull public static final android.os.UserHandle getCallingUserHandle();
+    method @Nullable public String getInterfaceDescriptor();
     method public boolean isBinderAlive();
     method public static final void joinThreadPool();
-    method public void linkToDeath(android.os.IBinder.DeathRecipient, int);
-    method protected boolean onTransact(int, android.os.Parcel, android.os.Parcel, int) throws android.os.RemoteException;
+    method public void linkToDeath(@NonNull android.os.IBinder.DeathRecipient, int);
+    method protected boolean onTransact(int, @NonNull android.os.Parcel, @Nullable android.os.Parcel, int) throws android.os.RemoteException;
     method public boolean pingBinder();
-    method public android.os.IInterface queryLocalInterface(java.lang.String);
+    method @Nullable public android.os.IInterface queryLocalInterface(@NonNull String);
     method public static final void restoreCallingIdentity(long);
-    method public final boolean transact(int, android.os.Parcel, android.os.Parcel, int) throws android.os.RemoteException;
-    method public boolean unlinkToDeath(android.os.IBinder.DeathRecipient, int);
+    method public final boolean transact(int, @NonNull android.os.Parcel, @Nullable android.os.Parcel, int) throws android.os.RemoteException;
+    method public boolean unlinkToDeath(@NonNull android.os.IBinder.DeathRecipient, int);
   }
 
   public class Build {
     ctor public Build();
-    method public static java.util.List<android.os.Build.Partition> getFingerprintedPartitions();
-    method public static java.lang.String getRadioVersion();
-    method public static java.lang.String getSerial();
-    field public static final java.lang.String BOARD;
-    field public static final java.lang.String BOOTLOADER;
-    field public static final java.lang.String BRAND;
-    field public static final deprecated java.lang.String CPU_ABI;
-    field public static final deprecated java.lang.String CPU_ABI2;
-    field public static final java.lang.String DEVICE;
-    field public static final java.lang.String DISPLAY;
-    field public static final java.lang.String FINGERPRINT;
-    field public static final java.lang.String HARDWARE;
-    field public static final java.lang.String HOST;
-    field public static final java.lang.String ID;
-    field public static final java.lang.String MANUFACTURER;
-    field public static final java.lang.String MODEL;
-    field public static final java.lang.String PRODUCT;
-    field public static final deprecated java.lang.String RADIO;
-    field public static final deprecated java.lang.String SERIAL;
-    field public static final java.lang.String[] SUPPORTED_32_BIT_ABIS;
-    field public static final java.lang.String[] SUPPORTED_64_BIT_ABIS;
-    field public static final java.lang.String[] SUPPORTED_ABIS;
-    field public static final java.lang.String TAGS;
+    method @NonNull public static java.util.List<android.os.Build.Partition> getFingerprintedPartitions();
+    method public static String getRadioVersion();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public static String getSerial();
+    field public static final String BOARD;
+    field public static final String BOOTLOADER;
+    field public static final String BRAND;
+    field @Deprecated public static final String CPU_ABI;
+    field @Deprecated public static final String CPU_ABI2;
+    field public static final String DEVICE;
+    field public static final String DISPLAY;
+    field public static final String FINGERPRINT;
+    field public static final String HARDWARE;
+    field public static final String HOST;
+    field public static final String ID;
+    field public static final String MANUFACTURER;
+    field public static final String MODEL;
+    field public static final String PRODUCT;
+    field @Deprecated public static final String RADIO;
+    field @Deprecated public static final String SERIAL;
+    field public static final String[] SUPPORTED_32_BIT_ABIS;
+    field public static final String[] SUPPORTED_64_BIT_ABIS;
+    field public static final String[] SUPPORTED_ABIS;
+    field public static final String TAGS;
     field public static final long TIME;
-    field public static final java.lang.String TYPE;
-    field public static final java.lang.String UNKNOWN = "unknown";
-    field public static final java.lang.String USER;
+    field public static final String TYPE;
+    field public static final String UNKNOWN = "unknown";
+    field public static final String USER;
   }
 
   public static class Build.Partition {
     ctor public Build.Partition();
     method public long getBuildTimeMillis();
-    method public java.lang.String getFingerprint();
-    method public java.lang.String getName();
-    field public static final java.lang.String PARTITION_NAME_SYSTEM = "system";
+    method @NonNull public String getFingerprint();
+    method @NonNull public String getName();
+    field public static final String PARTITION_NAME_SYSTEM = "system";
   }
 
   public static class Build.VERSION {
     ctor public Build.VERSION();
-    field public static final java.lang.String BASE_OS;
-    field public static final java.lang.String CODENAME;
-    field public static final java.lang.String INCREMENTAL;
+    field public static final String BASE_OS;
+    field public static final String CODENAME;
+    field public static final String INCREMENTAL;
     field public static final int PREVIEW_SDK_INT;
-    field public static final java.lang.String RELEASE;
-    field public static final deprecated java.lang.String SDK;
+    field public static final String RELEASE;
+    field @Deprecated public static final String SDK;
     field public static final int SDK_INT;
-    field public static final java.lang.String SECURITY_PATCH;
+    field public static final String SECURITY_PATCH;
   }
 
   public static class Build.VERSION_CODES {
@@ -34143,68 +34055,67 @@
 
   public final class Bundle extends android.os.BaseBundle implements java.lang.Cloneable android.os.Parcelable {
     ctor public Bundle();
-    ctor public Bundle(java.lang.ClassLoader);
+    ctor public Bundle(ClassLoader);
     ctor public Bundle(int);
     ctor public Bundle(android.os.Bundle);
     ctor public Bundle(android.os.PersistableBundle);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public android.os.Bundle deepCopy();
     method public int describeContents();
-    method public android.os.IBinder getBinder(java.lang.String);
-    method public android.os.Bundle getBundle(java.lang.String);
-    method public byte getByte(java.lang.String);
-    method public java.lang.Byte getByte(java.lang.String, byte);
-    method public byte[] getByteArray(java.lang.String);
-    method public char getChar(java.lang.String);
-    method public char getChar(java.lang.String, char);
-    method public char[] getCharArray(java.lang.String);
-    method public java.lang.CharSequence getCharSequence(java.lang.String);
-    method public java.lang.CharSequence getCharSequence(java.lang.String, java.lang.CharSequence);
-    method public java.lang.CharSequence[] getCharSequenceArray(java.lang.String);
-    method public java.util.ArrayList<java.lang.CharSequence> getCharSequenceArrayList(java.lang.String);
-    method public java.lang.ClassLoader getClassLoader();
-    method public float getFloat(java.lang.String);
-    method public float getFloat(java.lang.String, float);
-    method public float[] getFloatArray(java.lang.String);
-    method public java.util.ArrayList<java.lang.Integer> getIntegerArrayList(java.lang.String);
-    method public <T extends android.os.Parcelable> T getParcelable(java.lang.String);
-    method public android.os.Parcelable[] getParcelableArray(java.lang.String);
-    method public <T extends android.os.Parcelable> java.util.ArrayList<T> getParcelableArrayList(java.lang.String);
-    method public java.io.Serializable getSerializable(java.lang.String);
-    method public short getShort(java.lang.String);
-    method public short getShort(java.lang.String, short);
-    method public short[] getShortArray(java.lang.String);
-    method public android.util.Size getSize(java.lang.String);
-    method public android.util.SizeF getSizeF(java.lang.String);
-    method public <T extends android.os.Parcelable> android.util.SparseArray<T> getSparseParcelableArray(java.lang.String);
-    method public java.util.ArrayList<java.lang.String> getStringArrayList(java.lang.String);
+    method @Nullable public android.os.IBinder getBinder(@Nullable String);
+    method @Nullable public android.os.Bundle getBundle(@Nullable String);
+    method public byte getByte(String);
+    method public Byte getByte(String, byte);
+    method @Nullable public byte[] getByteArray(@Nullable String);
+    method public char getChar(String);
+    method public char getChar(String, char);
+    method @Nullable public char[] getCharArray(@Nullable String);
+    method @Nullable public CharSequence getCharSequence(@Nullable String);
+    method public CharSequence getCharSequence(@Nullable String, CharSequence);
+    method @Nullable public CharSequence[] getCharSequenceArray(@Nullable String);
+    method @Nullable public java.util.ArrayList<java.lang.CharSequence> getCharSequenceArrayList(@Nullable String);
+    method public ClassLoader getClassLoader();
+    method public float getFloat(String);
+    method public float getFloat(String, float);
+    method @Nullable public float[] getFloatArray(@Nullable String);
+    method @Nullable public java.util.ArrayList<java.lang.Integer> getIntegerArrayList(@Nullable String);
+    method @Nullable public <T extends android.os.Parcelable> T getParcelable(@Nullable String);
+    method @Nullable public android.os.Parcelable[] getParcelableArray(@Nullable String);
+    method @Nullable public <T extends android.os.Parcelable> java.util.ArrayList<T> getParcelableArrayList(@Nullable String);
+    method @Nullable public java.io.Serializable getSerializable(@Nullable String);
+    method public short getShort(String);
+    method public short getShort(String, short);
+    method @Nullable public short[] getShortArray(@Nullable String);
+    method @Nullable public android.util.Size getSize(@Nullable String);
+    method @Nullable public android.util.SizeF getSizeF(@Nullable String);
+    method @Nullable public <T extends android.os.Parcelable> android.util.SparseArray<T> getSparseParcelableArray(@Nullable String);
+    method @Nullable public java.util.ArrayList<java.lang.String> getStringArrayList(@Nullable String);
     method public boolean hasFileDescriptors();
     method public void putAll(android.os.Bundle);
-    method public void putBinder(java.lang.String, android.os.IBinder);
-    method public void putBundle(java.lang.String, android.os.Bundle);
-    method public void putByte(java.lang.String, byte);
-    method public void putByteArray(java.lang.String, byte[]);
-    method public void putChar(java.lang.String, char);
-    method public void putCharArray(java.lang.String, char[]);
-    method public void putCharSequence(java.lang.String, java.lang.CharSequence);
-    method public void putCharSequenceArray(java.lang.String, java.lang.CharSequence[]);
-    method public void putCharSequenceArrayList(java.lang.String, java.util.ArrayList<java.lang.CharSequence>);
-    method public void putFloat(java.lang.String, float);
-    method public void putFloatArray(java.lang.String, float[]);
-    method public void putIntegerArrayList(java.lang.String, java.util.ArrayList<java.lang.Integer>);
-    method public void putParcelable(java.lang.String, android.os.Parcelable);
-    method public void putParcelableArray(java.lang.String, android.os.Parcelable[]);
-    method public void putParcelableArrayList(java.lang.String, java.util.ArrayList<? extends android.os.Parcelable>);
-    method public void putSerializable(java.lang.String, java.io.Serializable);
-    method public void putShort(java.lang.String, short);
-    method public void putShortArray(java.lang.String, short[]);
-    method public void putSize(java.lang.String, android.util.Size);
-    method public void putSizeF(java.lang.String, android.util.SizeF);
-    method public void putSparseParcelableArray(java.lang.String, android.util.SparseArray<? extends android.os.Parcelable>);
-    method public void putStringArrayList(java.lang.String, java.util.ArrayList<java.lang.String>);
+    method public void putBinder(@Nullable String, @Nullable android.os.IBinder);
+    method public void putBundle(@Nullable String, @Nullable android.os.Bundle);
+    method public void putByte(@Nullable String, byte);
+    method public void putByteArray(@Nullable String, @Nullable byte[]);
+    method public void putChar(@Nullable String, char);
+    method public void putCharArray(@Nullable String, @Nullable char[]);
+    method public void putCharSequence(@Nullable String, @Nullable CharSequence);
+    method public void putCharSequenceArray(@Nullable String, @Nullable CharSequence[]);
+    method public void putCharSequenceArrayList(@Nullable String, @Nullable java.util.ArrayList<java.lang.CharSequence>);
+    method public void putFloat(@Nullable String, float);
+    method public void putFloatArray(@Nullable String, @Nullable float[]);
+    method public void putIntegerArrayList(@Nullable String, @Nullable java.util.ArrayList<java.lang.Integer>);
+    method public void putParcelable(@Nullable String, @Nullable android.os.Parcelable);
+    method public void putParcelableArray(@Nullable String, @Nullable android.os.Parcelable[]);
+    method public void putParcelableArrayList(@Nullable String, @Nullable java.util.ArrayList<? extends android.os.Parcelable>);
+    method public void putSerializable(@Nullable String, @Nullable java.io.Serializable);
+    method public void putShort(@Nullable String, short);
+    method public void putShortArray(@Nullable String, @Nullable short[]);
+    method public void putSize(@Nullable String, @Nullable android.util.Size);
+    method public void putSizeF(@Nullable String, @Nullable android.util.SizeF);
+    method public void putSparseParcelableArray(@Nullable String, @Nullable android.util.SparseArray<? extends android.os.Parcelable>);
+    method public void putStringArrayList(@Nullable String, @Nullable java.util.ArrayList<java.lang.String>);
     method public void readFromParcel(android.os.Parcel);
-    method public void setClassLoader(java.lang.ClassLoader);
-    method public synchronized java.lang.String toString();
+    method public void setClassLoader(ClassLoader);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.Bundle> CREATOR;
     field public static final android.os.Bundle EMPTY;
@@ -34218,8 +34129,8 @@
     method public void throwIfCanceled();
   }
 
-  public static abstract interface CancellationSignal.OnCancelListener {
-    method public abstract void onCancel();
+  public static interface CancellationSignal.OnCancelListener {
+    method public void onCancel();
   }
 
   public class ConditionVariable {
@@ -34233,10 +34144,10 @@
 
   public abstract class CountDownTimer {
     ctor public CountDownTimer(long, long);
-    method public final synchronized void cancel();
+    method public final void cancel();
     method public abstract void onFinish();
     method public abstract void onTick(long);
-    method public final synchronized android.os.CountDownTimer start();
+    method public final android.os.CountDownTimer start();
   }
 
   public final class CpuUsageInfo implements android.os.Parcelable {
@@ -34249,7 +34160,7 @@
 
   public class DeadObjectException extends android.os.RemoteException {
     ctor public DeadObjectException();
-    ctor public DeadObjectException(java.lang.String);
+    ctor public DeadObjectException(String);
   }
 
   public class DeadSystemException extends android.os.DeadObjectException {
@@ -34257,69 +34168,69 @@
   }
 
   public final class Debug {
-    method public static void attachJvmtiAgent(java.lang.String, java.lang.String, java.lang.ClassLoader) throws java.io.IOException;
-    method public static deprecated void changeDebugPort(int);
-    method public static void dumpHprofData(java.lang.String) throws java.io.IOException;
-    method public static boolean dumpService(java.lang.String, java.io.FileDescriptor, java.lang.String[]);
+    method public static void attachJvmtiAgent(@NonNull String, @Nullable String, @Nullable ClassLoader) throws java.io.IOException;
+    method @Deprecated public static void changeDebugPort(int);
+    method public static void dumpHprofData(String) throws java.io.IOException;
+    method public static boolean dumpService(String, java.io.FileDescriptor, String[]);
     method public static void enableEmulatorTraceOutput();
     method public static int getBinderDeathObjectCount();
     method public static int getBinderLocalObjectCount();
     method public static int getBinderProxyObjectCount();
     method public static int getBinderReceivedTransactions();
     method public static int getBinderSentTransactions();
-    method public static deprecated int getGlobalAllocCount();
-    method public static deprecated int getGlobalAllocSize();
-    method public static deprecated int getGlobalClassInitCount();
-    method public static deprecated int getGlobalClassInitTime();
-    method public static deprecated int getGlobalExternalAllocCount();
-    method public static deprecated int getGlobalExternalAllocSize();
-    method public static deprecated int getGlobalExternalFreedCount();
-    method public static deprecated int getGlobalExternalFreedSize();
-    method public static deprecated int getGlobalFreedCount();
-    method public static deprecated int getGlobalFreedSize();
-    method public static deprecated int getGlobalGcInvocationCount();
+    method @Deprecated public static int getGlobalAllocCount();
+    method @Deprecated public static int getGlobalAllocSize();
+    method @Deprecated public static int getGlobalClassInitCount();
+    method @Deprecated public static int getGlobalClassInitTime();
+    method @Deprecated public static int getGlobalExternalAllocCount();
+    method @Deprecated public static int getGlobalExternalAllocSize();
+    method @Deprecated public static int getGlobalExternalFreedCount();
+    method @Deprecated public static int getGlobalExternalFreedSize();
+    method @Deprecated public static int getGlobalFreedCount();
+    method @Deprecated public static int getGlobalFreedSize();
+    method @Deprecated public static int getGlobalGcInvocationCount();
     method public static int getLoadedClassCount();
     method public static void getMemoryInfo(android.os.Debug.MemoryInfo);
     method public static long getNativeHeapAllocatedSize();
     method public static long getNativeHeapFreeSize();
     method public static long getNativeHeapSize();
     method public static long getPss();
-    method public static java.lang.String getRuntimeStat(java.lang.String);
-    method public static java.util.Map<java.lang.String, java.lang.String> getRuntimeStats();
-    method public static deprecated int getThreadAllocCount();
-    method public static deprecated int getThreadAllocSize();
-    method public static deprecated int getThreadExternalAllocCount();
-    method public static deprecated int getThreadExternalAllocSize();
-    method public static deprecated int getThreadGcInvocationCount();
+    method public static String getRuntimeStat(String);
+    method public static java.util.Map<java.lang.String,java.lang.String> getRuntimeStats();
+    method @Deprecated public static int getThreadAllocCount();
+    method @Deprecated public static int getThreadAllocSize();
+    method @Deprecated public static int getThreadExternalAllocCount();
+    method @Deprecated public static int getThreadExternalAllocSize();
+    method @Deprecated public static int getThreadGcInvocationCount();
     method public static boolean isDebuggerConnected();
     method public static void printLoadedClasses(int);
-    method public static deprecated void resetAllCounts();
-    method public static deprecated void resetGlobalAllocCount();
-    method public static deprecated void resetGlobalAllocSize();
-    method public static deprecated void resetGlobalClassInitCount();
-    method public static deprecated void resetGlobalClassInitTime();
-    method public static deprecated void resetGlobalExternalAllocCount();
-    method public static deprecated void resetGlobalExternalAllocSize();
-    method public static deprecated void resetGlobalExternalFreedCount();
-    method public static deprecated void resetGlobalExternalFreedSize();
-    method public static deprecated void resetGlobalFreedCount();
-    method public static deprecated void resetGlobalFreedSize();
-    method public static deprecated void resetGlobalGcInvocationCount();
-    method public static deprecated void resetThreadAllocCount();
-    method public static deprecated void resetThreadAllocSize();
-    method public static deprecated void resetThreadExternalAllocCount();
-    method public static deprecated void resetThreadExternalAllocSize();
-    method public static deprecated void resetThreadGcInvocationCount();
-    method public static deprecated int setAllocationLimit(int);
-    method public static deprecated int setGlobalAllocationLimit(int);
-    method public static deprecated void startAllocCounting();
+    method @Deprecated public static void resetAllCounts();
+    method @Deprecated public static void resetGlobalAllocCount();
+    method @Deprecated public static void resetGlobalAllocSize();
+    method @Deprecated public static void resetGlobalClassInitCount();
+    method @Deprecated public static void resetGlobalClassInitTime();
+    method @Deprecated public static void resetGlobalExternalAllocCount();
+    method @Deprecated public static void resetGlobalExternalAllocSize();
+    method @Deprecated public static void resetGlobalExternalFreedCount();
+    method @Deprecated public static void resetGlobalExternalFreedSize();
+    method @Deprecated public static void resetGlobalFreedCount();
+    method @Deprecated public static void resetGlobalFreedSize();
+    method @Deprecated public static void resetGlobalGcInvocationCount();
+    method @Deprecated public static void resetThreadAllocCount();
+    method @Deprecated public static void resetThreadAllocSize();
+    method @Deprecated public static void resetThreadExternalAllocCount();
+    method @Deprecated public static void resetThreadExternalAllocSize();
+    method @Deprecated public static void resetThreadGcInvocationCount();
+    method @Deprecated public static int setAllocationLimit(int);
+    method @Deprecated public static int setGlobalAllocationLimit(int);
+    method @Deprecated public static void startAllocCounting();
     method public static void startMethodTracing();
-    method public static void startMethodTracing(java.lang.String);
-    method public static void startMethodTracing(java.lang.String, int);
-    method public static void startMethodTracing(java.lang.String, int, int);
-    method public static void startMethodTracingSampling(java.lang.String, int, int);
+    method public static void startMethodTracing(String);
+    method public static void startMethodTracing(String, int);
+    method public static void startMethodTracing(String, int, int);
+    method public static void startMethodTracingSampling(String, int, int);
     method public static void startNativeTracing();
-    method public static deprecated void stopAllocCounting();
+    method @Deprecated public static void stopAllocCounting();
     method public static void stopMethodTracing();
     method public static void stopNativeTracing();
     method public static long threadCpuTimeNanos();
@@ -34328,22 +34239,22 @@
     field public static final int SHOW_CLASSLOADER = 2; // 0x2
     field public static final int SHOW_FULL_DETAIL = 1; // 0x1
     field public static final int SHOW_INITIALIZED = 4; // 0x4
-    field public static final deprecated int TRACE_COUNT_ALLOCS = 1; // 0x1
+    field @Deprecated public static final int TRACE_COUNT_ALLOCS = 1; // 0x1
   }
 
-  public static deprecated class Debug.InstructionCount {
-    ctor public Debug.InstructionCount();
-    method public boolean collect();
-    method public int globalMethodInvocations();
-    method public int globalTotal();
-    method public boolean resetAndStart();
+  @Deprecated public static class Debug.InstructionCount {
+    ctor @Deprecated public Debug.InstructionCount();
+    method @Deprecated public boolean collect();
+    method @Deprecated public int globalMethodInvocations();
+    method @Deprecated public int globalTotal();
+    method @Deprecated public boolean resetAndStart();
   }
 
   public static class Debug.MemoryInfo implements android.os.Parcelable {
     ctor public Debug.MemoryInfo();
     method public int describeContents();
-    method public java.lang.String getMemoryStat(java.lang.String);
-    method public java.util.Map<java.lang.String, java.lang.String> getMemoryStats();
+    method public String getMemoryStat(String);
+    method public java.util.Map<java.lang.String,java.lang.String> getMemoryStats();
     method public int getTotalPrivateClean();
     method public int getTotalPrivateDirty();
     method public int getTotalPss();
@@ -34366,31 +34277,31 @@
 
   public class DropBoxManager {
     ctor protected DropBoxManager();
-    method public void addData(java.lang.String, byte[], int);
-    method public void addFile(java.lang.String, java.io.File, int) throws java.io.IOException;
-    method public void addText(java.lang.String, java.lang.String);
-    method public android.os.DropBoxManager.Entry getNextEntry(java.lang.String, long);
-    method public boolean isTagEnabled(java.lang.String);
-    field public static final java.lang.String ACTION_DROPBOX_ENTRY_ADDED = "android.intent.action.DROPBOX_ENTRY_ADDED";
-    field public static final java.lang.String EXTRA_TAG = "tag";
-    field public static final java.lang.String EXTRA_TIME = "time";
+    method public void addData(String, byte[], int);
+    method public void addFile(String, java.io.File, int) throws java.io.IOException;
+    method public void addText(String, String);
+    method @RequiresPermission(allOf={android.Manifest.permission.READ_LOGS, android.Manifest.permission.PACKAGE_USAGE_STATS}) @Nullable public android.os.DropBoxManager.Entry getNextEntry(String, long);
+    method public boolean isTagEnabled(String);
+    field public static final String ACTION_DROPBOX_ENTRY_ADDED = "android.intent.action.DROPBOX_ENTRY_ADDED";
+    field public static final String EXTRA_TAG = "tag";
+    field public static final String EXTRA_TIME = "time";
     field public static final int IS_EMPTY = 1; // 0x1
     field public static final int IS_GZIPPED = 4; // 0x4
     field public static final int IS_TEXT = 2; // 0x2
   }
 
   public static class DropBoxManager.Entry implements java.io.Closeable android.os.Parcelable {
-    ctor public DropBoxManager.Entry(java.lang.String, long);
-    ctor public DropBoxManager.Entry(java.lang.String, long, java.lang.String);
-    ctor public DropBoxManager.Entry(java.lang.String, long, byte[], int);
-    ctor public DropBoxManager.Entry(java.lang.String, long, android.os.ParcelFileDescriptor, int);
-    ctor public DropBoxManager.Entry(java.lang.String, long, java.io.File, int) throws java.io.IOException;
+    ctor public DropBoxManager.Entry(String, long);
+    ctor public DropBoxManager.Entry(String, long, String);
+    ctor public DropBoxManager.Entry(String, long, byte[], int);
+    ctor public DropBoxManager.Entry(String, long, android.os.ParcelFileDescriptor, int);
+    ctor public DropBoxManager.Entry(String, long, java.io.File, int) throws java.io.IOException;
     method public void close();
     method public int describeContents();
     method public int getFlags();
     method public java.io.InputStream getInputStream() throws java.io.IOException;
-    method public java.lang.String getTag();
-    method public java.lang.String getText(int);
+    method public String getTag();
+    method public String getText(int);
     method public long getTimeMillis();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.DropBoxManager.Entry> CREATOR;
@@ -34401,45 +34312,45 @@
     method public static java.io.File getDataDirectory();
     method public static java.io.File getDownloadCacheDirectory();
     method public static java.io.File getExternalStorageDirectory();
-    method public static java.io.File getExternalStoragePublicDirectory(java.lang.String);
-    method public static java.lang.String getExternalStorageState();
-    method public static java.lang.String getExternalStorageState(java.io.File);
+    method public static java.io.File getExternalStoragePublicDirectory(String);
+    method public static String getExternalStorageState();
+    method public static String getExternalStorageState(java.io.File);
     method public static java.io.File getRootDirectory();
-    method public static deprecated java.lang.String getStorageState(java.io.File);
+    method @Deprecated public static String getStorageState(java.io.File);
     method public static boolean isExternalStorageEmulated();
     method public static boolean isExternalStorageEmulated(java.io.File);
     method public static boolean isExternalStorageRemovable();
     method public static boolean isExternalStorageRemovable(java.io.File);
-    field public static java.lang.String DIRECTORY_ALARMS;
-    field public static java.lang.String DIRECTORY_AUDIOBOOKS;
-    field public static java.lang.String DIRECTORY_DCIM;
-    field public static java.lang.String DIRECTORY_DOCUMENTS;
-    field public static java.lang.String DIRECTORY_DOWNLOADS;
-    field public static java.lang.String DIRECTORY_MOVIES;
-    field public static java.lang.String DIRECTORY_MUSIC;
-    field public static java.lang.String DIRECTORY_NOTIFICATIONS;
-    field public static java.lang.String DIRECTORY_PICTURES;
-    field public static java.lang.String DIRECTORY_PODCASTS;
-    field public static java.lang.String DIRECTORY_RINGTONES;
-    field public static java.lang.String DIRECTORY_SCREENSHOTS;
-    field public static final java.lang.String MEDIA_BAD_REMOVAL = "bad_removal";
-    field public static final java.lang.String MEDIA_CHECKING = "checking";
-    field public static final java.lang.String MEDIA_EJECTING = "ejecting";
-    field public static final java.lang.String MEDIA_MOUNTED = "mounted";
-    field public static final java.lang.String MEDIA_MOUNTED_READ_ONLY = "mounted_ro";
-    field public static final java.lang.String MEDIA_NOFS = "nofs";
-    field public static final java.lang.String MEDIA_REMOVED = "removed";
-    field public static final java.lang.String MEDIA_SHARED = "shared";
-    field public static final java.lang.String MEDIA_UNKNOWN = "unknown";
-    field public static final java.lang.String MEDIA_UNMOUNTABLE = "unmountable";
-    field public static final java.lang.String MEDIA_UNMOUNTED = "unmounted";
+    field public static String DIRECTORY_ALARMS;
+    field public static String DIRECTORY_AUDIOBOOKS;
+    field public static String DIRECTORY_DCIM;
+    field public static String DIRECTORY_DOCUMENTS;
+    field public static String DIRECTORY_DOWNLOADS;
+    field public static String DIRECTORY_MOVIES;
+    field public static String DIRECTORY_MUSIC;
+    field public static String DIRECTORY_NOTIFICATIONS;
+    field public static String DIRECTORY_PICTURES;
+    field public static String DIRECTORY_PODCASTS;
+    field public static String DIRECTORY_RINGTONES;
+    field public static String DIRECTORY_SCREENSHOTS;
+    field public static final String MEDIA_BAD_REMOVAL = "bad_removal";
+    field public static final String MEDIA_CHECKING = "checking";
+    field public static final String MEDIA_EJECTING = "ejecting";
+    field public static final String MEDIA_MOUNTED = "mounted";
+    field public static final String MEDIA_MOUNTED_READ_ONLY = "mounted_ro";
+    field public static final String MEDIA_NOFS = "nofs";
+    field public static final String MEDIA_REMOVED = "removed";
+    field public static final String MEDIA_SHARED = "shared";
+    field public static final String MEDIA_UNKNOWN = "unknown";
+    field public static final String MEDIA_UNMOUNTABLE = "unmountable";
+    field public static final String MEDIA_UNMOUNTED = "unmounted";
   }
 
   public abstract class FileObserver {
-    ctor public FileObserver(java.lang.String);
-    ctor public FileObserver(java.lang.String, int);
+    ctor public FileObserver(String);
+    ctor public FileObserver(String, int);
     method protected void finalize();
-    method public abstract void onEvent(int, java.lang.String);
+    method public abstract void onEvent(int, @Nullable String);
     method public void startWatching();
     method public void stopWatching();
     field public static final int ACCESS = 1; // 0x1
@@ -34458,22 +34369,22 @@
   }
 
   public class FileUriExposedException extends java.lang.RuntimeException {
-    ctor public FileUriExposedException(java.lang.String);
+    ctor public FileUriExposedException(String);
   }
 
   public class FileUtils {
-    method public static void closeQuietly(java.lang.AutoCloseable);
-    method public static void closeQuietly(java.io.FileDescriptor);
-    method public static long copy(java.io.File, java.io.File) throws java.io.IOException;
-    method public static long copy(java.io.File, java.io.File, android.os.CancellationSignal, java.util.concurrent.Executor, android.os.FileUtils.ProgressListener) throws java.io.IOException;
-    method public static long copy(java.io.InputStream, java.io.OutputStream) throws java.io.IOException;
-    method public static long copy(java.io.InputStream, java.io.OutputStream, android.os.CancellationSignal, java.util.concurrent.Executor, android.os.FileUtils.ProgressListener) throws java.io.IOException;
-    method public static long copy(java.io.FileDescriptor, java.io.FileDescriptor) throws java.io.IOException;
-    method public static long copy(java.io.FileDescriptor, java.io.FileDescriptor, android.os.CancellationSignal, java.util.concurrent.Executor, android.os.FileUtils.ProgressListener) throws java.io.IOException;
+    method public static void closeQuietly(@Nullable AutoCloseable);
+    method public static void closeQuietly(@Nullable java.io.FileDescriptor);
+    method public static long copy(@NonNull java.io.File, @NonNull java.io.File) throws java.io.IOException;
+    method public static long copy(@NonNull java.io.File, @NonNull java.io.File, @Nullable android.os.CancellationSignal, @Nullable java.util.concurrent.Executor, @Nullable android.os.FileUtils.ProgressListener) throws java.io.IOException;
+    method public static long copy(@NonNull java.io.InputStream, @NonNull java.io.OutputStream) throws java.io.IOException;
+    method public static long copy(@NonNull java.io.InputStream, @NonNull java.io.OutputStream, @Nullable android.os.CancellationSignal, @Nullable java.util.concurrent.Executor, @Nullable android.os.FileUtils.ProgressListener) throws java.io.IOException;
+    method public static long copy(@NonNull java.io.FileDescriptor, @NonNull java.io.FileDescriptor) throws java.io.IOException;
+    method public static long copy(@NonNull java.io.FileDescriptor, @NonNull java.io.FileDescriptor, @Nullable android.os.CancellationSignal, @Nullable java.util.concurrent.Executor, @Nullable android.os.FileUtils.ProgressListener) throws java.io.IOException;
   }
 
-  public static abstract interface FileUtils.ProgressListener {
-    method public abstract void onProgress(long);
+  public static interface FileUtils.ProgressListener {
+    method public void onProgress(long);
   }
 
   public class Handler {
@@ -34481,32 +34392,32 @@
     ctor public Handler(android.os.Handler.Callback);
     ctor public Handler(android.os.Looper);
     ctor public Handler(android.os.Looper, android.os.Handler.Callback);
-    method public static android.os.Handler createAsync(android.os.Looper);
-    method public static android.os.Handler createAsync(android.os.Looper, android.os.Handler.Callback);
+    method @NonNull public static android.os.Handler createAsync(@NonNull android.os.Looper);
+    method @NonNull public static android.os.Handler createAsync(@NonNull android.os.Looper, @NonNull android.os.Handler.Callback);
     method public void dispatchMessage(android.os.Message);
-    method public final void dump(android.util.Printer, java.lang.String);
+    method public final void dump(android.util.Printer, String);
     method public final android.os.Looper getLooper();
-    method public java.lang.String getMessageName(android.os.Message);
+    method public String getMessageName(android.os.Message);
     method public void handleMessage(android.os.Message);
-    method public final boolean hasCallbacks(java.lang.Runnable);
+    method public final boolean hasCallbacks(Runnable);
     method public final boolean hasMessages(int);
-    method public final boolean hasMessages(int, java.lang.Object);
+    method public final boolean hasMessages(int, Object);
     method public final android.os.Message obtainMessage();
     method public final android.os.Message obtainMessage(int);
-    method public final android.os.Message obtainMessage(int, java.lang.Object);
+    method public final android.os.Message obtainMessage(int, Object);
     method public final android.os.Message obtainMessage(int, int, int);
-    method public final android.os.Message obtainMessage(int, int, int, java.lang.Object);
-    method public final boolean post(java.lang.Runnable);
-    method public final boolean postAtFrontOfQueue(java.lang.Runnable);
-    method public final boolean postAtTime(java.lang.Runnable, long);
-    method public final boolean postAtTime(java.lang.Runnable, java.lang.Object, long);
-    method public final boolean postDelayed(java.lang.Runnable, long);
-    method public final boolean postDelayed(java.lang.Runnable, java.lang.Object, long);
-    method public final void removeCallbacks(java.lang.Runnable);
-    method public final void removeCallbacks(java.lang.Runnable, java.lang.Object);
-    method public final void removeCallbacksAndMessages(java.lang.Object);
+    method public final android.os.Message obtainMessage(int, int, int, Object);
+    method public final boolean post(Runnable);
+    method public final boolean postAtFrontOfQueue(Runnable);
+    method public final boolean postAtTime(Runnable, long);
+    method public final boolean postAtTime(Runnable, Object, long);
+    method public final boolean postDelayed(Runnable, long);
+    method public final boolean postDelayed(Runnable, Object, long);
+    method public final void removeCallbacks(Runnable);
+    method public final void removeCallbacks(Runnable, Object);
+    method public final void removeCallbacksAndMessages(Object);
     method public final void removeMessages(int);
-    method public final void removeMessages(int, java.lang.Object);
+    method public final void removeMessages(int, Object);
     method public final boolean sendEmptyMessage(int);
     method public final boolean sendEmptyMessageAtTime(int, long);
     method public final boolean sendEmptyMessageDelayed(int, long);
@@ -34516,13 +34427,13 @@
     method public final boolean sendMessageDelayed(android.os.Message, long);
   }
 
-  public static abstract interface Handler.Callback {
-    method public abstract boolean handleMessage(android.os.Message);
+  public static interface Handler.Callback {
+    method public boolean handleMessage(android.os.Message);
   }
 
   public class HandlerThread extends java.lang.Thread {
-    ctor public HandlerThread(java.lang.String);
-    ctor public HandlerThread(java.lang.String, int);
+    ctor public HandlerThread(String);
+    ctor public HandlerThread(String, int);
     method public android.os.Looper getLooper();
     method public int getThreadId();
     method protected void onLooperPrepared();
@@ -34531,9 +34442,9 @@
   }
 
   public class HardwarePropertiesManager {
-    method public android.os.CpuUsageInfo[] getCpuUsages();
-    method public float[] getDeviceTemperatures(int, int);
-    method public float[] getFanSpeeds();
+    method @NonNull public android.os.CpuUsageInfo[] getCpuUsages();
+    method @NonNull public float[] getDeviceTemperatures(int, int);
+    method @NonNull public float[] getFanSpeeds();
     field public static final int DEVICE_TEMPERATURE_BATTERY = 2; // 0x2
     field public static final int DEVICE_TEMPERATURE_CPU = 0; // 0x0
     field public static final int DEVICE_TEMPERATURE_GPU = 1; // 0x1
@@ -34545,16 +34456,16 @@
     field public static final float UNDEFINED_TEMPERATURE = -3.4028235E38f;
   }
 
-  public abstract interface IBinder {
-    method public abstract void dump(java.io.FileDescriptor, java.lang.String[]) throws android.os.RemoteException;
-    method public abstract void dumpAsync(java.io.FileDescriptor, java.lang.String[]) throws android.os.RemoteException;
-    method public abstract java.lang.String getInterfaceDescriptor() throws android.os.RemoteException;
-    method public abstract boolean isBinderAlive();
-    method public abstract void linkToDeath(android.os.IBinder.DeathRecipient, int) throws android.os.RemoteException;
-    method public abstract boolean pingBinder();
-    method public abstract android.os.IInterface queryLocalInterface(java.lang.String);
-    method public abstract boolean transact(int, android.os.Parcel, android.os.Parcel, int) throws android.os.RemoteException;
-    method public abstract boolean unlinkToDeath(android.os.IBinder.DeathRecipient, int);
+  public interface IBinder {
+    method public void dump(@NonNull java.io.FileDescriptor, @Nullable String[]) throws android.os.RemoteException;
+    method public void dumpAsync(@NonNull java.io.FileDescriptor, @Nullable String[]) throws android.os.RemoteException;
+    method @Nullable public String getInterfaceDescriptor() throws android.os.RemoteException;
+    method public boolean isBinderAlive();
+    method public void linkToDeath(@NonNull android.os.IBinder.DeathRecipient, int) throws android.os.RemoteException;
+    method public boolean pingBinder();
+    method @Nullable public android.os.IInterface queryLocalInterface(@NonNull String);
+    method public boolean transact(int, @NonNull android.os.Parcel, @Nullable android.os.Parcel, int) throws android.os.RemoteException;
+    method public boolean unlinkToDeath(@NonNull android.os.IBinder.DeathRecipient, int);
     field public static final int DUMP_TRANSACTION = 1598311760; // 0x5f444d50
     field public static final int FIRST_CALL_TRANSACTION = 1; // 0x1
     field public static final int FLAG_ONEWAY = 1; // 0x1
@@ -34565,55 +34476,55 @@
     field public static final int TWEET_TRANSACTION = 1599362900; // 0x5f545754
   }
 
-  public static abstract interface IBinder.DeathRecipient {
-    method public abstract void binderDied();
+  public static interface IBinder.DeathRecipient {
+    method public void binderDied();
   }
 
-  public abstract interface IInterface {
-    method public abstract android.os.IBinder asBinder();
+  public interface IInterface {
+    method public android.os.IBinder asBinder();
   }
 
   public final class LocaleList implements android.os.Parcelable {
-    ctor public LocaleList(java.util.Locale...);
+    ctor public LocaleList(@NonNull java.util.Locale...);
     method public int describeContents();
-    method public static android.os.LocaleList forLanguageTags(java.lang.String);
+    method @NonNull public static android.os.LocaleList forLanguageTags(@Nullable String);
     method public java.util.Locale get(int);
-    method public static android.os.LocaleList getAdjustedDefault();
-    method public static android.os.LocaleList getDefault();
-    method public static android.os.LocaleList getEmptyLocaleList();
-    method public java.util.Locale getFirstMatch(java.lang.String[]);
-    method public int indexOf(java.util.Locale);
+    method @NonNull @Size(min=1) public static android.os.LocaleList getAdjustedDefault();
+    method @NonNull @Size(min=1) public static android.os.LocaleList getDefault();
+    method @NonNull public static android.os.LocaleList getEmptyLocaleList();
+    method @Nullable public java.util.Locale getFirstMatch(String[]);
+    method @IntRange(from=0xffffffff) public int indexOf(java.util.Locale);
     method public boolean isEmpty();
-    method public static void setDefault(android.os.LocaleList);
-    method public int size();
-    method public java.lang.String toLanguageTags();
+    method public static void setDefault(@NonNull @Size(min=1) android.os.LocaleList);
+    method @IntRange(from=0) public int size();
+    method @NonNull public String toLanguageTags();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.LocaleList> CREATOR;
   }
 
   public final class Looper {
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(@NonNull android.util.Printer, @NonNull String);
     method public static android.os.Looper getMainLooper();
-    method public android.os.MessageQueue getQueue();
-    method public java.lang.Thread getThread();
+    method @NonNull public android.os.MessageQueue getQueue();
+    method @NonNull public Thread getThread();
     method public boolean isCurrentThread();
     method public static void loop();
-    method public static android.os.Looper myLooper();
-    method public static android.os.MessageQueue myQueue();
+    method @Nullable public static android.os.Looper myLooper();
+    method @NonNull public static android.os.MessageQueue myQueue();
     method public static void prepare();
     method public static void prepareMainLooper();
     method public void quit();
     method public void quitSafely();
-    method public void setMessageLogging(android.util.Printer);
+    method public void setMessageLogging(@Nullable android.util.Printer);
   }
 
   public class MemoryFile {
-    ctor public MemoryFile(java.lang.String, int) throws java.io.IOException;
-    method public deprecated synchronized boolean allowPurging(boolean) throws java.io.IOException;
+    ctor public MemoryFile(String, int) throws java.io.IOException;
+    method @Deprecated public boolean allowPurging(boolean) throws java.io.IOException;
     method public void close();
     method public java.io.InputStream getInputStream();
     method public java.io.OutputStream getOutputStream();
-    method public deprecated boolean isPurgingAllowed();
+    method @Deprecated public boolean isPurgingAllowed();
     method public int length();
     method public int readBytes(byte[], int, int, int) throws java.io.IOException;
     method public void writeBytes(byte[], int, int, int) throws java.io.IOException;
@@ -34623,7 +34534,7 @@
     ctor public Message();
     method public void copyFrom(android.os.Message);
     method public int describeContents();
-    method public java.lang.Runnable getCallback();
+    method public Runnable getCallback();
     method public android.os.Bundle getData();
     method public android.os.Handler getTarget();
     method public long getWhen();
@@ -34631,11 +34542,11 @@
     method public static android.os.Message obtain();
     method public static android.os.Message obtain(android.os.Message);
     method public static android.os.Message obtain(android.os.Handler);
-    method public static android.os.Message obtain(android.os.Handler, java.lang.Runnable);
+    method public static android.os.Message obtain(android.os.Handler, Runnable);
     method public static android.os.Message obtain(android.os.Handler, int);
-    method public static android.os.Message obtain(android.os.Handler, int, java.lang.Object);
+    method public static android.os.Message obtain(android.os.Handler, int, Object);
     method public static android.os.Message obtain(android.os.Handler, int, int, int);
-    method public static android.os.Message obtain(android.os.Handler, int, int, int, java.lang.Object);
+    method public static android.os.Message obtain(android.os.Handler, int, int, int, Object);
     method public android.os.Bundle peekData();
     method public void recycle();
     method public void sendToTarget();
@@ -34646,26 +34557,26 @@
     field public static final android.os.Parcelable.Creator<android.os.Message> CREATOR;
     field public int arg1;
     field public int arg2;
-    field public java.lang.Object obj;
+    field public Object obj;
     field public android.os.Messenger replyTo;
     field public int sendingUid;
     field public int what;
   }
 
   public final class MessageQueue {
-    method public void addIdleHandler(android.os.MessageQueue.IdleHandler);
-    method public void addOnFileDescriptorEventListener(java.io.FileDescriptor, int, android.os.MessageQueue.OnFileDescriptorEventListener);
+    method public void addIdleHandler(@NonNull android.os.MessageQueue.IdleHandler);
+    method public void addOnFileDescriptorEventListener(@NonNull java.io.FileDescriptor, int, @NonNull android.os.MessageQueue.OnFileDescriptorEventListener);
     method public boolean isIdle();
-    method public void removeIdleHandler(android.os.MessageQueue.IdleHandler);
-    method public void removeOnFileDescriptorEventListener(java.io.FileDescriptor);
+    method public void removeIdleHandler(@NonNull android.os.MessageQueue.IdleHandler);
+    method public void removeOnFileDescriptorEventListener(@NonNull java.io.FileDescriptor);
   }
 
-  public static abstract interface MessageQueue.IdleHandler {
-    method public abstract boolean queueIdle();
+  public static interface MessageQueue.IdleHandler {
+    method public boolean queueIdle();
   }
 
-  public static abstract interface MessageQueue.OnFileDescriptorEventListener {
-    method public abstract int onFileDescriptorEvents(java.io.FileDescriptor, int);
+  public static interface MessageQueue.OnFileDescriptorEventListener {
+    method public int onFileDescriptorEvents(@NonNull java.io.FileDescriptor, int);
     field public static final int EVENT_ERROR = 4; // 0x4
     field public static final int EVENT_INPUT = 1; // 0x1
     field public static final int EVENT_OUTPUT = 2; // 0x2
@@ -34689,126 +34600,126 @@
 
   public class OperationCanceledException extends java.lang.RuntimeException {
     ctor public OperationCanceledException();
-    ctor public OperationCanceledException(java.lang.String);
+    ctor public OperationCanceledException(String);
   }
 
   public final class Parcel {
     method public void appendFrom(android.os.Parcel, int, int);
-    method public android.os.IBinder[] createBinderArray();
-    method public java.util.ArrayList<android.os.IBinder> createBinderArrayList();
-    method public boolean[] createBooleanArray();
-    method public byte[] createByteArray();
-    method public char[] createCharArray();
-    method public double[] createDoubleArray();
-    method public float[] createFloatArray();
-    method public int[] createIntArray();
-    method public long[] createLongArray();
-    method public java.lang.String[] createStringArray();
-    method public java.util.ArrayList<java.lang.String> createStringArrayList();
-    method public <T> T[] createTypedArray(android.os.Parcelable.Creator<T>);
-    method public <T> java.util.ArrayList<T> createTypedArrayList(android.os.Parcelable.Creator<T>);
-    method public <T extends android.os.Parcelable> android.util.ArrayMap<java.lang.String, T> createTypedArrayMap(android.os.Parcelable.Creator<T>);
-    method public <T extends android.os.Parcelable> android.util.SparseArray<T> createTypedSparseArray(android.os.Parcelable.Creator<T>);
+    method @Nullable public android.os.IBinder[] createBinderArray();
+    method @Nullable public java.util.ArrayList<android.os.IBinder> createBinderArrayList();
+    method @Nullable public boolean[] createBooleanArray();
+    method @Nullable public byte[] createByteArray();
+    method @Nullable public char[] createCharArray();
+    method @Nullable public double[] createDoubleArray();
+    method @Nullable public float[] createFloatArray();
+    method @Nullable public int[] createIntArray();
+    method @Nullable public long[] createLongArray();
+    method @Nullable public String[] createStringArray();
+    method @Nullable public java.util.ArrayList<java.lang.String> createStringArrayList();
+    method @Nullable public <T> T[] createTypedArray(@NonNull android.os.Parcelable.Creator<T>);
+    method @Nullable public <T> java.util.ArrayList<T> createTypedArrayList(@NonNull android.os.Parcelable.Creator<T>);
+    method @Nullable public <T extends android.os.Parcelable> android.util.ArrayMap<java.lang.String,T> createTypedArrayMap(@NonNull android.os.Parcelable.Creator<T>);
+    method @Nullable public <T extends android.os.Parcelable> android.util.SparseArray<T> createTypedSparseArray(@NonNull android.os.Parcelable.Creator<T>);
     method public int dataAvail();
     method public int dataCapacity();
     method public int dataPosition();
     method public int dataSize();
-    method public void enforceInterface(java.lang.String);
+    method public void enforceInterface(String);
     method public boolean hasFileDescriptors();
     method public byte[] marshall();
-    method public static android.os.Parcel obtain();
-    method public java.lang.Object[] readArray(java.lang.ClassLoader);
-    method public java.util.ArrayList readArrayList(java.lang.ClassLoader);
-    method public void readBinderArray(android.os.IBinder[]);
-    method public void readBinderList(java.util.List<android.os.IBinder>);
+    method @NonNull public static android.os.Parcel obtain();
+    method @Nullable public Object[] readArray(@Nullable ClassLoader);
+    method @Nullable public java.util.ArrayList readArrayList(@Nullable ClassLoader);
+    method public void readBinderArray(@NonNull android.os.IBinder[]);
+    method public void readBinderList(@NonNull java.util.List<android.os.IBinder>);
     method public boolean readBoolean();
-    method public void readBooleanArray(boolean[]);
-    method public android.os.Bundle readBundle();
-    method public android.os.Bundle readBundle(java.lang.ClassLoader);
+    method public void readBooleanArray(@NonNull boolean[]);
+    method @Nullable public android.os.Bundle readBundle();
+    method @Nullable public android.os.Bundle readBundle(@Nullable ClassLoader);
     method public byte readByte();
-    method public void readByteArray(byte[]);
-    method public void readCharArray(char[]);
+    method public void readByteArray(@NonNull byte[]);
+    method public void readCharArray(@NonNull char[]);
     method public double readDouble();
-    method public void readDoubleArray(double[]);
+    method public void readDoubleArray(@NonNull double[]);
     method public void readException();
-    method public void readException(int, java.lang.String);
+    method public void readException(int, String);
     method public android.os.ParcelFileDescriptor readFileDescriptor();
     method public float readFloat();
-    method public void readFloatArray(float[]);
-    method public java.util.HashMap readHashMap(java.lang.ClassLoader);
+    method public void readFloatArray(@NonNull float[]);
+    method @Nullable public java.util.HashMap readHashMap(@Nullable ClassLoader);
     method public int readInt();
-    method public void readIntArray(int[]);
-    method public void readList(java.util.List, java.lang.ClassLoader);
+    method public void readIntArray(@NonNull int[]);
+    method public void readList(@NonNull java.util.List, @Nullable ClassLoader);
     method public long readLong();
-    method public void readLongArray(long[]);
-    method public void readMap(java.util.Map, java.lang.ClassLoader);
-    method public <T extends android.os.Parcelable> T readParcelable(java.lang.ClassLoader);
-    method public android.os.Parcelable[] readParcelableArray(java.lang.ClassLoader);
-    method public <T extends android.os.Parcelable> java.util.List<T> readParcelableList(java.util.List<T>, java.lang.ClassLoader);
-    method public android.os.PersistableBundle readPersistableBundle();
-    method public android.os.PersistableBundle readPersistableBundle(java.lang.ClassLoader);
-    method public java.io.Serializable readSerializable();
-    method public android.util.Size readSize();
-    method public android.util.SizeF readSizeF();
-    method public <T> android.util.SparseArray<T> readSparseArray(java.lang.ClassLoader);
-    method public android.util.SparseBooleanArray readSparseBooleanArray();
-    method public java.lang.String readString();
-    method public void readStringArray(java.lang.String[]);
-    method public void readStringList(java.util.List<java.lang.String>);
+    method public void readLongArray(@NonNull long[]);
+    method public void readMap(@NonNull java.util.Map, @Nullable ClassLoader);
+    method @Nullable public <T extends android.os.Parcelable> T readParcelable(@Nullable ClassLoader);
+    method @Nullable public android.os.Parcelable[] readParcelableArray(@Nullable ClassLoader);
+    method @NonNull public <T extends android.os.Parcelable> java.util.List<T> readParcelableList(@NonNull java.util.List<T>, @Nullable ClassLoader);
+    method @Nullable public android.os.PersistableBundle readPersistableBundle();
+    method @Nullable public android.os.PersistableBundle readPersistableBundle(@Nullable ClassLoader);
+    method @Nullable public java.io.Serializable readSerializable();
+    method @NonNull public android.util.Size readSize();
+    method @NonNull public android.util.SizeF readSizeF();
+    method @Nullable public <T> android.util.SparseArray<T> readSparseArray(@Nullable ClassLoader);
+    method @Nullable public android.util.SparseBooleanArray readSparseBooleanArray();
+    method @Nullable public String readString();
+    method public void readStringArray(@NonNull String[]);
+    method public void readStringList(@NonNull java.util.List<java.lang.String>);
     method public android.os.IBinder readStrongBinder();
-    method public <T> void readTypedArray(T[], android.os.Parcelable.Creator<T>);
-    method public <T> void readTypedList(java.util.List<T>, android.os.Parcelable.Creator<T>);
-    method public <T> T readTypedObject(android.os.Parcelable.Creator<T>);
-    method public java.lang.Object readValue(java.lang.ClassLoader);
+    method public <T> void readTypedArray(@NonNull T[], @NonNull android.os.Parcelable.Creator<T>);
+    method public <T> void readTypedList(@NonNull java.util.List<T>, @NonNull android.os.Parcelable.Creator<T>);
+    method @Nullable public <T> T readTypedObject(@NonNull android.os.Parcelable.Creator<T>);
+    method @Nullable public Object readValue(@Nullable ClassLoader);
     method public void recycle();
     method public void setDataCapacity(int);
     method public void setDataPosition(int);
     method public void setDataSize(int);
-    method public void unmarshall(byte[], int, int);
-    method public void writeArray(java.lang.Object[]);
-    method public void writeBinderArray(android.os.IBinder[]);
-    method public void writeBinderList(java.util.List<android.os.IBinder>);
+    method public void unmarshall(@NonNull byte[], int, int);
+    method public void writeArray(@Nullable Object[]);
+    method public void writeBinderArray(@Nullable android.os.IBinder[]);
+    method public void writeBinderList(@Nullable java.util.List<android.os.IBinder>);
     method public void writeBoolean(boolean);
-    method public void writeBooleanArray(boolean[]);
-    method public void writeBundle(android.os.Bundle);
+    method public void writeBooleanArray(@Nullable boolean[]);
+    method public void writeBundle(@Nullable android.os.Bundle);
     method public void writeByte(byte);
-    method public void writeByteArray(byte[]);
-    method public void writeByteArray(byte[], int, int);
-    method public void writeCharArray(char[]);
+    method public void writeByteArray(@Nullable byte[]);
+    method public void writeByteArray(@Nullable byte[], int, int);
+    method public void writeCharArray(@Nullable char[]);
     method public void writeDouble(double);
-    method public void writeDoubleArray(double[]);
-    method public void writeException(java.lang.Exception);
-    method public void writeFileDescriptor(java.io.FileDescriptor);
+    method public void writeDoubleArray(@Nullable double[]);
+    method public void writeException(@NonNull Exception);
+    method public void writeFileDescriptor(@NonNull java.io.FileDescriptor);
     method public void writeFloat(float);
-    method public void writeFloatArray(float[]);
+    method public void writeFloatArray(@Nullable float[]);
     method public void writeInt(int);
-    method public void writeIntArray(int[]);
-    method public void writeInterfaceToken(java.lang.String);
-    method public void writeList(java.util.List);
+    method public void writeIntArray(@Nullable int[]);
+    method public void writeInterfaceToken(String);
+    method public void writeList(@Nullable java.util.List);
     method public void writeLong(long);
-    method public void writeLongArray(long[]);
-    method public void writeMap(java.util.Map);
+    method public void writeLongArray(@Nullable long[]);
+    method public void writeMap(@Nullable java.util.Map);
     method public void writeNoException();
-    method public void writeParcelable(android.os.Parcelable, int);
-    method public <T extends android.os.Parcelable> void writeParcelableArray(T[], int);
-    method public <T extends android.os.Parcelable> void writeParcelableList(java.util.List<T>, int);
-    method public void writePersistableBundle(android.os.PersistableBundle);
-    method public void writeSerializable(java.io.Serializable);
-    method public void writeSize(android.util.Size);
-    method public void writeSizeF(android.util.SizeF);
-    method public <T> void writeSparseArray(android.util.SparseArray<T>);
-    method public void writeSparseBooleanArray(android.util.SparseBooleanArray);
-    method public void writeString(java.lang.String);
-    method public void writeStringArray(java.lang.String[]);
-    method public void writeStringList(java.util.List<java.lang.String>);
+    method public void writeParcelable(@Nullable android.os.Parcelable, int);
+    method public <T extends android.os.Parcelable> void writeParcelableArray(@Nullable T[], int);
+    method public <T extends android.os.Parcelable> void writeParcelableList(@Nullable java.util.List<T>, int);
+    method public void writePersistableBundle(@Nullable android.os.PersistableBundle);
+    method public void writeSerializable(@Nullable java.io.Serializable);
+    method public void writeSize(@NonNull android.util.Size);
+    method public void writeSizeF(@NonNull android.util.SizeF);
+    method public <T> void writeSparseArray(@Nullable android.util.SparseArray<T>);
+    method public void writeSparseBooleanArray(@Nullable android.util.SparseBooleanArray);
+    method public void writeString(@Nullable String);
+    method public void writeStringArray(@Nullable String[]);
+    method public void writeStringList(@Nullable java.util.List<java.lang.String>);
     method public void writeStrongBinder(android.os.IBinder);
     method public void writeStrongInterface(android.os.IInterface);
-    method public <T extends android.os.Parcelable> void writeTypedArray(T[], int);
-    method public <T extends android.os.Parcelable> void writeTypedArrayMap(android.util.ArrayMap<java.lang.String, T>, int);
-    method public <T extends android.os.Parcelable> void writeTypedList(java.util.List<T>);
-    method public <T extends android.os.Parcelable> void writeTypedObject(T, int);
-    method public <T extends android.os.Parcelable> void writeTypedSparseArray(android.util.SparseArray<T>, int);
-    method public void writeValue(java.lang.Object);
+    method public <T extends android.os.Parcelable> void writeTypedArray(@Nullable T[], int);
+    method public <T extends android.os.Parcelable> void writeTypedArrayMap(@Nullable android.util.ArrayMap<java.lang.String,T>, int);
+    method public <T extends android.os.Parcelable> void writeTypedList(@Nullable java.util.List<T>);
+    method public <T extends android.os.Parcelable> void writeTypedObject(@Nullable T, int);
+    method public <T extends android.os.Parcelable> void writeTypedSparseArray(@Nullable android.util.SparseArray<T>, int);
+    method public void writeValue(@Nullable Object);
     field public static final android.os.Parcelable.Creator<java.lang.String> STRING_CREATOR;
   }
 
@@ -34818,7 +34729,7 @@
     method public boolean canDetectErrors();
     method public void checkError() throws java.io.IOException;
     method public void close() throws java.io.IOException;
-    method public void closeWithError(java.lang.String) throws java.io.IOException;
+    method public void closeWithError(String) throws java.io.IOException;
     method public static android.os.ParcelFileDescriptor[] createPipe() throws java.io.IOException;
     method public static android.os.ParcelFileDescriptor[] createReliablePipe() throws java.io.IOException;
     method public static android.os.ParcelFileDescriptor[] createReliableSocketPair() throws java.io.IOException;
@@ -34835,7 +34746,7 @@
     method public long getStatSize();
     method public static android.os.ParcelFileDescriptor open(java.io.File, int) throws java.io.FileNotFoundException;
     method public static android.os.ParcelFileDescriptor open(java.io.File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener) throws java.io.IOException;
-    method public static int parseMode(java.lang.String);
+    method public static int parseMode(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.ParcelFileDescriptor> CREATOR;
     field public static final int MODE_APPEND = 33554432; // 0x2000000
@@ -34843,8 +34754,8 @@
     field public static final int MODE_READ_ONLY = 268435456; // 0x10000000
     field public static final int MODE_READ_WRITE = 805306368; // 0x30000000
     field public static final int MODE_TRUNCATE = 67108864; // 0x4000000
-    field public static final deprecated int MODE_WORLD_READABLE = 1; // 0x1
-    field public static final deprecated int MODE_WORLD_WRITEABLE = 2; // 0x2
+    field @Deprecated public static final int MODE_WORLD_READABLE = 1; // 0x1
+    field @Deprecated public static final int MODE_WORLD_WRITEABLE = 2; // 0x2
     field public static final int MODE_WRITE_ONLY = 536870912; // 0x20000000
   }
 
@@ -34860,47 +34771,47 @@
     ctor public ParcelFileDescriptor.FileDescriptorDetachedException();
   }
 
-  public static abstract interface ParcelFileDescriptor.OnCloseListener {
-    method public abstract void onClose(java.io.IOException);
+  public static interface ParcelFileDescriptor.OnCloseListener {
+    method public void onClose(java.io.IOException);
   }
 
   public class ParcelFormatException extends java.lang.RuntimeException {
     ctor public ParcelFormatException();
-    ctor public ParcelFormatException(java.lang.String);
+    ctor public ParcelFormatException(String);
   }
 
   public final class ParcelUuid implements android.os.Parcelable {
     ctor public ParcelUuid(java.util.UUID);
     method public int describeContents();
-    method public static android.os.ParcelUuid fromString(java.lang.String);
+    method public static android.os.ParcelUuid fromString(String);
     method public java.util.UUID getUuid();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.ParcelUuid> CREATOR;
   }
 
-  public abstract interface Parcelable {
-    method public abstract int describeContents();
-    method public abstract void writeToParcel(android.os.Parcel, int);
+  public interface Parcelable {
+    method public int describeContents();
+    method public void writeToParcel(android.os.Parcel, int);
     field public static final int CONTENTS_FILE_DESCRIPTOR = 1; // 0x1
     field public static final int PARCELABLE_WRITE_RETURN_VALUE = 1; // 0x1
   }
 
-  public static abstract interface Parcelable.ClassLoaderCreator<T> implements android.os.Parcelable.Creator {
-    method public abstract T createFromParcel(android.os.Parcel, java.lang.ClassLoader);
+  public static interface Parcelable.ClassLoaderCreator<T> extends android.os.Parcelable.Creator<T> {
+    method public T createFromParcel(android.os.Parcel, ClassLoader);
   }
 
-  public static abstract interface Parcelable.Creator<T> {
-    method public abstract T createFromParcel(android.os.Parcel);
-    method public abstract T[] newArray(int);
+  public static interface Parcelable.Creator<T> {
+    method public T createFromParcel(android.os.Parcel);
+    method public T[] newArray(int);
   }
 
   public class PatternMatcher implements android.os.Parcelable {
-    ctor public PatternMatcher(java.lang.String, int);
+    ctor public PatternMatcher(String, int);
     ctor public PatternMatcher(android.os.Parcel);
     method public int describeContents();
-    method public final java.lang.String getPath();
+    method public final String getPath();
     method public final int getType();
-    method public boolean match(java.lang.String);
+    method public boolean match(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.PatternMatcher> CREATOR;
     field public static final int PATTERN_ADVANCED_GLOB = 3; // 0x3
@@ -34913,12 +34824,11 @@
     ctor public PersistableBundle();
     ctor public PersistableBundle(int);
     ctor public PersistableBundle(android.os.PersistableBundle);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public android.os.PersistableBundle deepCopy();
     method public int describeContents();
-    method public android.os.PersistableBundle getPersistableBundle(java.lang.String);
-    method public void putPersistableBundle(java.lang.String, android.os.PersistableBundle);
-    method public synchronized java.lang.String toString();
+    method @Nullable public android.os.PersistableBundle getPersistableBundle(@Nullable String);
+    method public void putPersistableBundle(@Nullable String, @Nullable android.os.PersistableBundle);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.PersistableBundle> CREATOR;
     field public static final android.os.PersistableBundle EMPTY;
@@ -34928,20 +34838,20 @@
     method public int getCurrentThermalStatus();
     method public int getLocationPowerSaveMode();
     method public boolean isDeviceIdleMode();
-    method public boolean isIgnoringBatteryOptimizations(java.lang.String);
+    method public boolean isIgnoringBatteryOptimizations(String);
     method public boolean isInteractive();
     method public boolean isPowerSaveMode();
-    method public deprecated boolean isScreenOn();
+    method @Deprecated public boolean isScreenOn();
     method public boolean isSustainedPerformanceModeSupported();
     method public boolean isWakeLockLevelSupported(int);
-    method public android.os.PowerManager.WakeLock newWakeLock(int, java.lang.String);
-    method public void reboot(java.lang.String);
-    method public void registerThermalStatusCallback(android.os.PowerManager.ThermalStatusCallback, java.util.concurrent.Executor);
+    method public android.os.PowerManager.WakeLock newWakeLock(int, String);
+    method public void reboot(String);
+    method public void registerThermalStatusCallback(@NonNull android.os.PowerManager.ThermalStatusCallback, @NonNull java.util.concurrent.Executor);
     method public void unregisterThermalStatusCallback(android.os.PowerManager.ThermalStatusCallback);
     field public static final int ACQUIRE_CAUSES_WAKEUP = 268435456; // 0x10000000
-    field public static final java.lang.String ACTION_DEVICE_IDLE_MODE_CHANGED = "android.os.action.DEVICE_IDLE_MODE_CHANGED";
-    field public static final java.lang.String ACTION_POWER_SAVE_MODE_CHANGED = "android.os.action.POWER_SAVE_MODE_CHANGED";
-    field public static final deprecated int FULL_WAKE_LOCK = 26; // 0x1a
+    field public static final String ACTION_DEVICE_IDLE_MODE_CHANGED = "android.os.action.DEVICE_IDLE_MODE_CHANGED";
+    field public static final String ACTION_POWER_SAVE_MODE_CHANGED = "android.os.action.POWER_SAVE_MODE_CHANGED";
+    field @Deprecated public static final int FULL_WAKE_LOCK = 26; // 0x1a
     field public static final int LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF = 2; // 0x2
     field public static final int LOCATION_MODE_FOREGROUND_ONLY = 3; // 0x3
     field public static final int LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF = 1; // 0x1
@@ -34950,8 +34860,8 @@
     field public static final int PARTIAL_WAKE_LOCK = 1; // 0x1
     field public static final int PROXIMITY_SCREEN_OFF_WAKE_LOCK = 32; // 0x20
     field public static final int RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY = 1; // 0x1
-    field public static final deprecated int SCREEN_BRIGHT_WAKE_LOCK = 10; // 0xa
-    field public static final deprecated int SCREEN_DIM_WAKE_LOCK = 6; // 0x6
+    field @Deprecated public static final int SCREEN_BRIGHT_WAKE_LOCK = 10; // 0xa
+    field @Deprecated public static final int SCREEN_DIM_WAKE_LOCK = 6; // 0x6
     field public static final int THERMAL_STATUS_CRITICAL = 4; // 0x4
     field public static final int THERMAL_STATUS_EMERGENCY = 5; // 0x5
     field public static final int THERMAL_STATUS_LIGHT = 1; // 0x1
@@ -34961,7 +34871,7 @@
     field public static final int THERMAL_STATUS_SHUTDOWN = 6; // 0x6
   }
 
-  public static abstract class PowerManager.ThermalStatusCallback {
+  public abstract static class PowerManager.ThermalStatusCallback {
     ctor public PowerManager.ThermalStatusCallback();
     method public void onStatusChange(int);
   }
@@ -34980,11 +34890,11 @@
     ctor public Process();
     method public static final long getElapsedCpuTime();
     method public static final int[] getExclusiveCores();
-    method public static final int getGidForName(java.lang.String);
+    method public static final int getGidForName(String);
     method public static final long getStartElapsedRealtime();
     method public static final long getStartUptimeMillis();
     method public static final int getThreadPriority(int) throws java.lang.IllegalArgumentException;
-    method public static final int getUidForName(java.lang.String);
+    method public static final int getUidForName(String);
     method public static final boolean is64Bit();
     method public static boolean isApplicationUid(int);
     method public static final boolean isIsolated();
@@ -34996,7 +34906,7 @@
     method public static final void sendSignal(int, int);
     method public static final void setThreadPriority(int, int) throws java.lang.IllegalArgumentException, java.lang.SecurityException;
     method public static final void setThreadPriority(int) throws java.lang.IllegalArgumentException, java.lang.SecurityException;
-    method public static final deprecated boolean supportsProcesses();
+    method @Deprecated public static final boolean supportsProcesses();
     field public static final int FIRST_APPLICATION_UID = 10000; // 0x2710
     field public static final int INVALID_UID = -1; // 0xffffffff
     field public static final int LAST_APPLICATION_UID = 19999; // 0x4e1f
@@ -35028,36 +34938,36 @@
   }
 
   public class RecoverySystem {
-    method public static void installPackage(android.content.Context, java.io.File) throws java.io.IOException;
+    method @RequiresPermission("android.permission.RECOVERY") public static void installPackage(android.content.Context, java.io.File) throws java.io.IOException;
     method public static void rebootWipeCache(android.content.Context) throws java.io.IOException;
     method public static void rebootWipeUserData(android.content.Context) throws java.io.IOException;
     method public static void verifyPackage(java.io.File, android.os.RecoverySystem.ProgressListener, java.io.File) throws java.security.GeneralSecurityException, java.io.IOException;
   }
 
-  public static abstract interface RecoverySystem.ProgressListener {
-    method public abstract void onProgress(int);
+  public static interface RecoverySystem.ProgressListener {
+    method public void onProgress(int);
   }
 
   public class RemoteCallbackList<E extends android.os.IInterface> {
     ctor public RemoteCallbackList();
     method public int beginBroadcast();
     method public void finishBroadcast();
-    method public java.lang.Object getBroadcastCookie(int);
+    method public Object getBroadcastCookie(int);
     method public E getBroadcastItem(int);
-    method public java.lang.Object getRegisteredCallbackCookie(int);
+    method public Object getRegisteredCallbackCookie(int);
     method public int getRegisteredCallbackCount();
     method public E getRegisteredCallbackItem(int);
     method public void kill();
     method public void onCallbackDied(E);
-    method public void onCallbackDied(E, java.lang.Object);
+    method public void onCallbackDied(E, Object);
     method public boolean register(E);
-    method public boolean register(E, java.lang.Object);
+    method public boolean register(E, Object);
     method public boolean unregister(E);
   }
 
   public class RemoteException extends android.util.AndroidException {
     ctor public RemoteException();
-    ctor public RemoteException(java.lang.String);
+    ctor public RemoteException(String);
   }
 
   public class ResultReceiver implements android.os.Parcelable {
@@ -35071,32 +34981,32 @@
 
   public final class SharedMemory implements java.io.Closeable android.os.Parcelable {
     method public void close();
-    method public static android.os.SharedMemory create(java.lang.String, int) throws android.system.ErrnoException;
+    method @NonNull public static android.os.SharedMemory create(@Nullable String, int) throws android.system.ErrnoException;
     method public int describeContents();
     method public int getSize();
-    method public java.nio.ByteBuffer map(int, int, int) throws android.system.ErrnoException;
-    method public java.nio.ByteBuffer mapReadOnly() throws android.system.ErrnoException;
-    method public java.nio.ByteBuffer mapReadWrite() throws android.system.ErrnoException;
+    method @NonNull public java.nio.ByteBuffer map(int, int, int) throws android.system.ErrnoException;
+    method @NonNull public java.nio.ByteBuffer mapReadOnly() throws android.system.ErrnoException;
+    method @NonNull public java.nio.ByteBuffer mapReadWrite() throws android.system.ErrnoException;
     method public boolean setProtect(int);
-    method public static void unmap(java.nio.ByteBuffer);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public static void unmap(@NonNull java.nio.ByteBuffer);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.SharedMemory> CREATOR;
   }
 
   public class StatFs {
-    ctor public StatFs(java.lang.String);
-    method public deprecated int getAvailableBlocks();
+    ctor public StatFs(String);
+    method @Deprecated public int getAvailableBlocks();
     method public long getAvailableBlocksLong();
     method public long getAvailableBytes();
-    method public deprecated int getBlockCount();
+    method @Deprecated public int getBlockCount();
     method public long getBlockCountLong();
-    method public deprecated int getBlockSize();
+    method @Deprecated public int getBlockSize();
     method public long getBlockSizeLong();
-    method public deprecated int getFreeBlocks();
+    method @Deprecated public int getFreeBlocks();
     method public long getFreeBlocksLong();
     method public long getFreeBytes();
     method public long getTotalBytes();
-    method public void restat(java.lang.String);
+    method public void restat(String);
   }
 
   public final class StrictMode {
@@ -35105,17 +35015,17 @@
     method public static void enableDefaults();
     method public static android.os.StrictMode.ThreadPolicy getThreadPolicy();
     method public static android.os.StrictMode.VmPolicy getVmPolicy();
-    method public static void noteSlowCall(java.lang.String);
+    method public static void noteSlowCall(String);
     method public static void setThreadPolicy(android.os.StrictMode.ThreadPolicy);
     method public static void setVmPolicy(android.os.StrictMode.VmPolicy);
   }
 
-  public static abstract interface StrictMode.OnThreadViolationListener {
-    method public abstract void onThreadViolation(android.os.strictmode.Violation);
+  public static interface StrictMode.OnThreadViolationListener {
+    method public void onThreadViolation(android.os.strictmode.Violation);
   }
 
-  public static abstract interface StrictMode.OnVmViolationListener {
-    method public abstract void onVmViolation(android.os.strictmode.Violation);
+  public static interface StrictMode.OnVmViolationListener {
+    method public void onVmViolation(android.os.strictmode.Violation);
   }
 
   public static final class StrictMode.ThreadPolicy {
@@ -35138,7 +35048,7 @@
     method public android.os.StrictMode.ThreadPolicy.Builder penaltyDialog();
     method public android.os.StrictMode.ThreadPolicy.Builder penaltyDropBox();
     method public android.os.StrictMode.ThreadPolicy.Builder penaltyFlashScreen();
-    method public android.os.StrictMode.ThreadPolicy.Builder penaltyListener(java.util.concurrent.Executor, android.os.StrictMode.OnThreadViolationListener);
+    method public android.os.StrictMode.ThreadPolicy.Builder penaltyListener(@NonNull java.util.concurrent.Executor, @NonNull android.os.StrictMode.OnThreadViolationListener);
     method public android.os.StrictMode.ThreadPolicy.Builder penaltyLog();
     method public android.os.StrictMode.ThreadPolicy.Builder permitAll();
     method public android.os.StrictMode.ThreadPolicy.Builder permitCustomSlowCalls();
@@ -35173,10 +35083,10 @@
     method public android.os.StrictMode.VmPolicy.Builder penaltyDeathOnCleartextNetwork();
     method public android.os.StrictMode.VmPolicy.Builder penaltyDeathOnFileUriExposure();
     method public android.os.StrictMode.VmPolicy.Builder penaltyDropBox();
-    method public android.os.StrictMode.VmPolicy.Builder penaltyListener(java.util.concurrent.Executor, android.os.StrictMode.OnVmViolationListener);
+    method public android.os.StrictMode.VmPolicy.Builder penaltyListener(@NonNull java.util.concurrent.Executor, @NonNull android.os.StrictMode.OnVmViolationListener);
     method public android.os.StrictMode.VmPolicy.Builder penaltyLog();
     method public android.os.StrictMode.VmPolicy.Builder permitNonSdkApiUsage();
-    method public android.os.StrictMode.VmPolicy.Builder setClassInstanceLimit(java.lang.Class, int);
+    method public android.os.StrictMode.VmPolicy.Builder setClassInstanceLimit(Class, int);
   }
 
   public final class SystemClock {
@@ -35191,16 +35101,16 @@
   public class TestLooperManager {
     method public void execute(android.os.Message);
     method public android.os.MessageQueue getMessageQueue();
-    method public boolean hasMessages(android.os.Handler, java.lang.Object, int);
-    method public boolean hasMessages(android.os.Handler, java.lang.Object, java.lang.Runnable);
+    method public boolean hasMessages(android.os.Handler, Object, int);
+    method public boolean hasMessages(android.os.Handler, Object, Runnable);
     method public android.os.Message next();
     method public void recycle(android.os.Message);
     method public void release();
   }
 
   public abstract class TokenWatcher {
-    ctor public TokenWatcher(android.os.Handler, java.lang.String);
-    method public void acquire(android.os.IBinder, java.lang.String);
+    ctor public TokenWatcher(android.os.Handler, String);
+    method public void acquire(android.os.IBinder, String);
     method public abstract void acquired();
     method public void cleanup(android.os.IBinder, boolean);
     method public void dump();
@@ -35211,17 +35121,17 @@
   }
 
   public final class Trace {
-    method public static void beginAsyncSection(java.lang.String, int);
-    method public static void beginSection(java.lang.String);
-    method public static void endAsyncSection(java.lang.String, int);
+    method public static void beginAsyncSection(@NonNull String, int);
+    method public static void beginSection(@NonNull String);
+    method public static void endAsyncSection(@NonNull String, int);
     method public static void endSection();
     method public static boolean isEnabled();
-    method public static void setCounter(java.lang.String, long);
+    method public static void setCounter(@NonNull String, long);
   }
 
   public class TransactionTooLargeException extends android.os.RemoteException {
     ctor public TransactionTooLargeException();
-    ctor public TransactionTooLargeException(java.lang.String);
+    ctor public TransactionTooLargeException(String);
   }
 
   public final class UserHandle implements android.os.Parcelable {
@@ -35235,17 +35145,17 @@
   }
 
   public class UserManager {
-    method public static android.content.Intent createUserCreationIntent(java.lang.String, java.lang.String, java.lang.String, android.os.PersistableBundle);
-    method public android.os.Bundle getApplicationRestrictions(java.lang.String);
+    method public static android.content.Intent createUserCreationIntent(@Nullable String, @Nullable String, @Nullable String, @Nullable android.os.PersistableBundle);
+    method @WorkerThread public android.os.Bundle getApplicationRestrictions(String);
     method public long getSerialNumberForUser(android.os.UserHandle);
     method public int getUserCount();
     method public long getUserCreationTime(android.os.UserHandle);
     method public android.os.UserHandle getUserForSerialNumber(long);
-    method public java.lang.String getUserName();
+    method public String getUserName();
     method public java.util.List<android.os.UserHandle> getUserProfiles();
     method public android.os.Bundle getUserRestrictions();
     method public android.os.Bundle getUserRestrictions(android.os.UserHandle);
-    method public boolean hasUserRestriction(java.lang.String);
+    method public boolean hasUserRestriction(String);
     method public boolean isDemoUser();
     method public boolean isQuietModeEnabled(android.os.UserHandle);
     method public boolean isSystemUser();
@@ -35254,67 +35164,67 @@
     method public boolean isUserRunningOrStopping(android.os.UserHandle);
     method public boolean isUserUnlocked();
     method public boolean isUserUnlocked(android.os.UserHandle);
-    method public boolean requestQuietModeEnabled(boolean, android.os.UserHandle);
-    method public deprecated boolean setRestrictionsChallenge(java.lang.String);
-    method public deprecated void setUserRestriction(java.lang.String, boolean);
-    method public deprecated void setUserRestrictions(android.os.Bundle);
-    method public deprecated void setUserRestrictions(android.os.Bundle, android.os.UserHandle);
+    method public boolean requestQuietModeEnabled(boolean, @NonNull android.os.UserHandle);
+    method @Deprecated public boolean setRestrictionsChallenge(String);
+    method @Deprecated public void setUserRestriction(String, boolean);
+    method @Deprecated public void setUserRestrictions(android.os.Bundle);
+    method @Deprecated public void setUserRestrictions(android.os.Bundle, android.os.UserHandle);
     method public static boolean supportsMultipleUsers();
-    field public static final java.lang.String ALLOW_PARENT_PROFILE_APP_LINKING = "allow_parent_profile_app_linking";
-    field public static final java.lang.String DISALLOW_ADD_MANAGED_PROFILE = "no_add_managed_profile";
-    field public static final java.lang.String DISALLOW_ADD_USER = "no_add_user";
-    field public static final java.lang.String DISALLOW_ADJUST_VOLUME = "no_adjust_volume";
-    field public static final java.lang.String DISALLOW_AIRPLANE_MODE = "no_airplane_mode";
-    field public static final java.lang.String DISALLOW_AMBIENT_DISPLAY = "no_ambient_display";
-    field public static final java.lang.String DISALLOW_APPS_CONTROL = "no_control_apps";
-    field public static final java.lang.String DISALLOW_AUTOFILL = "no_autofill";
-    field public static final java.lang.String DISALLOW_BLUETOOTH = "no_bluetooth";
-    field public static final java.lang.String DISALLOW_BLUETOOTH_SHARING = "no_bluetooth_sharing";
-    field public static final java.lang.String DISALLOW_CONFIG_BLUETOOTH = "no_config_bluetooth";
-    field public static final java.lang.String DISALLOW_CONFIG_BRIGHTNESS = "no_config_brightness";
-    field public static final java.lang.String DISALLOW_CONFIG_CELL_BROADCASTS = "no_config_cell_broadcasts";
-    field public static final java.lang.String DISALLOW_CONFIG_CREDENTIALS = "no_config_credentials";
-    field public static final java.lang.String DISALLOW_CONFIG_DATE_TIME = "no_config_date_time";
-    field public static final java.lang.String DISALLOW_CONFIG_LOCALE = "no_config_locale";
-    field public static final java.lang.String DISALLOW_CONFIG_LOCATION = "no_config_location";
-    field public static final java.lang.String DISALLOW_CONFIG_MOBILE_NETWORKS = "no_config_mobile_networks";
-    field public static final java.lang.String DISALLOW_CONFIG_PRIVATE_DNS = "disallow_config_private_dns";
-    field public static final java.lang.String DISALLOW_CONFIG_SCREEN_TIMEOUT = "no_config_screen_timeout";
-    field public static final java.lang.String DISALLOW_CONFIG_TETHERING = "no_config_tethering";
-    field public static final java.lang.String DISALLOW_CONFIG_VPN = "no_config_vpn";
-    field public static final java.lang.String DISALLOW_CONFIG_WIFI = "no_config_wifi";
-    field public static final java.lang.String DISALLOW_CONTENT_CAPTURE = "no_content_capture";
-    field public static final java.lang.String DISALLOW_CREATE_WINDOWS = "no_create_windows";
-    field public static final java.lang.String DISALLOW_CROSS_PROFILE_COPY_PASTE = "no_cross_profile_copy_paste";
-    field public static final java.lang.String DISALLOW_DATA_ROAMING = "no_data_roaming";
-    field public static final java.lang.String DISALLOW_DEBUGGING_FEATURES = "no_debugging_features";
-    field public static final java.lang.String DISALLOW_FACTORY_RESET = "no_factory_reset";
-    field public static final java.lang.String DISALLOW_FUN = "no_fun";
-    field public static final java.lang.String DISALLOW_INSTALL_APPS = "no_install_apps";
-    field public static final java.lang.String DISALLOW_INSTALL_UNKNOWN_SOURCES = "no_install_unknown_sources";
-    field public static final java.lang.String DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY = "no_install_unknown_sources_globally";
-    field public static final java.lang.String DISALLOW_MODIFY_ACCOUNTS = "no_modify_accounts";
-    field public static final java.lang.String DISALLOW_MOUNT_PHYSICAL_MEDIA = "no_physical_media";
-    field public static final java.lang.String DISALLOW_NETWORK_RESET = "no_network_reset";
-    field public static final java.lang.String DISALLOW_OUTGOING_BEAM = "no_outgoing_beam";
-    field public static final java.lang.String DISALLOW_OUTGOING_CALLS = "no_outgoing_calls";
-    field public static final java.lang.String DISALLOW_PRINTING = "no_printing";
-    field public static final java.lang.String DISALLOW_REMOVE_MANAGED_PROFILE = "no_remove_managed_profile";
-    field public static final java.lang.String DISALLOW_REMOVE_USER = "no_remove_user";
-    field public static final java.lang.String DISALLOW_SAFE_BOOT = "no_safe_boot";
-    field public static final java.lang.String DISALLOW_SET_USER_ICON = "no_set_user_icon";
-    field public static final java.lang.String DISALLOW_SET_WALLPAPER = "no_set_wallpaper";
-    field public static final java.lang.String DISALLOW_SHARE_INTO_MANAGED_PROFILE = "no_sharing_into_profile";
-    field public static final java.lang.String DISALLOW_SHARE_LOCATION = "no_share_location";
-    field public static final java.lang.String DISALLOW_SMS = "no_sms";
-    field public static final java.lang.String DISALLOW_SYSTEM_ERROR_DIALOGS = "no_system_error_dialogs";
-    field public static final java.lang.String DISALLOW_UNIFIED_PASSWORD = "no_unified_password";
-    field public static final java.lang.String DISALLOW_UNINSTALL_APPS = "no_uninstall_apps";
-    field public static final java.lang.String DISALLOW_UNMUTE_MICROPHONE = "no_unmute_microphone";
-    field public static final java.lang.String DISALLOW_USB_FILE_TRANSFER = "no_usb_file_transfer";
-    field public static final java.lang.String DISALLOW_USER_SWITCH = "no_user_switch";
-    field public static final java.lang.String ENSURE_VERIFY_APPS = "ensure_verify_apps";
-    field public static final java.lang.String KEY_RESTRICTIONS_PENDING = "restrictions_pending";
+    field public static final String ALLOW_PARENT_PROFILE_APP_LINKING = "allow_parent_profile_app_linking";
+    field public static final String DISALLOW_ADD_MANAGED_PROFILE = "no_add_managed_profile";
+    field public static final String DISALLOW_ADD_USER = "no_add_user";
+    field public static final String DISALLOW_ADJUST_VOLUME = "no_adjust_volume";
+    field public static final String DISALLOW_AIRPLANE_MODE = "no_airplane_mode";
+    field public static final String DISALLOW_AMBIENT_DISPLAY = "no_ambient_display";
+    field public static final String DISALLOW_APPS_CONTROL = "no_control_apps";
+    field public static final String DISALLOW_AUTOFILL = "no_autofill";
+    field public static final String DISALLOW_BLUETOOTH = "no_bluetooth";
+    field public static final String DISALLOW_BLUETOOTH_SHARING = "no_bluetooth_sharing";
+    field public static final String DISALLOW_CONFIG_BLUETOOTH = "no_config_bluetooth";
+    field public static final String DISALLOW_CONFIG_BRIGHTNESS = "no_config_brightness";
+    field public static final String DISALLOW_CONFIG_CELL_BROADCASTS = "no_config_cell_broadcasts";
+    field public static final String DISALLOW_CONFIG_CREDENTIALS = "no_config_credentials";
+    field public static final String DISALLOW_CONFIG_DATE_TIME = "no_config_date_time";
+    field public static final String DISALLOW_CONFIG_LOCALE = "no_config_locale";
+    field public static final String DISALLOW_CONFIG_LOCATION = "no_config_location";
+    field public static final String DISALLOW_CONFIG_MOBILE_NETWORKS = "no_config_mobile_networks";
+    field public static final String DISALLOW_CONFIG_PRIVATE_DNS = "disallow_config_private_dns";
+    field public static final String DISALLOW_CONFIG_SCREEN_TIMEOUT = "no_config_screen_timeout";
+    field public static final String DISALLOW_CONFIG_TETHERING = "no_config_tethering";
+    field public static final String DISALLOW_CONFIG_VPN = "no_config_vpn";
+    field public static final String DISALLOW_CONFIG_WIFI = "no_config_wifi";
+    field public static final String DISALLOW_CONTENT_CAPTURE = "no_content_capture";
+    field public static final String DISALLOW_CREATE_WINDOWS = "no_create_windows";
+    field public static final String DISALLOW_CROSS_PROFILE_COPY_PASTE = "no_cross_profile_copy_paste";
+    field public static final String DISALLOW_DATA_ROAMING = "no_data_roaming";
+    field public static final String DISALLOW_DEBUGGING_FEATURES = "no_debugging_features";
+    field public static final String DISALLOW_FACTORY_RESET = "no_factory_reset";
+    field public static final String DISALLOW_FUN = "no_fun";
+    field public static final String DISALLOW_INSTALL_APPS = "no_install_apps";
+    field public static final String DISALLOW_INSTALL_UNKNOWN_SOURCES = "no_install_unknown_sources";
+    field public static final String DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY = "no_install_unknown_sources_globally";
+    field public static final String DISALLOW_MODIFY_ACCOUNTS = "no_modify_accounts";
+    field public static final String DISALLOW_MOUNT_PHYSICAL_MEDIA = "no_physical_media";
+    field public static final String DISALLOW_NETWORK_RESET = "no_network_reset";
+    field public static final String DISALLOW_OUTGOING_BEAM = "no_outgoing_beam";
+    field public static final String DISALLOW_OUTGOING_CALLS = "no_outgoing_calls";
+    field public static final String DISALLOW_PRINTING = "no_printing";
+    field public static final String DISALLOW_REMOVE_MANAGED_PROFILE = "no_remove_managed_profile";
+    field public static final String DISALLOW_REMOVE_USER = "no_remove_user";
+    field public static final String DISALLOW_SAFE_BOOT = "no_safe_boot";
+    field public static final String DISALLOW_SET_USER_ICON = "no_set_user_icon";
+    field public static final String DISALLOW_SET_WALLPAPER = "no_set_wallpaper";
+    field public static final String DISALLOW_SHARE_INTO_MANAGED_PROFILE = "no_sharing_into_profile";
+    field public static final String DISALLOW_SHARE_LOCATION = "no_share_location";
+    field public static final String DISALLOW_SMS = "no_sms";
+    field public static final String DISALLOW_SYSTEM_ERROR_DIALOGS = "no_system_error_dialogs";
+    field public static final String DISALLOW_UNIFIED_PASSWORD = "no_unified_password";
+    field public static final String DISALLOW_UNINSTALL_APPS = "no_uninstall_apps";
+    field public static final String DISALLOW_UNMUTE_MICROPHONE = "no_unmute_microphone";
+    field public static final String DISALLOW_USB_FILE_TRANSFER = "no_usb_file_transfer";
+    field public static final String DISALLOW_USER_SWITCH = "no_user_switch";
+    field public static final String ENSURE_VERIFY_APPS = "ensure_verify_apps";
+    field public static final String KEY_RESTRICTIONS_PENDING = "restrictions_pending";
     field public static final int USER_CREATION_FAILED_NOT_PERMITTED = 1; // 0x1
     field public static final int USER_CREATION_FAILED_NO_MORE_USERS = 2; // 0x2
     field public static final int USER_OPERATION_ERROR_CURRENT_USER = 4; // 0x4
@@ -35340,15 +35250,15 @@
   }
 
   public abstract class Vibrator {
-    method public abstract void cancel();
+    method @RequiresPermission(android.Manifest.permission.VIBRATE) public abstract void cancel();
     method public abstract boolean hasAmplitudeControl();
     method public abstract boolean hasVibrator();
-    method public deprecated void vibrate(long);
-    method public deprecated void vibrate(long, android.media.AudioAttributes);
-    method public deprecated void vibrate(long[], int);
-    method public deprecated void vibrate(long[], int, android.media.AudioAttributes);
-    method public void vibrate(android.os.VibrationEffect);
-    method public void vibrate(android.os.VibrationEffect, android.media.AudioAttributes);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(long);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(long, android.media.AudioAttributes);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(long[], int);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(long[], int, android.media.AudioAttributes);
+    method @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(android.os.VibrationEffect);
+    method @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(android.os.VibrationEffect, android.media.AudioAttributes);
   }
 
   public class WorkSource implements android.os.Parcelable {
@@ -35369,14 +35279,14 @@
 package android.os.health {
 
   public class HealthStats {
-    method public java.lang.String getDataType();
+    method public String getDataType();
     method public long getMeasurement(int);
     method public int getMeasurementKeyAt(int);
     method public int getMeasurementKeyCount();
-    method public java.util.Map<java.lang.String, java.lang.Long> getMeasurements(int);
+    method public java.util.Map<java.lang.String,java.lang.Long> getMeasurements(int);
     method public int getMeasurementsKeyAt(int);
     method public int getMeasurementsKeyCount();
-    method public java.util.Map<java.lang.String, android.os.health.HealthStats> getStats(int);
+    method public java.util.Map<java.lang.String,android.os.health.HealthStats> getStats(int);
     method public int getStatsKeyAt(int);
     method public int getStatsKeyCount();
     method public android.os.health.TimerStat getTimer(int);
@@ -35384,7 +35294,7 @@
     method public int getTimerKeyAt(int);
     method public int getTimerKeyCount();
     method public long getTimerTime(int);
-    method public java.util.Map<java.lang.String, android.os.health.TimerStat> getTimers(int);
+    method public java.util.Map<java.lang.String,android.os.health.TimerStat> getTimers(int);
     method public int getTimersKeyAt(int);
     method public int getTimersKeyCount();
     method public boolean hasMeasurement(int);
@@ -35448,7 +35358,7 @@
     field public static final int MEASUREMENT_BLUETOOTH_TX_MS = 10022; // 0x2726
     field public static final int MEASUREMENT_BLUETOOTH_TX_PACKETS = 10059; // 0x274b
     field public static final int MEASUREMENT_BUTTON_USER_ACTIVITY_COUNT = 10046; // 0x273e
-    field public static final deprecated int MEASUREMENT_CPU_POWER_MAMS = 10064; // 0x2750
+    field @Deprecated public static final int MEASUREMENT_CPU_POWER_MAMS = 10064; // 0x2750
     field public static final int MEASUREMENT_MOBILE_IDLE_MS = 10024; // 0x2728
     field public static final int MEASUREMENT_MOBILE_POWER_MAMS = 10027; // 0x272b
     field public static final int MEASUREMENT_MOBILE_RX_BYTES = 10048; // 0x2740
@@ -35510,7 +35420,7 @@
 
   public abstract class OnObbStateChangeListener {
     ctor public OnObbStateChangeListener();
-    method public void onObbStateChange(java.lang.String, int);
+    method public void onObbStateChange(String, int);
     field public static final int ERROR_ALREADY_MOUNTED = 24; // 0x18
     field public static final int ERROR_COULD_NOT_MOUNT = 21; // 0x15
     field public static final int ERROR_COULD_NOT_UNMOUNT = 22; // 0x16
@@ -35522,45 +35432,45 @@
   }
 
   public class StorageManager {
-    method public void allocateBytes(java.util.UUID, long) throws java.io.IOException;
-    method public void allocateBytes(java.io.FileDescriptor, long) throws java.io.IOException;
-    method public long getAllocatableBytes(java.util.UUID) throws java.io.IOException;
-    method public long getCacheQuotaBytes(java.util.UUID) throws java.io.IOException;
-    method public long getCacheSizeBytes(java.util.UUID) throws java.io.IOException;
-    method public java.lang.String getMountedObbPath(java.lang.String);
-    method public android.os.storage.StorageVolume getPrimaryStorageVolume();
-    method public android.os.storage.StorageVolume getStorageVolume(java.io.File);
-    method public java.util.List<android.os.storage.StorageVolume> getStorageVolumes();
-    method public java.util.UUID getUuidForPath(java.io.File) throws java.io.IOException;
-    method public boolean isAllocationSupported(java.io.FileDescriptor);
+    method @WorkerThread public void allocateBytes(@NonNull java.util.UUID, long) throws java.io.IOException;
+    method @WorkerThread public void allocateBytes(java.io.FileDescriptor, long) throws java.io.IOException;
+    method @WorkerThread public long getAllocatableBytes(@NonNull java.util.UUID) throws java.io.IOException;
+    method @WorkerThread public long getCacheQuotaBytes(@NonNull java.util.UUID) throws java.io.IOException;
+    method @WorkerThread public long getCacheSizeBytes(@NonNull java.util.UUID) throws java.io.IOException;
+    method public String getMountedObbPath(String);
+    method @NonNull public android.os.storage.StorageVolume getPrimaryStorageVolume();
+    method @Nullable public android.os.storage.StorageVolume getStorageVolume(java.io.File);
+    method @NonNull public java.util.List<android.os.storage.StorageVolume> getStorageVolumes();
+    method @NonNull public java.util.UUID getUuidForPath(@NonNull java.io.File) throws java.io.IOException;
+    method public boolean isAllocationSupported(@NonNull java.io.FileDescriptor);
     method public boolean isCacheBehaviorGroup(java.io.File) throws java.io.IOException;
     method public boolean isCacheBehaviorTombstone(java.io.File) throws java.io.IOException;
     method public boolean isEncrypted(java.io.File);
-    method public boolean isObbMounted(java.lang.String);
-    method public boolean mountObb(java.lang.String, java.lang.String, android.os.storage.OnObbStateChangeListener);
-    method public android.os.ParcelFileDescriptor openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback, android.os.Handler) throws java.io.IOException;
+    method public boolean isObbMounted(String);
+    method public boolean mountObb(String, String, android.os.storage.OnObbStateChangeListener);
+    method @NonNull public android.os.ParcelFileDescriptor openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback, android.os.Handler) throws java.io.IOException;
     method public void setCacheBehaviorGroup(java.io.File, boolean) throws java.io.IOException;
     method public void setCacheBehaviorTombstone(java.io.File, boolean) throws java.io.IOException;
-    method public boolean unmountObb(java.lang.String, boolean, android.os.storage.OnObbStateChangeListener);
-    field public static final java.lang.String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
-    field public static final java.lang.String EXTRA_REQUESTED_BYTES = "android.os.storage.extra.REQUESTED_BYTES";
-    field public static final java.lang.String EXTRA_UUID = "android.os.storage.extra.UUID";
+    method public boolean unmountObb(String, boolean, android.os.storage.OnObbStateChangeListener);
+    field public static final String ACTION_MANAGE_STORAGE = "android.os.storage.action.MANAGE_STORAGE";
+    field public static final String EXTRA_REQUESTED_BYTES = "android.os.storage.extra.REQUESTED_BYTES";
+    field public static final String EXTRA_UUID = "android.os.storage.extra.UUID";
     field public static final java.util.UUID UUID_DEFAULT;
   }
 
   public final class StorageVolume implements android.os.Parcelable {
-    method public deprecated android.content.Intent createAccessIntent(java.lang.String);
-    method public android.content.Intent createOpenDocumentTreeIntent();
+    method @Deprecated @Nullable public android.content.Intent createAccessIntent(String);
+    method @NonNull public android.content.Intent createOpenDocumentTreeIntent();
     method public int describeContents();
-    method public java.lang.String getDescription(android.content.Context);
-    method public java.lang.String getState();
-    method public java.lang.String getUuid();
+    method public String getDescription(android.content.Context);
+    method public String getState();
+    method @Nullable public String getUuid();
     method public boolean isEmulated();
     method public boolean isPrimary();
     method public boolean isRemovable();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.storage.StorageVolume> CREATOR;
-    field public static final java.lang.String EXTRA_STORAGE_VOLUME = "android.os.storage.extra.STORAGE_VOLUME";
+    field public static final String EXTRA_STORAGE_VOLUME = "android.os.storage.extra.STORAGE_VOLUME";
   }
 
 }
@@ -35632,412 +35542,412 @@
 
 package android.preference {
 
-  public deprecated class CheckBoxPreference extends android.preference.TwoStatePreference {
-    ctor public CheckBoxPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public CheckBoxPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public CheckBoxPreference(android.content.Context, android.util.AttributeSet);
-    ctor public CheckBoxPreference(android.content.Context);
+  @Deprecated public class CheckBoxPreference extends android.preference.TwoStatePreference {
+    ctor @Deprecated public CheckBoxPreference(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public CheckBoxPreference(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public CheckBoxPreference(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public CheckBoxPreference(android.content.Context);
   }
 
-  public abstract deprecated class DialogPreference extends android.preference.Preference implements android.content.DialogInterface.OnClickListener android.content.DialogInterface.OnDismissListener android.preference.PreferenceManager.OnActivityDestroyListener {
-    ctor public DialogPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public DialogPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public DialogPreference(android.content.Context, android.util.AttributeSet);
-    ctor public DialogPreference(android.content.Context);
-    method public android.app.Dialog getDialog();
-    method public android.graphics.drawable.Drawable getDialogIcon();
-    method public int getDialogLayoutResource();
-    method public java.lang.CharSequence getDialogMessage();
-    method public java.lang.CharSequence getDialogTitle();
-    method public java.lang.CharSequence getNegativeButtonText();
-    method public java.lang.CharSequence getPositiveButtonText();
-    method public void onActivityDestroy();
-    method protected void onBindDialogView(android.view.View);
-    method public void onClick(android.content.DialogInterface, int);
-    method protected android.view.View onCreateDialogView();
-    method protected void onDialogClosed(boolean);
-    method public void onDismiss(android.content.DialogInterface);
-    method protected void onPrepareDialogBuilder(android.app.AlertDialog.Builder);
-    method public void setDialogIcon(android.graphics.drawable.Drawable);
-    method public void setDialogIcon(int);
-    method public void setDialogLayoutResource(int);
-    method public void setDialogMessage(java.lang.CharSequence);
-    method public void setDialogMessage(int);
-    method public void setDialogTitle(java.lang.CharSequence);
-    method public void setDialogTitle(int);
-    method public void setNegativeButtonText(java.lang.CharSequence);
-    method public void setNegativeButtonText(int);
-    method public void setPositiveButtonText(java.lang.CharSequence);
-    method public void setPositiveButtonText(int);
-    method protected void showDialog(android.os.Bundle);
+  @Deprecated public abstract class DialogPreference extends android.preference.Preference implements android.content.DialogInterface.OnClickListener android.content.DialogInterface.OnDismissListener android.preference.PreferenceManager.OnActivityDestroyListener {
+    ctor @Deprecated public DialogPreference(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public DialogPreference(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public DialogPreference(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public DialogPreference(android.content.Context);
+    method @Deprecated public android.app.Dialog getDialog();
+    method @Deprecated public android.graphics.drawable.Drawable getDialogIcon();
+    method @Deprecated public int getDialogLayoutResource();
+    method @Deprecated public CharSequence getDialogMessage();
+    method @Deprecated public CharSequence getDialogTitle();
+    method @Deprecated public CharSequence getNegativeButtonText();
+    method @Deprecated public CharSequence getPositiveButtonText();
+    method @Deprecated public void onActivityDestroy();
+    method @Deprecated @CallSuper protected void onBindDialogView(android.view.View);
+    method @Deprecated public void onClick(android.content.DialogInterface, int);
+    method @Deprecated protected android.view.View onCreateDialogView();
+    method @Deprecated protected void onDialogClosed(boolean);
+    method @Deprecated public void onDismiss(android.content.DialogInterface);
+    method @Deprecated protected void onPrepareDialogBuilder(android.app.AlertDialog.Builder);
+    method @Deprecated public void setDialogIcon(android.graphics.drawable.Drawable);
+    method @Deprecated public void setDialogIcon(@DrawableRes int);
+    method @Deprecated public void setDialogLayoutResource(int);
+    method @Deprecated public void setDialogMessage(CharSequence);
+    method @Deprecated public void setDialogMessage(int);
+    method @Deprecated public void setDialogTitle(CharSequence);
+    method @Deprecated public void setDialogTitle(int);
+    method @Deprecated public void setNegativeButtonText(CharSequence);
+    method @Deprecated public void setNegativeButtonText(@StringRes int);
+    method @Deprecated public void setPositiveButtonText(CharSequence);
+    method @Deprecated public void setPositiveButtonText(@StringRes int);
+    method @Deprecated protected void showDialog(android.os.Bundle);
   }
 
-  public deprecated class EditTextPreference extends android.preference.DialogPreference {
-    ctor public EditTextPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public EditTextPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public EditTextPreference(android.content.Context, android.util.AttributeSet);
-    ctor public EditTextPreference(android.content.Context);
-    method public android.widget.EditText getEditText();
-    method public java.lang.String getText();
-    method protected void onAddEditTextToDialogView(android.view.View, android.widget.EditText);
-    method public void setText(java.lang.String);
+  @Deprecated public class EditTextPreference extends android.preference.DialogPreference {
+    ctor @Deprecated public EditTextPreference(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public EditTextPreference(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public EditTextPreference(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public EditTextPreference(android.content.Context);
+    method @Deprecated public android.widget.EditText getEditText();
+    method @Deprecated public String getText();
+    method @Deprecated protected void onAddEditTextToDialogView(android.view.View, android.widget.EditText);
+    method @Deprecated public void setText(String);
   }
 
-  public deprecated class ListPreference extends android.preference.DialogPreference {
-    ctor public ListPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public ListPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public ListPreference(android.content.Context, android.util.AttributeSet);
-    ctor public ListPreference(android.content.Context);
-    method public int findIndexOfValue(java.lang.String);
-    method public java.lang.CharSequence[] getEntries();
-    method public java.lang.CharSequence getEntry();
-    method public java.lang.CharSequence[] getEntryValues();
-    method public java.lang.String getValue();
-    method public void setEntries(java.lang.CharSequence[]);
-    method public void setEntries(int);
-    method public void setEntryValues(java.lang.CharSequence[]);
-    method public void setEntryValues(int);
-    method public void setValue(java.lang.String);
-    method public void setValueIndex(int);
+  @Deprecated public class ListPreference extends android.preference.DialogPreference {
+    ctor @Deprecated public ListPreference(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public ListPreference(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public ListPreference(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public ListPreference(android.content.Context);
+    method @Deprecated public int findIndexOfValue(String);
+    method @Deprecated public CharSequence[] getEntries();
+    method @Deprecated public CharSequence getEntry();
+    method @Deprecated public CharSequence[] getEntryValues();
+    method @Deprecated public String getValue();
+    method @Deprecated public void setEntries(CharSequence[]);
+    method @Deprecated public void setEntries(@ArrayRes int);
+    method @Deprecated public void setEntryValues(CharSequence[]);
+    method @Deprecated public void setEntryValues(@ArrayRes int);
+    method @Deprecated public void setValue(String);
+    method @Deprecated public void setValueIndex(int);
   }
 
-  public deprecated class MultiSelectListPreference extends android.preference.DialogPreference {
-    ctor public MultiSelectListPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public MultiSelectListPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public MultiSelectListPreference(android.content.Context, android.util.AttributeSet);
-    ctor public MultiSelectListPreference(android.content.Context);
-    method public int findIndexOfValue(java.lang.String);
-    method public java.lang.CharSequence[] getEntries();
-    method public java.lang.CharSequence[] getEntryValues();
-    method public java.util.Set<java.lang.String> getValues();
-    method public void setEntries(java.lang.CharSequence[]);
-    method public void setEntries(int);
-    method public void setEntryValues(java.lang.CharSequence[]);
-    method public void setEntryValues(int);
-    method public void setValues(java.util.Set<java.lang.String>);
+  @Deprecated public class MultiSelectListPreference extends android.preference.DialogPreference {
+    ctor @Deprecated public MultiSelectListPreference(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public MultiSelectListPreference(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public MultiSelectListPreference(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public MultiSelectListPreference(android.content.Context);
+    method @Deprecated public int findIndexOfValue(String);
+    method @Deprecated public CharSequence[] getEntries();
+    method @Deprecated public CharSequence[] getEntryValues();
+    method @Deprecated public java.util.Set<java.lang.String> getValues();
+    method @Deprecated public void setEntries(CharSequence[]);
+    method @Deprecated public void setEntries(@ArrayRes int);
+    method @Deprecated public void setEntryValues(CharSequence[]);
+    method @Deprecated public void setEntryValues(@ArrayRes int);
+    method @Deprecated public void setValues(java.util.Set<java.lang.String>);
   }
 
-  public deprecated class Preference implements java.lang.Comparable {
-    ctor public Preference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public Preference(android.content.Context, android.util.AttributeSet, int);
-    ctor public Preference(android.content.Context, android.util.AttributeSet);
-    ctor public Preference(android.content.Context);
-    method protected boolean callChangeListener(java.lang.Object);
-    method public int compareTo(android.preference.Preference);
-    method protected android.preference.Preference findPreferenceInHierarchy(java.lang.String);
-    method public android.content.Context getContext();
-    method public java.lang.String getDependency();
-    method public android.content.SharedPreferences.Editor getEditor();
-    method public android.os.Bundle getExtras();
-    method public java.lang.String getFragment();
-    method public android.graphics.drawable.Drawable getIcon();
-    method public android.content.Intent getIntent();
-    method public java.lang.String getKey();
-    method public int getLayoutResource();
-    method public android.preference.Preference.OnPreferenceChangeListener getOnPreferenceChangeListener();
-    method public android.preference.Preference.OnPreferenceClickListener getOnPreferenceClickListener();
-    method public int getOrder();
-    method public android.preference.PreferenceGroup getParent();
-    method protected boolean getPersistedBoolean(boolean);
-    method protected float getPersistedFloat(float);
-    method protected int getPersistedInt(int);
-    method protected long getPersistedLong(long);
-    method protected java.lang.String getPersistedString(java.lang.String);
-    method public java.util.Set<java.lang.String> getPersistedStringSet(java.util.Set<java.lang.String>);
-    method public android.preference.PreferenceDataStore getPreferenceDataStore();
-    method public android.preference.PreferenceManager getPreferenceManager();
-    method public android.content.SharedPreferences getSharedPreferences();
-    method public boolean getShouldDisableView();
-    method public java.lang.CharSequence getSummary();
-    method public java.lang.CharSequence getTitle();
-    method public int getTitleRes();
-    method public android.view.View getView(android.view.View, android.view.ViewGroup);
-    method public int getWidgetLayoutResource();
-    method public boolean hasKey();
-    method public boolean isEnabled();
-    method public boolean isIconSpaceReserved();
-    method public boolean isPersistent();
-    method public boolean isRecycleEnabled();
-    method public boolean isSelectable();
-    method public boolean isSingleLineTitle();
-    method protected void notifyChanged();
-    method public void notifyDependencyChange(boolean);
-    method protected void notifyHierarchyChanged();
-    method protected void onAttachedToActivity();
-    method protected void onAttachedToHierarchy(android.preference.PreferenceManager);
-    method protected void onBindView(android.view.View);
-    method protected void onClick();
-    method protected android.view.View onCreateView(android.view.ViewGroup);
-    method public void onDependencyChanged(android.preference.Preference, boolean);
-    method protected java.lang.Object onGetDefaultValue(android.content.res.TypedArray, int);
-    method public void onParentChanged(android.preference.Preference, boolean);
-    method protected void onPrepareForRemoval();
-    method protected void onRestoreInstanceState(android.os.Parcelable);
-    method protected android.os.Parcelable onSaveInstanceState();
-    method protected void onSetInitialValue(boolean, java.lang.Object);
-    method public android.os.Bundle peekExtras();
-    method protected boolean persistBoolean(boolean);
-    method protected boolean persistFloat(float);
-    method protected boolean persistInt(int);
-    method protected boolean persistLong(long);
-    method protected boolean persistString(java.lang.String);
-    method public boolean persistStringSet(java.util.Set<java.lang.String>);
-    method public void restoreHierarchyState(android.os.Bundle);
-    method public void saveHierarchyState(android.os.Bundle);
-    method public void setDefaultValue(java.lang.Object);
-    method public void setDependency(java.lang.String);
-    method public void setEnabled(boolean);
-    method public void setFragment(java.lang.String);
-    method public void setIcon(android.graphics.drawable.Drawable);
-    method public void setIcon(int);
-    method public void setIconSpaceReserved(boolean);
-    method public void setIntent(android.content.Intent);
-    method public void setKey(java.lang.String);
-    method public void setLayoutResource(int);
-    method public void setOnPreferenceChangeListener(android.preference.Preference.OnPreferenceChangeListener);
-    method public void setOnPreferenceClickListener(android.preference.Preference.OnPreferenceClickListener);
-    method public void setOrder(int);
-    method public void setPersistent(boolean);
-    method public void setPreferenceDataStore(android.preference.PreferenceDataStore);
-    method public void setRecycleEnabled(boolean);
-    method public void setSelectable(boolean);
-    method public void setShouldDisableView(boolean);
-    method public void setSingleLineTitle(boolean);
-    method public void setSummary(java.lang.CharSequence);
-    method public void setSummary(int);
-    method public void setTitle(java.lang.CharSequence);
-    method public void setTitle(int);
-    method public void setWidgetLayoutResource(int);
-    method public boolean shouldCommit();
-    method public boolean shouldDisableDependents();
-    method protected boolean shouldPersist();
-    field public static final int DEFAULT_ORDER = 2147483647; // 0x7fffffff
+  @Deprecated public class Preference implements java.lang.Comparable<android.preference.Preference> {
+    ctor @Deprecated public Preference(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public Preference(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public Preference(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public Preference(android.content.Context);
+    method @Deprecated protected boolean callChangeListener(Object);
+    method @Deprecated public int compareTo(android.preference.Preference);
+    method @Deprecated protected android.preference.Preference findPreferenceInHierarchy(String);
+    method @Deprecated public android.content.Context getContext();
+    method @Deprecated public String getDependency();
+    method @Deprecated public android.content.SharedPreferences.Editor getEditor();
+    method @Deprecated public android.os.Bundle getExtras();
+    method @Deprecated public String getFragment();
+    method @Deprecated public android.graphics.drawable.Drawable getIcon();
+    method @Deprecated public android.content.Intent getIntent();
+    method @Deprecated public String getKey();
+    method @Deprecated @LayoutRes public int getLayoutResource();
+    method @Deprecated public android.preference.Preference.OnPreferenceChangeListener getOnPreferenceChangeListener();
+    method @Deprecated public android.preference.Preference.OnPreferenceClickListener getOnPreferenceClickListener();
+    method @Deprecated public int getOrder();
+    method @Deprecated @Nullable public android.preference.PreferenceGroup getParent();
+    method @Deprecated protected boolean getPersistedBoolean(boolean);
+    method @Deprecated protected float getPersistedFloat(float);
+    method @Deprecated protected int getPersistedInt(int);
+    method @Deprecated protected long getPersistedLong(long);
+    method @Deprecated protected String getPersistedString(String);
+    method @Deprecated public java.util.Set<java.lang.String> getPersistedStringSet(java.util.Set<java.lang.String>);
+    method @Deprecated @Nullable public android.preference.PreferenceDataStore getPreferenceDataStore();
+    method @Deprecated public android.preference.PreferenceManager getPreferenceManager();
+    method @Deprecated public android.content.SharedPreferences getSharedPreferences();
+    method @Deprecated public boolean getShouldDisableView();
+    method @Deprecated public CharSequence getSummary();
+    method @Deprecated public CharSequence getTitle();
+    method @Deprecated @StringRes public int getTitleRes();
+    method @Deprecated public android.view.View getView(android.view.View, android.view.ViewGroup);
+    method @Deprecated @LayoutRes public int getWidgetLayoutResource();
+    method @Deprecated public boolean hasKey();
+    method @Deprecated public boolean isEnabled();
+    method @Deprecated public boolean isIconSpaceReserved();
+    method @Deprecated public boolean isPersistent();
+    method @Deprecated public boolean isRecycleEnabled();
+    method @Deprecated public boolean isSelectable();
+    method @Deprecated public boolean isSingleLineTitle();
+    method @Deprecated protected void notifyChanged();
+    method @Deprecated public void notifyDependencyChange(boolean);
+    method @Deprecated protected void notifyHierarchyChanged();
+    method @Deprecated protected void onAttachedToActivity();
+    method @Deprecated protected void onAttachedToHierarchy(android.preference.PreferenceManager);
+    method @Deprecated @CallSuper protected void onBindView(android.view.View);
+    method @Deprecated protected void onClick();
+    method @Deprecated @CallSuper protected android.view.View onCreateView(android.view.ViewGroup);
+    method @Deprecated public void onDependencyChanged(android.preference.Preference, boolean);
+    method @Deprecated protected Object onGetDefaultValue(android.content.res.TypedArray, int);
+    method @Deprecated public void onParentChanged(android.preference.Preference, boolean);
+    method @Deprecated @CallSuper protected void onPrepareForRemoval();
+    method @Deprecated protected void onRestoreInstanceState(android.os.Parcelable);
+    method @Deprecated protected android.os.Parcelable onSaveInstanceState();
+    method @Deprecated protected void onSetInitialValue(boolean, Object);
+    method @Deprecated public android.os.Bundle peekExtras();
+    method @Deprecated protected boolean persistBoolean(boolean);
+    method @Deprecated protected boolean persistFloat(float);
+    method @Deprecated protected boolean persistInt(int);
+    method @Deprecated protected boolean persistLong(long);
+    method @Deprecated protected boolean persistString(String);
+    method @Deprecated public boolean persistStringSet(java.util.Set<java.lang.String>);
+    method @Deprecated public void restoreHierarchyState(android.os.Bundle);
+    method @Deprecated public void saveHierarchyState(android.os.Bundle);
+    method @Deprecated public void setDefaultValue(Object);
+    method @Deprecated public void setDependency(String);
+    method @Deprecated public void setEnabled(boolean);
+    method @Deprecated public void setFragment(String);
+    method @Deprecated public void setIcon(android.graphics.drawable.Drawable);
+    method @Deprecated public void setIcon(@DrawableRes int);
+    method @Deprecated public void setIconSpaceReserved(boolean);
+    method @Deprecated public void setIntent(android.content.Intent);
+    method @Deprecated public void setKey(String);
+    method @Deprecated public void setLayoutResource(@LayoutRes int);
+    method @Deprecated public void setOnPreferenceChangeListener(android.preference.Preference.OnPreferenceChangeListener);
+    method @Deprecated public void setOnPreferenceClickListener(android.preference.Preference.OnPreferenceClickListener);
+    method @Deprecated public void setOrder(int);
+    method @Deprecated public void setPersistent(boolean);
+    method @Deprecated public void setPreferenceDataStore(android.preference.PreferenceDataStore);
+    method @Deprecated @CallSuper public void setRecycleEnabled(boolean);
+    method @Deprecated public void setSelectable(boolean);
+    method @Deprecated public void setShouldDisableView(boolean);
+    method @Deprecated public void setSingleLineTitle(boolean);
+    method @Deprecated public void setSummary(CharSequence);
+    method @Deprecated public void setSummary(@StringRes int);
+    method @Deprecated public void setTitle(CharSequence);
+    method @Deprecated public void setTitle(@StringRes int);
+    method @Deprecated public void setWidgetLayoutResource(@LayoutRes int);
+    method @Deprecated public boolean shouldCommit();
+    method @Deprecated public boolean shouldDisableDependents();
+    method @Deprecated protected boolean shouldPersist();
+    field @Deprecated public static final int DEFAULT_ORDER = 2147483647; // 0x7fffffff
   }
 
-  public static deprecated class Preference.BaseSavedState extends android.view.AbsSavedState {
-    ctor public Preference.BaseSavedState(android.os.Parcel);
-    ctor public Preference.BaseSavedState(android.os.Parcelable);
-    field public static final android.os.Parcelable.Creator<android.preference.Preference.BaseSavedState> CREATOR;
+  @Deprecated public static class Preference.BaseSavedState extends android.view.AbsSavedState {
+    ctor @Deprecated public Preference.BaseSavedState(android.os.Parcel);
+    ctor @Deprecated public Preference.BaseSavedState(android.os.Parcelable);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.preference.Preference.BaseSavedState> CREATOR;
   }
 
-  public static abstract deprecated interface Preference.OnPreferenceChangeListener {
-    method public abstract boolean onPreferenceChange(android.preference.Preference, java.lang.Object);
+  @Deprecated public static interface Preference.OnPreferenceChangeListener {
+    method @Deprecated public boolean onPreferenceChange(android.preference.Preference, Object);
   }
 
-  public static abstract deprecated interface Preference.OnPreferenceClickListener {
-    method public abstract boolean onPreferenceClick(android.preference.Preference);
+  @Deprecated public static interface Preference.OnPreferenceClickListener {
+    method @Deprecated public boolean onPreferenceClick(android.preference.Preference);
   }
 
-  public abstract deprecated class PreferenceActivity extends android.app.ListActivity implements android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback {
-    ctor public PreferenceActivity();
-    method public deprecated void addPreferencesFromIntent(android.content.Intent);
-    method public deprecated void addPreferencesFromResource(int);
-    method public deprecated android.preference.Preference findPreference(java.lang.CharSequence);
-    method public void finishPreferencePanel(android.app.Fragment, int, android.content.Intent);
-    method public deprecated android.preference.PreferenceManager getPreferenceManager();
-    method public deprecated android.preference.PreferenceScreen getPreferenceScreen();
-    method public boolean hasHeaders();
-    method public void invalidateHeaders();
-    method public boolean isMultiPane();
-    method protected boolean isValidFragment(java.lang.String);
-    method public void loadHeadersFromResource(int, java.util.List<android.preference.PreferenceActivity.Header>);
-    method public void onBuildHeaders(java.util.List<android.preference.PreferenceActivity.Header>);
-    method public android.content.Intent onBuildStartFragmentIntent(java.lang.String, android.os.Bundle, int, int);
-    method public android.preference.PreferenceActivity.Header onGetInitialHeader();
-    method public android.preference.PreferenceActivity.Header onGetNewHeader();
-    method public void onHeaderClick(android.preference.PreferenceActivity.Header, int);
-    method public boolean onIsHidingHeaders();
-    method public boolean onIsMultiPane();
-    method public boolean onPreferenceStartFragment(android.preference.PreferenceFragment, android.preference.Preference);
-    method public deprecated boolean onPreferenceTreeClick(android.preference.PreferenceScreen, android.preference.Preference);
-    method public void setListFooter(android.view.View);
-    method public void setParentTitle(java.lang.CharSequence, java.lang.CharSequence, android.view.View.OnClickListener);
-    method public deprecated void setPreferenceScreen(android.preference.PreferenceScreen);
-    method public void showBreadCrumbs(java.lang.CharSequence, java.lang.CharSequence);
-    method public void startPreferenceFragment(android.app.Fragment, boolean);
-    method public void startPreferencePanel(java.lang.String, android.os.Bundle, int, java.lang.CharSequence, android.app.Fragment, int);
-    method public void startWithFragment(java.lang.String, android.os.Bundle, android.app.Fragment, int);
-    method public void startWithFragment(java.lang.String, android.os.Bundle, android.app.Fragment, int, int, int);
-    method public void switchToHeader(java.lang.String, android.os.Bundle);
-    method public void switchToHeader(android.preference.PreferenceActivity.Header);
-    field public static final java.lang.String EXTRA_NO_HEADERS = ":android:no_headers";
-    field public static final java.lang.String EXTRA_SHOW_FRAGMENT = ":android:show_fragment";
-    field public static final java.lang.String EXTRA_SHOW_FRAGMENT_ARGUMENTS = ":android:show_fragment_args";
-    field public static final java.lang.String EXTRA_SHOW_FRAGMENT_SHORT_TITLE = ":android:show_fragment_short_title";
-    field public static final java.lang.String EXTRA_SHOW_FRAGMENT_TITLE = ":android:show_fragment_title";
-    field public static final long HEADER_ID_UNDEFINED = -1L; // 0xffffffffffffffffL
+  @Deprecated public abstract class PreferenceActivity extends android.app.ListActivity implements android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback {
+    ctor @Deprecated public PreferenceActivity();
+    method @Deprecated public void addPreferencesFromIntent(android.content.Intent);
+    method @Deprecated public void addPreferencesFromResource(int);
+    method @Deprecated public android.preference.Preference findPreference(CharSequence);
+    method @Deprecated public void finishPreferencePanel(android.app.Fragment, int, android.content.Intent);
+    method @Deprecated public android.preference.PreferenceManager getPreferenceManager();
+    method @Deprecated public android.preference.PreferenceScreen getPreferenceScreen();
+    method @Deprecated public boolean hasHeaders();
+    method @Deprecated public void invalidateHeaders();
+    method @Deprecated public boolean isMultiPane();
+    method @Deprecated protected boolean isValidFragment(String);
+    method @Deprecated public void loadHeadersFromResource(@XmlRes int, java.util.List<android.preference.PreferenceActivity.Header>);
+    method @Deprecated public void onBuildHeaders(java.util.List<android.preference.PreferenceActivity.Header>);
+    method @Deprecated public android.content.Intent onBuildStartFragmentIntent(String, android.os.Bundle, @StringRes int, int);
+    method @Deprecated public android.preference.PreferenceActivity.Header onGetInitialHeader();
+    method @Deprecated public android.preference.PreferenceActivity.Header onGetNewHeader();
+    method @Deprecated public void onHeaderClick(android.preference.PreferenceActivity.Header, int);
+    method @Deprecated public boolean onIsHidingHeaders();
+    method @Deprecated public boolean onIsMultiPane();
+    method @Deprecated public boolean onPreferenceStartFragment(android.preference.PreferenceFragment, android.preference.Preference);
+    method @Deprecated public boolean onPreferenceTreeClick(android.preference.PreferenceScreen, android.preference.Preference);
+    method @Deprecated public void setListFooter(android.view.View);
+    method @Deprecated public void setParentTitle(CharSequence, CharSequence, android.view.View.OnClickListener);
+    method @Deprecated public void setPreferenceScreen(android.preference.PreferenceScreen);
+    method @Deprecated public void showBreadCrumbs(CharSequence, CharSequence);
+    method @Deprecated public void startPreferenceFragment(android.app.Fragment, boolean);
+    method @Deprecated public void startPreferencePanel(String, android.os.Bundle, @StringRes int, CharSequence, android.app.Fragment, int);
+    method @Deprecated public void startWithFragment(String, android.os.Bundle, android.app.Fragment, int);
+    method @Deprecated public void startWithFragment(String, android.os.Bundle, android.app.Fragment, int, @StringRes int, @StringRes int);
+    method @Deprecated public void switchToHeader(String, android.os.Bundle);
+    method @Deprecated public void switchToHeader(android.preference.PreferenceActivity.Header);
+    field @Deprecated public static final String EXTRA_NO_HEADERS = ":android:no_headers";
+    field @Deprecated public static final String EXTRA_SHOW_FRAGMENT = ":android:show_fragment";
+    field @Deprecated public static final String EXTRA_SHOW_FRAGMENT_ARGUMENTS = ":android:show_fragment_args";
+    field @Deprecated public static final String EXTRA_SHOW_FRAGMENT_SHORT_TITLE = ":android:show_fragment_short_title";
+    field @Deprecated public static final String EXTRA_SHOW_FRAGMENT_TITLE = ":android:show_fragment_title";
+    field @Deprecated public static final long HEADER_ID_UNDEFINED = -1L; // 0xffffffffffffffffL
   }
 
-  public static final deprecated class PreferenceActivity.Header implements android.os.Parcelable {
-    ctor public PreferenceActivity.Header();
-    method public int describeContents();
-    method public java.lang.CharSequence getBreadCrumbShortTitle(android.content.res.Resources);
-    method public java.lang.CharSequence getBreadCrumbTitle(android.content.res.Resources);
-    method public java.lang.CharSequence getSummary(android.content.res.Resources);
-    method public java.lang.CharSequence getTitle(android.content.res.Resources);
-    method public void readFromParcel(android.os.Parcel);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.preference.PreferenceActivity.Header> CREATOR;
-    field public java.lang.CharSequence breadCrumbShortTitle;
-    field public int breadCrumbShortTitleRes;
-    field public java.lang.CharSequence breadCrumbTitle;
-    field public int breadCrumbTitleRes;
-    field public android.os.Bundle extras;
-    field public java.lang.String fragment;
-    field public android.os.Bundle fragmentArguments;
-    field public int iconRes;
-    field public long id;
-    field public android.content.Intent intent;
-    field public java.lang.CharSequence summary;
-    field public int summaryRes;
-    field public java.lang.CharSequence title;
-    field public int titleRes;
+  @Deprecated public static final class PreferenceActivity.Header implements android.os.Parcelable {
+    ctor @Deprecated public PreferenceActivity.Header();
+    method @Deprecated public int describeContents();
+    method @Deprecated public CharSequence getBreadCrumbShortTitle(android.content.res.Resources);
+    method @Deprecated public CharSequence getBreadCrumbTitle(android.content.res.Resources);
+    method @Deprecated public CharSequence getSummary(android.content.res.Resources);
+    method @Deprecated public CharSequence getTitle(android.content.res.Resources);
+    method @Deprecated public void readFromParcel(android.os.Parcel);
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.preference.PreferenceActivity.Header> CREATOR;
+    field @Deprecated public CharSequence breadCrumbShortTitle;
+    field @Deprecated @StringRes public int breadCrumbShortTitleRes;
+    field @Deprecated public CharSequence breadCrumbTitle;
+    field @Deprecated @StringRes public int breadCrumbTitleRes;
+    field @Deprecated public android.os.Bundle extras;
+    field @Deprecated public String fragment;
+    field @Deprecated public android.os.Bundle fragmentArguments;
+    field @Deprecated public int iconRes;
+    field @Deprecated public long id;
+    field @Deprecated public android.content.Intent intent;
+    field @Deprecated public CharSequence summary;
+    field @Deprecated @StringRes public int summaryRes;
+    field @Deprecated public CharSequence title;
+    field @Deprecated @StringRes public int titleRes;
   }
 
-  public deprecated class PreferenceCategory extends android.preference.PreferenceGroup {
-    ctor public PreferenceCategory(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public PreferenceCategory(android.content.Context, android.util.AttributeSet, int);
-    ctor public PreferenceCategory(android.content.Context, android.util.AttributeSet);
-    ctor public PreferenceCategory(android.content.Context);
+  @Deprecated public class PreferenceCategory extends android.preference.PreferenceGroup {
+    ctor @Deprecated public PreferenceCategory(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public PreferenceCategory(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public PreferenceCategory(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public PreferenceCategory(android.content.Context);
   }
 
-  public abstract deprecated interface PreferenceDataStore {
-    method public default boolean getBoolean(java.lang.String, boolean);
-    method public default float getFloat(java.lang.String, float);
-    method public default int getInt(java.lang.String, int);
-    method public default long getLong(java.lang.String, long);
-    method public default java.lang.String getString(java.lang.String, java.lang.String);
-    method public default java.util.Set<java.lang.String> getStringSet(java.lang.String, java.util.Set<java.lang.String>);
-    method public default void putBoolean(java.lang.String, boolean);
-    method public default void putFloat(java.lang.String, float);
-    method public default void putInt(java.lang.String, int);
-    method public default void putLong(java.lang.String, long);
-    method public default void putString(java.lang.String, java.lang.String);
-    method public default void putStringSet(java.lang.String, java.util.Set<java.lang.String>);
+  @Deprecated public interface PreferenceDataStore {
+    method @Deprecated public default boolean getBoolean(String, boolean);
+    method @Deprecated public default float getFloat(String, float);
+    method @Deprecated public default int getInt(String, int);
+    method @Deprecated public default long getLong(String, long);
+    method @Deprecated @Nullable public default String getString(String, @Nullable String);
+    method @Deprecated @Nullable public default java.util.Set<java.lang.String> getStringSet(String, @Nullable java.util.Set<java.lang.String>);
+    method @Deprecated public default void putBoolean(String, boolean);
+    method @Deprecated public default void putFloat(String, float);
+    method @Deprecated public default void putInt(String, int);
+    method @Deprecated public default void putLong(String, long);
+    method @Deprecated public default void putString(String, @Nullable String);
+    method @Deprecated public default void putStringSet(String, @Nullable java.util.Set<java.lang.String>);
   }
 
-  public abstract deprecated class PreferenceFragment extends android.app.Fragment {
-    ctor public PreferenceFragment();
-    method public void addPreferencesFromIntent(android.content.Intent);
-    method public void addPreferencesFromResource(int);
-    method public android.preference.Preference findPreference(java.lang.CharSequence);
-    method public android.preference.PreferenceManager getPreferenceManager();
-    method public android.preference.PreferenceScreen getPreferenceScreen();
-    method public boolean onPreferenceTreeClick(android.preference.PreferenceScreen, android.preference.Preference);
-    method public void setPreferenceScreen(android.preference.PreferenceScreen);
+  @Deprecated public abstract class PreferenceFragment extends android.app.Fragment {
+    ctor @Deprecated public PreferenceFragment();
+    method @Deprecated public void addPreferencesFromIntent(android.content.Intent);
+    method @Deprecated public void addPreferencesFromResource(@XmlRes int);
+    method @Deprecated public android.preference.Preference findPreference(CharSequence);
+    method @Deprecated public android.preference.PreferenceManager getPreferenceManager();
+    method @Deprecated public android.preference.PreferenceScreen getPreferenceScreen();
+    method @Deprecated public boolean onPreferenceTreeClick(android.preference.PreferenceScreen, android.preference.Preference);
+    method @Deprecated public void setPreferenceScreen(android.preference.PreferenceScreen);
   }
 
-  public static abstract deprecated interface PreferenceFragment.OnPreferenceStartFragmentCallback {
-    method public abstract boolean onPreferenceStartFragment(android.preference.PreferenceFragment, android.preference.Preference);
+  @Deprecated public static interface PreferenceFragment.OnPreferenceStartFragmentCallback {
+    method @Deprecated public boolean onPreferenceStartFragment(android.preference.PreferenceFragment, android.preference.Preference);
   }
 
-  public abstract deprecated class PreferenceGroup extends android.preference.Preference {
-    ctor public PreferenceGroup(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public PreferenceGroup(android.content.Context, android.util.AttributeSet, int);
-    ctor public PreferenceGroup(android.content.Context, android.util.AttributeSet);
-    method public void addItemFromInflater(android.preference.Preference);
-    method public boolean addPreference(android.preference.Preference);
-    method protected void dispatchRestoreInstanceState(android.os.Bundle);
-    method protected void dispatchSaveInstanceState(android.os.Bundle);
-    method public android.preference.Preference findPreference(java.lang.CharSequence);
-    method public android.preference.Preference getPreference(int);
-    method public int getPreferenceCount();
-    method protected boolean isOnSameScreenAsChildren();
-    method public boolean isOrderingAsAdded();
-    method protected boolean onPrepareAddPreference(android.preference.Preference);
-    method public void removeAll();
-    method public boolean removePreference(android.preference.Preference);
-    method public void setOrderingAsAdded(boolean);
+  @Deprecated public abstract class PreferenceGroup extends android.preference.Preference {
+    ctor @Deprecated public PreferenceGroup(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public PreferenceGroup(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public PreferenceGroup(android.content.Context, android.util.AttributeSet);
+    method @Deprecated public void addItemFromInflater(android.preference.Preference);
+    method @Deprecated public boolean addPreference(android.preference.Preference);
+    method @Deprecated protected void dispatchRestoreInstanceState(android.os.Bundle);
+    method @Deprecated protected void dispatchSaveInstanceState(android.os.Bundle);
+    method @Deprecated public android.preference.Preference findPreference(CharSequence);
+    method @Deprecated public android.preference.Preference getPreference(int);
+    method @Deprecated public int getPreferenceCount();
+    method @Deprecated protected boolean isOnSameScreenAsChildren();
+    method @Deprecated public boolean isOrderingAsAdded();
+    method @Deprecated protected boolean onPrepareAddPreference(android.preference.Preference);
+    method @Deprecated public void removeAll();
+    method @Deprecated public boolean removePreference(android.preference.Preference);
+    method @Deprecated public void setOrderingAsAdded(boolean);
   }
 
-  public deprecated class PreferenceManager {
-    method public android.preference.PreferenceScreen createPreferenceScreen(android.content.Context);
-    method public android.preference.Preference findPreference(java.lang.CharSequence);
-    method public static android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context);
-    method public static java.lang.String getDefaultSharedPreferencesName(android.content.Context);
-    method public android.preference.PreferenceDataStore getPreferenceDataStore();
-    method public android.content.SharedPreferences getSharedPreferences();
-    method public int getSharedPreferencesMode();
-    method public java.lang.String getSharedPreferencesName();
-    method public boolean isStorageDefault();
-    method public boolean isStorageDeviceProtected();
-    method public static void setDefaultValues(android.content.Context, int, boolean);
-    method public static void setDefaultValues(android.content.Context, java.lang.String, int, int, boolean);
-    method public void setPreferenceDataStore(android.preference.PreferenceDataStore);
-    method public void setSharedPreferencesMode(int);
-    method public void setSharedPreferencesName(java.lang.String);
-    method public void setStorageDefault();
-    method public void setStorageDeviceProtected();
-    field public static final java.lang.String KEY_HAS_SET_DEFAULT_VALUES = "_has_set_default_values";
-    field public static final java.lang.String METADATA_KEY_PREFERENCES = "android.preference";
+  @Deprecated public class PreferenceManager {
+    method @Deprecated public android.preference.PreferenceScreen createPreferenceScreen(android.content.Context);
+    method @Deprecated @Nullable public android.preference.Preference findPreference(CharSequence);
+    method @Deprecated public static android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context);
+    method @Deprecated public static String getDefaultSharedPreferencesName(android.content.Context);
+    method @Deprecated @Nullable public android.preference.PreferenceDataStore getPreferenceDataStore();
+    method @Deprecated public android.content.SharedPreferences getSharedPreferences();
+    method @Deprecated public int getSharedPreferencesMode();
+    method @Deprecated public String getSharedPreferencesName();
+    method @Deprecated public boolean isStorageDefault();
+    method @Deprecated public boolean isStorageDeviceProtected();
+    method @Deprecated public static void setDefaultValues(android.content.Context, @XmlRes int, boolean);
+    method @Deprecated public static void setDefaultValues(android.content.Context, String, int, int, boolean);
+    method @Deprecated public void setPreferenceDataStore(android.preference.PreferenceDataStore);
+    method @Deprecated public void setSharedPreferencesMode(int);
+    method @Deprecated public void setSharedPreferencesName(String);
+    method @Deprecated public void setStorageDefault();
+    method @Deprecated public void setStorageDeviceProtected();
+    field @Deprecated public static final String KEY_HAS_SET_DEFAULT_VALUES = "_has_set_default_values";
+    field @Deprecated public static final String METADATA_KEY_PREFERENCES = "android.preference";
   }
 
-  public static abstract deprecated interface PreferenceManager.OnActivityDestroyListener {
-    method public abstract void onActivityDestroy();
+  @Deprecated public static interface PreferenceManager.OnActivityDestroyListener {
+    method @Deprecated public void onActivityDestroy();
   }
 
-  public static abstract deprecated interface PreferenceManager.OnActivityResultListener {
-    method public abstract boolean onActivityResult(int, int, android.content.Intent);
+  @Deprecated public static interface PreferenceManager.OnActivityResultListener {
+    method @Deprecated public boolean onActivityResult(int, int, android.content.Intent);
   }
 
-  public static abstract deprecated interface PreferenceManager.OnActivityStopListener {
-    method public abstract void onActivityStop();
+  @Deprecated public static interface PreferenceManager.OnActivityStopListener {
+    method @Deprecated public void onActivityStop();
   }
 
-  public final deprecated class PreferenceScreen extends android.preference.PreferenceGroup implements android.widget.AdapterView.OnItemClickListener android.content.DialogInterface.OnDismissListener {
-    method public void bind(android.widget.ListView);
-    method public android.app.Dialog getDialog();
-    method public android.widget.ListAdapter getRootAdapter();
-    method protected android.widget.ListAdapter onCreateRootAdapter();
-    method public void onDismiss(android.content.DialogInterface);
-    method public void onItemClick(android.widget.AdapterView, android.view.View, int, long);
+  @Deprecated public final class PreferenceScreen extends android.preference.PreferenceGroup implements android.widget.AdapterView.OnItemClickListener android.content.DialogInterface.OnDismissListener {
+    method @Deprecated public void bind(android.widget.ListView);
+    method @Deprecated public android.app.Dialog getDialog();
+    method @Deprecated public android.widget.ListAdapter getRootAdapter();
+    method @Deprecated protected android.widget.ListAdapter onCreateRootAdapter();
+    method @Deprecated public void onDismiss(android.content.DialogInterface);
+    method @Deprecated public void onItemClick(android.widget.AdapterView, android.view.View, int, long);
   }
 
-  public deprecated class RingtonePreference extends android.preference.Preference implements android.preference.PreferenceManager.OnActivityResultListener {
-    ctor public RingtonePreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public RingtonePreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public RingtonePreference(android.content.Context, android.util.AttributeSet);
-    ctor public RingtonePreference(android.content.Context);
-    method public int getRingtoneType();
-    method public boolean getShowDefault();
-    method public boolean getShowSilent();
-    method public boolean onActivityResult(int, int, android.content.Intent);
-    method protected void onPrepareRingtonePickerIntent(android.content.Intent);
-    method protected android.net.Uri onRestoreRingtone();
-    method protected void onSaveRingtone(android.net.Uri);
-    method public void setRingtoneType(int);
-    method public void setShowDefault(boolean);
-    method public void setShowSilent(boolean);
+  @Deprecated public class RingtonePreference extends android.preference.Preference implements android.preference.PreferenceManager.OnActivityResultListener {
+    ctor @Deprecated public RingtonePreference(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public RingtonePreference(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public RingtonePreference(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public RingtonePreference(android.content.Context);
+    method @Deprecated public int getRingtoneType();
+    method @Deprecated public boolean getShowDefault();
+    method @Deprecated public boolean getShowSilent();
+    method @Deprecated public boolean onActivityResult(int, int, android.content.Intent);
+    method @Deprecated protected void onPrepareRingtonePickerIntent(android.content.Intent);
+    method @Deprecated protected android.net.Uri onRestoreRingtone();
+    method @Deprecated protected void onSaveRingtone(android.net.Uri);
+    method @Deprecated public void setRingtoneType(int);
+    method @Deprecated public void setShowDefault(boolean);
+    method @Deprecated public void setShowSilent(boolean);
   }
 
-  public deprecated class SwitchPreference extends android.preference.TwoStatePreference {
-    ctor public SwitchPreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public SwitchPreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public SwitchPreference(android.content.Context, android.util.AttributeSet);
-    ctor public SwitchPreference(android.content.Context);
-    method public java.lang.CharSequence getSwitchTextOff();
-    method public java.lang.CharSequence getSwitchTextOn();
-    method public void setSwitchTextOff(java.lang.CharSequence);
-    method public void setSwitchTextOff(int);
-    method public void setSwitchTextOn(java.lang.CharSequence);
-    method public void setSwitchTextOn(int);
+  @Deprecated public class SwitchPreference extends android.preference.TwoStatePreference {
+    ctor @Deprecated public SwitchPreference(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public SwitchPreference(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public SwitchPreference(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public SwitchPreference(android.content.Context);
+    method @Deprecated public CharSequence getSwitchTextOff();
+    method @Deprecated public CharSequence getSwitchTextOn();
+    method @Deprecated public void setSwitchTextOff(CharSequence);
+    method @Deprecated public void setSwitchTextOff(@StringRes int);
+    method @Deprecated public void setSwitchTextOn(CharSequence);
+    method @Deprecated public void setSwitchTextOn(@StringRes int);
   }
 
-  public abstract deprecated class TwoStatePreference extends android.preference.Preference {
-    ctor public TwoStatePreference(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public TwoStatePreference(android.content.Context, android.util.AttributeSet, int);
-    ctor public TwoStatePreference(android.content.Context, android.util.AttributeSet);
-    ctor public TwoStatePreference(android.content.Context);
-    method public boolean getDisableDependentsState();
-    method public java.lang.CharSequence getSummaryOff();
-    method public java.lang.CharSequence getSummaryOn();
-    method public boolean isChecked();
-    method public void setChecked(boolean);
-    method public void setDisableDependentsState(boolean);
-    method public void setSummaryOff(java.lang.CharSequence);
-    method public void setSummaryOff(int);
-    method public void setSummaryOn(java.lang.CharSequence);
-    method public void setSummaryOn(int);
+  @Deprecated public abstract class TwoStatePreference extends android.preference.Preference {
+    ctor @Deprecated public TwoStatePreference(android.content.Context, android.util.AttributeSet, int, int);
+    ctor @Deprecated public TwoStatePreference(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public TwoStatePreference(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public TwoStatePreference(android.content.Context);
+    method @Deprecated public boolean getDisableDependentsState();
+    method @Deprecated public CharSequence getSummaryOff();
+    method @Deprecated public CharSequence getSummaryOn();
+    method @Deprecated public boolean isChecked();
+    method @Deprecated public void setChecked(boolean);
+    method @Deprecated public void setDisableDependentsState(boolean);
+    method @Deprecated public void setSummaryOff(CharSequence);
+    method @Deprecated public void setSummaryOff(@StringRes int);
+    method @Deprecated public void setSummaryOn(CharSequence);
+    method @Deprecated public void setSummaryOn(@StringRes int);
   }
 
 }
@@ -36045,10 +35955,10 @@
 package android.print {
 
   public final class PageRange implements android.os.Parcelable {
-    ctor public PageRange(int, int);
+    ctor public PageRange(@IntRange(from=0) int, @IntRange(from=0) int);
     method public int describeContents();
-    method public int getEnd();
-    method public int getStart();
+    method @IntRange(from=0) public int getEnd();
+    method @IntRange(from=0) public int getStart();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.print.PageRange ALL_PAGES;
     field public static final android.os.Parcelable.Creator<android.print.PageRange> CREATOR;
@@ -36056,11 +35966,11 @@
 
   public final class PrintAttributes implements android.os.Parcelable {
     method public int describeContents();
-    method public int getColorMode();
-    method public int getDuplexMode();
-    method public android.print.PrintAttributes.MediaSize getMediaSize();
-    method public android.print.PrintAttributes.Margins getMinMargins();
-    method public android.print.PrintAttributes.Resolution getResolution();
+    method @IntRange(from=0) public int getColorMode();
+    method @IntRange(from=0) public int getDuplexMode();
+    method @Nullable public android.print.PrintAttributes.MediaSize getMediaSize();
+    method @Nullable public android.print.PrintAttributes.Margins getMinMargins();
+    method @Nullable public android.print.PrintAttributes.Resolution getResolution();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int COLOR_MODE_COLOR = 2; // 0x2
     field public static final int COLOR_MODE_MONOCHROME = 1; // 0x1
@@ -36072,12 +35982,12 @@
 
   public static final class PrintAttributes.Builder {
     ctor public PrintAttributes.Builder();
-    method public android.print.PrintAttributes build();
-    method public android.print.PrintAttributes.Builder setColorMode(int);
-    method public android.print.PrintAttributes.Builder setDuplexMode(int);
-    method public android.print.PrintAttributes.Builder setMediaSize(android.print.PrintAttributes.MediaSize);
-    method public android.print.PrintAttributes.Builder setMinMargins(android.print.PrintAttributes.Margins);
-    method public android.print.PrintAttributes.Builder setResolution(android.print.PrintAttributes.Resolution);
+    method @NonNull public android.print.PrintAttributes build();
+    method @NonNull public android.print.PrintAttributes.Builder setColorMode(int);
+    method @NonNull public android.print.PrintAttributes.Builder setDuplexMode(int);
+    method @NonNull public android.print.PrintAttributes.Builder setMediaSize(@NonNull android.print.PrintAttributes.MediaSize);
+    method @NonNull public android.print.PrintAttributes.Builder setMinMargins(@NonNull android.print.PrintAttributes.Margins);
+    method @NonNull public android.print.PrintAttributes.Builder setResolution(@NonNull android.print.PrintAttributes.Resolution);
   }
 
   public static final class PrintAttributes.Margins {
@@ -36090,13 +36000,13 @@
   }
 
   public static final class PrintAttributes.MediaSize {
-    ctor public PrintAttributes.MediaSize(java.lang.String, java.lang.String, int, int);
-    method public android.print.PrintAttributes.MediaSize asLandscape();
-    method public android.print.PrintAttributes.MediaSize asPortrait();
-    method public int getHeightMils();
-    method public java.lang.String getId();
-    method public java.lang.String getLabel(android.content.pm.PackageManager);
-    method public int getWidthMils();
+    ctor public PrintAttributes.MediaSize(@NonNull String, @NonNull String, @IntRange(from=1) int, @IntRange(from=1) int);
+    method @NonNull public android.print.PrintAttributes.MediaSize asLandscape();
+    method @NonNull public android.print.PrintAttributes.MediaSize asPortrait();
+    method @IntRange(from=1) public int getHeightMils();
+    method @NonNull public String getId();
+    method @NonNull public String getLabel(@NonNull android.content.pm.PackageManager);
+    method @IntRange(from=1) public int getWidthMils();
     method public boolean isPortrait();
     field public static final android.print.PrintAttributes.MediaSize ISO_A0;
     field public static final android.print.PrintAttributes.MediaSize ISO_A1;
@@ -36184,11 +36094,11 @@
   }
 
   public static final class PrintAttributes.Resolution {
-    ctor public PrintAttributes.Resolution(java.lang.String, java.lang.String, int, int);
-    method public int getHorizontalDpi();
-    method public java.lang.String getId();
-    method public java.lang.String getLabel();
-    method public int getVerticalDpi();
+    ctor public PrintAttributes.Resolution(@NonNull String, @NonNull String, @IntRange(from=1) int, @IntRange(from=1) int);
+    method @IntRange(from=1) public int getHorizontalDpi();
+    method @NonNull public String getId();
+    method @NonNull public String getLabel();
+    method @IntRange(from=1) public int getVerticalDpi();
   }
 
   public abstract class PrintDocumentAdapter {
@@ -36197,27 +36107,27 @@
     method public abstract void onLayout(android.print.PrintAttributes, android.print.PrintAttributes, android.os.CancellationSignal, android.print.PrintDocumentAdapter.LayoutResultCallback, android.os.Bundle);
     method public void onStart();
     method public abstract void onWrite(android.print.PageRange[], android.os.ParcelFileDescriptor, android.os.CancellationSignal, android.print.PrintDocumentAdapter.WriteResultCallback);
-    field public static final java.lang.String EXTRA_PRINT_PREVIEW = "EXTRA_PRINT_PREVIEW";
+    field public static final String EXTRA_PRINT_PREVIEW = "EXTRA_PRINT_PREVIEW";
   }
 
-  public static abstract class PrintDocumentAdapter.LayoutResultCallback {
+  public abstract static class PrintDocumentAdapter.LayoutResultCallback {
     method public void onLayoutCancelled();
-    method public void onLayoutFailed(java.lang.CharSequence);
+    method public void onLayoutFailed(CharSequence);
     method public void onLayoutFinished(android.print.PrintDocumentInfo, boolean);
   }
 
-  public static abstract class PrintDocumentAdapter.WriteResultCallback {
+  public abstract static class PrintDocumentAdapter.WriteResultCallback {
     method public void onWriteCancelled();
-    method public void onWriteFailed(java.lang.CharSequence);
+    method public void onWriteFailed(CharSequence);
     method public void onWriteFinished(android.print.PageRange[]);
   }
 
   public final class PrintDocumentInfo implements android.os.Parcelable {
     method public int describeContents();
     method public int getContentType();
-    method public long getDataSize();
-    method public java.lang.String getName();
-    method public int getPageCount();
+    method @IntRange(from=0) public long getDataSize();
+    method @NonNull public String getName();
+    method @IntRange(from=0xffffffff) public int getPageCount();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CONTENT_TYPE_DOCUMENT = 0; // 0x0
     field public static final int CONTENT_TYPE_PHOTO = 1; // 0x1
@@ -36227,16 +36137,16 @@
   }
 
   public static final class PrintDocumentInfo.Builder {
-    ctor public PrintDocumentInfo.Builder(java.lang.String);
-    method public android.print.PrintDocumentInfo build();
-    method public android.print.PrintDocumentInfo.Builder setContentType(int);
-    method public android.print.PrintDocumentInfo.Builder setPageCount(int);
+    ctor public PrintDocumentInfo.Builder(@NonNull String);
+    method @NonNull public android.print.PrintDocumentInfo build();
+    method @NonNull public android.print.PrintDocumentInfo.Builder setContentType(int);
+    method @NonNull public android.print.PrintDocumentInfo.Builder setPageCount(@IntRange(from=0xffffffff) int);
   }
 
   public final class PrintJob {
     method public void cancel();
-    method public android.print.PrintJobId getId();
-    method public android.print.PrintJobInfo getInfo();
+    method @Nullable public android.print.PrintJobId getId();
+    method @NonNull public android.print.PrintJobInfo getInfo();
     method public boolean isBlocked();
     method public boolean isCancelled();
     method public boolean isCompleted();
@@ -36254,17 +36164,17 @@
 
   public final class PrintJobInfo implements android.os.Parcelable {
     method public int describeContents();
-    method public int getAdvancedIntOption(java.lang.String);
-    method public java.lang.String getAdvancedStringOption(java.lang.String);
-    method public android.print.PrintAttributes getAttributes();
-    method public int getCopies();
+    method public int getAdvancedIntOption(String);
+    method public String getAdvancedStringOption(String);
+    method @NonNull public android.print.PrintAttributes getAttributes();
+    method @IntRange(from=0) public int getCopies();
     method public long getCreationTime();
-    method public android.print.PrintJobId getId();
-    method public java.lang.String getLabel();
-    method public android.print.PageRange[] getPages();
-    method public android.print.PrinterId getPrinterId();
+    method @Nullable public android.print.PrintJobId getId();
+    method @NonNull public String getLabel();
+    method @Nullable public android.print.PageRange[] getPages();
+    method @Nullable public android.print.PrinterId getPrinterId();
     method public int getState();
-    method public boolean hasAdvancedOption(java.lang.String);
+    method public boolean hasAdvancedOption(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.print.PrintJobInfo> CREATOR;
     field public static final int STATE_BLOCKED = 4; // 0x4
@@ -36277,55 +36187,55 @@
   }
 
   public static final class PrintJobInfo.Builder {
-    ctor public PrintJobInfo.Builder(android.print.PrintJobInfo);
-    method public android.print.PrintJobInfo build();
-    method public void putAdvancedOption(java.lang.String, java.lang.String);
-    method public void putAdvancedOption(java.lang.String, int);
-    method public void setAttributes(android.print.PrintAttributes);
-    method public void setCopies(int);
-    method public void setPages(android.print.PageRange[]);
+    ctor public PrintJobInfo.Builder(@Nullable android.print.PrintJobInfo);
+    method @NonNull public android.print.PrintJobInfo build();
+    method public void putAdvancedOption(@NonNull String, @Nullable String);
+    method public void putAdvancedOption(@NonNull String, int);
+    method public void setAttributes(@NonNull android.print.PrintAttributes);
+    method public void setCopies(@IntRange(from=1) int);
+    method public void setPages(@NonNull android.print.PageRange[]);
   }
 
   public final class PrintManager {
-    method public java.util.List<android.print.PrintJob> getPrintJobs();
-    method public android.print.PrintJob print(java.lang.String, android.print.PrintDocumentAdapter, android.print.PrintAttributes);
+    method @NonNull public java.util.List<android.print.PrintJob> getPrintJobs();
+    method @NonNull public android.print.PrintJob print(@NonNull String, @NonNull android.print.PrintDocumentAdapter, @Nullable android.print.PrintAttributes);
   }
 
   public final class PrinterCapabilitiesInfo implements android.os.Parcelable {
     method public int describeContents();
     method public int getColorModes();
-    method public android.print.PrintAttributes getDefaults();
+    method @NonNull public android.print.PrintAttributes getDefaults();
     method public int getDuplexModes();
-    method public java.util.List<android.print.PrintAttributes.MediaSize> getMediaSizes();
-    method public android.print.PrintAttributes.Margins getMinMargins();
-    method public java.util.List<android.print.PrintAttributes.Resolution> getResolutions();
+    method @NonNull public java.util.List<android.print.PrintAttributes.MediaSize> getMediaSizes();
+    method @NonNull public android.print.PrintAttributes.Margins getMinMargins();
+    method @NonNull public java.util.List<android.print.PrintAttributes.Resolution> getResolutions();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.print.PrinterCapabilitiesInfo> CREATOR;
   }
 
   public static final class PrinterCapabilitiesInfo.Builder {
-    ctor public PrinterCapabilitiesInfo.Builder(android.print.PrinterId);
-    method public android.print.PrinterCapabilitiesInfo.Builder addMediaSize(android.print.PrintAttributes.MediaSize, boolean);
-    method public android.print.PrinterCapabilitiesInfo.Builder addResolution(android.print.PrintAttributes.Resolution, boolean);
-    method public android.print.PrinterCapabilitiesInfo build();
-    method public android.print.PrinterCapabilitiesInfo.Builder setColorModes(int, int);
-    method public android.print.PrinterCapabilitiesInfo.Builder setDuplexModes(int, int);
-    method public android.print.PrinterCapabilitiesInfo.Builder setMinMargins(android.print.PrintAttributes.Margins);
+    ctor public PrinterCapabilitiesInfo.Builder(@NonNull android.print.PrinterId);
+    method @NonNull public android.print.PrinterCapabilitiesInfo.Builder addMediaSize(@NonNull android.print.PrintAttributes.MediaSize, boolean);
+    method @NonNull public android.print.PrinterCapabilitiesInfo.Builder addResolution(@NonNull android.print.PrintAttributes.Resolution, boolean);
+    method @NonNull public android.print.PrinterCapabilitiesInfo build();
+    method @NonNull public android.print.PrinterCapabilitiesInfo.Builder setColorModes(int, int);
+    method @NonNull public android.print.PrinterCapabilitiesInfo.Builder setDuplexModes(int, int);
+    method @NonNull public android.print.PrinterCapabilitiesInfo.Builder setMinMargins(@NonNull android.print.PrintAttributes.Margins);
   }
 
   public final class PrinterId implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getLocalId();
+    method @NonNull public String getLocalId();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.print.PrinterId> CREATOR;
   }
 
   public final class PrinterInfo implements android.os.Parcelable {
     method public int describeContents();
-    method public android.print.PrinterCapabilitiesInfo getCapabilities();
-    method public java.lang.String getDescription();
-    method public android.print.PrinterId getId();
-    method public java.lang.String getName();
+    method @Nullable public android.print.PrinterCapabilitiesInfo getCapabilities();
+    method @Nullable public String getDescription();
+    method @NonNull public android.print.PrinterId getId();
+    method @NonNull public String getName();
     method public int getStatus();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.print.PrinterInfo> CREATOR;
@@ -36335,16 +36245,16 @@
   }
 
   public static final class PrinterInfo.Builder {
-    ctor public PrinterInfo.Builder(android.print.PrinterId, java.lang.String, int);
-    ctor public PrinterInfo.Builder(android.print.PrinterInfo);
-    method public android.print.PrinterInfo build();
-    method public android.print.PrinterInfo.Builder setCapabilities(android.print.PrinterCapabilitiesInfo);
-    method public android.print.PrinterInfo.Builder setDescription(java.lang.String);
-    method public android.print.PrinterInfo.Builder setHasCustomPrinterIcon(boolean);
-    method public android.print.PrinterInfo.Builder setIconResourceId(int);
-    method public android.print.PrinterInfo.Builder setInfoIntent(android.app.PendingIntent);
-    method public android.print.PrinterInfo.Builder setName(java.lang.String);
-    method public android.print.PrinterInfo.Builder setStatus(int);
+    ctor public PrinterInfo.Builder(@NonNull android.print.PrinterId, @NonNull String, int);
+    ctor public PrinterInfo.Builder(@NonNull android.print.PrinterInfo);
+    method @NonNull public android.print.PrinterInfo build();
+    method @NonNull public android.print.PrinterInfo.Builder setCapabilities(@NonNull android.print.PrinterCapabilitiesInfo);
+    method @NonNull public android.print.PrinterInfo.Builder setDescription(@NonNull String);
+    method @NonNull public android.print.PrinterInfo.Builder setHasCustomPrinterIcon(boolean);
+    method @NonNull public android.print.PrinterInfo.Builder setIconResourceId(@DrawableRes int);
+    method @NonNull public android.print.PrinterInfo.Builder setInfoIntent(@NonNull android.app.PendingIntent);
+    method @NonNull public android.print.PrinterInfo.Builder setName(@NonNull String);
+    method @NonNull public android.print.PrinterInfo.Builder setStatus(int);
   }
 
 }
@@ -36352,11 +36262,11 @@
 package android.print.pdf {
 
   public class PrintedPdfDocument extends android.graphics.pdf.PdfDocument {
-    ctor public PrintedPdfDocument(android.content.Context, android.print.PrintAttributes);
-    method public android.graphics.Rect getPageContentRect();
-    method public int getPageHeight();
-    method public int getPageWidth();
-    method public android.graphics.pdf.PdfDocument.Page startPage(int);
+    ctor public PrintedPdfDocument(@NonNull android.content.Context, @NonNull android.print.PrintAttributes);
+    method @NonNull public android.graphics.Rect getPageContentRect();
+    method @IntRange(from=0) public int getPageHeight();
+    method @IntRange(from=0) public int getPageWidth();
+    method @NonNull public android.graphics.pdf.PdfDocument.Page startPage(@IntRange(from=0) int);
   }
 
 }
@@ -36364,74 +36274,74 @@
 package android.printservice {
 
   public final class CustomPrinterIconCallback {
-    method public boolean onCustomPrinterIconLoaded(android.graphics.drawable.Icon);
+    method public boolean onCustomPrinterIconLoaded(@Nullable android.graphics.drawable.Icon);
   }
 
   public final class PrintDocument {
-    method public android.os.ParcelFileDescriptor getData();
-    method public android.print.PrintDocumentInfo getInfo();
+    method @Nullable public android.os.ParcelFileDescriptor getData();
+    method @NonNull public android.print.PrintDocumentInfo getInfo();
   }
 
   public final class PrintJob {
-    method public boolean block(java.lang.String);
-    method public boolean cancel();
-    method public boolean complete();
-    method public boolean fail(java.lang.String);
-    method public int getAdvancedIntOption(java.lang.String);
-    method public java.lang.String getAdvancedStringOption(java.lang.String);
-    method public android.printservice.PrintDocument getDocument();
-    method public android.print.PrintJobId getId();
-    method public android.print.PrintJobInfo getInfo();
-    method public java.lang.String getTag();
-    method public boolean hasAdvancedOption(java.lang.String);
-    method public boolean isBlocked();
-    method public boolean isCancelled();
-    method public boolean isCompleted();
-    method public boolean isFailed();
-    method public boolean isQueued();
-    method public boolean isStarted();
-    method public void setProgress(float);
-    method public void setStatus(java.lang.CharSequence);
-    method public void setStatus(int);
-    method public boolean setTag(java.lang.String);
-    method public boolean start();
+    method @MainThread public boolean block(@Nullable String);
+    method @MainThread public boolean cancel();
+    method @MainThread public boolean complete();
+    method @MainThread public boolean fail(@Nullable String);
+    method @MainThread public int getAdvancedIntOption(String);
+    method @MainThread public String getAdvancedStringOption(String);
+    method @MainThread @NonNull public android.printservice.PrintDocument getDocument();
+    method @MainThread public android.print.PrintJobId getId();
+    method @MainThread @NonNull public android.print.PrintJobInfo getInfo();
+    method @MainThread @Nullable public String getTag();
+    method @MainThread public boolean hasAdvancedOption(String);
+    method @MainThread public boolean isBlocked();
+    method @MainThread public boolean isCancelled();
+    method @MainThread public boolean isCompleted();
+    method @MainThread public boolean isFailed();
+    method @MainThread public boolean isQueued();
+    method @MainThread public boolean isStarted();
+    method @MainThread public void setProgress(@FloatRange(from=0.0, to=1.0) float);
+    method @MainThread public void setStatus(@Nullable CharSequence);
+    method @MainThread public void setStatus(@StringRes int);
+    method @MainThread public boolean setTag(@NonNull String);
+    method @MainThread public boolean start();
   }
 
   public abstract class PrintService extends android.app.Service {
     ctor public PrintService();
     method protected final void attachBaseContext(android.content.Context);
-    method public final android.print.PrinterId generatePrinterId(java.lang.String);
+    method @NonNull public final android.print.PrinterId generatePrinterId(String);
     method public final java.util.List<android.printservice.PrintJob> getActivePrintJobs();
     method public final android.os.IBinder onBind(android.content.Intent);
     method protected void onConnected();
-    method protected abstract android.printservice.PrinterDiscoverySession onCreatePrinterDiscoverySession();
+    method @Nullable protected abstract android.printservice.PrinterDiscoverySession onCreatePrinterDiscoverySession();
     method protected void onDisconnected();
     method protected abstract void onPrintJobQueued(android.printservice.PrintJob);
     method protected abstract void onRequestCancelPrintJob(android.printservice.PrintJob);
-    field public static final java.lang.String EXTRA_CAN_SELECT_PRINTER = "android.printservice.extra.CAN_SELECT_PRINTER";
-    field public static final java.lang.String EXTRA_PRINTER_INFO = "android.intent.extra.print.EXTRA_PRINTER_INFO";
-    field public static final java.lang.String EXTRA_PRINT_DOCUMENT_INFO = "android.printservice.extra.PRINT_DOCUMENT_INFO";
-    field public static final java.lang.String EXTRA_PRINT_JOB_INFO = "android.intent.extra.print.PRINT_JOB_INFO";
-    field public static final java.lang.String EXTRA_SELECT_PRINTER = "android.printservice.extra.SELECT_PRINTER";
-    field public static final java.lang.String SERVICE_INTERFACE = "android.printservice.PrintService";
-    field public static final java.lang.String SERVICE_META_DATA = "android.printservice";
+    field public static final String EXTRA_CAN_SELECT_PRINTER = "android.printservice.extra.CAN_SELECT_PRINTER";
+    field public static final String EXTRA_PRINTER_INFO = "android.intent.extra.print.EXTRA_PRINTER_INFO";
+    field public static final String EXTRA_PRINT_DOCUMENT_INFO = "android.printservice.extra.PRINT_DOCUMENT_INFO";
+    field public static final String EXTRA_PRINT_JOB_INFO = "android.intent.extra.print.PRINT_JOB_INFO";
+    field public static final String EXTRA_SELECT_PRINTER = "android.printservice.extra.SELECT_PRINTER";
+    field public static final String SERVICE_INTERFACE = "android.printservice.PrintService";
+    field public static final String SERVICE_META_DATA = "android.printservice";
   }
 
   public abstract class PrinterDiscoverySession {
     ctor public PrinterDiscoverySession();
-    method public final void addPrinters(java.util.List<android.print.PrinterInfo>);
-    method public final java.util.List<android.print.PrinterInfo> getPrinters();
-    method public final java.util.List<android.print.PrinterId> getTrackedPrinters();
+    method public final void addPrinters(@NonNull java.util.List<android.print.PrinterInfo>);
+    method @NonNull public final java.util.List<android.print.PrinterInfo> getPrinters();
+    method @NonNull public final java.util.List<android.print.PrinterId> getTrackedPrinters();
     method public final boolean isDestroyed();
     method public final boolean isPrinterDiscoveryStarted();
     method public abstract void onDestroy();
-    method public void onRequestCustomPrinterIcon(android.print.PrinterId, android.os.CancellationSignal, android.printservice.CustomPrinterIconCallback);
-    method public abstract void onStartPrinterDiscovery(java.util.List<android.print.PrinterId>);
-    method public abstract void onStartPrinterStateTracking(android.print.PrinterId);
+    method public void onRequestCustomPrinterIcon(@NonNull android.print.PrinterId, @NonNull android.os.CancellationSignal, @NonNull android.printservice.CustomPrinterIconCallback);
+    method public abstract void onStartPrinterDiscovery(@NonNull java.util.List<android.print.PrinterId>);
+    method public abstract void onStartPrinterStateTracking(@NonNull android.print.PrinterId);
     method public abstract void onStopPrinterDiscovery();
-    method public abstract void onStopPrinterStateTracking(android.print.PrinterId);
-    method public abstract void onValidatePrinters(java.util.List<android.print.PrinterId>);
-    method public final void removePrinters(java.util.List<android.print.PrinterId>);
+    method public abstract void onStopPrinterStateTracking(@NonNull android.print.PrinterId);
+    method public abstract void onValidatePrinters(@NonNull java.util.List<android.print.PrinterId>);
+    method public final void removePrinters(@NonNull java.util.List<android.print.PrinterId>);
   }
 
 }
@@ -36440,97 +36350,97 @@
 
   public final class AlarmClock {
     ctor public AlarmClock();
-    field public static final java.lang.String ACTION_DISMISS_ALARM = "android.intent.action.DISMISS_ALARM";
-    field public static final java.lang.String ACTION_DISMISS_TIMER = "android.intent.action.DISMISS_TIMER";
-    field public static final java.lang.String ACTION_SET_ALARM = "android.intent.action.SET_ALARM";
-    field public static final java.lang.String ACTION_SET_TIMER = "android.intent.action.SET_TIMER";
-    field public static final java.lang.String ACTION_SHOW_ALARMS = "android.intent.action.SHOW_ALARMS";
-    field public static final java.lang.String ACTION_SHOW_TIMERS = "android.intent.action.SHOW_TIMERS";
-    field public static final java.lang.String ACTION_SNOOZE_ALARM = "android.intent.action.SNOOZE_ALARM";
-    field public static final java.lang.String ALARM_SEARCH_MODE_ALL = "android.all";
-    field public static final java.lang.String ALARM_SEARCH_MODE_LABEL = "android.label";
-    field public static final java.lang.String ALARM_SEARCH_MODE_NEXT = "android.next";
-    field public static final java.lang.String ALARM_SEARCH_MODE_TIME = "android.time";
-    field public static final java.lang.String EXTRA_ALARM_SEARCH_MODE = "android.intent.extra.alarm.SEARCH_MODE";
-    field public static final java.lang.String EXTRA_ALARM_SNOOZE_DURATION = "android.intent.extra.alarm.SNOOZE_DURATION";
-    field public static final java.lang.String EXTRA_DAYS = "android.intent.extra.alarm.DAYS";
-    field public static final java.lang.String EXTRA_HOUR = "android.intent.extra.alarm.HOUR";
-    field public static final java.lang.String EXTRA_IS_PM = "android.intent.extra.alarm.IS_PM";
-    field public static final java.lang.String EXTRA_LENGTH = "android.intent.extra.alarm.LENGTH";
-    field public static final java.lang.String EXTRA_MESSAGE = "android.intent.extra.alarm.MESSAGE";
-    field public static final java.lang.String EXTRA_MINUTES = "android.intent.extra.alarm.MINUTES";
-    field public static final java.lang.String EXTRA_RINGTONE = "android.intent.extra.alarm.RINGTONE";
-    field public static final java.lang.String EXTRA_SKIP_UI = "android.intent.extra.alarm.SKIP_UI";
-    field public static final java.lang.String EXTRA_VIBRATE = "android.intent.extra.alarm.VIBRATE";
-    field public static final java.lang.String VALUE_RINGTONE_SILENT = "silent";
+    field public static final String ACTION_DISMISS_ALARM = "android.intent.action.DISMISS_ALARM";
+    field public static final String ACTION_DISMISS_TIMER = "android.intent.action.DISMISS_TIMER";
+    field public static final String ACTION_SET_ALARM = "android.intent.action.SET_ALARM";
+    field public static final String ACTION_SET_TIMER = "android.intent.action.SET_TIMER";
+    field public static final String ACTION_SHOW_ALARMS = "android.intent.action.SHOW_ALARMS";
+    field public static final String ACTION_SHOW_TIMERS = "android.intent.action.SHOW_TIMERS";
+    field public static final String ACTION_SNOOZE_ALARM = "android.intent.action.SNOOZE_ALARM";
+    field public static final String ALARM_SEARCH_MODE_ALL = "android.all";
+    field public static final String ALARM_SEARCH_MODE_LABEL = "android.label";
+    field public static final String ALARM_SEARCH_MODE_NEXT = "android.next";
+    field public static final String ALARM_SEARCH_MODE_TIME = "android.time";
+    field public static final String EXTRA_ALARM_SEARCH_MODE = "android.intent.extra.alarm.SEARCH_MODE";
+    field public static final String EXTRA_ALARM_SNOOZE_DURATION = "android.intent.extra.alarm.SNOOZE_DURATION";
+    field public static final String EXTRA_DAYS = "android.intent.extra.alarm.DAYS";
+    field public static final String EXTRA_HOUR = "android.intent.extra.alarm.HOUR";
+    field public static final String EXTRA_IS_PM = "android.intent.extra.alarm.IS_PM";
+    field public static final String EXTRA_LENGTH = "android.intent.extra.alarm.LENGTH";
+    field public static final String EXTRA_MESSAGE = "android.intent.extra.alarm.MESSAGE";
+    field public static final String EXTRA_MINUTES = "android.intent.extra.alarm.MINUTES";
+    field public static final String EXTRA_RINGTONE = "android.intent.extra.alarm.RINGTONE";
+    field public static final String EXTRA_SKIP_UI = "android.intent.extra.alarm.SKIP_UI";
+    field public static final String EXTRA_VIBRATE = "android.intent.extra.alarm.VIBRATE";
+    field public static final String VALUE_RINGTONE_SILENT = "silent";
   }
 
-  public abstract interface BaseColumns {
-    field public static final java.lang.String _COUNT = "_count";
-    field public static final java.lang.String _ID = "_id";
+  public interface BaseColumns {
+    field public static final String _COUNT = "_count";
+    field public static final String _ID = "_id";
   }
 
   public class BlockedNumberContract {
     method public static boolean canCurrentUserBlockNumbers(android.content.Context);
-    method public static boolean isBlocked(android.content.Context, java.lang.String);
-    method public static int unblock(android.content.Context, java.lang.String);
-    field public static final java.lang.String AUTHORITY = "com.android.blockednumber";
+    method @WorkerThread public static boolean isBlocked(android.content.Context, String);
+    method @WorkerThread public static int unblock(android.content.Context, String);
+    field public static final String AUTHORITY = "com.android.blockednumber";
     field public static final android.net.Uri AUTHORITY_URI;
   }
 
   public static class BlockedNumberContract.BlockedNumbers {
-    field public static final java.lang.String COLUMN_E164_NUMBER = "e164_number";
-    field public static final java.lang.String COLUMN_ID = "_id";
-    field public static final java.lang.String COLUMN_ORIGINAL_NUMBER = "original_number";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/blocked_number";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/blocked_number";
+    field public static final String COLUMN_E164_NUMBER = "e164_number";
+    field public static final String COLUMN_ID = "_id";
+    field public static final String COLUMN_ORIGINAL_NUMBER = "original_number";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/blocked_number";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/blocked_number";
     field public static final android.net.Uri CONTENT_URI;
   }
 
   public class Browser {
     ctor public Browser();
-    method public static final void sendString(android.content.Context, java.lang.String);
-    field public static final java.lang.String EXTRA_APPLICATION_ID = "com.android.browser.application_id";
-    field public static final java.lang.String EXTRA_CREATE_NEW_TAB = "create_new_tab";
-    field public static final java.lang.String EXTRA_HEADERS = "com.android.browser.headers";
-    field public static final java.lang.String INITIAL_ZOOM_LEVEL = "browser.initialZoomLevel";
+    method public static final void sendString(android.content.Context, String);
+    field public static final String EXTRA_APPLICATION_ID = "com.android.browser.application_id";
+    field public static final String EXTRA_CREATE_NEW_TAB = "create_new_tab";
+    field public static final String EXTRA_HEADERS = "com.android.browser.headers";
+    field public static final String INITIAL_ZOOM_LEVEL = "browser.initialZoomLevel";
   }
 
   public final class CalendarContract {
-    method public static boolean startViewCalendarEventInManagedProfile(android.content.Context, long, long, long, boolean, int);
-    field public static final java.lang.String ACCOUNT_TYPE_LOCAL = "LOCAL";
-    field public static final java.lang.String ACTION_EVENT_REMINDER = "android.intent.action.EVENT_REMINDER";
-    field public static final java.lang.String ACTION_HANDLE_CUSTOM_EVENT = "android.provider.calendar.action.HANDLE_CUSTOM_EVENT";
-    field public static final java.lang.String ACTION_VIEW_WORK_CALENDAR_EVENT = "android.provider.calendar.action.VIEW_WORK_CALENDAR_EVENT";
-    field public static final java.lang.String AUTHORITY = "com.android.calendar";
-    field public static final java.lang.String CALLER_IS_SYNCADAPTER = "caller_is_syncadapter";
+    method public static boolean startViewCalendarEventInManagedProfile(@NonNull android.content.Context, long, long, long, boolean, int);
+    field public static final String ACCOUNT_TYPE_LOCAL = "LOCAL";
+    field public static final String ACTION_EVENT_REMINDER = "android.intent.action.EVENT_REMINDER";
+    field public static final String ACTION_HANDLE_CUSTOM_EVENT = "android.provider.calendar.action.HANDLE_CUSTOM_EVENT";
+    field public static final String ACTION_VIEW_WORK_CALENDAR_EVENT = "android.provider.calendar.action.VIEW_WORK_CALENDAR_EVENT";
+    field public static final String AUTHORITY = "com.android.calendar";
+    field public static final String CALLER_IS_SYNCADAPTER = "caller_is_syncadapter";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String EXTRA_CUSTOM_APP_URI = "customAppUri";
-    field public static final java.lang.String EXTRA_EVENT_ALL_DAY = "allDay";
-    field public static final java.lang.String EXTRA_EVENT_BEGIN_TIME = "beginTime";
-    field public static final java.lang.String EXTRA_EVENT_END_TIME = "endTime";
-    field public static final java.lang.String EXTRA_EVENT_ID = "id";
+    field public static final String EXTRA_CUSTOM_APP_URI = "customAppUri";
+    field public static final String EXTRA_EVENT_ALL_DAY = "allDay";
+    field public static final String EXTRA_EVENT_BEGIN_TIME = "beginTime";
+    field public static final String EXTRA_EVENT_END_TIME = "endTime";
+    field public static final String EXTRA_EVENT_ID = "id";
   }
 
   public static final class CalendarContract.Attendees implements android.provider.BaseColumns android.provider.CalendarContract.AttendeesColumns android.provider.CalendarContract.EventsColumns {
-    method public static android.database.Cursor query(android.content.ContentResolver, long, java.lang.String[]);
+    method public static android.database.Cursor query(android.content.ContentResolver, long, String[]);
     field public static final android.net.Uri CONTENT_URI;
   }
 
-  protected static abstract interface CalendarContract.AttendeesColumns {
-    field public static final java.lang.String ATTENDEE_EMAIL = "attendeeEmail";
-    field public static final java.lang.String ATTENDEE_IDENTITY = "attendeeIdentity";
-    field public static final java.lang.String ATTENDEE_ID_NAMESPACE = "attendeeIdNamespace";
-    field public static final java.lang.String ATTENDEE_NAME = "attendeeName";
-    field public static final java.lang.String ATTENDEE_RELATIONSHIP = "attendeeRelationship";
-    field public static final java.lang.String ATTENDEE_STATUS = "attendeeStatus";
+  protected static interface CalendarContract.AttendeesColumns {
+    field public static final String ATTENDEE_EMAIL = "attendeeEmail";
+    field public static final String ATTENDEE_IDENTITY = "attendeeIdentity";
+    field public static final String ATTENDEE_ID_NAMESPACE = "attendeeIdNamespace";
+    field public static final String ATTENDEE_NAME = "attendeeName";
+    field public static final String ATTENDEE_RELATIONSHIP = "attendeeRelationship";
+    field public static final String ATTENDEE_STATUS = "attendeeStatus";
     field public static final int ATTENDEE_STATUS_ACCEPTED = 1; // 0x1
     field public static final int ATTENDEE_STATUS_DECLINED = 2; // 0x2
     field public static final int ATTENDEE_STATUS_INVITED = 3; // 0x3
     field public static final int ATTENDEE_STATUS_NONE = 0; // 0x0
     field public static final int ATTENDEE_STATUS_TENTATIVE = 4; // 0x4
-    field public static final java.lang.String ATTENDEE_TYPE = "attendeeType";
-    field public static final java.lang.String EVENT_ID = "event_id";
+    field public static final String ATTENDEE_TYPE = "attendeeType";
+    field public static final String EVENT_ID = "event_id";
     field public static final int RELATIONSHIP_ATTENDEE = 1; // 0x1
     field public static final int RELATIONSHIP_NONE = 0; // 0x0
     field public static final int RELATIONSHIP_ORGANIZER = 2; // 0x2
@@ -36547,45 +36457,45 @@
     field public static final android.net.Uri CONTENT_URI_BY_INSTANCE;
   }
 
-  protected static abstract interface CalendarContract.CalendarAlertsColumns {
-    field public static final java.lang.String ALARM_TIME = "alarmTime";
-    field public static final java.lang.String BEGIN = "begin";
-    field public static final java.lang.String CREATION_TIME = "creationTime";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "begin ASC,title ASC";
-    field public static final java.lang.String END = "end";
-    field public static final java.lang.String EVENT_ID = "event_id";
-    field public static final java.lang.String MINUTES = "minutes";
-    field public static final java.lang.String NOTIFY_TIME = "notifyTime";
-    field public static final java.lang.String RECEIVED_TIME = "receivedTime";
-    field public static final java.lang.String STATE = "state";
+  protected static interface CalendarContract.CalendarAlertsColumns {
+    field public static final String ALARM_TIME = "alarmTime";
+    field public static final String BEGIN = "begin";
+    field public static final String CREATION_TIME = "creationTime";
+    field public static final String DEFAULT_SORT_ORDER = "begin ASC,title ASC";
+    field public static final String END = "end";
+    field public static final String EVENT_ID = "event_id";
+    field public static final String MINUTES = "minutes";
+    field public static final String NOTIFY_TIME = "notifyTime";
+    field public static final String RECEIVED_TIME = "receivedTime";
+    field public static final String STATE = "state";
     field public static final int STATE_DISMISSED = 2; // 0x2
     field public static final int STATE_FIRED = 1; // 0x1
     field public static final int STATE_SCHEDULED = 0; // 0x0
   }
 
   public static final class CalendarContract.CalendarCache implements android.provider.CalendarContract.CalendarCacheColumns {
-    field public static final java.lang.String KEY_TIMEZONE_INSTANCES = "timezoneInstances";
-    field public static final java.lang.String KEY_TIMEZONE_INSTANCES_PREVIOUS = "timezoneInstancesPrevious";
-    field public static final java.lang.String KEY_TIMEZONE_TYPE = "timezoneType";
-    field public static final java.lang.String TIMEZONE_TYPE_AUTO = "auto";
-    field public static final java.lang.String TIMEZONE_TYPE_HOME = "home";
+    field public static final String KEY_TIMEZONE_INSTANCES = "timezoneInstances";
+    field public static final String KEY_TIMEZONE_INSTANCES_PREVIOUS = "timezoneInstancesPrevious";
+    field public static final String KEY_TIMEZONE_TYPE = "timezoneType";
+    field public static final String TIMEZONE_TYPE_AUTO = "auto";
+    field public static final String TIMEZONE_TYPE_HOME = "home";
     field public static final android.net.Uri URI;
   }
 
-  protected static abstract interface CalendarContract.CalendarCacheColumns {
-    field public static final java.lang.String KEY = "key";
-    field public static final java.lang.String VALUE = "value";
+  protected static interface CalendarContract.CalendarCacheColumns {
+    field public static final String KEY = "key";
+    field public static final String VALUE = "value";
   }
 
-  protected static abstract interface CalendarContract.CalendarColumns {
-    field public static final java.lang.String ALLOWED_ATTENDEE_TYPES = "allowedAttendeeTypes";
-    field public static final java.lang.String ALLOWED_AVAILABILITY = "allowedAvailability";
-    field public static final java.lang.String ALLOWED_REMINDERS = "allowedReminders";
-    field public static final java.lang.String CALENDAR_ACCESS_LEVEL = "calendar_access_level";
-    field public static final java.lang.String CALENDAR_COLOR = "calendar_color";
-    field public static final java.lang.String CALENDAR_COLOR_KEY = "calendar_color_index";
-    field public static final java.lang.String CALENDAR_DISPLAY_NAME = "calendar_displayName";
-    field public static final java.lang.String CALENDAR_TIME_ZONE = "calendar_timezone";
+  protected static interface CalendarContract.CalendarColumns {
+    field public static final String ALLOWED_ATTENDEE_TYPES = "allowedAttendeeTypes";
+    field public static final String ALLOWED_AVAILABILITY = "allowedAvailability";
+    field public static final String ALLOWED_REMINDERS = "allowedReminders";
+    field public static final String CALENDAR_ACCESS_LEVEL = "calendar_access_level";
+    field public static final String CALENDAR_COLOR = "calendar_color";
+    field public static final String CALENDAR_COLOR_KEY = "calendar_color_index";
+    field public static final String CALENDAR_DISPLAY_NAME = "calendar_displayName";
+    field public static final String CALENDAR_TIME_ZONE = "calendar_timezone";
     field public static final int CAL_ACCESS_CONTRIBUTOR = 500; // 0x1f4
     field public static final int CAL_ACCESS_EDITOR = 600; // 0x258
     field public static final int CAL_ACCESS_FREEBUSY = 100; // 0x64
@@ -36595,13 +36505,13 @@
     field public static final int CAL_ACCESS_READ = 200; // 0xc8
     field public static final int CAL_ACCESS_RESPOND = 300; // 0x12c
     field public static final int CAL_ACCESS_ROOT = 800; // 0x320
-    field public static final java.lang.String CAN_MODIFY_TIME_ZONE = "canModifyTimeZone";
-    field public static final java.lang.String CAN_ORGANIZER_RESPOND = "canOrganizerRespond";
-    field public static final java.lang.String IS_PRIMARY = "isPrimary";
-    field public static final java.lang.String MAX_REMINDERS = "maxReminders";
-    field public static final java.lang.String OWNER_ACCOUNT = "ownerAccount";
-    field public static final java.lang.String SYNC_EVENTS = "sync_events";
-    field public static final java.lang.String VISIBLE = "visible";
+    field public static final String CAN_MODIFY_TIME_ZONE = "canModifyTimeZone";
+    field public static final String CAN_ORGANIZER_RESPOND = "canOrganizerRespond";
+    field public static final String IS_PRIMARY = "isPrimary";
+    field public static final String MAX_REMINDERS = "maxReminders";
+    field public static final String OWNER_ACCOUNT = "ownerAccount";
+    field public static final String SYNC_EVENTS = "sync_events";
+    field public static final String VISIBLE = "visible";
   }
 
   public static final class CalendarContract.CalendarEntity implements android.provider.BaseColumns android.provider.CalendarContract.CalendarColumns android.provider.CalendarContract.SyncColumns {
@@ -36609,47 +36519,47 @@
     field public static final android.net.Uri CONTENT_URI;
   }
 
-  protected static abstract interface CalendarContract.CalendarSyncColumns {
-    field public static final java.lang.String CAL_SYNC1 = "cal_sync1";
-    field public static final java.lang.String CAL_SYNC10 = "cal_sync10";
-    field public static final java.lang.String CAL_SYNC2 = "cal_sync2";
-    field public static final java.lang.String CAL_SYNC3 = "cal_sync3";
-    field public static final java.lang.String CAL_SYNC4 = "cal_sync4";
-    field public static final java.lang.String CAL_SYNC5 = "cal_sync5";
-    field public static final java.lang.String CAL_SYNC6 = "cal_sync6";
-    field public static final java.lang.String CAL_SYNC7 = "cal_sync7";
-    field public static final java.lang.String CAL_SYNC8 = "cal_sync8";
-    field public static final java.lang.String CAL_SYNC9 = "cal_sync9";
+  protected static interface CalendarContract.CalendarSyncColumns {
+    field public static final String CAL_SYNC1 = "cal_sync1";
+    field public static final String CAL_SYNC10 = "cal_sync10";
+    field public static final String CAL_SYNC2 = "cal_sync2";
+    field public static final String CAL_SYNC3 = "cal_sync3";
+    field public static final String CAL_SYNC4 = "cal_sync4";
+    field public static final String CAL_SYNC5 = "cal_sync5";
+    field public static final String CAL_SYNC6 = "cal_sync6";
+    field public static final String CAL_SYNC7 = "cal_sync7";
+    field public static final String CAL_SYNC8 = "cal_sync8";
+    field public static final String CAL_SYNC9 = "cal_sync9";
   }
 
   public static final class CalendarContract.Calendars implements android.provider.BaseColumns android.provider.CalendarContract.CalendarColumns android.provider.CalendarContract.SyncColumns {
-    field public static final java.lang.String CALENDAR_LOCATION = "calendar_location";
+    field public static final String CALENDAR_LOCATION = "calendar_location";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "calendar_displayName";
+    field public static final String DEFAULT_SORT_ORDER = "calendar_displayName";
     field public static final android.net.Uri ENTERPRISE_CONTENT_URI;
-    field public static final java.lang.String NAME = "name";
+    field public static final String NAME = "name";
   }
 
   public static final class CalendarContract.Colors implements android.provider.CalendarContract.ColorsColumns {
     field public static final android.net.Uri CONTENT_URI;
   }
 
-  protected static abstract interface CalendarContract.ColorsColumns implements android.provider.SyncStateContract.Columns {
-    field public static final java.lang.String COLOR = "color";
-    field public static final java.lang.String COLOR_KEY = "color_index";
-    field public static final java.lang.String COLOR_TYPE = "color_type";
+  protected static interface CalendarContract.ColorsColumns extends android.provider.SyncStateContract.Columns {
+    field public static final String COLOR = "color";
+    field public static final String COLOR_KEY = "color_index";
+    field public static final String COLOR_TYPE = "color_type";
     field public static final int TYPE_CALENDAR = 0; // 0x0
     field public static final int TYPE_EVENT = 1; // 0x1
   }
 
   public static final class CalendarContract.EventDays implements android.provider.CalendarContract.EventDaysColumns {
-    method public static android.database.Cursor query(android.content.ContentResolver, int, int, java.lang.String[]);
+    method public static android.database.Cursor query(android.content.ContentResolver, int, int, String[]);
     field public static final android.net.Uri CONTENT_URI;
   }
 
-  protected static abstract interface CalendarContract.EventDaysColumns {
-    field public static final java.lang.String ENDDAY = "endDay";
-    field public static final java.lang.String STARTDAY = "startDay";
+  protected static interface CalendarContract.EventDaysColumns {
+    field public static final String ENDDAY = "endDay";
+    field public static final String STARTDAY = "startDay";
   }
 
   public static final class CalendarContract.Events implements android.provider.BaseColumns android.provider.CalendarContract.CalendarColumns android.provider.CalendarContract.EventsColumns android.provider.CalendarContract.SyncColumns {
@@ -36658,66 +36568,66 @@
     field public static final android.net.Uri ENTERPRISE_CONTENT_URI;
   }
 
-  protected static abstract interface CalendarContract.EventsColumns {
+  protected static interface CalendarContract.EventsColumns {
     field public static final int ACCESS_CONFIDENTIAL = 1; // 0x1
     field public static final int ACCESS_DEFAULT = 0; // 0x0
-    field public static final java.lang.String ACCESS_LEVEL = "accessLevel";
+    field public static final String ACCESS_LEVEL = "accessLevel";
     field public static final int ACCESS_PRIVATE = 2; // 0x2
     field public static final int ACCESS_PUBLIC = 3; // 0x3
-    field public static final java.lang.String ALL_DAY = "allDay";
-    field public static final java.lang.String AVAILABILITY = "availability";
+    field public static final String ALL_DAY = "allDay";
+    field public static final String AVAILABILITY = "availability";
     field public static final int AVAILABILITY_BUSY = 0; // 0x0
     field public static final int AVAILABILITY_FREE = 1; // 0x1
     field public static final int AVAILABILITY_TENTATIVE = 2; // 0x2
-    field public static final java.lang.String CALENDAR_ID = "calendar_id";
-    field public static final java.lang.String CAN_INVITE_OTHERS = "canInviteOthers";
-    field public static final java.lang.String CUSTOM_APP_PACKAGE = "customAppPackage";
-    field public static final java.lang.String CUSTOM_APP_URI = "customAppUri";
-    field public static final java.lang.String DESCRIPTION = "description";
-    field public static final java.lang.String DISPLAY_COLOR = "displayColor";
-    field public static final java.lang.String DTEND = "dtend";
-    field public static final java.lang.String DTSTART = "dtstart";
-    field public static final java.lang.String DURATION = "duration";
-    field public static final java.lang.String EVENT_COLOR = "eventColor";
-    field public static final java.lang.String EVENT_COLOR_KEY = "eventColor_index";
-    field public static final java.lang.String EVENT_END_TIMEZONE = "eventEndTimezone";
-    field public static final java.lang.String EVENT_LOCATION = "eventLocation";
-    field public static final java.lang.String EVENT_TIMEZONE = "eventTimezone";
-    field public static final java.lang.String EXDATE = "exdate";
-    field public static final java.lang.String EXRULE = "exrule";
-    field public static final java.lang.String GUESTS_CAN_INVITE_OTHERS = "guestsCanInviteOthers";
-    field public static final java.lang.String GUESTS_CAN_MODIFY = "guestsCanModify";
-    field public static final java.lang.String GUESTS_CAN_SEE_GUESTS = "guestsCanSeeGuests";
-    field public static final java.lang.String HAS_ALARM = "hasAlarm";
-    field public static final java.lang.String HAS_ATTENDEE_DATA = "hasAttendeeData";
-    field public static final java.lang.String HAS_EXTENDED_PROPERTIES = "hasExtendedProperties";
-    field public static final java.lang.String IS_ORGANIZER = "isOrganizer";
-    field public static final java.lang.String LAST_DATE = "lastDate";
-    field public static final java.lang.String LAST_SYNCED = "lastSynced";
-    field public static final java.lang.String ORGANIZER = "organizer";
-    field public static final java.lang.String ORIGINAL_ALL_DAY = "originalAllDay";
-    field public static final java.lang.String ORIGINAL_ID = "original_id";
-    field public static final java.lang.String ORIGINAL_INSTANCE_TIME = "originalInstanceTime";
-    field public static final java.lang.String ORIGINAL_SYNC_ID = "original_sync_id";
-    field public static final java.lang.String RDATE = "rdate";
-    field public static final java.lang.String RRULE = "rrule";
-    field public static final java.lang.String SELF_ATTENDEE_STATUS = "selfAttendeeStatus";
-    field public static final java.lang.String STATUS = "eventStatus";
+    field public static final String CALENDAR_ID = "calendar_id";
+    field public static final String CAN_INVITE_OTHERS = "canInviteOthers";
+    field public static final String CUSTOM_APP_PACKAGE = "customAppPackage";
+    field public static final String CUSTOM_APP_URI = "customAppUri";
+    field public static final String DESCRIPTION = "description";
+    field public static final String DISPLAY_COLOR = "displayColor";
+    field public static final String DTEND = "dtend";
+    field public static final String DTSTART = "dtstart";
+    field public static final String DURATION = "duration";
+    field public static final String EVENT_COLOR = "eventColor";
+    field public static final String EVENT_COLOR_KEY = "eventColor_index";
+    field public static final String EVENT_END_TIMEZONE = "eventEndTimezone";
+    field public static final String EVENT_LOCATION = "eventLocation";
+    field public static final String EVENT_TIMEZONE = "eventTimezone";
+    field public static final String EXDATE = "exdate";
+    field public static final String EXRULE = "exrule";
+    field public static final String GUESTS_CAN_INVITE_OTHERS = "guestsCanInviteOthers";
+    field public static final String GUESTS_CAN_MODIFY = "guestsCanModify";
+    field public static final String GUESTS_CAN_SEE_GUESTS = "guestsCanSeeGuests";
+    field public static final String HAS_ALARM = "hasAlarm";
+    field public static final String HAS_ATTENDEE_DATA = "hasAttendeeData";
+    field public static final String HAS_EXTENDED_PROPERTIES = "hasExtendedProperties";
+    field public static final String IS_ORGANIZER = "isOrganizer";
+    field public static final String LAST_DATE = "lastDate";
+    field public static final String LAST_SYNCED = "lastSynced";
+    field public static final String ORGANIZER = "organizer";
+    field public static final String ORIGINAL_ALL_DAY = "originalAllDay";
+    field public static final String ORIGINAL_ID = "original_id";
+    field public static final String ORIGINAL_INSTANCE_TIME = "originalInstanceTime";
+    field public static final String ORIGINAL_SYNC_ID = "original_sync_id";
+    field public static final String RDATE = "rdate";
+    field public static final String RRULE = "rrule";
+    field public static final String SELF_ATTENDEE_STATUS = "selfAttendeeStatus";
+    field public static final String STATUS = "eventStatus";
     field public static final int STATUS_CANCELED = 2; // 0x2
     field public static final int STATUS_CONFIRMED = 1; // 0x1
     field public static final int STATUS_TENTATIVE = 0; // 0x0
-    field public static final java.lang.String SYNC_DATA1 = "sync_data1";
-    field public static final java.lang.String SYNC_DATA10 = "sync_data10";
-    field public static final java.lang.String SYNC_DATA2 = "sync_data2";
-    field public static final java.lang.String SYNC_DATA3 = "sync_data3";
-    field public static final java.lang.String SYNC_DATA4 = "sync_data4";
-    field public static final java.lang.String SYNC_DATA5 = "sync_data5";
-    field public static final java.lang.String SYNC_DATA6 = "sync_data6";
-    field public static final java.lang.String SYNC_DATA7 = "sync_data7";
-    field public static final java.lang.String SYNC_DATA8 = "sync_data8";
-    field public static final java.lang.String SYNC_DATA9 = "sync_data9";
-    field public static final java.lang.String TITLE = "title";
-    field public static final java.lang.String UID_2445 = "uid2445";
+    field public static final String SYNC_DATA1 = "sync_data1";
+    field public static final String SYNC_DATA10 = "sync_data10";
+    field public static final String SYNC_DATA2 = "sync_data2";
+    field public static final String SYNC_DATA3 = "sync_data3";
+    field public static final String SYNC_DATA4 = "sync_data4";
+    field public static final String SYNC_DATA5 = "sync_data5";
+    field public static final String SYNC_DATA6 = "sync_data6";
+    field public static final String SYNC_DATA7 = "sync_data7";
+    field public static final String SYNC_DATA8 = "sync_data8";
+    field public static final String SYNC_DATA9 = "sync_data9";
+    field public static final String TITLE = "title";
+    field public static final String UID_2445 = "uid2445";
   }
 
   public static final class CalendarContract.EventsEntity implements android.provider.BaseColumns android.provider.CalendarContract.EventsColumns android.provider.CalendarContract.SyncColumns {
@@ -36730,57 +36640,57 @@
     field public static final android.net.Uri CONTENT_URI;
   }
 
-  protected static abstract interface CalendarContract.ExtendedPropertiesColumns {
-    field public static final java.lang.String EVENT_ID = "event_id";
-    field public static final java.lang.String NAME = "name";
-    field public static final java.lang.String VALUE = "value";
+  protected static interface CalendarContract.ExtendedPropertiesColumns {
+    field public static final String EVENT_ID = "event_id";
+    field public static final String NAME = "name";
+    field public static final String VALUE = "value";
   }
 
   public static final class CalendarContract.Instances implements android.provider.BaseColumns android.provider.CalendarContract.CalendarColumns android.provider.CalendarContract.EventsColumns {
-    method public static android.database.Cursor query(android.content.ContentResolver, java.lang.String[], long, long);
-    method public static android.database.Cursor query(android.content.ContentResolver, java.lang.String[], long, long, java.lang.String);
-    field public static final java.lang.String BEGIN = "begin";
+    method public static android.database.Cursor query(android.content.ContentResolver, String[], long, long);
+    method public static android.database.Cursor query(android.content.ContentResolver, String[], long, long, String);
+    field public static final String BEGIN = "begin";
     field public static final android.net.Uri CONTENT_BY_DAY_URI;
     field public static final android.net.Uri CONTENT_SEARCH_BY_DAY_URI;
     field public static final android.net.Uri CONTENT_SEARCH_URI;
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String END = "end";
-    field public static final java.lang.String END_DAY = "endDay";
-    field public static final java.lang.String END_MINUTE = "endMinute";
+    field public static final String END = "end";
+    field public static final String END_DAY = "endDay";
+    field public static final String END_MINUTE = "endMinute";
     field public static final android.net.Uri ENTERPRISE_CONTENT_BY_DAY_URI;
     field public static final android.net.Uri ENTERPRISE_CONTENT_SEARCH_BY_DAY_URI;
     field public static final android.net.Uri ENTERPRISE_CONTENT_SEARCH_URI;
     field public static final android.net.Uri ENTERPRISE_CONTENT_URI;
-    field public static final java.lang.String EVENT_ID = "event_id";
-    field public static final java.lang.String START_DAY = "startDay";
-    field public static final java.lang.String START_MINUTE = "startMinute";
+    field public static final String EVENT_ID = "event_id";
+    field public static final String START_DAY = "startDay";
+    field public static final String START_MINUTE = "startMinute";
   }
 
   public static final class CalendarContract.Reminders implements android.provider.BaseColumns android.provider.CalendarContract.EventsColumns android.provider.CalendarContract.RemindersColumns {
-    method public static android.database.Cursor query(android.content.ContentResolver, long, java.lang.String[]);
+    method public static android.database.Cursor query(android.content.ContentResolver, long, String[]);
     field public static final android.net.Uri CONTENT_URI;
   }
 
-  protected static abstract interface CalendarContract.RemindersColumns {
-    field public static final java.lang.String EVENT_ID = "event_id";
-    field public static final java.lang.String METHOD = "method";
+  protected static interface CalendarContract.RemindersColumns {
+    field public static final String EVENT_ID = "event_id";
+    field public static final String METHOD = "method";
     field public static final int METHOD_ALARM = 4; // 0x4
     field public static final int METHOD_ALERT = 1; // 0x1
     field public static final int METHOD_DEFAULT = 0; // 0x0
     field public static final int METHOD_EMAIL = 2; // 0x2
     field public static final int METHOD_SMS = 3; // 0x3
-    field public static final java.lang.String MINUTES = "minutes";
+    field public static final String MINUTES = "minutes";
     field public static final int MINUTES_DEFAULT = -1; // 0xffffffff
   }
 
-  protected static abstract interface CalendarContract.SyncColumns implements android.provider.CalendarContract.CalendarSyncColumns {
-    field public static final java.lang.String ACCOUNT_NAME = "account_name";
-    field public static final java.lang.String ACCOUNT_TYPE = "account_type";
-    field public static final java.lang.String CAN_PARTIALLY_UPDATE = "canPartiallyUpdate";
-    field public static final java.lang.String DELETED = "deleted";
-    field public static final java.lang.String DIRTY = "dirty";
-    field public static final java.lang.String MUTATORS = "mutators";
-    field public static final java.lang.String _SYNC_ID = "_sync_id";
+  protected static interface CalendarContract.SyncColumns extends android.provider.CalendarContract.CalendarSyncColumns {
+    field public static final String ACCOUNT_NAME = "account_name";
+    field public static final String ACCOUNT_TYPE = "account_type";
+    field public static final String CAN_PARTIALLY_UPDATE = "canPartiallyUpdate";
+    field public static final String DELETED = "deleted";
+    field public static final String DIRTY = "dirty";
+    field public static final String MUTATORS = "mutators";
+    field public static final String _SYNC_ID = "_sync_id";
   }
 
   public static final class CalendarContract.SyncState implements android.provider.SyncStateContract.Columns {
@@ -36789,16 +36699,16 @@
 
   public class CallLog {
     ctor public CallLog();
-    field public static final java.lang.String AUTHORITY = "call_log";
+    field public static final String AUTHORITY = "call_log";
     field public static final android.net.Uri CONTENT_URI;
   }
 
   public static class CallLog.Calls implements android.provider.BaseColumns {
     ctor public CallLog.Calls();
-    method public static java.lang.String getLastOutgoingCall(android.content.Context);
+    method public static String getLastOutgoingCall(android.content.Context);
     field public static final int ANSWERED_EXTERNALLY_TYPE = 7; // 0x7
     field public static final int BLOCKED_TYPE = 6; // 0x6
-    field public static final java.lang.String BLOCK_REASON = "block_reason";
+    field public static final String BLOCK_REASON = "block_reason";
     field public static final int BLOCK_REASON_BLOCKED_NUMBER = 3; // 0x3
     field public static final int BLOCK_REASON_CALL_SCREENING_SERVICE = 1; // 0x1
     field public static final int BLOCK_REASON_DIRECT_TO_VOICEMAIL = 2; // 0x2
@@ -36807,399 +36717,399 @@
     field public static final int BLOCK_REASON_PAY_PHONE = 6; // 0x6
     field public static final int BLOCK_REASON_RESTRICTED_NUMBER = 5; // 0x5
     field public static final int BLOCK_REASON_UNKNOWN_NUMBER = 4; // 0x4
-    field public static final java.lang.String CACHED_FORMATTED_NUMBER = "formatted_number";
-    field public static final java.lang.String CACHED_LOOKUP_URI = "lookup_uri";
-    field public static final java.lang.String CACHED_MATCHED_NUMBER = "matched_number";
-    field public static final java.lang.String CACHED_NAME = "name";
-    field public static final java.lang.String CACHED_NORMALIZED_NUMBER = "normalized_number";
-    field public static final java.lang.String CACHED_NUMBER_LABEL = "numberlabel";
-    field public static final java.lang.String CACHED_NUMBER_TYPE = "numbertype";
-    field public static final java.lang.String CACHED_PHOTO_ID = "photo_id";
-    field public static final java.lang.String CACHED_PHOTO_URI = "photo_uri";
-    field public static final java.lang.String CALL_ID_APP_NAME = "call_id_app_name";
-    field public static final java.lang.String CALL_ID_DESCRIPTION = "call_id_description";
-    field public static final java.lang.String CALL_ID_DETAILS = "call_id_details";
-    field public static final java.lang.String CALL_ID_NAME = "call_id_name";
-    field public static final java.lang.String CALL_ID_NUISANCE_CONFIDENCE = "call_id_nuisance_confidence";
-    field public static final java.lang.String CALL_ID_PACKAGE_NAME = "call_id_package_name";
-    field public static final java.lang.String CALL_SCREENING_APP_NAME = "call_screening_app_name";
-    field public static final java.lang.String CALL_SCREENING_COMPONENT_NAME = "call_screening_component_name";
+    field public static final String CACHED_FORMATTED_NUMBER = "formatted_number";
+    field public static final String CACHED_LOOKUP_URI = "lookup_uri";
+    field public static final String CACHED_MATCHED_NUMBER = "matched_number";
+    field public static final String CACHED_NAME = "name";
+    field public static final String CACHED_NORMALIZED_NUMBER = "normalized_number";
+    field public static final String CACHED_NUMBER_LABEL = "numberlabel";
+    field public static final String CACHED_NUMBER_TYPE = "numbertype";
+    field public static final String CACHED_PHOTO_ID = "photo_id";
+    field public static final String CACHED_PHOTO_URI = "photo_uri";
+    field public static final String CALL_ID_APP_NAME = "call_id_app_name";
+    field public static final String CALL_ID_DESCRIPTION = "call_id_description";
+    field public static final String CALL_ID_DETAILS = "call_id_details";
+    field public static final String CALL_ID_NAME = "call_id_name";
+    field public static final String CALL_ID_NUISANCE_CONFIDENCE = "call_id_nuisance_confidence";
+    field public static final String CALL_ID_PACKAGE_NAME = "call_id_package_name";
+    field public static final String CALL_SCREENING_APP_NAME = "call_screening_app_name";
+    field public static final String CALL_SCREENING_COMPONENT_NAME = "call_screening_component_name";
     field public static final android.net.Uri CONTENT_FILTER_URI;
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/calls";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/calls";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/calls";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/calls";
     field public static final android.net.Uri CONTENT_URI;
     field public static final android.net.Uri CONTENT_URI_WITH_VOICEMAIL;
-    field public static final java.lang.String COUNTRY_ISO = "countryiso";
-    field public static final java.lang.String DATA_USAGE = "data_usage";
-    field public static final java.lang.String DATE = "date";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
-    field public static final java.lang.String DURATION = "duration";
-    field public static final java.lang.String EXTRA_CALL_TYPE_FILTER = "android.provider.extra.CALL_TYPE_FILTER";
-    field public static final java.lang.String FEATURES = "features";
+    field public static final String COUNTRY_ISO = "countryiso";
+    field public static final String DATA_USAGE = "data_usage";
+    field public static final String DATE = "date";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DURATION = "duration";
+    field public static final String EXTRA_CALL_TYPE_FILTER = "android.provider.extra.CALL_TYPE_FILTER";
+    field public static final String FEATURES = "features";
     field public static final int FEATURES_HD_CALL = 4; // 0x4
     field public static final int FEATURES_PULLED_EXTERNALLY = 2; // 0x2
     field public static final int FEATURES_RTT = 32; // 0x20
     field public static final int FEATURES_VIDEO = 1; // 0x1
     field public static final int FEATURES_WIFI = 8; // 0x8
-    field public static final java.lang.String GEOCODED_LOCATION = "geocoded_location";
+    field public static final String GEOCODED_LOCATION = "geocoded_location";
     field public static final int INCOMING_TYPE = 1; // 0x1
-    field public static final java.lang.String IS_READ = "is_read";
-    field public static final java.lang.String LAST_MODIFIED = "last_modified";
-    field public static final java.lang.String LIMIT_PARAM_KEY = "limit";
+    field public static final String IS_READ = "is_read";
+    field public static final String LAST_MODIFIED = "last_modified";
+    field public static final String LIMIT_PARAM_KEY = "limit";
     field public static final int MISSED_TYPE = 3; // 0x3
-    field public static final java.lang.String NEW = "new";
-    field public static final java.lang.String NUMBER = "number";
-    field public static final java.lang.String NUMBER_PRESENTATION = "presentation";
-    field public static final java.lang.String OFFSET_PARAM_KEY = "offset";
+    field public static final String NEW = "new";
+    field public static final String NUMBER = "number";
+    field public static final String NUMBER_PRESENTATION = "presentation";
+    field public static final String OFFSET_PARAM_KEY = "offset";
     field public static final int OUTGOING_TYPE = 2; // 0x2
-    field public static final java.lang.String PHONE_ACCOUNT_COMPONENT_NAME = "subscription_component_name";
-    field public static final java.lang.String PHONE_ACCOUNT_ID = "subscription_id";
-    field public static final java.lang.String POST_DIAL_DIGITS = "post_dial_digits";
+    field public static final String PHONE_ACCOUNT_COMPONENT_NAME = "subscription_component_name";
+    field public static final String PHONE_ACCOUNT_ID = "subscription_id";
+    field public static final String POST_DIAL_DIGITS = "post_dial_digits";
     field public static final int PRESENTATION_ALLOWED = 1; // 0x1
     field public static final int PRESENTATION_PAYPHONE = 4; // 0x4
     field public static final int PRESENTATION_RESTRICTED = 2; // 0x2
     field public static final int PRESENTATION_UNKNOWN = 3; // 0x3
     field public static final int REJECTED_TYPE = 5; // 0x5
-    field public static final java.lang.String TRANSCRIPTION = "transcription";
-    field public static final java.lang.String TYPE = "type";
-    field public static final java.lang.String VIA_NUMBER = "via_number";
+    field public static final String TRANSCRIPTION = "transcription";
+    field public static final String TYPE = "type";
+    field public static final String VIA_NUMBER = "via_number";
     field public static final int VOICEMAIL_TYPE = 4; // 0x4
-    field public static final java.lang.String VOICEMAIL_URI = "voicemail_uri";
+    field public static final String VOICEMAIL_URI = "voicemail_uri";
   }
 
-  public deprecated class Contacts {
-    field public static final deprecated java.lang.String AUTHORITY = "contacts";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated int KIND_EMAIL = 1; // 0x1
-    field public static final deprecated int KIND_IM = 3; // 0x3
-    field public static final deprecated int KIND_ORGANIZATION = 4; // 0x4
-    field public static final deprecated int KIND_PHONE = 5; // 0x5
-    field public static final deprecated int KIND_POSTAL = 2; // 0x2
+  @Deprecated public class Contacts {
+    field @Deprecated public static final String AUTHORITY = "contacts";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final int KIND_EMAIL = 1; // 0x1
+    field @Deprecated public static final int KIND_IM = 3; // 0x3
+    field @Deprecated public static final int KIND_ORGANIZATION = 4; // 0x4
+    field @Deprecated public static final int KIND_PHONE = 5; // 0x5
+    field @Deprecated public static final int KIND_POSTAL = 2; // 0x2
   }
 
-  public static final deprecated class Contacts.ContactMethods implements android.provider.BaseColumns android.provider.Contacts.ContactMethodsColumns android.provider.Contacts.PeopleColumns {
-    method public deprecated void addPostalLocation(android.content.Context, long, double, double);
-    method public static deprecated java.lang.Object decodeImProtocol(java.lang.String);
-    method public static deprecated java.lang.String encodeCustomImProtocol(java.lang.String);
-    method public static deprecated java.lang.String encodePredefinedImProtocol(int);
-    method public static deprecated java.lang.CharSequence getDisplayLabel(android.content.Context, int, int, java.lang.CharSequence);
-    field public static final deprecated java.lang.String CONTENT_EMAIL_ITEM_TYPE = "vnd.android.cursor.item/email";
-    field public static final deprecated java.lang.String CONTENT_EMAIL_TYPE = "vnd.android.cursor.dir/email";
-    field public static final deprecated android.net.Uri CONTENT_EMAIL_URI;
-    field public static final deprecated java.lang.String CONTENT_IM_ITEM_TYPE = "vnd.android.cursor.item/jabber-im";
-    field public static final deprecated java.lang.String CONTENT_POSTAL_ITEM_TYPE = "vnd.android.cursor.item/postal-address";
-    field public static final deprecated java.lang.String CONTENT_POSTAL_TYPE = "vnd.android.cursor.dir/postal-address";
-    field public static final deprecated java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/contact-methods";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "name ASC";
-    field public static final deprecated java.lang.String PERSON_ID = "person";
-    field public static final deprecated java.lang.String POSTAL_LOCATION_LATITUDE = "data";
-    field public static final deprecated java.lang.String POSTAL_LOCATION_LONGITUDE = "aux_data";
-    field public static final deprecated int PROTOCOL_AIM = 0; // 0x0
-    field public static final deprecated int PROTOCOL_GOOGLE_TALK = 5; // 0x5
-    field public static final deprecated int PROTOCOL_ICQ = 6; // 0x6
-    field public static final deprecated int PROTOCOL_JABBER = 7; // 0x7
-    field public static final deprecated int PROTOCOL_MSN = 1; // 0x1
-    field public static final deprecated int PROTOCOL_QQ = 4; // 0x4
-    field public static final deprecated int PROTOCOL_SKYPE = 3; // 0x3
-    field public static final deprecated int PROTOCOL_YAHOO = 2; // 0x2
+  @Deprecated public static final class Contacts.ContactMethods implements android.provider.BaseColumns android.provider.Contacts.ContactMethodsColumns android.provider.Contacts.PeopleColumns {
+    method @Deprecated public void addPostalLocation(android.content.Context, long, double, double);
+    method @Deprecated public static Object decodeImProtocol(String);
+    method @Deprecated public static String encodeCustomImProtocol(String);
+    method @Deprecated public static String encodePredefinedImProtocol(int);
+    method @Deprecated public static CharSequence getDisplayLabel(android.content.Context, int, int, CharSequence);
+    field @Deprecated public static final String CONTENT_EMAIL_ITEM_TYPE = "vnd.android.cursor.item/email";
+    field @Deprecated public static final String CONTENT_EMAIL_TYPE = "vnd.android.cursor.dir/email";
+    field @Deprecated public static final android.net.Uri CONTENT_EMAIL_URI;
+    field @Deprecated public static final String CONTENT_IM_ITEM_TYPE = "vnd.android.cursor.item/jabber-im";
+    field @Deprecated public static final String CONTENT_POSTAL_ITEM_TYPE = "vnd.android.cursor.item/postal-address";
+    field @Deprecated public static final String CONTENT_POSTAL_TYPE = "vnd.android.cursor.dir/postal-address";
+    field @Deprecated public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact-methods";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "name ASC";
+    field @Deprecated public static final String PERSON_ID = "person";
+    field @Deprecated public static final String POSTAL_LOCATION_LATITUDE = "data";
+    field @Deprecated public static final String POSTAL_LOCATION_LONGITUDE = "aux_data";
+    field @Deprecated public static final int PROTOCOL_AIM = 0; // 0x0
+    field @Deprecated public static final int PROTOCOL_GOOGLE_TALK = 5; // 0x5
+    field @Deprecated public static final int PROTOCOL_ICQ = 6; // 0x6
+    field @Deprecated public static final int PROTOCOL_JABBER = 7; // 0x7
+    field @Deprecated public static final int PROTOCOL_MSN = 1; // 0x1
+    field @Deprecated public static final int PROTOCOL_QQ = 4; // 0x4
+    field @Deprecated public static final int PROTOCOL_SKYPE = 3; // 0x3
+    field @Deprecated public static final int PROTOCOL_YAHOO = 2; // 0x2
   }
 
-  public static abstract deprecated interface Contacts.ContactMethodsColumns {
-    field public static final deprecated java.lang.String AUX_DATA = "aux_data";
-    field public static final deprecated java.lang.String DATA = "data";
-    field public static final deprecated java.lang.String ISPRIMARY = "isprimary";
-    field public static final deprecated java.lang.String KIND = "kind";
-    field public static final deprecated java.lang.String LABEL = "label";
-    field public static final deprecated java.lang.String TYPE = "type";
-    field public static final deprecated int TYPE_CUSTOM = 0; // 0x0
-    field public static final deprecated int TYPE_HOME = 1; // 0x1
-    field public static final deprecated int TYPE_OTHER = 3; // 0x3
-    field public static final deprecated int TYPE_WORK = 2; // 0x2
+  @Deprecated public static interface Contacts.ContactMethodsColumns {
+    field @Deprecated public static final String AUX_DATA = "aux_data";
+    field @Deprecated public static final String DATA = "data";
+    field @Deprecated public static final String ISPRIMARY = "isprimary";
+    field @Deprecated public static final String KIND = "kind";
+    field @Deprecated public static final String LABEL = "label";
+    field @Deprecated public static final String TYPE = "type";
+    field @Deprecated public static final int TYPE_CUSTOM = 0; // 0x0
+    field @Deprecated public static final int TYPE_HOME = 1; // 0x1
+    field @Deprecated public static final int TYPE_OTHER = 3; // 0x3
+    field @Deprecated public static final int TYPE_WORK = 2; // 0x2
   }
 
-  public static final deprecated class Contacts.Extensions implements android.provider.BaseColumns android.provider.Contacts.ExtensionsColumns {
-    field public static final deprecated java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_extensions";
-    field public static final deprecated java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/contact_extensions";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "person, name ASC";
-    field public static final deprecated java.lang.String PERSON_ID = "person";
+  @Deprecated public static final class Contacts.Extensions implements android.provider.BaseColumns android.provider.Contacts.ExtensionsColumns {
+    field @Deprecated public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_extensions";
+    field @Deprecated public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact_extensions";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "person, name ASC";
+    field @Deprecated public static final String PERSON_ID = "person";
   }
 
-  public static abstract deprecated interface Contacts.ExtensionsColumns {
-    field public static final deprecated java.lang.String NAME = "name";
-    field public static final deprecated java.lang.String VALUE = "value";
+  @Deprecated public static interface Contacts.ExtensionsColumns {
+    field @Deprecated public static final String NAME = "name";
+    field @Deprecated public static final String VALUE = "value";
   }
 
-  public static final deprecated class Contacts.GroupMembership implements android.provider.BaseColumns android.provider.Contacts.GroupsColumns {
-    field public static final deprecated java.lang.String CONTENT_DIRECTORY = "groupmembership";
-    field public static final deprecated java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contactsgroupmembership";
-    field public static final deprecated java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/contactsgroupmembership";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "group_id ASC";
-    field public static final deprecated java.lang.String GROUP_ID = "group_id";
-    field public static final deprecated java.lang.String GROUP_SYNC_ACCOUNT = "group_sync_account";
-    field public static final deprecated java.lang.String GROUP_SYNC_ACCOUNT_TYPE = "group_sync_account_type";
-    field public static final deprecated java.lang.String GROUP_SYNC_ID = "group_sync_id";
-    field public static final deprecated java.lang.String PERSON_ID = "person";
-    field public static final deprecated android.net.Uri RAW_CONTENT_URI;
+  @Deprecated public static final class Contacts.GroupMembership implements android.provider.BaseColumns android.provider.Contacts.GroupsColumns {
+    field @Deprecated public static final String CONTENT_DIRECTORY = "groupmembership";
+    field @Deprecated public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contactsgroupmembership";
+    field @Deprecated public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contactsgroupmembership";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "group_id ASC";
+    field @Deprecated public static final String GROUP_ID = "group_id";
+    field @Deprecated public static final String GROUP_SYNC_ACCOUNT = "group_sync_account";
+    field @Deprecated public static final String GROUP_SYNC_ACCOUNT_TYPE = "group_sync_account_type";
+    field @Deprecated public static final String GROUP_SYNC_ID = "group_sync_id";
+    field @Deprecated public static final String PERSON_ID = "person";
+    field @Deprecated public static final android.net.Uri RAW_CONTENT_URI;
   }
 
-  public static final deprecated class Contacts.Groups implements android.provider.BaseColumns android.provider.Contacts.GroupsColumns {
-    field public static final deprecated java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contactsgroup";
-    field public static final deprecated java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/contactsgroup";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "name ASC";
-    field public static final deprecated android.net.Uri DELETED_CONTENT_URI;
-    field public static final deprecated java.lang.String GROUP_ANDROID_STARRED = "Starred in Android";
-    field public static final deprecated java.lang.String GROUP_MY_CONTACTS = "Contacts";
+  @Deprecated public static final class Contacts.Groups implements android.provider.BaseColumns android.provider.Contacts.GroupsColumns {
+    field @Deprecated public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contactsgroup";
+    field @Deprecated public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contactsgroup";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "name ASC";
+    field @Deprecated public static final android.net.Uri DELETED_CONTENT_URI;
+    field @Deprecated public static final String GROUP_ANDROID_STARRED = "Starred in Android";
+    field @Deprecated public static final String GROUP_MY_CONTACTS = "Contacts";
   }
 
-  public static abstract deprecated interface Contacts.GroupsColumns {
-    field public static final deprecated java.lang.String NAME = "name";
-    field public static final deprecated java.lang.String NOTES = "notes";
-    field public static final deprecated java.lang.String SHOULD_SYNC = "should_sync";
-    field public static final deprecated java.lang.String SYSTEM_ID = "system_id";
+  @Deprecated public static interface Contacts.GroupsColumns {
+    field @Deprecated public static final String NAME = "name";
+    field @Deprecated public static final String NOTES = "notes";
+    field @Deprecated public static final String SHOULD_SYNC = "should_sync";
+    field @Deprecated public static final String SYSTEM_ID = "system_id";
   }
 
-  public static final deprecated class Contacts.Intents {
-    ctor public deprecated Contacts.Intents();
-    field public static final deprecated java.lang.String ATTACH_IMAGE = "com.android.contacts.action.ATTACH_IMAGE";
-    field public static final deprecated java.lang.String EXTRA_CREATE_DESCRIPTION = "com.android.contacts.action.CREATE_DESCRIPTION";
-    field public static final deprecated java.lang.String EXTRA_FORCE_CREATE = "com.android.contacts.action.FORCE_CREATE";
-    field public static final deprecated java.lang.String SEARCH_SUGGESTION_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_CLICKED";
-    field public static final deprecated java.lang.String SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED";
-    field public static final deprecated java.lang.String SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED";
-    field public static final deprecated java.lang.String SHOW_OR_CREATE_CONTACT = "com.android.contacts.action.SHOW_OR_CREATE_CONTACT";
+  @Deprecated public static final class Contacts.Intents {
+    ctor @Deprecated public Contacts.Intents();
+    field @Deprecated public static final String ATTACH_IMAGE = "com.android.contacts.action.ATTACH_IMAGE";
+    field @Deprecated public static final String EXTRA_CREATE_DESCRIPTION = "com.android.contacts.action.CREATE_DESCRIPTION";
+    field @Deprecated public static final String EXTRA_FORCE_CREATE = "com.android.contacts.action.FORCE_CREATE";
+    field @Deprecated public static final String SEARCH_SUGGESTION_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_CLICKED";
+    field @Deprecated public static final String SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED";
+    field @Deprecated public static final String SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED";
+    field @Deprecated public static final String SHOW_OR_CREATE_CONTACT = "com.android.contacts.action.SHOW_OR_CREATE_CONTACT";
   }
 
-  public static final deprecated class Contacts.Intents.Insert {
-    ctor public deprecated Contacts.Intents.Insert();
-    field public static final deprecated java.lang.String ACTION = "android.intent.action.INSERT";
-    field public static final deprecated java.lang.String COMPANY = "company";
-    field public static final deprecated java.lang.String EMAIL = "email";
-    field public static final deprecated java.lang.String EMAIL_ISPRIMARY = "email_isprimary";
-    field public static final deprecated java.lang.String EMAIL_TYPE = "email_type";
-    field public static final deprecated java.lang.String FULL_MODE = "full_mode";
-    field public static final deprecated java.lang.String IM_HANDLE = "im_handle";
-    field public static final deprecated java.lang.String IM_ISPRIMARY = "im_isprimary";
-    field public static final deprecated java.lang.String IM_PROTOCOL = "im_protocol";
-    field public static final deprecated java.lang.String JOB_TITLE = "job_title";
-    field public static final deprecated java.lang.String NAME = "name";
-    field public static final deprecated java.lang.String NOTES = "notes";
-    field public static final deprecated java.lang.String PHONE = "phone";
-    field public static final deprecated java.lang.String PHONETIC_NAME = "phonetic_name";
-    field public static final deprecated java.lang.String PHONE_ISPRIMARY = "phone_isprimary";
-    field public static final deprecated java.lang.String PHONE_TYPE = "phone_type";
-    field public static final deprecated java.lang.String POSTAL = "postal";
-    field public static final deprecated java.lang.String POSTAL_ISPRIMARY = "postal_isprimary";
-    field public static final deprecated java.lang.String POSTAL_TYPE = "postal_type";
-    field public static final deprecated java.lang.String SECONDARY_EMAIL = "secondary_email";
-    field public static final deprecated java.lang.String SECONDARY_EMAIL_TYPE = "secondary_email_type";
-    field public static final deprecated java.lang.String SECONDARY_PHONE = "secondary_phone";
-    field public static final deprecated java.lang.String SECONDARY_PHONE_TYPE = "secondary_phone_type";
-    field public static final deprecated java.lang.String TERTIARY_EMAIL = "tertiary_email";
-    field public static final deprecated java.lang.String TERTIARY_EMAIL_TYPE = "tertiary_email_type";
-    field public static final deprecated java.lang.String TERTIARY_PHONE = "tertiary_phone";
-    field public static final deprecated java.lang.String TERTIARY_PHONE_TYPE = "tertiary_phone_type";
+  @Deprecated public static final class Contacts.Intents.Insert {
+    ctor @Deprecated public Contacts.Intents.Insert();
+    field @Deprecated public static final String ACTION = "android.intent.action.INSERT";
+    field @Deprecated public static final String COMPANY = "company";
+    field @Deprecated public static final String EMAIL = "email";
+    field @Deprecated public static final String EMAIL_ISPRIMARY = "email_isprimary";
+    field @Deprecated public static final String EMAIL_TYPE = "email_type";
+    field @Deprecated public static final String FULL_MODE = "full_mode";
+    field @Deprecated public static final String IM_HANDLE = "im_handle";
+    field @Deprecated public static final String IM_ISPRIMARY = "im_isprimary";
+    field @Deprecated public static final String IM_PROTOCOL = "im_protocol";
+    field @Deprecated public static final String JOB_TITLE = "job_title";
+    field @Deprecated public static final String NAME = "name";
+    field @Deprecated public static final String NOTES = "notes";
+    field @Deprecated public static final String PHONE = "phone";
+    field @Deprecated public static final String PHONETIC_NAME = "phonetic_name";
+    field @Deprecated public static final String PHONE_ISPRIMARY = "phone_isprimary";
+    field @Deprecated public static final String PHONE_TYPE = "phone_type";
+    field @Deprecated public static final String POSTAL = "postal";
+    field @Deprecated public static final String POSTAL_ISPRIMARY = "postal_isprimary";
+    field @Deprecated public static final String POSTAL_TYPE = "postal_type";
+    field @Deprecated public static final String SECONDARY_EMAIL = "secondary_email";
+    field @Deprecated public static final String SECONDARY_EMAIL_TYPE = "secondary_email_type";
+    field @Deprecated public static final String SECONDARY_PHONE = "secondary_phone";
+    field @Deprecated public static final String SECONDARY_PHONE_TYPE = "secondary_phone_type";
+    field @Deprecated public static final String TERTIARY_EMAIL = "tertiary_email";
+    field @Deprecated public static final String TERTIARY_EMAIL_TYPE = "tertiary_email_type";
+    field @Deprecated public static final String TERTIARY_PHONE = "tertiary_phone";
+    field @Deprecated public static final String TERTIARY_PHONE_TYPE = "tertiary_phone_type";
   }
 
-  public static final deprecated class Contacts.Intents.UI {
-    ctor public deprecated Contacts.Intents.UI();
-    field public static final deprecated java.lang.String FILTER_CONTACTS_ACTION = "com.android.contacts.action.FILTER_CONTACTS";
-    field public static final deprecated java.lang.String FILTER_TEXT_EXTRA_KEY = "com.android.contacts.extra.FILTER_TEXT";
-    field public static final deprecated java.lang.String GROUP_NAME_EXTRA_KEY = "com.android.contacts.extra.GROUP";
-    field public static final deprecated java.lang.String LIST_ALL_CONTACTS_ACTION = "com.android.contacts.action.LIST_ALL_CONTACTS";
-    field public static final deprecated java.lang.String LIST_CONTACTS_WITH_PHONES_ACTION = "com.android.contacts.action.LIST_CONTACTS_WITH_PHONES";
-    field public static final deprecated java.lang.String LIST_DEFAULT = "com.android.contacts.action.LIST_DEFAULT";
-    field public static final deprecated java.lang.String LIST_FREQUENT_ACTION = "com.android.contacts.action.LIST_FREQUENT";
-    field public static final deprecated java.lang.String LIST_GROUP_ACTION = "com.android.contacts.action.LIST_GROUP";
-    field public static final deprecated java.lang.String LIST_STARRED_ACTION = "com.android.contacts.action.LIST_STARRED";
-    field public static final deprecated java.lang.String LIST_STREQUENT_ACTION = "com.android.contacts.action.LIST_STREQUENT";
-    field public static final deprecated java.lang.String TITLE_EXTRA_KEY = "com.android.contacts.extra.TITLE_EXTRA";
+  @Deprecated public static final class Contacts.Intents.UI {
+    ctor @Deprecated public Contacts.Intents.UI();
+    field @Deprecated public static final String FILTER_CONTACTS_ACTION = "com.android.contacts.action.FILTER_CONTACTS";
+    field @Deprecated public static final String FILTER_TEXT_EXTRA_KEY = "com.android.contacts.extra.FILTER_TEXT";
+    field @Deprecated public static final String GROUP_NAME_EXTRA_KEY = "com.android.contacts.extra.GROUP";
+    field @Deprecated public static final String LIST_ALL_CONTACTS_ACTION = "com.android.contacts.action.LIST_ALL_CONTACTS";
+    field @Deprecated public static final String LIST_CONTACTS_WITH_PHONES_ACTION = "com.android.contacts.action.LIST_CONTACTS_WITH_PHONES";
+    field @Deprecated public static final String LIST_DEFAULT = "com.android.contacts.action.LIST_DEFAULT";
+    field @Deprecated public static final String LIST_FREQUENT_ACTION = "com.android.contacts.action.LIST_FREQUENT";
+    field @Deprecated public static final String LIST_GROUP_ACTION = "com.android.contacts.action.LIST_GROUP";
+    field @Deprecated public static final String LIST_STARRED_ACTION = "com.android.contacts.action.LIST_STARRED";
+    field @Deprecated public static final String LIST_STREQUENT_ACTION = "com.android.contacts.action.LIST_STREQUENT";
+    field @Deprecated public static final String TITLE_EXTRA_KEY = "com.android.contacts.extra.TITLE_EXTRA";
   }
 
-  public static abstract deprecated interface Contacts.OrganizationColumns {
-    field public static final deprecated java.lang.String COMPANY = "company";
-    field public static final deprecated java.lang.String ISPRIMARY = "isprimary";
-    field public static final deprecated java.lang.String LABEL = "label";
-    field public static final deprecated java.lang.String PERSON_ID = "person";
-    field public static final deprecated java.lang.String TITLE = "title";
-    field public static final deprecated java.lang.String TYPE = "type";
-    field public static final deprecated int TYPE_CUSTOM = 0; // 0x0
-    field public static final deprecated int TYPE_OTHER = 2; // 0x2
-    field public static final deprecated int TYPE_WORK = 1; // 0x1
+  @Deprecated public static interface Contacts.OrganizationColumns {
+    field @Deprecated public static final String COMPANY = "company";
+    field @Deprecated public static final String ISPRIMARY = "isprimary";
+    field @Deprecated public static final String LABEL = "label";
+    field @Deprecated public static final String PERSON_ID = "person";
+    field @Deprecated public static final String TITLE = "title";
+    field @Deprecated public static final String TYPE = "type";
+    field @Deprecated public static final int TYPE_CUSTOM = 0; // 0x0
+    field @Deprecated public static final int TYPE_OTHER = 2; // 0x2
+    field @Deprecated public static final int TYPE_WORK = 1; // 0x1
   }
 
-  public static final deprecated class Contacts.Organizations implements android.provider.BaseColumns android.provider.Contacts.OrganizationColumns {
-    method public static deprecated java.lang.CharSequence getDisplayLabel(android.content.Context, int, java.lang.CharSequence);
-    field public static final deprecated java.lang.String CONTENT_DIRECTORY = "organizations";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "company, title, isprimary ASC";
+  @Deprecated public static final class Contacts.Organizations implements android.provider.BaseColumns android.provider.Contacts.OrganizationColumns {
+    method @Deprecated public static CharSequence getDisplayLabel(android.content.Context, int, CharSequence);
+    field @Deprecated public static final String CONTENT_DIRECTORY = "organizations";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "company, title, isprimary ASC";
   }
 
-  public static final deprecated class Contacts.People implements android.provider.BaseColumns android.provider.Contacts.PeopleColumns android.provider.Contacts.PhonesColumns android.provider.Contacts.PresenceColumns {
-    method public static deprecated android.net.Uri addToGroup(android.content.ContentResolver, long, java.lang.String);
-    method public static deprecated android.net.Uri addToGroup(android.content.ContentResolver, long, long);
-    method public static deprecated android.net.Uri addToMyContactsGroup(android.content.ContentResolver, long);
-    method public static deprecated android.net.Uri createPersonInMyContactsGroup(android.content.ContentResolver, android.content.ContentValues);
-    method public static deprecated android.graphics.Bitmap loadContactPhoto(android.content.Context, android.net.Uri, int, android.graphics.BitmapFactory.Options);
-    method public static deprecated void markAsContacted(android.content.ContentResolver, long);
-    method public static deprecated java.io.InputStream openContactPhotoInputStream(android.content.ContentResolver, android.net.Uri);
-    method public static deprecated android.database.Cursor queryGroups(android.content.ContentResolver, long);
-    method public static deprecated void setPhotoData(android.content.ContentResolver, android.net.Uri, byte[]);
-    field public static final deprecated android.net.Uri CONTENT_FILTER_URI;
-    field public static final deprecated java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/person";
-    field public static final deprecated java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/person";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "name ASC";
-    field public static final deprecated android.net.Uri DELETED_CONTENT_URI;
-    field public static final deprecated java.lang.String PRIMARY_EMAIL_ID = "primary_email";
-    field public static final deprecated java.lang.String PRIMARY_ORGANIZATION_ID = "primary_organization";
-    field public static final deprecated java.lang.String PRIMARY_PHONE_ID = "primary_phone";
+  @Deprecated public static final class Contacts.People implements android.provider.BaseColumns android.provider.Contacts.PeopleColumns android.provider.Contacts.PhonesColumns android.provider.Contacts.PresenceColumns {
+    method @Deprecated public static android.net.Uri addToGroup(android.content.ContentResolver, long, String);
+    method @Deprecated public static android.net.Uri addToGroup(android.content.ContentResolver, long, long);
+    method @Deprecated public static android.net.Uri addToMyContactsGroup(android.content.ContentResolver, long);
+    method @Deprecated public static android.net.Uri createPersonInMyContactsGroup(android.content.ContentResolver, android.content.ContentValues);
+    method @Deprecated public static android.graphics.Bitmap loadContactPhoto(android.content.Context, android.net.Uri, int, android.graphics.BitmapFactory.Options);
+    method @Deprecated public static void markAsContacted(android.content.ContentResolver, long);
+    method @Deprecated public static java.io.InputStream openContactPhotoInputStream(android.content.ContentResolver, android.net.Uri);
+    method @Deprecated public static android.database.Cursor queryGroups(android.content.ContentResolver, long);
+    method @Deprecated public static void setPhotoData(android.content.ContentResolver, android.net.Uri, byte[]);
+    field @Deprecated public static final android.net.Uri CONTENT_FILTER_URI;
+    field @Deprecated public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/person";
+    field @Deprecated public static final String CONTENT_TYPE = "vnd.android.cursor.dir/person";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "name ASC";
+    field @Deprecated public static final android.net.Uri DELETED_CONTENT_URI;
+    field @Deprecated public static final String PRIMARY_EMAIL_ID = "primary_email";
+    field @Deprecated public static final String PRIMARY_ORGANIZATION_ID = "primary_organization";
+    field @Deprecated public static final String PRIMARY_PHONE_ID = "primary_phone";
   }
 
-  public static final deprecated class Contacts.People.ContactMethods implements android.provider.BaseColumns android.provider.Contacts.ContactMethodsColumns android.provider.Contacts.PeopleColumns {
-    field public static final deprecated java.lang.String CONTENT_DIRECTORY = "contact_methods";
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "data ASC";
+  @Deprecated public static final class Contacts.People.ContactMethods implements android.provider.BaseColumns android.provider.Contacts.ContactMethodsColumns android.provider.Contacts.PeopleColumns {
+    field @Deprecated public static final String CONTENT_DIRECTORY = "contact_methods";
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "data ASC";
   }
 
-  public static deprecated class Contacts.People.Extensions implements android.provider.BaseColumns android.provider.Contacts.ExtensionsColumns {
-    field public static final deprecated java.lang.String CONTENT_DIRECTORY = "extensions";
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "name ASC";
-    field public static final deprecated java.lang.String PERSON_ID = "person";
+  @Deprecated public static class Contacts.People.Extensions implements android.provider.BaseColumns android.provider.Contacts.ExtensionsColumns {
+    field @Deprecated public static final String CONTENT_DIRECTORY = "extensions";
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "name ASC";
+    field @Deprecated public static final String PERSON_ID = "person";
   }
 
-  public static final deprecated class Contacts.People.Phones implements android.provider.BaseColumns android.provider.Contacts.PeopleColumns android.provider.Contacts.PhonesColumns {
-    field public static final deprecated java.lang.String CONTENT_DIRECTORY = "phones";
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "number ASC";
+  @Deprecated public static final class Contacts.People.Phones implements android.provider.BaseColumns android.provider.Contacts.PeopleColumns android.provider.Contacts.PhonesColumns {
+    field @Deprecated public static final String CONTENT_DIRECTORY = "phones";
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "number ASC";
   }
 
-  public static abstract deprecated interface Contacts.PeopleColumns {
-    field public static final deprecated java.lang.String CUSTOM_RINGTONE = "custom_ringtone";
-    field public static final deprecated java.lang.String DISPLAY_NAME = "display_name";
-    field public static final deprecated java.lang.String LAST_TIME_CONTACTED = "last_time_contacted";
-    field public static final deprecated java.lang.String NAME = "name";
-    field public static final deprecated java.lang.String NOTES = "notes";
-    field public static final deprecated java.lang.String PHONETIC_NAME = "phonetic_name";
-    field public static final deprecated java.lang.String PHOTO_VERSION = "photo_version";
-    field public static final deprecated java.lang.String SEND_TO_VOICEMAIL = "send_to_voicemail";
-    field public static final deprecated java.lang.String STARRED = "starred";
-    field public static final deprecated java.lang.String TIMES_CONTACTED = "times_contacted";
+  @Deprecated public static interface Contacts.PeopleColumns {
+    field @Deprecated public static final String CUSTOM_RINGTONE = "custom_ringtone";
+    field @Deprecated public static final String DISPLAY_NAME = "display_name";
+    field @Deprecated public static final String LAST_TIME_CONTACTED = "last_time_contacted";
+    field @Deprecated public static final String NAME = "name";
+    field @Deprecated public static final String NOTES = "notes";
+    field @Deprecated public static final String PHONETIC_NAME = "phonetic_name";
+    field @Deprecated public static final String PHOTO_VERSION = "photo_version";
+    field @Deprecated public static final String SEND_TO_VOICEMAIL = "send_to_voicemail";
+    field @Deprecated public static final String STARRED = "starred";
+    field @Deprecated public static final String TIMES_CONTACTED = "times_contacted";
   }
 
-  public static final deprecated class Contacts.Phones implements android.provider.BaseColumns android.provider.Contacts.PeopleColumns android.provider.Contacts.PhonesColumns {
-    method public static deprecated java.lang.CharSequence getDisplayLabel(android.content.Context, int, java.lang.CharSequence, java.lang.CharSequence[]);
-    method public static deprecated java.lang.CharSequence getDisplayLabel(android.content.Context, int, java.lang.CharSequence);
-    field public static final deprecated android.net.Uri CONTENT_FILTER_URL;
-    field public static final deprecated java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/phone";
-    field public static final deprecated java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/phone";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "name ASC";
-    field public static final deprecated java.lang.String PERSON_ID = "person";
+  @Deprecated public static final class Contacts.Phones implements android.provider.BaseColumns android.provider.Contacts.PeopleColumns android.provider.Contacts.PhonesColumns {
+    method @Deprecated public static CharSequence getDisplayLabel(android.content.Context, int, CharSequence, CharSequence[]);
+    method @Deprecated public static CharSequence getDisplayLabel(android.content.Context, int, CharSequence);
+    field @Deprecated public static final android.net.Uri CONTENT_FILTER_URL;
+    field @Deprecated public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/phone";
+    field @Deprecated public static final String CONTENT_TYPE = "vnd.android.cursor.dir/phone";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "name ASC";
+    field @Deprecated public static final String PERSON_ID = "person";
   }
 
-  public static abstract deprecated interface Contacts.PhonesColumns {
-    field public static final deprecated java.lang.String ISPRIMARY = "isprimary";
-    field public static final deprecated java.lang.String LABEL = "label";
-    field public static final deprecated java.lang.String NUMBER = "number";
-    field public static final deprecated java.lang.String NUMBER_KEY = "number_key";
-    field public static final deprecated java.lang.String TYPE = "type";
-    field public static final deprecated int TYPE_CUSTOM = 0; // 0x0
-    field public static final deprecated int TYPE_FAX_HOME = 5; // 0x5
-    field public static final deprecated int TYPE_FAX_WORK = 4; // 0x4
-    field public static final deprecated int TYPE_HOME = 1; // 0x1
-    field public static final deprecated int TYPE_MOBILE = 2; // 0x2
-    field public static final deprecated int TYPE_OTHER = 7; // 0x7
-    field public static final deprecated int TYPE_PAGER = 6; // 0x6
-    field public static final deprecated int TYPE_WORK = 3; // 0x3
+  @Deprecated public static interface Contacts.PhonesColumns {
+    field @Deprecated public static final String ISPRIMARY = "isprimary";
+    field @Deprecated public static final String LABEL = "label";
+    field @Deprecated public static final String NUMBER = "number";
+    field @Deprecated public static final String NUMBER_KEY = "number_key";
+    field @Deprecated public static final String TYPE = "type";
+    field @Deprecated public static final int TYPE_CUSTOM = 0; // 0x0
+    field @Deprecated public static final int TYPE_FAX_HOME = 5; // 0x5
+    field @Deprecated public static final int TYPE_FAX_WORK = 4; // 0x4
+    field @Deprecated public static final int TYPE_HOME = 1; // 0x1
+    field @Deprecated public static final int TYPE_MOBILE = 2; // 0x2
+    field @Deprecated public static final int TYPE_OTHER = 7; // 0x7
+    field @Deprecated public static final int TYPE_PAGER = 6; // 0x6
+    field @Deprecated public static final int TYPE_WORK = 3; // 0x3
   }
 
-  public static final deprecated class Contacts.Photos implements android.provider.BaseColumns android.provider.Contacts.PhotosColumns {
-    field public static final deprecated java.lang.String CONTENT_DIRECTORY = "photo";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "person ASC";
+  @Deprecated public static final class Contacts.Photos implements android.provider.BaseColumns android.provider.Contacts.PhotosColumns {
+    field @Deprecated public static final String CONTENT_DIRECTORY = "photo";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "person ASC";
   }
 
-  public static abstract deprecated interface Contacts.PhotosColumns {
-    field public static final deprecated java.lang.String DATA = "data";
-    field public static final deprecated java.lang.String DOWNLOAD_REQUIRED = "download_required";
-    field public static final deprecated java.lang.String EXISTS_ON_SERVER = "exists_on_server";
-    field public static final deprecated java.lang.String LOCAL_VERSION = "local_version";
-    field public static final deprecated java.lang.String PERSON_ID = "person";
-    field public static final deprecated java.lang.String SYNC_ERROR = "sync_error";
+  @Deprecated public static interface Contacts.PhotosColumns {
+    field @Deprecated public static final String DATA = "data";
+    field @Deprecated public static final String DOWNLOAD_REQUIRED = "download_required";
+    field @Deprecated public static final String EXISTS_ON_SERVER = "exists_on_server";
+    field @Deprecated public static final String LOCAL_VERSION = "local_version";
+    field @Deprecated public static final String PERSON_ID = "person";
+    field @Deprecated public static final String SYNC_ERROR = "sync_error";
   }
 
-  public static abstract deprecated interface Contacts.PresenceColumns {
-    field public static final int AVAILABLE = 5; // 0x5
-    field public static final int AWAY = 2; // 0x2
-    field public static final int DO_NOT_DISTURB = 4; // 0x4
-    field public static final int IDLE = 3; // 0x3
-    field public static final deprecated java.lang.String IM_ACCOUNT = "im_account";
-    field public static final deprecated java.lang.String IM_HANDLE = "im_handle";
-    field public static final deprecated java.lang.String IM_PROTOCOL = "im_protocol";
-    field public static final int INVISIBLE = 1; // 0x1
-    field public static final int OFFLINE = 0; // 0x0
-    field public static final java.lang.String PRESENCE_CUSTOM_STATUS = "status";
-    field public static final java.lang.String PRESENCE_STATUS = "mode";
-    field public static final java.lang.String PRIORITY = "priority";
+  @Deprecated public static interface Contacts.PresenceColumns {
+    field @Deprecated public static final int AVAILABLE = 5; // 0x5
+    field @Deprecated public static final int AWAY = 2; // 0x2
+    field @Deprecated public static final int DO_NOT_DISTURB = 4; // 0x4
+    field @Deprecated public static final int IDLE = 3; // 0x3
+    field @Deprecated public static final String IM_ACCOUNT = "im_account";
+    field @Deprecated public static final String IM_HANDLE = "im_handle";
+    field @Deprecated public static final String IM_PROTOCOL = "im_protocol";
+    field @Deprecated public static final int INVISIBLE = 1; // 0x1
+    field @Deprecated public static final int OFFLINE = 0; // 0x0
+    field @Deprecated public static final String PRESENCE_CUSTOM_STATUS = "status";
+    field @Deprecated public static final String PRESENCE_STATUS = "mode";
+    field @Deprecated public static final String PRIORITY = "priority";
   }
 
-  public static final deprecated class Contacts.Settings implements android.provider.BaseColumns android.provider.Contacts.SettingsColumns {
-    method public static deprecated java.lang.String getSetting(android.content.ContentResolver, java.lang.String, java.lang.String);
-    method public static deprecated void setSetting(android.content.ContentResolver, java.lang.String, java.lang.String, java.lang.String);
-    field public static final deprecated java.lang.String CONTENT_DIRECTORY = "settings";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DEFAULT_SORT_ORDER = "key ASC";
-    field public static final deprecated java.lang.String SYNC_EVERYTHING = "syncEverything";
+  @Deprecated public static final class Contacts.Settings implements android.provider.BaseColumns android.provider.Contacts.SettingsColumns {
+    method @Deprecated public static String getSetting(android.content.ContentResolver, String, String);
+    method @Deprecated public static void setSetting(android.content.ContentResolver, String, String, String);
+    field @Deprecated public static final String CONTENT_DIRECTORY = "settings";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final String DEFAULT_SORT_ORDER = "key ASC";
+    field @Deprecated public static final String SYNC_EVERYTHING = "syncEverything";
   }
 
-  public static abstract deprecated interface Contacts.SettingsColumns {
-    field public static final deprecated java.lang.String KEY = "key";
-    field public static final deprecated java.lang.String VALUE = "value";
-    field public static final deprecated java.lang.String _SYNC_ACCOUNT = "_sync_account";
-    field public static final deprecated java.lang.String _SYNC_ACCOUNT_TYPE = "_sync_account_type";
+  @Deprecated public static interface Contacts.SettingsColumns {
+    field @Deprecated public static final String KEY = "key";
+    field @Deprecated public static final String VALUE = "value";
+    field @Deprecated public static final String _SYNC_ACCOUNT = "_sync_account";
+    field @Deprecated public static final String _SYNC_ACCOUNT_TYPE = "_sync_account_type";
   }
 
   public final class ContactsContract {
     ctor public ContactsContract();
     method public static boolean isProfileId(long);
-    field public static final java.lang.String AUTHORITY = "com.android.contacts";
+    field public static final String AUTHORITY = "com.android.contacts";
     field public static final android.net.Uri AUTHORITY_URI;
-    field public static final java.lang.String CALLER_IS_SYNCADAPTER = "caller_is_syncadapter";
-    field public static final java.lang.String DEFERRED_SNIPPETING = "deferred_snippeting";
-    field public static final java.lang.String DEFERRED_SNIPPETING_QUERY = "deferred_snippeting_query";
-    field public static final java.lang.String DIRECTORY_PARAM_KEY = "directory";
-    field public static final java.lang.String LIMIT_PARAM_KEY = "limit";
-    field public static final java.lang.String PRIMARY_ACCOUNT_NAME = "name_for_primary_account";
-    field public static final java.lang.String PRIMARY_ACCOUNT_TYPE = "type_for_primary_account";
-    field public static final java.lang.String REMOVE_DUPLICATE_ENTRIES = "remove_duplicate_entries";
-    field public static final java.lang.String STREQUENT_PHONE_ONLY = "strequent_phone_only";
+    field public static final String CALLER_IS_SYNCADAPTER = "caller_is_syncadapter";
+    field public static final String DEFERRED_SNIPPETING = "deferred_snippeting";
+    field public static final String DEFERRED_SNIPPETING_QUERY = "deferred_snippeting_query";
+    field public static final String DIRECTORY_PARAM_KEY = "directory";
+    field public static final String LIMIT_PARAM_KEY = "limit";
+    field public static final String PRIMARY_ACCOUNT_NAME = "name_for_primary_account";
+    field public static final String PRIMARY_ACCOUNT_TYPE = "type_for_primary_account";
+    field public static final String REMOVE_DUPLICATE_ENTRIES = "remove_duplicate_entries";
+    field public static final String STREQUENT_PHONE_ONLY = "strequent_phone_only";
   }
 
   public static final class ContactsContract.AggregationExceptions implements android.provider.BaseColumns {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/aggregation_exception";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/aggregation_exception";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/aggregation_exception";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/aggregation_exception";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String RAW_CONTACT_ID1 = "raw_contact_id1";
-    field public static final java.lang.String RAW_CONTACT_ID2 = "raw_contact_id2";
-    field public static final java.lang.String TYPE = "type";
+    field public static final String RAW_CONTACT_ID1 = "raw_contact_id1";
+    field public static final String RAW_CONTACT_ID2 = "raw_contact_id2";
+    field public static final String TYPE = "type";
     field public static final int TYPE_AUTOMATIC = 0; // 0x0
     field public static final int TYPE_KEEP_SEPARATE = 2; // 0x2
     field public static final int TYPE_KEEP_TOGETHER = 1; // 0x1
   }
 
-  protected static abstract interface ContactsContract.BaseSyncColumns {
-    field public static final java.lang.String SYNC1 = "sync1";
-    field public static final java.lang.String SYNC2 = "sync2";
-    field public static final java.lang.String SYNC3 = "sync3";
-    field public static final java.lang.String SYNC4 = "sync4";
+  protected static interface ContactsContract.BaseSyncColumns {
+    field public static final String SYNC1 = "sync1";
+    field public static final String SYNC2 = "sync2";
+    field public static final String SYNC3 = "sync3";
+    field public static final String SYNC4 = "sync4";
   }
 
   public static final class ContactsContract.CommonDataKinds {
   }
 
-  public static abstract interface ContactsContract.CommonDataKinds.BaseTypes {
+  public static interface ContactsContract.CommonDataKinds.BaseTypes {
     field public static final int TYPE_CUSTOM = 0; // 0x0
   }
 
@@ -37208,42 +37118,42 @@
     field public static final android.net.Uri CONTENT_FILTER_URI;
     field public static final android.net.Uri CONTENT_URI;
     field public static final android.net.Uri ENTERPRISE_CONTENT_FILTER_URI;
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
   }
 
-  protected static abstract interface ContactsContract.CommonDataKinds.CommonColumns implements android.provider.ContactsContract.CommonDataKinds.BaseTypes {
-    field public static final java.lang.String DATA = "data1";
-    field public static final java.lang.String LABEL = "data3";
-    field public static final java.lang.String TYPE = "data2";
+  protected static interface ContactsContract.CommonDataKinds.CommonColumns extends android.provider.ContactsContract.CommonDataKinds.BaseTypes {
+    field public static final String DATA = "data1";
+    field public static final String LABEL = "data3";
+    field public static final String TYPE = "data2";
   }
 
   public static final class ContactsContract.CommonDataKinds.Contactables implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
     ctor public ContactsContract.CommonDataKinds.Contactables();
     field public static final android.net.Uri CONTENT_FILTER_URI;
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String VISIBLE_CONTACTS_ONLY = "visible_contacts_only";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String VISIBLE_CONTACTS_ONLY = "visible_contacts_only";
   }
 
   public static final class ContactsContract.CommonDataKinds.Email implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    method public static java.lang.CharSequence getTypeLabel(android.content.res.Resources, int, java.lang.CharSequence);
+    method public static CharSequence getTypeLabel(android.content.res.Resources, int, CharSequence);
     method public static int getTypeLabelResource(int);
-    field public static final java.lang.String ADDRESS = "data1";
+    field public static final String ADDRESS = "data1";
     field public static final android.net.Uri CONTENT_FILTER_URI;
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/email_v2";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/email_v2";
     field public static final android.net.Uri CONTENT_LOOKUP_URI;
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/email_v2";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/email_v2";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DISPLAY_NAME = "data4";
+    field public static final String DISPLAY_NAME = "data4";
     field public static final android.net.Uri ENTERPRISE_CONTENT_FILTER_URI;
     field public static final android.net.Uri ENTERPRISE_CONTENT_LOOKUP_URI;
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
     field public static final int TYPE_HOME = 1; // 0x1
     field public static final int TYPE_MOBILE = 4; // 0x4
     field public static final int TYPE_OTHER = 3; // 0x3
@@ -37251,47 +37161,47 @@
   }
 
   public static final class ContactsContract.CommonDataKinds.Event implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    method public static java.lang.CharSequence getTypeLabel(android.content.res.Resources, int, java.lang.CharSequence);
-    method public static int getTypeResource(java.lang.Integer);
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_event";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String START_DATE = "data1";
+    method public static CharSequence getTypeLabel(android.content.res.Resources, int, CharSequence);
+    method public static int getTypeResource(Integer);
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_event";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String START_DATE = "data1";
     field public static final int TYPE_ANNIVERSARY = 1; // 0x1
     field public static final int TYPE_BIRTHDAY = 3; // 0x3
     field public static final int TYPE_OTHER = 2; // 0x2
   }
 
   public static final class ContactsContract.CommonDataKinds.GroupMembership implements android.provider.ContactsContract.DataColumnsWithJoins {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/group_membership";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String GROUP_ROW_ID = "data1";
-    field public static final java.lang.String GROUP_SOURCE_ID = "group_sourceid";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/group_membership";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String GROUP_ROW_ID = "data1";
+    field public static final String GROUP_SOURCE_ID = "group_sourceid";
   }
 
   public static final class ContactsContract.CommonDataKinds.Identity implements android.provider.ContactsContract.DataColumnsWithJoins {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/identity";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String IDENTITY = "data1";
-    field public static final java.lang.String NAMESPACE = "data2";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/identity";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String IDENTITY = "data1";
+    field public static final String NAMESPACE = "data2";
   }
 
   public static final class ContactsContract.CommonDataKinds.Im implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    method public static java.lang.CharSequence getProtocolLabel(android.content.res.Resources, int, java.lang.CharSequence);
+    method public static CharSequence getProtocolLabel(android.content.res.Resources, int, CharSequence);
     method public static int getProtocolLabelResource(int);
-    method public static java.lang.CharSequence getTypeLabel(android.content.res.Resources, int, java.lang.CharSequence);
+    method public static CharSequence getTypeLabel(android.content.res.Resources, int, CharSequence);
     method public static int getTypeLabelResource(int);
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/im";
-    field public static final java.lang.String CUSTOM_PROTOCOL = "data6";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String PROTOCOL = "data5";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/im";
+    field public static final String CUSTOM_PROTOCOL = "data6";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String PROTOCOL = "data5";
     field public static final int PROTOCOL_AIM = 0; // 0x0
     field public static final int PROTOCOL_CUSTOM = -1; // 0xffffffff
     field public static final int PROTOCOL_GOOGLE_TALK = 5; // 0x5
@@ -37308,61 +37218,61 @@
   }
 
   public static final class ContactsContract.CommonDataKinds.Nickname implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/nickname";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String NAME = "data1";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/nickname";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String NAME = "data1";
     field public static final int TYPE_DEFAULT = 1; // 0x1
     field public static final int TYPE_INITIALS = 5; // 0x5
     field public static final int TYPE_MAIDEN_NAME = 3; // 0x3
-    field public static final deprecated int TYPE_MAINDEN_NAME = 3; // 0x3
+    field @Deprecated public static final int TYPE_MAINDEN_NAME = 3; // 0x3
     field public static final int TYPE_OTHER_NAME = 2; // 0x2
     field public static final int TYPE_SHORT_NAME = 4; // 0x4
   }
 
   public static final class ContactsContract.CommonDataKinds.Note implements android.provider.ContactsContract.DataColumnsWithJoins {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/note";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String NOTE = "data1";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/note";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String NOTE = "data1";
   }
 
   public static final class ContactsContract.CommonDataKinds.Organization implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    method public static java.lang.CharSequence getTypeLabel(android.content.res.Resources, int, java.lang.CharSequence);
+    method public static CharSequence getTypeLabel(android.content.res.Resources, int, CharSequence);
     method public static int getTypeLabelResource(int);
-    field public static final java.lang.String COMPANY = "data1";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/organization";
-    field public static final java.lang.String DEPARTMENT = "data5";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String JOB_DESCRIPTION = "data6";
-    field public static final java.lang.String OFFICE_LOCATION = "data9";
-    field public static final java.lang.String PHONETIC_NAME = "data8";
-    field public static final java.lang.String PHONETIC_NAME_STYLE = "data10";
-    field public static final java.lang.String SYMBOL = "data7";
-    field public static final java.lang.String TITLE = "data4";
+    field public static final String COMPANY = "data1";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/organization";
+    field public static final String DEPARTMENT = "data5";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String JOB_DESCRIPTION = "data6";
+    field public static final String OFFICE_LOCATION = "data9";
+    field public static final String PHONETIC_NAME = "data8";
+    field public static final String PHONETIC_NAME_STYLE = "data10";
+    field public static final String SYMBOL = "data7";
+    field public static final String TITLE = "data4";
     field public static final int TYPE_OTHER = 2; // 0x2
     field public static final int TYPE_WORK = 1; // 0x1
   }
 
   public static final class ContactsContract.CommonDataKinds.Phone implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    method public static java.lang.CharSequence getTypeLabel(android.content.res.Resources, int, java.lang.CharSequence);
+    method public static CharSequence getTypeLabel(android.content.res.Resources, int, CharSequence);
     method public static int getTypeLabelResource(int);
     field public static final android.net.Uri CONTENT_FILTER_URI;
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/phone_v2";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/phone_v2";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/phone_v2";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/phone_v2";
     field public static final android.net.Uri CONTENT_URI;
     field public static final android.net.Uri ENTERPRISE_CONTENT_FILTER_URI;
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String NORMALIZED_NUMBER = "data4";
-    field public static final java.lang.String NUMBER = "data1";
-    field public static final java.lang.String SEARCH_DISPLAY_NAME_KEY = "search_display_name";
-    field public static final java.lang.String SEARCH_PHONE_NUMBER_KEY = "search_phone_number";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String NORMALIZED_NUMBER = "data4";
+    field public static final String NUMBER = "data1";
+    field public static final String SEARCH_DISPLAY_NAME_KEY = "search_display_name";
+    field public static final String SEARCH_PHONE_NUMBER_KEY = "search_phone_number";
     field public static final int TYPE_ASSISTANT = 19; // 0x13
     field public static final int TYPE_CALLBACK = 8; // 0x8
     field public static final int TYPE_CAR = 9; // 0x9
@@ -37386,22 +37296,22 @@
   }
 
   public static final class ContactsContract.CommonDataKinds.Photo implements android.provider.ContactsContract.DataColumnsWithJoins {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/photo";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String PHOTO = "data15";
-    field public static final java.lang.String PHOTO_FILE_ID = "data14";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/photo";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String PHOTO = "data15";
+    field public static final String PHOTO_FILE_ID = "data14";
   }
 
   public static final class ContactsContract.CommonDataKinds.Relation implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    method public static java.lang.CharSequence getTypeLabel(android.content.res.Resources, int, java.lang.CharSequence);
+    method public static CharSequence getTypeLabel(android.content.res.Resources, int, CharSequence);
     method public static int getTypeLabelResource(int);
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/relation";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String NAME = "data1";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/relation";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String NAME = "data1";
     field public static final int TYPE_ASSISTANT = 1; // 0x1
     field public static final int TYPE_BROTHER = 2; // 0x2
     field public static final int TYPE_CHILD = 3; // 0x3
@@ -37419,63 +37329,63 @@
   }
 
   public static final class ContactsContract.CommonDataKinds.SipAddress implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    method public static java.lang.CharSequence getTypeLabel(android.content.res.Resources, int, java.lang.CharSequence);
+    method public static CharSequence getTypeLabel(android.content.res.Resources, int, CharSequence);
     method public static int getTypeLabelResource(int);
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/sip_address";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String SIP_ADDRESS = "data1";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/sip_address";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String SIP_ADDRESS = "data1";
     field public static final int TYPE_HOME = 1; // 0x1
     field public static final int TYPE_OTHER = 3; // 0x3
     field public static final int TYPE_WORK = 2; // 0x2
   }
 
   public static final class ContactsContract.CommonDataKinds.StructuredName implements android.provider.ContactsContract.DataColumnsWithJoins {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/name";
-    field public static final java.lang.String DISPLAY_NAME = "data1";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String FAMILY_NAME = "data3";
-    field public static final java.lang.String FULL_NAME_STYLE = "data10";
-    field public static final java.lang.String GIVEN_NAME = "data2";
-    field public static final java.lang.String MIDDLE_NAME = "data5";
-    field public static final java.lang.String PHONETIC_FAMILY_NAME = "data9";
-    field public static final java.lang.String PHONETIC_GIVEN_NAME = "data7";
-    field public static final java.lang.String PHONETIC_MIDDLE_NAME = "data8";
-    field public static final java.lang.String PHONETIC_NAME_STYLE = "data11";
-    field public static final java.lang.String PREFIX = "data4";
-    field public static final java.lang.String SUFFIX = "data6";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/name";
+    field public static final String DISPLAY_NAME = "data1";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String FAMILY_NAME = "data3";
+    field public static final String FULL_NAME_STYLE = "data10";
+    field public static final String GIVEN_NAME = "data2";
+    field public static final String MIDDLE_NAME = "data5";
+    field public static final String PHONETIC_FAMILY_NAME = "data9";
+    field public static final String PHONETIC_GIVEN_NAME = "data7";
+    field public static final String PHONETIC_MIDDLE_NAME = "data8";
+    field public static final String PHONETIC_NAME_STYLE = "data11";
+    field public static final String PREFIX = "data4";
+    field public static final String SUFFIX = "data6";
   }
 
   public static final class ContactsContract.CommonDataKinds.StructuredPostal implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    method public static java.lang.CharSequence getTypeLabel(android.content.res.Resources, int, java.lang.CharSequence);
+    method public static CharSequence getTypeLabel(android.content.res.Resources, int, CharSequence);
     method public static int getTypeLabelResource(int);
-    field public static final java.lang.String CITY = "data7";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/postal-address_v2";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/postal-address_v2";
+    field public static final String CITY = "data7";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/postal-address_v2";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/postal-address_v2";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String COUNTRY = "data10";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String FORMATTED_ADDRESS = "data1";
-    field public static final java.lang.String NEIGHBORHOOD = "data6";
-    field public static final java.lang.String POBOX = "data5";
-    field public static final java.lang.String POSTCODE = "data9";
-    field public static final java.lang.String REGION = "data8";
-    field public static final java.lang.String STREET = "data4";
+    field public static final String COUNTRY = "data10";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String FORMATTED_ADDRESS = "data1";
+    field public static final String NEIGHBORHOOD = "data6";
+    field public static final String POBOX = "data5";
+    field public static final String POSTCODE = "data9";
+    field public static final String REGION = "data8";
+    field public static final String STREET = "data4";
     field public static final int TYPE_HOME = 1; // 0x1
     field public static final int TYPE_OTHER = 3; // 0x3
     field public static final int TYPE_WORK = 2; // 0x2
   }
 
   public static final class ContactsContract.CommonDataKinds.Website implements android.provider.ContactsContract.CommonDataKinds.CommonColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/website";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/website";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
     field public static final int TYPE_BLOG = 2; // 0x2
     field public static final int TYPE_FTP = 6; // 0x6
     field public static final int TYPE_HOME = 4; // 0x4
@@ -37483,168 +37393,168 @@
     field public static final int TYPE_OTHER = 7; // 0x7
     field public static final int TYPE_PROFILE = 3; // 0x3
     field public static final int TYPE_WORK = 5; // 0x5
-    field public static final java.lang.String URL = "data1";
+    field public static final String URL = "data1";
   }
 
-  protected static abstract interface ContactsContract.ContactNameColumns {
-    field public static final java.lang.String DISPLAY_NAME_ALTERNATIVE = "display_name_alt";
-    field public static final java.lang.String DISPLAY_NAME_PRIMARY = "display_name";
-    field public static final java.lang.String DISPLAY_NAME_SOURCE = "display_name_source";
-    field public static final java.lang.String PHONETIC_NAME = "phonetic_name";
-    field public static final java.lang.String PHONETIC_NAME_STYLE = "phonetic_name_style";
-    field public static final java.lang.String SORT_KEY_ALTERNATIVE = "sort_key_alt";
-    field public static final java.lang.String SORT_KEY_PRIMARY = "sort_key";
+  protected static interface ContactsContract.ContactNameColumns {
+    field public static final String DISPLAY_NAME_ALTERNATIVE = "display_name_alt";
+    field public static final String DISPLAY_NAME_PRIMARY = "display_name";
+    field public static final String DISPLAY_NAME_SOURCE = "display_name_source";
+    field public static final String PHONETIC_NAME = "phonetic_name";
+    field public static final String PHONETIC_NAME_STYLE = "phonetic_name_style";
+    field public static final String SORT_KEY_ALTERNATIVE = "sort_key_alt";
+    field public static final String SORT_KEY_PRIMARY = "sort_key";
   }
 
-  protected static abstract interface ContactsContract.ContactOptionsColumns {
-    field public static final java.lang.String CUSTOM_RINGTONE = "custom_ringtone";
-    field public static final deprecated java.lang.String LAST_TIME_CONTACTED = "last_time_contacted";
-    field public static final java.lang.String PINNED = "pinned";
-    field public static final java.lang.String SEND_TO_VOICEMAIL = "send_to_voicemail";
-    field public static final java.lang.String STARRED = "starred";
-    field public static final deprecated java.lang.String TIMES_CONTACTED = "times_contacted";
+  protected static interface ContactsContract.ContactOptionsColumns {
+    field public static final String CUSTOM_RINGTONE = "custom_ringtone";
+    field @Deprecated public static final String LAST_TIME_CONTACTED = "last_time_contacted";
+    field public static final String PINNED = "pinned";
+    field public static final String SEND_TO_VOICEMAIL = "send_to_voicemail";
+    field public static final String STARRED = "starred";
+    field @Deprecated public static final String TIMES_CONTACTED = "times_contacted";
   }
 
-  protected static abstract interface ContactsContract.ContactStatusColumns {
-    field public static final java.lang.String CONTACT_CHAT_CAPABILITY = "contact_chat_capability";
-    field public static final java.lang.String CONTACT_PRESENCE = "contact_presence";
-    field public static final java.lang.String CONTACT_STATUS = "contact_status";
-    field public static final java.lang.String CONTACT_STATUS_ICON = "contact_status_icon";
-    field public static final java.lang.String CONTACT_STATUS_LABEL = "contact_status_label";
-    field public static final java.lang.String CONTACT_STATUS_RES_PACKAGE = "contact_status_res_package";
-    field public static final java.lang.String CONTACT_STATUS_TIMESTAMP = "contact_status_ts";
+  protected static interface ContactsContract.ContactStatusColumns {
+    field public static final String CONTACT_CHAT_CAPABILITY = "contact_chat_capability";
+    field public static final String CONTACT_PRESENCE = "contact_presence";
+    field public static final String CONTACT_STATUS = "contact_status";
+    field public static final String CONTACT_STATUS_ICON = "contact_status_icon";
+    field public static final String CONTACT_STATUS_LABEL = "contact_status_label";
+    field public static final String CONTACT_STATUS_RES_PACKAGE = "contact_status_res_package";
+    field public static final String CONTACT_STATUS_TIMESTAMP = "contact_status_ts";
   }
 
   public static class ContactsContract.Contacts implements android.provider.BaseColumns android.provider.ContactsContract.ContactNameColumns android.provider.ContactsContract.ContactOptionsColumns android.provider.ContactsContract.ContactStatusColumns android.provider.ContactsContract.ContactsColumns {
     method public static android.net.Uri getLookupUri(android.content.ContentResolver, android.net.Uri);
-    method public static android.net.Uri getLookupUri(long, java.lang.String);
+    method public static android.net.Uri getLookupUri(long, String);
     method public static boolean isEnterpriseContactId(long);
     method public static android.net.Uri lookupContact(android.content.ContentResolver, android.net.Uri);
-    method public static deprecated void markAsContacted(android.content.ContentResolver, long);
+    method @Deprecated public static void markAsContacted(android.content.ContentResolver, long);
     method public static java.io.InputStream openContactPhotoInputStream(android.content.ContentResolver, android.net.Uri, boolean);
     method public static java.io.InputStream openContactPhotoInputStream(android.content.ContentResolver, android.net.Uri);
     field public static final android.net.Uri CONTENT_FILTER_URI;
-    field public static final deprecated android.net.Uri CONTENT_FREQUENT_URI;
+    field @Deprecated public static final android.net.Uri CONTENT_FREQUENT_URI;
     field public static final android.net.Uri CONTENT_GROUP_URI;
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact";
     field public static final android.net.Uri CONTENT_LOOKUP_URI;
     field public static final android.net.Uri CONTENT_MULTI_VCARD_URI;
     field public static final android.net.Uri CONTENT_STREQUENT_FILTER_URI;
     field public static final android.net.Uri CONTENT_STREQUENT_URI;
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/contact";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String CONTENT_VCARD_TYPE = "text/x-vcard";
+    field public static final String CONTENT_VCARD_TYPE = "text/x-vcard";
     field public static final android.net.Uri CONTENT_VCARD_URI;
     field public static final android.net.Uri ENTERPRISE_CONTENT_FILTER_URI;
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String QUERY_PARAMETER_VCARD_NO_PHOTO = "no_photo";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String QUERY_PARAMETER_VCARD_NO_PHOTO = "no_photo";
   }
 
   public static final class ContactsContract.Contacts.AggregationSuggestions implements android.provider.BaseColumns android.provider.ContactsContract.ContactOptionsColumns android.provider.ContactsContract.ContactStatusColumns android.provider.ContactsContract.ContactsColumns {
-    field public static final java.lang.String CONTENT_DIRECTORY = "suggestions";
+    field public static final String CONTENT_DIRECTORY = "suggestions";
   }
 
   public static final class ContactsContract.Contacts.AggregationSuggestions.Builder {
     ctor public ContactsContract.Contacts.AggregationSuggestions.Builder();
-    method public android.provider.ContactsContract.Contacts.AggregationSuggestions.Builder addNameParameter(java.lang.String);
+    method public android.provider.ContactsContract.Contacts.AggregationSuggestions.Builder addNameParameter(String);
     method public android.net.Uri build();
     method public android.provider.ContactsContract.Contacts.AggregationSuggestions.Builder setContactId(long);
     method public android.provider.ContactsContract.Contacts.AggregationSuggestions.Builder setLimit(int);
   }
 
   public static final class ContactsContract.Contacts.Data implements android.provider.BaseColumns android.provider.ContactsContract.DataColumns {
-    field public static final java.lang.String CONTENT_DIRECTORY = "data";
+    field public static final String CONTENT_DIRECTORY = "data";
   }
 
   public static final class ContactsContract.Contacts.Entity implements android.provider.BaseColumns android.provider.ContactsContract.BaseSyncColumns android.provider.ContactsContract.ContactNameColumns android.provider.ContactsContract.ContactOptionsColumns android.provider.ContactsContract.ContactStatusColumns android.provider.ContactsContract.ContactsColumns android.provider.ContactsContract.DataColumns android.provider.ContactsContract.DataUsageStatColumns android.provider.ContactsContract.RawContactsColumns android.provider.ContactsContract.StatusColumns android.provider.ContactsContract.SyncColumns {
-    field public static final java.lang.String CONTENT_DIRECTORY = "entities";
-    field public static final java.lang.String DATA_ID = "data_id";
-    field public static final java.lang.String RAW_CONTACT_ID = "raw_contact_id";
+    field public static final String CONTENT_DIRECTORY = "entities";
+    field public static final String DATA_ID = "data_id";
+    field public static final String RAW_CONTACT_ID = "raw_contact_id";
   }
 
   public static final class ContactsContract.Contacts.Photo implements android.provider.BaseColumns android.provider.ContactsContract.DataColumnsWithJoins {
-    field public static final java.lang.String CONTENT_DIRECTORY = "photo";
-    field public static final java.lang.String DISPLAY_PHOTO = "display_photo";
-    field public static final java.lang.String PHOTO = "data15";
-    field public static final java.lang.String PHOTO_FILE_ID = "data14";
+    field public static final String CONTENT_DIRECTORY = "photo";
+    field public static final String DISPLAY_PHOTO = "display_photo";
+    field public static final String PHOTO = "data15";
+    field public static final String PHOTO_FILE_ID = "data14";
   }
 
-  protected static abstract interface ContactsContract.ContactsColumns {
-    field public static final java.lang.String CONTACT_LAST_UPDATED_TIMESTAMP = "contact_last_updated_timestamp";
-    field public static final java.lang.String DISPLAY_NAME = "display_name";
-    field public static final java.lang.String HAS_PHONE_NUMBER = "has_phone_number";
-    field public static final java.lang.String IN_DEFAULT_DIRECTORY = "in_default_directory";
-    field public static final java.lang.String IN_VISIBLE_GROUP = "in_visible_group";
-    field public static final java.lang.String IS_USER_PROFILE = "is_user_profile";
-    field public static final java.lang.String LOOKUP_KEY = "lookup";
-    field public static final java.lang.String NAME_RAW_CONTACT_ID = "name_raw_contact_id";
-    field public static final java.lang.String PHOTO_FILE_ID = "photo_file_id";
-    field public static final java.lang.String PHOTO_ID = "photo_id";
-    field public static final java.lang.String PHOTO_THUMBNAIL_URI = "photo_thumb_uri";
-    field public static final java.lang.String PHOTO_URI = "photo_uri";
+  protected static interface ContactsContract.ContactsColumns {
+    field public static final String CONTACT_LAST_UPDATED_TIMESTAMP = "contact_last_updated_timestamp";
+    field public static final String DISPLAY_NAME = "display_name";
+    field public static final String HAS_PHONE_NUMBER = "has_phone_number";
+    field public static final String IN_DEFAULT_DIRECTORY = "in_default_directory";
+    field public static final String IN_VISIBLE_GROUP = "in_visible_group";
+    field public static final String IS_USER_PROFILE = "is_user_profile";
+    field public static final String LOOKUP_KEY = "lookup";
+    field public static final String NAME_RAW_CONTACT_ID = "name_raw_contact_id";
+    field public static final String PHOTO_FILE_ID = "photo_file_id";
+    field public static final String PHOTO_ID = "photo_id";
+    field public static final String PHOTO_THUMBNAIL_URI = "photo_thumb_uri";
+    field public static final String PHOTO_URI = "photo_uri";
   }
 
   public static final class ContactsContract.Data implements android.provider.ContactsContract.DataColumnsWithJoins {
     method public static android.net.Uri getContactLookupUri(android.content.ContentResolver, android.net.Uri);
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/data";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/data";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
-    field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
-    field public static final java.lang.String VISIBLE_CONTACTS_ONLY = "visible_contacts_only";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS";
+    field public static final String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES";
+    field public static final String VISIBLE_CONTACTS_ONLY = "visible_contacts_only";
   }
 
-  protected static abstract interface ContactsContract.DataColumns {
-    field public static final java.lang.String CARRIER_PRESENCE = "carrier_presence";
+  protected static interface ContactsContract.DataColumns {
+    field public static final String CARRIER_PRESENCE = "carrier_presence";
     field public static final int CARRIER_PRESENCE_VT_CAPABLE = 1; // 0x1
-    field public static final java.lang.String DATA1 = "data1";
-    field public static final java.lang.String DATA10 = "data10";
-    field public static final java.lang.String DATA11 = "data11";
-    field public static final java.lang.String DATA12 = "data12";
-    field public static final java.lang.String DATA13 = "data13";
-    field public static final java.lang.String DATA14 = "data14";
-    field public static final java.lang.String DATA15 = "data15";
-    field public static final java.lang.String DATA2 = "data2";
-    field public static final java.lang.String DATA3 = "data3";
-    field public static final java.lang.String DATA4 = "data4";
-    field public static final java.lang.String DATA5 = "data5";
-    field public static final java.lang.String DATA6 = "data6";
-    field public static final java.lang.String DATA7 = "data7";
-    field public static final java.lang.String DATA8 = "data8";
-    field public static final java.lang.String DATA9 = "data9";
-    field public static final java.lang.String DATA_VERSION = "data_version";
-    field public static final java.lang.String IS_PRIMARY = "is_primary";
-    field public static final java.lang.String IS_READ_ONLY = "is_read_only";
-    field public static final java.lang.String IS_SUPER_PRIMARY = "is_super_primary";
-    field public static final java.lang.String MIMETYPE = "mimetype";
-    field public static final java.lang.String PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME = "preferred_phone_account_component_name";
-    field public static final java.lang.String PREFERRED_PHONE_ACCOUNT_ID = "preferred_phone_account_id";
-    field public static final java.lang.String RAW_CONTACT_ID = "raw_contact_id";
-    field public static final java.lang.String RES_PACKAGE = "res_package";
-    field public static final java.lang.String SYNC1 = "data_sync1";
-    field public static final java.lang.String SYNC2 = "data_sync2";
-    field public static final java.lang.String SYNC3 = "data_sync3";
-    field public static final java.lang.String SYNC4 = "data_sync4";
+    field public static final String DATA1 = "data1";
+    field public static final String DATA10 = "data10";
+    field public static final String DATA11 = "data11";
+    field public static final String DATA12 = "data12";
+    field public static final String DATA13 = "data13";
+    field public static final String DATA14 = "data14";
+    field public static final String DATA15 = "data15";
+    field public static final String DATA2 = "data2";
+    field public static final String DATA3 = "data3";
+    field public static final String DATA4 = "data4";
+    field public static final String DATA5 = "data5";
+    field public static final String DATA6 = "data6";
+    field public static final String DATA7 = "data7";
+    field public static final String DATA8 = "data8";
+    field public static final String DATA9 = "data9";
+    field public static final String DATA_VERSION = "data_version";
+    field public static final String IS_PRIMARY = "is_primary";
+    field public static final String IS_READ_ONLY = "is_read_only";
+    field public static final String IS_SUPER_PRIMARY = "is_super_primary";
+    field public static final String MIMETYPE = "mimetype";
+    field public static final String PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME = "preferred_phone_account_component_name";
+    field public static final String PREFERRED_PHONE_ACCOUNT_ID = "preferred_phone_account_id";
+    field public static final String RAW_CONTACT_ID = "raw_contact_id";
+    field public static final String RES_PACKAGE = "res_package";
+    field public static final String SYNC1 = "data_sync1";
+    field public static final String SYNC2 = "data_sync2";
+    field public static final String SYNC3 = "data_sync3";
+    field public static final String SYNC4 = "data_sync4";
   }
 
-  protected static abstract interface ContactsContract.DataColumnsWithJoins implements android.provider.BaseColumns android.provider.ContactsContract.ContactNameColumns android.provider.ContactsContract.ContactOptionsColumns android.provider.ContactsContract.ContactStatusColumns android.provider.ContactsContract.ContactsColumns android.provider.ContactsContract.DataColumns android.provider.ContactsContract.DataUsageStatColumns android.provider.ContactsContract.RawContactsColumns android.provider.ContactsContract.StatusColumns {
+  protected static interface ContactsContract.DataColumnsWithJoins extends android.provider.BaseColumns android.provider.ContactsContract.ContactNameColumns android.provider.ContactsContract.ContactOptionsColumns android.provider.ContactsContract.ContactStatusColumns android.provider.ContactsContract.ContactsColumns android.provider.ContactsContract.DataColumns android.provider.ContactsContract.DataUsageStatColumns android.provider.ContactsContract.RawContactsColumns android.provider.ContactsContract.StatusColumns {
   }
 
-  public static final deprecated class ContactsContract.DataUsageFeedback {
-    ctor public ContactsContract.DataUsageFeedback();
-    field public static final android.net.Uri DELETE_USAGE_URI;
-    field public static final android.net.Uri FEEDBACK_URI;
-    field public static final java.lang.String USAGE_TYPE = "type";
-    field public static final java.lang.String USAGE_TYPE_CALL = "call";
-    field public static final java.lang.String USAGE_TYPE_LONG_TEXT = "long_text";
-    field public static final java.lang.String USAGE_TYPE_SHORT_TEXT = "short_text";
+  @Deprecated public static final class ContactsContract.DataUsageFeedback {
+    ctor @Deprecated public ContactsContract.DataUsageFeedback();
+    field @Deprecated public static final android.net.Uri DELETE_USAGE_URI;
+    field @Deprecated public static final android.net.Uri FEEDBACK_URI;
+    field @Deprecated public static final String USAGE_TYPE = "type";
+    field @Deprecated public static final String USAGE_TYPE_CALL = "call";
+    field @Deprecated public static final String USAGE_TYPE_LONG_TEXT = "long_text";
+    field @Deprecated public static final String USAGE_TYPE_SHORT_TEXT = "short_text";
   }
 
-  protected static abstract interface ContactsContract.DataUsageStatColumns {
-    field public static final deprecated java.lang.String LAST_TIME_USED = "last_time_used";
-    field public static final deprecated java.lang.String TIMES_USED = "times_used";
+  protected static interface ContactsContract.DataUsageStatColumns {
+    field @Deprecated public static final String LAST_TIME_USED = "last_time_used";
+    field @Deprecated public static final String TIMES_USED = "times_used";
   }
 
   public static final class ContactsContract.DeletedContacts implements android.provider.ContactsContract.DeletedContactsColumns {
@@ -37652,46 +37562,46 @@
     field public static final long DAYS_KEPT_MILLISECONDS = 2592000000L; // 0x9a7ec800L
   }
 
-  protected static abstract interface ContactsContract.DeletedContactsColumns {
-    field public static final java.lang.String CONTACT_DELETED_TIMESTAMP = "contact_deleted_timestamp";
-    field public static final java.lang.String CONTACT_ID = "contact_id";
+  protected static interface ContactsContract.DeletedContactsColumns {
+    field public static final String CONTACT_DELETED_TIMESTAMP = "contact_deleted_timestamp";
+    field public static final String CONTACT_ID = "contact_id";
   }
 
   public static final class ContactsContract.Directory implements android.provider.BaseColumns {
     method public static boolean isEnterpriseDirectoryId(long);
     method public static boolean isRemoteDirectoryId(long);
     method public static void notifyDirectoryChange(android.content.ContentResolver);
-    field public static final java.lang.String ACCOUNT_NAME = "accountName";
-    field public static final java.lang.String ACCOUNT_TYPE = "accountType";
-    field public static final java.lang.String CALLER_PACKAGE_PARAM_KEY = "callerPackage";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_directory";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/contact_directories";
+    field public static final String ACCOUNT_NAME = "accountName";
+    field public static final String ACCOUNT_TYPE = "accountType";
+    field public static final String CALLER_PACKAGE_PARAM_KEY = "callerPackage";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_directory";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact_directories";
     field public static final android.net.Uri CONTENT_URI;
     field public static final long DEFAULT = 0L; // 0x0L
-    field public static final java.lang.String DIRECTORY_AUTHORITY = "authority";
-    field public static final java.lang.String DISPLAY_NAME = "displayName";
+    field public static final String DIRECTORY_AUTHORITY = "authority";
+    field public static final String DISPLAY_NAME = "displayName";
     field public static final android.net.Uri ENTERPRISE_CONTENT_URI;
     field public static final long ENTERPRISE_DEFAULT = 1000000000L; // 0x3b9aca00L
     field public static final long ENTERPRISE_LOCAL_INVISIBLE = 1000000001L; // 0x3b9aca01L
-    field public static final java.lang.String EXPORT_SUPPORT = "exportSupport";
+    field public static final String EXPORT_SUPPORT = "exportSupport";
     field public static final int EXPORT_SUPPORT_ANY_ACCOUNT = 2; // 0x2
     field public static final int EXPORT_SUPPORT_NONE = 0; // 0x0
     field public static final int EXPORT_SUPPORT_SAME_ACCOUNT_ONLY = 1; // 0x1
     field public static final long LOCAL_INVISIBLE = 1L; // 0x1L
-    field public static final java.lang.String PACKAGE_NAME = "packageName";
-    field public static final java.lang.String PHOTO_SUPPORT = "photoSupport";
+    field public static final String PACKAGE_NAME = "packageName";
+    field public static final String PHOTO_SUPPORT = "photoSupport";
     field public static final int PHOTO_SUPPORT_FULL = 3; // 0x3
     field public static final int PHOTO_SUPPORT_FULL_SIZE_ONLY = 2; // 0x2
     field public static final int PHOTO_SUPPORT_NONE = 0; // 0x0
     field public static final int PHOTO_SUPPORT_THUMBNAIL_ONLY = 1; // 0x1
-    field public static final java.lang.String SHORTCUT_SUPPORT = "shortcutSupport";
+    field public static final String SHORTCUT_SUPPORT = "shortcutSupport";
     field public static final int SHORTCUT_SUPPORT_DATA_ITEMS_ONLY = 1; // 0x1
     field public static final int SHORTCUT_SUPPORT_FULL = 2; // 0x2
     field public static final int SHORTCUT_SUPPORT_NONE = 0; // 0x0
-    field public static final java.lang.String TYPE_RESOURCE_ID = "typeResourceId";
+    field public static final String TYPE_RESOURCE_ID = "typeResourceId";
   }
 
-  public static abstract interface ContactsContract.DisplayNameSources {
+  public static interface ContactsContract.DisplayNameSources {
     field public static final int EMAIL = 10; // 0xa
     field public static final int NICKNAME = 35; // 0x23
     field public static final int ORGANIZATION = 30; // 0x1e
@@ -37704,11 +37614,11 @@
   public static final class ContactsContract.DisplayPhoto {
     field public static final android.net.Uri CONTENT_MAX_DIMENSIONS_URI;
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DISPLAY_MAX_DIM = "display_max_dim";
-    field public static final java.lang.String THUMBNAIL_MAX_DIM = "thumbnail_max_dim";
+    field public static final String DISPLAY_MAX_DIM = "display_max_dim";
+    field public static final String THUMBNAIL_MAX_DIM = "thumbnail_max_dim";
   }
 
-  public static abstract interface ContactsContract.FullNameStyle {
+  public static interface ContactsContract.FullNameStyle {
     field public static final int CHINESE = 3; // 0x3
     field public static final int CJK = 2; // 0x2
     field public static final int JAPANESE = 4; // 0x4
@@ -37719,98 +37629,98 @@
 
   public static final class ContactsContract.Groups implements android.provider.BaseColumns android.provider.ContactsContract.GroupsColumns android.provider.ContactsContract.SyncColumns {
     method public static android.content.EntityIterator newEntityIterator(android.database.Cursor);
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/group";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/group";
     field public static final android.net.Uri CONTENT_SUMMARY_URI;
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/group";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/group";
     field public static final android.net.Uri CONTENT_URI;
   }
 
-  protected static abstract interface ContactsContract.GroupsColumns {
-    field public static final java.lang.String AUTO_ADD = "auto_add";
-    field public static final java.lang.String DATA_SET = "data_set";
-    field public static final java.lang.String DELETED = "deleted";
-    field public static final java.lang.String FAVORITES = "favorites";
-    field public static final java.lang.String GROUP_IS_READ_ONLY = "group_is_read_only";
-    field public static final java.lang.String GROUP_VISIBLE = "group_visible";
-    field public static final java.lang.String NOTES = "notes";
-    field public static final java.lang.String RES_PACKAGE = "res_package";
-    field public static final java.lang.String SHOULD_SYNC = "should_sync";
-    field public static final java.lang.String SUMMARY_COUNT = "summ_count";
-    field public static final java.lang.String SUMMARY_WITH_PHONES = "summ_phones";
-    field public static final java.lang.String SYSTEM_ID = "system_id";
-    field public static final java.lang.String TITLE = "title";
-    field public static final java.lang.String TITLE_RES = "title_res";
+  protected static interface ContactsContract.GroupsColumns {
+    field public static final String AUTO_ADD = "auto_add";
+    field public static final String DATA_SET = "data_set";
+    field public static final String DELETED = "deleted";
+    field public static final String FAVORITES = "favorites";
+    field public static final String GROUP_IS_READ_ONLY = "group_is_read_only";
+    field public static final String GROUP_VISIBLE = "group_visible";
+    field public static final String NOTES = "notes";
+    field public static final String RES_PACKAGE = "res_package";
+    field public static final String SHOULD_SYNC = "should_sync";
+    field public static final String SUMMARY_COUNT = "summ_count";
+    field public static final String SUMMARY_WITH_PHONES = "summ_phones";
+    field public static final String SYSTEM_ID = "system_id";
+    field public static final String TITLE = "title";
+    field public static final String TITLE_RES = "title_res";
   }
 
   public static final class ContactsContract.Intents {
     ctor public ContactsContract.Intents();
-    field public static final java.lang.String ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS = "android.provider.action.VOICE_SEND_MESSAGE_TO_CONTACTS";
-    field public static final java.lang.String ATTACH_IMAGE = "com.android.contacts.action.ATTACH_IMAGE";
-    field public static final java.lang.String CONTACTS_DATABASE_CREATED = "android.provider.Contacts.DATABASE_CREATED";
-    field public static final java.lang.String EXTRA_CREATE_DESCRIPTION = "com.android.contacts.action.CREATE_DESCRIPTION";
-    field public static final java.lang.String EXTRA_FORCE_CREATE = "com.android.contacts.action.FORCE_CREATE";
-    field public static final java.lang.String EXTRA_RECIPIENT_CONTACT_CHAT_ID = "android.provider.extra.RECIPIENT_CONTACT_CHAT_ID";
-    field public static final java.lang.String EXTRA_RECIPIENT_CONTACT_NAME = "android.provider.extra.RECIPIENT_CONTACT_NAME";
-    field public static final java.lang.String EXTRA_RECIPIENT_CONTACT_URI = "android.provider.extra.RECIPIENT_CONTACT_URI";
-    field public static final java.lang.String INVITE_CONTACT = "com.android.contacts.action.INVITE_CONTACT";
-    field public static final java.lang.String METADATA_ACCOUNT_TYPE = "android.provider.account_type";
-    field public static final java.lang.String METADATA_MIMETYPE = "android.provider.mimetype";
-    field public static final java.lang.String SEARCH_SUGGESTION_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_CLICKED";
-    field public static final java.lang.String SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED";
-    field public static final java.lang.String SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED";
-    field public static final java.lang.String SHOW_OR_CREATE_CONTACT = "com.android.contacts.action.SHOW_OR_CREATE_CONTACT";
+    field public static final String ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS = "android.provider.action.VOICE_SEND_MESSAGE_TO_CONTACTS";
+    field public static final String ATTACH_IMAGE = "com.android.contacts.action.ATTACH_IMAGE";
+    field public static final String CONTACTS_DATABASE_CREATED = "android.provider.Contacts.DATABASE_CREATED";
+    field public static final String EXTRA_CREATE_DESCRIPTION = "com.android.contacts.action.CREATE_DESCRIPTION";
+    field public static final String EXTRA_FORCE_CREATE = "com.android.contacts.action.FORCE_CREATE";
+    field public static final String EXTRA_RECIPIENT_CONTACT_CHAT_ID = "android.provider.extra.RECIPIENT_CONTACT_CHAT_ID";
+    field public static final String EXTRA_RECIPIENT_CONTACT_NAME = "android.provider.extra.RECIPIENT_CONTACT_NAME";
+    field public static final String EXTRA_RECIPIENT_CONTACT_URI = "android.provider.extra.RECIPIENT_CONTACT_URI";
+    field public static final String INVITE_CONTACT = "com.android.contacts.action.INVITE_CONTACT";
+    field public static final String METADATA_ACCOUNT_TYPE = "android.provider.account_type";
+    field public static final String METADATA_MIMETYPE = "android.provider.mimetype";
+    field public static final String SEARCH_SUGGESTION_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_CLICKED";
+    field public static final String SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED";
+    field public static final String SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED = "android.provider.Contacts.SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED";
+    field public static final String SHOW_OR_CREATE_CONTACT = "com.android.contacts.action.SHOW_OR_CREATE_CONTACT";
   }
 
   public static final class ContactsContract.Intents.Insert {
     ctor public ContactsContract.Intents.Insert();
-    field public static final java.lang.String ACTION = "android.intent.action.INSERT";
-    field public static final java.lang.String COMPANY = "company";
-    field public static final java.lang.String DATA = "data";
-    field public static final java.lang.String EMAIL = "email";
-    field public static final java.lang.String EMAIL_ISPRIMARY = "email_isprimary";
-    field public static final java.lang.String EMAIL_TYPE = "email_type";
-    field public static final java.lang.String EXTRA_ACCOUNT = "android.provider.extra.ACCOUNT";
-    field public static final java.lang.String EXTRA_DATA_SET = "android.provider.extra.DATA_SET";
-    field public static final java.lang.String FULL_MODE = "full_mode";
-    field public static final java.lang.String IM_HANDLE = "im_handle";
-    field public static final java.lang.String IM_ISPRIMARY = "im_isprimary";
-    field public static final java.lang.String IM_PROTOCOL = "im_protocol";
-    field public static final java.lang.String JOB_TITLE = "job_title";
-    field public static final java.lang.String NAME = "name";
-    field public static final java.lang.String NOTES = "notes";
-    field public static final java.lang.String PHONE = "phone";
-    field public static final java.lang.String PHONETIC_NAME = "phonetic_name";
-    field public static final java.lang.String PHONE_ISPRIMARY = "phone_isprimary";
-    field public static final java.lang.String PHONE_TYPE = "phone_type";
-    field public static final java.lang.String POSTAL = "postal";
-    field public static final java.lang.String POSTAL_ISPRIMARY = "postal_isprimary";
-    field public static final java.lang.String POSTAL_TYPE = "postal_type";
-    field public static final java.lang.String SECONDARY_EMAIL = "secondary_email";
-    field public static final java.lang.String SECONDARY_EMAIL_TYPE = "secondary_email_type";
-    field public static final java.lang.String SECONDARY_PHONE = "secondary_phone";
-    field public static final java.lang.String SECONDARY_PHONE_TYPE = "secondary_phone_type";
-    field public static final java.lang.String TERTIARY_EMAIL = "tertiary_email";
-    field public static final java.lang.String TERTIARY_EMAIL_TYPE = "tertiary_email_type";
-    field public static final java.lang.String TERTIARY_PHONE = "tertiary_phone";
-    field public static final java.lang.String TERTIARY_PHONE_TYPE = "tertiary_phone_type";
+    field public static final String ACTION = "android.intent.action.INSERT";
+    field public static final String COMPANY = "company";
+    field public static final String DATA = "data";
+    field public static final String EMAIL = "email";
+    field public static final String EMAIL_ISPRIMARY = "email_isprimary";
+    field public static final String EMAIL_TYPE = "email_type";
+    field public static final String EXTRA_ACCOUNT = "android.provider.extra.ACCOUNT";
+    field public static final String EXTRA_DATA_SET = "android.provider.extra.DATA_SET";
+    field public static final String FULL_MODE = "full_mode";
+    field public static final String IM_HANDLE = "im_handle";
+    field public static final String IM_ISPRIMARY = "im_isprimary";
+    field public static final String IM_PROTOCOL = "im_protocol";
+    field public static final String JOB_TITLE = "job_title";
+    field public static final String NAME = "name";
+    field public static final String NOTES = "notes";
+    field public static final String PHONE = "phone";
+    field public static final String PHONETIC_NAME = "phonetic_name";
+    field public static final String PHONE_ISPRIMARY = "phone_isprimary";
+    field public static final String PHONE_TYPE = "phone_type";
+    field public static final String POSTAL = "postal";
+    field public static final String POSTAL_ISPRIMARY = "postal_isprimary";
+    field public static final String POSTAL_TYPE = "postal_type";
+    field public static final String SECONDARY_EMAIL = "secondary_email";
+    field public static final String SECONDARY_EMAIL_TYPE = "secondary_email_type";
+    field public static final String SECONDARY_PHONE = "secondary_phone";
+    field public static final String SECONDARY_PHONE_TYPE = "secondary_phone_type";
+    field public static final String TERTIARY_EMAIL = "tertiary_email";
+    field public static final String TERTIARY_EMAIL_TYPE = "tertiary_email_type";
+    field public static final String TERTIARY_PHONE = "tertiary_phone";
+    field public static final String TERTIARY_PHONE_TYPE = "tertiary_phone_type";
   }
 
   public static final class ContactsContract.PhoneLookup implements android.provider.BaseColumns android.provider.ContactsContract.ContactNameColumns android.provider.ContactsContract.ContactOptionsColumns android.provider.ContactsContract.ContactsColumns android.provider.ContactsContract.PhoneLookupColumns {
     field public static final android.net.Uri CONTENT_FILTER_URI;
     field public static final android.net.Uri ENTERPRISE_CONTENT_FILTER_URI;
-    field public static final java.lang.String QUERY_PARAMETER_SIP_ADDRESS = "sip";
+    field public static final String QUERY_PARAMETER_SIP_ADDRESS = "sip";
   }
 
-  protected static abstract interface ContactsContract.PhoneLookupColumns {
-    field public static final java.lang.String CONTACT_ID = "contact_id";
-    field public static final java.lang.String DATA_ID = "data_id";
-    field public static final java.lang.String LABEL = "label";
-    field public static final java.lang.String NORMALIZED_NUMBER = "normalized_number";
-    field public static final java.lang.String NUMBER = "number";
-    field public static final java.lang.String TYPE = "type";
+  protected static interface ContactsContract.PhoneLookupColumns {
+    field public static final String CONTACT_ID = "contact_id";
+    field public static final String DATA_ID = "data_id";
+    field public static final String LABEL = "label";
+    field public static final String NORMALIZED_NUMBER = "normalized_number";
+    field public static final String NUMBER = "number";
+    field public static final String TYPE = "type";
   }
 
-  public static abstract interface ContactsContract.PhoneticNameStyle {
+  public static interface ContactsContract.PhoneticNameStyle {
     field public static final int JAPANESE = 4; // 0x4
     field public static final int KOREAN = 5; // 0x5
     field public static final int PINYIN = 3; // 0x3
@@ -37825,16 +37735,16 @@
     field public static final int UNPINNED = 0; // 0x0
   }
 
-  public static final deprecated class ContactsContract.Presence extends android.provider.ContactsContract.StatusUpdates {
-    ctor public ContactsContract.Presence();
+  @Deprecated public static final class ContactsContract.Presence extends android.provider.ContactsContract.StatusUpdates {
+    ctor @Deprecated public ContactsContract.Presence();
   }
 
-  protected static abstract interface ContactsContract.PresenceColumns {
-    field public static final java.lang.String CUSTOM_PROTOCOL = "custom_protocol";
-    field public static final java.lang.String DATA_ID = "presence_data_id";
-    field public static final java.lang.String IM_ACCOUNT = "im_account";
-    field public static final java.lang.String IM_HANDLE = "im_handle";
-    field public static final java.lang.String PROTOCOL = "protocol";
+  protected static interface ContactsContract.PresenceColumns {
+    field public static final String CUSTOM_PROTOCOL = "custom_protocol";
+    field public static final String DATA_ID = "presence_data_id";
+    field public static final String IM_ACCOUNT = "im_account";
+    field public static final String IM_HANDLE = "im_handle";
+    field public static final String PROTOCOL = "protocol";
   }
 
   public static final class ContactsContract.Profile implements android.provider.BaseColumns android.provider.ContactsContract.ContactNameColumns android.provider.ContactsContract.ContactOptionsColumns android.provider.ContactsContract.ContactStatusColumns android.provider.ContactsContract.ContactsColumns {
@@ -37846,18 +37756,18 @@
 
   public static final class ContactsContract.ProfileSyncState implements android.provider.SyncStateContract.Columns {
     method public static byte[] get(android.content.ContentProviderClient, android.accounts.Account) throws android.os.RemoteException;
-    method public static android.util.Pair<android.net.Uri, byte[]> getWithUri(android.content.ContentProviderClient, android.accounts.Account) throws android.os.RemoteException;
+    method public static android.util.Pair<android.net.Uri,byte[]> getWithUri(android.content.ContentProviderClient, android.accounts.Account) throws android.os.RemoteException;
     method public static android.content.ContentProviderOperation newSetOperation(android.accounts.Account, byte[]);
     method public static void set(android.content.ContentProviderClient, android.accounts.Account, byte[]) throws android.os.RemoteException;
-    field public static final java.lang.String CONTENT_DIRECTORY = "syncstate";
+    field public static final String CONTENT_DIRECTORY = "syncstate";
     field public static final android.net.Uri CONTENT_URI;
   }
 
   public static final class ContactsContract.ProviderStatus {
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/provider_status";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/provider_status";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DATABASE_CREATION_TIMESTAMP = "database_creation_timestamp";
-    field public static final java.lang.String STATUS = "status";
+    field public static final String DATABASE_CREATION_TIMESTAMP = "database_creation_timestamp";
+    field public static final String STATUS = "status";
     field public static final int STATUS_BUSY = 1; // 0x1
     field public static final int STATUS_EMPTY = 2; // 0x2
     field public static final int STATUS_NORMAL = 0; // 0x0
@@ -37865,14 +37775,14 @@
 
   public static final class ContactsContract.QuickContact {
     ctor public ContactsContract.QuickContact();
-    method public static void showQuickContact(android.content.Context, android.view.View, android.net.Uri, int, java.lang.String[]);
-    method public static void showQuickContact(android.content.Context, android.graphics.Rect, android.net.Uri, int, java.lang.String[]);
-    method public static void showQuickContact(android.content.Context, android.view.View, android.net.Uri, java.lang.String[], java.lang.String);
-    method public static void showQuickContact(android.content.Context, android.graphics.Rect, android.net.Uri, java.lang.String[], java.lang.String);
-    field public static final java.lang.String ACTION_QUICK_CONTACT = "android.provider.action.QUICK_CONTACT";
-    field public static final java.lang.String EXTRA_EXCLUDE_MIMES = "android.provider.extra.EXCLUDE_MIMES";
-    field public static final java.lang.String EXTRA_MODE = "android.provider.extra.MODE";
-    field public static final java.lang.String EXTRA_PRIORITIZED_MIMETYPE = "android.provider.extra.PRIORITIZED_MIMETYPE";
+    method public static void showQuickContact(android.content.Context, android.view.View, android.net.Uri, int, String[]);
+    method public static void showQuickContact(android.content.Context, android.graphics.Rect, android.net.Uri, int, String[]);
+    method public static void showQuickContact(android.content.Context, android.view.View, android.net.Uri, String[], String);
+    method public static void showQuickContact(android.content.Context, android.graphics.Rect, android.net.Uri, String[], String);
+    field public static final String ACTION_QUICK_CONTACT = "android.provider.action.QUICK_CONTACT";
+    field public static final String EXTRA_EXCLUDE_MIMES = "android.provider.extra.EXCLUDE_MIMES";
+    field public static final String EXTRA_MODE = "android.provider.extra.MODE";
+    field public static final String EXTRA_PRIORITIZED_MIMETYPE = "android.provider.extra.PRIORITIZED_MIMETYPE";
     field public static final int MODE_LARGE = 3; // 0x3
     field public static final int MODE_MEDIUM = 2; // 0x2
     field public static final int MODE_SMALL = 1; // 0x1
@@ -37883,186 +37793,186 @@
     method public static android.content.EntityIterator newEntityIterator(android.database.Cursor);
     field public static final int AGGREGATION_MODE_DEFAULT = 0; // 0x0
     field public static final int AGGREGATION_MODE_DISABLED = 3; // 0x3
-    field public static final deprecated int AGGREGATION_MODE_IMMEDIATE = 1; // 0x1
+    field @Deprecated public static final int AGGREGATION_MODE_IMMEDIATE = 1; // 0x1
     field public static final int AGGREGATION_MODE_SUSPENDED = 2; // 0x2
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/raw_contact";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/raw_contact";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/raw_contact";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/raw_contact";
     field public static final android.net.Uri CONTENT_URI;
   }
 
   public static final class ContactsContract.RawContacts.Data implements android.provider.BaseColumns android.provider.ContactsContract.DataColumns {
-    field public static final java.lang.String CONTENT_DIRECTORY = "data";
+    field public static final String CONTENT_DIRECTORY = "data";
   }
 
   public static final class ContactsContract.RawContacts.DisplayPhoto {
-    field public static final java.lang.String CONTENT_DIRECTORY = "display_photo";
+    field public static final String CONTENT_DIRECTORY = "display_photo";
   }
 
   public static final class ContactsContract.RawContacts.Entity implements android.provider.BaseColumns android.provider.ContactsContract.DataColumns {
-    field public static final java.lang.String CONTENT_DIRECTORY = "entity";
-    field public static final java.lang.String DATA_ID = "data_id";
+    field public static final String CONTENT_DIRECTORY = "entity";
+    field public static final String DATA_ID = "data_id";
   }
 
-  protected static abstract interface ContactsContract.RawContactsColumns {
-    field public static final java.lang.String ACCOUNT_TYPE_AND_DATA_SET = "account_type_and_data_set";
-    field public static final java.lang.String AGGREGATION_MODE = "aggregation_mode";
-    field public static final java.lang.String BACKUP_ID = "backup_id";
-    field public static final java.lang.String CONTACT_ID = "contact_id";
-    field public static final java.lang.String DATA_SET = "data_set";
-    field public static final java.lang.String DELETED = "deleted";
-    field public static final java.lang.String METADATA_DIRTY = "metadata_dirty";
-    field public static final java.lang.String RAW_CONTACT_IS_READ_ONLY = "raw_contact_is_read_only";
-    field public static final java.lang.String RAW_CONTACT_IS_USER_PROFILE = "raw_contact_is_user_profile";
+  protected static interface ContactsContract.RawContactsColumns {
+    field public static final String ACCOUNT_TYPE_AND_DATA_SET = "account_type_and_data_set";
+    field public static final String AGGREGATION_MODE = "aggregation_mode";
+    field public static final String BACKUP_ID = "backup_id";
+    field public static final String CONTACT_ID = "contact_id";
+    field public static final String DATA_SET = "data_set";
+    field public static final String DELETED = "deleted";
+    field public static final String METADATA_DIRTY = "metadata_dirty";
+    field public static final String RAW_CONTACT_IS_READ_ONLY = "raw_contact_is_read_only";
+    field public static final String RAW_CONTACT_IS_USER_PROFILE = "raw_contact_is_user_profile";
   }
 
   public static final class ContactsContract.RawContactsEntity implements android.provider.BaseColumns android.provider.ContactsContract.DataColumns android.provider.ContactsContract.RawContactsColumns {
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/raw_contact_entity";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/raw_contact_entity";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DATA_ID = "data_id";
+    field public static final String DATA_ID = "data_id";
     field public static final android.net.Uri PROFILE_CONTENT_URI;
   }
 
   public static class ContactsContract.SearchSnippets {
     ctor public ContactsContract.SearchSnippets();
-    field public static final java.lang.String DEFERRED_SNIPPETING_KEY = "deferred_snippeting";
-    field public static final java.lang.String SNIPPET = "snippet";
+    field public static final String DEFERRED_SNIPPETING_KEY = "deferred_snippeting";
+    field public static final String SNIPPET = "snippet";
   }
 
   public static final class ContactsContract.Settings implements android.provider.ContactsContract.SettingsColumns {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/setting";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/setting";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/setting";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/setting";
     field public static final android.net.Uri CONTENT_URI;
   }
 
-  protected static abstract interface ContactsContract.SettingsColumns {
-    field public static final java.lang.String ACCOUNT_NAME = "account_name";
-    field public static final java.lang.String ACCOUNT_TYPE = "account_type";
-    field public static final java.lang.String ANY_UNSYNCED = "any_unsynced";
-    field public static final java.lang.String DATA_SET = "data_set";
-    field public static final java.lang.String SHOULD_SYNC = "should_sync";
-    field public static final java.lang.String UNGROUPED_COUNT = "summ_count";
-    field public static final java.lang.String UNGROUPED_VISIBLE = "ungrouped_visible";
-    field public static final java.lang.String UNGROUPED_WITH_PHONES = "summ_phones";
+  protected static interface ContactsContract.SettingsColumns {
+    field public static final String ACCOUNT_NAME = "account_name";
+    field public static final String ACCOUNT_TYPE = "account_type";
+    field public static final String ANY_UNSYNCED = "any_unsynced";
+    field public static final String DATA_SET = "data_set";
+    field public static final String SHOULD_SYNC = "should_sync";
+    field public static final String UNGROUPED_COUNT = "summ_count";
+    field public static final String UNGROUPED_VISIBLE = "ungrouped_visible";
+    field public static final String UNGROUPED_WITH_PHONES = "summ_phones";
   }
 
-  protected static abstract interface ContactsContract.StatusColumns {
+  protected static interface ContactsContract.StatusColumns {
     field public static final int AVAILABLE = 5; // 0x5
     field public static final int AWAY = 2; // 0x2
     field public static final int CAPABILITY_HAS_CAMERA = 4; // 0x4
     field public static final int CAPABILITY_HAS_VIDEO = 2; // 0x2
     field public static final int CAPABILITY_HAS_VOICE = 1; // 0x1
-    field public static final java.lang.String CHAT_CAPABILITY = "chat_capability";
+    field public static final String CHAT_CAPABILITY = "chat_capability";
     field public static final int DO_NOT_DISTURB = 4; // 0x4
     field public static final int IDLE = 3; // 0x3
     field public static final int INVISIBLE = 1; // 0x1
     field public static final int OFFLINE = 0; // 0x0
-    field public static final java.lang.String PRESENCE = "mode";
-    field public static final deprecated java.lang.String PRESENCE_CUSTOM_STATUS = "status";
-    field public static final deprecated java.lang.String PRESENCE_STATUS = "mode";
-    field public static final java.lang.String STATUS = "status";
-    field public static final java.lang.String STATUS_ICON = "status_icon";
-    field public static final java.lang.String STATUS_LABEL = "status_label";
-    field public static final java.lang.String STATUS_RES_PACKAGE = "status_res_package";
-    field public static final java.lang.String STATUS_TIMESTAMP = "status_ts";
+    field public static final String PRESENCE = "mode";
+    field @Deprecated public static final String PRESENCE_CUSTOM_STATUS = "status";
+    field @Deprecated public static final String PRESENCE_STATUS = "mode";
+    field public static final String STATUS = "status";
+    field public static final String STATUS_ICON = "status_icon";
+    field public static final String STATUS_LABEL = "status_label";
+    field public static final String STATUS_RES_PACKAGE = "status_res_package";
+    field public static final String STATUS_TIMESTAMP = "status_ts";
   }
 
   public static class ContactsContract.StatusUpdates implements android.provider.ContactsContract.PresenceColumns android.provider.ContactsContract.StatusColumns {
     method public static final int getPresenceIconResourceId(int);
     method public static final int getPresencePrecedence(int);
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/status-update";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/status-update";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/status-update";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/status-update";
     field public static final android.net.Uri CONTENT_URI;
     field public static final android.net.Uri PROFILE_CONTENT_URI;
   }
 
-  protected static abstract interface ContactsContract.SyncColumns implements android.provider.ContactsContract.BaseSyncColumns {
-    field public static final java.lang.String ACCOUNT_NAME = "account_name";
-    field public static final java.lang.String ACCOUNT_TYPE = "account_type";
-    field public static final java.lang.String DIRTY = "dirty";
-    field public static final java.lang.String SOURCE_ID = "sourceid";
-    field public static final java.lang.String VERSION = "version";
+  protected static interface ContactsContract.SyncColumns extends android.provider.ContactsContract.BaseSyncColumns {
+    field public static final String ACCOUNT_NAME = "account_name";
+    field public static final String ACCOUNT_TYPE = "account_type";
+    field public static final String DIRTY = "dirty";
+    field public static final String SOURCE_ID = "sourceid";
+    field public static final String VERSION = "version";
   }
 
   public static final class ContactsContract.SyncState implements android.provider.SyncStateContract.Columns {
     method public static byte[] get(android.content.ContentProviderClient, android.accounts.Account) throws android.os.RemoteException;
-    method public static android.util.Pair<android.net.Uri, byte[]> getWithUri(android.content.ContentProviderClient, android.accounts.Account) throws android.os.RemoteException;
+    method public static android.util.Pair<android.net.Uri,byte[]> getWithUri(android.content.ContentProviderClient, android.accounts.Account) throws android.os.RemoteException;
     method public static android.content.ContentProviderOperation newSetOperation(android.accounts.Account, byte[]);
     method public static void set(android.content.ContentProviderClient, android.accounts.Account, byte[]) throws android.os.RemoteException;
-    field public static final java.lang.String CONTENT_DIRECTORY = "syncstate";
+    field public static final String CONTENT_DIRECTORY = "syncstate";
     field public static final android.net.Uri CONTENT_URI;
   }
 
   public final class DocumentsContract {
-    method public static android.net.Uri buildChildDocumentsUri(java.lang.String, java.lang.String);
-    method public static android.net.Uri buildChildDocumentsUriUsingTree(android.net.Uri, java.lang.String);
-    method public static android.net.Uri buildDocumentUri(java.lang.String, java.lang.String);
-    method public static android.net.Uri buildDocumentUriUsingTree(android.net.Uri, java.lang.String);
-    method public static android.net.Uri buildRecentDocumentsUri(java.lang.String, java.lang.String);
-    method public static android.net.Uri buildRootUri(java.lang.String, java.lang.String);
-    method public static android.net.Uri buildRootsUri(java.lang.String);
-    method public static android.net.Uri buildSearchDocumentsUri(java.lang.String, java.lang.String, java.lang.String);
-    method public static android.net.Uri buildTreeDocumentUri(java.lang.String, java.lang.String);
+    method public static android.net.Uri buildChildDocumentsUri(String, String);
+    method public static android.net.Uri buildChildDocumentsUriUsingTree(android.net.Uri, String);
+    method public static android.net.Uri buildDocumentUri(String, String);
+    method public static android.net.Uri buildDocumentUriUsingTree(android.net.Uri, String);
+    method public static android.net.Uri buildRecentDocumentsUri(String, String);
+    method public static android.net.Uri buildRootUri(String, String);
+    method public static android.net.Uri buildRootsUri(String);
+    method public static android.net.Uri buildSearchDocumentsUri(String, String, String);
+    method public static android.net.Uri buildTreeDocumentUri(String, String);
     method public static android.net.Uri copyDocument(android.content.ContentInterface, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static deprecated android.net.Uri copyDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static android.net.Uri createDocument(android.content.ContentInterface, android.net.Uri, java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
-    method public static deprecated android.net.Uri createDocument(android.content.ContentResolver, android.net.Uri, java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
+    method @Deprecated public static android.net.Uri copyDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
+    method public static android.net.Uri createDocument(android.content.ContentInterface, android.net.Uri, String, String) throws java.io.FileNotFoundException;
+    method @Deprecated public static android.net.Uri createDocument(android.content.ContentResolver, android.net.Uri, String, String) throws java.io.FileNotFoundException;
     method public static android.content.IntentSender createWebLinkIntent(android.content.ContentInterface, android.net.Uri, android.os.Bundle) throws java.io.FileNotFoundException;
-    method public static deprecated android.content.IntentSender createWebLinkIntent(android.content.ContentResolver, android.net.Uri, android.os.Bundle) throws java.io.FileNotFoundException;
+    method @Deprecated public static android.content.IntentSender createWebLinkIntent(android.content.ContentResolver, android.net.Uri, android.os.Bundle) throws java.io.FileNotFoundException;
     method public static boolean deleteDocument(android.content.ContentInterface, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static deprecated boolean deleteDocument(android.content.ContentResolver, android.net.Uri) throws java.io.FileNotFoundException;
+    method @Deprecated public static boolean deleteDocument(android.content.ContentResolver, android.net.Uri) throws java.io.FileNotFoundException;
     method public static void ejectRoot(android.content.ContentInterface, android.net.Uri);
-    method public static deprecated void ejectRoot(android.content.ContentResolver, android.net.Uri);
+    method @Deprecated public static void ejectRoot(android.content.ContentResolver, android.net.Uri);
     method public static android.provider.DocumentsContract.Path findDocumentPath(android.content.ContentInterface, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static deprecated android.provider.DocumentsContract.Path findDocumentPath(android.content.ContentResolver, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static java.lang.String getDocumentId(android.net.Uri);
+    method @Deprecated public static android.provider.DocumentsContract.Path findDocumentPath(android.content.ContentResolver, android.net.Uri) throws java.io.FileNotFoundException;
+    method public static String getDocumentId(android.net.Uri);
     method public static android.os.Bundle getDocumentMetadata(android.content.ContentInterface, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static deprecated android.os.Bundle getDocumentMetadata(android.content.ContentResolver, android.net.Uri) throws java.io.FileNotFoundException;
+    method @Deprecated public static android.os.Bundle getDocumentMetadata(android.content.ContentResolver, android.net.Uri) throws java.io.FileNotFoundException;
     method public static android.graphics.Bitmap getDocumentThumbnail(android.content.ContentInterface, android.net.Uri, android.graphics.Point, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public static deprecated android.graphics.Bitmap getDocumentThumbnail(android.content.ContentResolver, android.net.Uri, android.graphics.Point, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public static java.lang.String getRootId(android.net.Uri);
-    method public static java.lang.String getSearchDocumentsQuery(android.net.Uri);
-    method public static java.lang.String getTreeDocumentId(android.net.Uri);
+    method @Deprecated public static android.graphics.Bitmap getDocumentThumbnail(android.content.ContentResolver, android.net.Uri, android.graphics.Point, android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method public static String getRootId(android.net.Uri);
+    method public static String getSearchDocumentsQuery(android.net.Uri);
+    method public static String getTreeDocumentId(android.net.Uri);
     method public static boolean isChildDocument(android.content.ContentInterface, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static deprecated boolean isChildDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static boolean isDocumentUri(android.content.Context, android.net.Uri);
-    method public static boolean isRootUri(android.content.Context, android.net.Uri);
-    method public static boolean isRootsUri(android.content.Context, android.net.Uri);
+    method @Deprecated public static boolean isChildDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
+    method public static boolean isDocumentUri(android.content.Context, @Nullable android.net.Uri);
+    method public static boolean isRootUri(android.content.Context, @Nullable android.net.Uri);
+    method public static boolean isRootsUri(android.content.Context, @Nullable android.net.Uri);
     method public static boolean isTreeUri(android.net.Uri);
     method public static android.net.Uri moveDocument(android.content.ContentInterface, android.net.Uri, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static deprecated android.net.Uri moveDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
+    method @Deprecated public static android.net.Uri moveDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
     method public static boolean removeDocument(android.content.ContentInterface, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static deprecated boolean removeDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
-    method public static android.net.Uri renameDocument(android.content.ContentInterface, android.net.Uri, java.lang.String) throws java.io.FileNotFoundException;
-    method public static deprecated android.net.Uri renameDocument(android.content.ContentResolver, android.net.Uri, java.lang.String) throws java.io.FileNotFoundException;
-    field public static final java.lang.String ACTION_DOCUMENT_SETTINGS = "android.provider.action.DOCUMENT_SETTINGS";
-    field public static final java.lang.String EXTRA_ERROR = "error";
-    field public static final java.lang.String EXTRA_EXCLUDE_SELF = "android.provider.extra.EXCLUDE_SELF";
-    field public static final java.lang.String EXTRA_INFO = "info";
-    field public static final java.lang.String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI";
-    field public static final java.lang.String EXTRA_LOADING = "loading";
-    field public static final java.lang.String EXTRA_ORIENTATION = "android.provider.extra.ORIENTATION";
-    field public static final java.lang.String EXTRA_PROMPT = "android.provider.extra.PROMPT";
-    field public static final java.lang.String METADATA_EXIF = "android:documentExif";
-    field public static final java.lang.String METADATA_TREE_COUNT = "android:metadataTreeCount";
-    field public static final java.lang.String METADATA_TREE_SIZE = "android:metadataTreeSize";
-    field public static final java.lang.String METADATA_TYPES = "android:documentMetadataTypes";
-    field public static final java.lang.String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER";
-    field public static final java.lang.String QUERY_ARG_DISPLAY_NAME = "android:query-arg-display-name";
-    field public static final java.lang.String QUERY_ARG_EXCLUDE_MEDIA = "android:query-arg-exclude-media";
-    field public static final java.lang.String QUERY_ARG_FILE_SIZE_OVER = "android:query-arg-file-size-over";
-    field public static final java.lang.String QUERY_ARG_LAST_MODIFIED_AFTER = "android:query-arg-last-modified-after";
-    field public static final java.lang.String QUERY_ARG_MIME_TYPES = "android:query-arg-mime-types";
+    method @Deprecated public static boolean removeDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
+    method public static android.net.Uri renameDocument(android.content.ContentInterface, android.net.Uri, String) throws java.io.FileNotFoundException;
+    method @Deprecated public static android.net.Uri renameDocument(android.content.ContentResolver, android.net.Uri, String) throws java.io.FileNotFoundException;
+    field public static final String ACTION_DOCUMENT_SETTINGS = "android.provider.action.DOCUMENT_SETTINGS";
+    field public static final String EXTRA_ERROR = "error";
+    field public static final String EXTRA_EXCLUDE_SELF = "android.provider.extra.EXCLUDE_SELF";
+    field public static final String EXTRA_INFO = "info";
+    field public static final String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI";
+    field public static final String EXTRA_LOADING = "loading";
+    field public static final String EXTRA_ORIENTATION = "android.provider.extra.ORIENTATION";
+    field public static final String EXTRA_PROMPT = "android.provider.extra.PROMPT";
+    field public static final String METADATA_EXIF = "android:documentExif";
+    field public static final String METADATA_TREE_COUNT = "android:metadataTreeCount";
+    field public static final String METADATA_TREE_SIZE = "android:metadataTreeSize";
+    field public static final String METADATA_TYPES = "android:documentMetadataTypes";
+    field public static final String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER";
+    field public static final String QUERY_ARG_DISPLAY_NAME = "android:query-arg-display-name";
+    field public static final String QUERY_ARG_EXCLUDE_MEDIA = "android:query-arg-exclude-media";
+    field public static final String QUERY_ARG_FILE_SIZE_OVER = "android:query-arg-file-size-over";
+    field public static final String QUERY_ARG_LAST_MODIFIED_AFTER = "android:query-arg-last-modified-after";
+    field public static final String QUERY_ARG_MIME_TYPES = "android:query-arg-mime-types";
   }
 
   public static final class DocumentsContract.Document {
-    field public static final java.lang.String COLUMN_DISPLAY_NAME = "_display_name";
-    field public static final java.lang.String COLUMN_DOCUMENT_ID = "document_id";
-    field public static final java.lang.String COLUMN_FLAGS = "flags";
-    field public static final java.lang.String COLUMN_ICON = "icon";
-    field public static final java.lang.String COLUMN_LAST_MODIFIED = "last_modified";
-    field public static final java.lang.String COLUMN_MIME_TYPE = "mime_type";
-    field public static final java.lang.String COLUMN_SIZE = "_size";
-    field public static final java.lang.String COLUMN_SUMMARY = "summary";
+    field public static final String COLUMN_DISPLAY_NAME = "_display_name";
+    field public static final String COLUMN_DOCUMENT_ID = "document_id";
+    field public static final String COLUMN_FLAGS = "flags";
+    field public static final String COLUMN_ICON = "icon";
+    field public static final String COLUMN_LAST_MODIFIED = "last_modified";
+    field public static final String COLUMN_MIME_TYPE = "mime_type";
+    field public static final String COLUMN_SIZE = "_size";
+    field public static final String COLUMN_SUMMARY = "summary";
     field public static final int FLAG_DIR_PREFERS_GRID = 16; // 0x10
     field public static final int FLAG_DIR_PREFERS_LAST_MODIFIED = 32; // 0x20
     field public static final int FLAG_DIR_SUPPORTS_CREATE = 8; // 0x8
@@ -38078,28 +37988,28 @@
     field public static final int FLAG_SUPPORTS_WRITE = 2; // 0x2
     field public static final int FLAG_VIRTUAL_DOCUMENT = 512; // 0x200
     field public static final int FLAG_WEB_LINKABLE = 4096; // 0x1000
-    field public static final java.lang.String MIME_TYPE_DIR = "vnd.android.document/directory";
+    field public static final String MIME_TYPE_DIR = "vnd.android.document/directory";
   }
 
   public static final class DocumentsContract.Path implements android.os.Parcelable {
-    ctor public DocumentsContract.Path(java.lang.String, java.util.List<java.lang.String>);
+    ctor public DocumentsContract.Path(@Nullable String, java.util.List<java.lang.String>);
     method public int describeContents();
     method public java.util.List<java.lang.String> getPath();
-    method public java.lang.String getRootId();
+    method @Nullable public String getRootId();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.provider.DocumentsContract.Path> CREATOR;
   }
 
   public static final class DocumentsContract.Root {
-    field public static final java.lang.String COLUMN_AVAILABLE_BYTES = "available_bytes";
-    field public static final java.lang.String COLUMN_CAPACITY_BYTES = "capacity_bytes";
-    field public static final java.lang.String COLUMN_DOCUMENT_ID = "document_id";
-    field public static final java.lang.String COLUMN_FLAGS = "flags";
-    field public static final java.lang.String COLUMN_ICON = "icon";
-    field public static final java.lang.String COLUMN_MIME_TYPES = "mime_types";
-    field public static final java.lang.String COLUMN_ROOT_ID = "root_id";
-    field public static final java.lang.String COLUMN_SUMMARY = "summary";
-    field public static final java.lang.String COLUMN_TITLE = "title";
+    field public static final String COLUMN_AVAILABLE_BYTES = "available_bytes";
+    field public static final String COLUMN_CAPACITY_BYTES = "capacity_bytes";
+    field public static final String COLUMN_DOCUMENT_ID = "document_id";
+    field public static final String COLUMN_FLAGS = "flags";
+    field public static final String COLUMN_ICON = "icon";
+    field public static final String COLUMN_MIME_TYPES = "mime_types";
+    field public static final String COLUMN_ROOT_ID = "root_id";
+    field public static final String COLUMN_SUMMARY = "summary";
+    field public static final String COLUMN_TITLE = "title";
     field public static final int FLAG_EMPTY = 64; // 0x40
     field public static final int FLAG_LOCAL_ONLY = 2; // 0x2
     field public static final int FLAG_SUPPORTS_CREATE = 1; // 0x1
@@ -38107,80 +38017,80 @@
     field public static final int FLAG_SUPPORTS_IS_CHILD = 16; // 0x10
     field public static final int FLAG_SUPPORTS_RECENTS = 4; // 0x4
     field public static final int FLAG_SUPPORTS_SEARCH = 8; // 0x8
-    field public static final java.lang.String MIME_TYPE_ITEM = "vnd.android.document/root";
+    field public static final String MIME_TYPE_ITEM = "vnd.android.document/root";
   }
 
   public abstract class DocumentsProvider extends android.content.ContentProvider {
     ctor public DocumentsProvider();
-    method public java.lang.String copyDocument(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
-    method public java.lang.String createDocument(java.lang.String, java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
-    method public android.content.IntentSender createWebLinkIntent(java.lang.String, android.os.Bundle) throws java.io.FileNotFoundException;
-    method public final int delete(android.net.Uri, java.lang.String, java.lang.String[]);
-    method public void deleteDocument(java.lang.String) throws java.io.FileNotFoundException;
-    method public void ejectRoot(java.lang.String);
-    method public android.provider.DocumentsContract.Path findDocumentPath(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
-    method public android.os.Bundle getDocumentMetadata(java.lang.String) throws java.io.FileNotFoundException;
-    method public java.lang.String[] getDocumentStreamTypes(java.lang.String, java.lang.String);
-    method public java.lang.String getDocumentType(java.lang.String) throws java.io.FileNotFoundException;
-    method public final java.lang.String getType(android.net.Uri);
+    method public String copyDocument(String, String) throws java.io.FileNotFoundException;
+    method public String createDocument(String, String, String) throws java.io.FileNotFoundException;
+    method public android.content.IntentSender createWebLinkIntent(String, @Nullable android.os.Bundle) throws java.io.FileNotFoundException;
+    method public final int delete(android.net.Uri, String, String[]);
+    method public void deleteDocument(String) throws java.io.FileNotFoundException;
+    method public void ejectRoot(String);
+    method public android.provider.DocumentsContract.Path findDocumentPath(@Nullable String, String) throws java.io.FileNotFoundException;
+    method @Nullable public android.os.Bundle getDocumentMetadata(String) throws java.io.FileNotFoundException;
+    method public String[] getDocumentStreamTypes(String, String);
+    method public String getDocumentType(String) throws java.io.FileNotFoundException;
+    method public final String getType(android.net.Uri);
     method public final android.net.Uri insert(android.net.Uri, android.content.ContentValues);
-    method public boolean isChildDocument(java.lang.String, java.lang.String);
-    method public java.lang.String moveDocument(java.lang.String, java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
-    method public final android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException;
-    method public final android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public abstract android.os.ParcelFileDescriptor openDocument(java.lang.String, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public android.content.res.AssetFileDescriptor openDocumentThumbnail(java.lang.String, android.graphics.Point, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public final android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException;
-    method public final android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public final android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle) throws java.io.FileNotFoundException;
-    method public final android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public android.content.res.AssetFileDescriptor openTypedDocument(java.lang.String, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public final android.database.Cursor query(android.net.Uri, java.lang.String[], android.os.Bundle, android.os.CancellationSignal);
-    method public abstract android.database.Cursor queryChildDocuments(java.lang.String, java.lang.String[], java.lang.String) throws java.io.FileNotFoundException;
-    method public android.database.Cursor queryChildDocuments(java.lang.String, java.lang.String[], android.os.Bundle) throws java.io.FileNotFoundException;
-    method public abstract android.database.Cursor queryDocument(java.lang.String, java.lang.String[]) throws java.io.FileNotFoundException;
-    method public android.database.Cursor queryRecentDocuments(java.lang.String, java.lang.String[]) throws java.io.FileNotFoundException;
-    method public android.database.Cursor queryRecentDocuments(java.lang.String, java.lang.String[], android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException;
-    method public abstract android.database.Cursor queryRoots(java.lang.String[]) throws java.io.FileNotFoundException;
-    method public android.database.Cursor querySearchDocuments(java.lang.String, java.lang.String, java.lang.String[]) throws java.io.FileNotFoundException;
-    method public android.database.Cursor querySearchDocuments(java.lang.String, java.lang.String[], android.os.Bundle) throws java.io.FileNotFoundException;
-    method public void removeDocument(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
-    method public java.lang.String renameDocument(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
-    method public final void revokeDocumentPermission(java.lang.String);
-    method public final int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
+    method public boolean isChildDocument(String, String);
+    method public String moveDocument(String, String, String) throws java.io.FileNotFoundException;
+    method public final android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, String) throws java.io.FileNotFoundException;
+    method public final android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri, String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method public abstract android.os.ParcelFileDescriptor openDocument(String, String, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method public android.content.res.AssetFileDescriptor openDocumentThumbnail(String, android.graphics.Point, android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method public final android.os.ParcelFileDescriptor openFile(android.net.Uri, String) throws java.io.FileNotFoundException;
+    method public final android.os.ParcelFileDescriptor openFile(android.net.Uri, String, android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method public final android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, String, android.os.Bundle) throws java.io.FileNotFoundException;
+    method public final android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method public android.content.res.AssetFileDescriptor openTypedDocument(String, String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method public final android.database.Cursor query(android.net.Uri, String[], String, String[], String);
+    method public final android.database.Cursor query(android.net.Uri, String[], android.os.Bundle, android.os.CancellationSignal);
+    method public abstract android.database.Cursor queryChildDocuments(String, String[], String) throws java.io.FileNotFoundException;
+    method public android.database.Cursor queryChildDocuments(String, @Nullable String[], @Nullable android.os.Bundle) throws java.io.FileNotFoundException;
+    method public abstract android.database.Cursor queryDocument(String, String[]) throws java.io.FileNotFoundException;
+    method public android.database.Cursor queryRecentDocuments(String, String[]) throws java.io.FileNotFoundException;
+    method public android.database.Cursor queryRecentDocuments(String, String[], @Nullable android.os.Bundle, @Nullable android.os.CancellationSignal) throws java.io.FileNotFoundException;
+    method public abstract android.database.Cursor queryRoots(String[]) throws java.io.FileNotFoundException;
+    method public android.database.Cursor querySearchDocuments(String, String, String[]) throws java.io.FileNotFoundException;
+    method public android.database.Cursor querySearchDocuments(String, String[], android.os.Bundle) throws java.io.FileNotFoundException;
+    method public void removeDocument(String, String) throws java.io.FileNotFoundException;
+    method public String renameDocument(String, String) throws java.io.FileNotFoundException;
+    method public final void revokeDocumentPermission(String);
+    method public final int update(android.net.Uri, android.content.ContentValues, String, String[]);
   }
 
   public final class FontRequest {
-    ctor public FontRequest(java.lang.String, java.lang.String, java.lang.String);
-    ctor public FontRequest(java.lang.String, java.lang.String, java.lang.String, java.util.List<java.util.List<byte[]>>);
+    ctor public FontRequest(@NonNull String, @NonNull String, @NonNull String);
+    ctor public FontRequest(@NonNull String, @NonNull String, @NonNull String, @NonNull java.util.List<java.util.List<byte[]>>);
     method public java.util.List<java.util.List<byte[]>> getCertificates();
-    method public java.lang.String getProviderAuthority();
-    method public java.lang.String getProviderPackage();
-    method public java.lang.String getQuery();
+    method public String getProviderAuthority();
+    method public String getProviderPackage();
+    method public String getQuery();
   }
 
   public class FontsContract {
-    method public static android.graphics.Typeface buildTypeface(android.content.Context, android.os.CancellationSignal, android.provider.FontsContract.FontInfo[]);
-    method public static android.provider.FontsContract.FontFamilyResult fetchFonts(android.content.Context, android.os.CancellationSignal, android.provider.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public static void requestFonts(android.content.Context, android.provider.FontRequest, android.os.Handler, android.os.CancellationSignal, android.provider.FontsContract.FontRequestCallback);
+    method public static android.graphics.Typeface buildTypeface(@NonNull android.content.Context, @Nullable android.os.CancellationSignal, @NonNull android.provider.FontsContract.FontInfo[]);
+    method @NonNull public static android.provider.FontsContract.FontFamilyResult fetchFonts(@NonNull android.content.Context, @Nullable android.os.CancellationSignal, @NonNull android.provider.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public static void requestFonts(@NonNull android.content.Context, @NonNull android.provider.FontRequest, @NonNull android.os.Handler, @Nullable android.os.CancellationSignal, @NonNull android.provider.FontsContract.FontRequestCallback);
   }
 
   public static final class FontsContract.Columns implements android.provider.BaseColumns {
-    field public static final java.lang.String FILE_ID = "file_id";
-    field public static final java.lang.String ITALIC = "font_italic";
-    field public static final java.lang.String RESULT_CODE = "result_code";
+    field public static final String FILE_ID = "file_id";
+    field public static final String ITALIC = "font_italic";
+    field public static final String RESULT_CODE = "result_code";
     field public static final int RESULT_CODE_FONT_NOT_FOUND = 1; // 0x1
     field public static final int RESULT_CODE_FONT_UNAVAILABLE = 2; // 0x2
     field public static final int RESULT_CODE_MALFORMED_QUERY = 3; // 0x3
     field public static final int RESULT_CODE_OK = 0; // 0x0
-    field public static final java.lang.String TTC_INDEX = "font_ttc_index";
-    field public static final java.lang.String VARIATION_SETTINGS = "font_variation_settings";
-    field public static final java.lang.String WEIGHT = "font_weight";
+    field public static final String TTC_INDEX = "font_ttc_index";
+    field public static final String VARIATION_SETTINGS = "font_variation_settings";
+    field public static final String WEIGHT = "font_weight";
   }
 
   public static class FontsContract.FontFamilyResult {
-    method public android.provider.FontsContract.FontInfo[] getFonts();
+    method @NonNull public android.provider.FontsContract.FontInfo[] getFonts();
     method public int getStatusCode();
     field public static final int STATUS_OK = 0; // 0x0
     field public static final int STATUS_REJECTED = 3; // 0x3
@@ -38189,11 +38099,11 @@
   }
 
   public static class FontsContract.FontInfo {
-    method public android.graphics.fonts.FontVariationAxis[] getAxes();
+    method @Nullable public android.graphics.fonts.FontVariationAxis[] getAxes();
     method public int getResultCode();
-    method public int getTtcIndex();
-    method public android.net.Uri getUri();
-    method public int getWeight();
+    method @IntRange(from=0) public int getTtcIndex();
+    method @NonNull public android.net.Uri getUri();
+    method @IntRange(from=1, to=1000) public int getWeight();
     method public boolean isItalic();
   }
 
@@ -38209,404 +38119,404 @@
     field public static final int FAIL_REASON_WRONG_CERTIFICATES = -2; // 0xfffffffe
   }
 
-  public final deprecated class LiveFolders implements android.provider.BaseColumns {
-    field public static final java.lang.String ACTION_CREATE_LIVE_FOLDER = "android.intent.action.CREATE_LIVE_FOLDER";
-    field public static final java.lang.String DESCRIPTION = "description";
-    field public static final int DISPLAY_MODE_GRID = 1; // 0x1
-    field public static final int DISPLAY_MODE_LIST = 2; // 0x2
-    field public static final java.lang.String EXTRA_LIVE_FOLDER_BASE_INTENT = "android.intent.extra.livefolder.BASE_INTENT";
-    field public static final java.lang.String EXTRA_LIVE_FOLDER_DISPLAY_MODE = "android.intent.extra.livefolder.DISPLAY_MODE";
-    field public static final java.lang.String EXTRA_LIVE_FOLDER_ICON = "android.intent.extra.livefolder.ICON";
-    field public static final java.lang.String EXTRA_LIVE_FOLDER_NAME = "android.intent.extra.livefolder.NAME";
-    field public static final java.lang.String ICON_BITMAP = "icon_bitmap";
-    field public static final java.lang.String ICON_PACKAGE = "icon_package";
-    field public static final java.lang.String ICON_RESOURCE = "icon_resource";
-    field public static final java.lang.String INTENT = "intent";
-    field public static final java.lang.String NAME = "name";
+  @Deprecated public final class LiveFolders implements android.provider.BaseColumns {
+    field @Deprecated public static final String ACTION_CREATE_LIVE_FOLDER = "android.intent.action.CREATE_LIVE_FOLDER";
+    field @Deprecated public static final String DESCRIPTION = "description";
+    field @Deprecated public static final int DISPLAY_MODE_GRID = 1; // 0x1
+    field @Deprecated public static final int DISPLAY_MODE_LIST = 2; // 0x2
+    field @Deprecated public static final String EXTRA_LIVE_FOLDER_BASE_INTENT = "android.intent.extra.livefolder.BASE_INTENT";
+    field @Deprecated public static final String EXTRA_LIVE_FOLDER_DISPLAY_MODE = "android.intent.extra.livefolder.DISPLAY_MODE";
+    field @Deprecated public static final String EXTRA_LIVE_FOLDER_ICON = "android.intent.extra.livefolder.ICON";
+    field @Deprecated public static final String EXTRA_LIVE_FOLDER_NAME = "android.intent.extra.livefolder.NAME";
+    field @Deprecated public static final String ICON_BITMAP = "icon_bitmap";
+    field @Deprecated public static final String ICON_PACKAGE = "icon_package";
+    field @Deprecated public static final String ICON_RESOURCE = "icon_resource";
+    field @Deprecated public static final String INTENT = "intent";
+    field @Deprecated public static final String NAME = "name";
   }
 
   public final class MediaStore {
     ctor public MediaStore();
-    method public static android.net.Uri createPending(android.content.Context, android.provider.MediaStore.PendingParams);
-    method public static java.util.Set<java.lang.String> getAllVolumeNames(android.content.Context);
+    method @NonNull public static android.net.Uri createPending(@NonNull android.content.Context, @NonNull android.provider.MediaStore.PendingParams);
+    method @NonNull public static java.util.Set<java.lang.String> getAllVolumeNames(android.content.Context);
     method public static android.net.Uri getDocumentUri(android.content.Context, android.net.Uri);
     method public static android.net.Uri getMediaScannerUri();
     method public static android.net.Uri getMediaUri(android.content.Context, android.net.Uri);
-    method public static java.lang.String getVersion(android.content.Context);
-    method public static java.lang.String getVolumeName(android.net.Uri);
-    method public static android.provider.MediaStore.PendingSession openPending(android.content.Context, android.net.Uri);
-    method public static android.net.Uri setIncludePending(android.net.Uri);
-    method public static android.net.Uri setIncludeTrashed(android.net.Uri);
-    method public static android.net.Uri setRequireOriginal(android.net.Uri);
-    method public static void trash(android.content.Context, android.net.Uri);
-    method public static void trash(android.content.Context, android.net.Uri, long);
-    method public static void untrash(android.content.Context, android.net.Uri);
-    field public static final java.lang.String ACTION_IMAGE_CAPTURE = "android.media.action.IMAGE_CAPTURE";
-    field public static final java.lang.String ACTION_IMAGE_CAPTURE_SECURE = "android.media.action.IMAGE_CAPTURE_SECURE";
-    field public static final java.lang.String ACTION_REVIEW = "android.provider.action.REVIEW";
-    field public static final java.lang.String ACTION_REVIEW_SECURE = "android.provider.action.REVIEW_SECURE";
-    field public static final java.lang.String ACTION_VIDEO_CAPTURE = "android.media.action.VIDEO_CAPTURE";
-    field public static final java.lang.String AUTHORITY = "media";
+    method public static String getVersion(android.content.Context);
+    method @NonNull public static String getVolumeName(@NonNull android.net.Uri);
+    method @NonNull public static android.provider.MediaStore.PendingSession openPending(@NonNull android.content.Context, @NonNull android.net.Uri);
+    method @NonNull public static android.net.Uri setIncludePending(@NonNull android.net.Uri);
+    method @NonNull public static android.net.Uri setIncludeTrashed(@NonNull android.net.Uri);
+    method @NonNull public static android.net.Uri setRequireOriginal(@NonNull android.net.Uri);
+    method public static void trash(@NonNull android.content.Context, @NonNull android.net.Uri);
+    method public static void trash(@NonNull android.content.Context, @NonNull android.net.Uri, long);
+    method public static void untrash(@NonNull android.content.Context, @NonNull android.net.Uri);
+    field public static final String ACTION_IMAGE_CAPTURE = "android.media.action.IMAGE_CAPTURE";
+    field public static final String ACTION_IMAGE_CAPTURE_SECURE = "android.media.action.IMAGE_CAPTURE_SECURE";
+    field public static final String ACTION_REVIEW = "android.provider.action.REVIEW";
+    field public static final String ACTION_REVIEW_SECURE = "android.provider.action.REVIEW_SECURE";
+    field public static final String ACTION_VIDEO_CAPTURE = "android.media.action.VIDEO_CAPTURE";
+    field public static final String AUTHORITY = "media";
     field public static final android.net.Uri AUTHORITY_URI;
-    field public static final java.lang.String EXTRA_BRIGHTNESS = "android.provider.extra.BRIGHTNESS";
-    field public static final java.lang.String EXTRA_DURATION_LIMIT = "android.intent.extra.durationLimit";
-    field public static final java.lang.String EXTRA_FINISH_ON_COMPLETION = "android.intent.extra.finishOnCompletion";
-    field public static final java.lang.String EXTRA_FULL_SCREEN = "android.intent.extra.fullScreen";
-    field public static final java.lang.String EXTRA_MEDIA_ALBUM = "android.intent.extra.album";
-    field public static final java.lang.String EXTRA_MEDIA_ARTIST = "android.intent.extra.artist";
-    field public static final java.lang.String EXTRA_MEDIA_FOCUS = "android.intent.extra.focus";
-    field public static final java.lang.String EXTRA_MEDIA_GENRE = "android.intent.extra.genre";
-    field public static final java.lang.String EXTRA_MEDIA_PLAYLIST = "android.intent.extra.playlist";
-    field public static final java.lang.String EXTRA_MEDIA_RADIO_CHANNEL = "android.intent.extra.radio_channel";
-    field public static final java.lang.String EXTRA_MEDIA_TITLE = "android.intent.extra.title";
-    field public static final java.lang.String EXTRA_OUTPUT = "output";
-    field public static final java.lang.String EXTRA_SCREEN_ORIENTATION = "android.intent.extra.screenOrientation";
-    field public static final java.lang.String EXTRA_SHOW_ACTION_ICONS = "android.intent.extra.showActionIcons";
-    field public static final java.lang.String EXTRA_SIZE_LIMIT = "android.intent.extra.sizeLimit";
-    field public static final java.lang.String EXTRA_VIDEO_QUALITY = "android.intent.extra.videoQuality";
-    field public static final java.lang.String INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH = "android.media.action.MEDIA_PLAY_FROM_SEARCH";
-    field public static final java.lang.String INTENT_ACTION_MEDIA_SEARCH = "android.intent.action.MEDIA_SEARCH";
-    field public static final deprecated java.lang.String INTENT_ACTION_MUSIC_PLAYER = "android.intent.action.MUSIC_PLAYER";
-    field public static final java.lang.String INTENT_ACTION_STILL_IMAGE_CAMERA = "android.media.action.STILL_IMAGE_CAMERA";
-    field public static final java.lang.String INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE = "android.media.action.STILL_IMAGE_CAMERA_SECURE";
-    field public static final java.lang.String INTENT_ACTION_TEXT_OPEN_FROM_SEARCH = "android.media.action.TEXT_OPEN_FROM_SEARCH";
-    field public static final java.lang.String INTENT_ACTION_VIDEO_CAMERA = "android.media.action.VIDEO_CAMERA";
-    field public static final java.lang.String INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH = "android.media.action.VIDEO_PLAY_FROM_SEARCH";
-    field public static final java.lang.String MEDIA_IGNORE_FILENAME = ".nomedia";
-    field public static final java.lang.String MEDIA_SCANNER_VOLUME = "volume";
-    field public static final java.lang.String META_DATA_STILL_IMAGE_CAMERA_PREWARM_SERVICE = "android.media.still_image_camera_preview_service";
-    field public static final java.lang.String UNKNOWN_STRING = "<unknown>";
+    field public static final String EXTRA_BRIGHTNESS = "android.provider.extra.BRIGHTNESS";
+    field public static final String EXTRA_DURATION_LIMIT = "android.intent.extra.durationLimit";
+    field public static final String EXTRA_FINISH_ON_COMPLETION = "android.intent.extra.finishOnCompletion";
+    field public static final String EXTRA_FULL_SCREEN = "android.intent.extra.fullScreen";
+    field public static final String EXTRA_MEDIA_ALBUM = "android.intent.extra.album";
+    field public static final String EXTRA_MEDIA_ARTIST = "android.intent.extra.artist";
+    field public static final String EXTRA_MEDIA_FOCUS = "android.intent.extra.focus";
+    field public static final String EXTRA_MEDIA_GENRE = "android.intent.extra.genre";
+    field public static final String EXTRA_MEDIA_PLAYLIST = "android.intent.extra.playlist";
+    field public static final String EXTRA_MEDIA_RADIO_CHANNEL = "android.intent.extra.radio_channel";
+    field public static final String EXTRA_MEDIA_TITLE = "android.intent.extra.title";
+    field public static final String EXTRA_OUTPUT = "output";
+    field public static final String EXTRA_SCREEN_ORIENTATION = "android.intent.extra.screenOrientation";
+    field public static final String EXTRA_SHOW_ACTION_ICONS = "android.intent.extra.showActionIcons";
+    field public static final String EXTRA_SIZE_LIMIT = "android.intent.extra.sizeLimit";
+    field public static final String EXTRA_VIDEO_QUALITY = "android.intent.extra.videoQuality";
+    field public static final String INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH = "android.media.action.MEDIA_PLAY_FROM_SEARCH";
+    field public static final String INTENT_ACTION_MEDIA_SEARCH = "android.intent.action.MEDIA_SEARCH";
+    field @Deprecated public static final String INTENT_ACTION_MUSIC_PLAYER = "android.intent.action.MUSIC_PLAYER";
+    field public static final String INTENT_ACTION_STILL_IMAGE_CAMERA = "android.media.action.STILL_IMAGE_CAMERA";
+    field public static final String INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE = "android.media.action.STILL_IMAGE_CAMERA_SECURE";
+    field public static final String INTENT_ACTION_TEXT_OPEN_FROM_SEARCH = "android.media.action.TEXT_OPEN_FROM_SEARCH";
+    field public static final String INTENT_ACTION_VIDEO_CAMERA = "android.media.action.VIDEO_CAMERA";
+    field public static final String INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH = "android.media.action.VIDEO_PLAY_FROM_SEARCH";
+    field public static final String MEDIA_IGNORE_FILENAME = ".nomedia";
+    field public static final String MEDIA_SCANNER_VOLUME = "volume";
+    field public static final String META_DATA_STILL_IMAGE_CAMERA_PREWARM_SERVICE = "android.media.still_image_camera_preview_service";
+    field public static final String UNKNOWN_STRING = "<unknown>";
   }
 
   public static final class MediaStore.Audio {
     ctor public MediaStore.Audio();
-    method public static java.lang.String keyFor(java.lang.String);
+    method public static String keyFor(String);
   }
 
-  public static abstract interface MediaStore.Audio.AlbumColumns {
-    field public static final java.lang.String ALBUM = "album";
-    field public static final deprecated java.lang.String ALBUM_ART = "album_art";
-    field public static final java.lang.String ALBUM_ID = "album_id";
-    field public static final java.lang.String ALBUM_KEY = "album_key";
-    field public static final java.lang.String ARTIST = "artist";
-    field public static final java.lang.String FIRST_YEAR = "minyear";
-    field public static final java.lang.String LAST_YEAR = "maxyear";
-    field public static final java.lang.String NUMBER_OF_SONGS = "numsongs";
-    field public static final java.lang.String NUMBER_OF_SONGS_FOR_ARTIST = "numsongs_by_artist";
+  public static interface MediaStore.Audio.AlbumColumns {
+    field public static final String ALBUM = "album";
+    field @Deprecated public static final String ALBUM_ART = "album_art";
+    field public static final String ALBUM_ID = "album_id";
+    field public static final String ALBUM_KEY = "album_key";
+    field public static final String ARTIST = "artist";
+    field public static final String FIRST_YEAR = "minyear";
+    field public static final String LAST_YEAR = "maxyear";
+    field public static final String NUMBER_OF_SONGS = "numsongs";
+    field public static final String NUMBER_OF_SONGS_FOR_ARTIST = "numsongs_by_artist";
   }
 
   public static final class MediaStore.Audio.Albums implements android.provider.BaseColumns android.provider.MediaStore.Audio.AlbumColumns {
     ctor public MediaStore.Audio.Albums();
-    method public static android.net.Uri getContentUri(java.lang.String);
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/albums";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "album_key";
-    field public static final java.lang.String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/album";
+    method public static android.net.Uri getContentUri(String);
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/albums";
+    field public static final String DEFAULT_SORT_ORDER = "album_key";
+    field public static final String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/album";
     field public static final android.net.Uri EXTERNAL_CONTENT_URI;
     field public static final android.net.Uri INTERNAL_CONTENT_URI;
   }
 
-  public static abstract interface MediaStore.Audio.ArtistColumns {
-    field public static final java.lang.String ARTIST = "artist";
-    field public static final java.lang.String ARTIST_KEY = "artist_key";
-    field public static final java.lang.String NUMBER_OF_ALBUMS = "number_of_albums";
-    field public static final java.lang.String NUMBER_OF_TRACKS = "number_of_tracks";
+  public static interface MediaStore.Audio.ArtistColumns {
+    field public static final String ARTIST = "artist";
+    field public static final String ARTIST_KEY = "artist_key";
+    field public static final String NUMBER_OF_ALBUMS = "number_of_albums";
+    field public static final String NUMBER_OF_TRACKS = "number_of_tracks";
   }
 
   public static final class MediaStore.Audio.Artists implements android.provider.BaseColumns android.provider.MediaStore.Audio.ArtistColumns {
     ctor public MediaStore.Audio.Artists();
-    method public static android.net.Uri getContentUri(java.lang.String);
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/artists";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "artist_key";
-    field public static final java.lang.String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/artist";
+    method public static android.net.Uri getContentUri(String);
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/artists";
+    field public static final String DEFAULT_SORT_ORDER = "artist_key";
+    field public static final String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/artist";
     field public static final android.net.Uri EXTERNAL_CONTENT_URI;
     field public static final android.net.Uri INTERNAL_CONTENT_URI;
   }
 
   public static final class MediaStore.Audio.Artists.Albums implements android.provider.MediaStore.Audio.AlbumColumns {
     ctor public MediaStore.Audio.Artists.Albums();
-    method public static android.net.Uri getContentUri(java.lang.String, long);
+    method public static android.net.Uri getContentUri(String, long);
   }
 
-  public static abstract interface MediaStore.Audio.AudioColumns implements android.provider.MediaStore.MediaColumns {
-    field public static final java.lang.String ALBUM = "album";
-    field public static final java.lang.String ALBUM_ID = "album_id";
-    field public static final java.lang.String ALBUM_KEY = "album_key";
-    field public static final java.lang.String ARTIST = "artist";
-    field public static final java.lang.String ARTIST_ID = "artist_id";
-    field public static final java.lang.String ARTIST_KEY = "artist_key";
-    field public static final java.lang.String BOOKMARK = "bookmark";
-    field public static final java.lang.String COMPOSER = "composer";
-    field public static final java.lang.String DURATION = "duration";
-    field public static final java.lang.String IS_ALARM = "is_alarm";
-    field public static final java.lang.String IS_AUDIOBOOK = "is_audiobook";
-    field public static final java.lang.String IS_MUSIC = "is_music";
-    field public static final java.lang.String IS_NOTIFICATION = "is_notification";
-    field public static final java.lang.String IS_PODCAST = "is_podcast";
-    field public static final java.lang.String IS_RINGTONE = "is_ringtone";
-    field public static final java.lang.String TITLE_KEY = "title_key";
-    field public static final java.lang.String TRACK = "track";
-    field public static final java.lang.String YEAR = "year";
+  public static interface MediaStore.Audio.AudioColumns extends android.provider.MediaStore.MediaColumns {
+    field public static final String ALBUM = "album";
+    field public static final String ALBUM_ID = "album_id";
+    field public static final String ALBUM_KEY = "album_key";
+    field public static final String ARTIST = "artist";
+    field public static final String ARTIST_ID = "artist_id";
+    field public static final String ARTIST_KEY = "artist_key";
+    field public static final String BOOKMARK = "bookmark";
+    field public static final String COMPOSER = "composer";
+    field public static final String DURATION = "duration";
+    field public static final String IS_ALARM = "is_alarm";
+    field public static final String IS_AUDIOBOOK = "is_audiobook";
+    field public static final String IS_MUSIC = "is_music";
+    field public static final String IS_NOTIFICATION = "is_notification";
+    field public static final String IS_PODCAST = "is_podcast";
+    field public static final String IS_RINGTONE = "is_ringtone";
+    field public static final String TITLE_KEY = "title_key";
+    field public static final String TRACK = "track";
+    field public static final String YEAR = "year";
   }
 
   public static final class MediaStore.Audio.Genres implements android.provider.BaseColumns android.provider.MediaStore.Audio.GenresColumns {
     ctor public MediaStore.Audio.Genres();
-    method public static android.net.Uri getContentUri(java.lang.String);
-    method public static android.net.Uri getContentUriForAudioId(java.lang.String, int);
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/genre";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "name";
-    field public static final java.lang.String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/genre";
+    method public static android.net.Uri getContentUri(String);
+    method public static android.net.Uri getContentUriForAudioId(String, int);
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/genre";
+    field public static final String DEFAULT_SORT_ORDER = "name";
+    field public static final String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/genre";
     field public static final android.net.Uri EXTERNAL_CONTENT_URI;
     field public static final android.net.Uri INTERNAL_CONTENT_URI;
   }
 
   public static final class MediaStore.Audio.Genres.Members implements android.provider.MediaStore.Audio.AudioColumns {
     ctor public MediaStore.Audio.Genres.Members();
-    method public static android.net.Uri getContentUri(java.lang.String, long);
-    field public static final java.lang.String AUDIO_ID = "audio_id";
-    field public static final java.lang.String CONTENT_DIRECTORY = "members";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "title_key";
-    field public static final java.lang.String GENRE_ID = "genre_id";
+    method public static android.net.Uri getContentUri(String, long);
+    field public static final String AUDIO_ID = "audio_id";
+    field public static final String CONTENT_DIRECTORY = "members";
+    field public static final String DEFAULT_SORT_ORDER = "title_key";
+    field public static final String GENRE_ID = "genre_id";
   }
 
-  public static abstract interface MediaStore.Audio.GenresColumns {
-    field public static final java.lang.String NAME = "name";
+  public static interface MediaStore.Audio.GenresColumns {
+    field public static final String NAME = "name";
   }
 
   public static final class MediaStore.Audio.Media implements android.provider.MediaStore.Audio.AudioColumns {
     ctor public MediaStore.Audio.Media();
-    method public static android.net.Uri getContentUri(java.lang.String);
-    method public static deprecated android.net.Uri getContentUriForPath(java.lang.String);
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/audio";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "title_key";
-    field public static final java.lang.String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/audio";
+    method public static android.net.Uri getContentUri(String);
+    method @Deprecated @Nullable public static android.net.Uri getContentUriForPath(@NonNull String);
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/audio";
+    field public static final String DEFAULT_SORT_ORDER = "title_key";
+    field public static final String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/audio";
     field public static final android.net.Uri EXTERNAL_CONTENT_URI;
-    field public static final java.lang.String EXTRA_MAX_BYTES = "android.provider.MediaStore.extra.MAX_BYTES";
+    field public static final String EXTRA_MAX_BYTES = "android.provider.MediaStore.extra.MAX_BYTES";
     field public static final android.net.Uri INTERNAL_CONTENT_URI;
-    field public static final java.lang.String RECORD_SOUND_ACTION = "android.provider.MediaStore.RECORD_SOUND";
+    field public static final String RECORD_SOUND_ACTION = "android.provider.MediaStore.RECORD_SOUND";
   }
 
   public static final class MediaStore.Audio.Playlists implements android.provider.BaseColumns android.provider.MediaStore.Audio.PlaylistsColumns {
     ctor public MediaStore.Audio.Playlists();
-    method public static android.net.Uri getContentUri(java.lang.String);
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/playlist";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "name";
-    field public static final java.lang.String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/playlist";
+    method public static android.net.Uri getContentUri(String);
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/playlist";
+    field public static final String DEFAULT_SORT_ORDER = "name";
+    field public static final String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/playlist";
     field public static final android.net.Uri EXTERNAL_CONTENT_URI;
     field public static final android.net.Uri INTERNAL_CONTENT_URI;
   }
 
   public static final class MediaStore.Audio.Playlists.Members implements android.provider.MediaStore.Audio.AudioColumns {
     ctor public MediaStore.Audio.Playlists.Members();
-    method public static android.net.Uri getContentUri(java.lang.String, long);
+    method public static android.net.Uri getContentUri(String, long);
     method public static boolean moveItem(android.content.ContentResolver, long, int, int);
-    field public static final java.lang.String AUDIO_ID = "audio_id";
-    field public static final java.lang.String CONTENT_DIRECTORY = "members";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "play_order";
-    field public static final java.lang.String PLAYLIST_ID = "playlist_id";
-    field public static final java.lang.String PLAY_ORDER = "play_order";
-    field public static final java.lang.String _ID = "_id";
+    field public static final String AUDIO_ID = "audio_id";
+    field public static final String CONTENT_DIRECTORY = "members";
+    field public static final String DEFAULT_SORT_ORDER = "play_order";
+    field public static final String PLAYLIST_ID = "playlist_id";
+    field public static final String PLAY_ORDER = "play_order";
+    field public static final String _ID = "_id";
   }
 
-  public static abstract interface MediaStore.Audio.PlaylistsColumns {
-    field public static final deprecated java.lang.String DATA = "_data";
-    field public static final java.lang.String DATE_ADDED = "date_added";
-    field public static final java.lang.String DATE_MODIFIED = "date_modified";
-    field public static final java.lang.String NAME = "name";
+  public static interface MediaStore.Audio.PlaylistsColumns {
+    field @Deprecated public static final String DATA = "_data";
+    field public static final String DATE_ADDED = "date_added";
+    field public static final String DATE_MODIFIED = "date_modified";
+    field public static final String NAME = "name";
   }
 
   public static final class MediaStore.Audio.Radio {
-    field public static final java.lang.String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/radio";
+    field public static final String ENTRY_CONTENT_TYPE = "vnd.android.cursor.item/radio";
   }
 
-  public static abstract interface MediaStore.DownloadColumns implements android.provider.MediaStore.MediaColumns {
-    field public static final java.lang.String DESCRIPTION = "description";
-    field public static final java.lang.String DOWNLOAD_URI = "download_uri";
-    field public static final java.lang.String REFERER_URI = "referer_uri";
+  public static interface MediaStore.DownloadColumns extends android.provider.MediaStore.MediaColumns {
+    field public static final String DESCRIPTION = "description";
+    field public static final String DOWNLOAD_URI = "download_uri";
+    field public static final String REFERER_URI = "referer_uri";
   }
 
   public static final class MediaStore.Downloads implements android.provider.MediaStore.DownloadColumns {
-    method public static android.net.Uri getContentUri(java.lang.String);
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/download";
+    method public static android.net.Uri getContentUri(String);
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/download";
     field public static final android.net.Uri EXTERNAL_CONTENT_URI;
     field public static final android.net.Uri INTERNAL_CONTENT_URI;
   }
 
   public static final class MediaStore.Files {
     ctor public MediaStore.Files();
-    method public static android.net.Uri getContentUri(java.lang.String);
-    method public static android.net.Uri getContentUri(java.lang.String, long);
+    method public static android.net.Uri getContentUri(String);
+    method public static android.net.Uri getContentUri(String, long);
   }
 
-  public static abstract interface MediaStore.Files.FileColumns implements android.provider.MediaStore.MediaColumns {
-    field public static final java.lang.String MEDIA_TYPE = "media_type";
+  public static interface MediaStore.Files.FileColumns extends android.provider.MediaStore.MediaColumns {
+    field public static final String MEDIA_TYPE = "media_type";
     field public static final int MEDIA_TYPE_AUDIO = 2; // 0x2
     field public static final int MEDIA_TYPE_IMAGE = 1; // 0x1
     field public static final int MEDIA_TYPE_NONE = 0; // 0x0
     field public static final int MEDIA_TYPE_PLAYLIST = 4; // 0x4
     field public static final int MEDIA_TYPE_VIDEO = 3; // 0x3
-    field public static final java.lang.String MIME_TYPE = "mime_type";
-    field public static final java.lang.String PARENT = "parent";
-    field public static final java.lang.String TITLE = "title";
+    field public static final String MIME_TYPE = "mime_type";
+    field public static final String PARENT = "parent";
+    field public static final String TITLE = "title";
   }
 
   public static final class MediaStore.Images {
     ctor public MediaStore.Images();
   }
 
-  public static abstract interface MediaStore.Images.ImageColumns implements android.provider.MediaStore.MediaColumns {
-    field public static final java.lang.String BUCKET_DISPLAY_NAME = "bucket_display_name";
-    field public static final java.lang.String BUCKET_ID = "bucket_id";
-    field public static final java.lang.String DATE_TAKEN = "datetaken";
-    field public static final java.lang.String DESCRIPTION = "description";
-    field public static final java.lang.String IS_PRIVATE = "isprivate";
-    field public static final deprecated java.lang.String LATITUDE = "latitude";
-    field public static final deprecated java.lang.String LONGITUDE = "longitude";
-    field public static final deprecated java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic";
-    field public static final java.lang.String ORIENTATION = "orientation";
-    field public static final deprecated java.lang.String PICASA_ID = "picasa_id";
-    field public static final java.lang.String SECONDARY_BUCKET_ID = "secondary_bucket_id";
+  public static interface MediaStore.Images.ImageColumns extends android.provider.MediaStore.MediaColumns {
+    field public static final String BUCKET_DISPLAY_NAME = "bucket_display_name";
+    field public static final String BUCKET_ID = "bucket_id";
+    field public static final String DATE_TAKEN = "datetaken";
+    field public static final String DESCRIPTION = "description";
+    field public static final String IS_PRIVATE = "isprivate";
+    field @Deprecated public static final String LATITUDE = "latitude";
+    field @Deprecated public static final String LONGITUDE = "longitude";
+    field @Deprecated public static final String MINI_THUMB_MAGIC = "mini_thumb_magic";
+    field public static final String ORIENTATION = "orientation";
+    field @Deprecated public static final String PICASA_ID = "picasa_id";
+    field public static final String SECONDARY_BUCKET_ID = "secondary_bucket_id";
   }
 
   public static final class MediaStore.Images.Media implements android.provider.MediaStore.Images.ImageColumns {
     ctor public MediaStore.Images.Media();
     method public static android.graphics.Bitmap getBitmap(android.content.ContentResolver, android.net.Uri) throws java.io.FileNotFoundException, java.io.IOException;
-    method public static android.net.Uri getContentUri(java.lang.String);
-    method public static java.lang.String insertImage(android.content.ContentResolver, java.lang.String, java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
-    method public static java.lang.String insertImage(android.content.ContentResolver, android.graphics.Bitmap, java.lang.String, java.lang.String);
-    method public static android.database.Cursor query(android.content.ContentResolver, android.net.Uri, java.lang.String[]);
-    method public static android.database.Cursor query(android.content.ContentResolver, android.net.Uri, java.lang.String[], java.lang.String, java.lang.String);
-    method public static android.database.Cursor query(android.content.ContentResolver, android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/image";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "bucket_display_name";
+    method public static android.net.Uri getContentUri(String);
+    method public static String insertImage(android.content.ContentResolver, String, String, String) throws java.io.FileNotFoundException;
+    method public static String insertImage(android.content.ContentResolver, android.graphics.Bitmap, String, String);
+    method public static android.database.Cursor query(android.content.ContentResolver, android.net.Uri, String[]);
+    method public static android.database.Cursor query(android.content.ContentResolver, android.net.Uri, String[], String, String);
+    method public static android.database.Cursor query(android.content.ContentResolver, android.net.Uri, String[], String, String[], String);
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/image";
+    field public static final String DEFAULT_SORT_ORDER = "bucket_display_name";
     field public static final android.net.Uri EXTERNAL_CONTENT_URI;
     field public static final android.net.Uri INTERNAL_CONTENT_URI;
   }
 
   public static class MediaStore.Images.Thumbnails implements android.provider.BaseColumns {
     ctor public MediaStore.Images.Thumbnails();
-    method public static deprecated void cancelThumbnailRequest(android.content.ContentResolver, long);
-    method public static deprecated void cancelThumbnailRequest(android.content.ContentResolver, long, long);
-    method public static android.net.Uri getContentUri(java.lang.String);
-    method public static deprecated android.graphics.Bitmap getThumbnail(android.content.ContentResolver, long, int, android.graphics.BitmapFactory.Options);
-    method public static deprecated android.graphics.Bitmap getThumbnail(android.content.ContentResolver, long, long, int, android.graphics.BitmapFactory.Options);
-    method public static final android.database.Cursor query(android.content.ContentResolver, android.net.Uri, java.lang.String[]);
-    method public static final android.database.Cursor queryMiniThumbnail(android.content.ContentResolver, long, int, java.lang.String[]);
-    method public static final android.database.Cursor queryMiniThumbnails(android.content.ContentResolver, android.net.Uri, int, java.lang.String[]);
-    field public static final deprecated java.lang.String DATA = "_data";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "image_id ASC";
+    method @Deprecated public static void cancelThumbnailRequest(android.content.ContentResolver, long);
+    method @Deprecated public static void cancelThumbnailRequest(android.content.ContentResolver, long, long);
+    method public static android.net.Uri getContentUri(String);
+    method @Deprecated public static android.graphics.Bitmap getThumbnail(android.content.ContentResolver, long, int, android.graphics.BitmapFactory.Options);
+    method @Deprecated public static android.graphics.Bitmap getThumbnail(android.content.ContentResolver, long, long, int, android.graphics.BitmapFactory.Options);
+    method public static final android.database.Cursor query(android.content.ContentResolver, android.net.Uri, String[]);
+    method public static final android.database.Cursor queryMiniThumbnail(android.content.ContentResolver, long, int, String[]);
+    method public static final android.database.Cursor queryMiniThumbnails(android.content.ContentResolver, android.net.Uri, int, String[]);
+    field @Deprecated public static final String DATA = "_data";
+    field public static final String DEFAULT_SORT_ORDER = "image_id ASC";
     field public static final android.net.Uri EXTERNAL_CONTENT_URI;
     field public static final int FULL_SCREEN_KIND = 2; // 0x2
-    field public static final java.lang.String HEIGHT = "height";
-    field public static final java.lang.String IMAGE_ID = "image_id";
+    field public static final String HEIGHT = "height";
+    field public static final String IMAGE_ID = "image_id";
     field public static final android.net.Uri INTERNAL_CONTENT_URI;
-    field public static final java.lang.String KIND = "kind";
+    field public static final String KIND = "kind";
     field public static final int MICRO_KIND = 3; // 0x3
     field public static final int MINI_KIND = 1; // 0x1
-    field public static final java.lang.String THUMB_DATA = "thumb_data";
-    field public static final java.lang.String WIDTH = "width";
+    field public static final String THUMB_DATA = "thumb_data";
+    field public static final String WIDTH = "width";
   }
 
-  public static abstract interface MediaStore.MediaColumns implements android.provider.BaseColumns {
-    field public static final deprecated java.lang.String DATA = "_data";
-    field public static final java.lang.String DATE_ADDED = "date_added";
-    field public static final java.lang.String DATE_EXPIRES = "date_expires";
-    field public static final java.lang.String DATE_MODIFIED = "date_modified";
-    field public static final java.lang.String DISPLAY_NAME = "_display_name";
-    field public static final java.lang.String HASH = "_hash";
-    field public static final java.lang.String HEIGHT = "height";
-    field public static final java.lang.String IS_PENDING = "is_pending";
-    field public static final java.lang.String IS_TRASHED = "is_trashed";
-    field public static final java.lang.String MIME_TYPE = "mime_type";
-    field public static final java.lang.String OWNER_PACKAGE_NAME = "owner_package_name";
-    field public static final java.lang.String SIZE = "_size";
-    field public static final java.lang.String TITLE = "title";
-    field public static final java.lang.String WIDTH = "width";
+  public static interface MediaStore.MediaColumns extends android.provider.BaseColumns {
+    field @Deprecated public static final String DATA = "_data";
+    field public static final String DATE_ADDED = "date_added";
+    field public static final String DATE_EXPIRES = "date_expires";
+    field public static final String DATE_MODIFIED = "date_modified";
+    field public static final String DISPLAY_NAME = "_display_name";
+    field public static final String HASH = "_hash";
+    field public static final String HEIGHT = "height";
+    field public static final String IS_PENDING = "is_pending";
+    field public static final String IS_TRASHED = "is_trashed";
+    field public static final String MIME_TYPE = "mime_type";
+    field public static final String OWNER_PACKAGE_NAME = "owner_package_name";
+    field public static final String SIZE = "_size";
+    field public static final String TITLE = "title";
+    field public static final String WIDTH = "width";
   }
 
   public static class MediaStore.PendingParams {
-    ctor public MediaStore.PendingParams(android.net.Uri, java.lang.String, java.lang.String);
-    method public void setDownloadUri(android.net.Uri);
-    method public void setPrimaryDirectory(java.lang.String);
-    method public void setRefererUri(android.net.Uri);
-    method public void setSecondaryDirectory(java.lang.String);
+    ctor public MediaStore.PendingParams(@NonNull android.net.Uri, @NonNull String, @NonNull String);
+    method public void setDownloadUri(@Nullable android.net.Uri);
+    method public void setPrimaryDirectory(@Nullable String);
+    method public void setRefererUri(@Nullable android.net.Uri);
+    method public void setSecondaryDirectory(@Nullable String);
   }
 
   public static class MediaStore.PendingSession implements java.lang.AutoCloseable {
     method public void abandon();
     method public void close();
-    method public void notifyProgress(int);
-    method public android.os.ParcelFileDescriptor open() throws java.io.FileNotFoundException;
-    method public java.io.OutputStream openOutputStream() throws java.io.FileNotFoundException;
-    method public android.net.Uri publish();
+    method public void notifyProgress(@IntRange(from=0, to=100) int);
+    method @NonNull public android.os.ParcelFileDescriptor open() throws java.io.FileNotFoundException;
+    method @NonNull public java.io.OutputStream openOutputStream() throws java.io.FileNotFoundException;
+    method @NonNull public android.net.Uri publish();
   }
 
   public static final class MediaStore.Video {
     ctor public MediaStore.Video();
-    method public static android.database.Cursor query(android.content.ContentResolver, android.net.Uri, java.lang.String[]);
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "_display_name";
+    method public static android.database.Cursor query(android.content.ContentResolver, android.net.Uri, String[]);
+    field public static final String DEFAULT_SORT_ORDER = "_display_name";
   }
 
   public static final class MediaStore.Video.Media implements android.provider.MediaStore.Video.VideoColumns {
     ctor public MediaStore.Video.Media();
-    method public static android.net.Uri getContentUri(java.lang.String);
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/video";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "title";
+    method public static android.net.Uri getContentUri(String);
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/video";
+    field public static final String DEFAULT_SORT_ORDER = "title";
     field public static final android.net.Uri EXTERNAL_CONTENT_URI;
     field public static final android.net.Uri INTERNAL_CONTENT_URI;
   }
 
   public static class MediaStore.Video.Thumbnails implements android.provider.BaseColumns {
     ctor public MediaStore.Video.Thumbnails();
-    method public static deprecated void cancelThumbnailRequest(android.content.ContentResolver, long);
-    method public static deprecated void cancelThumbnailRequest(android.content.ContentResolver, long, long);
-    method public static android.net.Uri getContentUri(java.lang.String);
-    method public static deprecated android.graphics.Bitmap getThumbnail(android.content.ContentResolver, long, int, android.graphics.BitmapFactory.Options);
-    method public static deprecated android.graphics.Bitmap getThumbnail(android.content.ContentResolver, long, long, int, android.graphics.BitmapFactory.Options);
-    field public static final deprecated java.lang.String DATA = "_data";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "video_id ASC";
+    method @Deprecated public static void cancelThumbnailRequest(android.content.ContentResolver, long);
+    method @Deprecated public static void cancelThumbnailRequest(android.content.ContentResolver, long, long);
+    method public static android.net.Uri getContentUri(String);
+    method @Deprecated public static android.graphics.Bitmap getThumbnail(android.content.ContentResolver, long, int, android.graphics.BitmapFactory.Options);
+    method @Deprecated public static android.graphics.Bitmap getThumbnail(android.content.ContentResolver, long, long, int, android.graphics.BitmapFactory.Options);
+    field @Deprecated public static final String DATA = "_data";
+    field public static final String DEFAULT_SORT_ORDER = "video_id ASC";
     field public static final android.net.Uri EXTERNAL_CONTENT_URI;
     field public static final int FULL_SCREEN_KIND = 2; // 0x2
-    field public static final java.lang.String HEIGHT = "height";
+    field public static final String HEIGHT = "height";
     field public static final android.net.Uri INTERNAL_CONTENT_URI;
-    field public static final java.lang.String KIND = "kind";
+    field public static final String KIND = "kind";
     field public static final int MICRO_KIND = 3; // 0x3
     field public static final int MINI_KIND = 1; // 0x1
-    field public static final java.lang.String VIDEO_ID = "video_id";
-    field public static final java.lang.String WIDTH = "width";
+    field public static final String VIDEO_ID = "video_id";
+    field public static final String WIDTH = "width";
   }
 
-  public static abstract interface MediaStore.Video.VideoColumns implements android.provider.MediaStore.MediaColumns {
-    field public static final java.lang.String ALBUM = "album";
-    field public static final java.lang.String ARTIST = "artist";
-    field public static final java.lang.String BOOKMARK = "bookmark";
-    field public static final java.lang.String BUCKET_DISPLAY_NAME = "bucket_display_name";
-    field public static final java.lang.String BUCKET_ID = "bucket_id";
-    field public static final java.lang.String CATEGORY = "category";
-    field public static final java.lang.String DATE_TAKEN = "datetaken";
-    field public static final java.lang.String DESCRIPTION = "description";
-    field public static final java.lang.String DURATION = "duration";
-    field public static final java.lang.String IS_PRIVATE = "isprivate";
-    field public static final java.lang.String LANGUAGE = "language";
-    field public static final deprecated java.lang.String LATITUDE = "latitude";
-    field public static final deprecated java.lang.String LONGITUDE = "longitude";
-    field public static final deprecated java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic";
-    field public static final java.lang.String RESOLUTION = "resolution";
-    field public static final java.lang.String SECONDARY_BUCKET_ID = "secondary_bucket_id";
-    field public static final java.lang.String TAGS = "tags";
+  public static interface MediaStore.Video.VideoColumns extends android.provider.MediaStore.MediaColumns {
+    field public static final String ALBUM = "album";
+    field public static final String ARTIST = "artist";
+    field public static final String BOOKMARK = "bookmark";
+    field public static final String BUCKET_DISPLAY_NAME = "bucket_display_name";
+    field public static final String BUCKET_ID = "bucket_id";
+    field public static final String CATEGORY = "category";
+    field public static final String DATE_TAKEN = "datetaken";
+    field public static final String DESCRIPTION = "description";
+    field public static final String DURATION = "duration";
+    field public static final String IS_PRIVATE = "isprivate";
+    field public static final String LANGUAGE = "language";
+    field @Deprecated public static final String LATITUDE = "latitude";
+    field @Deprecated public static final String LONGITUDE = "longitude";
+    field @Deprecated public static final String MINI_THUMB_MAGIC = "mini_thumb_magic";
+    field public static final String RESOLUTION = "resolution";
+    field public static final String SECONDARY_BUCKET_ID = "secondary_bucket_id";
+    field public static final String TAGS = "tags";
   }
 
-  public abstract interface OpenableColumns {
-    field public static final java.lang.String DISPLAY_NAME = "_display_name";
-    field public static final java.lang.String SIZE = "_size";
+  public interface OpenableColumns {
+    field public static final String DISPLAY_NAME = "_display_name";
+    field public static final String SIZE = "_size";
   }
 
   public class SearchRecentSuggestions {
-    ctor public SearchRecentSuggestions(android.content.Context, java.lang.String, int);
+    ctor public SearchRecentSuggestions(android.content.Context, String, int);
     method public void clearHistory();
-    method public void saveRecentQuery(java.lang.String, java.lang.String);
+    method public void saveRecentQuery(String, String);
     method protected void truncateHistory(android.content.ContentResolver, int);
-    field public static final java.lang.String[] QUERIES_PROJECTION_1LINE;
-    field public static final java.lang.String[] QUERIES_PROJECTION_2LINE;
+    field public static final String[] QUERIES_PROJECTION_1LINE;
+    field public static final String[] QUERIES_PROJECTION_2LINE;
     field public static final int QUERIES_PROJECTION_DATE_INDEX = 1; // 0x1
     field public static final int QUERIES_PROJECTION_DISPLAY1_INDEX = 3; // 0x3
     field public static final int QUERIES_PROJECTION_DISPLAY2_INDEX = 4; // 0x4
@@ -38616,404 +38526,404 @@
   public final class Settings {
     ctor public Settings();
     method public static boolean canDrawOverlays(android.content.Context);
-    field public static final java.lang.String ACTION_ACCESSIBILITY_SETTINGS = "android.settings.ACCESSIBILITY_SETTINGS";
-    field public static final java.lang.String ACTION_ADD_ACCOUNT = "android.settings.ADD_ACCOUNT_SETTINGS";
-    field public static final java.lang.String ACTION_AIRPLANE_MODE_SETTINGS = "android.settings.AIRPLANE_MODE_SETTINGS";
-    field public static final java.lang.String ACTION_APN_SETTINGS = "android.settings.APN_SETTINGS";
-    field public static final java.lang.String ACTION_APPLICATION_DETAILS_SETTINGS = "android.settings.APPLICATION_DETAILS_SETTINGS";
-    field public static final java.lang.String ACTION_APPLICATION_DEVELOPMENT_SETTINGS = "android.settings.APPLICATION_DEVELOPMENT_SETTINGS";
-    field public static final java.lang.String ACTION_APPLICATION_SETTINGS = "android.settings.APPLICATION_SETTINGS";
-    field public static final java.lang.String ACTION_APP_NOTIFICATION_SETTINGS = "android.settings.APP_NOTIFICATION_SETTINGS";
-    field public static final java.lang.String ACTION_APP_SEARCH_SETTINGS = "android.settings.APP_SEARCH_SETTINGS";
-    field public static final java.lang.String ACTION_APP_USAGE_SETTINGS = "android.settings.action.APP_USAGE_SETTINGS";
-    field public static final java.lang.String ACTION_BATTERY_SAVER_SETTINGS = "android.settings.BATTERY_SAVER_SETTINGS";
-    field public static final java.lang.String ACTION_BLUETOOTH_SETTINGS = "android.settings.BLUETOOTH_SETTINGS";
-    field public static final java.lang.String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS";
-    field public static final java.lang.String ACTION_CAST_SETTINGS = "android.settings.CAST_SETTINGS";
-    field public static final java.lang.String ACTION_CHANNEL_NOTIFICATION_SETTINGS = "android.settings.CHANNEL_NOTIFICATION_SETTINGS";
-    field public static final java.lang.String ACTION_DATA_ROAMING_SETTINGS = "android.settings.DATA_ROAMING_SETTINGS";
-    field public static final java.lang.String ACTION_DATA_USAGE_SETTINGS = "android.settings.DATA_USAGE_SETTINGS";
-    field public static final java.lang.String ACTION_DATE_SETTINGS = "android.settings.DATE_SETTINGS";
-    field public static final java.lang.String ACTION_DEVICE_INFO_SETTINGS = "android.settings.DEVICE_INFO_SETTINGS";
-    field public static final java.lang.String ACTION_DISPLAY_SETTINGS = "android.settings.DISPLAY_SETTINGS";
-    field public static final java.lang.String ACTION_DREAM_SETTINGS = "android.settings.DREAM_SETTINGS";
-    field public static final java.lang.String ACTION_FINGERPRINT_ENROLL = "android.settings.FINGERPRINT_ENROLL";
-    field public static final java.lang.String ACTION_HARD_KEYBOARD_SETTINGS = "android.settings.HARD_KEYBOARD_SETTINGS";
-    field public static final java.lang.String ACTION_HOME_SETTINGS = "android.settings.HOME_SETTINGS";
-    field public static final java.lang.String ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS = "android.settings.IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS";
-    field public static final java.lang.String ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS = "android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS";
-    field public static final java.lang.String ACTION_INPUT_METHOD_SETTINGS = "android.settings.INPUT_METHOD_SETTINGS";
-    field public static final java.lang.String ACTION_INPUT_METHOD_SUBTYPE_SETTINGS = "android.settings.INPUT_METHOD_SUBTYPE_SETTINGS";
-    field public static final java.lang.String ACTION_INTERNAL_STORAGE_SETTINGS = "android.settings.INTERNAL_STORAGE_SETTINGS";
-    field public static final java.lang.String ACTION_LOCALE_SETTINGS = "android.settings.LOCALE_SETTINGS";
-    field public static final java.lang.String ACTION_LOCATION_SOURCE_SETTINGS = "android.settings.LOCATION_SOURCE_SETTINGS";
-    field public static final java.lang.String ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS = "android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS";
-    field public static final java.lang.String ACTION_MANAGE_APPLICATIONS_SETTINGS = "android.settings.MANAGE_APPLICATIONS_SETTINGS";
-    field public static final java.lang.String ACTION_MANAGE_DEFAULT_APPS_SETTINGS = "android.settings.MANAGE_DEFAULT_APPS_SETTINGS";
-    field public static final java.lang.String ACTION_MANAGE_OVERLAY_PERMISSION = "android.settings.action.MANAGE_OVERLAY_PERMISSION";
-    field public static final java.lang.String ACTION_MANAGE_UNKNOWN_APP_SOURCES = "android.settings.MANAGE_UNKNOWN_APP_SOURCES";
-    field public static final java.lang.String ACTION_MANAGE_WRITE_SETTINGS = "android.settings.action.MANAGE_WRITE_SETTINGS";
-    field public static final java.lang.String ACTION_MEMORY_CARD_SETTINGS = "android.settings.MEMORY_CARD_SETTINGS";
-    field public static final java.lang.String ACTION_NETWORK_OPERATOR_SETTINGS = "android.settings.NETWORK_OPERATOR_SETTINGS";
-    field public static final java.lang.String ACTION_NFCSHARING_SETTINGS = "android.settings.NFCSHARING_SETTINGS";
-    field public static final java.lang.String ACTION_NFC_PAYMENT_SETTINGS = "android.settings.NFC_PAYMENT_SETTINGS";
-    field public static final java.lang.String ACTION_NFC_SETTINGS = "android.settings.NFC_SETTINGS";
-    field public static final java.lang.String ACTION_NIGHT_DISPLAY_SETTINGS = "android.settings.NIGHT_DISPLAY_SETTINGS";
-    field public static final java.lang.String ACTION_NOTIFICATION_LISTENER_SETTINGS = "android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS";
-    field public static final java.lang.String ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS = "android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS";
-    field public static final java.lang.String ACTION_PRINT_SETTINGS = "android.settings.ACTION_PRINT_SETTINGS";
-    field public static final java.lang.String ACTION_PRIVACY_SETTINGS = "android.settings.PRIVACY_SETTINGS";
-    field public static final java.lang.String ACTION_QUICK_LAUNCH_SETTINGS = "android.settings.QUICK_LAUNCH_SETTINGS";
-    field public static final java.lang.String ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS";
-    field public static final java.lang.String ACTION_REQUEST_SET_AUTOFILL_SERVICE = "android.settings.REQUEST_SET_AUTOFILL_SERVICE";
-    field public static final java.lang.String ACTION_SEARCH_SETTINGS = "android.search.action.SEARCH_SETTINGS";
-    field public static final java.lang.String ACTION_SECURITY_SETTINGS = "android.settings.SECURITY_SETTINGS";
-    field public static final java.lang.String ACTION_SETTINGS = "android.settings.SETTINGS";
-    field public static final java.lang.String ACTION_SHOW_REGULATORY_INFO = "android.settings.SHOW_REGULATORY_INFO";
-    field public static final java.lang.String ACTION_SOUND_SETTINGS = "android.settings.SOUND_SETTINGS";
-    field public static final deprecated java.lang.String ACTION_STORAGE_VOLUME_ACCESS_SETTINGS = "android.settings.STORAGE_VOLUME_ACCESS_SETTINGS";
-    field public static final java.lang.String ACTION_SYNC_SETTINGS = "android.settings.SYNC_SETTINGS";
-    field public static final java.lang.String ACTION_USAGE_ACCESS_SETTINGS = "android.settings.USAGE_ACCESS_SETTINGS";
-    field public static final java.lang.String ACTION_USER_DICTIONARY_SETTINGS = "android.settings.USER_DICTIONARY_SETTINGS";
-    field public static final java.lang.String ACTION_VOICE_CONTROL_AIRPLANE_MODE = "android.settings.VOICE_CONTROL_AIRPLANE_MODE";
-    field public static final java.lang.String ACTION_VOICE_CONTROL_BATTERY_SAVER_MODE = "android.settings.VOICE_CONTROL_BATTERY_SAVER_MODE";
-    field public static final java.lang.String ACTION_VOICE_CONTROL_DO_NOT_DISTURB_MODE = "android.settings.VOICE_CONTROL_DO_NOT_DISTURB_MODE";
-    field public static final java.lang.String ACTION_VOICE_INPUT_SETTINGS = "android.settings.VOICE_INPUT_SETTINGS";
-    field public static final java.lang.String ACTION_VPN_SETTINGS = "android.settings.VPN_SETTINGS";
-    field public static final java.lang.String ACTION_VR_LISTENER_SETTINGS = "android.settings.VR_LISTENER_SETTINGS";
-    field public static final java.lang.String ACTION_WEBVIEW_SETTINGS = "android.settings.WEBVIEW_SETTINGS";
-    field public static final java.lang.String ACTION_WIFI_IP_SETTINGS = "android.settings.WIFI_IP_SETTINGS";
-    field public static final java.lang.String ACTION_WIFI_SETTINGS = "android.settings.WIFI_SETTINGS";
-    field public static final java.lang.String ACTION_WIRELESS_SETTINGS = "android.settings.WIRELESS_SETTINGS";
-    field public static final java.lang.String ACTION_ZEN_MODE_PRIORITY_SETTINGS = "android.settings.ZEN_MODE_PRIORITY_SETTINGS";
-    field public static final java.lang.String AUTHORITY = "settings";
-    field public static final java.lang.String EXTRA_ACCOUNT_TYPES = "account_types";
-    field public static final java.lang.String EXTRA_AIRPLANE_MODE_ENABLED = "airplane_mode_enabled";
-    field public static final java.lang.String EXTRA_APP_PACKAGE = "android.provider.extra.APP_PACKAGE";
-    field public static final java.lang.String EXTRA_AUTHORITIES = "authorities";
-    field public static final java.lang.String EXTRA_BATTERY_SAVER_MODE_ENABLED = "android.settings.extra.battery_saver_mode_enabled";
-    field public static final java.lang.String EXTRA_CHANNEL_ID = "android.provider.extra.CHANNEL_ID";
-    field public static final java.lang.String EXTRA_DO_NOT_DISTURB_MODE_ENABLED = "android.settings.extra.do_not_disturb_mode_enabled";
-    field public static final java.lang.String EXTRA_DO_NOT_DISTURB_MODE_MINUTES = "android.settings.extra.do_not_disturb_mode_minutes";
-    field public static final java.lang.String EXTRA_INPUT_METHOD_ID = "input_method_id";
-    field public static final java.lang.String EXTRA_SUB_ID = "android.provider.extra.SUB_ID";
-    field public static final java.lang.String INTENT_CATEGORY_USAGE_ACCESS_CONFIG = "android.intent.category.USAGE_ACCESS_CONFIG";
-    field public static final java.lang.String METADATA_USAGE_ACCESS_REASON = "android.settings.metadata.USAGE_ACCESS_REASON";
+    field public static final String ACTION_ACCESSIBILITY_SETTINGS = "android.settings.ACCESSIBILITY_SETTINGS";
+    field public static final String ACTION_ADD_ACCOUNT = "android.settings.ADD_ACCOUNT_SETTINGS";
+    field public static final String ACTION_AIRPLANE_MODE_SETTINGS = "android.settings.AIRPLANE_MODE_SETTINGS";
+    field public static final String ACTION_APN_SETTINGS = "android.settings.APN_SETTINGS";
+    field public static final String ACTION_APPLICATION_DETAILS_SETTINGS = "android.settings.APPLICATION_DETAILS_SETTINGS";
+    field public static final String ACTION_APPLICATION_DEVELOPMENT_SETTINGS = "android.settings.APPLICATION_DEVELOPMENT_SETTINGS";
+    field public static final String ACTION_APPLICATION_SETTINGS = "android.settings.APPLICATION_SETTINGS";
+    field public static final String ACTION_APP_NOTIFICATION_SETTINGS = "android.settings.APP_NOTIFICATION_SETTINGS";
+    field public static final String ACTION_APP_SEARCH_SETTINGS = "android.settings.APP_SEARCH_SETTINGS";
+    field public static final String ACTION_APP_USAGE_SETTINGS = "android.settings.action.APP_USAGE_SETTINGS";
+    field public static final String ACTION_BATTERY_SAVER_SETTINGS = "android.settings.BATTERY_SAVER_SETTINGS";
+    field public static final String ACTION_BLUETOOTH_SETTINGS = "android.settings.BLUETOOTH_SETTINGS";
+    field public static final String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS";
+    field public static final String ACTION_CAST_SETTINGS = "android.settings.CAST_SETTINGS";
+    field public static final String ACTION_CHANNEL_NOTIFICATION_SETTINGS = "android.settings.CHANNEL_NOTIFICATION_SETTINGS";
+    field public static final String ACTION_DATA_ROAMING_SETTINGS = "android.settings.DATA_ROAMING_SETTINGS";
+    field public static final String ACTION_DATA_USAGE_SETTINGS = "android.settings.DATA_USAGE_SETTINGS";
+    field public static final String ACTION_DATE_SETTINGS = "android.settings.DATE_SETTINGS";
+    field public static final String ACTION_DEVICE_INFO_SETTINGS = "android.settings.DEVICE_INFO_SETTINGS";
+    field public static final String ACTION_DISPLAY_SETTINGS = "android.settings.DISPLAY_SETTINGS";
+    field public static final String ACTION_DREAM_SETTINGS = "android.settings.DREAM_SETTINGS";
+    field public static final String ACTION_FINGERPRINT_ENROLL = "android.settings.FINGERPRINT_ENROLL";
+    field public static final String ACTION_HARD_KEYBOARD_SETTINGS = "android.settings.HARD_KEYBOARD_SETTINGS";
+    field public static final String ACTION_HOME_SETTINGS = "android.settings.HOME_SETTINGS";
+    field public static final String ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS = "android.settings.IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS";
+    field public static final String ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS = "android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS";
+    field public static final String ACTION_INPUT_METHOD_SETTINGS = "android.settings.INPUT_METHOD_SETTINGS";
+    field public static final String ACTION_INPUT_METHOD_SUBTYPE_SETTINGS = "android.settings.INPUT_METHOD_SUBTYPE_SETTINGS";
+    field public static final String ACTION_INTERNAL_STORAGE_SETTINGS = "android.settings.INTERNAL_STORAGE_SETTINGS";
+    field public static final String ACTION_LOCALE_SETTINGS = "android.settings.LOCALE_SETTINGS";
+    field public static final String ACTION_LOCATION_SOURCE_SETTINGS = "android.settings.LOCATION_SOURCE_SETTINGS";
+    field public static final String ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS = "android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS";
+    field public static final String ACTION_MANAGE_APPLICATIONS_SETTINGS = "android.settings.MANAGE_APPLICATIONS_SETTINGS";
+    field public static final String ACTION_MANAGE_DEFAULT_APPS_SETTINGS = "android.settings.MANAGE_DEFAULT_APPS_SETTINGS";
+    field public static final String ACTION_MANAGE_OVERLAY_PERMISSION = "android.settings.action.MANAGE_OVERLAY_PERMISSION";
+    field public static final String ACTION_MANAGE_UNKNOWN_APP_SOURCES = "android.settings.MANAGE_UNKNOWN_APP_SOURCES";
+    field public static final String ACTION_MANAGE_WRITE_SETTINGS = "android.settings.action.MANAGE_WRITE_SETTINGS";
+    field public static final String ACTION_MEMORY_CARD_SETTINGS = "android.settings.MEMORY_CARD_SETTINGS";
+    field public static final String ACTION_NETWORK_OPERATOR_SETTINGS = "android.settings.NETWORK_OPERATOR_SETTINGS";
+    field public static final String ACTION_NFCSHARING_SETTINGS = "android.settings.NFCSHARING_SETTINGS";
+    field public static final String ACTION_NFC_PAYMENT_SETTINGS = "android.settings.NFC_PAYMENT_SETTINGS";
+    field public static final String ACTION_NFC_SETTINGS = "android.settings.NFC_SETTINGS";
+    field public static final String ACTION_NIGHT_DISPLAY_SETTINGS = "android.settings.NIGHT_DISPLAY_SETTINGS";
+    field public static final String ACTION_NOTIFICATION_LISTENER_SETTINGS = "android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS";
+    field public static final String ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS = "android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS";
+    field public static final String ACTION_PRINT_SETTINGS = "android.settings.ACTION_PRINT_SETTINGS";
+    field public static final String ACTION_PRIVACY_SETTINGS = "android.settings.PRIVACY_SETTINGS";
+    field public static final String ACTION_QUICK_LAUNCH_SETTINGS = "android.settings.QUICK_LAUNCH_SETTINGS";
+    field public static final String ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS";
+    field public static final String ACTION_REQUEST_SET_AUTOFILL_SERVICE = "android.settings.REQUEST_SET_AUTOFILL_SERVICE";
+    field public static final String ACTION_SEARCH_SETTINGS = "android.search.action.SEARCH_SETTINGS";
+    field public static final String ACTION_SECURITY_SETTINGS = "android.settings.SECURITY_SETTINGS";
+    field public static final String ACTION_SETTINGS = "android.settings.SETTINGS";
+    field public static final String ACTION_SHOW_REGULATORY_INFO = "android.settings.SHOW_REGULATORY_INFO";
+    field public static final String ACTION_SOUND_SETTINGS = "android.settings.SOUND_SETTINGS";
+    field @Deprecated public static final String ACTION_STORAGE_VOLUME_ACCESS_SETTINGS = "android.settings.STORAGE_VOLUME_ACCESS_SETTINGS";
+    field public static final String ACTION_SYNC_SETTINGS = "android.settings.SYNC_SETTINGS";
+    field public static final String ACTION_USAGE_ACCESS_SETTINGS = "android.settings.USAGE_ACCESS_SETTINGS";
+    field public static final String ACTION_USER_DICTIONARY_SETTINGS = "android.settings.USER_DICTIONARY_SETTINGS";
+    field public static final String ACTION_VOICE_CONTROL_AIRPLANE_MODE = "android.settings.VOICE_CONTROL_AIRPLANE_MODE";
+    field public static final String ACTION_VOICE_CONTROL_BATTERY_SAVER_MODE = "android.settings.VOICE_CONTROL_BATTERY_SAVER_MODE";
+    field public static final String ACTION_VOICE_CONTROL_DO_NOT_DISTURB_MODE = "android.settings.VOICE_CONTROL_DO_NOT_DISTURB_MODE";
+    field public static final String ACTION_VOICE_INPUT_SETTINGS = "android.settings.VOICE_INPUT_SETTINGS";
+    field public static final String ACTION_VPN_SETTINGS = "android.settings.VPN_SETTINGS";
+    field public static final String ACTION_VR_LISTENER_SETTINGS = "android.settings.VR_LISTENER_SETTINGS";
+    field public static final String ACTION_WEBVIEW_SETTINGS = "android.settings.WEBVIEW_SETTINGS";
+    field public static final String ACTION_WIFI_IP_SETTINGS = "android.settings.WIFI_IP_SETTINGS";
+    field public static final String ACTION_WIFI_SETTINGS = "android.settings.WIFI_SETTINGS";
+    field public static final String ACTION_WIRELESS_SETTINGS = "android.settings.WIRELESS_SETTINGS";
+    field public static final String ACTION_ZEN_MODE_PRIORITY_SETTINGS = "android.settings.ZEN_MODE_PRIORITY_SETTINGS";
+    field public static final String AUTHORITY = "settings";
+    field public static final String EXTRA_ACCOUNT_TYPES = "account_types";
+    field public static final String EXTRA_AIRPLANE_MODE_ENABLED = "airplane_mode_enabled";
+    field public static final String EXTRA_APP_PACKAGE = "android.provider.extra.APP_PACKAGE";
+    field public static final String EXTRA_AUTHORITIES = "authorities";
+    field public static final String EXTRA_BATTERY_SAVER_MODE_ENABLED = "android.settings.extra.battery_saver_mode_enabled";
+    field public static final String EXTRA_CHANNEL_ID = "android.provider.extra.CHANNEL_ID";
+    field public static final String EXTRA_DO_NOT_DISTURB_MODE_ENABLED = "android.settings.extra.do_not_disturb_mode_enabled";
+    field public static final String EXTRA_DO_NOT_DISTURB_MODE_MINUTES = "android.settings.extra.do_not_disturb_mode_minutes";
+    field public static final String EXTRA_INPUT_METHOD_ID = "input_method_id";
+    field public static final String EXTRA_SUB_ID = "android.provider.extra.SUB_ID";
+    field public static final String INTENT_CATEGORY_USAGE_ACCESS_CONFIG = "android.intent.category.USAGE_ACCESS_CONFIG";
+    field public static final String METADATA_USAGE_ACCESS_REASON = "android.settings.metadata.USAGE_ACCESS_REASON";
   }
 
   public static final class Settings.Global extends android.provider.Settings.NameValueTable {
     ctor public Settings.Global();
-    method public static float getFloat(android.content.ContentResolver, java.lang.String, float);
-    method public static float getFloat(android.content.ContentResolver, java.lang.String) throws android.provider.Settings.SettingNotFoundException;
-    method public static int getInt(android.content.ContentResolver, java.lang.String, int);
-    method public static int getInt(android.content.ContentResolver, java.lang.String) throws android.provider.Settings.SettingNotFoundException;
-    method public static long getLong(android.content.ContentResolver, java.lang.String, long);
-    method public static long getLong(android.content.ContentResolver, java.lang.String) throws android.provider.Settings.SettingNotFoundException;
-    method public static java.lang.String getString(android.content.ContentResolver, java.lang.String);
-    method public static android.net.Uri getUriFor(java.lang.String);
-    method public static boolean putFloat(android.content.ContentResolver, java.lang.String, float);
-    method public static boolean putInt(android.content.ContentResolver, java.lang.String, int);
-    method public static boolean putLong(android.content.ContentResolver, java.lang.String, long);
-    method public static boolean putString(android.content.ContentResolver, java.lang.String, java.lang.String);
-    field public static final java.lang.String ADB_ENABLED = "adb_enabled";
-    field public static final java.lang.String AIRPLANE_MODE_ON = "airplane_mode_on";
-    field public static final java.lang.String AIRPLANE_MODE_RADIOS = "airplane_mode_radios";
-    field public static final java.lang.String ALWAYS_FINISH_ACTIVITIES = "always_finish_activities";
-    field public static final java.lang.String ANIMATOR_DURATION_SCALE = "animator_duration_scale";
-    field public static final java.lang.String AUTO_TIME = "auto_time";
-    field public static final java.lang.String AUTO_TIME_ZONE = "auto_time_zone";
-    field public static final java.lang.String BLUETOOTH_ON = "bluetooth_on";
-    field public static final java.lang.String BOOT_COUNT = "boot_count";
-    field public static final java.lang.String CONTACT_METADATA_SYNC_ENABLED = "contact_metadata_sync_enabled";
+    method public static float getFloat(android.content.ContentResolver, String, float);
+    method public static float getFloat(android.content.ContentResolver, String) throws android.provider.Settings.SettingNotFoundException;
+    method public static int getInt(android.content.ContentResolver, String, int);
+    method public static int getInt(android.content.ContentResolver, String) throws android.provider.Settings.SettingNotFoundException;
+    method public static long getLong(android.content.ContentResolver, String, long);
+    method public static long getLong(android.content.ContentResolver, String) throws android.provider.Settings.SettingNotFoundException;
+    method public static String getString(android.content.ContentResolver, String);
+    method public static android.net.Uri getUriFor(String);
+    method public static boolean putFloat(android.content.ContentResolver, String, float);
+    method public static boolean putInt(android.content.ContentResolver, String, int);
+    method public static boolean putLong(android.content.ContentResolver, String, long);
+    method public static boolean putString(android.content.ContentResolver, String, String);
+    field public static final String ADB_ENABLED = "adb_enabled";
+    field public static final String AIRPLANE_MODE_ON = "airplane_mode_on";
+    field public static final String AIRPLANE_MODE_RADIOS = "airplane_mode_radios";
+    field public static final String ALWAYS_FINISH_ACTIVITIES = "always_finish_activities";
+    field public static final String ANIMATOR_DURATION_SCALE = "animator_duration_scale";
+    field public static final String AUTO_TIME = "auto_time";
+    field public static final String AUTO_TIME_ZONE = "auto_time_zone";
+    field public static final String BLUETOOTH_ON = "bluetooth_on";
+    field public static final String BOOT_COUNT = "boot_count";
+    field public static final String CONTACT_METADATA_SYNC_ENABLED = "contact_metadata_sync_enabled";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DATA_ROAMING = "data_roaming";
-    field public static final java.lang.String DEBUG_APP = "debug_app";
-    field public static final java.lang.String DEVELOPMENT_SETTINGS_ENABLED = "development_settings_enabled";
-    field public static final java.lang.String DEVICE_NAME = "device_name";
-    field public static final java.lang.String DEVICE_PROVISIONED = "device_provisioned";
-    field public static final java.lang.String HTTP_PROXY = "http_proxy";
-    field public static final deprecated java.lang.String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
-    field public static final java.lang.String MODE_RINGER = "mode_ringer";
-    field public static final java.lang.String NETWORK_PREFERENCE = "network_preference";
-    field public static final java.lang.String RADIO_BLUETOOTH = "bluetooth";
-    field public static final java.lang.String RADIO_CELL = "cell";
-    field public static final java.lang.String RADIO_NFC = "nfc";
-    field public static final java.lang.String RADIO_WIFI = "wifi";
-    field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes";
-    field public static final java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
-    field public static final java.lang.String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
-    field public static final java.lang.String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled";
-    field public static final java.lang.String USE_GOOGLE_MAIL = "use_google_mail";
-    field public static final java.lang.String WAIT_FOR_DEBUGGER = "wait_for_debugger";
-    field public static final java.lang.String WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN = "wifi_device_owner_configs_lockdown";
-    field public static final java.lang.String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
-    field public static final java.lang.String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS = "wifi_mobile_data_transition_wakelock_timeout_ms";
-    field public static final deprecated java.lang.String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = "wifi_networks_available_notification_on";
-    field public static final java.lang.String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = "wifi_networks_available_repeat_delay";
-    field public static final java.lang.String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept";
-    field public static final java.lang.String WIFI_ON = "wifi_on";
-    field public static final java.lang.String WIFI_SLEEP_POLICY = "wifi_sleep_policy";
+    field public static final String DATA_ROAMING = "data_roaming";
+    field public static final String DEBUG_APP = "debug_app";
+    field public static final String DEVELOPMENT_SETTINGS_ENABLED = "development_settings_enabled";
+    field public static final String DEVICE_NAME = "device_name";
+    field public static final String DEVICE_PROVISIONED = "device_provisioned";
+    field public static final String HTTP_PROXY = "http_proxy";
+    field @Deprecated public static final String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
+    field public static final String MODE_RINGER = "mode_ringer";
+    field public static final String NETWORK_PREFERENCE = "network_preference";
+    field public static final String RADIO_BLUETOOTH = "bluetooth";
+    field public static final String RADIO_CELL = "cell";
+    field public static final String RADIO_NFC = "nfc";
+    field public static final String RADIO_WIFI = "wifi";
+    field @Deprecated public static final String SHOW_PROCESSES = "show_processes";
+    field public static final String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
+    field public static final String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
+    field public static final String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled";
+    field public static final String USE_GOOGLE_MAIL = "use_google_mail";
+    field public static final String WAIT_FOR_DEBUGGER = "wait_for_debugger";
+    field public static final String WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN = "wifi_device_owner_configs_lockdown";
+    field public static final String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
+    field public static final String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS = "wifi_mobile_data_transition_wakelock_timeout_ms";
+    field @Deprecated public static final String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = "wifi_networks_available_notification_on";
+    field public static final String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = "wifi_networks_available_repeat_delay";
+    field public static final String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept";
+    field public static final String WIFI_ON = "wifi_on";
+    field public static final String WIFI_SLEEP_POLICY = "wifi_sleep_policy";
     field public static final int WIFI_SLEEP_POLICY_DEFAULT = 0; // 0x0
     field public static final int WIFI_SLEEP_POLICY_NEVER = 2; // 0x2
     field public static final int WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED = 1; // 0x1
-    field public static final java.lang.String WIFI_WATCHDOG_ON = "wifi_watchdog_on";
-    field public static final java.lang.String WINDOW_ANIMATION_SCALE = "window_animation_scale";
+    field public static final String WIFI_WATCHDOG_ON = "wifi_watchdog_on";
+    field public static final String WINDOW_ANIMATION_SCALE = "window_animation_scale";
   }
 
   public static class Settings.NameValueTable implements android.provider.BaseColumns {
     ctor public Settings.NameValueTable();
-    method public static android.net.Uri getUriFor(android.net.Uri, java.lang.String);
-    method protected static boolean putString(android.content.ContentResolver, android.net.Uri, java.lang.String, java.lang.String);
-    field public static final java.lang.String NAME = "name";
-    field public static final java.lang.String VALUE = "value";
+    method public static android.net.Uri getUriFor(android.net.Uri, String);
+    method protected static boolean putString(android.content.ContentResolver, android.net.Uri, String, String);
+    field public static final String NAME = "name";
+    field public static final String VALUE = "value";
   }
 
   public static final class Settings.Panel {
-    field public static final java.lang.String ACTION_INTERNET_CONNECTIVITY = "android.settings.panel.action.INTERNET_CONNECTIVITY";
-    field public static final java.lang.String ACTION_VOLUME = "android.settings.panel.action.VOLUME";
+    field public static final String ACTION_INTERNET_CONNECTIVITY = "android.settings.panel.action.INTERNET_CONNECTIVITY";
+    field public static final String ACTION_VOLUME = "android.settings.panel.action.VOLUME";
   }
 
   public static final class Settings.Secure extends android.provider.Settings.NameValueTable {
     ctor public Settings.Secure();
-    method public static float getFloat(android.content.ContentResolver, java.lang.String, float);
-    method public static float getFloat(android.content.ContentResolver, java.lang.String) throws android.provider.Settings.SettingNotFoundException;
-    method public static int getInt(android.content.ContentResolver, java.lang.String, int);
-    method public static int getInt(android.content.ContentResolver, java.lang.String) throws android.provider.Settings.SettingNotFoundException;
-    method public static long getLong(android.content.ContentResolver, java.lang.String, long);
-    method public static long getLong(android.content.ContentResolver, java.lang.String) throws android.provider.Settings.SettingNotFoundException;
-    method public static java.lang.String getString(android.content.ContentResolver, java.lang.String);
-    method public static android.net.Uri getUriFor(java.lang.String);
-    method public static deprecated boolean isLocationProviderEnabled(android.content.ContentResolver, java.lang.String);
-    method public static boolean putFloat(android.content.ContentResolver, java.lang.String, float);
-    method public static boolean putInt(android.content.ContentResolver, java.lang.String, int);
-    method public static boolean putLong(android.content.ContentResolver, java.lang.String, long);
-    method public static boolean putString(android.content.ContentResolver, java.lang.String, java.lang.String);
-    method public static deprecated void setLocationProviderEnabled(android.content.ContentResolver, java.lang.String, boolean);
-    field public static final java.lang.String ACCESSIBILITY_DISPLAY_INVERSION_ENABLED = "accessibility_display_inversion_enabled";
-    field public static final java.lang.String ACCESSIBILITY_ENABLED = "accessibility_enabled";
-    field public static final deprecated java.lang.String ACCESSIBILITY_SPEAK_PASSWORD = "speak_password";
-    field public static final deprecated java.lang.String ADB_ENABLED = "adb_enabled";
-    field public static final java.lang.String ALLOWED_GEOLOCATION_ORIGINS = "allowed_geolocation_origins";
-    field public static final deprecated java.lang.String ALLOW_MOCK_LOCATION = "mock_location";
-    field public static final java.lang.String ANDROID_ID = "android_id";
-    field public static final deprecated java.lang.String BACKGROUND_DATA = "background_data";
-    field public static final deprecated java.lang.String BLUETOOTH_ON = "bluetooth_on";
+    method public static float getFloat(android.content.ContentResolver, String, float);
+    method public static float getFloat(android.content.ContentResolver, String) throws android.provider.Settings.SettingNotFoundException;
+    method public static int getInt(android.content.ContentResolver, String, int);
+    method public static int getInt(android.content.ContentResolver, String) throws android.provider.Settings.SettingNotFoundException;
+    method public static long getLong(android.content.ContentResolver, String, long);
+    method public static long getLong(android.content.ContentResolver, String) throws android.provider.Settings.SettingNotFoundException;
+    method public static String getString(android.content.ContentResolver, String);
+    method public static android.net.Uri getUriFor(String);
+    method @Deprecated public static boolean isLocationProviderEnabled(android.content.ContentResolver, String);
+    method public static boolean putFloat(android.content.ContentResolver, String, float);
+    method public static boolean putInt(android.content.ContentResolver, String, int);
+    method public static boolean putLong(android.content.ContentResolver, String, long);
+    method public static boolean putString(android.content.ContentResolver, String, String);
+    method @Deprecated public static void setLocationProviderEnabled(android.content.ContentResolver, String, boolean);
+    field public static final String ACCESSIBILITY_DISPLAY_INVERSION_ENABLED = "accessibility_display_inversion_enabled";
+    field public static final String ACCESSIBILITY_ENABLED = "accessibility_enabled";
+    field @Deprecated public static final String ACCESSIBILITY_SPEAK_PASSWORD = "speak_password";
+    field @Deprecated public static final String ADB_ENABLED = "adb_enabled";
+    field public static final String ALLOWED_GEOLOCATION_ORIGINS = "allowed_geolocation_origins";
+    field @Deprecated public static final String ALLOW_MOCK_LOCATION = "mock_location";
+    field public static final String ANDROID_ID = "android_id";
+    field @Deprecated public static final String BACKGROUND_DATA = "background_data";
+    field @Deprecated public static final String BLUETOOTH_ON = "bluetooth_on";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DATA_ROAMING = "data_roaming";
-    field public static final java.lang.String DEFAULT_INPUT_METHOD = "default_input_method";
-    field public static final deprecated java.lang.String DEVELOPMENT_SETTINGS_ENABLED = "development_settings_enabled";
-    field public static final deprecated java.lang.String DEVICE_PROVISIONED = "device_provisioned";
-    field public static final java.lang.String ENABLED_ACCESSIBILITY_SERVICES = "enabled_accessibility_services";
-    field public static final java.lang.String ENABLED_INPUT_METHODS = "enabled_input_methods";
-    field public static final deprecated java.lang.String HTTP_PROXY = "http_proxy";
-    field public static final java.lang.String INPUT_METHOD_SELECTOR_VISIBILITY = "input_method_selector_visibility";
-    field public static final deprecated java.lang.String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
-    field public static final deprecated java.lang.String LOCATION_MODE = "location_mode";
-    field public static final deprecated int LOCATION_MODE_BATTERY_SAVING = 2; // 0x2
-    field public static final deprecated int LOCATION_MODE_HIGH_ACCURACY = 3; // 0x3
-    field public static final deprecated int LOCATION_MODE_OFF = 0; // 0x0
-    field public static final deprecated int LOCATION_MODE_SENSORS_ONLY = 1; // 0x1
-    field public static final deprecated java.lang.String LOCATION_PROVIDERS_ALLOWED = "location_providers_allowed";
-    field public static final deprecated java.lang.String LOCK_PATTERN_ENABLED = "lock_pattern_autolock";
-    field public static final deprecated java.lang.String LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED = "lock_pattern_tactile_feedback_enabled";
-    field public static final deprecated java.lang.String LOCK_PATTERN_VISIBLE = "lock_pattern_visible_pattern";
-    field public static final deprecated java.lang.String LOGGING_ID = "logging_id";
-    field public static final deprecated java.lang.String NETWORK_PREFERENCE = "network_preference";
-    field public static final java.lang.String PARENTAL_CONTROL_ENABLED = "parental_control_enabled";
-    field public static final java.lang.String PARENTAL_CONTROL_LAST_UPDATE = "parental_control_last_update";
-    field public static final java.lang.String PARENTAL_CONTROL_REDIRECT_URL = "parental_control_redirect_url";
-    field public static final java.lang.String RTT_CALLING_MODE = "rtt_calling_mode";
-    field public static final java.lang.String SELECTED_INPUT_METHOD_SUBTYPE = "selected_input_method_subtype";
-    field public static final java.lang.String SETTINGS_CLASSNAME = "settings_classname";
-    field public static final java.lang.String SKIP_FIRST_USE_HINTS = "skip_first_use_hints";
-    field public static final java.lang.String TOUCH_EXPLORATION_ENABLED = "touch_exploration_enabled";
-    field public static final deprecated java.lang.String TTS_DEFAULT_COUNTRY = "tts_default_country";
-    field public static final deprecated java.lang.String TTS_DEFAULT_LANG = "tts_default_lang";
-    field public static final java.lang.String TTS_DEFAULT_PITCH = "tts_default_pitch";
-    field public static final java.lang.String TTS_DEFAULT_RATE = "tts_default_rate";
-    field public static final java.lang.String TTS_DEFAULT_SYNTH = "tts_default_synth";
-    field public static final deprecated java.lang.String TTS_DEFAULT_VARIANT = "tts_default_variant";
-    field public static final java.lang.String TTS_ENABLED_PLUGINS = "tts_enabled_plugins";
-    field public static final deprecated java.lang.String TTS_USE_DEFAULTS = "tts_use_defaults";
-    field public static final deprecated java.lang.String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled";
-    field public static final deprecated java.lang.String USE_GOOGLE_MAIL = "use_google_mail";
-    field public static final deprecated java.lang.String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
-    field public static final deprecated java.lang.String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS = "wifi_mobile_data_transition_wakelock_timeout_ms";
-    field public static final deprecated java.lang.String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = "wifi_networks_available_notification_on";
-    field public static final deprecated java.lang.String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = "wifi_networks_available_repeat_delay";
-    field public static final deprecated java.lang.String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept";
-    field public static final deprecated java.lang.String WIFI_ON = "wifi_on";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE = "wifi_watchdog_acceptable_packet_loss_percentage";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_AP_COUNT = "wifi_watchdog_ap_count";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS = "wifi_watchdog_background_check_delay_ms";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED = "wifi_watchdog_background_check_enabled";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS = "wifi_watchdog_background_check_timeout_ms";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT = "wifi_watchdog_initial_ignored_ping_count";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_MAX_AP_CHECKS = "wifi_watchdog_max_ap_checks";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_ON = "wifi_watchdog_on";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_PING_COUNT = "wifi_watchdog_ping_count";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_PING_DELAY_MS = "wifi_watchdog_ping_delay_ms";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_PING_TIMEOUT_MS = "wifi_watchdog_ping_timeout_ms";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_WATCH_LIST = "wifi_watchdog_watch_list";
+    field @Deprecated public static final String DATA_ROAMING = "data_roaming";
+    field public static final String DEFAULT_INPUT_METHOD = "default_input_method";
+    field @Deprecated public static final String DEVELOPMENT_SETTINGS_ENABLED = "development_settings_enabled";
+    field @Deprecated public static final String DEVICE_PROVISIONED = "device_provisioned";
+    field public static final String ENABLED_ACCESSIBILITY_SERVICES = "enabled_accessibility_services";
+    field public static final String ENABLED_INPUT_METHODS = "enabled_input_methods";
+    field @Deprecated public static final String HTTP_PROXY = "http_proxy";
+    field public static final String INPUT_METHOD_SELECTOR_VISIBILITY = "input_method_selector_visibility";
+    field @Deprecated public static final String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
+    field @Deprecated public static final String LOCATION_MODE = "location_mode";
+    field @Deprecated public static final int LOCATION_MODE_BATTERY_SAVING = 2; // 0x2
+    field @Deprecated public static final int LOCATION_MODE_HIGH_ACCURACY = 3; // 0x3
+    field @Deprecated public static final int LOCATION_MODE_OFF = 0; // 0x0
+    field @Deprecated public static final int LOCATION_MODE_SENSORS_ONLY = 1; // 0x1
+    field @Deprecated public static final String LOCATION_PROVIDERS_ALLOWED = "location_providers_allowed";
+    field @Deprecated public static final String LOCK_PATTERN_ENABLED = "lock_pattern_autolock";
+    field @Deprecated public static final String LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED = "lock_pattern_tactile_feedback_enabled";
+    field @Deprecated public static final String LOCK_PATTERN_VISIBLE = "lock_pattern_visible_pattern";
+    field @Deprecated public static final String LOGGING_ID = "logging_id";
+    field @Deprecated public static final String NETWORK_PREFERENCE = "network_preference";
+    field public static final String PARENTAL_CONTROL_ENABLED = "parental_control_enabled";
+    field public static final String PARENTAL_CONTROL_LAST_UPDATE = "parental_control_last_update";
+    field public static final String PARENTAL_CONTROL_REDIRECT_URL = "parental_control_redirect_url";
+    field public static final String RTT_CALLING_MODE = "rtt_calling_mode";
+    field public static final String SELECTED_INPUT_METHOD_SUBTYPE = "selected_input_method_subtype";
+    field public static final String SETTINGS_CLASSNAME = "settings_classname";
+    field public static final String SKIP_FIRST_USE_HINTS = "skip_first_use_hints";
+    field public static final String TOUCH_EXPLORATION_ENABLED = "touch_exploration_enabled";
+    field @Deprecated public static final String TTS_DEFAULT_COUNTRY = "tts_default_country";
+    field @Deprecated public static final String TTS_DEFAULT_LANG = "tts_default_lang";
+    field public static final String TTS_DEFAULT_PITCH = "tts_default_pitch";
+    field public static final String TTS_DEFAULT_RATE = "tts_default_rate";
+    field public static final String TTS_DEFAULT_SYNTH = "tts_default_synth";
+    field @Deprecated public static final String TTS_DEFAULT_VARIANT = "tts_default_variant";
+    field public static final String TTS_ENABLED_PLUGINS = "tts_enabled_plugins";
+    field @Deprecated public static final String TTS_USE_DEFAULTS = "tts_use_defaults";
+    field @Deprecated public static final String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled";
+    field @Deprecated public static final String USE_GOOGLE_MAIL = "use_google_mail";
+    field @Deprecated public static final String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
+    field @Deprecated public static final String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS = "wifi_mobile_data_transition_wakelock_timeout_ms";
+    field @Deprecated public static final String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = "wifi_networks_available_notification_on";
+    field @Deprecated public static final String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = "wifi_networks_available_repeat_delay";
+    field @Deprecated public static final String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept";
+    field @Deprecated public static final String WIFI_ON = "wifi_on";
+    field @Deprecated public static final String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE = "wifi_watchdog_acceptable_packet_loss_percentage";
+    field @Deprecated public static final String WIFI_WATCHDOG_AP_COUNT = "wifi_watchdog_ap_count";
+    field @Deprecated public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS = "wifi_watchdog_background_check_delay_ms";
+    field @Deprecated public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED = "wifi_watchdog_background_check_enabled";
+    field @Deprecated public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS = "wifi_watchdog_background_check_timeout_ms";
+    field @Deprecated public static final String WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT = "wifi_watchdog_initial_ignored_ping_count";
+    field @Deprecated public static final String WIFI_WATCHDOG_MAX_AP_CHECKS = "wifi_watchdog_max_ap_checks";
+    field @Deprecated public static final String WIFI_WATCHDOG_ON = "wifi_watchdog_on";
+    field @Deprecated public static final String WIFI_WATCHDOG_PING_COUNT = "wifi_watchdog_ping_count";
+    field @Deprecated public static final String WIFI_WATCHDOG_PING_DELAY_MS = "wifi_watchdog_ping_delay_ms";
+    field @Deprecated public static final String WIFI_WATCHDOG_PING_TIMEOUT_MS = "wifi_watchdog_ping_timeout_ms";
+    field @Deprecated public static final String WIFI_WATCHDOG_WATCH_LIST = "wifi_watchdog_watch_list";
   }
 
   public static class Settings.SettingNotFoundException extends android.util.AndroidException {
-    ctor public Settings.SettingNotFoundException(java.lang.String);
+    ctor public Settings.SettingNotFoundException(String);
   }
 
   public static final class Settings.System extends android.provider.Settings.NameValueTable {
     ctor public Settings.System();
     method public static boolean canWrite(android.content.Context);
     method public static void getConfiguration(android.content.ContentResolver, android.content.res.Configuration);
-    method public static float getFloat(android.content.ContentResolver, java.lang.String, float);
-    method public static float getFloat(android.content.ContentResolver, java.lang.String) throws android.provider.Settings.SettingNotFoundException;
-    method public static int getInt(android.content.ContentResolver, java.lang.String, int);
-    method public static int getInt(android.content.ContentResolver, java.lang.String) throws android.provider.Settings.SettingNotFoundException;
-    method public static long getLong(android.content.ContentResolver, java.lang.String, long);
-    method public static long getLong(android.content.ContentResolver, java.lang.String) throws android.provider.Settings.SettingNotFoundException;
-    method public static deprecated boolean getShowGTalkServiceStatus(android.content.ContentResolver);
-    method public static java.lang.String getString(android.content.ContentResolver, java.lang.String);
-    method public static android.net.Uri getUriFor(java.lang.String);
+    method public static float getFloat(android.content.ContentResolver, String, float);
+    method public static float getFloat(android.content.ContentResolver, String) throws android.provider.Settings.SettingNotFoundException;
+    method public static int getInt(android.content.ContentResolver, String, int);
+    method public static int getInt(android.content.ContentResolver, String) throws android.provider.Settings.SettingNotFoundException;
+    method public static long getLong(android.content.ContentResolver, String, long);
+    method public static long getLong(android.content.ContentResolver, String) throws android.provider.Settings.SettingNotFoundException;
+    method @Deprecated public static boolean getShowGTalkServiceStatus(android.content.ContentResolver);
+    method public static String getString(android.content.ContentResolver, String);
+    method public static android.net.Uri getUriFor(String);
     method public static boolean putConfiguration(android.content.ContentResolver, android.content.res.Configuration);
-    method public static boolean putFloat(android.content.ContentResolver, java.lang.String, float);
-    method public static boolean putInt(android.content.ContentResolver, java.lang.String, int);
-    method public static boolean putLong(android.content.ContentResolver, java.lang.String, long);
-    method public static boolean putString(android.content.ContentResolver, java.lang.String, java.lang.String);
-    method public static deprecated void setShowGTalkServiceStatus(android.content.ContentResolver, boolean);
-    field public static final java.lang.String ACCELEROMETER_ROTATION = "accelerometer_rotation";
-    field public static final deprecated java.lang.String ADB_ENABLED = "adb_enabled";
-    field public static final deprecated java.lang.String AIRPLANE_MODE_ON = "airplane_mode_on";
-    field public static final deprecated java.lang.String AIRPLANE_MODE_RADIOS = "airplane_mode_radios";
-    field public static final java.lang.String ALARM_ALERT = "alarm_alert";
-    field public static final deprecated java.lang.String ALWAYS_FINISH_ACTIVITIES = "always_finish_activities";
-    field public static final deprecated java.lang.String ANDROID_ID = "android_id";
-    field public static final deprecated java.lang.String ANIMATOR_DURATION_SCALE = "animator_duration_scale";
-    field public static final deprecated java.lang.String AUTO_TIME = "auto_time";
-    field public static final deprecated java.lang.String AUTO_TIME_ZONE = "auto_time_zone";
-    field public static final java.lang.String BLUETOOTH_DISCOVERABILITY = "bluetooth_discoverability";
-    field public static final java.lang.String BLUETOOTH_DISCOVERABILITY_TIMEOUT = "bluetooth_discoverability_timeout";
-    field public static final deprecated java.lang.String BLUETOOTH_ON = "bluetooth_on";
+    method public static boolean putFloat(android.content.ContentResolver, String, float);
+    method public static boolean putInt(android.content.ContentResolver, String, int);
+    method public static boolean putLong(android.content.ContentResolver, String, long);
+    method public static boolean putString(android.content.ContentResolver, String, String);
+    method @Deprecated public static void setShowGTalkServiceStatus(android.content.ContentResolver, boolean);
+    field public static final String ACCELEROMETER_ROTATION = "accelerometer_rotation";
+    field @Deprecated public static final String ADB_ENABLED = "adb_enabled";
+    field @Deprecated public static final String AIRPLANE_MODE_ON = "airplane_mode_on";
+    field @Deprecated public static final String AIRPLANE_MODE_RADIOS = "airplane_mode_radios";
+    field public static final String ALARM_ALERT = "alarm_alert";
+    field @Deprecated public static final String ALWAYS_FINISH_ACTIVITIES = "always_finish_activities";
+    field @Deprecated public static final String ANDROID_ID = "android_id";
+    field @Deprecated public static final String ANIMATOR_DURATION_SCALE = "animator_duration_scale";
+    field @Deprecated public static final String AUTO_TIME = "auto_time";
+    field @Deprecated public static final String AUTO_TIME_ZONE = "auto_time_zone";
+    field public static final String BLUETOOTH_DISCOVERABILITY = "bluetooth_discoverability";
+    field public static final String BLUETOOTH_DISCOVERABILITY_TIMEOUT = "bluetooth_discoverability_timeout";
+    field @Deprecated public static final String BLUETOOTH_ON = "bluetooth_on";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String DATA_ROAMING = "data_roaming";
-    field public static final java.lang.String DATE_FORMAT = "date_format";
-    field public static final deprecated java.lang.String DEBUG_APP = "debug_app";
+    field @Deprecated public static final String DATA_ROAMING = "data_roaming";
+    field public static final String DATE_FORMAT = "date_format";
+    field @Deprecated public static final String DEBUG_APP = "debug_app";
     field public static final android.net.Uri DEFAULT_ALARM_ALERT_URI;
     field public static final android.net.Uri DEFAULT_NOTIFICATION_URI;
     field public static final android.net.Uri DEFAULT_RINGTONE_URI;
-    field public static final deprecated java.lang.String DEVICE_PROVISIONED = "device_provisioned";
-    field public static final deprecated java.lang.String DIM_SCREEN = "dim_screen";
-    field public static final java.lang.String DTMF_TONE_TYPE_WHEN_DIALING = "dtmf_tone_type";
-    field public static final java.lang.String DTMF_TONE_WHEN_DIALING = "dtmf_tone";
-    field public static final java.lang.String END_BUTTON_BEHAVIOR = "end_button_behavior";
-    field public static final java.lang.String FONT_SCALE = "font_scale";
-    field public static final java.lang.String HAPTIC_FEEDBACK_ENABLED = "haptic_feedback_enabled";
-    field public static final deprecated java.lang.String HTTP_PROXY = "http_proxy";
-    field public static final deprecated java.lang.String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
-    field public static final deprecated java.lang.String LOCATION_PROVIDERS_ALLOWED = "location_providers_allowed";
-    field public static final deprecated java.lang.String LOCK_PATTERN_ENABLED = "lock_pattern_autolock";
-    field public static final deprecated java.lang.String LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED = "lock_pattern_tactile_feedback_enabled";
-    field public static final deprecated java.lang.String LOCK_PATTERN_VISIBLE = "lock_pattern_visible_pattern";
-    field public static final deprecated java.lang.String LOGGING_ID = "logging_id";
-    field public static final deprecated java.lang.String MODE_RINGER = "mode_ringer";
-    field public static final java.lang.String MODE_RINGER_STREAMS_AFFECTED = "mode_ringer_streams_affected";
-    field public static final java.lang.String MUTE_STREAMS_AFFECTED = "mute_streams_affected";
-    field public static final deprecated java.lang.String NETWORK_PREFERENCE = "network_preference";
-    field public static final deprecated java.lang.String NEXT_ALARM_FORMATTED = "next_alarm_formatted";
-    field public static final java.lang.String NOTIFICATION_SOUND = "notification_sound";
-    field public static final deprecated java.lang.String PARENTAL_CONTROL_ENABLED = "parental_control_enabled";
-    field public static final deprecated java.lang.String PARENTAL_CONTROL_LAST_UPDATE = "parental_control_last_update";
-    field public static final deprecated java.lang.String PARENTAL_CONTROL_REDIRECT_URL = "parental_control_redirect_url";
-    field public static final deprecated java.lang.String RADIO_BLUETOOTH = "bluetooth";
-    field public static final deprecated java.lang.String RADIO_CELL = "cell";
-    field public static final deprecated java.lang.String RADIO_NFC = "nfc";
-    field public static final deprecated java.lang.String RADIO_WIFI = "wifi";
-    field public static final java.lang.String RINGTONE = "ringtone";
-    field public static final java.lang.String SCREEN_BRIGHTNESS = "screen_brightness";
-    field public static final java.lang.String SCREEN_BRIGHTNESS_MODE = "screen_brightness_mode";
+    field @Deprecated public static final String DEVICE_PROVISIONED = "device_provisioned";
+    field @Deprecated public static final String DIM_SCREEN = "dim_screen";
+    field public static final String DTMF_TONE_TYPE_WHEN_DIALING = "dtmf_tone_type";
+    field public static final String DTMF_TONE_WHEN_DIALING = "dtmf_tone";
+    field public static final String END_BUTTON_BEHAVIOR = "end_button_behavior";
+    field public static final String FONT_SCALE = "font_scale";
+    field public static final String HAPTIC_FEEDBACK_ENABLED = "haptic_feedback_enabled";
+    field @Deprecated public static final String HTTP_PROXY = "http_proxy";
+    field @Deprecated public static final String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
+    field @Deprecated public static final String LOCATION_PROVIDERS_ALLOWED = "location_providers_allowed";
+    field @Deprecated public static final String LOCK_PATTERN_ENABLED = "lock_pattern_autolock";
+    field @Deprecated public static final String LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED = "lock_pattern_tactile_feedback_enabled";
+    field @Deprecated public static final String LOCK_PATTERN_VISIBLE = "lock_pattern_visible_pattern";
+    field @Deprecated public static final String LOGGING_ID = "logging_id";
+    field @Deprecated public static final String MODE_RINGER = "mode_ringer";
+    field public static final String MODE_RINGER_STREAMS_AFFECTED = "mode_ringer_streams_affected";
+    field public static final String MUTE_STREAMS_AFFECTED = "mute_streams_affected";
+    field @Deprecated public static final String NETWORK_PREFERENCE = "network_preference";
+    field @Deprecated public static final String NEXT_ALARM_FORMATTED = "next_alarm_formatted";
+    field public static final String NOTIFICATION_SOUND = "notification_sound";
+    field @Deprecated public static final String PARENTAL_CONTROL_ENABLED = "parental_control_enabled";
+    field @Deprecated public static final String PARENTAL_CONTROL_LAST_UPDATE = "parental_control_last_update";
+    field @Deprecated public static final String PARENTAL_CONTROL_REDIRECT_URL = "parental_control_redirect_url";
+    field @Deprecated public static final String RADIO_BLUETOOTH = "bluetooth";
+    field @Deprecated public static final String RADIO_CELL = "cell";
+    field @Deprecated public static final String RADIO_NFC = "nfc";
+    field @Deprecated public static final String RADIO_WIFI = "wifi";
+    field public static final String RINGTONE = "ringtone";
+    field public static final String SCREEN_BRIGHTNESS = "screen_brightness";
+    field public static final String SCREEN_BRIGHTNESS_MODE = "screen_brightness_mode";
     field public static final int SCREEN_BRIGHTNESS_MODE_AUTOMATIC = 1; // 0x1
     field public static final int SCREEN_BRIGHTNESS_MODE_MANUAL = 0; // 0x0
-    field public static final java.lang.String SCREEN_OFF_TIMEOUT = "screen_off_timeout";
-    field public static final deprecated java.lang.String SETTINGS_CLASSNAME = "settings_classname";
-    field public static final java.lang.String SETUP_WIZARD_HAS_RUN = "setup_wizard_has_run";
-    field public static final java.lang.String SHOW_GTALK_SERVICE_STATUS = "SHOW_GTALK_SERVICE_STATUS";
-    field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes";
-    field public static final deprecated java.lang.String SHOW_WEB_SUGGESTIONS = "show_web_suggestions";
-    field public static final java.lang.String SOUND_EFFECTS_ENABLED = "sound_effects_enabled";
-    field public static final deprecated java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
-    field public static final java.lang.String TEXT_AUTO_CAPS = "auto_caps";
-    field public static final java.lang.String TEXT_AUTO_PUNCTUATE = "auto_punctuate";
-    field public static final java.lang.String TEXT_AUTO_REPLACE = "auto_replace";
-    field public static final java.lang.String TEXT_SHOW_PASSWORD = "show_password";
-    field public static final java.lang.String TIME_12_24 = "time_12_24";
-    field public static final deprecated java.lang.String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
-    field public static final deprecated java.lang.String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled";
-    field public static final java.lang.String USER_ROTATION = "user_rotation";
-    field public static final deprecated java.lang.String USE_GOOGLE_MAIL = "use_google_mail";
-    field public static final java.lang.String VIBRATE_ON = "vibrate_on";
-    field public static final java.lang.String VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
-    field public static final deprecated java.lang.String WAIT_FOR_DEBUGGER = "wait_for_debugger";
-    field public static final deprecated java.lang.String WALLPAPER_ACTIVITY = "wallpaper_activity";
-    field public static final deprecated java.lang.String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
-    field public static final deprecated java.lang.String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS = "wifi_mobile_data_transition_wakelock_timeout_ms";
-    field public static final deprecated java.lang.String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = "wifi_networks_available_notification_on";
-    field public static final deprecated java.lang.String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = "wifi_networks_available_repeat_delay";
-    field public static final deprecated java.lang.String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept";
-    field public static final deprecated java.lang.String WIFI_ON = "wifi_on";
-    field public static final deprecated java.lang.String WIFI_SLEEP_POLICY = "wifi_sleep_policy";
-    field public static final deprecated int WIFI_SLEEP_POLICY_DEFAULT = 0; // 0x0
-    field public static final deprecated int WIFI_SLEEP_POLICY_NEVER = 2; // 0x2
-    field public static final deprecated int WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED = 1; // 0x1
-    field public static final deprecated java.lang.String WIFI_STATIC_DNS1 = "wifi_static_dns1";
-    field public static final deprecated java.lang.String WIFI_STATIC_DNS2 = "wifi_static_dns2";
-    field public static final deprecated java.lang.String WIFI_STATIC_GATEWAY = "wifi_static_gateway";
-    field public static final deprecated java.lang.String WIFI_STATIC_IP = "wifi_static_ip";
-    field public static final deprecated java.lang.String WIFI_STATIC_NETMASK = "wifi_static_netmask";
-    field public static final deprecated java.lang.String WIFI_USE_STATIC_IP = "wifi_use_static_ip";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE = "wifi_watchdog_acceptable_packet_loss_percentage";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_AP_COUNT = "wifi_watchdog_ap_count";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS = "wifi_watchdog_background_check_delay_ms";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED = "wifi_watchdog_background_check_enabled";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS = "wifi_watchdog_background_check_timeout_ms";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT = "wifi_watchdog_initial_ignored_ping_count";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_MAX_AP_CHECKS = "wifi_watchdog_max_ap_checks";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_ON = "wifi_watchdog_on";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_PING_COUNT = "wifi_watchdog_ping_count";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_PING_DELAY_MS = "wifi_watchdog_ping_delay_ms";
-    field public static final deprecated java.lang.String WIFI_WATCHDOG_PING_TIMEOUT_MS = "wifi_watchdog_ping_timeout_ms";
-    field public static final deprecated java.lang.String WINDOW_ANIMATION_SCALE = "window_animation_scale";
+    field public static final String SCREEN_OFF_TIMEOUT = "screen_off_timeout";
+    field @Deprecated public static final String SETTINGS_CLASSNAME = "settings_classname";
+    field public static final String SETUP_WIZARD_HAS_RUN = "setup_wizard_has_run";
+    field public static final String SHOW_GTALK_SERVICE_STATUS = "SHOW_GTALK_SERVICE_STATUS";
+    field @Deprecated public static final String SHOW_PROCESSES = "show_processes";
+    field @Deprecated public static final String SHOW_WEB_SUGGESTIONS = "show_web_suggestions";
+    field public static final String SOUND_EFFECTS_ENABLED = "sound_effects_enabled";
+    field @Deprecated public static final String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
+    field public static final String TEXT_AUTO_CAPS = "auto_caps";
+    field public static final String TEXT_AUTO_PUNCTUATE = "auto_punctuate";
+    field public static final String TEXT_AUTO_REPLACE = "auto_replace";
+    field public static final String TEXT_SHOW_PASSWORD = "show_password";
+    field public static final String TIME_12_24 = "time_12_24";
+    field @Deprecated public static final String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
+    field @Deprecated public static final String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled";
+    field public static final String USER_ROTATION = "user_rotation";
+    field @Deprecated public static final String USE_GOOGLE_MAIL = "use_google_mail";
+    field public static final String VIBRATE_ON = "vibrate_on";
+    field public static final String VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
+    field @Deprecated public static final String WAIT_FOR_DEBUGGER = "wait_for_debugger";
+    field @Deprecated public static final String WALLPAPER_ACTIVITY = "wallpaper_activity";
+    field @Deprecated public static final String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
+    field @Deprecated public static final String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS = "wifi_mobile_data_transition_wakelock_timeout_ms";
+    field @Deprecated public static final String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON = "wifi_networks_available_notification_on";
+    field @Deprecated public static final String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY = "wifi_networks_available_repeat_delay";
+    field @Deprecated public static final String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept";
+    field @Deprecated public static final String WIFI_ON = "wifi_on";
+    field @Deprecated public static final String WIFI_SLEEP_POLICY = "wifi_sleep_policy";
+    field @Deprecated public static final int WIFI_SLEEP_POLICY_DEFAULT = 0; // 0x0
+    field @Deprecated public static final int WIFI_SLEEP_POLICY_NEVER = 2; // 0x2
+    field @Deprecated public static final int WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED = 1; // 0x1
+    field @Deprecated public static final String WIFI_STATIC_DNS1 = "wifi_static_dns1";
+    field @Deprecated public static final String WIFI_STATIC_DNS2 = "wifi_static_dns2";
+    field @Deprecated public static final String WIFI_STATIC_GATEWAY = "wifi_static_gateway";
+    field @Deprecated public static final String WIFI_STATIC_IP = "wifi_static_ip";
+    field @Deprecated public static final String WIFI_STATIC_NETMASK = "wifi_static_netmask";
+    field @Deprecated public static final String WIFI_USE_STATIC_IP = "wifi_use_static_ip";
+    field @Deprecated public static final String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE = "wifi_watchdog_acceptable_packet_loss_percentage";
+    field @Deprecated public static final String WIFI_WATCHDOG_AP_COUNT = "wifi_watchdog_ap_count";
+    field @Deprecated public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS = "wifi_watchdog_background_check_delay_ms";
+    field @Deprecated public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED = "wifi_watchdog_background_check_enabled";
+    field @Deprecated public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS = "wifi_watchdog_background_check_timeout_ms";
+    field @Deprecated public static final String WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT = "wifi_watchdog_initial_ignored_ping_count";
+    field @Deprecated public static final String WIFI_WATCHDOG_MAX_AP_CHECKS = "wifi_watchdog_max_ap_checks";
+    field @Deprecated public static final String WIFI_WATCHDOG_ON = "wifi_watchdog_on";
+    field @Deprecated public static final String WIFI_WATCHDOG_PING_COUNT = "wifi_watchdog_ping_count";
+    field @Deprecated public static final String WIFI_WATCHDOG_PING_DELAY_MS = "wifi_watchdog_ping_delay_ms";
+    field @Deprecated public static final String WIFI_WATCHDOG_PING_TIMEOUT_MS = "wifi_watchdog_ping_timeout_ms";
+    field @Deprecated public static final String WINDOW_ANIMATION_SCALE = "window_animation_scale";
   }
 
   public class SettingsSlicesContract {
-    field public static final java.lang.String AUTHORITY = "android.settings.slices";
+    field public static final String AUTHORITY = "android.settings.slices";
     field public static final android.net.Uri BASE_URI;
-    field public static final java.lang.String KEY_AIRPLANE_MODE = "airplane_mode";
-    field public static final java.lang.String KEY_BATTERY_SAVER = "battery_saver";
-    field public static final java.lang.String KEY_BLUETOOTH = "bluetooth";
-    field public static final java.lang.String KEY_LOCATION = "location";
-    field public static final java.lang.String KEY_WIFI = "wifi";
-    field public static final java.lang.String PATH_SETTING_ACTION = "action";
-    field public static final java.lang.String PATH_SETTING_INTENT = "intent";
+    field public static final String KEY_AIRPLANE_MODE = "airplane_mode";
+    field public static final String KEY_BATTERY_SAVER = "battery_saver";
+    field public static final String KEY_BLUETOOTH = "bluetooth";
+    field public static final String KEY_LOCATION = "location";
+    field public static final String KEY_WIFI = "wifi";
+    field public static final String PATH_SETTING_ACTION = "action";
+    field public static final String PATH_SETTING_INTENT = "intent";
   }
 
   public class SyncStateContract {
     ctor public SyncStateContract();
   }
 
-  public static abstract interface SyncStateContract.Columns implements android.provider.BaseColumns {
-    field public static final java.lang.String ACCOUNT_NAME = "account_name";
-    field public static final java.lang.String ACCOUNT_TYPE = "account_type";
-    field public static final java.lang.String DATA = "data";
+  public static interface SyncStateContract.Columns extends android.provider.BaseColumns {
+    field public static final String ACCOUNT_NAME = "account_name";
+    field public static final String ACCOUNT_TYPE = "account_type";
+    field public static final String DATA = "data";
   }
 
   public static class SyncStateContract.Constants implements android.provider.SyncStateContract.Columns {
     ctor public SyncStateContract.Constants();
-    field public static final java.lang.String CONTENT_DIRECTORY = "syncstate";
+    field public static final String CONTENT_DIRECTORY = "syncstate";
   }
 
   public static final class SyncStateContract.Helpers {
     ctor public SyncStateContract.Helpers();
     method public static byte[] get(android.content.ContentProviderClient, android.net.Uri, android.accounts.Account) throws android.os.RemoteException;
-    method public static android.util.Pair<android.net.Uri, byte[]> getWithUri(android.content.ContentProviderClient, android.net.Uri, android.accounts.Account) throws android.os.RemoteException;
+    method public static android.util.Pair<android.net.Uri,byte[]> getWithUri(android.content.ContentProviderClient, android.net.Uri, android.accounts.Account) throws android.os.RemoteException;
     method public static android.net.Uri insert(android.content.ContentProviderClient, android.net.Uri, android.accounts.Account, byte[]) throws android.os.RemoteException;
     method public static android.content.ContentProviderOperation newSetOperation(android.net.Uri, android.accounts.Account, byte[]);
     method public static android.content.ContentProviderOperation newUpdateOperation(android.net.Uri, byte[]);
@@ -39024,153 +38934,153 @@
   public final class Telephony {
   }
 
-  public static abstract interface Telephony.BaseMmsColumns implements android.provider.BaseColumns {
-    field public static final java.lang.String CONTENT_CLASS = "ct_cls";
-    field public static final java.lang.String CONTENT_LOCATION = "ct_l";
-    field public static final java.lang.String CONTENT_TYPE = "ct_t";
-    field public static final java.lang.String CREATOR = "creator";
-    field public static final java.lang.String DATE = "date";
-    field public static final java.lang.String DATE_SENT = "date_sent";
-    field public static final java.lang.String DELIVERY_REPORT = "d_rpt";
-    field public static final java.lang.String DELIVERY_TIME = "d_tm";
-    field public static final java.lang.String EXPIRY = "exp";
-    field public static final java.lang.String LOCKED = "locked";
-    field public static final java.lang.String MESSAGE_BOX = "msg_box";
+  public static interface Telephony.BaseMmsColumns extends android.provider.BaseColumns {
+    field public static final String CONTENT_CLASS = "ct_cls";
+    field public static final String CONTENT_LOCATION = "ct_l";
+    field public static final String CONTENT_TYPE = "ct_t";
+    field public static final String CREATOR = "creator";
+    field public static final String DATE = "date";
+    field public static final String DATE_SENT = "date_sent";
+    field public static final String DELIVERY_REPORT = "d_rpt";
+    field public static final String DELIVERY_TIME = "d_tm";
+    field public static final String EXPIRY = "exp";
+    field public static final String LOCKED = "locked";
+    field public static final String MESSAGE_BOX = "msg_box";
     field public static final int MESSAGE_BOX_ALL = 0; // 0x0
     field public static final int MESSAGE_BOX_DRAFTS = 3; // 0x3
     field public static final int MESSAGE_BOX_FAILED = 5; // 0x5
     field public static final int MESSAGE_BOX_INBOX = 1; // 0x1
     field public static final int MESSAGE_BOX_OUTBOX = 4; // 0x4
     field public static final int MESSAGE_BOX_SENT = 2; // 0x2
-    field public static final java.lang.String MESSAGE_CLASS = "m_cls";
-    field public static final java.lang.String MESSAGE_ID = "m_id";
-    field public static final java.lang.String MESSAGE_SIZE = "m_size";
-    field public static final java.lang.String MESSAGE_TYPE = "m_type";
-    field public static final java.lang.String MMS_VERSION = "v";
-    field public static final java.lang.String PRIORITY = "pri";
-    field public static final java.lang.String READ = "read";
-    field public static final java.lang.String READ_REPORT = "rr";
-    field public static final java.lang.String READ_STATUS = "read_status";
-    field public static final java.lang.String REPORT_ALLOWED = "rpt_a";
-    field public static final java.lang.String RESPONSE_STATUS = "resp_st";
-    field public static final java.lang.String RESPONSE_TEXT = "resp_txt";
-    field public static final java.lang.String RETRIEVE_STATUS = "retr_st";
-    field public static final java.lang.String RETRIEVE_TEXT = "retr_txt";
-    field public static final java.lang.String RETRIEVE_TEXT_CHARSET = "retr_txt_cs";
-    field public static final java.lang.String SEEN = "seen";
-    field public static final java.lang.String STATUS = "st";
-    field public static final java.lang.String SUBJECT = "sub";
-    field public static final java.lang.String SUBJECT_CHARSET = "sub_cs";
-    field public static final java.lang.String SUBSCRIPTION_ID = "sub_id";
-    field public static final java.lang.String TEXT_ONLY = "text_only";
-    field public static final java.lang.String THREAD_ID = "thread_id";
-    field public static final java.lang.String TRANSACTION_ID = "tr_id";
+    field public static final String MESSAGE_CLASS = "m_cls";
+    field public static final String MESSAGE_ID = "m_id";
+    field public static final String MESSAGE_SIZE = "m_size";
+    field public static final String MESSAGE_TYPE = "m_type";
+    field public static final String MMS_VERSION = "v";
+    field public static final String PRIORITY = "pri";
+    field public static final String READ = "read";
+    field public static final String READ_REPORT = "rr";
+    field public static final String READ_STATUS = "read_status";
+    field public static final String REPORT_ALLOWED = "rpt_a";
+    field public static final String RESPONSE_STATUS = "resp_st";
+    field public static final String RESPONSE_TEXT = "resp_txt";
+    field public static final String RETRIEVE_STATUS = "retr_st";
+    field public static final String RETRIEVE_TEXT = "retr_txt";
+    field public static final String RETRIEVE_TEXT_CHARSET = "retr_txt_cs";
+    field public static final String SEEN = "seen";
+    field public static final String STATUS = "st";
+    field public static final String SUBJECT = "sub";
+    field public static final String SUBJECT_CHARSET = "sub_cs";
+    field public static final String SUBSCRIPTION_ID = "sub_id";
+    field public static final String TEXT_ONLY = "text_only";
+    field public static final String THREAD_ID = "thread_id";
+    field public static final String TRANSACTION_ID = "tr_id";
   }
 
-  public static abstract interface Telephony.CanonicalAddressesColumns implements android.provider.BaseColumns {
-    field public static final java.lang.String ADDRESS = "address";
+  public static interface Telephony.CanonicalAddressesColumns extends android.provider.BaseColumns {
+    field public static final String ADDRESS = "address";
   }
 
   public static final class Telephony.CarrierId implements android.provider.BaseColumns {
     method public static android.net.Uri getPreciseCarrierIdUriForSubscriptionId(int);
     method public static android.net.Uri getUriForSubscriptionId(int);
-    field public static final java.lang.String CARRIER_ID = "carrier_id";
-    field public static final java.lang.String CARRIER_NAME = "carrier_name";
+    field public static final String CARRIER_ID = "carrier_id";
+    field public static final String CARRIER_NAME = "carrier_name";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String PRECISE_CARRIER_ID = "precise_carrier_id";
-    field public static final java.lang.String PRECISE_CARRIER_ID_NAME = "precise_carrier_id_name";
+    field public static final String PRECISE_CARRIER_ID = "precise_carrier_id";
+    field public static final String PRECISE_CARRIER_ID_NAME = "precise_carrier_id_name";
   }
 
   public static final class Telephony.Carriers implements android.provider.BaseColumns {
-    field public static final java.lang.String APN = "apn";
-    field public static final java.lang.String AUTH_TYPE = "authtype";
-    field public static final deprecated java.lang.String BEARER = "bearer";
-    field public static final java.lang.String CARRIER_ENABLED = "carrier_enabled";
-    field public static final java.lang.String CARRIER_ID = "carrier_id";
+    field public static final String APN = "apn";
+    field public static final String AUTH_TYPE = "authtype";
+    field @Deprecated public static final String BEARER = "bearer";
+    field public static final String CARRIER_ENABLED = "carrier_enabled";
+    field public static final String CARRIER_ID = "carrier_id";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String CURRENT = "current";
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "name ASC";
-    field public static final deprecated java.lang.String MCC = "mcc";
-    field public static final java.lang.String MMSC = "mmsc";
-    field public static final java.lang.String MMSPORT = "mmsport";
-    field public static final java.lang.String MMSPROXY = "mmsproxy";
-    field public static final deprecated java.lang.String MNC = "mnc";
-    field public static final deprecated java.lang.String MVNO_MATCH_DATA = "mvno_match_data";
-    field public static final deprecated java.lang.String MVNO_TYPE = "mvno_type";
-    field public static final java.lang.String NAME = "name";
-    field public static final java.lang.String NETWORK_TYPE_BITMASK = "network_type_bitmask";
-    field public static final deprecated java.lang.String NUMERIC = "numeric";
-    field public static final java.lang.String PASSWORD = "password";
-    field public static final java.lang.String PORT = "port";
-    field public static final java.lang.String PROTOCOL = "protocol";
-    field public static final java.lang.String PROXY = "proxy";
-    field public static final java.lang.String ROAMING_PROTOCOL = "roaming_protocol";
-    field public static final java.lang.String SERVER = "server";
+    field public static final String CURRENT = "current";
+    field public static final String DEFAULT_SORT_ORDER = "name ASC";
+    field @Deprecated public static final String MCC = "mcc";
+    field public static final String MMSC = "mmsc";
+    field public static final String MMSPORT = "mmsport";
+    field public static final String MMSPROXY = "mmsproxy";
+    field @Deprecated public static final String MNC = "mnc";
+    field @Deprecated public static final String MVNO_MATCH_DATA = "mvno_match_data";
+    field @Deprecated public static final String MVNO_TYPE = "mvno_type";
+    field public static final String NAME = "name";
+    field public static final String NETWORK_TYPE_BITMASK = "network_type_bitmask";
+    field @Deprecated public static final String NUMERIC = "numeric";
+    field public static final String PASSWORD = "password";
+    field public static final String PORT = "port";
+    field public static final String PROTOCOL = "protocol";
+    field public static final String PROXY = "proxy";
+    field public static final String ROAMING_PROTOCOL = "roaming_protocol";
+    field public static final String SERVER = "server";
     field public static final android.net.Uri SIM_APN_URI;
-    field public static final java.lang.String SUBSCRIPTION_ID = "sub_id";
-    field public static final java.lang.String TYPE = "type";
-    field public static final java.lang.String USER = "user";
+    field public static final String SUBSCRIPTION_ID = "sub_id";
+    field public static final String TYPE = "type";
+    field public static final String USER = "user";
   }
 
   public static final class Telephony.Mms implements android.provider.Telephony.BaseMmsColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
     field public static final android.net.Uri REPORT_REQUEST_URI;
     field public static final android.net.Uri REPORT_STATUS_URI;
   }
 
   public static final class Telephony.Mms.Addr implements android.provider.BaseColumns {
-    field public static final java.lang.String ADDRESS = "address";
-    field public static final java.lang.String CHARSET = "charset";
-    field public static final java.lang.String CONTACT_ID = "contact_id";
-    field public static final java.lang.String MSG_ID = "msg_id";
-    field public static final java.lang.String TYPE = "type";
+    field public static final String ADDRESS = "address";
+    field public static final String CHARSET = "charset";
+    field public static final String CONTACT_ID = "contact_id";
+    field public static final String MSG_ID = "msg_id";
+    field public static final String TYPE = "type";
   }
 
   public static final class Telephony.Mms.Draft implements android.provider.Telephony.BaseMmsColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
   }
 
   public static final class Telephony.Mms.Inbox implements android.provider.Telephony.BaseMmsColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
   }
 
   public static final class Telephony.Mms.Intents {
-    field public static final java.lang.String CONTENT_CHANGED_ACTION = "android.intent.action.CONTENT_CHANGED";
-    field public static final java.lang.String DELETED_CONTENTS = "deleted_contents";
+    field public static final String CONTENT_CHANGED_ACTION = "android.intent.action.CONTENT_CHANGED";
+    field public static final String DELETED_CONTENTS = "deleted_contents";
   }
 
   public static final class Telephony.Mms.Outbox implements android.provider.Telephony.BaseMmsColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
   }
 
   public static final class Telephony.Mms.Part implements android.provider.BaseColumns {
-    field public static final java.lang.String CHARSET = "chset";
-    field public static final java.lang.String CONTENT_DISPOSITION = "cd";
-    field public static final java.lang.String CONTENT_ID = "cid";
-    field public static final java.lang.String CONTENT_LOCATION = "cl";
-    field public static final java.lang.String CONTENT_TYPE = "ct";
-    field public static final java.lang.String CT_START = "ctt_s";
-    field public static final java.lang.String CT_TYPE = "ctt_t";
-    field public static final java.lang.String FILENAME = "fn";
-    field public static final java.lang.String MSG_ID = "mid";
-    field public static final java.lang.String NAME = "name";
-    field public static final java.lang.String SEQ = "seq";
-    field public static final java.lang.String TEXT = "text";
-    field public static final java.lang.String _DATA = "_data";
+    field public static final String CHARSET = "chset";
+    field public static final String CONTENT_DISPOSITION = "cd";
+    field public static final String CONTENT_ID = "cid";
+    field public static final String CONTENT_LOCATION = "cl";
+    field public static final String CONTENT_TYPE = "ct";
+    field public static final String CT_START = "ctt_s";
+    field public static final String CT_TYPE = "ctt_t";
+    field public static final String FILENAME = "fn";
+    field public static final String MSG_ID = "mid";
+    field public static final String NAME = "name";
+    field public static final String SEQ = "seq";
+    field public static final String TEXT = "text";
+    field public static final String _DATA = "_data";
   }
 
   public static final class Telephony.Mms.Rate {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String SENT_TIME = "sent_time";
+    field public static final String SENT_TIME = "sent_time";
   }
 
   public static final class Telephony.Mms.Sent implements android.provider.Telephony.BaseMmsColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
   }
 
   public static final class Telephony.MmsSms implements android.provider.BaseColumns {
@@ -39191,97 +39101,97 @@
     field public static final int NO_ERROR = 0; // 0x0
     field public static final android.net.Uri SEARCH_URI;
     field public static final int SMS_PROTO = 0; // 0x0
-    field public static final java.lang.String TYPE_DISCRIMINATOR_COLUMN = "transport_type";
+    field public static final String TYPE_DISCRIMINATOR_COLUMN = "transport_type";
   }
 
   public static final class Telephony.MmsSms.PendingMessages implements android.provider.BaseColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DUE_TIME = "due_time";
-    field public static final java.lang.String ERROR_CODE = "err_code";
-    field public static final java.lang.String ERROR_TYPE = "err_type";
-    field public static final java.lang.String LAST_TRY = "last_try";
-    field public static final java.lang.String MSG_ID = "msg_id";
-    field public static final java.lang.String MSG_TYPE = "msg_type";
-    field public static final java.lang.String PROTO_TYPE = "proto_type";
-    field public static final java.lang.String RETRY_INDEX = "retry_index";
-    field public static final java.lang.String SUBSCRIPTION_ID = "pending_sub_id";
+    field public static final String DUE_TIME = "due_time";
+    field public static final String ERROR_CODE = "err_code";
+    field public static final String ERROR_TYPE = "err_type";
+    field public static final String LAST_TRY = "last_try";
+    field public static final String MSG_ID = "msg_id";
+    field public static final String MSG_TYPE = "msg_type";
+    field public static final String PROTO_TYPE = "proto_type";
+    field public static final String RETRY_INDEX = "retry_index";
+    field public static final String SUBSCRIPTION_ID = "pending_sub_id";
   }
 
   public static final class Telephony.ServiceStateTable {
     method public static android.net.Uri getUriForSubscriptionId(int);
-    method public static android.net.Uri getUriForSubscriptionIdAndField(int, java.lang.String);
-    field public static final java.lang.String AUTHORITY = "service-state";
+    method public static android.net.Uri getUriForSubscriptionIdAndField(int, String);
+    field public static final String AUTHORITY = "service-state";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String IS_MANUAL_NETWORK_SELECTION = "is_manual_network_selection";
-    field public static final java.lang.String VOICE_OPERATOR_NUMERIC = "voice_operator_numeric";
-    field public static final java.lang.String VOICE_REG_STATE = "voice_reg_state";
+    field public static final String IS_MANUAL_NETWORK_SELECTION = "is_manual_network_selection";
+    field public static final String VOICE_OPERATOR_NUMERIC = "voice_operator_numeric";
+    field public static final String VOICE_REG_STATE = "voice_reg_state";
   }
 
   public static final class Telephony.Sms implements android.provider.BaseColumns android.provider.Telephony.TextBasedSmsColumns {
-    method public static java.lang.String getDefaultSmsPackage(android.content.Context);
+    method public static String getDefaultSmsPackage(android.content.Context);
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
   }
 
   public static final class Telephony.Sms.Conversations implements android.provider.BaseColumns android.provider.Telephony.TextBasedSmsColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
-    field public static final java.lang.String MESSAGE_COUNT = "msg_count";
-    field public static final java.lang.String SNIPPET = "snippet";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String MESSAGE_COUNT = "msg_count";
+    field public static final String SNIPPET = "snippet";
   }
 
   public static final class Telephony.Sms.Draft implements android.provider.BaseColumns android.provider.Telephony.TextBasedSmsColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
   }
 
   public static final class Telephony.Sms.Inbox implements android.provider.BaseColumns android.provider.Telephony.TextBasedSmsColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
   }
 
   public static final class Telephony.Sms.Intents {
     method public static android.telephony.SmsMessage[] getMessagesFromIntent(android.content.Intent);
-    field public static final java.lang.String ACTION_CHANGE_DEFAULT = "android.provider.Telephony.ACTION_CHANGE_DEFAULT";
-    field public static final java.lang.String ACTION_DEFAULT_SMS_PACKAGE_CHANGED = "android.provider.action.DEFAULT_SMS_PACKAGE_CHANGED";
-    field public static final java.lang.String ACTION_EXTERNAL_PROVIDER_CHANGE = "android.provider.action.EXTERNAL_PROVIDER_CHANGE";
-    field public static final java.lang.String DATA_SMS_RECEIVED_ACTION = "android.intent.action.DATA_SMS_RECEIVED";
-    field public static final java.lang.String EXTRA_IS_DEFAULT_SMS_APP = "android.provider.extra.IS_DEFAULT_SMS_APP";
-    field public static final java.lang.String EXTRA_PACKAGE_NAME = "package";
+    field public static final String ACTION_CHANGE_DEFAULT = "android.provider.Telephony.ACTION_CHANGE_DEFAULT";
+    field public static final String ACTION_DEFAULT_SMS_PACKAGE_CHANGED = "android.provider.action.DEFAULT_SMS_PACKAGE_CHANGED";
+    field public static final String ACTION_EXTERNAL_PROVIDER_CHANGE = "android.provider.action.EXTERNAL_PROVIDER_CHANGE";
+    field public static final String DATA_SMS_RECEIVED_ACTION = "android.intent.action.DATA_SMS_RECEIVED";
+    field public static final String EXTRA_IS_DEFAULT_SMS_APP = "android.provider.extra.IS_DEFAULT_SMS_APP";
+    field public static final String EXTRA_PACKAGE_NAME = "package";
     field public static final int RESULT_SMS_DUPLICATED = 5; // 0x5
     field public static final int RESULT_SMS_GENERIC_ERROR = 2; // 0x2
     field public static final int RESULT_SMS_HANDLED = 1; // 0x1
     field public static final int RESULT_SMS_OUT_OF_MEMORY = 3; // 0x3
     field public static final int RESULT_SMS_UNSUPPORTED = 4; // 0x4
-    field public static final deprecated java.lang.String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE";
-    field public static final java.lang.String SIM_FULL_ACTION = "android.provider.Telephony.SIM_FULL";
-    field public static final java.lang.String SMS_CB_RECEIVED_ACTION = "android.provider.Telephony.SMS_CB_RECEIVED";
-    field public static final java.lang.String SMS_DELIVER_ACTION = "android.provider.Telephony.SMS_DELIVER";
-    field public static final java.lang.String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
-    field public static final java.lang.String SMS_REJECTED_ACTION = "android.provider.Telephony.SMS_REJECTED";
-    field public static final java.lang.String SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED_ACTION = "android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED";
-    field public static final java.lang.String WAP_PUSH_DELIVER_ACTION = "android.provider.Telephony.WAP_PUSH_DELIVER";
-    field public static final java.lang.String WAP_PUSH_RECEIVED_ACTION = "android.provider.Telephony.WAP_PUSH_RECEIVED";
+    field @Deprecated public static final String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE";
+    field public static final String SIM_FULL_ACTION = "android.provider.Telephony.SIM_FULL";
+    field public static final String SMS_CB_RECEIVED_ACTION = "android.provider.Telephony.SMS_CB_RECEIVED";
+    field public static final String SMS_DELIVER_ACTION = "android.provider.Telephony.SMS_DELIVER";
+    field public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
+    field public static final String SMS_REJECTED_ACTION = "android.provider.Telephony.SMS_REJECTED";
+    field public static final String SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED_ACTION = "android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED";
+    field public static final String WAP_PUSH_DELIVER_ACTION = "android.provider.Telephony.WAP_PUSH_DELIVER";
+    field public static final String WAP_PUSH_RECEIVED_ACTION = "android.provider.Telephony.WAP_PUSH_RECEIVED";
   }
 
   public static final class Telephony.Sms.Outbox implements android.provider.BaseColumns android.provider.Telephony.TextBasedSmsColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
   }
 
   public static final class Telephony.Sms.Sent implements android.provider.BaseColumns android.provider.Telephony.TextBasedSmsColumns {
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
   }
 
-  public static abstract interface Telephony.TextBasedSmsColumns {
-    field public static final java.lang.String ADDRESS = "address";
-    field public static final java.lang.String BODY = "body";
-    field public static final java.lang.String CREATOR = "creator";
-    field public static final java.lang.String DATE = "date";
-    field public static final java.lang.String DATE_SENT = "date_sent";
-    field public static final java.lang.String ERROR_CODE = "error_code";
-    field public static final java.lang.String LOCKED = "locked";
+  public static interface Telephony.TextBasedSmsColumns {
+    field public static final String ADDRESS = "address";
+    field public static final String BODY = "body";
+    field public static final String CREATOR = "creator";
+    field public static final String DATE = "date";
+    field public static final String DATE_SENT = "date_sent";
+    field public static final String ERROR_CODE = "error_code";
+    field public static final String LOCKED = "locked";
     field public static final int MESSAGE_TYPE_ALL = 0; // 0x0
     field public static final int MESSAGE_TYPE_DRAFT = 3; // 0x3
     field public static final int MESSAGE_TYPE_FAILED = 5; // 0x5
@@ -39289,25 +39199,25 @@
     field public static final int MESSAGE_TYPE_OUTBOX = 4; // 0x4
     field public static final int MESSAGE_TYPE_QUEUED = 6; // 0x6
     field public static final int MESSAGE_TYPE_SENT = 2; // 0x2
-    field public static final java.lang.String PERSON = "person";
-    field public static final java.lang.String PROTOCOL = "protocol";
-    field public static final java.lang.String READ = "read";
-    field public static final java.lang.String REPLY_PATH_PRESENT = "reply_path_present";
-    field public static final java.lang.String SEEN = "seen";
-    field public static final java.lang.String SERVICE_CENTER = "service_center";
-    field public static final java.lang.String STATUS = "status";
+    field public static final String PERSON = "person";
+    field public static final String PROTOCOL = "protocol";
+    field public static final String READ = "read";
+    field public static final String REPLY_PATH_PRESENT = "reply_path_present";
+    field public static final String SEEN = "seen";
+    field public static final String SERVICE_CENTER = "service_center";
+    field public static final String STATUS = "status";
     field public static final int STATUS_COMPLETE = 0; // 0x0
     field public static final int STATUS_FAILED = 64; // 0x40
     field public static final int STATUS_NONE = -1; // 0xffffffff
     field public static final int STATUS_PENDING = 32; // 0x20
-    field public static final java.lang.String SUBJECT = "subject";
-    field public static final java.lang.String SUBSCRIPTION_ID = "sub_id";
-    field public static final java.lang.String THREAD_ID = "thread_id";
-    field public static final java.lang.String TYPE = "type";
+    field public static final String SUBJECT = "subject";
+    field public static final String SUBSCRIPTION_ID = "sub_id";
+    field public static final String THREAD_ID = "thread_id";
+    field public static final String TYPE = "type";
   }
 
   public static final class Telephony.Threads implements android.provider.Telephony.ThreadsColumns {
-    method public static long getOrCreateThreadId(android.content.Context, java.lang.String);
+    method public static long getOrCreateThreadId(android.content.Context, String);
     method public static long getOrCreateThreadId(android.content.Context, java.util.Set<java.lang.String>);
     field public static final int BROADCAST_THREAD = 1; // 0x1
     field public static final int COMMON_THREAD = 0; // 0x0
@@ -39315,56 +39225,56 @@
     field public static final android.net.Uri OBSOLETE_THREADS_URI;
   }
 
-  public static abstract interface Telephony.ThreadsColumns implements android.provider.BaseColumns {
-    field public static final java.lang.String ARCHIVED = "archived";
-    field public static final java.lang.String DATE = "date";
-    field public static final java.lang.String ERROR = "error";
-    field public static final java.lang.String HAS_ATTACHMENT = "has_attachment";
-    field public static final java.lang.String MESSAGE_COUNT = "message_count";
-    field public static final java.lang.String READ = "read";
-    field public static final java.lang.String RECIPIENT_IDS = "recipient_ids";
-    field public static final java.lang.String SNIPPET = "snippet";
-    field public static final java.lang.String SNIPPET_CHARSET = "snippet_cs";
-    field public static final java.lang.String TYPE = "type";
+  public static interface Telephony.ThreadsColumns extends android.provider.BaseColumns {
+    field public static final String ARCHIVED = "archived";
+    field public static final String DATE = "date";
+    field public static final String ERROR = "error";
+    field public static final String HAS_ATTACHMENT = "has_attachment";
+    field public static final String MESSAGE_COUNT = "message_count";
+    field public static final String READ = "read";
+    field public static final String RECIPIENT_IDS = "recipient_ids";
+    field public static final String SNIPPET = "snippet";
+    field public static final String SNIPPET_CHARSET = "snippet_cs";
+    field public static final String TYPE = "type";
   }
 
   public class UserDictionary {
     ctor public UserDictionary();
-    field public static final java.lang.String AUTHORITY = "user_dictionary";
+    field public static final String AUTHORITY = "user_dictionary";
     field public static final android.net.Uri CONTENT_URI;
   }
 
   public static class UserDictionary.Words implements android.provider.BaseColumns {
     ctor public UserDictionary.Words();
-    method public static deprecated void addWord(android.content.Context, java.lang.String, int, int);
-    method public static void addWord(android.content.Context, java.lang.String, int, java.lang.String, java.util.Locale);
-    field public static final java.lang.String APP_ID = "appid";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.google.userword";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.google.userword";
+    method @Deprecated public static void addWord(android.content.Context, String, int, int);
+    method public static void addWord(android.content.Context, String, int, String, java.util.Locale);
+    field public static final String APP_ID = "appid";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.google.userword";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.google.userword";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DEFAULT_SORT_ORDER = "frequency DESC";
-    field public static final java.lang.String FREQUENCY = "frequency";
-    field public static final java.lang.String LOCALE = "locale";
-    field public static final deprecated int LOCALE_TYPE_ALL = 0; // 0x0
-    field public static final deprecated int LOCALE_TYPE_CURRENT = 1; // 0x1
-    field public static final java.lang.String SHORTCUT = "shortcut";
-    field public static final java.lang.String WORD = "word";
-    field public static final java.lang.String _ID = "_id";
+    field public static final String DEFAULT_SORT_ORDER = "frequency DESC";
+    field public static final String FREQUENCY = "frequency";
+    field public static final String LOCALE = "locale";
+    field @Deprecated public static final int LOCALE_TYPE_ALL = 0; // 0x0
+    field @Deprecated public static final int LOCALE_TYPE_CURRENT = 1; // 0x1
+    field public static final String SHORTCUT = "shortcut";
+    field public static final String WORD = "word";
+    field public static final String _ID = "_id";
   }
 
   public class VoicemailContract {
-    field public static final java.lang.String ACTION_FETCH_VOICEMAIL = "android.intent.action.FETCH_VOICEMAIL";
-    field public static final java.lang.String ACTION_NEW_VOICEMAIL = "android.intent.action.NEW_VOICEMAIL";
-    field public static final java.lang.String ACTION_SYNC_VOICEMAIL = "android.provider.action.SYNC_VOICEMAIL";
-    field public static final java.lang.String AUTHORITY = "com.android.voicemail";
-    field public static final java.lang.String EXTRA_PHONE_ACCOUNT_HANDLE = "android.provider.extra.PHONE_ACCOUNT_HANDLE";
-    field public static final java.lang.String EXTRA_SELF_CHANGE = "com.android.voicemail.extra.SELF_CHANGE";
-    field public static final java.lang.String PARAM_KEY_SOURCE_PACKAGE = "source_package";
+    field public static final String ACTION_FETCH_VOICEMAIL = "android.intent.action.FETCH_VOICEMAIL";
+    field public static final String ACTION_NEW_VOICEMAIL = "android.intent.action.NEW_VOICEMAIL";
+    field public static final String ACTION_SYNC_VOICEMAIL = "android.provider.action.SYNC_VOICEMAIL";
+    field public static final String AUTHORITY = "com.android.voicemail";
+    field public static final String EXTRA_PHONE_ACCOUNT_HANDLE = "android.provider.extra.PHONE_ACCOUNT_HANDLE";
+    field public static final String EXTRA_SELF_CHANGE = "com.android.voicemail.extra.SELF_CHANGE";
+    field public static final String PARAM_KEY_SOURCE_PACKAGE = "source_package";
   }
 
   public static final class VoicemailContract.Status implements android.provider.BaseColumns {
-    method public static android.net.Uri buildSourceUri(java.lang.String);
-    field public static final java.lang.String CONFIGURATION_STATE = "configuration_state";
+    method public static android.net.Uri buildSourceUri(String);
+    field public static final String CONFIGURATION_STATE = "configuration_state";
     field public static final int CONFIGURATION_STATE_CAN_BE_CONFIGURED = 2; // 0x2
     field public static final int CONFIGURATION_STATE_CONFIGURING = 3; // 0x3
     field public static final int CONFIGURATION_STATE_DISABLED = 5; // 0x5
@@ -39372,7 +39282,7 @@
     field public static final int CONFIGURATION_STATE_NOT_CONFIGURED = 1; // 0x1
     field public static final int CONFIGURATION_STATE_OK = 0; // 0x0
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DATA_CHANNEL_STATE = "data_channel_state";
+    field public static final String DATA_CHANNEL_STATE = "data_channel_state";
     field public static final int DATA_CHANNEL_STATE_BAD_CONFIGURATION = 3; // 0x3
     field public static final int DATA_CHANNEL_STATE_COMMUNICATION_ERROR = 4; // 0x4
     field public static final int DATA_CHANNEL_STATE_NO_CONNECTION = 1; // 0x1
@@ -39380,48 +39290,48 @@
     field public static final int DATA_CHANNEL_STATE_OK = 0; // 0x0
     field public static final int DATA_CHANNEL_STATE_SERVER_CONNECTION_ERROR = 6; // 0x6
     field public static final int DATA_CHANNEL_STATE_SERVER_ERROR = 5; // 0x5
-    field public static final java.lang.String DIR_TYPE = "vnd.android.cursor.dir/voicemail.source.status";
-    field public static final java.lang.String ITEM_TYPE = "vnd.android.cursor.item/voicemail.source.status";
-    field public static final java.lang.String NOTIFICATION_CHANNEL_STATE = "notification_channel_state";
+    field public static final String DIR_TYPE = "vnd.android.cursor.dir/voicemail.source.status";
+    field public static final String ITEM_TYPE = "vnd.android.cursor.item/voicemail.source.status";
+    field public static final String NOTIFICATION_CHANNEL_STATE = "notification_channel_state";
     field public static final int NOTIFICATION_CHANNEL_STATE_MESSAGE_WAITING = 2; // 0x2
     field public static final int NOTIFICATION_CHANNEL_STATE_NO_CONNECTION = 1; // 0x1
     field public static final int NOTIFICATION_CHANNEL_STATE_OK = 0; // 0x0
-    field public static final java.lang.String PHONE_ACCOUNT_COMPONENT_NAME = "phone_account_component_name";
-    field public static final java.lang.String PHONE_ACCOUNT_ID = "phone_account_id";
-    field public static final java.lang.String QUOTA_OCCUPIED = "quota_occupied";
-    field public static final java.lang.String QUOTA_TOTAL = "quota_total";
+    field public static final String PHONE_ACCOUNT_COMPONENT_NAME = "phone_account_component_name";
+    field public static final String PHONE_ACCOUNT_ID = "phone_account_id";
+    field public static final String QUOTA_OCCUPIED = "quota_occupied";
+    field public static final String QUOTA_TOTAL = "quota_total";
     field public static final int QUOTA_UNAVAILABLE = -1; // 0xffffffff
-    field public static final java.lang.String SETTINGS_URI = "settings_uri";
-    field public static final java.lang.String SOURCE_PACKAGE = "source_package";
-    field public static final java.lang.String SOURCE_TYPE = "source_type";
-    field public static final java.lang.String VOICEMAIL_ACCESS_URI = "voicemail_access_uri";
+    field public static final String SETTINGS_URI = "settings_uri";
+    field public static final String SOURCE_PACKAGE = "source_package";
+    field public static final String SOURCE_TYPE = "source_type";
+    field public static final String VOICEMAIL_ACCESS_URI = "voicemail_access_uri";
   }
 
   public static final class VoicemailContract.Voicemails implements android.provider.BaseColumns android.provider.OpenableColumns {
-    method public static android.net.Uri buildSourceUri(java.lang.String);
-    field public static final java.lang.String ARCHIVED = "archived";
-    field public static final java.lang.String BACKED_UP = "backed_up";
+    method public static android.net.Uri buildSourceUri(String);
+    field public static final String ARCHIVED = "archived";
+    field public static final String BACKED_UP = "backed_up";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DATE = "date";
-    field public static final java.lang.String DELETED = "deleted";
-    field public static final java.lang.String DIRTY = "dirty";
+    field public static final String DATE = "date";
+    field public static final String DELETED = "deleted";
+    field public static final String DIRTY = "dirty";
     field public static final int DIRTY_RETAIN = -1; // 0xffffffff
-    field public static final java.lang.String DIR_TYPE = "vnd.android.cursor.dir/voicemails";
-    field public static final java.lang.String DURATION = "duration";
-    field public static final java.lang.String HAS_CONTENT = "has_content";
-    field public static final java.lang.String IS_OMTP_VOICEMAIL = "is_omtp_voicemail";
-    field public static final java.lang.String IS_READ = "is_read";
-    field public static final java.lang.String ITEM_TYPE = "vnd.android.cursor.item/voicemail";
-    field public static final java.lang.String LAST_MODIFIED = "last_modified";
-    field public static final java.lang.String MIME_TYPE = "mime_type";
-    field public static final java.lang.String NEW = "new";
-    field public static final java.lang.String NUMBER = "number";
-    field public static final java.lang.String PHONE_ACCOUNT_COMPONENT_NAME = "subscription_component_name";
-    field public static final java.lang.String PHONE_ACCOUNT_ID = "subscription_id";
-    field public static final java.lang.String RESTORED = "restored";
-    field public static final java.lang.String SOURCE_DATA = "source_data";
-    field public static final java.lang.String SOURCE_PACKAGE = "source_package";
-    field public static final java.lang.String TRANSCRIPTION = "transcription";
+    field public static final String DIR_TYPE = "vnd.android.cursor.dir/voicemails";
+    field public static final String DURATION = "duration";
+    field public static final String HAS_CONTENT = "has_content";
+    field public static final String IS_OMTP_VOICEMAIL = "is_omtp_voicemail";
+    field public static final String IS_READ = "is_read";
+    field public static final String ITEM_TYPE = "vnd.android.cursor.item/voicemail";
+    field public static final String LAST_MODIFIED = "last_modified";
+    field public static final String MIME_TYPE = "mime_type";
+    field public static final String NEW = "new";
+    field public static final String NUMBER = "number";
+    field public static final String PHONE_ACCOUNT_COMPONENT_NAME = "subscription_component_name";
+    field public static final String PHONE_ACCOUNT_ID = "subscription_id";
+    field public static final String RESTORED = "restored";
+    field public static final String SOURCE_DATA = "source_data";
+    field public static final String SOURCE_PACKAGE = "source_package";
+    field public static final String TRANSCRIPTION = "transcription";
   }
 
 }
@@ -39429,57 +39339,57 @@
 package android.renderscript {
 
   public class Allocation extends android.renderscript.BaseObj {
-    method public void copy1DRangeFrom(int, int, java.lang.Object);
+    method public void copy1DRangeFrom(int, int, Object);
     method public void copy1DRangeFrom(int, int, int[]);
     method public void copy1DRangeFrom(int, int, short[]);
     method public void copy1DRangeFrom(int, int, byte[]);
     method public void copy1DRangeFrom(int, int, float[]);
     method public void copy1DRangeFrom(int, int, android.renderscript.Allocation, int);
-    method public void copy1DRangeFromUnchecked(int, int, java.lang.Object);
+    method public void copy1DRangeFromUnchecked(int, int, Object);
     method public void copy1DRangeFromUnchecked(int, int, int[]);
     method public void copy1DRangeFromUnchecked(int, int, short[]);
     method public void copy1DRangeFromUnchecked(int, int, byte[]);
     method public void copy1DRangeFromUnchecked(int, int, float[]);
-    method public void copy1DRangeTo(int, int, java.lang.Object);
+    method public void copy1DRangeTo(int, int, Object);
     method public void copy1DRangeTo(int, int, int[]);
     method public void copy1DRangeTo(int, int, short[]);
     method public void copy1DRangeTo(int, int, byte[]);
     method public void copy1DRangeTo(int, int, float[]);
-    method public void copy1DRangeToUnchecked(int, int, java.lang.Object);
+    method public void copy1DRangeToUnchecked(int, int, Object);
     method public void copy1DRangeToUnchecked(int, int, int[]);
     method public void copy1DRangeToUnchecked(int, int, short[]);
     method public void copy1DRangeToUnchecked(int, int, byte[]);
     method public void copy1DRangeToUnchecked(int, int, float[]);
-    method public void copy2DRangeFrom(int, int, int, int, java.lang.Object);
+    method public void copy2DRangeFrom(int, int, int, int, Object);
     method public void copy2DRangeFrom(int, int, int, int, byte[]);
     method public void copy2DRangeFrom(int, int, int, int, short[]);
     method public void copy2DRangeFrom(int, int, int, int, int[]);
     method public void copy2DRangeFrom(int, int, int, int, float[]);
     method public void copy2DRangeFrom(int, int, int, int, android.renderscript.Allocation, int, int);
     method public void copy2DRangeFrom(int, int, android.graphics.Bitmap);
-    method public void copy2DRangeTo(int, int, int, int, java.lang.Object);
+    method public void copy2DRangeTo(int, int, int, int, Object);
     method public void copy2DRangeTo(int, int, int, int, byte[]);
     method public void copy2DRangeTo(int, int, int, int, short[]);
     method public void copy2DRangeTo(int, int, int, int, int[]);
     method public void copy2DRangeTo(int, int, int, int, float[]);
-    method public void copy3DRangeFrom(int, int, int, int, int, int, java.lang.Object);
+    method public void copy3DRangeFrom(int, int, int, int, int, int, Object);
     method public void copy3DRangeFrom(int, int, int, int, int, int, android.renderscript.Allocation, int, int, int);
-    method public void copy3DRangeTo(int, int, int, int, int, int, java.lang.Object);
+    method public void copy3DRangeTo(int, int, int, int, int, int, Object);
     method public void copyFrom(android.renderscript.BaseObj[]);
-    method public void copyFrom(java.lang.Object);
+    method public void copyFrom(Object);
     method public void copyFrom(int[]);
     method public void copyFrom(short[]);
     method public void copyFrom(byte[]);
     method public void copyFrom(float[]);
     method public void copyFrom(android.graphics.Bitmap);
     method public void copyFrom(android.renderscript.Allocation);
-    method public void copyFromUnchecked(java.lang.Object);
+    method public void copyFromUnchecked(Object);
     method public void copyFromUnchecked(int[]);
     method public void copyFromUnchecked(short[]);
     method public void copyFromUnchecked(byte[]);
     method public void copyFromUnchecked(float[]);
     method public void copyTo(android.graphics.Bitmap);
-    method public void copyTo(java.lang.Object);
+    method public void copyTo(Object);
     method public void copyTo(byte[]);
     method public void copyTo(short[]);
     method public void copyTo(int[]);
@@ -39493,7 +39403,7 @@
     method public static android.renderscript.Allocation createFromBitmap(android.renderscript.RenderScript, android.graphics.Bitmap);
     method public static android.renderscript.Allocation createFromBitmapResource(android.renderscript.RenderScript, android.content.res.Resources, int, android.renderscript.Allocation.MipmapControl, int);
     method public static android.renderscript.Allocation createFromBitmapResource(android.renderscript.RenderScript, android.content.res.Resources, int);
-    method public static android.renderscript.Allocation createFromString(android.renderscript.RenderScript, java.lang.String, int);
+    method public static android.renderscript.Allocation createFromString(android.renderscript.RenderScript, String, int);
     method public static android.renderscript.Allocation createSized(android.renderscript.RenderScript, android.renderscript.Element, int, int);
     method public static android.renderscript.Allocation createSized(android.renderscript.RenderScript, android.renderscript.Element, int);
     method public static android.renderscript.Allocation createTyped(android.renderscript.RenderScript, android.renderscript.Type, android.renderscript.Allocation.MipmapControl, int);
@@ -39510,7 +39420,7 @@
     method public int getUsage();
     method public void ioReceive();
     method public void ioSend();
-    method public deprecated synchronized void resize(int);
+    method @Deprecated public void resize(int);
     method public void setAutoPadding(boolean);
     method public void setFromFieldPacker(int, android.renderscript.FieldPacker);
     method public void setFromFieldPacker(int, int, android.renderscript.FieldPacker);
@@ -39528,23 +39438,21 @@
     field public static final int USAGE_SHARED = 128; // 0x80
   }
 
-  public static final class Allocation.MipmapControl extends java.lang.Enum {
-    method public static android.renderscript.Allocation.MipmapControl valueOf(java.lang.String);
-    method public static final android.renderscript.Allocation.MipmapControl[] values();
+  public enum Allocation.MipmapControl {
     enum_constant public static final android.renderscript.Allocation.MipmapControl MIPMAP_FULL;
     enum_constant public static final android.renderscript.Allocation.MipmapControl MIPMAP_NONE;
     enum_constant public static final android.renderscript.Allocation.MipmapControl MIPMAP_ON_SYNC_TO_TEXTURE;
   }
 
-  public static abstract interface Allocation.OnBufferAvailableListener {
-    method public abstract void onBufferAvailable(android.renderscript.Allocation);
+  public static interface Allocation.OnBufferAvailableListener {
+    method public void onBufferAvailable(android.renderscript.Allocation);
   }
 
   public class AllocationAdapter extends android.renderscript.Allocation {
     method public static android.renderscript.AllocationAdapter create1D(android.renderscript.RenderScript, android.renderscript.Allocation);
     method public static android.renderscript.AllocationAdapter create2D(android.renderscript.RenderScript, android.renderscript.Allocation);
     method public static android.renderscript.AllocationAdapter createTyped(android.renderscript.RenderScript, android.renderscript.Allocation, android.renderscript.Type);
-    method public synchronized void resize(int);
+    method public void resize(int);
     method public void setFace(android.renderscript.Type.CubemapFace);
     method public void setLOD(int);
     method public void setX(int);
@@ -39554,8 +39462,8 @@
 
   public class BaseObj {
     method public void destroy();
-    method public java.lang.String getName();
-    method public void setName(java.lang.String);
+    method public String getName();
+    method public void setName(String);
   }
 
   public class Byte2 {
@@ -39640,7 +39548,7 @@
     method public static android.renderscript.Element I8_2(android.renderscript.RenderScript);
     method public static android.renderscript.Element I8_3(android.renderscript.RenderScript);
     method public static android.renderscript.Element I8_4(android.renderscript.RenderScript);
-    method public static deprecated android.renderscript.Element MATRIX4X4(android.renderscript.RenderScript);
+    method @Deprecated public static android.renderscript.Element MATRIX4X4(android.renderscript.RenderScript);
     method public static android.renderscript.Element MATRIX_2X2(android.renderscript.RenderScript);
     method public static android.renderscript.Element MATRIX_3X3(android.renderscript.RenderScript);
     method public static android.renderscript.Element MATRIX_4X4(android.renderscript.RenderScript);
@@ -39682,7 +39590,7 @@
     method public android.renderscript.Element getSubElement(int);
     method public int getSubElementArraySize(int);
     method public int getSubElementCount();
-    method public java.lang.String getSubElementName(int);
+    method public String getSubElementName(int);
     method public int getSubElementOffsetBytes(int);
     method public int getVectorSize();
     method public boolean isCompatible(android.renderscript.Element);
@@ -39691,14 +39599,12 @@
 
   public static class Element.Builder {
     ctor public Element.Builder(android.renderscript.RenderScript);
-    method public android.renderscript.Element.Builder add(android.renderscript.Element, java.lang.String, int);
-    method public android.renderscript.Element.Builder add(android.renderscript.Element, java.lang.String);
+    method public android.renderscript.Element.Builder add(android.renderscript.Element, String, int);
+    method public android.renderscript.Element.Builder add(android.renderscript.Element, String);
     method public android.renderscript.Element create();
   }
 
-  public static final class Element.DataKind extends java.lang.Enum {
-    method public static android.renderscript.Element.DataKind valueOf(java.lang.String);
-    method public static final android.renderscript.Element.DataKind[] values();
+  public enum Element.DataKind {
     enum_constant public static final android.renderscript.Element.DataKind PIXEL_A;
     enum_constant public static final android.renderscript.Element.DataKind PIXEL_DEPTH;
     enum_constant public static final android.renderscript.Element.DataKind PIXEL_L;
@@ -39709,9 +39615,7 @@
     enum_constant public static final android.renderscript.Element.DataKind USER;
   }
 
-  public static final class Element.DataType extends java.lang.Enum {
-    method public static android.renderscript.Element.DataType valueOf(java.lang.String);
-    method public static final android.renderscript.Element.DataType[] values();
+  public enum Element.DataType {
     enum_constant public static final android.renderscript.Element.DataType BOOLEAN;
     enum_constant public static final android.renderscript.Element.DataType FLOAT_16;
     enum_constant public static final android.renderscript.Element.DataType FLOAT_32;
@@ -39967,19 +39871,19 @@
   }
 
   public class RSDriverException extends android.renderscript.RSRuntimeException {
-    ctor public RSDriverException(java.lang.String);
+    ctor public RSDriverException(String);
   }
 
   public class RSIllegalArgumentException extends android.renderscript.RSRuntimeException {
-    ctor public RSIllegalArgumentException(java.lang.String);
+    ctor public RSIllegalArgumentException(String);
   }
 
   public class RSInvalidStateException extends android.renderscript.RSRuntimeException {
-    ctor public RSInvalidStateException(java.lang.String);
+    ctor public RSInvalidStateException(String);
   }
 
   public class RSRuntimeException extends java.lang.RuntimeException {
-    ctor public RSRuntimeException(java.lang.String);
+    ctor public RSRuntimeException(String);
   }
 
   public class RenderScript {
@@ -40004,17 +39908,13 @@
     field public static final int CREATE_FLAG_NONE = 0; // 0x0
   }
 
-  public static final class RenderScript.ContextType extends java.lang.Enum {
-    method public static android.renderscript.RenderScript.ContextType valueOf(java.lang.String);
-    method public static final android.renderscript.RenderScript.ContextType[] values();
+  public enum RenderScript.ContextType {
     enum_constant public static final android.renderscript.RenderScript.ContextType DEBUG;
     enum_constant public static final android.renderscript.RenderScript.ContextType NORMAL;
     enum_constant public static final android.renderscript.RenderScript.ContextType PROFILE;
   }
 
-  public static final class RenderScript.Priority extends java.lang.Enum {
-    method public static android.renderscript.RenderScript.Priority valueOf(java.lang.String);
-    method public static final android.renderscript.RenderScript.Priority[] values();
+  public enum RenderScript.Priority {
     enum_constant public static final android.renderscript.RenderScript.Priority LOW;
     enum_constant public static final android.renderscript.RenderScript.Priority NORMAL;
   }
@@ -40022,7 +39922,7 @@
   public static class RenderScript.RSErrorHandler implements java.lang.Runnable {
     ctor public RenderScript.RSErrorHandler();
     method public void run();
-    field protected java.lang.String mErrorMessage;
+    field protected String mErrorMessage;
     field protected int mErrorNum;
   }
 
@@ -40061,9 +39961,7 @@
     method public void setWrapT(android.renderscript.Sampler.Value);
   }
 
-  public static final class Sampler.Value extends java.lang.Enum {
-    method public static android.renderscript.Sampler.Value valueOf(java.lang.String);
-    method public static final android.renderscript.Sampler.Value[] values();
+  public enum Sampler.Value {
     enum_constant public static final android.renderscript.Sampler.Value CLAMP;
     enum_constant public static final android.renderscript.Sampler.Value LINEAR;
     enum_constant public static final android.renderscript.Sampler.Value LINEAR_MIP_LINEAR;
@@ -40091,7 +39989,7 @@
     method protected void invoke(int);
     method protected void invoke(int, android.renderscript.FieldPacker);
     method protected void reduce(int, android.renderscript.Allocation[], android.renderscript.Allocation, android.renderscript.Script.LaunchOptions);
-    method public void setTimeZone(java.lang.String);
+    method public void setTimeZone(String);
     method public void setVar(int, float);
     method public void setVar(int, double);
     method public void setVar(int, int);
@@ -40143,26 +40041,26 @@
     ctor protected ScriptC(int, android.renderscript.RenderScript);
     ctor protected ScriptC(long, android.renderscript.RenderScript);
     ctor protected ScriptC(android.renderscript.RenderScript, android.content.res.Resources, int);
-    ctor protected ScriptC(android.renderscript.RenderScript, java.lang.String, byte[], byte[]);
+    ctor protected ScriptC(android.renderscript.RenderScript, String, byte[], byte[]);
   }
 
   public final class ScriptGroup extends android.renderscript.BaseObj {
-    method public java.lang.Object[] execute(java.lang.Object...);
-    method public deprecated void execute();
-    method public deprecated void setInput(android.renderscript.Script.KernelID, android.renderscript.Allocation);
-    method public deprecated void setOutput(android.renderscript.Script.KernelID, android.renderscript.Allocation);
+    method public Object[] execute(java.lang.Object...);
+    method @Deprecated public void execute();
+    method @Deprecated public void setInput(android.renderscript.Script.KernelID, android.renderscript.Allocation);
+    method @Deprecated public void setOutput(android.renderscript.Script.KernelID, android.renderscript.Allocation);
   }
 
   public static final class ScriptGroup.Binding {
-    ctor public ScriptGroup.Binding(android.renderscript.Script.FieldID, java.lang.Object);
+    ctor public ScriptGroup.Binding(android.renderscript.Script.FieldID, Object);
   }
 
-  public static final deprecated class ScriptGroup.Builder {
-    ctor public ScriptGroup.Builder(android.renderscript.RenderScript);
-    method public android.renderscript.ScriptGroup.Builder addConnection(android.renderscript.Type, android.renderscript.Script.KernelID, android.renderscript.Script.FieldID);
-    method public android.renderscript.ScriptGroup.Builder addConnection(android.renderscript.Type, android.renderscript.Script.KernelID, android.renderscript.Script.KernelID);
-    method public android.renderscript.ScriptGroup.Builder addKernel(android.renderscript.Script.KernelID);
-    method public android.renderscript.ScriptGroup create();
+  @Deprecated public static final class ScriptGroup.Builder {
+    ctor @Deprecated public ScriptGroup.Builder(android.renderscript.RenderScript);
+    method @Deprecated public android.renderscript.ScriptGroup.Builder addConnection(android.renderscript.Type, android.renderscript.Script.KernelID, android.renderscript.Script.FieldID);
+    method @Deprecated public android.renderscript.ScriptGroup.Builder addConnection(android.renderscript.Type, android.renderscript.Script.KernelID, android.renderscript.Script.KernelID);
+    method @Deprecated public android.renderscript.ScriptGroup.Builder addKernel(android.renderscript.Script.KernelID);
+    method @Deprecated public android.renderscript.ScriptGroup create();
   }
 
   public static final class ScriptGroup.Builder2 {
@@ -40170,7 +40068,7 @@
     method public android.renderscript.ScriptGroup.Input addInput();
     method public android.renderscript.ScriptGroup.Closure addInvoke(android.renderscript.Script.InvokeID, java.lang.Object...);
     method public android.renderscript.ScriptGroup.Closure addKernel(android.renderscript.Script.KernelID, android.renderscript.Type, java.lang.Object...);
-    method public android.renderscript.ScriptGroup create(java.lang.String, android.renderscript.ScriptGroup.Future...);
+    method public android.renderscript.ScriptGroup create(String, android.renderscript.ScriptGroup.Future...);
   }
 
   public static final class ScriptGroup.Closure extends android.renderscript.BaseObj {
@@ -40365,7 +40263,7 @@
   }
 
   public final class ScriptIntrinsicColorMatrix extends android.renderscript.ScriptIntrinsic {
-    method public static deprecated android.renderscript.ScriptIntrinsicColorMatrix create(android.renderscript.RenderScript, android.renderscript.Element);
+    method @Deprecated public static android.renderscript.ScriptIntrinsicColorMatrix create(android.renderscript.RenderScript, android.renderscript.Element);
     method public static android.renderscript.ScriptIntrinsicColorMatrix create(android.renderscript.RenderScript);
     method public void forEach(android.renderscript.Allocation, android.renderscript.Allocation);
     method public void forEach(android.renderscript.Allocation, android.renderscript.Allocation, android.renderscript.Script.LaunchOptions);
@@ -40488,18 +40386,16 @@
     method public android.renderscript.Type.Builder setZ(int);
   }
 
-  public static final class Type.CubemapFace extends java.lang.Enum {
-    method public static android.renderscript.Type.CubemapFace valueOf(java.lang.String);
-    method public static final android.renderscript.Type.CubemapFace[] values();
+  public enum Type.CubemapFace {
     enum_constant public static final android.renderscript.Type.CubemapFace NEGATIVE_X;
     enum_constant public static final android.renderscript.Type.CubemapFace NEGATIVE_Y;
     enum_constant public static final android.renderscript.Type.CubemapFace NEGATIVE_Z;
     enum_constant public static final android.renderscript.Type.CubemapFace POSITIVE_X;
     enum_constant public static final android.renderscript.Type.CubemapFace POSITIVE_Y;
     enum_constant public static final android.renderscript.Type.CubemapFace POSITIVE_Z;
-    enum_constant public static final deprecated android.renderscript.Type.CubemapFace POSITVE_X;
-    enum_constant public static final deprecated android.renderscript.Type.CubemapFace POSITVE_Y;
-    enum_constant public static final deprecated android.renderscript.Type.CubemapFace POSITVE_Z;
+    enum_constant @Deprecated public static final android.renderscript.Type.CubemapFace POSITVE_X;
+    enum_constant @Deprecated public static final android.renderscript.Type.CubemapFace POSITVE_Y;
+    enum_constant @Deprecated public static final android.renderscript.Type.CubemapFace POSITVE_Z;
   }
 
 }
@@ -40507,10 +40403,10 @@
 package android.sax {
 
   public class Element {
-    method public android.sax.Element getChild(java.lang.String);
-    method public android.sax.Element getChild(java.lang.String, java.lang.String);
-    method public android.sax.Element requireChild(java.lang.String);
-    method public android.sax.Element requireChild(java.lang.String, java.lang.String);
+    method public android.sax.Element getChild(String);
+    method public android.sax.Element getChild(String, String);
+    method public android.sax.Element requireChild(String);
+    method public android.sax.Element requireChild(String, String);
     method public void setElementListener(android.sax.ElementListener);
     method public void setEndElementListener(android.sax.EndElementListener);
     method public void setEndTextElementListener(android.sax.EndTextElementListener);
@@ -40518,28 +40414,28 @@
     method public void setTextElementListener(android.sax.TextElementListener);
   }
 
-  public abstract interface ElementListener implements android.sax.EndElementListener android.sax.StartElementListener {
+  public interface ElementListener extends android.sax.StartElementListener android.sax.EndElementListener {
   }
 
-  public abstract interface EndElementListener {
-    method public abstract void end();
+  public interface EndElementListener {
+    method public void end();
   }
 
-  public abstract interface EndTextElementListener {
-    method public abstract void end(java.lang.String);
+  public interface EndTextElementListener {
+    method public void end(String);
   }
 
   public class RootElement extends android.sax.Element {
-    ctor public RootElement(java.lang.String, java.lang.String);
-    ctor public RootElement(java.lang.String);
+    ctor public RootElement(String, String);
+    ctor public RootElement(String);
     method public org.xml.sax.ContentHandler getContentHandler();
   }
 
-  public abstract interface StartElementListener {
-    method public abstract void start(org.xml.sax.Attributes);
+  public interface StartElementListener {
+    method public void start(org.xml.sax.Attributes);
   }
 
-  public abstract interface TextElementListener implements android.sax.EndTextElementListener android.sax.StartElementListener {
+  public interface TextElementListener extends android.sax.StartElementListener android.sax.EndTextElementListener {
   }
 
 }
@@ -40548,44 +40444,44 @@
 
   public final class Channel implements java.nio.channels.Channel {
     method public void close();
-    method public byte[] getSelectResponse();
-    method public android.se.omapi.Session getSession();
+    method @Nullable public byte[] getSelectResponse();
+    method @NonNull public android.se.omapi.Session getSession();
     method public boolean isBasicChannel();
     method public boolean isOpen();
     method public boolean selectNext() throws java.io.IOException;
-    method public byte[] transmit(byte[]) throws java.io.IOException;
+    method @NonNull public byte[] transmit(@NonNull byte[]) throws java.io.IOException;
   }
 
   public final class Reader {
     method public void closeSessions();
-    method public java.lang.String getName();
-    method public android.se.omapi.SEService getSEService();
+    method @NonNull public String getName();
+    method @NonNull public android.se.omapi.SEService getSEService();
     method public boolean isSecureElementPresent();
-    method public android.se.omapi.Session openSession() throws java.io.IOException;
+    method @NonNull public android.se.omapi.Session openSession() throws java.io.IOException;
   }
 
   public final class SEService {
-    ctor public SEService(android.content.Context, java.util.concurrent.Executor, android.se.omapi.SEService.OnConnectedListener);
-    method public android.se.omapi.Reader[] getReaders();
-    method public java.lang.String getVersion();
+    ctor public SEService(@NonNull android.content.Context, @NonNull java.util.concurrent.Executor, @NonNull android.se.omapi.SEService.OnConnectedListener);
+    method @NonNull public android.se.omapi.Reader[] getReaders();
+    method @NonNull public String getVersion();
     method public boolean isConnected();
     method public void shutdown();
   }
 
-  public static abstract interface SEService.OnConnectedListener {
-    method public abstract void onConnected();
+  public static interface SEService.OnConnectedListener {
+    method public void onConnected();
   }
 
   public final class Session {
     method public void close();
     method public void closeChannels();
-    method public byte[] getATR();
-    method public android.se.omapi.Reader getReader();
+    method @Nullable public byte[] getATR();
+    method @NonNull public android.se.omapi.Reader getReader();
     method public boolean isClosed();
-    method public android.se.omapi.Channel openBasicChannel(byte[], byte) throws java.io.IOException;
-    method public android.se.omapi.Channel openBasicChannel(byte[]) throws java.io.IOException;
-    method public android.se.omapi.Channel openLogicalChannel(byte[], byte) throws java.io.IOException;
-    method public android.se.omapi.Channel openLogicalChannel(byte[]) throws java.io.IOException;
+    method @Nullable public android.se.omapi.Channel openBasicChannel(@Nullable byte[], @Nullable byte) throws java.io.IOException;
+    method @Nullable public android.se.omapi.Channel openBasicChannel(@Nullable byte[]) throws java.io.IOException;
+    method @Nullable public android.se.omapi.Channel openLogicalChannel(@Nullable byte[], @Nullable byte) throws java.io.IOException;
+    method @Nullable public android.se.omapi.Channel openLogicalChannel(@Nullable byte[]) throws java.io.IOException;
   }
 
 }
@@ -40599,107 +40495,107 @@
 
   public class ConfirmationAlreadyPresentingException extends java.lang.Exception {
     ctor public ConfirmationAlreadyPresentingException();
-    ctor public ConfirmationAlreadyPresentingException(java.lang.String);
+    ctor public ConfirmationAlreadyPresentingException(String);
   }
 
   public abstract class ConfirmationCallback {
     ctor public ConfirmationCallback();
     method public void onCanceled();
-    method public void onConfirmed(byte[]);
+    method public void onConfirmed(@NonNull byte[]);
     method public void onDismissed();
-    method public void onError(java.lang.Throwable);
+    method public void onError(Throwable);
   }
 
   public class ConfirmationNotAvailableException extends java.lang.Exception {
     ctor public ConfirmationNotAvailableException();
-    ctor public ConfirmationNotAvailableException(java.lang.String);
+    ctor public ConfirmationNotAvailableException(String);
   }
 
   public class ConfirmationPrompt {
     method public void cancelPrompt();
     method public static boolean isSupported(android.content.Context);
-    method public void presentPrompt(java.util.concurrent.Executor, android.security.ConfirmationCallback) throws android.security.ConfirmationAlreadyPresentingException, android.security.ConfirmationNotAvailableException;
+    method public void presentPrompt(@NonNull java.util.concurrent.Executor, @NonNull android.security.ConfirmationCallback) throws android.security.ConfirmationAlreadyPresentingException, android.security.ConfirmationNotAvailableException;
   }
 
   public static final class ConfirmationPrompt.Builder {
     ctor public ConfirmationPrompt.Builder(android.content.Context);
     method public android.security.ConfirmationPrompt build();
     method public android.security.ConfirmationPrompt.Builder setExtraData(byte[]);
-    method public android.security.ConfirmationPrompt.Builder setPromptText(java.lang.CharSequence);
+    method public android.security.ConfirmationPrompt.Builder setPromptText(CharSequence);
   }
 
   public final class KeyChain {
     ctor public KeyChain();
-    method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String);
-    method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], android.net.Uri, java.lang.String);
-    method public static android.content.Intent createInstallIntent();
-    method public static java.security.cert.X509Certificate[] getCertificateChain(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException;
-    method public static java.security.PrivateKey getPrivateKey(android.content.Context, java.lang.String) throws java.lang.InterruptedException, android.security.KeyChainException;
-    method public static deprecated boolean isBoundKeyAlgorithm(java.lang.String);
-    method public static boolean isKeyAlgorithmSupported(java.lang.String);
-    field public static final java.lang.String ACTION_KEYCHAIN_CHANGED = "android.security.action.KEYCHAIN_CHANGED";
-    field public static final java.lang.String ACTION_KEY_ACCESS_CHANGED = "android.security.action.KEY_ACCESS_CHANGED";
-    field public static final deprecated java.lang.String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
-    field public static final java.lang.String ACTION_TRUST_STORE_CHANGED = "android.security.action.TRUST_STORE_CHANGED";
-    field public static final java.lang.String EXTRA_CERTIFICATE = "CERT";
-    field public static final java.lang.String EXTRA_KEY_ACCESSIBLE = "android.security.extra.KEY_ACCESSIBLE";
-    field public static final java.lang.String EXTRA_KEY_ALIAS = "android.security.extra.KEY_ALIAS";
-    field public static final java.lang.String EXTRA_NAME = "name";
-    field public static final java.lang.String EXTRA_PKCS12 = "PKCS12";
+    method public static void choosePrivateKeyAlias(@NonNull android.app.Activity, @NonNull android.security.KeyChainAliasCallback, @Nullable String[], @Nullable java.security.Principal[], @Nullable String, int, @Nullable String);
+    method public static void choosePrivateKeyAlias(@NonNull android.app.Activity, @NonNull android.security.KeyChainAliasCallback, @Nullable String[], @Nullable java.security.Principal[], @Nullable android.net.Uri, @Nullable String);
+    method @NonNull public static android.content.Intent createInstallIntent();
+    method @Nullable @WorkerThread public static java.security.cert.X509Certificate[] getCertificateChain(@NonNull android.content.Context, @NonNull String) throws java.lang.InterruptedException, android.security.KeyChainException;
+    method @Nullable @WorkerThread public static java.security.PrivateKey getPrivateKey(@NonNull android.content.Context, @NonNull String) throws java.lang.InterruptedException, android.security.KeyChainException;
+    method @Deprecated public static boolean isBoundKeyAlgorithm(@NonNull String);
+    method public static boolean isKeyAlgorithmSupported(@NonNull String);
+    field public static final String ACTION_KEYCHAIN_CHANGED = "android.security.action.KEYCHAIN_CHANGED";
+    field public static final String ACTION_KEY_ACCESS_CHANGED = "android.security.action.KEY_ACCESS_CHANGED";
+    field @Deprecated public static final String ACTION_STORAGE_CHANGED = "android.security.STORAGE_CHANGED";
+    field public static final String ACTION_TRUST_STORE_CHANGED = "android.security.action.TRUST_STORE_CHANGED";
+    field public static final String EXTRA_CERTIFICATE = "CERT";
+    field public static final String EXTRA_KEY_ACCESSIBLE = "android.security.extra.KEY_ACCESSIBLE";
+    field public static final String EXTRA_KEY_ALIAS = "android.security.extra.KEY_ALIAS";
+    field public static final String EXTRA_NAME = "name";
+    field public static final String EXTRA_PKCS12 = "PKCS12";
   }
 
-  public abstract interface KeyChainAliasCallback {
-    method public abstract void alias(java.lang.String);
+  public interface KeyChainAliasCallback {
+    method public void alias(@Nullable String);
   }
 
   public class KeyChainException extends java.lang.Exception {
     ctor public KeyChainException();
-    ctor public KeyChainException(java.lang.String);
-    ctor public KeyChainException(java.lang.String, java.lang.Throwable);
-    ctor public KeyChainException(java.lang.Throwable);
+    ctor public KeyChainException(String);
+    ctor public KeyChainException(String, Throwable);
+    ctor public KeyChainException(Throwable);
   }
 
-  public final deprecated class KeyPairGeneratorSpec implements java.security.spec.AlgorithmParameterSpec {
-    method public java.security.spec.AlgorithmParameterSpec getAlgorithmParameterSpec();
-    method public android.content.Context getContext();
-    method public java.util.Date getEndDate();
-    method public int getKeySize();
-    method public java.lang.String getKeyType();
-    method public java.lang.String getKeystoreAlias();
-    method public java.math.BigInteger getSerialNumber();
-    method public java.util.Date getStartDate();
-    method public javax.security.auth.x500.X500Principal getSubjectDN();
-    method public boolean isEncryptionRequired();
+  @Deprecated public final class KeyPairGeneratorSpec implements java.security.spec.AlgorithmParameterSpec {
+    method @Deprecated @NonNull public java.security.spec.AlgorithmParameterSpec getAlgorithmParameterSpec();
+    method @Deprecated public android.content.Context getContext();
+    method @Deprecated @NonNull public java.util.Date getEndDate();
+    method @Deprecated public int getKeySize();
+    method @Deprecated @Nullable public String getKeyType();
+    method @Deprecated public String getKeystoreAlias();
+    method @Deprecated @NonNull public java.math.BigInteger getSerialNumber();
+    method @Deprecated @NonNull public java.util.Date getStartDate();
+    method @Deprecated @NonNull public javax.security.auth.x500.X500Principal getSubjectDN();
+    method @Deprecated public boolean isEncryptionRequired();
   }
 
-  public static final deprecated class KeyPairGeneratorSpec.Builder {
-    ctor public KeyPairGeneratorSpec.Builder(android.content.Context);
-    method public android.security.KeyPairGeneratorSpec build();
-    method public android.security.KeyPairGeneratorSpec.Builder setAlgorithmParameterSpec(java.security.spec.AlgorithmParameterSpec);
-    method public android.security.KeyPairGeneratorSpec.Builder setAlias(java.lang.String);
-    method public android.security.KeyPairGeneratorSpec.Builder setEncryptionRequired();
-    method public android.security.KeyPairGeneratorSpec.Builder setEndDate(java.util.Date);
-    method public android.security.KeyPairGeneratorSpec.Builder setKeySize(int);
-    method public android.security.KeyPairGeneratorSpec.Builder setKeyType(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public android.security.KeyPairGeneratorSpec.Builder setSerialNumber(java.math.BigInteger);
-    method public android.security.KeyPairGeneratorSpec.Builder setStartDate(java.util.Date);
-    method public android.security.KeyPairGeneratorSpec.Builder setSubject(javax.security.auth.x500.X500Principal);
+  @Deprecated public static final class KeyPairGeneratorSpec.Builder {
+    ctor @Deprecated public KeyPairGeneratorSpec.Builder(@NonNull android.content.Context);
+    method @Deprecated @NonNull public android.security.KeyPairGeneratorSpec build();
+    method @Deprecated public android.security.KeyPairGeneratorSpec.Builder setAlgorithmParameterSpec(@NonNull java.security.spec.AlgorithmParameterSpec);
+    method @Deprecated @NonNull public android.security.KeyPairGeneratorSpec.Builder setAlias(@NonNull String);
+    method @Deprecated @NonNull public android.security.KeyPairGeneratorSpec.Builder setEncryptionRequired();
+    method @Deprecated @NonNull public android.security.KeyPairGeneratorSpec.Builder setEndDate(@NonNull java.util.Date);
+    method @Deprecated @NonNull public android.security.KeyPairGeneratorSpec.Builder setKeySize(int);
+    method @Deprecated @NonNull public android.security.KeyPairGeneratorSpec.Builder setKeyType(@NonNull String) throws java.security.NoSuchAlgorithmException;
+    method @Deprecated @NonNull public android.security.KeyPairGeneratorSpec.Builder setSerialNumber(@NonNull java.math.BigInteger);
+    method @Deprecated @NonNull public android.security.KeyPairGeneratorSpec.Builder setStartDate(@NonNull java.util.Date);
+    method @Deprecated @NonNull public android.security.KeyPairGeneratorSpec.Builder setSubject(@NonNull javax.security.auth.x500.X500Principal);
   }
 
-  public final deprecated class KeyStoreParameter implements java.security.KeyStore.ProtectionParameter {
-    method public boolean isEncryptionRequired();
+  @Deprecated public final class KeyStoreParameter implements java.security.KeyStore.ProtectionParameter {
+    method @Deprecated public boolean isEncryptionRequired();
   }
 
-  public static final deprecated class KeyStoreParameter.Builder {
-    ctor public KeyStoreParameter.Builder(android.content.Context);
-    method public android.security.KeyStoreParameter build();
-    method public android.security.KeyStoreParameter.Builder setEncryptionRequired(boolean);
+  @Deprecated public static final class KeyStoreParameter.Builder {
+    ctor @Deprecated public KeyStoreParameter.Builder(@NonNull android.content.Context);
+    method @Deprecated @NonNull public android.security.KeyStoreParameter build();
+    method @Deprecated @NonNull public android.security.KeyStoreParameter.Builder setEncryptionRequired(boolean);
   }
 
   public class NetworkSecurityPolicy {
     method public static android.security.NetworkSecurityPolicy getInstance();
     method public boolean isCleartextTrafficPermitted();
-    method public boolean isCleartextTrafficPermitted(java.lang.String);
+    method public boolean isCleartextTrafficPermitted(String);
   }
 
 }
@@ -40708,29 +40604,29 @@
 
   public class KeyExpiredException extends java.security.InvalidKeyException {
     ctor public KeyExpiredException();
-    ctor public KeyExpiredException(java.lang.String);
-    ctor public KeyExpiredException(java.lang.String, java.lang.Throwable);
+    ctor public KeyExpiredException(String);
+    ctor public KeyExpiredException(String, Throwable);
   }
 
   public final class KeyGenParameterSpec implements java.security.spec.AlgorithmParameterSpec {
-    method public java.security.spec.AlgorithmParameterSpec getAlgorithmParameterSpec();
+    method @Nullable public java.security.spec.AlgorithmParameterSpec getAlgorithmParameterSpec();
     method public byte[] getAttestationChallenge();
-    method public java.lang.String[] getBlockModes();
-    method public java.util.Date getCertificateNotAfter();
-    method public java.util.Date getCertificateNotBefore();
-    method public java.math.BigInteger getCertificateSerialNumber();
-    method public javax.security.auth.x500.X500Principal getCertificateSubject();
-    method public java.lang.String[] getDigests();
-    method public java.lang.String[] getEncryptionPaddings();
+    method @NonNull public String[] getBlockModes();
+    method @NonNull public java.util.Date getCertificateNotAfter();
+    method @NonNull public java.util.Date getCertificateNotBefore();
+    method @NonNull public java.math.BigInteger getCertificateSerialNumber();
+    method @NonNull public javax.security.auth.x500.X500Principal getCertificateSubject();
+    method @NonNull public String[] getDigests();
+    method @NonNull public String[] getEncryptionPaddings();
     method public int getKeySize();
-    method public java.util.Date getKeyValidityForConsumptionEnd();
-    method public java.util.Date getKeyValidityForOriginationEnd();
-    method public java.util.Date getKeyValidityStart();
-    method public java.lang.String getKeystoreAlias();
+    method @Nullable public java.util.Date getKeyValidityForConsumptionEnd();
+    method @Nullable public java.util.Date getKeyValidityForOriginationEnd();
+    method @Nullable public java.util.Date getKeyValidityStart();
+    method @NonNull public String getKeystoreAlias();
     method public int getPurposes();
-    method public java.lang.String[] getSignaturePaddings();
+    method @NonNull public String[] getSignaturePaddings();
     method public int getUserAuthenticationValidityDurationSeconds();
-    method public boolean isDigestsSpecified();
+    method @NonNull public boolean isDigestsSpecified();
     method public boolean isInvalidatedByBiometricEnrollment();
     method public boolean isRandomizedEncryptionRequired();
     method public boolean isStrongBoxBacked();
@@ -40742,46 +40638,46 @@
   }
 
   public static final class KeyGenParameterSpec.Builder {
-    ctor public KeyGenParameterSpec.Builder(java.lang.String, int);
-    method public android.security.keystore.KeyGenParameterSpec build();
-    method public android.security.keystore.KeyGenParameterSpec.Builder setAlgorithmParameterSpec(java.security.spec.AlgorithmParameterSpec);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setAttestationChallenge(byte[]);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setBlockModes(java.lang.String...);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setCertificateNotAfter(java.util.Date);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setCertificateNotBefore(java.util.Date);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setCertificateSerialNumber(java.math.BigInteger);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setCertificateSubject(javax.security.auth.x500.X500Principal);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setDigests(java.lang.String...);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setEncryptionPaddings(java.lang.String...);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setInvalidatedByBiometricEnrollment(boolean);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setIsStrongBoxBacked(boolean);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setKeySize(int);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setKeyValidityEnd(java.util.Date);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setKeyValidityForConsumptionEnd(java.util.Date);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setKeyValidityForOriginationEnd(java.util.Date);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setKeyValidityStart(java.util.Date);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setRandomizedEncryptionRequired(boolean);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setSignaturePaddings(java.lang.String...);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setUnlockedDeviceRequired(boolean);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setUserAuthenticationRequired(boolean);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setUserAuthenticationValidWhileOnBody(boolean);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setUserAuthenticationValidityDurationSeconds(int);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setUserConfirmationRequired(boolean);
-    method public android.security.keystore.KeyGenParameterSpec.Builder setUserPresenceRequired(boolean);
+    ctor public KeyGenParameterSpec.Builder(@NonNull String, int);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec build();
+    method public android.security.keystore.KeyGenParameterSpec.Builder setAlgorithmParameterSpec(@NonNull java.security.spec.AlgorithmParameterSpec);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setAttestationChallenge(byte[]);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setBlockModes(java.lang.String...);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setCertificateNotAfter(@NonNull java.util.Date);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setCertificateNotBefore(@NonNull java.util.Date);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setCertificateSerialNumber(@NonNull java.math.BigInteger);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setCertificateSubject(@NonNull javax.security.auth.x500.X500Principal);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setDigests(java.lang.String...);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setEncryptionPaddings(java.lang.String...);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setInvalidatedByBiometricEnrollment(boolean);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setIsStrongBoxBacked(boolean);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setKeySize(int);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setKeyValidityEnd(java.util.Date);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setKeyValidityForConsumptionEnd(java.util.Date);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setKeyValidityForOriginationEnd(java.util.Date);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setKeyValidityStart(java.util.Date);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setRandomizedEncryptionRequired(boolean);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setSignaturePaddings(java.lang.String...);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setUnlockedDeviceRequired(boolean);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setUserAuthenticationRequired(boolean);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setUserAuthenticationValidWhileOnBody(boolean);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setUserAuthenticationValidityDurationSeconds(@IntRange(from=0xffffffff) int);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setUserConfirmationRequired(boolean);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setUserPresenceRequired(boolean);
   }
 
   public class KeyInfo implements java.security.spec.KeySpec {
-    method public java.lang.String[] getBlockModes();
-    method public java.lang.String[] getDigests();
-    method public java.lang.String[] getEncryptionPaddings();
+    method @NonNull public String[] getBlockModes();
+    method @NonNull public String[] getDigests();
+    method @NonNull public String[] getEncryptionPaddings();
     method public int getKeySize();
-    method public java.util.Date getKeyValidityForConsumptionEnd();
-    method public java.util.Date getKeyValidityForOriginationEnd();
-    method public java.util.Date getKeyValidityStart();
-    method public java.lang.String getKeystoreAlias();
+    method @Nullable public java.util.Date getKeyValidityForConsumptionEnd();
+    method @Nullable public java.util.Date getKeyValidityForOriginationEnd();
+    method @Nullable public java.util.Date getKeyValidityStart();
+    method public String getKeystoreAlias();
     method public int getOrigin();
     method public int getPurposes();
-    method public java.lang.String[] getSignaturePaddings();
+    method @NonNull public String[] getSignaturePaddings();
     method public int getUserAuthenticationValidityDurationSeconds();
     method public boolean isInsideSecureHardware();
     method public boolean isInvalidatedByBiometricEnrollment();
@@ -40794,41 +40690,41 @@
 
   public class KeyNotYetValidException extends java.security.InvalidKeyException {
     ctor public KeyNotYetValidException();
-    ctor public KeyNotYetValidException(java.lang.String);
-    ctor public KeyNotYetValidException(java.lang.String, java.lang.Throwable);
+    ctor public KeyNotYetValidException(String);
+    ctor public KeyNotYetValidException(String, Throwable);
   }
 
   public class KeyPermanentlyInvalidatedException extends java.security.InvalidKeyException {
     ctor public KeyPermanentlyInvalidatedException();
-    ctor public KeyPermanentlyInvalidatedException(java.lang.String);
-    ctor public KeyPermanentlyInvalidatedException(java.lang.String, java.lang.Throwable);
+    ctor public KeyPermanentlyInvalidatedException(String);
+    ctor public KeyPermanentlyInvalidatedException(String, Throwable);
   }
 
   public abstract class KeyProperties {
-    field public static final java.lang.String BLOCK_MODE_CBC = "CBC";
-    field public static final java.lang.String BLOCK_MODE_CTR = "CTR";
-    field public static final java.lang.String BLOCK_MODE_ECB = "ECB";
-    field public static final java.lang.String BLOCK_MODE_GCM = "GCM";
-    field public static final java.lang.String DIGEST_MD5 = "MD5";
-    field public static final java.lang.String DIGEST_NONE = "NONE";
-    field public static final java.lang.String DIGEST_SHA1 = "SHA-1";
-    field public static final java.lang.String DIGEST_SHA224 = "SHA-224";
-    field public static final java.lang.String DIGEST_SHA256 = "SHA-256";
-    field public static final java.lang.String DIGEST_SHA384 = "SHA-384";
-    field public static final java.lang.String DIGEST_SHA512 = "SHA-512";
-    field public static final java.lang.String ENCRYPTION_PADDING_NONE = "NoPadding";
-    field public static final java.lang.String ENCRYPTION_PADDING_PKCS7 = "PKCS7Padding";
-    field public static final java.lang.String ENCRYPTION_PADDING_RSA_OAEP = "OAEPPadding";
-    field public static final java.lang.String ENCRYPTION_PADDING_RSA_PKCS1 = "PKCS1Padding";
-    field public static final deprecated java.lang.String KEY_ALGORITHM_3DES = "DESede";
-    field public static final java.lang.String KEY_ALGORITHM_AES = "AES";
-    field public static final java.lang.String KEY_ALGORITHM_EC = "EC";
-    field public static final java.lang.String KEY_ALGORITHM_HMAC_SHA1 = "HmacSHA1";
-    field public static final java.lang.String KEY_ALGORITHM_HMAC_SHA224 = "HmacSHA224";
-    field public static final java.lang.String KEY_ALGORITHM_HMAC_SHA256 = "HmacSHA256";
-    field public static final java.lang.String KEY_ALGORITHM_HMAC_SHA384 = "HmacSHA384";
-    field public static final java.lang.String KEY_ALGORITHM_HMAC_SHA512 = "HmacSHA512";
-    field public static final java.lang.String KEY_ALGORITHM_RSA = "RSA";
+    field public static final String BLOCK_MODE_CBC = "CBC";
+    field public static final String BLOCK_MODE_CTR = "CTR";
+    field public static final String BLOCK_MODE_ECB = "ECB";
+    field public static final String BLOCK_MODE_GCM = "GCM";
+    field public static final String DIGEST_MD5 = "MD5";
+    field public static final String DIGEST_NONE = "NONE";
+    field public static final String DIGEST_SHA1 = "SHA-1";
+    field public static final String DIGEST_SHA224 = "SHA-224";
+    field public static final String DIGEST_SHA256 = "SHA-256";
+    field public static final String DIGEST_SHA384 = "SHA-384";
+    field public static final String DIGEST_SHA512 = "SHA-512";
+    field public static final String ENCRYPTION_PADDING_NONE = "NoPadding";
+    field public static final String ENCRYPTION_PADDING_PKCS7 = "PKCS7Padding";
+    field public static final String ENCRYPTION_PADDING_RSA_OAEP = "OAEPPadding";
+    field public static final String ENCRYPTION_PADDING_RSA_PKCS1 = "PKCS1Padding";
+    field @Deprecated public static final String KEY_ALGORITHM_3DES = "DESede";
+    field public static final String KEY_ALGORITHM_AES = "AES";
+    field public static final String KEY_ALGORITHM_EC = "EC";
+    field public static final String KEY_ALGORITHM_HMAC_SHA1 = "HmacSHA1";
+    field public static final String KEY_ALGORITHM_HMAC_SHA224 = "HmacSHA224";
+    field public static final String KEY_ALGORITHM_HMAC_SHA256 = "HmacSHA256";
+    field public static final String KEY_ALGORITHM_HMAC_SHA384 = "HmacSHA384";
+    field public static final String KEY_ALGORITHM_HMAC_SHA512 = "HmacSHA512";
+    field public static final String KEY_ALGORITHM_RSA = "RSA";
     field public static final int ORIGIN_GENERATED = 1; // 0x1
     field public static final int ORIGIN_IMPORTED = 2; // 0x2
     field public static final int ORIGIN_SECURELY_IMPORTED = 8; // 0x8
@@ -40838,19 +40734,19 @@
     field public static final int PURPOSE_SIGN = 4; // 0x4
     field public static final int PURPOSE_VERIFY = 8; // 0x8
     field public static final int PURPOSE_WRAP_KEY = 32; // 0x20
-    field public static final java.lang.String SIGNATURE_PADDING_RSA_PKCS1 = "PKCS1";
-    field public static final java.lang.String SIGNATURE_PADDING_RSA_PSS = "PSS";
+    field public static final String SIGNATURE_PADDING_RSA_PKCS1 = "PKCS1";
+    field public static final String SIGNATURE_PADDING_RSA_PSS = "PSS";
   }
 
   public final class KeyProtection implements java.security.KeyStore.ProtectionParameter {
-    method public java.lang.String[] getBlockModes();
-    method public java.lang.String[] getDigests();
-    method public java.lang.String[] getEncryptionPaddings();
-    method public java.util.Date getKeyValidityForConsumptionEnd();
-    method public java.util.Date getKeyValidityForOriginationEnd();
-    method public java.util.Date getKeyValidityStart();
+    method @NonNull public String[] getBlockModes();
+    method @NonNull public String[] getDigests();
+    method @NonNull public String[] getEncryptionPaddings();
+    method @Nullable public java.util.Date getKeyValidityForConsumptionEnd();
+    method @Nullable public java.util.Date getKeyValidityForOriginationEnd();
+    method @Nullable public java.util.Date getKeyValidityStart();
     method public int getPurposes();
-    method public java.lang.String[] getSignaturePaddings();
+    method @NonNull public String[] getSignaturePaddings();
     method public int getUserAuthenticationValidityDurationSeconds();
     method public boolean isDigestsSpecified();
     method public boolean isInvalidatedByBiometricEnrollment();
@@ -40864,57 +40760,57 @@
 
   public static final class KeyProtection.Builder {
     ctor public KeyProtection.Builder(int);
-    method public android.security.keystore.KeyProtection build();
-    method public android.security.keystore.KeyProtection.Builder setBlockModes(java.lang.String...);
-    method public android.security.keystore.KeyProtection.Builder setDigests(java.lang.String...);
-    method public android.security.keystore.KeyProtection.Builder setEncryptionPaddings(java.lang.String...);
-    method public android.security.keystore.KeyProtection.Builder setInvalidatedByBiometricEnrollment(boolean);
-    method public android.security.keystore.KeyProtection.Builder setKeyValidityEnd(java.util.Date);
-    method public android.security.keystore.KeyProtection.Builder setKeyValidityForConsumptionEnd(java.util.Date);
-    method public android.security.keystore.KeyProtection.Builder setKeyValidityForOriginationEnd(java.util.Date);
-    method public android.security.keystore.KeyProtection.Builder setKeyValidityStart(java.util.Date);
-    method public android.security.keystore.KeyProtection.Builder setRandomizedEncryptionRequired(boolean);
-    method public android.security.keystore.KeyProtection.Builder setSignaturePaddings(java.lang.String...);
-    method public android.security.keystore.KeyProtection.Builder setUnlockedDeviceRequired(boolean);
-    method public android.security.keystore.KeyProtection.Builder setUserAuthenticationRequired(boolean);
-    method public android.security.keystore.KeyProtection.Builder setUserAuthenticationValidWhileOnBody(boolean);
-    method public android.security.keystore.KeyProtection.Builder setUserAuthenticationValidityDurationSeconds(int);
-    method public android.security.keystore.KeyProtection.Builder setUserConfirmationRequired(boolean);
-    method public android.security.keystore.KeyProtection.Builder setUserPresenceRequired(boolean);
+    method @NonNull public android.security.keystore.KeyProtection build();
+    method @NonNull public android.security.keystore.KeyProtection.Builder setBlockModes(java.lang.String...);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setDigests(java.lang.String...);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setEncryptionPaddings(java.lang.String...);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setInvalidatedByBiometricEnrollment(boolean);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setKeyValidityEnd(java.util.Date);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setKeyValidityForConsumptionEnd(java.util.Date);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setKeyValidityForOriginationEnd(java.util.Date);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setKeyValidityStart(java.util.Date);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setRandomizedEncryptionRequired(boolean);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setSignaturePaddings(java.lang.String...);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setUnlockedDeviceRequired(boolean);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setUserAuthenticationRequired(boolean);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setUserAuthenticationValidWhileOnBody(boolean);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setUserAuthenticationValidityDurationSeconds(@IntRange(from=0xffffffff) int);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setUserConfirmationRequired(boolean);
+    method @NonNull public android.security.keystore.KeyProtection.Builder setUserPresenceRequired(boolean);
   }
 
   public class SecureKeyImportUnavailableException extends java.security.ProviderException {
     ctor public SecureKeyImportUnavailableException();
-    ctor public SecureKeyImportUnavailableException(java.lang.String);
-    ctor public SecureKeyImportUnavailableException(java.lang.String, java.lang.Throwable);
-    ctor public SecureKeyImportUnavailableException(java.lang.Throwable);
+    ctor public SecureKeyImportUnavailableException(String);
+    ctor public SecureKeyImportUnavailableException(String, Throwable);
+    ctor public SecureKeyImportUnavailableException(Throwable);
   }
 
   public class StrongBoxUnavailableException extends java.security.ProviderException {
     ctor public StrongBoxUnavailableException();
-    ctor public StrongBoxUnavailableException(java.lang.String);
-    ctor public StrongBoxUnavailableException(java.lang.String, java.lang.Throwable);
-    ctor public StrongBoxUnavailableException(java.lang.Throwable);
+    ctor public StrongBoxUnavailableException(String);
+    ctor public StrongBoxUnavailableException(String, Throwable);
+    ctor public StrongBoxUnavailableException(Throwable);
   }
 
   public class UserNotAuthenticatedException extends java.security.InvalidKeyException {
     ctor public UserNotAuthenticatedException();
-    ctor public UserNotAuthenticatedException(java.lang.String);
-    ctor public UserNotAuthenticatedException(java.lang.String, java.lang.Throwable);
+    ctor public UserNotAuthenticatedException(String);
+    ctor public UserNotAuthenticatedException(String, Throwable);
   }
 
   public class UserPresenceUnavailableException extends java.security.InvalidKeyException {
     ctor public UserPresenceUnavailableException();
-    ctor public UserPresenceUnavailableException(java.lang.String);
-    ctor public UserPresenceUnavailableException(java.lang.String, java.lang.Throwable);
+    ctor public UserPresenceUnavailableException(String);
+    ctor public UserPresenceUnavailableException(String, Throwable);
   }
 
   public class WrappedKeyEntry implements java.security.KeyStore.Entry {
-    ctor public WrappedKeyEntry(byte[], java.lang.String, java.lang.String, java.security.spec.AlgorithmParameterSpec);
+    ctor public WrappedKeyEntry(byte[], String, String, java.security.spec.AlgorithmParameterSpec);
     method public java.security.spec.AlgorithmParameterSpec getAlgorithmParameterSpec();
-    method public java.lang.String getTransformation();
+    method public String getTransformation();
     method public byte[] getWrappedKeyBytes();
-    method public java.lang.String getWrappingKeyAlias();
+    method public String getWrappingKeyAlias();
   }
 
 }
@@ -40923,14 +40819,14 @@
 
   public abstract class AutofillService extends android.app.Service {
     ctor public AutofillService();
-    method public final android.service.autofill.FillEventHistory getFillEventHistory();
+    method @Nullable public final android.service.autofill.FillEventHistory getFillEventHistory();
     method public final android.os.IBinder onBind(android.content.Intent);
     method public void onConnected();
     method public void onDisconnected();
-    method public abstract void onFillRequest(android.service.autofill.FillRequest, android.os.CancellationSignal, android.service.autofill.FillCallback);
-    method public abstract void onSaveRequest(android.service.autofill.SaveRequest, android.service.autofill.SaveCallback);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.autofill.AutofillService";
-    field public static final java.lang.String SERVICE_META_DATA = "android.autofill";
+    method public abstract void onFillRequest(@NonNull android.service.autofill.FillRequest, @NonNull android.os.CancellationSignal, @NonNull android.service.autofill.FillCallback);
+    method public abstract void onSaveRequest(@NonNull android.service.autofill.SaveRequest, @NonNull android.service.autofill.SaveCallback);
+    field public static final String SERVICE_INTERFACE = "android.service.autofill.AutofillService";
+    field public static final String SERVICE_META_DATA = "android.autofill";
   }
 
   public final class BatchUpdates implements android.os.Parcelable {
@@ -40942,8 +40838,8 @@
   public static class BatchUpdates.Builder {
     ctor public BatchUpdates.Builder();
     method public android.service.autofill.BatchUpdates build();
-    method public android.service.autofill.BatchUpdates.Builder transformChild(int, android.service.autofill.Transformation);
-    method public android.service.autofill.BatchUpdates.Builder updateTemplate(android.widget.RemoteViews);
+    method public android.service.autofill.BatchUpdates.Builder transformChild(int, @NonNull android.service.autofill.Transformation);
+    method public android.service.autofill.BatchUpdates.Builder updateTemplate(@NonNull android.widget.RemoteViews);
   }
 
   public final class CharSequenceTransformation implements android.os.Parcelable android.service.autofill.Transformation {
@@ -40953,8 +40849,8 @@
   }
 
   public static class CharSequenceTransformation.Builder {
-    ctor public CharSequenceTransformation.Builder(android.view.autofill.AutofillId, java.util.regex.Pattern, java.lang.String);
-    method public android.service.autofill.CharSequenceTransformation.Builder addField(android.view.autofill.AutofillId, java.util.regex.Pattern, java.lang.String);
+    ctor public CharSequenceTransformation.Builder(@NonNull android.view.autofill.AutofillId, @NonNull java.util.regex.Pattern, @NonNull String);
+    method public android.service.autofill.CharSequenceTransformation.Builder addField(@NonNull android.view.autofill.AutofillId, @NonNull java.util.regex.Pattern, @NonNull String);
     method public android.service.autofill.CharSequenceTransformation build();
   }
 
@@ -40965,10 +40861,10 @@
   }
 
   public static class CustomDescription.Builder {
-    ctor public CustomDescription.Builder(android.widget.RemoteViews);
-    method public android.service.autofill.CustomDescription.Builder addChild(int, android.service.autofill.Transformation);
-    method public android.service.autofill.CustomDescription.Builder addOnClickAction(int, android.service.autofill.OnClickAction);
-    method public android.service.autofill.CustomDescription.Builder batchUpdate(android.service.autofill.Validator, android.service.autofill.BatchUpdates);
+    ctor public CustomDescription.Builder(@NonNull android.widget.RemoteViews);
+    method public android.service.autofill.CustomDescription.Builder addChild(int, @NonNull android.service.autofill.Transformation);
+    method public android.service.autofill.CustomDescription.Builder addOnClickAction(int, @NonNull android.service.autofill.OnClickAction);
+    method public android.service.autofill.CustomDescription.Builder batchUpdate(@NonNull android.service.autofill.Validator, @NonNull android.service.autofill.BatchUpdates);
     method public android.service.autofill.CustomDescription build();
   }
 
@@ -40979,43 +40875,43 @@
   }
 
   public static final class Dataset.Builder {
-    ctor public Dataset.Builder(android.widget.RemoteViews);
+    ctor public Dataset.Builder(@NonNull android.widget.RemoteViews);
     ctor public Dataset.Builder();
-    method public android.service.autofill.Dataset build();
-    method public android.service.autofill.Dataset.Builder setAuthentication(android.content.IntentSender);
-    method public android.service.autofill.Dataset.Builder setId(java.lang.String);
-    method public android.service.autofill.Dataset.Builder setValue(android.view.autofill.AutofillId, android.view.autofill.AutofillValue);
-    method public android.service.autofill.Dataset.Builder setValue(android.view.autofill.AutofillId, android.view.autofill.AutofillValue, android.widget.RemoteViews);
-    method public android.service.autofill.Dataset.Builder setValue(android.view.autofill.AutofillId, android.view.autofill.AutofillValue, java.util.regex.Pattern);
-    method public android.service.autofill.Dataset.Builder setValue(android.view.autofill.AutofillId, android.view.autofill.AutofillValue, java.util.regex.Pattern, android.widget.RemoteViews);
+    method @NonNull public android.service.autofill.Dataset build();
+    method @NonNull public android.service.autofill.Dataset.Builder setAuthentication(@Nullable android.content.IntentSender);
+    method @NonNull public android.service.autofill.Dataset.Builder setId(@Nullable String);
+    method @NonNull public android.service.autofill.Dataset.Builder setValue(@NonNull android.view.autofill.AutofillId, @Nullable android.view.autofill.AutofillValue);
+    method @NonNull public android.service.autofill.Dataset.Builder setValue(@NonNull android.view.autofill.AutofillId, @Nullable android.view.autofill.AutofillValue, @NonNull android.widget.RemoteViews);
+    method @NonNull public android.service.autofill.Dataset.Builder setValue(@NonNull android.view.autofill.AutofillId, @Nullable android.view.autofill.AutofillValue, @Nullable java.util.regex.Pattern);
+    method @NonNull public android.service.autofill.Dataset.Builder setValue(@NonNull android.view.autofill.AutofillId, @Nullable android.view.autofill.AutofillValue, @Nullable java.util.regex.Pattern, @NonNull android.widget.RemoteViews);
   }
 
   public final class DateTransformation implements android.os.Parcelable android.service.autofill.Transformation {
-    ctor public DateTransformation(android.view.autofill.AutofillId, android.icu.text.DateFormat);
+    ctor public DateTransformation(@NonNull android.view.autofill.AutofillId, @NonNull android.icu.text.DateFormat);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.autofill.DateTransformation> CREATOR;
   }
 
   public final class DateValueSanitizer implements android.os.Parcelable android.service.autofill.Sanitizer {
-    ctor public DateValueSanitizer(android.icu.text.DateFormat);
+    ctor public DateValueSanitizer(@NonNull android.icu.text.DateFormat);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.autofill.DateValueSanitizer> CREATOR;
   }
 
   public final class FieldClassification {
-    method public java.util.List<android.service.autofill.FieldClassification.Match> getMatches();
+    method @NonNull public java.util.List<android.service.autofill.FieldClassification.Match> getMatches();
   }
 
   public static final class FieldClassification.Match {
-    method public java.lang.String getCategoryId();
+    method @NonNull public String getCategoryId();
     method public float getScore();
   }
 
   public final class FillCallback {
-    method public void onFailure(java.lang.CharSequence);
-    method public void onSuccess(android.service.autofill.FillResponse);
+    method public void onFailure(@Nullable CharSequence);
+    method public void onSuccess(@Nullable android.service.autofill.FillResponse);
   }
 
   public final class FillContext implements android.os.Parcelable {
@@ -41028,20 +40924,20 @@
 
   public final class FillEventHistory implements android.os.Parcelable {
     method public int describeContents();
-    method public deprecated android.os.Bundle getClientState();
-    method public java.util.List<android.service.autofill.FillEventHistory.Event> getEvents();
+    method @Deprecated @Nullable public android.os.Bundle getClientState();
+    method @Nullable public java.util.List<android.service.autofill.FillEventHistory.Event> getEvents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.autofill.FillEventHistory> CREATOR;
   }
 
   public static final class FillEventHistory.Event {
-    method public java.util.Map<android.view.autofill.AutofillId, java.lang.String> getChangedFields();
-    method public android.os.Bundle getClientState();
-    method public java.lang.String getDatasetId();
-    method public java.util.Map<android.view.autofill.AutofillId, android.service.autofill.FieldClassification> getFieldsClassification();
-    method public java.util.Set<java.lang.String> getIgnoredDatasetIds();
-    method public java.util.Map<android.view.autofill.AutofillId, java.util.Set<java.lang.String>> getManuallyEnteredField();
-    method public java.util.Set<java.lang.String> getSelectedDatasetIds();
+    method @NonNull public java.util.Map<android.view.autofill.AutofillId,java.lang.String> getChangedFields();
+    method @Nullable public android.os.Bundle getClientState();
+    method @Nullable public String getDatasetId();
+    method @NonNull public java.util.Map<android.view.autofill.AutofillId,android.service.autofill.FieldClassification> getFieldsClassification();
+    method @NonNull public java.util.Set<java.lang.String> getIgnoredDatasetIds();
+    method @NonNull public java.util.Map<android.view.autofill.AutofillId,java.util.Set<java.lang.String>> getManuallyEnteredField();
+    method @NonNull public java.util.Set<java.lang.String> getSelectedDatasetIds();
     method public int getType();
     field public static final int TYPE_AUTHENTICATION_SELECTED = 2; // 0x2
     field public static final int TYPE_CONTEXT_COMMITTED = 4; // 0x4
@@ -41052,8 +40948,8 @@
 
   public final class FillRequest implements android.os.Parcelable {
     method public int describeContents();
-    method public android.os.Bundle getClientState();
-    method public java.util.List<android.service.autofill.FillContext> getFillContexts();
+    method @Nullable public android.os.Bundle getClientState();
+    method @NonNull public java.util.List<android.service.autofill.FillContext> getFillContexts();
     method public int getFlags();
     method public int getId();
     method public void writeToParcel(android.os.Parcel, int);
@@ -41072,18 +40968,18 @@
 
   public static final class FillResponse.Builder {
     ctor public FillResponse.Builder();
-    method public android.service.autofill.FillResponse.Builder addDataset(android.service.autofill.Dataset);
+    method @NonNull public android.service.autofill.FillResponse.Builder addDataset(@Nullable android.service.autofill.Dataset);
     method public android.service.autofill.FillResponse build();
     method public android.service.autofill.FillResponse.Builder disableAutofill(long);
-    method public android.service.autofill.FillResponse.Builder setAuthentication(android.view.autofill.AutofillId[], android.content.IntentSender, android.widget.RemoteViews);
-    method public android.service.autofill.FillResponse.Builder setClientState(android.os.Bundle);
-    method public android.service.autofill.FillResponse.Builder setFieldClassificationIds(android.view.autofill.AutofillId...);
+    method @NonNull public android.service.autofill.FillResponse.Builder setAuthentication(@NonNull android.view.autofill.AutofillId[], @Nullable android.content.IntentSender, @Nullable android.widget.RemoteViews);
+    method public android.service.autofill.FillResponse.Builder setClientState(@Nullable android.os.Bundle);
+    method public android.service.autofill.FillResponse.Builder setFieldClassificationIds(@NonNull android.view.autofill.AutofillId...);
     method public android.service.autofill.FillResponse.Builder setFlags(int);
-    method public android.service.autofill.FillResponse.Builder setFooter(android.widget.RemoteViews);
-    method public android.service.autofill.FillResponse.Builder setHeader(android.widget.RemoteViews);
+    method public android.service.autofill.FillResponse.Builder setFooter(@NonNull android.widget.RemoteViews);
+    method public android.service.autofill.FillResponse.Builder setHeader(@NonNull android.widget.RemoteViews);
     method public android.service.autofill.FillResponse.Builder setIgnoredIds(android.view.autofill.AutofillId...);
-    method public android.service.autofill.FillResponse.Builder setSaveInfo(android.service.autofill.SaveInfo);
-    method public android.service.autofill.FillResponse.Builder setUserData(android.service.autofill.UserData);
+    method @NonNull public android.service.autofill.FillResponse.Builder setSaveInfo(@NonNull android.service.autofill.SaveInfo);
+    method public android.service.autofill.FillResponse.Builder setUserData(@NonNull android.service.autofill.UserData);
   }
 
   public final class ImageTransformation implements android.os.Parcelable android.service.autofill.Transformation {
@@ -41093,37 +40989,37 @@
   }
 
   public static class ImageTransformation.Builder {
-    ctor public deprecated ImageTransformation.Builder(android.view.autofill.AutofillId, java.util.regex.Pattern, int);
-    ctor public ImageTransformation.Builder(android.view.autofill.AutofillId, java.util.regex.Pattern, int, java.lang.CharSequence);
-    method public deprecated android.service.autofill.ImageTransformation.Builder addOption(java.util.regex.Pattern, int);
-    method public android.service.autofill.ImageTransformation.Builder addOption(java.util.regex.Pattern, int, java.lang.CharSequence);
+    ctor @Deprecated public ImageTransformation.Builder(@NonNull android.view.autofill.AutofillId, @NonNull java.util.regex.Pattern, @DrawableRes int);
+    ctor public ImageTransformation.Builder(@NonNull android.view.autofill.AutofillId, @NonNull java.util.regex.Pattern, @DrawableRes int, @NonNull CharSequence);
+    method @Deprecated public android.service.autofill.ImageTransformation.Builder addOption(@NonNull java.util.regex.Pattern, @DrawableRes int);
+    method public android.service.autofill.ImageTransformation.Builder addOption(@NonNull java.util.regex.Pattern, @DrawableRes int, @NonNull CharSequence);
     method public android.service.autofill.ImageTransformation build();
   }
 
   public final class LuhnChecksumValidator implements android.os.Parcelable android.service.autofill.Validator {
-    ctor public LuhnChecksumValidator(android.view.autofill.AutofillId...);
+    ctor public LuhnChecksumValidator(@NonNull android.view.autofill.AutofillId...);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.autofill.LuhnChecksumValidator> CREATOR;
   }
 
-  public abstract interface OnClickAction {
+  public interface OnClickAction {
   }
 
   public final class RegexValidator implements android.os.Parcelable android.service.autofill.Validator {
-    ctor public RegexValidator(android.view.autofill.AutofillId, java.util.regex.Pattern);
+    ctor public RegexValidator(@NonNull android.view.autofill.AutofillId, @NonNull java.util.regex.Pattern);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.autofill.RegexValidator> CREATOR;
   }
 
-  public abstract interface Sanitizer {
+  public interface Sanitizer {
   }
 
   public final class SaveCallback {
-    method public void onFailure(java.lang.CharSequence);
+    method public void onFailure(CharSequence);
     method public void onSuccess();
-    method public void onSuccess(android.content.IntentSender);
+    method public void onSuccess(@NonNull android.content.IntentSender);
   }
 
   public final class SaveInfo implements android.os.Parcelable {
@@ -41144,43 +41040,43 @@
   }
 
   public static final class SaveInfo.Builder {
-    ctor public SaveInfo.Builder(int, android.view.autofill.AutofillId[]);
+    ctor public SaveInfo.Builder(int, @NonNull android.view.autofill.AutofillId[]);
     ctor public SaveInfo.Builder(int);
-    method public android.service.autofill.SaveInfo.Builder addSanitizer(android.service.autofill.Sanitizer, android.view.autofill.AutofillId...);
+    method @NonNull public android.service.autofill.SaveInfo.Builder addSanitizer(@NonNull android.service.autofill.Sanitizer, @NonNull android.view.autofill.AutofillId...);
     method public android.service.autofill.SaveInfo build();
-    method public android.service.autofill.SaveInfo.Builder setCustomDescription(android.service.autofill.CustomDescription);
-    method public android.service.autofill.SaveInfo.Builder setDescription(java.lang.CharSequence);
-    method public android.service.autofill.SaveInfo.Builder setFlags(int);
-    method public android.service.autofill.SaveInfo.Builder setNegativeAction(int, android.content.IntentSender);
-    method public android.service.autofill.SaveInfo.Builder setOptionalIds(android.view.autofill.AutofillId[]);
-    method public android.service.autofill.SaveInfo.Builder setTriggerId(android.view.autofill.AutofillId);
-    method public android.service.autofill.SaveInfo.Builder setValidator(android.service.autofill.Validator);
+    method @NonNull public android.service.autofill.SaveInfo.Builder setCustomDescription(@NonNull android.service.autofill.CustomDescription);
+    method @NonNull public android.service.autofill.SaveInfo.Builder setDescription(@Nullable CharSequence);
+    method @NonNull public android.service.autofill.SaveInfo.Builder setFlags(int);
+    method @NonNull public android.service.autofill.SaveInfo.Builder setNegativeAction(int, @Nullable android.content.IntentSender);
+    method @NonNull public android.service.autofill.SaveInfo.Builder setOptionalIds(@NonNull android.view.autofill.AutofillId[]);
+    method @NonNull public android.service.autofill.SaveInfo.Builder setTriggerId(@NonNull android.view.autofill.AutofillId);
+    method @NonNull public android.service.autofill.SaveInfo.Builder setValidator(@NonNull android.service.autofill.Validator);
   }
 
   public final class SaveRequest implements android.os.Parcelable {
     method public int describeContents();
-    method public android.os.Bundle getClientState();
-    method public java.util.List<java.lang.String> getDatasetIds();
-    method public java.util.List<android.service.autofill.FillContext> getFillContexts();
+    method @Nullable public android.os.Bundle getClientState();
+    method @Nullable public java.util.List<java.lang.String> getDatasetIds();
+    method @NonNull public java.util.List<android.service.autofill.FillContext> getFillContexts();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.autofill.SaveRequest> CREATOR;
   }
 
   public final class TextValueSanitizer implements android.os.Parcelable android.service.autofill.Sanitizer {
-    ctor public TextValueSanitizer(java.util.regex.Pattern, java.lang.String);
+    ctor public TextValueSanitizer(@NonNull java.util.regex.Pattern, @NonNull String);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.autofill.TextValueSanitizer> CREATOR;
   }
 
-  public abstract interface Transformation {
+  public interface Transformation {
   }
 
   public final class UserData implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getFieldClassificationAlgorithm();
-    method public java.lang.String getFieldClassificationAlgorithmForCategory(java.lang.String);
-    method public java.lang.String getId();
+    method @Nullable public String getFieldClassificationAlgorithm();
+    method @Nullable public String getFieldClassificationAlgorithmForCategory(@NonNull String);
+    method public String getId();
     method public static int getMaxCategoryCount();
     method public static int getMaxFieldClassificationIdsSize();
     method public static int getMaxUserDataSize();
@@ -41191,20 +41087,20 @@
   }
 
   public static final class UserData.Builder {
-    ctor public UserData.Builder(java.lang.String, java.lang.String, java.lang.String);
-    method public android.service.autofill.UserData.Builder add(java.lang.String, java.lang.String);
+    ctor public UserData.Builder(@NonNull String, @NonNull String, @NonNull String);
+    method public android.service.autofill.UserData.Builder add(@NonNull String, @NonNull String);
     method public android.service.autofill.UserData build();
-    method public android.service.autofill.UserData.Builder setFieldClassificationAlgorithm(java.lang.String, android.os.Bundle);
-    method public android.service.autofill.UserData.Builder setFieldClassificationAlgorithmForCategory(java.lang.String, java.lang.String, android.os.Bundle);
+    method public android.service.autofill.UserData.Builder setFieldClassificationAlgorithm(@Nullable String, @Nullable android.os.Bundle);
+    method public android.service.autofill.UserData.Builder setFieldClassificationAlgorithmForCategory(@NonNull String, @Nullable String, @Nullable android.os.Bundle);
   }
 
-  public abstract interface Validator {
+  public interface Validator {
   }
 
   public final class Validators {
-    method public static android.service.autofill.Validator and(android.service.autofill.Validator...);
-    method public static android.service.autofill.Validator not(android.service.autofill.Validator);
-    method public static android.service.autofill.Validator or(android.service.autofill.Validator...);
+    method @NonNull public static android.service.autofill.Validator and(@NonNull android.service.autofill.Validator...);
+    method @NonNull public static android.service.autofill.Validator not(@NonNull android.service.autofill.Validator);
+    method @NonNull public static android.service.autofill.Validator or(@NonNull android.service.autofill.Validator...);
   }
 
   public final class VisibilitySetterAction implements android.service.autofill.OnClickAction android.os.Parcelable {
@@ -41214,9 +41110,9 @@
   }
 
   public static class VisibilitySetterAction.Builder {
-    ctor public VisibilitySetterAction.Builder(int, int);
+    ctor public VisibilitySetterAction.Builder(@IdRes int, int);
     method public android.service.autofill.VisibilitySetterAction build();
-    method public android.service.autofill.VisibilitySetterAction.Builder setVisibility(int, int);
+    method public android.service.autofill.VisibilitySetterAction.Builder setVisibility(@IdRes int, int);
   }
 
 }
@@ -41224,35 +41120,35 @@
 package android.service.carrier {
 
   public class CarrierIdentifier implements android.os.Parcelable {
-    ctor public CarrierIdentifier(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    ctor public CarrierIdentifier(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, int);
-    ctor public CarrierIdentifier(byte[], java.lang.String, java.lang.String);
+    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(byte[], @Nullable String, @Nullable String);
     method public int describeContents();
     method public int getCarrierId();
-    method public java.lang.String getGid1();
-    method public java.lang.String getGid2();
-    method public java.lang.String getImsi();
-    method public java.lang.String getMcc();
-    method public java.lang.String getMnc();
+    method @Nullable public String getGid1();
+    method @Nullable public String getGid2();
+    method @Nullable public String getImsi();
+    method public String getMcc();
+    method public String getMnc();
     method public int getPreciseCarrierId();
-    method public java.lang.String getSpn();
+    method @Nullable public String getSpn();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.carrier.CarrierIdentifier> CREATOR;
   }
 
   public abstract class CarrierMessagingService extends android.app.Service {
     ctor public CarrierMessagingService();
-    method public android.os.IBinder onBind(android.content.Intent);
-    method public void onDownloadMms(android.net.Uri, int, android.net.Uri, android.service.carrier.CarrierMessagingService.ResultCallback<java.lang.Integer>);
-    method public deprecated void onFilterSms(android.service.carrier.MessagePdu, java.lang.String, int, int, android.service.carrier.CarrierMessagingService.ResultCallback<java.lang.Boolean>);
-    method public void onReceiveTextSms(android.service.carrier.MessagePdu, java.lang.String, int, int, android.service.carrier.CarrierMessagingService.ResultCallback<java.lang.Integer>);
-    method public deprecated void onSendDataSms(byte[], int, java.lang.String, int, android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendSmsResult>);
-    method public void onSendDataSms(byte[], int, java.lang.String, int, int, android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendSmsResult>);
-    method public void onSendMms(android.net.Uri, int, android.net.Uri, android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendMmsResult>);
-    method public deprecated void onSendMultipartTextSms(java.util.List<java.lang.String>, int, java.lang.String, android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendMultipartSmsResult>);
-    method public void onSendMultipartTextSms(java.util.List<java.lang.String>, int, java.lang.String, int, android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendMultipartSmsResult>);
-    method public deprecated void onSendTextSms(java.lang.String, int, java.lang.String, android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendSmsResult>);
-    method public void onSendTextSms(java.lang.String, int, java.lang.String, int, android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendSmsResult>);
+    method @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent);
+    method public void onDownloadMms(@NonNull android.net.Uri, int, @NonNull android.net.Uri, @NonNull android.service.carrier.CarrierMessagingService.ResultCallback<java.lang.Integer>);
+    method @Deprecated public void onFilterSms(@NonNull android.service.carrier.MessagePdu, @NonNull String, int, int, @NonNull android.service.carrier.CarrierMessagingService.ResultCallback<java.lang.Boolean>);
+    method public void onReceiveTextSms(@NonNull android.service.carrier.MessagePdu, @NonNull String, int, int, @NonNull android.service.carrier.CarrierMessagingService.ResultCallback<java.lang.Integer>);
+    method @Deprecated public void onSendDataSms(@NonNull byte[], int, @NonNull String, int, @NonNull android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendSmsResult>);
+    method public void onSendDataSms(@NonNull byte[], int, @NonNull String, int, int, @NonNull android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendSmsResult>);
+    method public void onSendMms(@NonNull android.net.Uri, int, @Nullable android.net.Uri, @NonNull android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendMmsResult>);
+    method @Deprecated public void onSendMultipartTextSms(@NonNull java.util.List<java.lang.String>, int, @NonNull String, @NonNull android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendMultipartSmsResult>);
+    method public void onSendMultipartTextSms(@NonNull java.util.List<java.lang.String>, int, @NonNull String, int, @NonNull android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendMultipartSmsResult>);
+    method @Deprecated public void onSendTextSms(@NonNull String, int, @NonNull String, @NonNull android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendSmsResult>);
+    method public void onSendTextSms(@NonNull String, int, @NonNull String, int, @NonNull android.service.carrier.CarrierMessagingService.ResultCallback<android.service.carrier.CarrierMessagingService.SendSmsResult>);
     field public static final int DOWNLOAD_STATUS_ERROR = 2; // 0x2
     field public static final int DOWNLOAD_STATUS_OK = 0; // 0x0
     field public static final int DOWNLOAD_STATUS_RETRY_ON_CARRIER_NETWORK = 1; // 0x1
@@ -41263,22 +41159,22 @@
     field public static final int SEND_STATUS_ERROR = 2; // 0x2
     field public static final int SEND_STATUS_OK = 0; // 0x0
     field public static final int SEND_STATUS_RETRY_ON_CARRIER_NETWORK = 1; // 0x1
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.carrier.CarrierMessagingService";
+    field public static final String SERVICE_INTERFACE = "android.service.carrier.CarrierMessagingService";
   }
 
-  public static abstract interface CarrierMessagingService.ResultCallback<T> {
-    method public abstract void onReceiveResult(T) throws android.os.RemoteException;
+  public static interface CarrierMessagingService.ResultCallback<T> {
+    method public void onReceiveResult(@NonNull T) throws android.os.RemoteException;
   }
 
   public static final class CarrierMessagingService.SendMmsResult {
-    ctor public CarrierMessagingService.SendMmsResult(int, byte[]);
-    method public byte[] getSendConfPdu();
+    ctor public CarrierMessagingService.SendMmsResult(int, @Nullable byte[]);
+    method @Nullable public byte[] getSendConfPdu();
     method public int getSendStatus();
   }
 
   public static final class CarrierMessagingService.SendMultipartSmsResult {
-    ctor public CarrierMessagingService.SendMultipartSmsResult(int, int[]);
-    method public int[] getMessageRefs();
+    ctor public CarrierMessagingService.SendMultipartSmsResult(int, @Nullable int[]);
+    method @Nullable public int[] getMessageRefs();
     method public int getSendStatus();
   }
 
@@ -41291,15 +41187,15 @@
   public abstract class CarrierService extends android.app.Service {
     ctor public CarrierService();
     method public final void notifyCarrierNetworkChange(boolean);
-    method public android.os.IBinder onBind(android.content.Intent);
+    method @CallSuper public android.os.IBinder onBind(android.content.Intent);
     method public abstract android.os.PersistableBundle onLoadConfig(android.service.carrier.CarrierIdentifier);
-    field public static final java.lang.String CARRIER_SERVICE_INTERFACE = "android.service.carrier.CarrierService";
+    field public static final String CARRIER_SERVICE_INTERFACE = "android.service.carrier.CarrierService";
   }
 
   public final class MessagePdu implements android.os.Parcelable {
-    ctor public MessagePdu(java.util.List<byte[]>);
+    ctor public MessagePdu(@NonNull java.util.List<byte[]>);
     method public int describeContents();
-    method public java.util.List<byte[]> getPdus();
+    method @NonNull public java.util.List<byte[]> getPdus();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.carrier.MessagePdu> CREATOR;
   }
@@ -41309,13 +41205,13 @@
 package android.service.chooser {
 
   public final class ChooserTarget implements android.os.Parcelable {
-    ctor public ChooserTarget(java.lang.CharSequence, android.graphics.drawable.Icon, float, android.content.ComponentName, android.os.Bundle);
+    ctor public ChooserTarget(CharSequence, android.graphics.drawable.Icon, float, android.content.ComponentName, @Nullable android.os.Bundle);
     method public int describeContents();
     method public android.content.ComponentName getComponentName();
     method public android.graphics.drawable.Icon getIcon();
     method public android.os.Bundle getIntentExtras();
     method public float getScore();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence getTitle();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.chooser.ChooserTarget> CREATOR;
   }
@@ -41324,9 +41220,9 @@
     ctor public ChooserTargetService();
     method public android.os.IBinder onBind(android.content.Intent);
     method public abstract java.util.List<android.service.chooser.ChooserTarget> onGetChooserTargets(android.content.ComponentName, android.content.IntentFilter);
-    field public static final java.lang.String BIND_PERMISSION = "android.permission.BIND_CHOOSER_TARGET_SERVICE";
-    field public static final java.lang.String META_DATA_NAME = "android.service.chooser.chooser_target_service";
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.chooser.ChooserTargetService";
+    field public static final String BIND_PERMISSION = "android.permission.BIND_CHOOSER_TARGET_SERVICE";
+    field public static final String META_DATA_NAME = "android.service.chooser.chooser_target_service";
+    field public static final String SERVICE_INTERFACE = "android.service.chooser.ChooserTargetService";
   }
 
 }
@@ -41342,7 +41238,7 @@
     method public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
     method public boolean dispatchTouchEvent(android.view.MotionEvent);
     method public boolean dispatchTrackballEvent(android.view.MotionEvent);
-    method public <T extends android.view.View> T findViewById(int);
+    method public <T extends android.view.View> T findViewById(@IdRes int);
     method public final void finish();
     method public android.view.Window getWindow();
     method public android.view.WindowManager getWindowManager();
@@ -41370,16 +41266,16 @@
     method public void onWindowFocusChanged(boolean);
     method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback);
     method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback, int);
-    method public final <T extends android.view.View> T requireViewById(int);
-    method public void setContentView(int);
+    method @NonNull public final <T extends android.view.View> T requireViewById(@IdRes int);
+    method public void setContentView(@LayoutRes int);
     method public void setContentView(android.view.View);
     method public void setContentView(android.view.View, android.view.ViewGroup.LayoutParams);
     method public void setFullscreen(boolean);
     method public void setInteractive(boolean);
     method public void setScreenBright(boolean);
     method public final void wakeUp();
-    field public static final java.lang.String DREAM_META_DATA = "android.service.dream";
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.dreams.DreamService";
+    field public static final String DREAM_META_DATA = "android.service.dream";
+    field public static final String SERVICE_INTERFACE = "android.service.dreams.DreamService";
   }
 
 }
@@ -41395,28 +41291,28 @@
 
   public abstract class MediaBrowserService extends android.app.Service {
     ctor public MediaBrowserService();
-    method public void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
+    method public void dump(java.io.FileDescriptor, java.io.PrintWriter, String[]);
     method public final android.os.Bundle getBrowserRootHints();
     method public final android.media.session.MediaSessionManager.RemoteUserInfo getCurrentBrowserInfo();
-    method public android.media.session.MediaSession.Token getSessionToken();
-    method public void notifyChildrenChanged(java.lang.String);
-    method public void notifyChildrenChanged(java.lang.String, android.os.Bundle);
+    method @Nullable public android.media.session.MediaSession.Token getSessionToken();
+    method public void notifyChildrenChanged(@NonNull String);
+    method public void notifyChildrenChanged(@NonNull String, @NonNull android.os.Bundle);
     method public android.os.IBinder onBind(android.content.Intent);
-    method public abstract android.service.media.MediaBrowserService.BrowserRoot onGetRoot(java.lang.String, int, android.os.Bundle);
-    method public abstract void onLoadChildren(java.lang.String, android.service.media.MediaBrowserService.Result<java.util.List<android.media.browse.MediaBrowser.MediaItem>>);
-    method public void onLoadChildren(java.lang.String, android.service.media.MediaBrowserService.Result<java.util.List<android.media.browse.MediaBrowser.MediaItem>>, android.os.Bundle);
-    method public void onLoadItem(java.lang.String, android.service.media.MediaBrowserService.Result<android.media.browse.MediaBrowser.MediaItem>);
+    method @Nullable public abstract android.service.media.MediaBrowserService.BrowserRoot onGetRoot(@NonNull String, int, @Nullable android.os.Bundle);
+    method public abstract void onLoadChildren(@NonNull String, @NonNull android.service.media.MediaBrowserService.Result<java.util.List<android.media.browse.MediaBrowser.MediaItem>>);
+    method public void onLoadChildren(@NonNull String, @NonNull android.service.media.MediaBrowserService.Result<java.util.List<android.media.browse.MediaBrowser.MediaItem>>, @NonNull android.os.Bundle);
+    method public void onLoadItem(String, android.service.media.MediaBrowserService.Result<android.media.browse.MediaBrowser.MediaItem>);
     method public void setSessionToken(android.media.session.MediaSession.Token);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.media.browse.MediaBrowserService";
+    field public static final String SERVICE_INTERFACE = "android.media.browse.MediaBrowserService";
   }
 
   public static final class MediaBrowserService.BrowserRoot {
-    ctor public MediaBrowserService.BrowserRoot(java.lang.String, android.os.Bundle);
+    ctor public MediaBrowserService.BrowserRoot(@NonNull String, @Nullable android.os.Bundle);
     method public android.os.Bundle getExtras();
-    method public java.lang.String getRootId();
-    field public static final java.lang.String EXTRA_OFFLINE = "android.service.media.extra.OFFLINE";
-    field public static final java.lang.String EXTRA_RECENT = "android.service.media.extra.RECENT";
-    field public static final java.lang.String EXTRA_SUGGESTED = "android.service.media.extra.SUGGESTED";
+    method public String getRootId();
+    field public static final String EXTRA_OFFLINE = "android.service.media.extra.OFFLINE";
+    field public static final String EXTRA_RECENT = "android.service.media.extra.RECENT";
+    field public static final String EXTRA_SUGGESTED = "android.service.media.extra.SUGGESTED";
   }
 
   public class MediaBrowserService.Result<T> {
@@ -41429,20 +41325,20 @@
 package android.service.notification {
 
   public final class Condition implements android.os.Parcelable {
-    ctor public Condition(android.net.Uri, java.lang.String, int);
-    ctor public Condition(android.net.Uri, java.lang.String, java.lang.String, java.lang.String, int, int, int);
+    ctor public Condition(android.net.Uri, String, int);
+    ctor public Condition(android.net.Uri, String, String, String, int, int, int);
     ctor public Condition(android.os.Parcel);
     method public android.service.notification.Condition copy();
     method public int describeContents();
-    method public static boolean isValidId(android.net.Uri, java.lang.String);
+    method public static boolean isValidId(android.net.Uri, String);
     method public static android.net.Uri.Builder newId(android.content.Context);
-    method public static java.lang.String relevanceToString(int);
-    method public static java.lang.String stateToString(int);
+    method public static String relevanceToString(int);
+    method public static String stateToString(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.notification.Condition> CREATOR;
     field public static final int FLAG_RELEVANT_ALWAYS = 2; // 0x2
     field public static final int FLAG_RELEVANT_NOW = 1; // 0x1
-    field public static final java.lang.String SCHEME = "condition";
+    field public static final String SCHEME = "condition";
     field public static final int STATE_ERROR = 3; // 0x3
     field public static final int STATE_FALSE = 0; // 0x0
     field public static final int STATE_TRUE = 1; // 0x1
@@ -41450,52 +41346,52 @@
     field public final int flags;
     field public final int icon;
     field public final android.net.Uri id;
-    field public final java.lang.String line1;
-    field public final java.lang.String line2;
+    field public final String line1;
+    field public final String line2;
     field public final int state;
-    field public final java.lang.String summary;
+    field public final String summary;
   }
 
-  public abstract deprecated class ConditionProviderService extends android.app.Service {
-    ctor public ConditionProviderService();
-    method public final deprecated void notifyCondition(android.service.notification.Condition);
-    method public final deprecated void notifyConditions(android.service.notification.Condition...);
-    method public android.os.IBinder onBind(android.content.Intent);
-    method public abstract void onConnected();
-    method public void onRequestConditions(int);
-    method public abstract void onSubscribe(android.net.Uri);
-    method public abstract void onUnsubscribe(android.net.Uri);
-    method public static final void requestRebind(android.content.ComponentName);
-    method public final void requestUnbind();
-    field public static final deprecated java.lang.String EXTRA_RULE_ID = "android.service.notification.extra.RULE_ID";
-    field public static final deprecated java.lang.String META_DATA_CONFIGURATION_ACTIVITY = "android.service.zen.automatic.configurationActivity";
-    field public static final deprecated java.lang.String META_DATA_RULE_INSTANCE_LIMIT = "android.service.zen.automatic.ruleInstanceLimit";
-    field public static final deprecated java.lang.String META_DATA_RULE_TYPE = "android.service.zen.automatic.ruleType";
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.ConditionProviderService";
+  @Deprecated public abstract class ConditionProviderService extends android.app.Service {
+    ctor @Deprecated public ConditionProviderService();
+    method @Deprecated public final void notifyCondition(android.service.notification.Condition);
+    method @Deprecated public final void notifyConditions(android.service.notification.Condition...);
+    method @Deprecated public android.os.IBinder onBind(android.content.Intent);
+    method @Deprecated public abstract void onConnected();
+    method @Deprecated public void onRequestConditions(int);
+    method @Deprecated public abstract void onSubscribe(android.net.Uri);
+    method @Deprecated public abstract void onUnsubscribe(android.net.Uri);
+    method @Deprecated public static final void requestRebind(android.content.ComponentName);
+    method @Deprecated public final void requestUnbind();
+    field @Deprecated public static final String EXTRA_RULE_ID = "android.service.notification.extra.RULE_ID";
+    field @Deprecated public static final String META_DATA_CONFIGURATION_ACTIVITY = "android.service.zen.automatic.configurationActivity";
+    field @Deprecated public static final String META_DATA_RULE_INSTANCE_LIMIT = "android.service.zen.automatic.ruleInstanceLimit";
+    field @Deprecated public static final String META_DATA_RULE_TYPE = "android.service.zen.automatic.ruleType";
+    field @Deprecated public static final String SERVICE_INTERFACE = "android.service.notification.ConditionProviderService";
   }
 
   public abstract class NotificationListenerService extends android.app.Service {
     ctor public NotificationListenerService();
     method public final void cancelAllNotifications();
-    method public final deprecated void cancelNotification(java.lang.String, java.lang.String, int);
-    method public final void cancelNotification(java.lang.String);
-    method public final void cancelNotifications(java.lang.String[]);
+    method @Deprecated public final void cancelNotification(String, String, int);
+    method public final void cancelNotification(String);
+    method public final void cancelNotifications(String[]);
     method public final void clearRequestedListenerHints();
     method public android.service.notification.StatusBarNotification[] getActiveNotifications();
-    method public android.service.notification.StatusBarNotification[] getActiveNotifications(java.lang.String[]);
+    method public android.service.notification.StatusBarNotification[] getActiveNotifications(String[]);
     method public final int getCurrentInterruptionFilter();
     method public final int getCurrentListenerHints();
     method public android.service.notification.NotificationListenerService.RankingMap getCurrentRanking();
-    method public final java.util.List<android.app.NotificationChannelGroup> getNotificationChannelGroups(java.lang.String, android.os.UserHandle);
-    method public final java.util.List<android.app.NotificationChannel> getNotificationChannels(java.lang.String, android.os.UserHandle);
+    method public final java.util.List<android.app.NotificationChannelGroup> getNotificationChannelGroups(@NonNull String, @NonNull android.os.UserHandle);
+    method public final java.util.List<android.app.NotificationChannel> getNotificationChannels(@NonNull String, @NonNull android.os.UserHandle);
     method public final android.service.notification.StatusBarNotification[] getSnoozedNotifications();
     method public android.os.IBinder onBind(android.content.Intent);
     method public void onInterruptionFilterChanged(int);
     method public void onListenerConnected();
     method public void onListenerDisconnected();
     method public void onListenerHintsChanged(int);
-    method public void onNotificationChannelGroupModified(java.lang.String, android.os.UserHandle, android.app.NotificationChannelGroup, int);
-    method public void onNotificationChannelModified(java.lang.String, android.os.UserHandle, android.app.NotificationChannel, int);
+    method public void onNotificationChannelGroupModified(String, android.os.UserHandle, android.app.NotificationChannelGroup, int);
+    method public void onNotificationChannelModified(String, android.os.UserHandle, android.app.NotificationChannel, int);
     method public void onNotificationPosted(android.service.notification.StatusBarNotification);
     method public void onNotificationPosted(android.service.notification.StatusBarNotification, android.service.notification.NotificationListenerService.RankingMap);
     method public void onNotificationRankingUpdate(android.service.notification.NotificationListenerService.RankingMap);
@@ -41506,9 +41402,9 @@
     method public final void requestListenerHints(int);
     method public static void requestRebind(android.content.ComponentName);
     method public final void requestUnbind();
-    method public final void setNotificationsShown(java.lang.String[]);
-    method public final void snoozeNotification(java.lang.String, long);
-    method public final void updateNotificationChannel(java.lang.String, android.os.UserHandle, android.app.NotificationChannel);
+    method public final void setNotificationsShown(String[]);
+    method public final void snoozeNotification(String, long);
+    method public final void updateNotificationChannel(@NonNull String, @NonNull android.os.UserHandle, @NonNull android.app.NotificationChannel);
     field public static final int HINT_HOST_DISABLE_CALL_EFFECTS = 4; // 0x4
     field public static final int HINT_HOST_DISABLE_EFFECTS = 1; // 0x1
     field public static final int HINT_HOST_DISABLE_NOTIFICATION_EFFECTS = 2; // 0x2
@@ -41539,9 +41435,9 @@
     field public static final int REASON_TIMEOUT = 19; // 0x13
     field public static final int REASON_UNAUTOBUNDLED = 16; // 0x10
     field public static final int REASON_USER_STOPPED = 6; // 0x6
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationListenerService";
-    field public static final deprecated int SUPPRESSED_EFFECT_SCREEN_OFF = 1; // 0x1
-    field public static final deprecated int SUPPRESSED_EFFECT_SCREEN_ON = 2; // 0x2
+    field public static final String SERVICE_INTERFACE = "android.service.notification.NotificationListenerService";
+    field @Deprecated public static final int SUPPRESSED_EFFECT_SCREEN_OFF = 1; // 0x1
+    field @Deprecated public static final int SUPPRESSED_EFFECT_SCREEN_ON = 2; // 0x2
   }
 
   public static class NotificationListenerService.Ranking {
@@ -41549,10 +41445,10 @@
     method public boolean canShowBadge();
     method public android.app.NotificationChannel getChannel();
     method public int getImportance();
-    method public java.lang.CharSequence getImportanceExplanation();
-    method public java.lang.String getKey();
+    method public CharSequence getImportanceExplanation();
+    method public String getKey();
     method public long getLastAudiblyAlertedMillis();
-    method public java.lang.String getOverrideGroupKey();
+    method public String getOverrideGroupKey();
     method public int getRank();
     method public int getSuppressedVisualEffects();
     method public int getUserSentiment();
@@ -41566,33 +41462,33 @@
 
   public static class NotificationListenerService.RankingMap implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String[] getOrderedKeys();
-    method public boolean getRanking(java.lang.String, android.service.notification.NotificationListenerService.Ranking);
+    method public String[] getOrderedKeys();
+    method public boolean getRanking(String, android.service.notification.NotificationListenerService.Ranking);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.notification.NotificationListenerService.RankingMap> CREATOR;
   }
 
   public class StatusBarNotification implements android.os.Parcelable {
-    ctor public deprecated StatusBarNotification(java.lang.String, java.lang.String, int, java.lang.String, int, int, int, android.app.Notification, android.os.UserHandle, long);
+    ctor @Deprecated public StatusBarNotification(String, String, int, String, int, int, int, android.app.Notification, android.os.UserHandle, long);
     ctor public StatusBarNotification(android.os.Parcel);
     method public android.service.notification.StatusBarNotification clone();
     method public int describeContents();
-    method public java.lang.String getGroupKey();
+    method public String getGroupKey();
     method public int getId();
-    method public java.lang.String getKey();
+    method public String getKey();
     method public android.app.Notification getNotification();
-    method public java.lang.String getOpPkg();
-    method public java.lang.String getOverrideGroupKey();
-    method public java.lang.String getPackageName();
+    method public String getOpPkg();
+    method public String getOverrideGroupKey();
+    method public String getPackageName();
     method public long getPostTime();
-    method public java.lang.String getTag();
+    method public String getTag();
     method public int getUid();
     method public android.os.UserHandle getUser();
-    method public deprecated int getUserId();
+    method @Deprecated public int getUserId();
     method public boolean isClearable();
     method public boolean isGroup();
     method public boolean isOngoing();
-    method public void setOverrideGroupKey(java.lang.String);
+    method public void setOverrideGroupKey(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.notification.StatusBarNotification> CREATOR;
   }
@@ -41658,16 +41554,16 @@
 
   public final class Tile implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.CharSequence getContentDescription();
+    method public CharSequence getContentDescription();
     method public android.graphics.drawable.Icon getIcon();
-    method public java.lang.CharSequence getLabel();
+    method public CharSequence getLabel();
     method public int getState();
-    method public java.lang.CharSequence getSubtitle();
-    method public void setContentDescription(java.lang.CharSequence);
+    method @Nullable public CharSequence getSubtitle();
+    method public void setContentDescription(CharSequence);
     method public void setIcon(android.graphics.drawable.Icon);
-    method public void setLabel(java.lang.CharSequence);
+    method public void setLabel(CharSequence);
     method public void setState(int);
-    method public void setSubtitle(java.lang.CharSequence);
+    method public void setSubtitle(@Nullable CharSequence);
     method public void updateTile();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.quicksettings.Tile> CREATOR;
@@ -41690,10 +41586,10 @@
     method public static final void requestListeningState(android.content.Context, android.content.ComponentName);
     method public final void showDialog(android.app.Dialog);
     method public final void startActivityAndCollapse(android.content.Intent);
-    method public final void unlockAndRun(java.lang.Runnable);
-    field public static final java.lang.String ACTION_QS_TILE = "android.service.quicksettings.action.QS_TILE";
-    field public static final java.lang.String ACTION_QS_TILE_PREFERENCES = "android.service.quicksettings.action.QS_TILE_PREFERENCES";
-    field public static final java.lang.String META_DATA_ACTIVE_TILE = "android.service.quicksettings.ACTIVE_TILE";
+    method public final void unlockAndRun(Runnable);
+    field public static final String ACTION_QS_TILE = "android.service.quicksettings.action.QS_TILE";
+    field public static final String ACTION_QS_TILE_PREFERENCES = "android.service.quicksettings.action.QS_TILE_PREFERENCES";
+    field public static final String META_DATA_ACTIVE_TILE = "android.service.quicksettings.ACTIVE_TILE";
   }
 
 }
@@ -41703,7 +41599,7 @@
   public abstract class RestrictionsReceiver extends android.content.BroadcastReceiver {
     ctor public RestrictionsReceiver();
     method public void onReceive(android.content.Context, android.content.Intent);
-    method public abstract void onRequestPermission(android.content.Context, java.lang.String, java.lang.String, java.lang.String, android.os.PersistableBundle);
+    method public abstract void onRequestPermission(android.content.Context, String, String, String, android.os.PersistableBundle);
   }
 
 }
@@ -41714,13 +41610,13 @@
     ctor public SpellCheckerService();
     method public abstract android.service.textservice.SpellCheckerService.Session createSession();
     method public final android.os.IBinder onBind(android.content.Intent);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.textservice.SpellCheckerService";
+    field public static final String SERVICE_INTERFACE = "android.service.textservice.SpellCheckerService";
   }
 
-  public static abstract class SpellCheckerService.Session {
+  public abstract static class SpellCheckerService.Session {
     ctor public SpellCheckerService.Session();
     method public android.os.Bundle getBundle();
-    method public java.lang.String getLocale();
+    method public String getLocale();
     method public void onCancel();
     method public void onClose();
     method public abstract void onCreate();
@@ -41750,41 +41646,41 @@
     field public static final int STATE_KEYPHRASE_UNSUPPORTED = -1; // 0xffffffff
   }
 
-  public static abstract class AlwaysOnHotwordDetector.Callback {
+  public abstract static class AlwaysOnHotwordDetector.Callback {
     ctor public AlwaysOnHotwordDetector.Callback();
     method public abstract void onAvailabilityChanged(int);
-    method public abstract void onDetected(android.service.voice.AlwaysOnHotwordDetector.EventPayload);
+    method public abstract void onDetected(@NonNull android.service.voice.AlwaysOnHotwordDetector.EventPayload);
     method public abstract void onError();
     method public abstract void onRecognitionPaused();
     method public abstract void onRecognitionResumed();
   }
 
   public static class AlwaysOnHotwordDetector.EventPayload {
-    method public android.media.AudioFormat getCaptureAudioFormat();
-    method public byte[] getTriggerAudio();
+    method @Nullable public android.media.AudioFormat getCaptureAudioFormat();
+    method @Nullable public byte[] getTriggerAudio();
   }
 
   public class VoiceInteractionService extends android.app.Service {
     ctor public VoiceInteractionService();
-    method public final android.service.voice.AlwaysOnHotwordDetector createAlwaysOnHotwordDetector(java.lang.String, java.util.Locale, android.service.voice.AlwaysOnHotwordDetector.Callback);
+    method public final android.service.voice.AlwaysOnHotwordDetector createAlwaysOnHotwordDetector(String, java.util.Locale, android.service.voice.AlwaysOnHotwordDetector.Callback);
     method public int getDisabledShowContext();
     method public static boolean isActiveService(android.content.Context, android.content.ComponentName);
     method public android.os.IBinder onBind(android.content.Intent);
-    method public java.util.Set<java.lang.String> onGetSupportedVoiceActions(java.util.Set<java.lang.String>);
+    method @Nullable public java.util.Set<java.lang.String> onGetSupportedVoiceActions(@NonNull java.util.Set<java.lang.String>);
     method public void onLaunchVoiceAssistFromKeyguard();
     method public void onReady();
     method public void onShutdown();
     method public void setDisabledShowContext(int);
     method public void showSession(android.os.Bundle, int);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.voice.VoiceInteractionService";
-    field public static final java.lang.String SERVICE_META_DATA = "android.voice_interaction";
+    field public static final String SERVICE_INTERFACE = "android.service.voice.VoiceInteractionService";
+    field public static final String SERVICE_META_DATA = "android.voice_interaction";
   }
 
   public class VoiceInteractionSession implements android.content.ComponentCallbacks2 android.view.KeyEvent.Callback {
     ctor public VoiceInteractionSession(android.content.Context);
     ctor public VoiceInteractionSession(android.content.Context, android.os.Handler);
     method public void closeSystemDialogs();
-    method public void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
+    method public void dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]);
     method public void finish();
     method public android.content.Context getContext();
     method public int getDisabledShowContext();
@@ -41792,7 +41688,7 @@
     method public int getUserDisabledShowContext();
     method public android.app.Dialog getWindow();
     method public void hide();
-    method public void onAssistStructureFailure(java.lang.Throwable);
+    method public void onAssistStructureFailure(Throwable);
     method public void onBackPressed();
     method public void onCancelRequest(android.service.voice.VoiceInteractionSession.Request);
     method public void onCloseSystemDialogs();
@@ -41801,10 +41697,10 @@
     method public void onCreate();
     method public android.view.View onCreateContentView();
     method public void onDestroy();
-    method public boolean[] onGetSupportedCommands(java.lang.String[]);
-    method public void onHandleAssist(android.os.Bundle, android.app.assist.AssistStructure, android.app.assist.AssistContent);
-    method public void onHandleAssistSecondary(android.os.Bundle, android.app.assist.AssistStructure, android.app.assist.AssistContent, int, int);
-    method public void onHandleScreenshot(android.graphics.Bitmap);
+    method public boolean[] onGetSupportedCommands(String[]);
+    method public void onHandleAssist(@Nullable android.os.Bundle, @Nullable android.app.assist.AssistStructure, @Nullable android.app.assist.AssistContent);
+    method public void onHandleAssistSecondary(@Nullable android.os.Bundle, @Nullable android.app.assist.AssistStructure, @Nullable android.app.assist.AssistContent, int, int);
+    method public void onHandleScreenshot(@Nullable android.graphics.Bitmap);
     method public void onHide();
     method public boolean onKeyDown(int, android.view.KeyEvent);
     method public boolean onKeyLongPress(int, android.view.KeyEvent);
@@ -41841,26 +41737,26 @@
   }
 
   public static final class VoiceInteractionSession.AbortVoiceRequest extends android.service.voice.VoiceInteractionSession.Request {
-    method public deprecated java.lang.CharSequence getMessage();
-    method public android.app.VoiceInteractor.Prompt getVoicePrompt();
+    method @Deprecated @Nullable public CharSequence getMessage();
+    method @Nullable public android.app.VoiceInteractor.Prompt getVoicePrompt();
     method public void sendAbortResult(android.os.Bundle);
   }
 
   public static final class VoiceInteractionSession.CommandRequest extends android.service.voice.VoiceInteractionSession.Request {
-    method public java.lang.String getCommand();
+    method public String getCommand();
     method public void sendIntermediateResult(android.os.Bundle);
     method public void sendResult(android.os.Bundle);
   }
 
   public static final class VoiceInteractionSession.CompleteVoiceRequest extends android.service.voice.VoiceInteractionSession.Request {
-    method public deprecated java.lang.CharSequence getMessage();
-    method public android.app.VoiceInteractor.Prompt getVoicePrompt();
+    method @Deprecated @Nullable public CharSequence getMessage();
+    method @Nullable public android.app.VoiceInteractor.Prompt getVoicePrompt();
     method public void sendCompleteResult(android.os.Bundle);
   }
 
   public static final class VoiceInteractionSession.ConfirmationRequest extends android.service.voice.VoiceInteractionSession.Request {
-    method public deprecated java.lang.CharSequence getPrompt();
-    method public android.app.VoiceInteractor.Prompt getVoicePrompt();
+    method @Deprecated @Nullable public CharSequence getPrompt();
+    method @Nullable public android.app.VoiceInteractor.Prompt getVoicePrompt();
     method public void sendConfirmationResult(boolean, android.os.Bundle);
   }
 
@@ -41876,15 +41772,15 @@
 
   public static final class VoiceInteractionSession.PickOptionRequest extends android.service.voice.VoiceInteractionSession.Request {
     method public android.app.VoiceInteractor.PickOptionRequest.Option[] getOptions();
-    method public deprecated java.lang.CharSequence getPrompt();
-    method public android.app.VoiceInteractor.Prompt getVoicePrompt();
+    method @Deprecated @Nullable public CharSequence getPrompt();
+    method @Nullable public android.app.VoiceInteractor.Prompt getVoicePrompt();
     method public void sendIntermediatePickOptionResult(android.app.VoiceInteractor.PickOptionRequest.Option[], android.os.Bundle);
     method public void sendPickOptionResult(android.app.VoiceInteractor.PickOptionRequest.Option[], android.os.Bundle);
   }
 
   public static class VoiceInteractionSession.Request {
     method public void cancel();
-    method public java.lang.String getCallingPackage();
+    method public String getCallingPackage();
     method public int getCallingUid();
     method public android.os.Bundle getExtras();
     method public boolean isActive();
@@ -41902,10 +41798,10 @@
 
   public abstract class VrListenerService extends android.app.Service {
     ctor public VrListenerService();
-    method public static final boolean isVrModePackageEnabled(android.content.Context, android.content.ComponentName);
+    method public static final boolean isVrModePackageEnabled(@NonNull android.content.Context, @NonNull android.content.ComponentName);
     method public android.os.IBinder onBind(android.content.Intent);
     method public void onCurrentVrActivityChanged(android.content.ComponentName);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.vr.VrListenerService";
+    field public static final String SERVICE_INTERFACE = "android.service.vr.VrListenerService";
   }
 
 }
@@ -41916,13 +41812,13 @@
     ctor public WallpaperService();
     method public final android.os.IBinder onBind(android.content.Intent);
     method public abstract android.service.wallpaper.WallpaperService.Engine onCreateEngine();
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.wallpaper.WallpaperService";
-    field public static final java.lang.String SERVICE_META_DATA = "android.service.wallpaper";
+    field public static final String SERVICE_INTERFACE = "android.service.wallpaper.WallpaperService";
+    field public static final String SERVICE_META_DATA = "android.service.wallpaper";
   }
 
   public class WallpaperService.Engine {
     ctor public WallpaperService.Engine();
-    method protected void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
+    method protected void dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]);
     method public int getDesiredMinimumHeight();
     method public int getDesiredMinimumWidth();
     method public android.content.Context getDisplayContext();
@@ -41931,8 +41827,8 @@
     method public boolean isVisible();
     method public void notifyColorsChanged();
     method public void onApplyWindowInsets(android.view.WindowInsets);
-    method public android.os.Bundle onCommand(java.lang.String, int, int, int, android.os.Bundle, boolean);
-    method public android.app.WallpaperColors onComputeColors();
+    method public android.os.Bundle onCommand(String, int, int, int, android.os.Bundle, boolean);
+    method @Nullable public android.app.WallpaperColors onComputeColors();
     method public void onCreate(android.view.SurfaceHolder);
     method public void onDesiredSizeChanged(int, int);
     method public void onDestroy();
@@ -41951,16 +41847,16 @@
 
 package android.speech {
 
-  public abstract interface RecognitionListener {
-    method public abstract void onBeginningOfSpeech();
-    method public abstract void onBufferReceived(byte[]);
-    method public abstract void onEndOfSpeech();
-    method public abstract void onError(int);
-    method public abstract void onEvent(int, android.os.Bundle);
-    method public abstract void onPartialResults(android.os.Bundle);
-    method public abstract void onReadyForSpeech(android.os.Bundle);
-    method public abstract void onResults(android.os.Bundle);
-    method public abstract void onRmsChanged(float);
+  public interface RecognitionListener {
+    method public void onBeginningOfSpeech();
+    method public void onBufferReceived(byte[]);
+    method public void onEndOfSpeech();
+    method public void onError(int);
+    method public void onEvent(int, android.os.Bundle);
+    method public void onPartialResults(android.os.Bundle);
+    method public void onReadyForSpeech(android.os.Bundle);
+    method public void onResults(android.os.Bundle);
+    method public void onRmsChanged(float);
   }
 
   public abstract class RecognitionService extends android.app.Service {
@@ -41969,8 +41865,8 @@
     method protected abstract void onCancel(android.speech.RecognitionService.Callback);
     method protected abstract void onStartListening(android.content.Intent, android.speech.RecognitionService.Callback);
     method protected abstract void onStopListening(android.speech.RecognitionService.Callback);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.speech.RecognitionService";
-    field public static final java.lang.String SERVICE_META_DATA = "android.speech";
+    field public static final String SERVICE_INTERFACE = "android.speech.RecognitionService";
+    field public static final String SERVICE_META_DATA = "android.speech";
   }
 
   public class RecognitionService.Callback {
@@ -41987,33 +41883,33 @@
 
   public class RecognizerIntent {
     method public static final android.content.Intent getVoiceDetailsIntent(android.content.Context);
-    field public static final java.lang.String ACTION_GET_LANGUAGE_DETAILS = "android.speech.action.GET_LANGUAGE_DETAILS";
-    field public static final java.lang.String ACTION_RECOGNIZE_SPEECH = "android.speech.action.RECOGNIZE_SPEECH";
-    field public static final java.lang.String ACTION_VOICE_SEARCH_HANDS_FREE = "android.speech.action.VOICE_SEARCH_HANDS_FREE";
-    field public static final java.lang.String ACTION_WEB_SEARCH = "android.speech.action.WEB_SEARCH";
-    field public static final java.lang.String DETAILS_META_DATA = "android.speech.DETAILS";
-    field public static final java.lang.String EXTRA_CALLING_PACKAGE = "calling_package";
-    field public static final java.lang.String EXTRA_CONFIDENCE_SCORES = "android.speech.extra.CONFIDENCE_SCORES";
-    field public static final java.lang.String EXTRA_LANGUAGE = "android.speech.extra.LANGUAGE";
-    field public static final java.lang.String EXTRA_LANGUAGE_MODEL = "android.speech.extra.LANGUAGE_MODEL";
-    field public static final java.lang.String EXTRA_LANGUAGE_PREFERENCE = "android.speech.extra.LANGUAGE_PREFERENCE";
-    field public static final java.lang.String EXTRA_MAX_RESULTS = "android.speech.extra.MAX_RESULTS";
-    field public static final java.lang.String EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE = "android.speech.extra.ONLY_RETURN_LANGUAGE_PREFERENCE";
-    field public static final java.lang.String EXTRA_ORIGIN = "android.speech.extra.ORIGIN";
-    field public static final java.lang.String EXTRA_PARTIAL_RESULTS = "android.speech.extra.PARTIAL_RESULTS";
-    field public static final java.lang.String EXTRA_PREFER_OFFLINE = "android.speech.extra.PREFER_OFFLINE";
-    field public static final java.lang.String EXTRA_PROMPT = "android.speech.extra.PROMPT";
-    field public static final java.lang.String EXTRA_RESULTS = "android.speech.extra.RESULTS";
-    field public static final java.lang.String EXTRA_RESULTS_PENDINGINTENT = "android.speech.extra.RESULTS_PENDINGINTENT";
-    field public static final java.lang.String EXTRA_RESULTS_PENDINGINTENT_BUNDLE = "android.speech.extra.RESULTS_PENDINGINTENT_BUNDLE";
-    field public static final java.lang.String EXTRA_SECURE = "android.speech.extras.EXTRA_SECURE";
-    field public static final java.lang.String EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS = "android.speech.extras.SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS";
-    field public static final java.lang.String EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS = "android.speech.extras.SPEECH_INPUT_MINIMUM_LENGTH_MILLIS";
-    field public static final java.lang.String EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS = "android.speech.extras.SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS";
-    field public static final java.lang.String EXTRA_SUPPORTED_LANGUAGES = "android.speech.extra.SUPPORTED_LANGUAGES";
-    field public static final java.lang.String EXTRA_WEB_SEARCH_ONLY = "android.speech.extra.WEB_SEARCH_ONLY";
-    field public static final java.lang.String LANGUAGE_MODEL_FREE_FORM = "free_form";
-    field public static final java.lang.String LANGUAGE_MODEL_WEB_SEARCH = "web_search";
+    field public static final String ACTION_GET_LANGUAGE_DETAILS = "android.speech.action.GET_LANGUAGE_DETAILS";
+    field public static final String ACTION_RECOGNIZE_SPEECH = "android.speech.action.RECOGNIZE_SPEECH";
+    field public static final String ACTION_VOICE_SEARCH_HANDS_FREE = "android.speech.action.VOICE_SEARCH_HANDS_FREE";
+    field public static final String ACTION_WEB_SEARCH = "android.speech.action.WEB_SEARCH";
+    field public static final String DETAILS_META_DATA = "android.speech.DETAILS";
+    field public static final String EXTRA_CALLING_PACKAGE = "calling_package";
+    field public static final String EXTRA_CONFIDENCE_SCORES = "android.speech.extra.CONFIDENCE_SCORES";
+    field public static final String EXTRA_LANGUAGE = "android.speech.extra.LANGUAGE";
+    field public static final String EXTRA_LANGUAGE_MODEL = "android.speech.extra.LANGUAGE_MODEL";
+    field public static final String EXTRA_LANGUAGE_PREFERENCE = "android.speech.extra.LANGUAGE_PREFERENCE";
+    field public static final String EXTRA_MAX_RESULTS = "android.speech.extra.MAX_RESULTS";
+    field public static final String EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE = "android.speech.extra.ONLY_RETURN_LANGUAGE_PREFERENCE";
+    field public static final String EXTRA_ORIGIN = "android.speech.extra.ORIGIN";
+    field public static final String EXTRA_PARTIAL_RESULTS = "android.speech.extra.PARTIAL_RESULTS";
+    field public static final String EXTRA_PREFER_OFFLINE = "android.speech.extra.PREFER_OFFLINE";
+    field public static final String EXTRA_PROMPT = "android.speech.extra.PROMPT";
+    field public static final String EXTRA_RESULTS = "android.speech.extra.RESULTS";
+    field public static final String EXTRA_RESULTS_PENDINGINTENT = "android.speech.extra.RESULTS_PENDINGINTENT";
+    field public static final String EXTRA_RESULTS_PENDINGINTENT_BUNDLE = "android.speech.extra.RESULTS_PENDINGINTENT_BUNDLE";
+    field public static final String EXTRA_SECURE = "android.speech.extras.EXTRA_SECURE";
+    field public static final String EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS = "android.speech.extras.SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS";
+    field public static final String EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS = "android.speech.extras.SPEECH_INPUT_MINIMUM_LENGTH_MILLIS";
+    field public static final String EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS = "android.speech.extras.SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS";
+    field public static final String EXTRA_SUPPORTED_LANGUAGES = "android.speech.extra.SUPPORTED_LANGUAGES";
+    field public static final String EXTRA_WEB_SEARCH_ONLY = "android.speech.extra.WEB_SEARCH_ONLY";
+    field public static final String LANGUAGE_MODEL_FREE_FORM = "free_form";
+    field public static final String LANGUAGE_MODEL_WEB_SEARCH = "web_search";
     field public static final int RESULT_AUDIO_ERROR = 5; // 0x5
     field public static final int RESULT_CLIENT_ERROR = 2; // 0x2
     field public static final int RESULT_NETWORK_ERROR = 4; // 0x4
@@ -42022,13 +41918,13 @@
   }
 
   public class RecognizerResultsIntent {
-    field public static final java.lang.String ACTION_VOICE_SEARCH_RESULTS = "android.speech.action.VOICE_SEARCH_RESULTS";
-    field public static final java.lang.String EXTRA_VOICE_SEARCH_RESULT_HTML = "android.speech.extras.VOICE_SEARCH_RESULT_HTML";
-    field public static final java.lang.String EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS = "android.speech.extras.VOICE_SEARCH_RESULT_HTML_BASE_URLS";
-    field public static final java.lang.String EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS = "android.speech.extras.EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS";
-    field public static final java.lang.String EXTRA_VOICE_SEARCH_RESULT_STRINGS = "android.speech.extras.VOICE_SEARCH_RESULT_STRINGS";
-    field public static final java.lang.String EXTRA_VOICE_SEARCH_RESULT_URLS = "android.speech.extras.VOICE_SEARCH_RESULT_URLS";
-    field public static final java.lang.String URI_SCHEME_INLINE = "inline";
+    field public static final String ACTION_VOICE_SEARCH_RESULTS = "android.speech.action.VOICE_SEARCH_RESULTS";
+    field public static final String EXTRA_VOICE_SEARCH_RESULT_HTML = "android.speech.extras.VOICE_SEARCH_RESULT_HTML";
+    field public static final String EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS = "android.speech.extras.VOICE_SEARCH_RESULT_HTML_BASE_URLS";
+    field public static final String EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS = "android.speech.extras.EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS";
+    field public static final String EXTRA_VOICE_SEARCH_RESULT_STRINGS = "android.speech.extras.VOICE_SEARCH_RESULT_STRINGS";
+    field public static final String EXTRA_VOICE_SEARCH_RESULT_URLS = "android.speech.extras.VOICE_SEARCH_RESULT_URLS";
+    field public static final String URI_SCHEME_INLINE = "inline";
   }
 
   public class SpeechRecognizer {
@@ -42040,7 +41936,7 @@
     method public void setRecognitionListener(android.speech.RecognitionListener);
     method public void startListening(android.content.Intent);
     method public void stopListening();
-    field public static final java.lang.String CONFIDENCE_SCORES = "confidence_scores";
+    field public static final String CONFIDENCE_SCORES = "confidence_scores";
     field public static final int ERROR_AUDIO = 3; // 0x3
     field public static final int ERROR_CLIENT = 5; // 0x5
     field public static final int ERROR_INSUFFICIENT_PERMISSIONS = 9; // 0x9
@@ -42050,82 +41946,82 @@
     field public static final int ERROR_RECOGNIZER_BUSY = 8; // 0x8
     field public static final int ERROR_SERVER = 4; // 0x4
     field public static final int ERROR_SPEECH_TIMEOUT = 6; // 0x6
-    field public static final java.lang.String RESULTS_RECOGNITION = "results_recognition";
+    field public static final String RESULTS_RECOGNITION = "results_recognition";
   }
 
 }
 
 package android.speech.tts {
 
-  public abstract interface SynthesisCallback {
-    method public abstract int audioAvailable(byte[], int, int);
-    method public abstract int done();
-    method public abstract void error();
-    method public abstract void error(int);
-    method public abstract int getMaxBufferSize();
-    method public abstract boolean hasFinished();
-    method public abstract boolean hasStarted();
+  public interface SynthesisCallback {
+    method public int audioAvailable(byte[], int, int);
+    method public int done();
+    method public void error();
+    method public void error(int);
+    method public int getMaxBufferSize();
+    method public boolean hasFinished();
+    method public boolean hasStarted();
     method public default void rangeStart(int, int, int);
-    method public abstract int start(int, int, int);
+    method public int start(int, int, @IntRange(from=1, to=2) int);
   }
 
   public final class SynthesisRequest {
-    ctor public SynthesisRequest(java.lang.String, android.os.Bundle);
-    ctor public SynthesisRequest(java.lang.CharSequence, android.os.Bundle);
+    ctor public SynthesisRequest(String, android.os.Bundle);
+    ctor public SynthesisRequest(CharSequence, android.os.Bundle);
     method public int getCallerUid();
-    method public java.lang.CharSequence getCharSequenceText();
-    method public java.lang.String getCountry();
-    method public java.lang.String getLanguage();
+    method public CharSequence getCharSequenceText();
+    method public String getCountry();
+    method public String getLanguage();
     method public android.os.Bundle getParams();
     method public int getPitch();
     method public int getSpeechRate();
-    method public deprecated java.lang.String getText();
-    method public java.lang.String getVariant();
-    method public java.lang.String getVoiceName();
+    method @Deprecated public String getText();
+    method public String getVariant();
+    method public String getVoiceName();
   }
 
   public class TextToSpeech {
     ctor public TextToSpeech(android.content.Context, android.speech.tts.TextToSpeech.OnInitListener);
-    ctor public TextToSpeech(android.content.Context, android.speech.tts.TextToSpeech.OnInitListener, java.lang.String);
-    method public int addEarcon(java.lang.String, java.lang.String, int);
-    method public deprecated int addEarcon(java.lang.String, java.lang.String);
-    method public int addEarcon(java.lang.String, java.io.File);
-    method public int addSpeech(java.lang.String, java.lang.String, int);
-    method public int addSpeech(java.lang.CharSequence, java.lang.String, int);
-    method public int addSpeech(java.lang.String, java.lang.String);
-    method public int addSpeech(java.lang.CharSequence, java.io.File);
-    method public deprecated boolean areDefaultsEnforced();
+    ctor public TextToSpeech(android.content.Context, android.speech.tts.TextToSpeech.OnInitListener, String);
+    method public int addEarcon(String, String, @RawRes int);
+    method @Deprecated public int addEarcon(String, String);
+    method public int addEarcon(String, java.io.File);
+    method public int addSpeech(String, String, @RawRes int);
+    method public int addSpeech(CharSequence, String, @RawRes int);
+    method public int addSpeech(String, String);
+    method public int addSpeech(CharSequence, java.io.File);
+    method @Deprecated public boolean areDefaultsEnforced();
     method public java.util.Set<java.util.Locale> getAvailableLanguages();
-    method public java.lang.String getDefaultEngine();
-    method public deprecated java.util.Locale getDefaultLanguage();
+    method public String getDefaultEngine();
+    method @Deprecated public java.util.Locale getDefaultLanguage();
     method public android.speech.tts.Voice getDefaultVoice();
     method public java.util.List<android.speech.tts.TextToSpeech.EngineInfo> getEngines();
-    method public deprecated java.util.Set<java.lang.String> getFeatures(java.util.Locale);
-    method public deprecated java.util.Locale getLanguage();
+    method @Deprecated public java.util.Set<java.lang.String> getFeatures(java.util.Locale);
+    method @Deprecated public java.util.Locale getLanguage();
     method public static int getMaxSpeechInputLength();
     method public android.speech.tts.Voice getVoice();
     method public java.util.Set<android.speech.tts.Voice> getVoices();
     method public int isLanguageAvailable(java.util.Locale);
     method public boolean isSpeaking();
-    method public int playEarcon(java.lang.String, int, android.os.Bundle, java.lang.String);
-    method public deprecated int playEarcon(java.lang.String, int, java.util.HashMap<java.lang.String, java.lang.String>);
-    method public deprecated int playSilence(long, int, java.util.HashMap<java.lang.String, java.lang.String>);
-    method public int playSilentUtterance(long, int, java.lang.String);
+    method public int playEarcon(String, int, android.os.Bundle, String);
+    method @Deprecated public int playEarcon(String, int, java.util.HashMap<java.lang.String,java.lang.String>);
+    method @Deprecated public int playSilence(long, int, java.util.HashMap<java.lang.String,java.lang.String>);
+    method public int playSilentUtterance(long, int, String);
     method public int setAudioAttributes(android.media.AudioAttributes);
-    method public deprecated int setEngineByPackageName(java.lang.String);
+    method @Deprecated public int setEngineByPackageName(String);
     method public int setLanguage(java.util.Locale);
-    method public deprecated int setOnUtteranceCompletedListener(android.speech.tts.TextToSpeech.OnUtteranceCompletedListener);
+    method @Deprecated public int setOnUtteranceCompletedListener(android.speech.tts.TextToSpeech.OnUtteranceCompletedListener);
     method public int setOnUtteranceProgressListener(android.speech.tts.UtteranceProgressListener);
     method public int setPitch(float);
     method public int setSpeechRate(float);
     method public int setVoice(android.speech.tts.Voice);
     method public void shutdown();
-    method public int speak(java.lang.CharSequence, int, android.os.Bundle, java.lang.String);
-    method public deprecated int speak(java.lang.String, int, java.util.HashMap<java.lang.String, java.lang.String>);
+    method public int speak(CharSequence, int, android.os.Bundle, String);
+    method @Deprecated public int speak(String, int, java.util.HashMap<java.lang.String,java.lang.String>);
     method public int stop();
-    method public int synthesizeToFile(java.lang.CharSequence, android.os.Bundle, java.io.File, java.lang.String);
-    method public deprecated int synthesizeToFile(java.lang.String, java.util.HashMap<java.lang.String, java.lang.String>, java.lang.String);
-    field public static final java.lang.String ACTION_TTS_QUEUE_PROCESSING_COMPLETED = "android.speech.tts.TTS_QUEUE_PROCESSING_COMPLETED";
+    method public int synthesizeToFile(CharSequence, android.os.Bundle, java.io.File, String);
+    method @Deprecated public int synthesizeToFile(String, java.util.HashMap<java.lang.String,java.lang.String>, String);
+    field public static final String ACTION_TTS_QUEUE_PROCESSING_COMPLETED = "android.speech.tts.TTS_QUEUE_PROCESSING_COMPLETED";
     field public static final int ERROR = -1; // 0xffffffff
     field public static final int ERROR_INVALID_REQUEST = -8; // 0xfffffff8
     field public static final int ERROR_NETWORK = -6; // 0xfffffffa
@@ -42147,87 +42043,87 @@
 
   public class TextToSpeech.Engine {
     ctor public TextToSpeech.Engine();
-    field public static final java.lang.String ACTION_CHECK_TTS_DATA = "android.speech.tts.engine.CHECK_TTS_DATA";
-    field public static final java.lang.String ACTION_GET_SAMPLE_TEXT = "android.speech.tts.engine.GET_SAMPLE_TEXT";
-    field public static final java.lang.String ACTION_INSTALL_TTS_DATA = "android.speech.tts.engine.INSTALL_TTS_DATA";
-    field public static final java.lang.String ACTION_TTS_DATA_INSTALLED = "android.speech.tts.engine.TTS_DATA_INSTALLED";
-    field public static final deprecated int CHECK_VOICE_DATA_BAD_DATA = -1; // 0xffffffff
+    field public static final String ACTION_CHECK_TTS_DATA = "android.speech.tts.engine.CHECK_TTS_DATA";
+    field public static final String ACTION_GET_SAMPLE_TEXT = "android.speech.tts.engine.GET_SAMPLE_TEXT";
+    field public static final String ACTION_INSTALL_TTS_DATA = "android.speech.tts.engine.INSTALL_TTS_DATA";
+    field public static final String ACTION_TTS_DATA_INSTALLED = "android.speech.tts.engine.TTS_DATA_INSTALLED";
+    field @Deprecated public static final int CHECK_VOICE_DATA_BAD_DATA = -1; // 0xffffffff
     field public static final int CHECK_VOICE_DATA_FAIL = 0; // 0x0
-    field public static final deprecated int CHECK_VOICE_DATA_MISSING_DATA = -2; // 0xfffffffe
-    field public static final deprecated int CHECK_VOICE_DATA_MISSING_VOLUME = -3; // 0xfffffffd
+    field @Deprecated public static final int CHECK_VOICE_DATA_MISSING_DATA = -2; // 0xfffffffe
+    field @Deprecated public static final int CHECK_VOICE_DATA_MISSING_VOLUME = -3; // 0xfffffffd
     field public static final int CHECK_VOICE_DATA_PASS = 1; // 0x1
     field public static final int DEFAULT_STREAM = 3; // 0x3
-    field public static final java.lang.String EXTRA_AVAILABLE_VOICES = "availableVoices";
-    field public static final deprecated java.lang.String EXTRA_CHECK_VOICE_DATA_FOR = "checkVoiceDataFor";
-    field public static final java.lang.String EXTRA_SAMPLE_TEXT = "sampleText";
-    field public static final deprecated java.lang.String EXTRA_TTS_DATA_INSTALLED = "dataInstalled";
-    field public static final java.lang.String EXTRA_UNAVAILABLE_VOICES = "unavailableVoices";
-    field public static final deprecated java.lang.String EXTRA_VOICE_DATA_FILES = "dataFiles";
-    field public static final deprecated java.lang.String EXTRA_VOICE_DATA_FILES_INFO = "dataFilesInfo";
-    field public static final deprecated java.lang.String EXTRA_VOICE_DATA_ROOT_DIRECTORY = "dataRoot";
-    field public static final java.lang.String INTENT_ACTION_TTS_SERVICE = "android.intent.action.TTS_SERVICE";
-    field public static final deprecated java.lang.String KEY_FEATURE_EMBEDDED_SYNTHESIS = "embeddedTts";
-    field public static final java.lang.String KEY_FEATURE_NETWORK_RETRIES_COUNT = "networkRetriesCount";
-    field public static final deprecated java.lang.String KEY_FEATURE_NETWORK_SYNTHESIS = "networkTts";
-    field public static final java.lang.String KEY_FEATURE_NETWORK_TIMEOUT_MS = "networkTimeoutMs";
-    field public static final java.lang.String KEY_FEATURE_NOT_INSTALLED = "notInstalled";
-    field public static final java.lang.String KEY_PARAM_PAN = "pan";
-    field public static final java.lang.String KEY_PARAM_SESSION_ID = "sessionId";
-    field public static final java.lang.String KEY_PARAM_STREAM = "streamType";
-    field public static final java.lang.String KEY_PARAM_UTTERANCE_ID = "utteranceId";
-    field public static final java.lang.String KEY_PARAM_VOLUME = "volume";
-    field public static final java.lang.String SERVICE_META_DATA = "android.speech.tts";
+    field public static final String EXTRA_AVAILABLE_VOICES = "availableVoices";
+    field @Deprecated public static final String EXTRA_CHECK_VOICE_DATA_FOR = "checkVoiceDataFor";
+    field public static final String EXTRA_SAMPLE_TEXT = "sampleText";
+    field @Deprecated public static final String EXTRA_TTS_DATA_INSTALLED = "dataInstalled";
+    field public static final String EXTRA_UNAVAILABLE_VOICES = "unavailableVoices";
+    field @Deprecated public static final String EXTRA_VOICE_DATA_FILES = "dataFiles";
+    field @Deprecated public static final String EXTRA_VOICE_DATA_FILES_INFO = "dataFilesInfo";
+    field @Deprecated public static final String EXTRA_VOICE_DATA_ROOT_DIRECTORY = "dataRoot";
+    field public static final String INTENT_ACTION_TTS_SERVICE = "android.intent.action.TTS_SERVICE";
+    field @Deprecated public static final String KEY_FEATURE_EMBEDDED_SYNTHESIS = "embeddedTts";
+    field public static final String KEY_FEATURE_NETWORK_RETRIES_COUNT = "networkRetriesCount";
+    field @Deprecated public static final String KEY_FEATURE_NETWORK_SYNTHESIS = "networkTts";
+    field public static final String KEY_FEATURE_NETWORK_TIMEOUT_MS = "networkTimeoutMs";
+    field public static final String KEY_FEATURE_NOT_INSTALLED = "notInstalled";
+    field public static final String KEY_PARAM_PAN = "pan";
+    field public static final String KEY_PARAM_SESSION_ID = "sessionId";
+    field public static final String KEY_PARAM_STREAM = "streamType";
+    field public static final String KEY_PARAM_UTTERANCE_ID = "utteranceId";
+    field public static final String KEY_PARAM_VOLUME = "volume";
+    field public static final String SERVICE_META_DATA = "android.speech.tts";
   }
 
   public static class TextToSpeech.EngineInfo {
     ctor public TextToSpeech.EngineInfo();
     field public int icon;
-    field public java.lang.String label;
-    field public java.lang.String name;
+    field public String label;
+    field public String name;
   }
 
-  public static abstract interface TextToSpeech.OnInitListener {
-    method public abstract void onInit(int);
+  public static interface TextToSpeech.OnInitListener {
+    method public void onInit(int);
   }
 
-  public static abstract deprecated interface TextToSpeech.OnUtteranceCompletedListener {
-    method public abstract void onUtteranceCompleted(java.lang.String);
+  @Deprecated public static interface TextToSpeech.OnUtteranceCompletedListener {
+    method @Deprecated public void onUtteranceCompleted(String);
   }
 
   public abstract class TextToSpeechService extends android.app.Service {
     ctor public TextToSpeechService();
     method public android.os.IBinder onBind(android.content.Intent);
-    method public java.lang.String onGetDefaultVoiceNameFor(java.lang.String, java.lang.String, java.lang.String);
-    method protected java.util.Set<java.lang.String> onGetFeaturesForLanguage(java.lang.String, java.lang.String, java.lang.String);
-    method protected abstract java.lang.String[] onGetLanguage();
+    method public String onGetDefaultVoiceNameFor(String, String, String);
+    method protected java.util.Set<java.lang.String> onGetFeaturesForLanguage(String, String, String);
+    method protected abstract String[] onGetLanguage();
     method public java.util.List<android.speech.tts.Voice> onGetVoices();
-    method protected abstract int onIsLanguageAvailable(java.lang.String, java.lang.String, java.lang.String);
-    method public int onIsValidVoiceName(java.lang.String);
-    method protected abstract int onLoadLanguage(java.lang.String, java.lang.String, java.lang.String);
-    method public int onLoadVoice(java.lang.String);
+    method protected abstract int onIsLanguageAvailable(String, String, String);
+    method public int onIsValidVoiceName(String);
+    method protected abstract int onLoadLanguage(String, String, String);
+    method public int onLoadVoice(String);
     method protected abstract void onStop();
     method protected abstract void onSynthesizeText(android.speech.tts.SynthesisRequest, android.speech.tts.SynthesisCallback);
   }
 
   public abstract class UtteranceProgressListener {
     ctor public UtteranceProgressListener();
-    method public void onAudioAvailable(java.lang.String, byte[]);
-    method public void onBeginSynthesis(java.lang.String, int, int, int);
-    method public abstract void onDone(java.lang.String);
-    method public abstract deprecated void onError(java.lang.String);
-    method public void onError(java.lang.String, int);
-    method public void onRangeStart(java.lang.String, int, int, int);
-    method public abstract void onStart(java.lang.String);
-    method public void onStop(java.lang.String, boolean);
+    method public void onAudioAvailable(String, byte[]);
+    method public void onBeginSynthesis(String, int, int, int);
+    method public abstract void onDone(String);
+    method @Deprecated public abstract void onError(String);
+    method public void onError(String, int);
+    method public void onRangeStart(String, int, int, int);
+    method public abstract void onStart(String);
+    method public void onStop(String, boolean);
   }
 
   public class Voice implements android.os.Parcelable {
-    ctor public Voice(java.lang.String, java.util.Locale, int, int, boolean, java.util.Set<java.lang.String>);
+    ctor public Voice(String, java.util.Locale, int, int, boolean, java.util.Set<java.lang.String>);
     method public int describeContents();
     method public java.util.Set<java.lang.String> getFeatures();
     method public int getLatency();
     method public java.util.Locale getLocale();
-    method public java.lang.String getName();
+    method public String getName();
     method public int getQuality();
     method public boolean isNetworkConnectionRequired();
     method public void writeToParcel(android.os.Parcel, int);
@@ -42249,8 +42145,8 @@
 package android.system {
 
   public final class ErrnoException extends java.lang.Exception {
-    ctor public ErrnoException(java.lang.String, int);
-    ctor public ErrnoException(java.lang.String, int, java.lang.Throwable);
+    ctor public ErrnoException(String, int);
+    ctor public ErrnoException(String, int, Throwable);
     field public final int errno;
   }
 
@@ -42261,17 +42157,17 @@
 
   public final class Os {
     method public static java.io.FileDescriptor accept(java.io.FileDescriptor, java.net.InetSocketAddress) throws android.system.ErrnoException, java.net.SocketException;
-    method public static boolean access(java.lang.String, int) throws android.system.ErrnoException;
+    method public static boolean access(String, int) throws android.system.ErrnoException;
     method public static void bind(java.io.FileDescriptor, java.net.InetAddress, int) throws android.system.ErrnoException, java.net.SocketException;
-    method public static void chmod(java.lang.String, int) throws android.system.ErrnoException;
-    method public static void chown(java.lang.String, int, int) throws android.system.ErrnoException;
+    method public static void chmod(String, int) throws android.system.ErrnoException;
+    method public static void chown(String, int, int) throws android.system.ErrnoException;
     method public static void close(java.io.FileDescriptor) throws android.system.ErrnoException;
     method public static void connect(java.io.FileDescriptor, java.net.InetAddress, int) throws android.system.ErrnoException, java.net.SocketException;
     method public static java.io.FileDescriptor dup(java.io.FileDescriptor) throws android.system.ErrnoException;
     method public static java.io.FileDescriptor dup2(java.io.FileDescriptor, int) throws android.system.ErrnoException;
-    method public static java.lang.String[] environ();
-    method public static void execv(java.lang.String, java.lang.String[]) throws android.system.ErrnoException;
-    method public static void execve(java.lang.String, java.lang.String[], java.lang.String[]) throws android.system.ErrnoException;
+    method public static String[] environ();
+    method public static void execv(String, String[]) throws android.system.ErrnoException;
+    method public static void execve(String, String[], String[]) throws android.system.ErrnoException;
     method public static void fchmod(java.io.FileDescriptor, int) throws android.system.ErrnoException;
     method public static void fchown(java.io.FileDescriptor, int, int) throws android.system.ErrnoException;
     method public static void fdatasync(java.io.FileDescriptor) throws android.system.ErrnoException;
@@ -42279,9 +42175,9 @@
     method public static android.system.StructStatVfs fstatvfs(java.io.FileDescriptor) throws android.system.ErrnoException;
     method public static void fsync(java.io.FileDescriptor) throws android.system.ErrnoException;
     method public static void ftruncate(java.io.FileDescriptor, long) throws android.system.ErrnoException;
-    method public static java.lang.String gai_strerror(int);
+    method public static String gai_strerror(int);
     method public static int getegid();
-    method public static java.lang.String getenv(java.lang.String);
+    method public static String getenv(String);
     method public static int geteuid();
     method public static int getgid();
     method public static java.net.SocketAddress getpeername(java.io.FileDescriptor) throws android.system.ErrnoException;
@@ -42290,27 +42186,27 @@
     method public static java.net.SocketAddress getsockname(java.io.FileDescriptor) throws android.system.ErrnoException;
     method public static int gettid();
     method public static int getuid();
-    method public static byte[] getxattr(java.lang.String, java.lang.String) throws android.system.ErrnoException;
-    method public static java.lang.String if_indextoname(int);
-    method public static int if_nametoindex(java.lang.String);
-    method public static java.net.InetAddress inet_pton(int, java.lang.String);
+    method public static byte[] getxattr(String, String) throws android.system.ErrnoException;
+    method public static String if_indextoname(int);
+    method public static int if_nametoindex(String);
+    method public static java.net.InetAddress inet_pton(int, String);
     method public static boolean isatty(java.io.FileDescriptor);
     method public static void kill(int, int) throws android.system.ErrnoException;
-    method public static void lchown(java.lang.String, int, int) throws android.system.ErrnoException;
-    method public static void link(java.lang.String, java.lang.String) throws android.system.ErrnoException;
+    method public static void lchown(String, int, int) throws android.system.ErrnoException;
+    method public static void link(String, String) throws android.system.ErrnoException;
     method public static void listen(java.io.FileDescriptor, int) throws android.system.ErrnoException;
-    method public static java.lang.String[] listxattr(java.lang.String) throws android.system.ErrnoException;
+    method public static String[] listxattr(String) throws android.system.ErrnoException;
     method public static long lseek(java.io.FileDescriptor, long, int) throws android.system.ErrnoException;
-    method public static android.system.StructStat lstat(java.lang.String) throws android.system.ErrnoException;
+    method public static android.system.StructStat lstat(String) throws android.system.ErrnoException;
     method public static void mincore(long, long, byte[]) throws android.system.ErrnoException;
-    method public static void mkdir(java.lang.String, int) throws android.system.ErrnoException;
-    method public static void mkfifo(java.lang.String, int) throws android.system.ErrnoException;
+    method public static void mkdir(String, int) throws android.system.ErrnoException;
+    method public static void mkfifo(String, int) throws android.system.ErrnoException;
     method public static void mlock(long, long) throws android.system.ErrnoException;
     method public static long mmap(long, long, int, int, java.io.FileDescriptor, long) throws android.system.ErrnoException;
     method public static void msync(long, long, int) throws android.system.ErrnoException;
     method public static void munlock(long, long) throws android.system.ErrnoException;
     method public static void munmap(long, long) throws android.system.ErrnoException;
-    method public static java.io.FileDescriptor open(java.lang.String, int, int) throws android.system.ErrnoException;
+    method public static java.io.FileDescriptor open(String, int, int) throws android.system.ErrnoException;
     method public static java.io.FileDescriptor[] pipe() throws android.system.ErrnoException;
     method public static int poll(android.system.StructPollfd[], int) throws android.system.ErrnoException;
     method public static void posix_fallocate(java.io.FileDescriptor, long, long) throws android.system.ErrnoException;
@@ -42321,41 +42217,41 @@
     method public static int pwrite(java.io.FileDescriptor, byte[], int, int, long) throws android.system.ErrnoException, java.io.InterruptedIOException;
     method public static int read(java.io.FileDescriptor, java.nio.ByteBuffer) throws android.system.ErrnoException, java.io.InterruptedIOException;
     method public static int read(java.io.FileDescriptor, byte[], int, int) throws android.system.ErrnoException, java.io.InterruptedIOException;
-    method public static java.lang.String readlink(java.lang.String) throws android.system.ErrnoException;
-    method public static int readv(java.io.FileDescriptor, java.lang.Object[], int[], int[]) throws android.system.ErrnoException, java.io.InterruptedIOException;
+    method public static String readlink(String) throws android.system.ErrnoException;
+    method public static int readv(java.io.FileDescriptor, Object[], int[], int[]) throws android.system.ErrnoException, java.io.InterruptedIOException;
     method public static int recvfrom(java.io.FileDescriptor, java.nio.ByteBuffer, int, java.net.InetSocketAddress) throws android.system.ErrnoException, java.net.SocketException;
     method public static int recvfrom(java.io.FileDescriptor, byte[], int, int, int, java.net.InetSocketAddress) throws android.system.ErrnoException, java.net.SocketException;
-    method public static void remove(java.lang.String) throws android.system.ErrnoException;
-    method public static void removexattr(java.lang.String, java.lang.String) throws android.system.ErrnoException;
-    method public static void rename(java.lang.String, java.lang.String) throws android.system.ErrnoException;
+    method public static void remove(String) throws android.system.ErrnoException;
+    method public static void removexattr(String, String) throws android.system.ErrnoException;
+    method public static void rename(String, String) throws android.system.ErrnoException;
     method public static long sendfile(java.io.FileDescriptor, java.io.FileDescriptor, android.system.Int64Ref, long) throws android.system.ErrnoException;
     method public static int sendto(java.io.FileDescriptor, java.nio.ByteBuffer, int, java.net.InetAddress, int) throws android.system.ErrnoException, java.net.SocketException;
     method public static int sendto(java.io.FileDescriptor, byte[], int, int, int, java.net.InetAddress, int) throws android.system.ErrnoException, java.net.SocketException;
-    method public static deprecated void setegid(int) throws android.system.ErrnoException;
-    method public static void setenv(java.lang.String, java.lang.String, boolean) throws android.system.ErrnoException;
-    method public static deprecated void seteuid(int) throws android.system.ErrnoException;
-    method public static deprecated void setgid(int) throws android.system.ErrnoException;
+    method @Deprecated public static void setegid(int) throws android.system.ErrnoException;
+    method public static void setenv(String, String, boolean) throws android.system.ErrnoException;
+    method @Deprecated public static void seteuid(int) throws android.system.ErrnoException;
+    method @Deprecated public static void setgid(int) throws android.system.ErrnoException;
     method public static int setsid() throws android.system.ErrnoException;
     method public static void setsockoptInt(java.io.FileDescriptor, int, int, int) throws android.system.ErrnoException;
-    method public static deprecated void setuid(int) throws android.system.ErrnoException;
-    method public static void setxattr(java.lang.String, java.lang.String, byte[], int) throws android.system.ErrnoException;
+    method @Deprecated public static void setuid(int) throws android.system.ErrnoException;
+    method public static void setxattr(String, String, byte[], int) throws android.system.ErrnoException;
     method public static void shutdown(java.io.FileDescriptor, int) throws android.system.ErrnoException;
     method public static java.io.FileDescriptor socket(int, int, int) throws android.system.ErrnoException;
     method public static void socketpair(int, int, int, java.io.FileDescriptor, java.io.FileDescriptor) throws android.system.ErrnoException;
-    method public static android.system.StructStat stat(java.lang.String) throws android.system.ErrnoException;
-    method public static android.system.StructStatVfs statvfs(java.lang.String) throws android.system.ErrnoException;
-    method public static java.lang.String strerror(int);
-    method public static java.lang.String strsignal(int);
-    method public static void symlink(java.lang.String, java.lang.String) throws android.system.ErrnoException;
+    method public static android.system.StructStat stat(String) throws android.system.ErrnoException;
+    method public static android.system.StructStatVfs statvfs(String) throws android.system.ErrnoException;
+    method public static String strerror(int);
+    method public static String strsignal(int);
+    method public static void symlink(String, String) throws android.system.ErrnoException;
     method public static long sysconf(int);
     method public static void tcdrain(java.io.FileDescriptor) throws android.system.ErrnoException;
     method public static void tcsendbreak(java.io.FileDescriptor, int) throws android.system.ErrnoException;
     method public static int umask(int);
     method public static android.system.StructUtsname uname();
-    method public static void unsetenv(java.lang.String) throws android.system.ErrnoException;
+    method public static void unsetenv(String) throws android.system.ErrnoException;
     method public static int write(java.io.FileDescriptor, java.nio.ByteBuffer) throws android.system.ErrnoException, java.io.InterruptedIOException;
     method public static int write(java.io.FileDescriptor, byte[], int, int) throws android.system.ErrnoException, java.io.InterruptedIOException;
-    method public static int writev(java.io.FileDescriptor, java.lang.Object[], int[], int[]) throws android.system.ErrnoException, java.io.InterruptedIOException;
+    method public static int writev(java.io.FileDescriptor, Object[], int[], int[]) throws android.system.ErrnoException, java.io.InterruptedIOException;
   }
 
   public final class OsConstants {
@@ -42373,8 +42269,8 @@
     method public static boolean WIFSTOPPED(int);
     method public static int WSTOPSIG(int);
     method public static int WTERMSIG(int);
-    method public static java.lang.String errnoName(int);
-    method public static java.lang.String gaiName(int);
+    method public static String errnoName(int);
+    method public static String gaiName(int);
     field public static final int AF_INET;
     field public static final int AF_INET6;
     field public static final int AF_UNIX;
@@ -42858,7 +42754,7 @@
     field public short events;
     field public java.io.FileDescriptor fd;
     field public short revents;
-    field public java.lang.Object userData;
+    field public Object userData;
   }
 
   public final class StructStat {
@@ -42897,7 +42793,7 @@
     field public final long f_namemax;
   }
 
-  public final class StructTimespec implements java.lang.Comparable {
+  public final class StructTimespec implements java.lang.Comparable<android.system.StructTimespec> {
     ctor public StructTimespec(long, long);
     method public int compareTo(android.system.StructTimespec);
     field public final long tv_nsec;
@@ -42905,12 +42801,12 @@
   }
 
   public final class StructUtsname {
-    ctor public StructUtsname(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    field public final java.lang.String machine;
-    field public final java.lang.String nodename;
-    field public final java.lang.String release;
-    field public final java.lang.String sysname;
-    field public final java.lang.String version;
+    ctor public StructUtsname(String, String, String, String, String);
+    field public final String machine;
+    field public final String nodename;
+    field public final String release;
+    field public final String sysname;
+    field public final String version;
   }
 
 }
@@ -42927,8 +42823,8 @@
     method public java.util.List<android.telecom.Call> getConferenceableCalls();
     method public android.telecom.Call.Details getDetails();
     method public android.telecom.Call getParent();
-    method public java.lang.String getRemainingPostDialSequence();
-    method public android.telecom.Call.RttCall getRttCall();
+    method public String getRemainingPostDialSequence();
+    method @Nullable public android.telecom.Call.RttCall getRttCall();
     method public int getState();
     method public android.telecom.InCallService.VideoCall getVideoCall();
     method public void handoverTo(android.telecom.PhoneAccountHandle, int, android.os.Bundle);
@@ -42942,11 +42838,11 @@
     method public void putExtras(android.os.Bundle);
     method public void registerCallback(android.telecom.Call.Callback);
     method public void registerCallback(android.telecom.Call.Callback, android.os.Handler);
-    method public void reject(boolean, java.lang.String);
+    method public void reject(boolean, String);
     method public void removeExtras(java.util.List<java.lang.String>);
     method public void removeExtras(java.lang.String...);
     method public void respondToRttRequest(int, boolean);
-    method public void sendCallEvent(java.lang.String, android.os.Bundle);
+    method public void sendCallEvent(String, android.os.Bundle);
     method public void sendRttRequest();
     method public void splitFromConference();
     method public void stopDtmfTone();
@@ -42954,9 +42850,9 @@
     method public void swapConference();
     method public void unhold();
     method public void unregisterCallback(android.telecom.Call.Callback);
-    field public static final deprecated java.lang.String AVAILABLE_PHONE_ACCOUNTS = "selectPhoneAccountAccounts";
-    field public static final java.lang.String EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS = "android.telecom.extra.LAST_EMERGENCY_CALLBACK_TIME_MILLIS";
-    field public static final java.lang.String EXTRA_SUGGESTED_PHONE_ACCOUNTS = "android.telecom.extra.SUGGESTED_PHONE_ACCOUNTS";
+    field @Deprecated public static final String AVAILABLE_PHONE_ACCOUNTS = "selectPhoneAccountAccounts";
+    field public static final String EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS = "android.telecom.extra.LAST_EMERGENCY_CALLBACK_TIME_MILLIS";
+    field public static final String EXTRA_SUGGESTED_PHONE_ACCOUNTS = "android.telecom.extra.SUGGESTED_PHONE_ACCOUNTS";
     field public static final int STATE_ACTIVE = 4; // 0x4
     field public static final int STATE_CONNECTING = 9; // 0x9
     field public static final int STATE_DIALING = 1; // 0x1
@@ -42969,18 +42865,18 @@
     field public static final int STATE_SELECT_PHONE_ACCOUNT = 8; // 0x8
   }
 
-  public static abstract class Call.Callback {
+  public abstract static class Call.Callback {
     ctor public Call.Callback();
     method public void onCallDestroyed(android.telecom.Call);
     method public void onCannedTextResponsesLoaded(android.telecom.Call, java.util.List<java.lang.String>);
     method public void onChildrenChanged(android.telecom.Call, java.util.List<android.telecom.Call>);
     method public void onConferenceableCallsChanged(android.telecom.Call, java.util.List<android.telecom.Call>);
-    method public void onConnectionEvent(android.telecom.Call, java.lang.String, android.os.Bundle);
+    method public void onConnectionEvent(android.telecom.Call, String, android.os.Bundle);
     method public void onDetailsChanged(android.telecom.Call, android.telecom.Call.Details);
     method public void onHandoverComplete(android.telecom.Call);
     method public void onHandoverFailed(android.telecom.Call, int);
     method public void onParentChanged(android.telecom.Call, android.telecom.Call);
-    method public void onPostDialWait(android.telecom.Call, java.lang.String);
+    method public void onPostDialWait(android.telecom.Call, String);
     method public void onRttInitiationFailure(android.telecom.Call, int);
     method public void onRttModeChanged(android.telecom.Call, int);
     method public void onRttRequest(android.telecom.Call, int);
@@ -42997,13 +42893,13 @@
   public static class Call.Details {
     method public static boolean can(int, int);
     method public boolean can(int);
-    method public static java.lang.String capabilitiesToString(int);
+    method public static String capabilitiesToString(int);
     method public android.telecom.PhoneAccountHandle getAccountHandle();
     method public int getCallCapabilities();
     method public int getCallDirection();
-    method public android.telecom.CallIdentification getCallIdentification();
+    method @Nullable public android.telecom.CallIdentification getCallIdentification();
     method public int getCallProperties();
-    method public java.lang.String getCallerDisplayName();
+    method public String getCallerDisplayName();
     method public int getCallerDisplayNamePresentation();
     method public final long getConnectTimeMillis();
     method public long getCreationTimeMillis();
@@ -43017,7 +42913,7 @@
     method public int getVideoState();
     method public static boolean hasProperty(int, int);
     method public boolean hasProperty(int);
-    method public static java.lang.String propertiesToString(int);
+    method public static String propertiesToString(int);
     field public static final int CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO = 4194304; // 0x400000
     field public static final int CAPABILITY_CAN_PAUSE_VIDEO = 1048576; // 0x100000
     field public static final int CAPABILITY_CAN_PULL_CALL = 8388608; // 0x800000
@@ -43056,10 +42952,10 @@
 
   public static final class Call.RttCall {
     method public int getRttAudioMode();
-    method public java.lang.String read();
-    method public java.lang.String readImmediately() throws java.io.IOException;
+    method public String read();
+    method public String readImmediately() throws java.io.IOException;
     method public void setRttMode(int);
-    method public void write(java.lang.String) throws java.io.IOException;
+    method public void write(String) throws java.io.IOException;
     field public static final int RTT_MODE_FULL = 1; // 0x1
     field public static final int RTT_MODE_HCO = 2; // 0x2
     field public static final int RTT_MODE_VCO = 3; // 0x3
@@ -43067,7 +42963,7 @@
 
   public final class CallAudioState implements android.os.Parcelable {
     ctor public CallAudioState(boolean, int, int);
-    method public static java.lang.String audioRouteToString(int);
+    method public static String audioRouteToString(int);
     method public int describeContents();
     method public android.bluetooth.BluetoothDevice getActiveBluetoothDevice();
     method public int getRoute();
@@ -43085,13 +42981,13 @@
 
   public final class CallIdentification implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getCallScreeningAppName();
-    method public java.lang.String getCallScreeningPackageName();
-    method public java.lang.String getDescription();
-    method public java.lang.String getDetails();
-    method public java.lang.String getName();
+    method @NonNull public String getCallScreeningAppName();
+    method @NonNull public String getCallScreeningPackageName();
+    method @Nullable public String getDescription();
+    method @Nullable public String getDetails();
+    method @Nullable public String getName();
     method public int getNuisanceConfidence();
-    method public android.graphics.drawable.Icon getPhoto();
+    method @Nullable public android.graphics.drawable.Icon getPhoto();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CONFIDENCE_LIKELY_NOT_NUISANCE = -1; // 0xffffffff
     field public static final int CONFIDENCE_LIKELY_NUISANCE = 1; // 0x1
@@ -43104,31 +43000,31 @@
   public static class CallIdentification.Builder {
     ctor public CallIdentification.Builder();
     method public android.telecom.CallIdentification build();
-    method public android.telecom.CallIdentification.Builder setDescription(java.lang.String);
-    method public android.telecom.CallIdentification.Builder setDetails(java.lang.String);
-    method public android.telecom.CallIdentification.Builder setName(java.lang.String);
+    method public android.telecom.CallIdentification.Builder setDescription(@Nullable String);
+    method public android.telecom.CallIdentification.Builder setDetails(@Nullable String);
+    method public android.telecom.CallIdentification.Builder setName(@Nullable String);
     method public android.telecom.CallIdentification.Builder setNuisanceConfidence(int);
-    method public android.telecom.CallIdentification.Builder setPhoto(android.graphics.drawable.Icon);
+    method public android.telecom.CallIdentification.Builder setPhoto(@Nullable android.graphics.drawable.Icon);
   }
 
   public abstract class CallRedirectionService extends android.app.Service {
     ctor public CallRedirectionService();
     method public final void cancelCall();
     method public final android.os.IBinder onBind(android.content.Intent);
-    method public abstract void onPlaceCall(android.net.Uri, android.telecom.PhoneAccountHandle, boolean);
+    method public abstract void onPlaceCall(@NonNull android.net.Uri, @NonNull android.telecom.PhoneAccountHandle, boolean);
     method public final boolean onUnbind(android.content.Intent);
     method public final void placeCallUnmodified();
-    method public final void redirectCall(android.net.Uri, android.telecom.PhoneAccountHandle, boolean);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.CallRedirectionService";
+    method public final void redirectCall(@NonNull android.net.Uri, @NonNull android.telecom.PhoneAccountHandle, boolean);
+    field public static final String SERVICE_INTERFACE = "android.telecom.CallRedirectionService";
   }
 
   public abstract class CallScreeningService extends android.app.Service {
     ctor public CallScreeningService();
     method public android.os.IBinder onBind(android.content.Intent);
-    method public abstract void onScreenCall(android.telecom.Call.Details);
-    method public final void provideCallIdentification(android.telecom.Call.Details, android.telecom.CallIdentification);
-    method public final void respondToCall(android.telecom.Call.Details, android.telecom.CallScreeningService.CallResponse);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.CallScreeningService";
+    method public abstract void onScreenCall(@NonNull android.telecom.Call.Details);
+    method public final void provideCallIdentification(@NonNull android.telecom.Call.Details, @NonNull android.telecom.CallIdentification);
+    method public final void respondToCall(@NonNull android.telecom.Call.Details, @NonNull android.telecom.CallScreeningService.CallResponse);
+    field public static final String SERVICE_INTERFACE = "android.telecom.CallScreeningService";
   }
 
   public static class CallScreeningService.CallResponse {
@@ -43176,7 +43072,7 @@
     method public void onStopDtmfTone();
     method public void onSwap();
     method public void onUnhold();
-    method public final void putExtras(android.os.Bundle);
+    method public final void putExtras(@NonNull android.os.Bundle);
     method public final void removeConnection(android.telecom.Connection);
     method public final void removeExtras(java.util.List<java.lang.String>);
     method public final void removeExtras(java.lang.String...);
@@ -43188,7 +43084,7 @@
     method public final void setConnectionTime(long);
     method public final void setDialing();
     method public final void setDisconnected(android.telecom.DisconnectCause);
-    method public final void setExtras(android.os.Bundle);
+    method public final void setExtras(@Nullable android.os.Bundle);
     method public final void setOnHold();
     method public final void setStatusHints(android.telecom.StatusHints);
     method public final void setVideoProvider(android.telecom.Connection, android.telecom.Connection.VideoProvider);
@@ -43201,7 +43097,7 @@
 
   public abstract class Connection extends android.telecom.Conferenceable {
     ctor public Connection();
-    method public static java.lang.String capabilitiesToString(int);
+    method public static String capabilitiesToString(int);
     method public static android.telecom.Connection createCanceledConnection();
     method public static android.telecom.Connection createFailedConnection(android.telecom.DisconnectCause);
     method public final void destroy();
@@ -43209,7 +43105,7 @@
     method public final int getAddressPresentation();
     method public final boolean getAudioModeIsVoip();
     method public final android.telecom.CallAudioState getCallAudioState();
-    method public final java.lang.String getCallerDisplayName();
+    method public final String getCallerDisplayName();
     method public final int getCallerDisplayNamePresentation();
     method public final android.telecom.Conference getConference();
     method public final java.util.List<android.telecom.Conferenceable> getConferenceables();
@@ -43220,13 +43116,13 @@
     method public final int getState();
     method public final android.telecom.StatusHints getStatusHints();
     method public final android.telecom.Connection.VideoProvider getVideoProvider();
-    method public void handleRttUpgradeResponse(android.telecom.Connection.RttTextStream);
+    method public void handleRttUpgradeResponse(@Nullable android.telecom.Connection.RttTextStream);
     method public final boolean isRingbackRequested();
     method public void onAbort();
     method public void onAnswer(int);
     method public void onAnswer();
     method public void onCallAudioStateChanged(android.telecom.CallAudioState);
-    method public void onCallEvent(java.lang.String, android.os.Bundle);
+    method public void onCallEvent(String, android.os.Bundle);
     method public void onDeflect(android.net.Uri);
     method public void onDisconnect();
     method public void onExtrasChanged(android.os.Bundle);
@@ -43236,21 +43132,21 @@
     method public void onPostDialContinue(boolean);
     method public void onPullExternalCall();
     method public void onReject();
-    method public void onReject(java.lang.String);
+    method public void onReject(String);
     method public void onSeparate();
     method public void onShowIncomingCallUi();
     method public void onSilence();
-    method public void onStartRtt(android.telecom.Connection.RttTextStream);
+    method public void onStartRtt(@NonNull android.telecom.Connection.RttTextStream);
     method public void onStateChanged(int);
     method public void onStopDtmfTone();
     method public void onStopRtt();
     method public void onUnhold();
-    method public static java.lang.String propertiesToString(int);
-    method public final void putExtras(android.os.Bundle);
+    method public static String propertiesToString(int);
+    method public final void putExtras(@NonNull android.os.Bundle);
     method public final void removeExtras(java.util.List<java.lang.String>);
     method public final void removeExtras(java.lang.String...);
-    method public void requestBluetoothAudio(android.bluetooth.BluetoothDevice);
-    method public void sendConnectionEvent(java.lang.String, android.os.Bundle);
+    method public void requestBluetoothAudio(@NonNull android.bluetooth.BluetoothDevice);
+    method public void sendConnectionEvent(String, android.os.Bundle);
     method public final void sendRemoteRttRequest();
     method public final void sendRttInitiationFailure(int);
     method public final void sendRttInitiationSuccess();
@@ -43259,31 +43155,31 @@
     method public final void setAddress(android.net.Uri, int);
     method public final void setAudioModeIsVoip(boolean);
     method public final void setAudioRoute(int);
-    method public final void setCallerDisplayName(java.lang.String, int);
+    method public final void setCallerDisplayName(String, int);
     method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
     method public final void setConferenceables(java.util.List<android.telecom.Conferenceable>);
     method public final void setConnectionCapabilities(int);
     method public final void setConnectionProperties(int);
     method public final void setDialing();
     method public final void setDisconnected(android.telecom.DisconnectCause);
-    method public final void setExtras(android.os.Bundle);
+    method public final void setExtras(@Nullable android.os.Bundle);
     method public final void setInitialized();
     method public final void setInitializing();
     method public final void setNextPostDialChar(char);
     method public final void setOnHold();
-    method public final void setPostDialWait(java.lang.String);
+    method public final void setPostDialWait(String);
     method public final void setPulling();
     method public final void setRingbackRequested(boolean);
     method public final void setRinging();
     method public final void setStatusHints(android.telecom.StatusHints);
     method public final void setVideoProvider(android.telecom.Connection.VideoProvider);
     method public final void setVideoState(int);
-    method public static java.lang.String stateToString(int);
+    method public static String stateToString(int);
     field public static final int CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO = 8388608; // 0x800000
     field public static final int CAPABILITY_CAN_PAUSE_VIDEO = 1048576; // 0x100000
     field public static final int CAPABILITY_CAN_PULL_CALL = 16777216; // 0x1000000
     field public static final int CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION = 4194304; // 0x400000
-    field public static final deprecated int CAPABILITY_CAN_UPGRADE_TO_VIDEO = 524288; // 0x80000
+    field @Deprecated public static final int CAPABILITY_CAN_UPGRADE_TO_VIDEO = 524288; // 0x80000
     field public static final int CAPABILITY_DISCONNECT_FROM_CONFERENCE = 8192; // 0x2000
     field public static final int CAPABILITY_HOLD = 1; // 0x1
     field public static final int CAPABILITY_MANAGE_CONFERENCE = 128; // 0x80
@@ -43300,16 +43196,16 @@
     field public static final int CAPABILITY_SUPPORT_DEFLECT = 33554432; // 0x2000000
     field public static final int CAPABILITY_SUPPORT_HOLD = 2; // 0x2
     field public static final int CAPABILITY_SWAP_CONFERENCE = 8; // 0x8
-    field public static final java.lang.String EVENT_CALL_MERGE_FAILED = "android.telecom.event.CALL_MERGE_FAILED";
-    field public static final java.lang.String EVENT_CALL_PULL_FAILED = "android.telecom.event.CALL_PULL_FAILED";
-    field public static final java.lang.String EVENT_RTT_AUDIO_INDICATION_CHANGED = "android.telecom.event.RTT_AUDIO_INDICATION_CHANGED";
-    field public static final java.lang.String EXTRA_ANSWERING_DROPS_FG_CALL = "android.telecom.extra.ANSWERING_DROPS_FG_CALL";
-    field public static final java.lang.String EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME = "android.telecom.extra.ANSWERING_DROPS_FG_CALL_APP_NAME";
-    field public static final java.lang.String EXTRA_CALL_SUBJECT = "android.telecom.extra.CALL_SUBJECT";
-    field public static final java.lang.String EXTRA_CHILD_ADDRESS = "android.telecom.extra.CHILD_ADDRESS";
-    field public static final java.lang.String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT";
-    field public static final java.lang.String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER";
-    field public static final java.lang.String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE";
+    field public static final String EVENT_CALL_MERGE_FAILED = "android.telecom.event.CALL_MERGE_FAILED";
+    field public static final String EVENT_CALL_PULL_FAILED = "android.telecom.event.CALL_PULL_FAILED";
+    field public static final String EVENT_RTT_AUDIO_INDICATION_CHANGED = "android.telecom.event.RTT_AUDIO_INDICATION_CHANGED";
+    field public static final String EXTRA_ANSWERING_DROPS_FG_CALL = "android.telecom.extra.ANSWERING_DROPS_FG_CALL";
+    field public static final String EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME = "android.telecom.extra.ANSWERING_DROPS_FG_CALL_APP_NAME";
+    field public static final String EXTRA_CALL_SUBJECT = "android.telecom.extra.CALL_SUBJECT";
+    field public static final String EXTRA_CHILD_ADDRESS = "android.telecom.extra.CHILD_ADDRESS";
+    field public static final String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT";
+    field public static final String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER";
+    field public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE";
     field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20
     field public static final int PROPERTY_IS_EXTERNAL_CALL = 16; // 0x10
     field public static final int PROPERTY_IS_RTT = 256; // 0x100
@@ -43333,12 +43229,12 @@
   }
 
   public static final class Connection.RttTextStream {
-    method public java.lang.String read() throws java.io.IOException;
-    method public java.lang.String readImmediately() throws java.io.IOException;
-    method public void write(java.lang.String) throws java.io.IOException;
+    method public String read() throws java.io.IOException;
+    method public String readImmediately() throws java.io.IOException;
+    method public void write(String) throws java.io.IOException;
   }
 
-  public static abstract class Connection.VideoProvider {
+  public abstract static class Connection.VideoProvider {
     ctor public Connection.VideoProvider();
     method public void changeCameraCapabilities(android.telecom.VideoProfile.CameraCapabilities);
     method public void changePeerDimensions(int, int);
@@ -43348,7 +43244,7 @@
     method public abstract void onRequestConnectionDataUsage();
     method public abstract void onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile);
     method public abstract void onSendSessionModifyResponse(android.telecom.VideoProfile);
-    method public abstract void onSetCamera(java.lang.String);
+    method public abstract void onSetCamera(String);
     method public abstract void onSetDeviceOrientation(int);
     method public abstract void onSetDisplaySurface(android.view.Surface);
     method public abstract void onSetPauseImage(android.net.Uri);
@@ -43408,19 +43304,19 @@
     method public void onHandoverFailed(android.telecom.ConnectionRequest, int);
     method public void onRemoteConferenceAdded(android.telecom.RemoteConference);
     method public void onRemoteExistingConnectionAdded(android.telecom.RemoteConnection);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.ConnectionService";
+    field public static final String SERVICE_INTERFACE = "android.telecom.ConnectionService";
   }
 
   public final class DisconnectCause implements android.os.Parcelable {
     ctor public DisconnectCause(int);
-    ctor public DisconnectCause(int, java.lang.String);
-    ctor public DisconnectCause(int, java.lang.CharSequence, java.lang.CharSequence, java.lang.String);
-    ctor public DisconnectCause(int, java.lang.CharSequence, java.lang.CharSequence, java.lang.String, int);
+    ctor public DisconnectCause(int, String);
+    ctor public DisconnectCause(int, CharSequence, CharSequence, String);
+    ctor public DisconnectCause(int, CharSequence, CharSequence, String, int);
     method public int describeContents();
     method public int getCode();
-    method public java.lang.CharSequence getDescription();
-    method public java.lang.CharSequence getLabel();
-    method public java.lang.String getReason();
+    method public CharSequence getDescription();
+    method public CharSequence getLabel();
+    method public String getReason();
     method public int getTone();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int ANSWERED_ELSEWHERE = 11; // 0xb
@@ -43440,10 +43336,10 @@
   }
 
   public class GatewayInfo implements android.os.Parcelable {
-    ctor public GatewayInfo(java.lang.String, android.net.Uri, android.net.Uri);
+    ctor public GatewayInfo(String, android.net.Uri, android.net.Uri);
     method public int describeContents();
     method public android.net.Uri getGatewayAddress();
-    method public java.lang.String getGatewayProviderPackageName();
+    method public String getGatewayProviderPackageName();
     method public android.net.Uri getOriginalAddress();
     method public boolean isEmpty();
     method public void writeToParcel(android.os.Parcel, int);
@@ -43461,15 +43357,15 @@
     method public void onCallAudioStateChanged(android.telecom.CallAudioState);
     method public void onCallRemoved(android.telecom.Call);
     method public void onCanAddCallChanged(boolean);
-    method public void onConnectionEvent(android.telecom.Call, java.lang.String, android.os.Bundle);
+    method public void onConnectionEvent(android.telecom.Call, String, android.os.Bundle);
     method public void onSilenceRinger();
-    method public final void requestBluetoothAudio(android.bluetooth.BluetoothDevice);
+    method public final void requestBluetoothAudio(@NonNull android.bluetooth.BluetoothDevice);
     method public final void setAudioRoute(int);
     method public final void setMuted(boolean);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.InCallService";
+    field public static final String SERVICE_INTERFACE = "android.telecom.InCallService";
   }
 
-  public static abstract class InCallService.VideoCall {
+  public abstract static class InCallService.VideoCall {
     ctor public InCallService.VideoCall();
     method public abstract void registerCallback(android.telecom.InCallService.VideoCall.Callback);
     method public abstract void registerCallback(android.telecom.InCallService.VideoCall.Callback, android.os.Handler);
@@ -43477,7 +43373,7 @@
     method public abstract void requestCameraCapabilities();
     method public abstract void sendSessionModifyRequest(android.telecom.VideoProfile);
     method public abstract void sendSessionModifyResponse(android.telecom.VideoProfile);
-    method public abstract void setCamera(java.lang.String);
+    method public abstract void setCamera(String);
     method public abstract void setDeviceOrientation(int);
     method public abstract void setDisplaySurface(android.view.Surface);
     method public abstract void setPauseImage(android.net.Uri);
@@ -43486,7 +43382,7 @@
     method public abstract void unregisterCallback(android.telecom.InCallService.VideoCall.Callback);
   }
 
-  public static abstract class InCallService.VideoCall.Callback {
+  public abstract static class InCallService.VideoCall.Callback {
     ctor public InCallService.VideoCall.Callback();
     method public abstract void onCallDataUsageChanged(long);
     method public abstract void onCallSessionEvent(int);
@@ -43498,7 +43394,7 @@
   }
 
   public final class PhoneAccount implements android.os.Parcelable {
-    method public static android.telecom.PhoneAccount.Builder builder(android.telecom.PhoneAccountHandle, java.lang.CharSequence);
+    method public static android.telecom.PhoneAccount.Builder builder(android.telecom.PhoneAccountHandle, CharSequence);
     method public int describeContents();
     method public android.telecom.PhoneAccountHandle getAccountHandle();
     method public android.net.Uri getAddress();
@@ -43506,13 +43402,13 @@
     method public android.os.Bundle getExtras();
     method public int getHighlightColor();
     method public android.graphics.drawable.Icon getIcon();
-    method public java.lang.CharSequence getLabel();
-    method public java.lang.CharSequence getShortDescription();
+    method public CharSequence getLabel();
+    method public CharSequence getShortDescription();
     method public android.net.Uri getSubscriptionAddress();
     method public java.util.List<java.lang.String> getSupportedUriSchemes();
     method public boolean hasCapabilities(int);
     method public boolean isEnabled();
-    method public boolean supportsUriScheme(java.lang.String);
+    method public boolean supportsUriScheme(String);
     method public android.telecom.PhoneAccount.Builder toBuilder();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CAPABILITY_CALL_PROVIDER = 2; // 0x2
@@ -43526,39 +43422,39 @@
     field public static final int CAPABILITY_VIDEO_CALLING = 8; // 0x8
     field public static final int CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE = 256; // 0x100
     field public static final android.os.Parcelable.Creator<android.telecom.PhoneAccount> CREATOR;
-    field public static final java.lang.String EXTRA_CALL_SUBJECT_CHARACTER_ENCODING = "android.telecom.extra.CALL_SUBJECT_CHARACTER_ENCODING";
-    field public static final java.lang.String EXTRA_CALL_SUBJECT_MAX_LENGTH = "android.telecom.extra.CALL_SUBJECT_MAX_LENGTH";
-    field public static final java.lang.String EXTRA_LOG_SELF_MANAGED_CALLS = "android.telecom.extra.LOG_SELF_MANAGED_CALLS";
-    field public static final java.lang.String EXTRA_SUPPORTS_HANDOVER_FROM = "android.telecom.extra.SUPPORTS_HANDOVER_FROM";
-    field public static final java.lang.String EXTRA_SUPPORTS_HANDOVER_TO = "android.telecom.extra.SUPPORTS_HANDOVER_TO";
+    field public static final String EXTRA_CALL_SUBJECT_CHARACTER_ENCODING = "android.telecom.extra.CALL_SUBJECT_CHARACTER_ENCODING";
+    field public static final String EXTRA_CALL_SUBJECT_MAX_LENGTH = "android.telecom.extra.CALL_SUBJECT_MAX_LENGTH";
+    field public static final String EXTRA_LOG_SELF_MANAGED_CALLS = "android.telecom.extra.LOG_SELF_MANAGED_CALLS";
+    field public static final String EXTRA_SUPPORTS_HANDOVER_FROM = "android.telecom.extra.SUPPORTS_HANDOVER_FROM";
+    field public static final String EXTRA_SUPPORTS_HANDOVER_TO = "android.telecom.extra.SUPPORTS_HANDOVER_TO";
     field public static final int NO_HIGHLIGHT_COLOR = 0; // 0x0
     field public static final int NO_RESOURCE_ID = -1; // 0xffffffff
-    field public static final java.lang.String SCHEME_SIP = "sip";
-    field public static final java.lang.String SCHEME_TEL = "tel";
-    field public static final java.lang.String SCHEME_VOICEMAIL = "voicemail";
+    field public static final String SCHEME_SIP = "sip";
+    field public static final String SCHEME_TEL = "tel";
+    field public static final String SCHEME_VOICEMAIL = "voicemail";
   }
 
   public static class PhoneAccount.Builder {
-    ctor public PhoneAccount.Builder(android.telecom.PhoneAccountHandle, java.lang.CharSequence);
+    ctor public PhoneAccount.Builder(android.telecom.PhoneAccountHandle, CharSequence);
     ctor public PhoneAccount.Builder(android.telecom.PhoneAccount);
-    method public android.telecom.PhoneAccount.Builder addSupportedUriScheme(java.lang.String);
+    method public android.telecom.PhoneAccount.Builder addSupportedUriScheme(String);
     method public android.telecom.PhoneAccount build();
     method public android.telecom.PhoneAccount.Builder setAddress(android.net.Uri);
     method public android.telecom.PhoneAccount.Builder setCapabilities(int);
     method public android.telecom.PhoneAccount.Builder setExtras(android.os.Bundle);
     method public android.telecom.PhoneAccount.Builder setHighlightColor(int);
     method public android.telecom.PhoneAccount.Builder setIcon(android.graphics.drawable.Icon);
-    method public android.telecom.PhoneAccount.Builder setShortDescription(java.lang.CharSequence);
+    method public android.telecom.PhoneAccount.Builder setShortDescription(CharSequence);
     method public android.telecom.PhoneAccount.Builder setSubscriptionAddress(android.net.Uri);
     method public android.telecom.PhoneAccount.Builder setSupportedUriSchemes(java.util.List<java.lang.String>);
   }
 
   public final class PhoneAccountHandle implements android.os.Parcelable {
-    ctor public PhoneAccountHandle(android.content.ComponentName, java.lang.String);
-    ctor public PhoneAccountHandle(android.content.ComponentName, java.lang.String, android.os.UserHandle);
+    ctor public PhoneAccountHandle(@NonNull android.content.ComponentName, @NonNull String);
+    ctor public PhoneAccountHandle(@NonNull android.content.ComponentName, @NonNull String, @NonNull android.os.UserHandle);
     method public int describeContents();
     method public android.content.ComponentName getComponentName();
-    method public java.lang.String getId();
+    method public String getId();
     method public android.os.UserHandle getUserHandle();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telecom.PhoneAccountHandle> CREATOR;
@@ -43600,7 +43496,7 @@
     method public void unregisterCallback(android.telecom.RemoteConference.Callback);
   }
 
-  public static abstract class RemoteConference.Callback {
+  public abstract static class RemoteConference.Callback {
     ctor public RemoteConference.Callback();
     method public void onConferenceableConnectionsChanged(android.telecom.RemoteConference, java.util.List<android.telecom.RemoteConnection>);
     method public void onConnectionAdded(android.telecom.RemoteConference, android.telecom.RemoteConnection);
@@ -43609,7 +43505,7 @@
     method public void onConnectionRemoved(android.telecom.RemoteConference, android.telecom.RemoteConnection);
     method public void onDestroyed(android.telecom.RemoteConference);
     method public void onDisconnected(android.telecom.RemoteConference, android.telecom.DisconnectCause);
-    method public void onExtrasChanged(android.telecom.RemoteConference, android.os.Bundle);
+    method public void onExtrasChanged(android.telecom.RemoteConference, @Nullable android.os.Bundle);
     method public void onStateChanged(android.telecom.RemoteConference, int, int);
   }
 
@@ -43619,7 +43515,7 @@
     method public void disconnect();
     method public android.net.Uri getAddress();
     method public int getAddressPresentation();
-    method public java.lang.CharSequence getCallerDisplayName();
+    method public CharSequence getCallerDisplayName();
     method public int getCallerDisplayNamePresentation();
     method public android.telecom.RemoteConference getConference();
     method public java.util.List<android.telecom.RemoteConnection> getConferenceableConnections();
@@ -43646,20 +43542,20 @@
     method public void unregisterCallback(android.telecom.RemoteConnection.Callback);
   }
 
-  public static abstract class RemoteConnection.Callback {
+  public abstract static class RemoteConnection.Callback {
     ctor public RemoteConnection.Callback();
     method public void onAddressChanged(android.telecom.RemoteConnection, android.net.Uri, int);
-    method public void onCallerDisplayNameChanged(android.telecom.RemoteConnection, java.lang.String, int);
+    method public void onCallerDisplayNameChanged(android.telecom.RemoteConnection, String, int);
     method public void onConferenceChanged(android.telecom.RemoteConnection, android.telecom.RemoteConference);
     method public void onConferenceableConnectionsChanged(android.telecom.RemoteConnection, java.util.List<android.telecom.RemoteConnection>);
     method public void onConnectionCapabilitiesChanged(android.telecom.RemoteConnection, int);
-    method public void onConnectionEvent(android.telecom.RemoteConnection, java.lang.String, android.os.Bundle);
+    method public void onConnectionEvent(android.telecom.RemoteConnection, String, android.os.Bundle);
     method public void onConnectionPropertiesChanged(android.telecom.RemoteConnection, int);
     method public void onDestroyed(android.telecom.RemoteConnection);
     method public void onDisconnected(android.telecom.RemoteConnection, android.telecom.DisconnectCause);
-    method public void onExtrasChanged(android.telecom.RemoteConnection, android.os.Bundle);
+    method public void onExtrasChanged(android.telecom.RemoteConnection, @Nullable android.os.Bundle);
     method public void onPostDialChar(android.telecom.RemoteConnection, char);
-    method public void onPostDialWait(android.telecom.RemoteConnection, java.lang.String);
+    method public void onPostDialWait(android.telecom.RemoteConnection, String);
     method public void onRingbackRequested(android.telecom.RemoteConnection, boolean);
     method public void onStateChanged(android.telecom.RemoteConnection, int);
     method public void onStatusHintsChanged(android.telecom.RemoteConnection, android.telecom.StatusHints);
@@ -43674,7 +43570,7 @@
     method public void requestCameraCapabilities();
     method public void sendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile);
     method public void sendSessionModifyResponse(android.telecom.VideoProfile);
-    method public void setCamera(java.lang.String);
+    method public void setCamera(String);
     method public void setDeviceOrientation(int);
     method public void setDisplaySurface(android.view.Surface);
     method public void setPauseImage(android.net.Uri);
@@ -43683,7 +43579,7 @@
     method public void unregisterCallback(android.telecom.RemoteConnection.VideoProvider.Callback);
   }
 
-  public static abstract class RemoteConnection.VideoProvider.Callback {
+  public abstract static class RemoteConnection.VideoProvider.Callback {
     ctor public RemoteConnection.VideoProvider.Callback();
     method public void onCallDataUsageChanged(android.telecom.RemoteConnection.VideoProvider, long);
     method public void onCallSessionEvent(android.telecom.RemoteConnection.VideoProvider, int);
@@ -43695,86 +43591,86 @@
   }
 
   public final class StatusHints implements android.os.Parcelable {
-    ctor public StatusHints(java.lang.CharSequence, android.graphics.drawable.Icon, android.os.Bundle);
+    ctor public StatusHints(CharSequence, android.graphics.drawable.Icon, android.os.Bundle);
     method public int describeContents();
     method public android.os.Bundle getExtras();
     method public android.graphics.drawable.Icon getIcon();
-    method public java.lang.CharSequence getLabel();
+    method public CharSequence getLabel();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telecom.StatusHints> CREATOR;
   }
 
   public class TelecomManager {
     method public void acceptHandover(android.net.Uri, int, android.telecom.PhoneAccountHandle);
-    method public void acceptRingingCall();
-    method public void acceptRingingCall(int);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ANSWER_PHONE_CALLS, android.Manifest.permission.MODIFY_PHONE_STATE}) public void acceptRingingCall();
+    method @RequiresPermission(anyOf={android.Manifest.permission.ANSWER_PHONE_CALLS, android.Manifest.permission.MODIFY_PHONE_STATE}) public void acceptRingingCall(int);
     method public void addNewIncomingCall(android.telecom.PhoneAccountHandle, android.os.Bundle);
-    method public void cancelMissedCallsNotification();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void cancelMissedCallsNotification();
     method public android.content.Intent createManageBlockedNumbersIntent();
-    method public boolean endCall();
-    method public android.net.Uri getAdnUriForPhoneAccount(android.telecom.PhoneAccountHandle);
-    method public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts();
-    method public java.lang.String getDefaultDialerPackage();
-    method public android.telecom.PhoneAccountHandle getDefaultOutgoingPhoneAccount(java.lang.String);
-    method public java.lang.String getLine1Number(android.telecom.PhoneAccountHandle);
+    method @RequiresPermission(android.Manifest.permission.ANSWER_PHONE_CALLS) public boolean endCall();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.net.Uri getAdnUriForPhoneAccount(android.telecom.PhoneAccountHandle);
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts();
+    method public String getDefaultDialerPackage();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public android.telecom.PhoneAccountHandle getDefaultOutgoingPhoneAccount(String);
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getLine1Number(android.telecom.PhoneAccountHandle);
     method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle);
-    method public java.util.List<android.telecom.PhoneAccountHandle> getSelfManagedPhoneAccounts();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.List<android.telecom.PhoneAccountHandle> getSelfManagedPhoneAccounts();
     method public android.telecom.PhoneAccountHandle getSimCallManager();
-    method public java.lang.String getSystemDialerPackage();
-    method public java.lang.String getVoiceMailNumber(android.telecom.PhoneAccountHandle);
-    method public boolean handleMmi(java.lang.String);
-    method public boolean handleMmi(java.lang.String, android.telecom.PhoneAccountHandle);
-    method public boolean isInCall();
-    method public boolean isInManagedCall();
+    method public String getSystemDialerPackage();
+    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);
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isInCall();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isInManagedCall();
     method public boolean isIncomingCallPermitted(android.telecom.PhoneAccountHandle);
     method public boolean isOutgoingCallPermitted(android.telecom.PhoneAccountHandle);
-    method public boolean isTtySupported();
-    method public boolean isVoiceMailNumber(android.telecom.PhoneAccountHandle, java.lang.String);
-    method public void placeCall(android.net.Uri, android.os.Bundle);
+    method @RequiresPermission(anyOf={"android.permission.READ_PRIVILEGED_PHONE_STATE", android.Manifest.permission.READ_PHONE_STATE}) public boolean isTtySupported();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isVoiceMailNumber(android.telecom.PhoneAccountHandle, String);
+    method @RequiresPermission(anyOf={android.Manifest.permission.CALL_PHONE, android.Manifest.permission.MANAGE_OWN_CALLS}) public void placeCall(android.net.Uri, android.os.Bundle);
     method public void registerPhoneAccount(android.telecom.PhoneAccount);
-    method public void showInCallScreen(boolean);
-    method public void silenceRinger();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public void showInCallScreen(boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void silenceRinger();
     method public void unregisterPhoneAccount(android.telecom.PhoneAccountHandle);
-    field public static final java.lang.String ACTION_CHANGE_DEFAULT_DIALER = "android.telecom.action.CHANGE_DEFAULT_DIALER";
-    field public static final java.lang.String ACTION_CHANGE_PHONE_ACCOUNTS = "android.telecom.action.CHANGE_PHONE_ACCOUNTS";
-    field public static final java.lang.String ACTION_CONFIGURE_PHONE_ACCOUNT = "android.telecom.action.CONFIGURE_PHONE_ACCOUNT";
-    field public static final java.lang.String ACTION_DEFAULT_CALL_SCREENING_APP_CHANGED = "android.telecom.action.DEFAULT_CALL_SCREENING_APP_CHANGED";
-    field public static final java.lang.String ACTION_DEFAULT_DIALER_CHANGED = "android.telecom.action.DEFAULT_DIALER_CHANGED";
-    field public static final deprecated java.lang.String ACTION_INCOMING_CALL = "android.telecom.action.INCOMING_CALL";
-    field public static final java.lang.String ACTION_PHONE_ACCOUNT_REGISTERED = "android.telecom.action.PHONE_ACCOUNT_REGISTERED";
-    field public static final java.lang.String ACTION_PHONE_ACCOUNT_UNREGISTERED = "android.telecom.action.PHONE_ACCOUNT_UNREGISTERED";
-    field public static final java.lang.String ACTION_SHOW_CALL_ACCESSIBILITY_SETTINGS = "android.telecom.action.SHOW_CALL_ACCESSIBILITY_SETTINGS";
-    field public static final java.lang.String ACTION_SHOW_CALL_SETTINGS = "android.telecom.action.SHOW_CALL_SETTINGS";
-    field public static final java.lang.String ACTION_SHOW_MISSED_CALLS_NOTIFICATION = "android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION";
-    field public static final java.lang.String ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS = "android.telecom.action.SHOW_RESPOND_VIA_SMS_SETTINGS";
+    field public static final String ACTION_CHANGE_DEFAULT_DIALER = "android.telecom.action.CHANGE_DEFAULT_DIALER";
+    field public static final String ACTION_CHANGE_PHONE_ACCOUNTS = "android.telecom.action.CHANGE_PHONE_ACCOUNTS";
+    field public static final String ACTION_CONFIGURE_PHONE_ACCOUNT = "android.telecom.action.CONFIGURE_PHONE_ACCOUNT";
+    field public static final String ACTION_DEFAULT_CALL_SCREENING_APP_CHANGED = "android.telecom.action.DEFAULT_CALL_SCREENING_APP_CHANGED";
+    field public static final String ACTION_DEFAULT_DIALER_CHANGED = "android.telecom.action.DEFAULT_DIALER_CHANGED";
+    field @Deprecated public static final String ACTION_INCOMING_CALL = "android.telecom.action.INCOMING_CALL";
+    field public static final String ACTION_PHONE_ACCOUNT_REGISTERED = "android.telecom.action.PHONE_ACCOUNT_REGISTERED";
+    field public static final String ACTION_PHONE_ACCOUNT_UNREGISTERED = "android.telecom.action.PHONE_ACCOUNT_UNREGISTERED";
+    field public static final String ACTION_SHOW_CALL_ACCESSIBILITY_SETTINGS = "android.telecom.action.SHOW_CALL_ACCESSIBILITY_SETTINGS";
+    field public static final String ACTION_SHOW_CALL_SETTINGS = "android.telecom.action.SHOW_CALL_SETTINGS";
+    field public static final String ACTION_SHOW_MISSED_CALLS_NOTIFICATION = "android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION";
+    field public static final String ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS = "android.telecom.action.SHOW_RESPOND_VIA_SMS_SETTINGS";
     field public static final char DTMF_CHARACTER_PAUSE = 44; // 0x002c ','
     field public static final char DTMF_CHARACTER_WAIT = 59; // 0x003b ';'
-    field public static final java.lang.String EXTRA_CALL_BACK_NUMBER = "android.telecom.extra.CALL_BACK_NUMBER";
-    field public static final java.lang.String EXTRA_CALL_DISCONNECT_CAUSE = "android.telecom.extra.CALL_DISCONNECT_CAUSE";
-    field public static final java.lang.String EXTRA_CALL_DISCONNECT_MESSAGE = "android.telecom.extra.CALL_DISCONNECT_MESSAGE";
-    field public static final java.lang.String EXTRA_CALL_NETWORK_TYPE = "android.telecom.extra.CALL_NETWORK_TYPE";
-    field public static final java.lang.String EXTRA_CALL_SUBJECT = "android.telecom.extra.CALL_SUBJECT";
-    field public static final java.lang.String EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME = "android.telecom.extra.CHANGE_DEFAULT_DIALER_PACKAGE_NAME";
-    field public static final java.lang.String EXTRA_DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME = "android.telecom.extra.DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME";
-    field public static final java.lang.String EXTRA_INCOMING_CALL_ADDRESS = "android.telecom.extra.INCOMING_CALL_ADDRESS";
-    field public static final java.lang.String EXTRA_INCOMING_CALL_EXTRAS = "android.telecom.extra.INCOMING_CALL_EXTRAS";
-    field public static final java.lang.String EXTRA_INCOMING_VIDEO_STATE = "android.telecom.extra.INCOMING_VIDEO_STATE";
-    field public static final java.lang.String EXTRA_IS_DEFAULT_CALL_SCREENING_APP = "android.telecom.extra.IS_DEFAULT_CALL_SCREENING_APP";
-    field public static final java.lang.String EXTRA_IS_ENABLED = "android.telecom.extra.IS_ENABLED";
-    field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telecom.extra.NOTIFICATION_COUNT";
-    field public static final java.lang.String EXTRA_NOTIFICATION_PHONE_NUMBER = "android.telecom.extra.NOTIFICATION_PHONE_NUMBER";
-    field public static final java.lang.String EXTRA_OUTGOING_CALL_EXTRAS = "android.telecom.extra.OUTGOING_CALL_EXTRAS";
-    field public static final java.lang.String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telecom.extra.PHONE_ACCOUNT_HANDLE";
-    field public static final java.lang.String EXTRA_START_CALL_WITH_RTT = "android.telecom.extra.START_CALL_WITH_RTT";
-    field public static final java.lang.String EXTRA_START_CALL_WITH_SPEAKERPHONE = "android.telecom.extra.START_CALL_WITH_SPEAKERPHONE";
-    field public static final java.lang.String EXTRA_START_CALL_WITH_VIDEO_STATE = "android.telecom.extra.START_CALL_WITH_VIDEO_STATE";
-    field public static final java.lang.String GATEWAY_ORIGINAL_ADDRESS = "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS";
-    field public static final java.lang.String GATEWAY_PROVIDER_PACKAGE = "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE";
-    field public static final java.lang.String METADATA_INCLUDE_EXTERNAL_CALLS = "android.telecom.INCLUDE_EXTERNAL_CALLS";
-    field public static final java.lang.String METADATA_INCLUDE_SELF_MANAGED_CALLS = "android.telecom.INCLUDE_SELF_MANAGED_CALLS";
-    field public static final java.lang.String METADATA_IN_CALL_SERVICE_CAR_MODE_UI = "android.telecom.IN_CALL_SERVICE_CAR_MODE_UI";
-    field public static final java.lang.String METADATA_IN_CALL_SERVICE_RINGING = "android.telecom.IN_CALL_SERVICE_RINGING";
-    field public static final java.lang.String METADATA_IN_CALL_SERVICE_UI = "android.telecom.IN_CALL_SERVICE_UI";
+    field public static final String EXTRA_CALL_BACK_NUMBER = "android.telecom.extra.CALL_BACK_NUMBER";
+    field public static final String EXTRA_CALL_DISCONNECT_CAUSE = "android.telecom.extra.CALL_DISCONNECT_CAUSE";
+    field public static final String EXTRA_CALL_DISCONNECT_MESSAGE = "android.telecom.extra.CALL_DISCONNECT_MESSAGE";
+    field public static final String EXTRA_CALL_NETWORK_TYPE = "android.telecom.extra.CALL_NETWORK_TYPE";
+    field public static final String EXTRA_CALL_SUBJECT = "android.telecom.extra.CALL_SUBJECT";
+    field public static final String EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME = "android.telecom.extra.CHANGE_DEFAULT_DIALER_PACKAGE_NAME";
+    field public static final String EXTRA_DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME = "android.telecom.extra.DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME";
+    field public static final String EXTRA_INCOMING_CALL_ADDRESS = "android.telecom.extra.INCOMING_CALL_ADDRESS";
+    field public static final String EXTRA_INCOMING_CALL_EXTRAS = "android.telecom.extra.INCOMING_CALL_EXTRAS";
+    field public static final String EXTRA_INCOMING_VIDEO_STATE = "android.telecom.extra.INCOMING_VIDEO_STATE";
+    field public static final String EXTRA_IS_DEFAULT_CALL_SCREENING_APP = "android.telecom.extra.IS_DEFAULT_CALL_SCREENING_APP";
+    field public static final String EXTRA_IS_ENABLED = "android.telecom.extra.IS_ENABLED";
+    field public static final String EXTRA_NOTIFICATION_COUNT = "android.telecom.extra.NOTIFICATION_COUNT";
+    field public static final String EXTRA_NOTIFICATION_PHONE_NUMBER = "android.telecom.extra.NOTIFICATION_PHONE_NUMBER";
+    field public static final String EXTRA_OUTGOING_CALL_EXTRAS = "android.telecom.extra.OUTGOING_CALL_EXTRAS";
+    field public static final String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telecom.extra.PHONE_ACCOUNT_HANDLE";
+    field public static final String EXTRA_START_CALL_WITH_RTT = "android.telecom.extra.START_CALL_WITH_RTT";
+    field public static final String EXTRA_START_CALL_WITH_SPEAKERPHONE = "android.telecom.extra.START_CALL_WITH_SPEAKERPHONE";
+    field public static final String EXTRA_START_CALL_WITH_VIDEO_STATE = "android.telecom.extra.START_CALL_WITH_VIDEO_STATE";
+    field public static final String GATEWAY_ORIGINAL_ADDRESS = "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS";
+    field public static final String GATEWAY_PROVIDER_PACKAGE = "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE";
+    field public static final String METADATA_INCLUDE_EXTERNAL_CALLS = "android.telecom.INCLUDE_EXTERNAL_CALLS";
+    field public static final String METADATA_INCLUDE_SELF_MANAGED_CALLS = "android.telecom.INCLUDE_SELF_MANAGED_CALLS";
+    field public static final String METADATA_IN_CALL_SERVICE_CAR_MODE_UI = "android.telecom.IN_CALL_SERVICE_CAR_MODE_UI";
+    field public static final String METADATA_IN_CALL_SERVICE_RINGING = "android.telecom.IN_CALL_SERVICE_RINGING";
+    field public static final String METADATA_IN_CALL_SERVICE_UI = "android.telecom.IN_CALL_SERVICE_UI";
     field public static final int PRESENTATION_ALLOWED = 1; // 0x1
     field public static final int PRESENTATION_PAYPHONE = 4; // 0x4
     field public static final int PRESENTATION_RESTRICTED = 2; // 0x2
@@ -43793,7 +43689,7 @@
     method public static boolean isReceptionEnabled(int);
     method public static boolean isTransmissionEnabled(int);
     method public static boolean isVideo(int);
-    method public static java.lang.String videoStateToString(int);
+    method public static String videoStateToString(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telecom.VideoProfile> CREATOR;
     field public static final int QUALITY_DEFAULT = 4; // 0x4
@@ -43940,182 +43836,182 @@
   }
 
   public class CarrierConfigManager {
-    method public android.os.PersistableBundle getConfig();
-    method public android.os.PersistableBundle getConfigForSubId(int);
+    method @Nullable public android.os.PersistableBundle getConfig();
+    method @Nullable public android.os.PersistableBundle getConfigForSubId(int);
     method public static boolean isConfigForIdentifiedCarrier(android.os.PersistableBundle);
     method public void notifyConfigChangedForSubId(int);
-    field public static final java.lang.String ACTION_CARRIER_CONFIG_CHANGED = "android.telephony.action.CARRIER_CONFIG_CHANGED";
+    field public static final String ACTION_CARRIER_CONFIG_CHANGED = "android.telephony.action.CARRIER_CONFIG_CHANGED";
     field public static final int DATA_CYCLE_THRESHOLD_DISABLED = -2; // 0xfffffffe
-    field public static final java.lang.String EXTRA_SLOT_INDEX = "android.telephony.extra.SLOT_INDEX";
-    field public static final java.lang.String EXTRA_SUBSCRIPTION_INDEX = "android.telephony.extra.SUBSCRIPTION_INDEX";
-    field public static final java.lang.String KEY_ADDITIONAL_CALL_SETTING_BOOL = "additional_call_setting_bool";
-    field public static final java.lang.String KEY_ALLOW_ADDING_APNS_BOOL = "allow_adding_apns_bool";
-    field public static final java.lang.String KEY_ALLOW_ADD_CALL_DURING_VIDEO_CALL_BOOL = "allow_add_call_during_video_call";
-    field public static final java.lang.String KEY_ALLOW_EMERGENCY_NUMBERS_IN_CALL_LOG_BOOL = "allow_emergency_numbers_in_call_log_bool";
-    field public static final java.lang.String KEY_ALLOW_EMERGENCY_VIDEO_CALLS_BOOL = "allow_emergency_video_calls_bool";
-    field public static final java.lang.String KEY_ALLOW_LOCAL_DTMF_TONES_BOOL = "allow_local_dtmf_tones_bool";
-    field public static final java.lang.String KEY_ALLOW_MERGE_WIFI_CALLS_WHEN_VOWIFI_OFF_BOOL = "allow_merge_wifi_calls_when_vowifi_off_bool";
-    field public static final java.lang.String KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL = "allow_non_emergency_calls_in_ecm_bool";
-    field public static final java.lang.String KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL = "always_show_emergency_alert_onoff_bool";
-    field public static final java.lang.String KEY_APN_EXPAND_BOOL = "apn_expand_bool";
-    field public static final java.lang.String KEY_AUTO_RETRY_ENABLED_BOOL = "auto_retry_enabled_bool";
-    field public static final java.lang.String KEY_CALL_BARRING_SUPPORTS_DEACTIVATE_ALL_BOOL = "call_barring_supports_deactivate_all_bool";
-    field public static final java.lang.String KEY_CALL_BARRING_SUPPORTS_PASSWORD_CHANGE_BOOL = "call_barring_supports_password_change_bool";
-    field public static final java.lang.String KEY_CALL_BARRING_VISIBILITY_BOOL = "call_barring_visibility_bool";
-    field public static final java.lang.String KEY_CALL_FORWARDING_BLOCKS_WHILE_ROAMING_STRING_ARRAY = "call_forwarding_blocks_while_roaming_string_array";
-    field public static final java.lang.String KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL = "carrier_allow_turnoff_ims_bool";
-    field public static final java.lang.String KEY_CARRIER_CALL_SCREENING_APP_STRING = "call_screening_app";
-    field public static final java.lang.String KEY_CARRIER_CONFIG_VERSION_STRING = "carrier_config_version_string";
-    field public static final java.lang.String KEY_CARRIER_DATA_CALL_PERMANENT_FAILURE_STRINGS = "carrier_data_call_permanent_failure_strings";
-    field public static final java.lang.String KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT = "carrier_default_wfc_ims_mode_int";
-    field public static final java.lang.String KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT = "carrier_default_wfc_ims_roaming_mode_int";
-    field public static final java.lang.String KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL = "carrier_force_disable_etws_cmas_test_bool";
-    field public static final java.lang.String KEY_CARRIER_IMS_GBA_REQUIRED_BOOL = "carrier_ims_gba_required_bool";
-    field public static final java.lang.String KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL = "carrier_instant_lettering_available_bool";
-    field public static final java.lang.String KEY_CARRIER_INSTANT_LETTERING_ENCODING_STRING = "carrier_instant_lettering_encoding_string";
-    field public static final java.lang.String KEY_CARRIER_INSTANT_LETTERING_ESCAPED_CHARS_STRING = "carrier_instant_lettering_escaped_chars_string";
-    field public static final java.lang.String KEY_CARRIER_INSTANT_LETTERING_INVALID_CHARS_STRING = "carrier_instant_lettering_invalid_chars_string";
-    field public static final java.lang.String KEY_CARRIER_INSTANT_LETTERING_LENGTH_LIMIT_INT = "carrier_instant_lettering_length_limit_int";
-    field public static final java.lang.String KEY_CARRIER_NAME_OVERRIDE_BOOL = "carrier_name_override_bool";
-    field public static final java.lang.String KEY_CARRIER_NAME_STRING = "carrier_name_string";
-    field public static final java.lang.String KEY_CARRIER_SETTINGS_ENABLE_BOOL = "carrier_settings_enable_bool";
-    field public static final java.lang.String KEY_CARRIER_USE_IMS_FIRST_FOR_EMERGENCY_BOOL = "carrier_use_ims_first_for_emergency_bool";
-    field public static final java.lang.String KEY_CARRIER_VOLTE_AVAILABLE_BOOL = "carrier_volte_available_bool";
-    field public static final java.lang.String KEY_CARRIER_VOLTE_PROVISIONED_BOOL = "carrier_volte_provisioned_bool";
-    field public static final java.lang.String KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL = "carrier_volte_provisioning_required_bool";
-    field public static final java.lang.String KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL = "carrier_volte_tty_supported_bool";
-    field public static final java.lang.String KEY_CARRIER_VT_AVAILABLE_BOOL = "carrier_vt_available_bool";
-    field public static final deprecated java.lang.String KEY_CARRIER_VVM_PACKAGE_NAME_STRING = "carrier_vvm_package_name_string";
-    field public static final java.lang.String KEY_CARRIER_VVM_PACKAGE_NAME_STRING_ARRAY = "carrier_vvm_package_name_string_array";
-    field public static final java.lang.String KEY_CARRIER_WFC_IMS_AVAILABLE_BOOL = "carrier_wfc_ims_available_bool";
-    field public static final java.lang.String KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL = "carrier_wfc_supports_wifi_only_bool";
-    field public static final java.lang.String KEY_CDMA_3WAYCALL_FLASH_DELAY_INT = "cdma_3waycall_flash_delay_int";
-    field public static final java.lang.String KEY_CDMA_DTMF_TONE_DELAY_INT = "cdma_dtmf_tone_delay_int";
-    field public static final java.lang.String KEY_CDMA_NONROAMING_NETWORKS_STRING_ARRAY = "cdma_nonroaming_networks_string_array";
-    field public static final java.lang.String KEY_CDMA_ROAMING_MODE_INT = "cdma_roaming_mode_int";
-    field public static final java.lang.String KEY_CDMA_ROAMING_NETWORKS_STRING_ARRAY = "cdma_roaming_networks_string_array";
-    field public static final java.lang.String KEY_CI_ACTION_ON_SYS_UPDATE_BOOL = "ci_action_on_sys_update_bool";
-    field public static final java.lang.String KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING = "ci_action_on_sys_update_extra_string";
-    field public static final java.lang.String KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING = "ci_action_on_sys_update_extra_val_string";
-    field public static final java.lang.String KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING = "ci_action_on_sys_update_intent_string";
-    field public static final java.lang.String KEY_CONFIG_IMS_PACKAGE_OVERRIDE_STRING = "config_ims_package_override_string";
-    field public static final java.lang.String KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING = "config_plans_package_override_string";
-    field public static final java.lang.String KEY_CONFIG_TELEPHONY_USE_OWN_NUMBER_FOR_VOICEMAIL_BOOL = "config_telephony_use_own_number_for_voicemail_bool";
-    field public static final java.lang.String KEY_CSP_ENABLED_BOOL = "csp_enabled_bool";
-    field public static final java.lang.String KEY_DATA_LIMIT_THRESHOLD_BYTES_LONG = "data_limit_threshold_bytes_long";
-    field public static final java.lang.String KEY_DATA_WARNING_THRESHOLD_BYTES_LONG = "data_warning_threshold_bytes_long";
-    field public static final java.lang.String KEY_DEFAULT_SIM_CALL_MANAGER_STRING = "default_sim_call_manager_string";
-    field public static final java.lang.String KEY_DEFAULT_VM_NUMBER_STRING = "default_vm_number_string";
-    field public static final java.lang.String KEY_DIAL_STRING_REPLACE_STRING_ARRAY = "dial_string_replace_string_array";
-    field public static final java.lang.String KEY_DISABLE_CDMA_ACTIVATION_CODE_BOOL = "disable_cdma_activation_code_bool";
-    field public static final java.lang.String KEY_DISPLAY_HD_AUDIO_PROPERTY_BOOL = "display_hd_audio_property_bool";
-    field public static final java.lang.String KEY_DROP_VIDEO_CALL_WHEN_ANSWERING_AUDIO_CALL_BOOL = "drop_video_call_when_answering_audio_call_bool";
-    field public static final java.lang.String KEY_DTMF_TYPE_ENABLED_BOOL = "dtmf_type_enabled_bool";
-    field public static final java.lang.String KEY_DURATION_BLOCKING_DISABLED_AFTER_EMERGENCY_INT = "duration_blocking_disabled_after_emergency_int";
-    field public static final java.lang.String KEY_EDITABLE_ENHANCED_4G_LTE_BOOL = "editable_enhanced_4g_lte_bool";
-    field public static final java.lang.String KEY_EDITABLE_VOICEMAIL_NUMBER_BOOL = "editable_voicemail_number_bool";
-    field public static final java.lang.String KEY_EDITABLE_VOICEMAIL_NUMBER_SETTING_BOOL = "editable_voicemail_number_setting_bool";
-    field public static final java.lang.String KEY_ENABLE_DIALER_KEY_VIBRATION_BOOL = "enable_dialer_key_vibration_bool";
-    field public static final java.lang.String KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL = "enhanced_4g_lte_on_by_default_bool";
-    field public static final java.lang.String KEY_FORCE_HOME_NETWORK_BOOL = "force_home_network_bool";
-    field public static final java.lang.String KEY_GSM_DTMF_TONE_DELAY_INT = "gsm_dtmf_tone_delay_int";
-    field public static final java.lang.String KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY = "gsm_nonroaming_networks_string_array";
-    field public static final java.lang.String KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY = "gsm_roaming_networks_string_array";
-    field public static final java.lang.String KEY_HAS_IN_CALL_NOISE_SUPPRESSION_BOOL = "has_in_call_noise_suppression_bool";
-    field public static final java.lang.String KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL = "hide_carrier_network_settings_bool";
-    field public static final java.lang.String KEY_HIDE_ENHANCED_4G_LTE_BOOL = "hide_enhanced_4g_lte_bool";
-    field public static final java.lang.String KEY_HIDE_IMS_APN_BOOL = "hide_ims_apn_bool";
-    field public static final java.lang.String KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL = "hide_preferred_network_type_bool";
-    field public static final java.lang.String KEY_HIDE_PRESET_APN_DETAILS_BOOL = "hide_preset_apn_details_bool";
-    field public static final java.lang.String KEY_HIDE_SIM_LOCK_SETTINGS_BOOL = "hide_sim_lock_settings_bool";
-    field public static final java.lang.String KEY_IGNORE_SIM_NETWORK_LOCKED_EVENTS_BOOL = "ignore_sim_network_locked_events_bool";
-    field public static final java.lang.String KEY_IMS_CONFERENCE_SIZE_LIMIT_INT = "ims_conference_size_limit_int";
-    field public static final java.lang.String KEY_IMS_DTMF_TONE_DELAY_INT = "ims_dtmf_tone_delay_int";
-    field public static final java.lang.String KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL = "is_ims_conference_size_enforced_bool";
-    field public static final java.lang.String KEY_MDN_IS_ADDITIONAL_VOICEMAIL_NUMBER_BOOL = "mdn_is_additional_voicemail_number_bool";
-    field public static final java.lang.String KEY_MMS_ALIAS_ENABLED_BOOL = "aliasEnabled";
-    field public static final java.lang.String KEY_MMS_ALIAS_MAX_CHARS_INT = "aliasMaxChars";
-    field public static final java.lang.String KEY_MMS_ALIAS_MIN_CHARS_INT = "aliasMinChars";
-    field public static final java.lang.String KEY_MMS_ALLOW_ATTACH_AUDIO_BOOL = "allowAttachAudio";
-    field public static final java.lang.String KEY_MMS_APPEND_TRANSACTION_ID_BOOL = "enabledTransID";
-    field public static final java.lang.String KEY_MMS_EMAIL_GATEWAY_NUMBER_STRING = "emailGatewayNumber";
-    field public static final java.lang.String KEY_MMS_GROUP_MMS_ENABLED_BOOL = "enableGroupMms";
-    field public static final java.lang.String KEY_MMS_HTTP_PARAMS_STRING = "httpParams";
-    field public static final java.lang.String KEY_MMS_HTTP_SOCKET_TIMEOUT_INT = "httpSocketTimeout";
-    field public static final java.lang.String KEY_MMS_MAX_IMAGE_HEIGHT_INT = "maxImageHeight";
-    field public static final java.lang.String KEY_MMS_MAX_IMAGE_WIDTH_INT = "maxImageWidth";
-    field public static final java.lang.String KEY_MMS_MAX_MESSAGE_SIZE_INT = "maxMessageSize";
-    field public static final java.lang.String KEY_MMS_MESSAGE_TEXT_MAX_SIZE_INT = "maxMessageTextSize";
-    field public static final java.lang.String KEY_MMS_MMS_DELIVERY_REPORT_ENABLED_BOOL = "enableMMSDeliveryReports";
-    field public static final java.lang.String KEY_MMS_MMS_ENABLED_BOOL = "enabledMMS";
-    field public static final java.lang.String KEY_MMS_MMS_READ_REPORT_ENABLED_BOOL = "enableMMSReadReports";
-    field public static final java.lang.String KEY_MMS_MULTIPART_SMS_ENABLED_BOOL = "enableMultipartSMS";
-    field public static final java.lang.String KEY_MMS_NAI_SUFFIX_STRING = "naiSuffix";
-    field public static final java.lang.String KEY_MMS_NOTIFY_WAP_MMSC_ENABLED_BOOL = "enabledNotifyWapMMSC";
-    field public static final java.lang.String KEY_MMS_RECIPIENT_LIMIT_INT = "recipientLimit";
-    field public static final java.lang.String KEY_MMS_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES_BOOL = "sendMultipartSmsAsSeparateMessages";
-    field public static final java.lang.String KEY_MMS_SHOW_CELL_BROADCAST_APP_LINKS_BOOL = "config_cellBroadcastAppLinks";
-    field public static final java.lang.String KEY_MMS_SMS_DELIVERY_REPORT_ENABLED_BOOL = "enableSMSDeliveryReports";
-    field public static final java.lang.String KEY_MMS_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD_INT = "smsToMmsTextLengthThreshold";
-    field public static final java.lang.String KEY_MMS_SMS_TO_MMS_TEXT_THRESHOLD_INT = "smsToMmsTextThreshold";
-    field public static final java.lang.String KEY_MMS_SUBJECT_MAX_LENGTH_INT = "maxSubjectLength";
-    field public static final java.lang.String KEY_MMS_SUPPORT_HTTP_CHARSET_HEADER_BOOL = "supportHttpCharsetHeader";
-    field public static final java.lang.String KEY_MMS_SUPPORT_MMS_CONTENT_DISPOSITION_BOOL = "supportMmsContentDisposition";
-    field public static final java.lang.String KEY_MMS_UA_PROF_TAG_NAME_STRING = "uaProfTagName";
-    field public static final java.lang.String KEY_MMS_UA_PROF_URL_STRING = "uaProfUrl";
-    field public static final java.lang.String KEY_MMS_USER_AGENT_STRING = "userAgent";
-    field public static final java.lang.String KEY_MONTHLY_DATA_CYCLE_DAY_INT = "monthly_data_cycle_day_int";
-    field public static final java.lang.String KEY_ONLY_SINGLE_DC_ALLOWED_INT_ARRAY = "only_single_dc_allowed_int_array";
-    field public static final java.lang.String KEY_OPERATOR_SELECTION_EXPAND_BOOL = "operator_selection_expand_bool";
-    field public static final java.lang.String KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_RSRP_INT = "opportunistic_network_entry_threshold_rsrp_int";
-    field public static final java.lang.String KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_RSSNR_INT = "opportunistic_network_entry_threshold_rssnr_int";
-    field public static final java.lang.String KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSRP_INT = "opportunistic_network_exit_threshold_rsrp_int";
-    field public static final java.lang.String KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSSNR_INT = "opportunistic_network_exit_threshold_rssnr_int";
-    field public static final java.lang.String KEY_PREFER_2G_BOOL = "prefer_2g_bool";
-    field public static final java.lang.String KEY_RADIO_RESTART_FAILURE_CAUSES_INT_ARRAY = "radio_restart_failure_causes_int_array";
-    field public static final java.lang.String KEY_RCS_CONFIG_SERVER_URL_STRING = "rcs_config_server_url_string";
-    field public static final java.lang.String KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL = "require_entitlement_checks_bool";
-    field public static final deprecated java.lang.String KEY_RESTART_RADIO_ON_PDP_FAIL_REGULAR_DEACTIVATION_BOOL = "restart_radio_on_pdp_fail_regular_deactivation_bool";
-    field public static final java.lang.String KEY_RTT_SUPPORTED_BOOL = "rtt_supported_bool";
-    field public static final java.lang.String KEY_SHOW_APN_SETTING_CDMA_BOOL = "show_apn_setting_cdma_bool";
-    field public static final java.lang.String KEY_SHOW_CALL_BLOCKING_DISABLED_NOTIFICATION_ALWAYS_BOOL = "show_call_blocking_disabled_notification_always_bool";
-    field public static final java.lang.String KEY_SHOW_CDMA_CHOICES_BOOL = "show_cdma_choices_bool";
-    field public static final java.lang.String KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL = "show_iccid_in_sim_status_bool";
-    field public static final java.lang.String KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL = "show_onscreen_dial_button_bool";
-    field public static final java.lang.String KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL = "show_signal_strength_in_sim_status_bool";
-    field public static final java.lang.String KEY_SIMPLIFIED_NETWORK_SETTINGS_BOOL = "simplified_network_settings_bool";
-    field public static final java.lang.String KEY_SIM_NETWORK_UNLOCK_ALLOW_DISMISS_BOOL = "sim_network_unlock_allow_dismiss_bool";
-    field public static final java.lang.String KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL = "sms_requires_destination_number_conversion_bool";
-    field public static final java.lang.String KEY_SUPPORT_3GPP_CALL_FORWARDING_WHILE_ROAMING_BOOL = "support_3gpp_call_forwarding_while_roaming_bool";
-    field public static final java.lang.String KEY_SUPPORT_CLIR_NETWORK_DEFAULT_BOOL = "support_clir_network_default_bool";
-    field public static final java.lang.String KEY_SUPPORT_CONFERENCE_CALL_BOOL = "support_conference_call_bool";
-    field public static final java.lang.String KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL = "support_emergency_sms_over_ims_bool";
-    field public static final java.lang.String KEY_SUPPORT_PAUSE_IMS_VIDEO_CALLS_BOOL = "support_pause_ims_video_calls_bool";
-    field public static final java.lang.String KEY_SUPPORT_SWAP_AFTER_MERGE_BOOL = "support_swap_after_merge_bool";
-    field public static final java.lang.String KEY_TREAT_DOWNGRADED_VIDEO_CALLS_AS_VIDEO_CALLS_BOOL = "treat_downgraded_video_calls_as_video_calls_bool";
-    field public static final java.lang.String KEY_USE_HFA_FOR_PROVISIONING_BOOL = "use_hfa_for_provisioning_bool";
-    field public static final java.lang.String KEY_USE_OTASP_FOR_PROVISIONING_BOOL = "use_otasp_for_provisioning_bool";
-    field public static final java.lang.String KEY_USE_RCS_PRESENCE_BOOL = "use_rcs_presence_bool";
-    field public static final java.lang.String KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL = "voicemail_notification_persistent_bool";
-    field public static final java.lang.String KEY_VOICE_PRIVACY_DISABLE_UI_BOOL = "voice_privacy_disable_ui_bool";
-    field public static final java.lang.String KEY_VOLTE_REPLACEMENT_RAT_INT = "volte_replacement_rat_int";
-    field public static final java.lang.String KEY_VVM_CELLULAR_DATA_REQUIRED_BOOL = "vvm_cellular_data_required_bool";
-    field public static final java.lang.String KEY_VVM_CLIENT_PREFIX_STRING = "vvm_client_prefix_string";
-    field public static final java.lang.String KEY_VVM_DESTINATION_NUMBER_STRING = "vvm_destination_number_string";
-    field public static final java.lang.String KEY_VVM_DISABLED_CAPABILITIES_STRING_ARRAY = "vvm_disabled_capabilities_string_array";
-    field public static final java.lang.String KEY_VVM_LEGACY_MODE_ENABLED_BOOL = "vvm_legacy_mode_enabled_bool";
-    field public static final java.lang.String KEY_VVM_PORT_NUMBER_INT = "vvm_port_number_int";
-    field public static final java.lang.String KEY_VVM_PREFETCH_BOOL = "vvm_prefetch_bool";
-    field public static final java.lang.String KEY_VVM_SSL_ENABLED_BOOL = "vvm_ssl_enabled_bool";
-    field public static final java.lang.String KEY_VVM_TYPE_STRING = "vvm_type_string";
-    field public static final java.lang.String KEY_WORLD_PHONE_BOOL = "world_phone_bool";
+    field public static final String EXTRA_SLOT_INDEX = "android.telephony.extra.SLOT_INDEX";
+    field public static final String EXTRA_SUBSCRIPTION_INDEX = "android.telephony.extra.SUBSCRIPTION_INDEX";
+    field public static final String KEY_ADDITIONAL_CALL_SETTING_BOOL = "additional_call_setting_bool";
+    field public static final String KEY_ALLOW_ADDING_APNS_BOOL = "allow_adding_apns_bool";
+    field public static final String KEY_ALLOW_ADD_CALL_DURING_VIDEO_CALL_BOOL = "allow_add_call_during_video_call";
+    field public static final String KEY_ALLOW_EMERGENCY_NUMBERS_IN_CALL_LOG_BOOL = "allow_emergency_numbers_in_call_log_bool";
+    field public static final String KEY_ALLOW_EMERGENCY_VIDEO_CALLS_BOOL = "allow_emergency_video_calls_bool";
+    field public static final String KEY_ALLOW_LOCAL_DTMF_TONES_BOOL = "allow_local_dtmf_tones_bool";
+    field public static final String KEY_ALLOW_MERGE_WIFI_CALLS_WHEN_VOWIFI_OFF_BOOL = "allow_merge_wifi_calls_when_vowifi_off_bool";
+    field public static final String KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL = "allow_non_emergency_calls_in_ecm_bool";
+    field public static final String KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL = "always_show_emergency_alert_onoff_bool";
+    field public static final String KEY_APN_EXPAND_BOOL = "apn_expand_bool";
+    field public static final String KEY_AUTO_RETRY_ENABLED_BOOL = "auto_retry_enabled_bool";
+    field public static final String KEY_CALL_BARRING_SUPPORTS_DEACTIVATE_ALL_BOOL = "call_barring_supports_deactivate_all_bool";
+    field public static final String KEY_CALL_BARRING_SUPPORTS_PASSWORD_CHANGE_BOOL = "call_barring_supports_password_change_bool";
+    field public static final String KEY_CALL_BARRING_VISIBILITY_BOOL = "call_barring_visibility_bool";
+    field public static final String KEY_CALL_FORWARDING_BLOCKS_WHILE_ROAMING_STRING_ARRAY = "call_forwarding_blocks_while_roaming_string_array";
+    field public static final String KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL = "carrier_allow_turnoff_ims_bool";
+    field public static final String KEY_CARRIER_CALL_SCREENING_APP_STRING = "call_screening_app";
+    field public static final String KEY_CARRIER_CONFIG_VERSION_STRING = "carrier_config_version_string";
+    field public static final String KEY_CARRIER_DATA_CALL_PERMANENT_FAILURE_STRINGS = "carrier_data_call_permanent_failure_strings";
+    field public static final String KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT = "carrier_default_wfc_ims_mode_int";
+    field public static final String KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT = "carrier_default_wfc_ims_roaming_mode_int";
+    field public static final String KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL = "carrier_force_disable_etws_cmas_test_bool";
+    field public static final String KEY_CARRIER_IMS_GBA_REQUIRED_BOOL = "carrier_ims_gba_required_bool";
+    field public static final String KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL = "carrier_instant_lettering_available_bool";
+    field public static final String KEY_CARRIER_INSTANT_LETTERING_ENCODING_STRING = "carrier_instant_lettering_encoding_string";
+    field public static final String KEY_CARRIER_INSTANT_LETTERING_ESCAPED_CHARS_STRING = "carrier_instant_lettering_escaped_chars_string";
+    field public static final String KEY_CARRIER_INSTANT_LETTERING_INVALID_CHARS_STRING = "carrier_instant_lettering_invalid_chars_string";
+    field public static final String KEY_CARRIER_INSTANT_LETTERING_LENGTH_LIMIT_INT = "carrier_instant_lettering_length_limit_int";
+    field public static final String KEY_CARRIER_NAME_OVERRIDE_BOOL = "carrier_name_override_bool";
+    field public static final String KEY_CARRIER_NAME_STRING = "carrier_name_string";
+    field public static final String KEY_CARRIER_SETTINGS_ENABLE_BOOL = "carrier_settings_enable_bool";
+    field public static final String KEY_CARRIER_USE_IMS_FIRST_FOR_EMERGENCY_BOOL = "carrier_use_ims_first_for_emergency_bool";
+    field public static final String KEY_CARRIER_VOLTE_AVAILABLE_BOOL = "carrier_volte_available_bool";
+    field public static final String KEY_CARRIER_VOLTE_PROVISIONED_BOOL = "carrier_volte_provisioned_bool";
+    field public static final String KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL = "carrier_volte_provisioning_required_bool";
+    field public static final String KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL = "carrier_volte_tty_supported_bool";
+    field public static final String KEY_CARRIER_VT_AVAILABLE_BOOL = "carrier_vt_available_bool";
+    field @Deprecated public static final String KEY_CARRIER_VVM_PACKAGE_NAME_STRING = "carrier_vvm_package_name_string";
+    field public static final String KEY_CARRIER_VVM_PACKAGE_NAME_STRING_ARRAY = "carrier_vvm_package_name_string_array";
+    field public static final String KEY_CARRIER_WFC_IMS_AVAILABLE_BOOL = "carrier_wfc_ims_available_bool";
+    field public static final String KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL = "carrier_wfc_supports_wifi_only_bool";
+    field public static final String KEY_CDMA_3WAYCALL_FLASH_DELAY_INT = "cdma_3waycall_flash_delay_int";
+    field public static final String KEY_CDMA_DTMF_TONE_DELAY_INT = "cdma_dtmf_tone_delay_int";
+    field public static final String KEY_CDMA_NONROAMING_NETWORKS_STRING_ARRAY = "cdma_nonroaming_networks_string_array";
+    field public static final String KEY_CDMA_ROAMING_MODE_INT = "cdma_roaming_mode_int";
+    field public static final String KEY_CDMA_ROAMING_NETWORKS_STRING_ARRAY = "cdma_roaming_networks_string_array";
+    field public static final String KEY_CI_ACTION_ON_SYS_UPDATE_BOOL = "ci_action_on_sys_update_bool";
+    field public static final String KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING = "ci_action_on_sys_update_extra_string";
+    field public static final String KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING = "ci_action_on_sys_update_extra_val_string";
+    field public static final String KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING = "ci_action_on_sys_update_intent_string";
+    field public static final String KEY_CONFIG_IMS_PACKAGE_OVERRIDE_STRING = "config_ims_package_override_string";
+    field public static final String KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING = "config_plans_package_override_string";
+    field public static final String KEY_CONFIG_TELEPHONY_USE_OWN_NUMBER_FOR_VOICEMAIL_BOOL = "config_telephony_use_own_number_for_voicemail_bool";
+    field public static final String KEY_CSP_ENABLED_BOOL = "csp_enabled_bool";
+    field public static final String KEY_DATA_LIMIT_THRESHOLD_BYTES_LONG = "data_limit_threshold_bytes_long";
+    field public static final String KEY_DATA_WARNING_THRESHOLD_BYTES_LONG = "data_warning_threshold_bytes_long";
+    field public static final String KEY_DEFAULT_SIM_CALL_MANAGER_STRING = "default_sim_call_manager_string";
+    field public static final String KEY_DEFAULT_VM_NUMBER_STRING = "default_vm_number_string";
+    field public static final String KEY_DIAL_STRING_REPLACE_STRING_ARRAY = "dial_string_replace_string_array";
+    field public static final String KEY_DISABLE_CDMA_ACTIVATION_CODE_BOOL = "disable_cdma_activation_code_bool";
+    field public static final String KEY_DISPLAY_HD_AUDIO_PROPERTY_BOOL = "display_hd_audio_property_bool";
+    field public static final String KEY_DROP_VIDEO_CALL_WHEN_ANSWERING_AUDIO_CALL_BOOL = "drop_video_call_when_answering_audio_call_bool";
+    field public static final String KEY_DTMF_TYPE_ENABLED_BOOL = "dtmf_type_enabled_bool";
+    field public static final String KEY_DURATION_BLOCKING_DISABLED_AFTER_EMERGENCY_INT = "duration_blocking_disabled_after_emergency_int";
+    field public static final String KEY_EDITABLE_ENHANCED_4G_LTE_BOOL = "editable_enhanced_4g_lte_bool";
+    field public static final String KEY_EDITABLE_VOICEMAIL_NUMBER_BOOL = "editable_voicemail_number_bool";
+    field public static final String KEY_EDITABLE_VOICEMAIL_NUMBER_SETTING_BOOL = "editable_voicemail_number_setting_bool";
+    field public static final String KEY_ENABLE_DIALER_KEY_VIBRATION_BOOL = "enable_dialer_key_vibration_bool";
+    field public static final String KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL = "enhanced_4g_lte_on_by_default_bool";
+    field public static final String KEY_FORCE_HOME_NETWORK_BOOL = "force_home_network_bool";
+    field public static final String KEY_GSM_DTMF_TONE_DELAY_INT = "gsm_dtmf_tone_delay_int";
+    field public static final String KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY = "gsm_nonroaming_networks_string_array";
+    field public static final String KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY = "gsm_roaming_networks_string_array";
+    field public static final String KEY_HAS_IN_CALL_NOISE_SUPPRESSION_BOOL = "has_in_call_noise_suppression_bool";
+    field public static final String KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL = "hide_carrier_network_settings_bool";
+    field public static final String KEY_HIDE_ENHANCED_4G_LTE_BOOL = "hide_enhanced_4g_lte_bool";
+    field public static final String KEY_HIDE_IMS_APN_BOOL = "hide_ims_apn_bool";
+    field public static final String KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL = "hide_preferred_network_type_bool";
+    field public static final String KEY_HIDE_PRESET_APN_DETAILS_BOOL = "hide_preset_apn_details_bool";
+    field public static final String KEY_HIDE_SIM_LOCK_SETTINGS_BOOL = "hide_sim_lock_settings_bool";
+    field public static final String KEY_IGNORE_SIM_NETWORK_LOCKED_EVENTS_BOOL = "ignore_sim_network_locked_events_bool";
+    field public static final String KEY_IMS_CONFERENCE_SIZE_LIMIT_INT = "ims_conference_size_limit_int";
+    field public static final String KEY_IMS_DTMF_TONE_DELAY_INT = "ims_dtmf_tone_delay_int";
+    field public static final String KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL = "is_ims_conference_size_enforced_bool";
+    field public static final String KEY_MDN_IS_ADDITIONAL_VOICEMAIL_NUMBER_BOOL = "mdn_is_additional_voicemail_number_bool";
+    field public static final String KEY_MMS_ALIAS_ENABLED_BOOL = "aliasEnabled";
+    field public static final String KEY_MMS_ALIAS_MAX_CHARS_INT = "aliasMaxChars";
+    field public static final String KEY_MMS_ALIAS_MIN_CHARS_INT = "aliasMinChars";
+    field public static final String KEY_MMS_ALLOW_ATTACH_AUDIO_BOOL = "allowAttachAudio";
+    field public static final String KEY_MMS_APPEND_TRANSACTION_ID_BOOL = "enabledTransID";
+    field public static final String KEY_MMS_EMAIL_GATEWAY_NUMBER_STRING = "emailGatewayNumber";
+    field public static final String KEY_MMS_GROUP_MMS_ENABLED_BOOL = "enableGroupMms";
+    field public static final String KEY_MMS_HTTP_PARAMS_STRING = "httpParams";
+    field public static final String KEY_MMS_HTTP_SOCKET_TIMEOUT_INT = "httpSocketTimeout";
+    field public static final String KEY_MMS_MAX_IMAGE_HEIGHT_INT = "maxImageHeight";
+    field public static final String KEY_MMS_MAX_IMAGE_WIDTH_INT = "maxImageWidth";
+    field public static final String KEY_MMS_MAX_MESSAGE_SIZE_INT = "maxMessageSize";
+    field public static final String KEY_MMS_MESSAGE_TEXT_MAX_SIZE_INT = "maxMessageTextSize";
+    field public static final String KEY_MMS_MMS_DELIVERY_REPORT_ENABLED_BOOL = "enableMMSDeliveryReports";
+    field public static final String KEY_MMS_MMS_ENABLED_BOOL = "enabledMMS";
+    field public static final String KEY_MMS_MMS_READ_REPORT_ENABLED_BOOL = "enableMMSReadReports";
+    field public static final String KEY_MMS_MULTIPART_SMS_ENABLED_BOOL = "enableMultipartSMS";
+    field public static final String KEY_MMS_NAI_SUFFIX_STRING = "naiSuffix";
+    field public static final String KEY_MMS_NOTIFY_WAP_MMSC_ENABLED_BOOL = "enabledNotifyWapMMSC";
+    field public static final String KEY_MMS_RECIPIENT_LIMIT_INT = "recipientLimit";
+    field public static final String KEY_MMS_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES_BOOL = "sendMultipartSmsAsSeparateMessages";
+    field public static final String KEY_MMS_SHOW_CELL_BROADCAST_APP_LINKS_BOOL = "config_cellBroadcastAppLinks";
+    field public static final String KEY_MMS_SMS_DELIVERY_REPORT_ENABLED_BOOL = "enableSMSDeliveryReports";
+    field public static final String KEY_MMS_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD_INT = "smsToMmsTextLengthThreshold";
+    field public static final String KEY_MMS_SMS_TO_MMS_TEXT_THRESHOLD_INT = "smsToMmsTextThreshold";
+    field public static final String KEY_MMS_SUBJECT_MAX_LENGTH_INT = "maxSubjectLength";
+    field public static final String KEY_MMS_SUPPORT_HTTP_CHARSET_HEADER_BOOL = "supportHttpCharsetHeader";
+    field public static final String KEY_MMS_SUPPORT_MMS_CONTENT_DISPOSITION_BOOL = "supportMmsContentDisposition";
+    field public static final String KEY_MMS_UA_PROF_TAG_NAME_STRING = "uaProfTagName";
+    field public static final String KEY_MMS_UA_PROF_URL_STRING = "uaProfUrl";
+    field public static final String KEY_MMS_USER_AGENT_STRING = "userAgent";
+    field public static final String KEY_MONTHLY_DATA_CYCLE_DAY_INT = "monthly_data_cycle_day_int";
+    field public static final String KEY_ONLY_SINGLE_DC_ALLOWED_INT_ARRAY = "only_single_dc_allowed_int_array";
+    field public static final String KEY_OPERATOR_SELECTION_EXPAND_BOOL = "operator_selection_expand_bool";
+    field public static final String KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_RSRP_INT = "opportunistic_network_entry_threshold_rsrp_int";
+    field public static final String KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_RSSNR_INT = "opportunistic_network_entry_threshold_rssnr_int";
+    field public static final String KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSRP_INT = "opportunistic_network_exit_threshold_rsrp_int";
+    field public static final String KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSSNR_INT = "opportunistic_network_exit_threshold_rssnr_int";
+    field public static final String KEY_PREFER_2G_BOOL = "prefer_2g_bool";
+    field public static final String KEY_RADIO_RESTART_FAILURE_CAUSES_INT_ARRAY = "radio_restart_failure_causes_int_array";
+    field public static final String KEY_RCS_CONFIG_SERVER_URL_STRING = "rcs_config_server_url_string";
+    field public static final String KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL = "require_entitlement_checks_bool";
+    field @Deprecated public static final String KEY_RESTART_RADIO_ON_PDP_FAIL_REGULAR_DEACTIVATION_BOOL = "restart_radio_on_pdp_fail_regular_deactivation_bool";
+    field public static final String KEY_RTT_SUPPORTED_BOOL = "rtt_supported_bool";
+    field public static final String KEY_SHOW_APN_SETTING_CDMA_BOOL = "show_apn_setting_cdma_bool";
+    field public static final String KEY_SHOW_CALL_BLOCKING_DISABLED_NOTIFICATION_ALWAYS_BOOL = "show_call_blocking_disabled_notification_always_bool";
+    field public static final String KEY_SHOW_CDMA_CHOICES_BOOL = "show_cdma_choices_bool";
+    field public static final String KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL = "show_iccid_in_sim_status_bool";
+    field public static final String KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL = "show_onscreen_dial_button_bool";
+    field public static final String KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL = "show_signal_strength_in_sim_status_bool";
+    field public static final String KEY_SIMPLIFIED_NETWORK_SETTINGS_BOOL = "simplified_network_settings_bool";
+    field public static final String KEY_SIM_NETWORK_UNLOCK_ALLOW_DISMISS_BOOL = "sim_network_unlock_allow_dismiss_bool";
+    field public static final String KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL = "sms_requires_destination_number_conversion_bool";
+    field public static final String KEY_SUPPORT_3GPP_CALL_FORWARDING_WHILE_ROAMING_BOOL = "support_3gpp_call_forwarding_while_roaming_bool";
+    field public static final String KEY_SUPPORT_CLIR_NETWORK_DEFAULT_BOOL = "support_clir_network_default_bool";
+    field public static final String KEY_SUPPORT_CONFERENCE_CALL_BOOL = "support_conference_call_bool";
+    field public static final String KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL = "support_emergency_sms_over_ims_bool";
+    field public static final String KEY_SUPPORT_PAUSE_IMS_VIDEO_CALLS_BOOL = "support_pause_ims_video_calls_bool";
+    field public static final String KEY_SUPPORT_SWAP_AFTER_MERGE_BOOL = "support_swap_after_merge_bool";
+    field public static final String KEY_TREAT_DOWNGRADED_VIDEO_CALLS_AS_VIDEO_CALLS_BOOL = "treat_downgraded_video_calls_as_video_calls_bool";
+    field public static final String KEY_USE_HFA_FOR_PROVISIONING_BOOL = "use_hfa_for_provisioning_bool";
+    field public static final String KEY_USE_OTASP_FOR_PROVISIONING_BOOL = "use_otasp_for_provisioning_bool";
+    field public static final String KEY_USE_RCS_PRESENCE_BOOL = "use_rcs_presence_bool";
+    field public static final String KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL = "voicemail_notification_persistent_bool";
+    field public static final String KEY_VOICE_PRIVACY_DISABLE_UI_BOOL = "voice_privacy_disable_ui_bool";
+    field public static final String KEY_VOLTE_REPLACEMENT_RAT_INT = "volte_replacement_rat_int";
+    field public static final String KEY_VVM_CELLULAR_DATA_REQUIRED_BOOL = "vvm_cellular_data_required_bool";
+    field public static final String KEY_VVM_CLIENT_PREFIX_STRING = "vvm_client_prefix_string";
+    field public static final String KEY_VVM_DESTINATION_NUMBER_STRING = "vvm_destination_number_string";
+    field public static final String KEY_VVM_DISABLED_CAPABILITIES_STRING_ARRAY = "vvm_disabled_capabilities_string_array";
+    field public static final String KEY_VVM_LEGACY_MODE_ENABLED_BOOL = "vvm_legacy_mode_enabled_bool";
+    field public static final String KEY_VVM_PORT_NUMBER_INT = "vvm_port_number_int";
+    field public static final String KEY_VVM_PREFETCH_BOOL = "vvm_prefetch_bool";
+    field public static final String KEY_VVM_SSL_ENABLED_BOOL = "vvm_ssl_enabled_bool";
+    field public static final String KEY_VVM_TYPE_STRING = "vvm_type_string";
+    field public static final String KEY_WORLD_PHONE_BOOL = "world_phone_bool";
   }
 
   public abstract class CellIdentity implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.CharSequence getOperatorAlphaLong();
-    method public java.lang.CharSequence getOperatorAlphaShort();
-    method public void writeToParcel(android.os.Parcel, int);
+    method @Nullable public CharSequence getOperatorAlphaLong();
+    method @Nullable public CharSequence getOperatorAlphaShort();
+    method @CallSuper public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.CellIdentity> CREATOR;
   }
 
@@ -44134,12 +44030,12 @@
     method public int getBsic();
     method public int getCid();
     method public int getLac();
-    method public deprecated int getMcc();
-    method public java.lang.String getMccString();
-    method public deprecated int getMnc();
-    method public java.lang.String getMncString();
-    method public java.lang.String getMobileNetworkOperator();
-    method public deprecated int getPsc();
+    method @Deprecated public int getMcc();
+    method public String getMccString();
+    method @Deprecated public int getMnc();
+    method public String getMncString();
+    method @Nullable public String getMobileNetworkOperator();
+    method @Deprecated public int getPsc();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.CellIdentityGsm> CREATOR;
   }
@@ -44148,11 +44044,11 @@
     method public int getBandwidth();
     method public int getCi();
     method public int getEarfcn();
-    method public deprecated int getMcc();
-    method public java.lang.String getMccString();
-    method public deprecated int getMnc();
-    method public java.lang.String getMncString();
-    method public java.lang.String getMobileNetworkOperator();
+    method @Deprecated public int getMcc();
+    method public String getMccString();
+    method @Deprecated public int getMnc();
+    method public String getMncString();
+    method @Nullable public String getMobileNetworkOperator();
     method public int getPci();
     method public int getTac();
     method public void writeToParcel(android.os.Parcel, int);
@@ -44161,8 +44057,8 @@
 
   public final class CellIdentityNr extends android.telephony.CellIdentity {
     method public int getChannelNumber();
-    method public java.lang.String getMccString();
-    method public java.lang.String getMncString();
+    method public String getMccString();
+    method public String getMncString();
     method public int getPci();
     method public int getTac();
     method public void writeToParcel(android.os.Parcel, int);
@@ -44173,9 +44069,9 @@
     method public int getCid();
     method public int getCpid();
     method public int getLac();
-    method public java.lang.String getMccString();
-    method public java.lang.String getMncString();
-    method public java.lang.String getMobileNetworkOperator();
+    method public String getMccString();
+    method public String getMncString();
+    method @Nullable public String getMobileNetworkOperator();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.CellIdentityTdscdma> CREATOR;
   }
@@ -44183,11 +44079,11 @@
   public final class CellIdentityWcdma extends android.telephony.CellIdentity {
     method public int getCid();
     method public int getLac();
-    method public deprecated int getMcc();
-    method public java.lang.String getMccString();
-    method public deprecated int getMnc();
-    method public java.lang.String getMncString();
-    method public java.lang.String getMobileNetworkOperator();
+    method @Deprecated public int getMcc();
+    method public String getMccString();
+    method @Deprecated public int getMnc();
+    method public String getMncString();
+    method @Nullable public String getMobileNetworkOperator();
     method public int getPsc();
     method public int getUarfcn();
     method public void writeToParcel(android.os.Parcel, int);
@@ -44249,7 +44145,7 @@
   }
 
   public abstract class CellSignalStrength {
-    method public abstract boolean equals(java.lang.Object);
+    method public abstract boolean equals(Object);
     method public abstract int getAsuLevel();
     method public abstract int getDbm();
     method public abstract int getLevel();
@@ -44341,26 +44237,26 @@
   }
 
   public class MbmsDownloadSession implements java.lang.AutoCloseable {
-    method public void addProgressListener(android.telephony.mbms.DownloadRequest, java.util.concurrent.Executor, android.telephony.mbms.DownloadProgressListener);
-    method public void addStatusListener(android.telephony.mbms.DownloadRequest, java.util.concurrent.Executor, android.telephony.mbms.DownloadStatusListener);
-    method public void cancelDownload(android.telephony.mbms.DownloadRequest);
+    method public void addProgressListener(@NonNull android.telephony.mbms.DownloadRequest, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.mbms.DownloadProgressListener);
+    method public void addStatusListener(@NonNull android.telephony.mbms.DownloadRequest, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.mbms.DownloadStatusListener);
+    method public void cancelDownload(@NonNull android.telephony.mbms.DownloadRequest);
     method public void close();
-    method public static android.telephony.MbmsDownloadSession create(android.content.Context, java.util.concurrent.Executor, android.telephony.mbms.MbmsDownloadSessionCallback);
-    method public static android.telephony.MbmsDownloadSession create(android.content.Context, java.util.concurrent.Executor, int, android.telephony.mbms.MbmsDownloadSessionCallback);
-    method public void download(android.telephony.mbms.DownloadRequest);
-    method public java.io.File getTempFileRootDirectory();
-    method public java.util.List<android.telephony.mbms.DownloadRequest> listPendingDownloads();
-    method public void removeProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener);
-    method public void removeStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener);
+    method public static android.telephony.MbmsDownloadSession create(@NonNull android.content.Context, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.mbms.MbmsDownloadSessionCallback);
+    method @Nullable public static android.telephony.MbmsDownloadSession create(@NonNull android.content.Context, @NonNull java.util.concurrent.Executor, int, @NonNull android.telephony.mbms.MbmsDownloadSessionCallback);
+    method public void download(@NonNull android.telephony.mbms.DownloadRequest);
+    method @Nullable public java.io.File getTempFileRootDirectory();
+    method @NonNull public java.util.List<android.telephony.mbms.DownloadRequest> listPendingDownloads();
+    method public void removeProgressListener(@NonNull android.telephony.mbms.DownloadRequest, @NonNull android.telephony.mbms.DownloadProgressListener);
+    method public void removeStatusListener(@NonNull android.telephony.mbms.DownloadRequest, @NonNull android.telephony.mbms.DownloadStatusListener);
     method public void requestDownloadState(android.telephony.mbms.DownloadRequest, android.telephony.mbms.FileInfo);
-    method public void requestUpdateFileServices(java.util.List<java.lang.String>);
+    method public void requestUpdateFileServices(@NonNull java.util.List<java.lang.String>);
     method public void resetDownloadKnowledge(android.telephony.mbms.DownloadRequest);
-    method public void setTempFileRootDirectory(java.io.File);
-    field public static final java.lang.String DEFAULT_TOP_LEVEL_TEMP_DIRECTORY = "androidMbmsTempFileRoot";
-    field public static final java.lang.String EXTRA_MBMS_COMPLETED_FILE_URI = "android.telephony.extra.MBMS_COMPLETED_FILE_URI";
-    field public static final java.lang.String EXTRA_MBMS_DOWNLOAD_REQUEST = "android.telephony.extra.MBMS_DOWNLOAD_REQUEST";
-    field public static final java.lang.String EXTRA_MBMS_DOWNLOAD_RESULT = "android.telephony.extra.MBMS_DOWNLOAD_RESULT";
-    field public static final java.lang.String EXTRA_MBMS_FILE_INFO = "android.telephony.extra.MBMS_FILE_INFO";
+    method public void setTempFileRootDirectory(@NonNull java.io.File);
+    field public static final String DEFAULT_TOP_LEVEL_TEMP_DIRECTORY = "androidMbmsTempFileRoot";
+    field public static final String EXTRA_MBMS_COMPLETED_FILE_URI = "android.telephony.extra.MBMS_COMPLETED_FILE_URI";
+    field public static final String EXTRA_MBMS_DOWNLOAD_REQUEST = "android.telephony.extra.MBMS_DOWNLOAD_REQUEST";
+    field public static final String EXTRA_MBMS_DOWNLOAD_RESULT = "android.telephony.extra.MBMS_DOWNLOAD_RESULT";
+    field public static final String EXTRA_MBMS_FILE_INFO = "android.telephony.extra.MBMS_FILE_INFO";
     field public static final int RESULT_CANCELLED = 2; // 0x2
     field public static final int RESULT_DOWNLOAD_FAILURE = 6; // 0x6
     field public static final int RESULT_EXPIRED = 3; // 0x3
@@ -44378,36 +44274,36 @@
 
   public class MbmsGroupCallSession implements java.lang.AutoCloseable {
     method public void close();
-    method public static android.telephony.MbmsGroupCallSession create(android.content.Context, int, java.util.concurrent.Executor, android.telephony.mbms.MbmsGroupCallSessionCallback);
-    method public static android.telephony.MbmsGroupCallSession create(android.content.Context, java.util.concurrent.Executor, android.telephony.mbms.MbmsGroupCallSessionCallback);
-    method public android.telephony.mbms.GroupCall startGroupCall(long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, java.util.concurrent.Executor, android.telephony.mbms.GroupCallCallback);
+    method @Nullable public static android.telephony.MbmsGroupCallSession create(@NonNull android.content.Context, int, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.mbms.MbmsGroupCallSessionCallback);
+    method public static android.telephony.MbmsGroupCallSession create(@NonNull android.content.Context, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.mbms.MbmsGroupCallSessionCallback);
+    method @Nullable public android.telephony.mbms.GroupCall startGroupCall(long, @NonNull java.util.List<java.lang.Integer>, @NonNull java.util.List<java.lang.Integer>, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.mbms.GroupCallCallback);
   }
 
   public class MbmsStreamingSession implements java.lang.AutoCloseable {
     method public void close();
-    method public static android.telephony.MbmsStreamingSession create(android.content.Context, java.util.concurrent.Executor, int, android.telephony.mbms.MbmsStreamingSessionCallback);
-    method public static android.telephony.MbmsStreamingSession create(android.content.Context, java.util.concurrent.Executor, android.telephony.mbms.MbmsStreamingSessionCallback);
+    method @Nullable public static android.telephony.MbmsStreamingSession create(@NonNull android.content.Context, @NonNull java.util.concurrent.Executor, int, @NonNull android.telephony.mbms.MbmsStreamingSessionCallback);
+    method public static android.telephony.MbmsStreamingSession create(@NonNull android.content.Context, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.mbms.MbmsStreamingSessionCallback);
     method public void requestUpdateStreamingServices(java.util.List<java.lang.String>);
-    method public android.telephony.mbms.StreamingService startStreaming(android.telephony.mbms.StreamingServiceInfo, java.util.concurrent.Executor, android.telephony.mbms.StreamingServiceCallback);
+    method @Nullable public android.telephony.mbms.StreamingService startStreaming(android.telephony.mbms.StreamingServiceInfo, @NonNull java.util.concurrent.Executor, android.telephony.mbms.StreamingServiceCallback);
   }
 
-  public deprecated class NeighboringCellInfo implements android.os.Parcelable {
-    ctor public deprecated NeighboringCellInfo();
-    ctor public deprecated NeighboringCellInfo(int, int);
-    ctor public NeighboringCellInfo(int, java.lang.String, int);
-    ctor public NeighboringCellInfo(android.os.Parcel);
-    method public int describeContents();
-    method public int getCid();
-    method public int getLac();
-    method public int getNetworkType();
-    method public int getPsc();
-    method public int getRssi();
-    method public deprecated void setCid(int);
-    method public deprecated void setRssi(int);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.telephony.NeighboringCellInfo> CREATOR;
-    field public static final int UNKNOWN_CID = -1; // 0xffffffff
-    field public static final int UNKNOWN_RSSI = 99; // 0x63
+  @Deprecated public class NeighboringCellInfo implements android.os.Parcelable {
+    ctor @Deprecated public NeighboringCellInfo();
+    ctor @Deprecated public NeighboringCellInfo(int, int);
+    ctor @Deprecated public NeighboringCellInfo(int, String, int);
+    ctor @Deprecated public NeighboringCellInfo(android.os.Parcel);
+    method @Deprecated public int describeContents();
+    method @Deprecated public int getCid();
+    method @Deprecated public int getLac();
+    method @Deprecated public int getNetworkType();
+    method @Deprecated public int getPsc();
+    method @Deprecated public int getRssi();
+    method @Deprecated public void setCid(int);
+    method @Deprecated public void setRssi(int);
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.telephony.NeighboringCellInfo> CREATOR;
+    field @Deprecated public static final int UNKNOWN_CID = -1; // 0xffffffff
+    field @Deprecated public static final int UNKNOWN_RSSI = 99; // 0x63
   }
 
   public class NetworkScan {
@@ -44440,58 +44336,58 @@
 
   public class PhoneNumberFormattingTextWatcher implements android.text.TextWatcher {
     ctor public PhoneNumberFormattingTextWatcher();
-    ctor public PhoneNumberFormattingTextWatcher(java.lang.String);
-    method public synchronized void afterTextChanged(android.text.Editable);
-    method public void beforeTextChanged(java.lang.CharSequence, int, int, int);
-    method public void onTextChanged(java.lang.CharSequence, int, int, int);
+    ctor public PhoneNumberFormattingTextWatcher(String);
+    method public void afterTextChanged(android.text.Editable);
+    method public void beforeTextChanged(CharSequence, int, int, int);
+    method public void onTextChanged(CharSequence, int, int, int);
   }
 
   public class PhoneNumberUtils {
     ctor public PhoneNumberUtils();
     method public static void addTtsSpan(android.text.Spannable, int, int);
-    method public static deprecated java.lang.String calledPartyBCDFragmentToString(byte[], int, int);
-    method public static java.lang.String calledPartyBCDFragmentToString(byte[], int, int, int);
-    method public static deprecated java.lang.String calledPartyBCDToString(byte[], int, int);
-    method public static java.lang.String calledPartyBCDToString(byte[], int, int, int);
-    method public static boolean compare(java.lang.String, java.lang.String);
-    method public static boolean compare(android.content.Context, java.lang.String, java.lang.String);
-    method public static java.lang.String convertKeypadLettersToDigits(java.lang.String);
-    method public static android.text.style.TtsSpan createTtsSpan(java.lang.String);
-    method public static java.lang.CharSequence createTtsSpannable(java.lang.CharSequence);
-    method public static java.lang.String extractNetworkPortion(java.lang.String);
-    method public static java.lang.String extractPostDialPortion(java.lang.String);
-    method public static deprecated void formatJapaneseNumber(android.text.Editable);
-    method public static deprecated void formatNanpNumber(android.text.Editable);
-    method public static deprecated java.lang.String formatNumber(java.lang.String);
-    method public static deprecated void formatNumber(android.text.Editable, int);
-    method public static java.lang.String formatNumber(java.lang.String, java.lang.String);
-    method public static java.lang.String formatNumber(java.lang.String, java.lang.String, java.lang.String);
-    method public static java.lang.String formatNumberToE164(java.lang.String, java.lang.String);
-    method public static java.lang.String formatNumberToRFC3966(java.lang.String, java.lang.String);
-    method public static deprecated int getFormatTypeForLocale(java.util.Locale);
-    method public static java.lang.String getNumberFromIntent(android.content.Intent, android.content.Context);
-    method public static java.lang.String getStrippedReversed(java.lang.String);
+    method @Deprecated public static String calledPartyBCDFragmentToString(byte[], int, int);
+    method public static String calledPartyBCDFragmentToString(byte[], int, int, int);
+    method @Deprecated public static String calledPartyBCDToString(byte[], int, int);
+    method public static String calledPartyBCDToString(byte[], int, int, int);
+    method public static boolean compare(String, String);
+    method public static boolean compare(android.content.Context, String, String);
+    method public static String convertKeypadLettersToDigits(String);
+    method public static android.text.style.TtsSpan createTtsSpan(String);
+    method public static CharSequence createTtsSpannable(CharSequence);
+    method public static String extractNetworkPortion(String);
+    method public static String extractPostDialPortion(String);
+    method @Deprecated public static void formatJapaneseNumber(android.text.Editable);
+    method @Deprecated public static void formatNanpNumber(android.text.Editable);
+    method @Deprecated public static String formatNumber(String);
+    method @Deprecated public static void formatNumber(android.text.Editable, int);
+    method public static String formatNumber(String, String);
+    method public static String formatNumber(String, String, String);
+    method public static String formatNumberToE164(String, String);
+    method public static String formatNumberToRFC3966(String, String);
+    method @Deprecated public static int getFormatTypeForLocale(java.util.Locale);
+    method public static String getNumberFromIntent(android.content.Intent, android.content.Context);
+    method public static String getStrippedReversed(String);
     method public static final boolean is12Key(char);
     method public static final boolean isDialable(char);
-    method public static deprecated boolean isEmergencyNumber(java.lang.String);
-    method public static boolean isGlobalPhoneNumber(java.lang.String);
+    method @Deprecated public static boolean isEmergencyNumber(String);
+    method public static boolean isGlobalPhoneNumber(String);
     method public static boolean isISODigit(char);
-    method public static deprecated boolean isLocalEmergencyNumber(android.content.Context, java.lang.String);
+    method @Deprecated public static boolean isLocalEmergencyNumber(android.content.Context, String);
     method public static final boolean isNonSeparator(char);
     method public static final boolean isReallyDialable(char);
     method public static final boolean isStartsPostDial(char);
-    method public static boolean isVoiceMailNumber(java.lang.String);
-    method public static boolean isWellFormedSmsAddress(java.lang.String);
-    method public static byte[] networkPortionToCalledPartyBCD(java.lang.String);
-    method public static byte[] networkPortionToCalledPartyBCDWithLength(java.lang.String);
-    method public static java.lang.String normalizeNumber(java.lang.String);
-    method public static deprecated byte[] numberToCalledPartyBCD(java.lang.String);
-    method public static byte[] numberToCalledPartyBCD(java.lang.String, int);
-    method public static java.lang.String replaceUnicodeDigits(java.lang.String);
-    method public static java.lang.String stringFromStringAndTOA(java.lang.String, int);
-    method public static java.lang.String stripSeparators(java.lang.String);
-    method public static java.lang.String toCallerIDMinMatch(java.lang.String);
-    method public static int toaFromString(java.lang.String);
+    method public static boolean isVoiceMailNumber(String);
+    method public static boolean isWellFormedSmsAddress(String);
+    method public static byte[] networkPortionToCalledPartyBCD(String);
+    method public static byte[] networkPortionToCalledPartyBCDWithLength(String);
+    method public static String normalizeNumber(String);
+    method @Deprecated public static byte[] numberToCalledPartyBCD(String);
+    method public static byte[] numberToCalledPartyBCD(String, int);
+    method public static String replaceUnicodeDigits(String);
+    method public static String stringFromStringAndTOA(String, int);
+    method public static String stripSeparators(String);
+    method public static String toCallerIDMinMatch(String);
+    method public static int toaFromString(String);
     field public static final int BCD_EXTENDED_TYPE_CALLED_PARTY = 2; // 0x2
     field public static final int BCD_EXTENDED_TYPE_EF_ADN = 1; // 0x1
     field public static final int FORMAT_JAPAN = 2; // 0x2
@@ -44506,9 +44402,9 @@
 
   public class PhoneStateListener {
     ctor public PhoneStateListener();
-    ctor public PhoneStateListener(java.util.concurrent.Executor);
+    ctor public PhoneStateListener(@NonNull java.util.concurrent.Executor);
     method public void onCallForwardingIndicatorChanged(boolean);
-    method public void onCallStateChanged(int, java.lang.String);
+    method public void onCallStateChanged(int, String);
     method public void onCellInfoChanged(java.util.List<android.telephony.CellInfo>);
     method public void onCellLocationChanged(android.telephony.CellLocation);
     method public void onDataActivity(int);
@@ -44516,7 +44412,7 @@
     method public void onDataConnectionStateChanged(int, int);
     method public void onMessageWaitingIndicatorChanged(boolean);
     method public void onServiceStateChanged(android.telephony.ServiceState);
-    method public deprecated void onSignalStrengthChanged(int);
+    method @Deprecated public void onSignalStrengthChanged(int);
     method public void onSignalStrengthsChanged(android.telephony.SignalStrength);
     method public void onUserMobileDataStateChanged(boolean);
     field public static final int LISTEN_CALL_FORWARDING_INDICATOR = 8; // 0x8
@@ -44529,7 +44425,7 @@
     field public static final int LISTEN_MESSAGE_WAITING_INDICATOR = 4; // 0x4
     field public static final int LISTEN_NONE = 0; // 0x0
     field public static final int LISTEN_SERVICE_STATE = 1; // 0x1
-    field public static final deprecated int LISTEN_SIGNAL_STRENGTH = 2; // 0x2
+    field @Deprecated public static final int LISTEN_SIGNAL_STRENGTH = 2; // 0x2
     field public static final int LISTEN_SIGNAL_STRENGTHS = 256; // 0x100
     field public static final int LISTEN_USER_MOBILE_DATA_STATE = 524288; // 0x80000
   }
@@ -44556,13 +44452,13 @@
     method public int getChannelNumber();
     method public int getDuplexMode();
     method public boolean getIsManualSelection();
-    method public java.lang.String getOperatorAlphaLong();
-    method public java.lang.String getOperatorAlphaShort();
-    method public java.lang.String getOperatorNumeric();
+    method public String getOperatorAlphaLong();
+    method public String getOperatorAlphaShort();
+    method public String getOperatorNumeric();
     method public boolean getRoaming();
     method public int getState();
     method public void setIsManualSelection(boolean);
-    method public void setOperatorName(java.lang.String, java.lang.String, java.lang.String);
+    method public void setOperatorName(String, String, String);
     method public void setRoaming(boolean);
     method public void setState(int);
     method public void setStateOff();
@@ -44583,7 +44479,7 @@
     method public int describeContents();
     method public int getCdmaDbm();
     method public int getCdmaEcio();
-    method public java.util.List<android.telephony.CellSignalStrength> getCellSignalStrengths();
+    method @NonNull public java.util.List<android.telephony.CellSignalStrength> getCellSignalStrengths();
     method public int getEvdoDbm();
     method public int getEvdoEcio();
     method public int getEvdoSnr();
@@ -44596,53 +44492,53 @@
   }
 
   public final class SmsManager {
-    method public java.lang.String createAppSpecificSmsToken(android.app.PendingIntent);
-    method public java.util.ArrayList<java.lang.String> divideMessage(java.lang.String);
-    method public void downloadMultimediaMessage(android.content.Context, java.lang.String, android.net.Uri, android.os.Bundle, android.app.PendingIntent);
+    method public String createAppSpecificSmsToken(android.app.PendingIntent);
+    method public java.util.ArrayList<java.lang.String> divideMessage(String);
+    method public void downloadMultimediaMessage(android.content.Context, String, android.net.Uri, android.os.Bundle, android.app.PendingIntent);
     method public android.os.Bundle getCarrierConfigValues();
     method public static android.telephony.SmsManager getDefault();
     method public static int getDefaultSmsSubscriptionId();
     method public static android.telephony.SmsManager getSmsManagerForSubscriptionId(int);
     method public int getSubscriptionId();
-    method public void injectSmsPdu(byte[], java.lang.String, android.app.PendingIntent);
-    method public void sendDataMessage(java.lang.String, java.lang.String, short, byte[], android.app.PendingIntent, android.app.PendingIntent);
-    method public void sendMultimediaMessage(android.content.Context, android.net.Uri, java.lang.String, android.os.Bundle, android.app.PendingIntent);
-    method public void sendMultipartTextMessage(java.lang.String, java.lang.String, java.util.ArrayList<java.lang.String>, java.util.ArrayList<android.app.PendingIntent>, java.util.ArrayList<android.app.PendingIntent>);
-    method public void sendTextMessage(java.lang.String, java.lang.String, java.lang.String, android.app.PendingIntent, android.app.PendingIntent);
-    method public void sendTextMessageWithoutPersisting(java.lang.String, java.lang.String, java.lang.String, android.app.PendingIntent, android.app.PendingIntent);
-    field public static final java.lang.String EXTRA_MMS_DATA = "android.telephony.extra.MMS_DATA";
-    field public static final java.lang.String EXTRA_MMS_HTTP_STATUS = "android.telephony.extra.MMS_HTTP_STATUS";
-    field public static final java.lang.String MMS_CONFIG_ALIAS_ENABLED = "aliasEnabled";
-    field public static final java.lang.String MMS_CONFIG_ALIAS_MAX_CHARS = "aliasMaxChars";
-    field public static final java.lang.String MMS_CONFIG_ALIAS_MIN_CHARS = "aliasMinChars";
-    field public static final java.lang.String MMS_CONFIG_ALLOW_ATTACH_AUDIO = "allowAttachAudio";
-    field public static final java.lang.String MMS_CONFIG_APPEND_TRANSACTION_ID = "enabledTransID";
-    field public static final java.lang.String MMS_CONFIG_EMAIL_GATEWAY_NUMBER = "emailGatewayNumber";
-    field public static final java.lang.String MMS_CONFIG_GROUP_MMS_ENABLED = "enableGroupMms";
-    field public static final java.lang.String MMS_CONFIG_HTTP_PARAMS = "httpParams";
-    field public static final java.lang.String MMS_CONFIG_HTTP_SOCKET_TIMEOUT = "httpSocketTimeout";
-    field public static final java.lang.String MMS_CONFIG_MAX_IMAGE_HEIGHT = "maxImageHeight";
-    field public static final java.lang.String MMS_CONFIG_MAX_IMAGE_WIDTH = "maxImageWidth";
-    field public static final java.lang.String MMS_CONFIG_MAX_MESSAGE_SIZE = "maxMessageSize";
-    field public static final java.lang.String MMS_CONFIG_MESSAGE_TEXT_MAX_SIZE = "maxMessageTextSize";
-    field public static final java.lang.String MMS_CONFIG_MMS_DELIVERY_REPORT_ENABLED = "enableMMSDeliveryReports";
-    field public static final java.lang.String MMS_CONFIG_MMS_ENABLED = "enabledMMS";
-    field public static final java.lang.String MMS_CONFIG_MMS_READ_REPORT_ENABLED = "enableMMSReadReports";
-    field public static final java.lang.String MMS_CONFIG_MULTIPART_SMS_ENABLED = "enableMultipartSMS";
-    field public static final java.lang.String MMS_CONFIG_NAI_SUFFIX = "naiSuffix";
-    field public static final java.lang.String MMS_CONFIG_NOTIFY_WAP_MMSC_ENABLED = "enabledNotifyWapMMSC";
-    field public static final java.lang.String MMS_CONFIG_RECIPIENT_LIMIT = "recipientLimit";
-    field public static final java.lang.String MMS_CONFIG_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES = "sendMultipartSmsAsSeparateMessages";
-    field public static final java.lang.String MMS_CONFIG_SHOW_CELL_BROADCAST_APP_LINKS = "config_cellBroadcastAppLinks";
-    field public static final java.lang.String MMS_CONFIG_SMS_DELIVERY_REPORT_ENABLED = "enableSMSDeliveryReports";
-    field public static final java.lang.String MMS_CONFIG_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD = "smsToMmsTextLengthThreshold";
-    field public static final java.lang.String MMS_CONFIG_SMS_TO_MMS_TEXT_THRESHOLD = "smsToMmsTextThreshold";
-    field public static final java.lang.String MMS_CONFIG_SUBJECT_MAX_LENGTH = "maxSubjectLength";
-    field public static final java.lang.String MMS_CONFIG_SUPPORT_HTTP_CHARSET_HEADER = "supportHttpCharsetHeader";
-    field public static final java.lang.String MMS_CONFIG_SUPPORT_MMS_CONTENT_DISPOSITION = "supportMmsContentDisposition";
-    field public static final java.lang.String MMS_CONFIG_UA_PROF_TAG_NAME = "uaProfTagName";
-    field public static final java.lang.String MMS_CONFIG_UA_PROF_URL = "uaProfUrl";
-    field public static final java.lang.String MMS_CONFIG_USER_AGENT = "userAgent";
+    method public void injectSmsPdu(byte[], String, android.app.PendingIntent);
+    method public void sendDataMessage(String, String, short, byte[], android.app.PendingIntent, android.app.PendingIntent);
+    method public void sendMultimediaMessage(android.content.Context, android.net.Uri, String, android.os.Bundle, android.app.PendingIntent);
+    method public void sendMultipartTextMessage(String, String, java.util.ArrayList<java.lang.String>, java.util.ArrayList<android.app.PendingIntent>, java.util.ArrayList<android.app.PendingIntent>);
+    method public void sendTextMessage(String, String, String, android.app.PendingIntent, android.app.PendingIntent);
+    method @RequiresPermission(allOf={android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.SEND_SMS}) public void sendTextMessageWithoutPersisting(String, String, String, android.app.PendingIntent, android.app.PendingIntent);
+    field public static final String EXTRA_MMS_DATA = "android.telephony.extra.MMS_DATA";
+    field public static final String EXTRA_MMS_HTTP_STATUS = "android.telephony.extra.MMS_HTTP_STATUS";
+    field public static final String MMS_CONFIG_ALIAS_ENABLED = "aliasEnabled";
+    field public static final String MMS_CONFIG_ALIAS_MAX_CHARS = "aliasMaxChars";
+    field public static final String MMS_CONFIG_ALIAS_MIN_CHARS = "aliasMinChars";
+    field public static final String MMS_CONFIG_ALLOW_ATTACH_AUDIO = "allowAttachAudio";
+    field public static final String MMS_CONFIG_APPEND_TRANSACTION_ID = "enabledTransID";
+    field public static final String MMS_CONFIG_EMAIL_GATEWAY_NUMBER = "emailGatewayNumber";
+    field public static final String MMS_CONFIG_GROUP_MMS_ENABLED = "enableGroupMms";
+    field public static final String MMS_CONFIG_HTTP_PARAMS = "httpParams";
+    field public static final String MMS_CONFIG_HTTP_SOCKET_TIMEOUT = "httpSocketTimeout";
+    field public static final String MMS_CONFIG_MAX_IMAGE_HEIGHT = "maxImageHeight";
+    field public static final String MMS_CONFIG_MAX_IMAGE_WIDTH = "maxImageWidth";
+    field public static final String MMS_CONFIG_MAX_MESSAGE_SIZE = "maxMessageSize";
+    field public static final String MMS_CONFIG_MESSAGE_TEXT_MAX_SIZE = "maxMessageTextSize";
+    field public static final String MMS_CONFIG_MMS_DELIVERY_REPORT_ENABLED = "enableMMSDeliveryReports";
+    field public static final String MMS_CONFIG_MMS_ENABLED = "enabledMMS";
+    field public static final String MMS_CONFIG_MMS_READ_REPORT_ENABLED = "enableMMSReadReports";
+    field public static final String MMS_CONFIG_MULTIPART_SMS_ENABLED = "enableMultipartSMS";
+    field public static final String MMS_CONFIG_NAI_SUFFIX = "naiSuffix";
+    field public static final String MMS_CONFIG_NOTIFY_WAP_MMSC_ENABLED = "enabledNotifyWapMMSC";
+    field public static final String MMS_CONFIG_RECIPIENT_LIMIT = "recipientLimit";
+    field public static final String MMS_CONFIG_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES = "sendMultipartSmsAsSeparateMessages";
+    field public static final String MMS_CONFIG_SHOW_CELL_BROADCAST_APP_LINKS = "config_cellBroadcastAppLinks";
+    field public static final String MMS_CONFIG_SMS_DELIVERY_REPORT_ENABLED = "enableSMSDeliveryReports";
+    field public static final String MMS_CONFIG_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD = "smsToMmsTextLengthThreshold";
+    field public static final String MMS_CONFIG_SMS_TO_MMS_TEXT_THRESHOLD = "smsToMmsTextThreshold";
+    field public static final String MMS_CONFIG_SUBJECT_MAX_LENGTH = "maxSubjectLength";
+    field public static final String MMS_CONFIG_SUPPORT_HTTP_CHARSET_HEADER = "supportHttpCharsetHeader";
+    field public static final String MMS_CONFIG_SUPPORT_MMS_CONTENT_DISPOSITION = "supportMmsContentDisposition";
+    field public static final String MMS_CONFIG_UA_PROF_TAG_NAME = "uaProfTagName";
+    field public static final String MMS_CONFIG_UA_PROF_URL = "uaProfUrl";
+    field public static final String MMS_CONFIG_USER_AGENT = "userAgent";
     field public static final int MMS_ERROR_CONFIGURATION_ERROR = 7; // 0x7
     field public static final int MMS_ERROR_HTTP_FAILURE = 4; // 0x4
     field public static final int MMS_ERROR_INVALID_APN = 2; // 0x2
@@ -44666,29 +44562,29 @@
   }
 
   public class SmsMessage {
-    method public static int[] calculateLength(java.lang.CharSequence, boolean);
-    method public static int[] calculateLength(java.lang.String, boolean);
-    method public static deprecated android.telephony.SmsMessage createFromPdu(byte[]);
-    method public static android.telephony.SmsMessage createFromPdu(byte[], java.lang.String);
-    method public java.lang.String getDisplayMessageBody();
-    method public java.lang.String getDisplayOriginatingAddress();
-    method public java.lang.String getEmailBody();
-    method public java.lang.String getEmailFrom();
+    method public static int[] calculateLength(CharSequence, boolean);
+    method public static int[] calculateLength(String, boolean);
+    method @Deprecated public static android.telephony.SmsMessage createFromPdu(byte[]);
+    method public static android.telephony.SmsMessage createFromPdu(byte[], String);
+    method public String getDisplayMessageBody();
+    method public String getDisplayOriginatingAddress();
+    method public String getEmailBody();
+    method public String getEmailFrom();
     method public int getIndexOnIcc();
-    method public deprecated int getIndexOnSim();
-    method public java.lang.String getMessageBody();
+    method @Deprecated public int getIndexOnSim();
+    method public String getMessageBody();
     method public android.telephony.SmsMessage.MessageClass getMessageClass();
-    method public java.lang.String getOriginatingAddress();
+    method @Nullable public String getOriginatingAddress();
     method public byte[] getPdu();
     method public int getProtocolIdentifier();
-    method public java.lang.String getPseudoSubject();
-    method public java.lang.String getServiceCenterAddress();
+    method public String getPseudoSubject();
+    method public String getServiceCenterAddress();
     method public int getStatus();
     method public int getStatusOnIcc();
-    method public deprecated int getStatusOnSim();
-    method public static android.telephony.SmsMessage.SubmitPdu getSubmitPdu(java.lang.String, java.lang.String, java.lang.String, boolean);
-    method public static android.telephony.SmsMessage.SubmitPdu getSubmitPdu(java.lang.String, java.lang.String, short, byte[], boolean);
-    method public static int getTPLayerLengthForPDU(java.lang.String);
+    method @Deprecated public int getStatusOnSim();
+    method public static android.telephony.SmsMessage.SubmitPdu getSubmitPdu(String, String, String, boolean);
+    method public static android.telephony.SmsMessage.SubmitPdu getSubmitPdu(String, String, short, byte[], boolean);
+    method public static int getTPLayerLengthForPDU(String);
     method public long getTimestampMillis();
     method public byte[] getUserData();
     method public boolean isCphsMwiMessage();
@@ -44703,17 +44599,15 @@
     field public static final int ENCODING_7BIT = 1; // 0x1
     field public static final int ENCODING_8BIT = 2; // 0x2
     field public static final int ENCODING_UNKNOWN = 0; // 0x0
-    field public static final java.lang.String FORMAT_3GPP = "3gpp";
-    field public static final java.lang.String FORMAT_3GPP2 = "3gpp2";
+    field public static final String FORMAT_3GPP = "3gpp";
+    field public static final String FORMAT_3GPP2 = "3gpp2";
     field public static final int MAX_USER_DATA_BYTES = 140; // 0x8c
     field public static final int MAX_USER_DATA_BYTES_WITH_HEADER = 134; // 0x86
     field public static final int MAX_USER_DATA_SEPTETS = 160; // 0xa0
     field public static final int MAX_USER_DATA_SEPTETS_WITH_HEADER = 153; // 0x99
   }
 
-  public static final class SmsMessage.MessageClass extends java.lang.Enum {
-    method public static android.telephony.SmsMessage.MessageClass valueOf(java.lang.String);
-    method public static final android.telephony.SmsMessage.MessageClass[] values();
+  public enum SmsMessage.MessageClass {
     enum_constant public static final android.telephony.SmsMessage.MessageClass CLASS_0;
     enum_constant public static final android.telephony.SmsMessage.MessageClass CLASS_1;
     enum_constant public static final android.telephony.SmsMessage.MessageClass CLASS_2;
@@ -44730,18 +44624,18 @@
     method public android.graphics.Bitmap createIconBitmap(android.content.Context);
     method public int describeContents();
     method public int getCarrierId();
-    method public java.lang.CharSequence getCarrierName();
-    method public java.lang.String getCountryIso();
+    method public CharSequence getCarrierName();
+    method public String getCountryIso();
     method public int getDataRoaming();
-    method public java.lang.CharSequence getDisplayName();
-    method public java.lang.String getGroupUuid();
-    method public java.lang.String getIccId();
+    method public CharSequence getDisplayName();
+    method public String getGroupUuid();
+    method public String getIccId();
     method public int getIconTint();
-    method public deprecated int getMcc();
-    method public java.lang.String getMccString();
-    method public deprecated int getMnc();
-    method public java.lang.String getMncString();
-    method public java.lang.String getNumber();
+    method @Deprecated public int getMcc();
+    method public String getMccString();
+    method @Deprecated public int getMnc();
+    method public String getMncString();
+    method public String getNumber();
     method public int getSimSlotIndex();
     method public int getSubscriptionId();
     method public boolean isEmbedded();
@@ -44751,47 +44645,47 @@
   }
 
   public class SubscriptionManager {
-    method public void addOnOpportunisticSubscriptionsChangedListener(java.util.concurrent.Executor, android.telephony.SubscriptionManager.OnOpportunisticSubscriptionsChangedListener);
+    method public void addOnOpportunisticSubscriptionsChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.SubscriptionManager.OnOpportunisticSubscriptionsChangedListener);
     method public void addOnSubscriptionsChangedListener(android.telephony.SubscriptionManager.OnSubscriptionsChangedListener);
     method public boolean canManageSubscription(android.telephony.SubscriptionInfo);
-    method public static deprecated android.telephony.SubscriptionManager from(android.content.Context);
+    method @Deprecated public static android.telephony.SubscriptionManager from(android.content.Context);
     method public java.util.List<android.telephony.SubscriptionInfo> getAccessibleSubscriptionInfoList();
-    method public android.telephony.SubscriptionInfo getActiveSubscriptionInfo(int);
-    method public int getActiveSubscriptionInfoCount();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public android.telephony.SubscriptionInfo getActiveSubscriptionInfo(int);
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getActiveSubscriptionInfoCount();
     method public int getActiveSubscriptionInfoCountMax();
-    method public android.telephony.SubscriptionInfo getActiveSubscriptionInfoForSimSlotIndex(int);
-    method public java.util.List<android.telephony.SubscriptionInfo> getActiveSubscriptionInfoList();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public android.telephony.SubscriptionInfo getActiveSubscriptionInfoForSimSlotIndex(int);
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.List<android.telephony.SubscriptionInfo> getActiveSubscriptionInfoList();
     method public static int getDefaultDataSubscriptionId();
     method public static int getDefaultSmsSubscriptionId();
     method public static int getDefaultSubscriptionId();
     method public static int getDefaultVoiceSubscriptionId();
-    method public java.util.List<android.telephony.SubscriptionInfo> getOpportunisticSubscriptions();
+    method @NonNull @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.List<android.telephony.SubscriptionInfo> getOpportunisticSubscriptions();
     method public static int getSlotIndex(int);
-    method public int[] getSubscriptionIds(int);
-    method public java.util.List<android.telephony.SubscriptionPlan> getSubscriptionPlans(int);
-    method public java.util.List<android.telephony.SubscriptionInfo> getSubscriptionsInGroup(int);
-    method public boolean isActiveSubscriptionId(int);
+    method @Nullable public int[] getSubscriptionIds(int);
+    method @NonNull public java.util.List<android.telephony.SubscriptionPlan> getSubscriptionPlans(int);
+    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.List<android.telephony.SubscriptionInfo> getSubscriptionsInGroup(int);
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isActiveSubscriptionId(int);
     method public boolean isNetworkRoaming(int);
     method public static boolean isUsableSubscriptionId(int);
     method public static boolean isValidSubscriptionId(int);
     method public void removeOnOpportunisticSubscriptionsChangedListener(android.telephony.SubscriptionManager.OnOpportunisticSubscriptionsChangedListener);
     method public void removeOnSubscriptionsChangedListener(android.telephony.SubscriptionManager.OnSubscriptionsChangedListener);
-    method public boolean removeSubscriptionsFromGroup(int[]);
-    method public boolean setMetered(boolean, int);
-    method public boolean setOpportunistic(boolean, int);
-    method public java.lang.String setSubscriptionGroup(int[]);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean removeSubscriptionsFromGroup(@NonNull int[]);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setMetered(boolean, int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setOpportunistic(boolean, int);
+    method @Nullable @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public String setSubscriptionGroup(@NonNull int[]);
     method public void setSubscriptionOverrideCongested(int, boolean, long);
     method public void setSubscriptionOverrideUnmetered(int, boolean, long);
-    method public void setSubscriptionPlans(int, java.util.List<android.telephony.SubscriptionPlan>);
-    method public void switchToSubscription(int, android.app.PendingIntent);
-    field public static final java.lang.String ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED = "android.telephony.action.DEFAULT_SMS_SUBSCRIPTION_CHANGED";
-    field public static final java.lang.String ACTION_DEFAULT_SUBSCRIPTION_CHANGED = "android.telephony.action.DEFAULT_SUBSCRIPTION_CHANGED";
-    field public static final java.lang.String ACTION_MANAGE_SUBSCRIPTION_PLANS = "android.telephony.action.MANAGE_SUBSCRIPTION_PLANS";
-    field public static final java.lang.String ACTION_REFRESH_SUBSCRIPTION_PLANS = "android.telephony.action.REFRESH_SUBSCRIPTION_PLANS";
+    method public void setSubscriptionPlans(int, @NonNull java.util.List<android.telephony.SubscriptionPlan>);
+    method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void switchToSubscription(int, android.app.PendingIntent);
+    field public static final String ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED = "android.telephony.action.DEFAULT_SMS_SUBSCRIPTION_CHANGED";
+    field public static final String ACTION_DEFAULT_SUBSCRIPTION_CHANGED = "android.telephony.action.DEFAULT_SUBSCRIPTION_CHANGED";
+    field public static final String ACTION_MANAGE_SUBSCRIPTION_PLANS = "android.telephony.action.MANAGE_SUBSCRIPTION_PLANS";
+    field public static final String ACTION_REFRESH_SUBSCRIPTION_PLANS = "android.telephony.action.REFRESH_SUBSCRIPTION_PLANS";
     field public static final int DATA_ROAMING_DISABLE = 0; // 0x0
     field public static final int DATA_ROAMING_ENABLE = 1; // 0x1
     field public static final int DEFAULT_SUBSCRIPTION_ID = 2147483647; // 0x7fffffff
-    field public static final java.lang.String EXTRA_SUBSCRIPTION_INDEX = "android.telephony.extra.SUBSCRIPTION_INDEX";
+    field public static final String EXTRA_SUBSCRIPTION_INDEX = "android.telephony.extra.SUBSCRIPTION_INDEX";
     field public static final int INVALID_SIM_SLOT_INDEX = -1; // 0xffffffff
     field public static final int INVALID_SUBSCRIPTION_ID = -1; // 0xffffffff
   }
@@ -44813,8 +44707,8 @@
     method public long getDataLimitBytes();
     method public long getDataUsageBytes();
     method public long getDataUsageTime();
-    method public java.lang.CharSequence getSummary();
-    method public java.lang.CharSequence getTitle();
+    method @Nullable public CharSequence getSummary();
+    method @Nullable public CharSequence getTitle();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final long BYTES_UNKNOWN = -1L; // 0xffffffffffffffffL
     field public static final long BYTES_UNLIMITED = 9223372036854775807L; // 0x7fffffffffffffffL
@@ -44832,114 +44726,114 @@
     method public static android.telephony.SubscriptionPlan.Builder createRecurring(java.time.ZonedDateTime, java.time.Period);
     method public android.telephony.SubscriptionPlan.Builder setDataLimit(long, int);
     method public android.telephony.SubscriptionPlan.Builder setDataUsage(long, long);
-    method public android.telephony.SubscriptionPlan.Builder setSummary(java.lang.CharSequence);
-    method public android.telephony.SubscriptionPlan.Builder setTitle(java.lang.CharSequence);
+    method public android.telephony.SubscriptionPlan.Builder setSummary(@Nullable CharSequence);
+    method public android.telephony.SubscriptionPlan.Builder setTitle(@Nullable CharSequence);
   }
 
   public class TelephonyManager {
     method public boolean canChangeDtmfToneLength();
-    method public android.telephony.TelephonyManager createForPhoneAccountHandle(android.telecom.PhoneAccountHandle);
+    method @Nullable public android.telephony.TelephonyManager createForPhoneAccountHandle(android.telecom.PhoneAccountHandle);
     method public android.telephony.TelephonyManager createForSubscriptionId(int);
-    method public java.util.List<android.telephony.CellInfo> getAllCellInfo();
+    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public java.util.List<android.telephony.CellInfo> getAllCellInfo();
     method public int getCallState();
-    method public android.os.PersistableBundle getCarrierConfig();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @WorkerThread public android.os.PersistableBundle getCarrierConfig();
     method public int getCarrierIdFromSimMccMnc();
-    method public deprecated android.telephony.CellLocation getCellLocation();
-    method public java.util.Map<java.lang.Integer, java.util.List<android.telephony.emergency.EmergencyNumber>> getCurrentEmergencyNumberList();
-    method public java.util.Map<java.lang.Integer, java.util.List<android.telephony.emergency.EmergencyNumber>> getCurrentEmergencyNumberList(int);
+    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public android.telephony.CellLocation getCellLocation();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @Nullable public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getCurrentEmergencyNumberList();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @Nullable public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getCurrentEmergencyNumberList(int);
     method public int getDataActivity();
-    method public int getDataNetworkType();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getDataNetworkType();
     method public int getDataState();
-    method public deprecated java.lang.String getDeviceId();
-    method public deprecated java.lang.String getDeviceId(int);
-    method public java.lang.String getDeviceSoftwareVersion();
-    method public java.lang.String[] getForbiddenPlmns();
-    method public java.lang.String getGroupIdLevel1();
-    method public java.lang.String getIccAuthentication(int, int, java.lang.String);
-    method public java.lang.String getImei();
-    method public java.lang.String getImei(int);
-    method public java.lang.String getLine1Number();
-    method public java.lang.String getManufacturerCode();
-    method public java.lang.String getManufacturerCode(int);
-    method public java.lang.String getMeid();
-    method public java.lang.String getMeid(int);
-    method public java.lang.String getMmsUAProfUrl();
-    method public java.lang.String getMmsUserAgent();
-    method public java.lang.String getNai();
-    method public java.lang.String getNetworkCountryIso();
-    method public java.lang.String getNetworkOperator();
-    method public java.lang.String getNetworkOperatorName();
-    method public java.lang.String getNetworkSpecifier();
+    method @Deprecated @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDeviceId();
+    method @Deprecated @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDeviceId(int);
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getDeviceSoftwareVersion();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String[] getForbiddenPlmns();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getGroupIdLevel1();
+    method public String getIccAuthentication(int, int, String);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getImei();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_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 @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getMeid();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getMeid(int);
+    method public String getMmsUAProfUrl();
+    method public String getMmsUserAgent();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getNai();
+    method public String getNetworkCountryIso();
+    method public String getNetworkOperator();
+    method public String getNetworkOperatorName();
+    method public String getNetworkSpecifier();
     method public int getNetworkType();
     method public int getPhoneCount();
     method public int getPhoneType();
     method public int getPreferredOpportunisticDataSubscription();
-    method public android.telephony.ServiceState getServiceState();
-    method public android.telephony.SignalStrength getSignalStrength();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public android.telephony.ServiceState getServiceState();
+    method @Nullable public android.telephony.SignalStrength getSignalStrength();
     method public int getSimCarrierId();
-    method public java.lang.CharSequence getSimCarrierIdName();
-    method public java.lang.String getSimCountryIso();
-    method public java.lang.String getSimOperator();
-    method public java.lang.String getSimOperatorName();
+    method @Nullable public CharSequence getSimCarrierIdName();
+    method public String getSimCountryIso();
+    method public String getSimOperator();
+    method public String getSimOperatorName();
     method public int getSimPreciseCarrierId();
-    method public java.lang.CharSequence getSimPreciseCarrierIdName();
-    method public java.lang.String getSimSerialNumber();
+    method @Nullable public CharSequence getSimPreciseCarrierIdName();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getSimSerialNumber();
     method public int getSimState();
     method public int getSimState(int);
-    method public java.lang.String getSubscriberId();
-    method public java.lang.String getTypeAllocationCode();
-    method public java.lang.String getTypeAllocationCode(int);
-    method public java.lang.String getVisualVoicemailPackageName();
-    method public java.lang.String getVoiceMailAlphaTag();
-    method public java.lang.String getVoiceMailNumber();
-    method public int getVoiceNetworkType();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getSubscriberId();
+    method public String getTypeAllocationCode();
+    method public String getTypeAllocationCode(int);
+    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVisualVoicemailPackageName();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVoiceMailAlphaTag();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVoiceMailNumber();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getVoiceNetworkType();
     method public android.net.Uri getVoicemailRingtoneUri(android.telecom.PhoneAccountHandle);
     method public boolean hasCarrierPrivileges();
     method public boolean hasIccCard();
     method public boolean iccCloseLogicalChannel(int);
-    method public byte[] iccExchangeSimIO(int, int, int, int, int, java.lang.String);
-    method public deprecated android.telephony.IccOpenLogicalChannelResponse iccOpenLogicalChannel(java.lang.String);
-    method public android.telephony.IccOpenLogicalChannelResponse iccOpenLogicalChannel(java.lang.String, int);
-    method public java.lang.String iccTransmitApduBasicChannel(int, int, int, int, int, java.lang.String);
-    method public java.lang.String iccTransmitApduLogicalChannel(int, int, int, int, int, int, java.lang.String);
+    method public byte[] iccExchangeSimIO(int, int, int, int, int, String);
+    method @Deprecated public android.telephony.IccOpenLogicalChannelResponse iccOpenLogicalChannel(String);
+    method public android.telephony.IccOpenLogicalChannelResponse iccOpenLogicalChannel(String, int);
+    method public String iccTransmitApduBasicChannel(int, int, int, int, int, String);
+    method public String iccTransmitApduLogicalChannel(int, int, int, int, int, int, String);
     method public boolean isConcurrentVoiceAndDataSupported();
-    method public boolean isCurrentEmergencyNumber(java.lang.String);
-    method public boolean isDataEnabled();
-    method public boolean isDataRoamingEnabled();
+    method public boolean isCurrentEmergencyNumber(@NonNull String);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean isDataEnabled();
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataRoamingEnabled();
     method public boolean isHearingAidCompatibilitySupported();
     method public boolean isNetworkRoaming();
     method public boolean isSmsCapable();
-    method public deprecated boolean isTtyModeSupported();
+    method @Deprecated public boolean isTtyModeSupported();
     method public boolean isVoiceCapable();
     method public boolean isVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle);
     method public boolean isWorldPhone();
     method public void listen(android.telephony.PhoneStateListener, int);
-    method public void requestCellInfoUpdate(java.util.concurrent.Executor, android.telephony.TelephonyManager.CellInfoCallback);
-    method public android.telephony.NetworkScan requestNetworkScan(android.telephony.NetworkScanRequest, java.util.concurrent.Executor, android.telephony.TelephonyScanManager.NetworkScanCallback);
-    method public void sendDialerSpecialCode(java.lang.String);
-    method public java.lang.String sendEnvelopeWithStatus(java.lang.String);
-    method public void sendUssdRequest(java.lang.String, android.telephony.TelephonyManager.UssdResponseCallback, android.os.Handler);
-    method public void sendVisualVoicemailSms(java.lang.String, int, java.lang.String, android.app.PendingIntent);
-    method public void setDataEnabled(boolean);
-    method public boolean setLine1NumberForDisplay(java.lang.String, java.lang.String);
-    method public void setNetworkSelectionModeAutomatic();
-    method public boolean setNetworkSelectionModeManual(java.lang.String, boolean);
-    method public boolean setOperatorBrandOverride(java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public void requestCellInfoUpdate(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CellInfoCallback);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telephony.NetworkScan requestNetworkScan(android.telephony.NetworkScanRequest, java.util.concurrent.Executor, android.telephony.TelephonyScanManager.NetworkScanCallback);
+    method public void sendDialerSpecialCode(String);
+    method public String sendEnvelopeWithStatus(String);
+    method @RequiresPermission(android.Manifest.permission.CALL_PHONE) public void sendUssdRequest(String, android.telephony.TelephonyManager.UssdResponseCallback, android.os.Handler);
+    method public void sendVisualVoicemailSms(String, int, String, android.app.PendingIntent);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabled(boolean);
+    method public boolean setLine1NumberForDisplay(String, String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setNetworkSelectionModeAutomatic();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setNetworkSelectionModeManual(String, boolean);
+    method public boolean setOperatorBrandOverride(String);
     method public boolean setPreferredNetworkTypeToGlobal();
     method public boolean setPreferredOpportunisticDataSubscription(int);
     method public void setVisualVoicemailSmsFilterSettings(android.telephony.VisualVoicemailSmsFilterSettings);
-    method public boolean setVoiceMailNumber(java.lang.String, java.lang.String);
-    method public deprecated void setVoicemailRingtoneUri(android.telecom.PhoneAccountHandle, android.net.Uri);
-    method public deprecated void setVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle, boolean);
+    method public boolean setVoiceMailNumber(String, String);
+    method @Deprecated public void setVoicemailRingtoneUri(android.telecom.PhoneAccountHandle, android.net.Uri);
+    method @Deprecated public void setVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle, boolean);
     method public boolean updateAvailableNetworks(java.util.List<android.telephony.AvailableNetworkInfo>);
-    field public static final java.lang.String ACTION_CONFIGURE_VOICEMAIL = "android.telephony.action.CONFIGURE_VOICEMAIL";
-    field public static final java.lang.String ACTION_PHONE_STATE_CHANGED = "android.intent.action.PHONE_STATE";
-    field public static final java.lang.String ACTION_RESPOND_VIA_MESSAGE = "android.intent.action.RESPOND_VIA_MESSAGE";
-    field public static final java.lang.String ACTION_SECRET_CODE = "android.telephony.action.SECRET_CODE";
-    field public static final java.lang.String ACTION_SHOW_VOICEMAIL_NOTIFICATION = "android.telephony.action.SHOW_VOICEMAIL_NOTIFICATION";
-    field public static final java.lang.String ACTION_SMS_APP_SERVICE = "android.telephony.action.SMS_APP_SERVICE";
-    field public static final java.lang.String ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED = "android.telephony.action.SUBSCRIPTION_CARRIER_IDENTITY_CHANGED";
-    field public static final java.lang.String ACTION_SUBSCRIPTION_PRECISE_CARRIER_IDENTITY_CHANGED = "android.telephony.action.SUBSCRIPTION_PRECISE_CARRIER_IDENTITY_CHANGED";
+    field public static final String ACTION_CONFIGURE_VOICEMAIL = "android.telephony.action.CONFIGURE_VOICEMAIL";
+    field @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static final String ACTION_PHONE_STATE_CHANGED = "android.intent.action.PHONE_STATE";
+    field public static final String ACTION_RESPOND_VIA_MESSAGE = "android.intent.action.RESPOND_VIA_MESSAGE";
+    field public static final String ACTION_SECRET_CODE = "android.telephony.action.SECRET_CODE";
+    field public static final String ACTION_SHOW_VOICEMAIL_NOTIFICATION = "android.telephony.action.SHOW_VOICEMAIL_NOTIFICATION";
+    field public static final String ACTION_SMS_APP_SERVICE = "android.telephony.action.SMS_APP_SERVICE";
+    field public static final String ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED = "android.telephony.action.SUBSCRIPTION_CARRIER_IDENTITY_CHANGED";
+    field public static final String ACTION_SUBSCRIPTION_PRECISE_CARRIER_IDENTITY_CHANGED = "android.telephony.action.SUBSCRIPTION_PRECISE_CARRIER_IDENTITY_CHANGED";
     field public static final int APPTYPE_CSIM = 4; // 0x4
     field public static final int APPTYPE_ISIM = 5; // 0x5
     field public static final int APPTYPE_RUIM = 3; // 0x3
@@ -44964,24 +44858,24 @@
     field public static final int DATA_DISCONNECTED = 0; // 0x0
     field public static final int DATA_SUSPENDED = 3; // 0x3
     field public static final int DATA_UNKNOWN = -1; // 0xffffffff
-    field public static final java.lang.String EXTRA_CALL_VOICEMAIL_INTENT = "android.telephony.extra.CALL_VOICEMAIL_INTENT";
-    field public static final java.lang.String EXTRA_CARRIER_ID = "android.telephony.extra.CARRIER_ID";
-    field public static final java.lang.String EXTRA_CARRIER_NAME = "android.telephony.extra.CARRIER_NAME";
-    field public static final java.lang.String EXTRA_HIDE_PUBLIC_SETTINGS = "android.telephony.extra.HIDE_PUBLIC_SETTINGS";
-    field public static final java.lang.String EXTRA_INCOMING_NUMBER = "incoming_number";
-    field public static final java.lang.String EXTRA_IS_REFRESH = "android.telephony.extra.IS_REFRESH";
-    field public static final java.lang.String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT = "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT";
-    field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telephony.extra.NOTIFICATION_COUNT";
-    field public static final java.lang.String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telephony.extra.PHONE_ACCOUNT_HANDLE";
-    field public static final java.lang.String EXTRA_PRECISE_CARRIER_ID = "android.telephony.extra.PRECISE_CARRIER_ID";
-    field public static final java.lang.String EXTRA_PRECISE_CARRIER_NAME = "android.telephony.extra.PRECISE_CARRIER_NAME";
-    field public static final java.lang.String EXTRA_STATE = "state";
-    field public static final java.lang.String EXTRA_STATE_IDLE;
-    field public static final java.lang.String EXTRA_STATE_OFFHOOK;
-    field public static final java.lang.String EXTRA_STATE_RINGING;
-    field public static final java.lang.String EXTRA_SUBSCRIPTION_ID = "android.telephony.extra.SUBSCRIPTION_ID";
-    field public static final java.lang.String EXTRA_VOICEMAIL_NUMBER = "android.telephony.extra.VOICEMAIL_NUMBER";
-    field public static final java.lang.String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU = "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU";
+    field public static final String EXTRA_CALL_VOICEMAIL_INTENT = "android.telephony.extra.CALL_VOICEMAIL_INTENT";
+    field public static final String EXTRA_CARRIER_ID = "android.telephony.extra.CARRIER_ID";
+    field public static final String EXTRA_CARRIER_NAME = "android.telephony.extra.CARRIER_NAME";
+    field public static final String EXTRA_HIDE_PUBLIC_SETTINGS = "android.telephony.extra.HIDE_PUBLIC_SETTINGS";
+    field public static final String EXTRA_INCOMING_NUMBER = "incoming_number";
+    field public static final String EXTRA_IS_REFRESH = "android.telephony.extra.IS_REFRESH";
+    field public static final String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT = "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT";
+    field public static final String EXTRA_NOTIFICATION_COUNT = "android.telephony.extra.NOTIFICATION_COUNT";
+    field public static final String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telephony.extra.PHONE_ACCOUNT_HANDLE";
+    field public static final String EXTRA_PRECISE_CARRIER_ID = "android.telephony.extra.PRECISE_CARRIER_ID";
+    field public static final String EXTRA_PRECISE_CARRIER_NAME = "android.telephony.extra.PRECISE_CARRIER_NAME";
+    field public static final String EXTRA_STATE = "state";
+    field public static final String EXTRA_STATE_IDLE;
+    field public static final String EXTRA_STATE_OFFHOOK;
+    field public static final String EXTRA_STATE_RINGING;
+    field public static final String EXTRA_SUBSCRIPTION_ID = "android.telephony.extra.SUBSCRIPTION_ID";
+    field public static final String EXTRA_VOICEMAIL_NUMBER = "android.telephony.extra.VOICEMAIL_NUMBER";
+    field public static final String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU = "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU";
     field public static final int NETWORK_TYPE_1xRTT = 7; // 0x7
     field public static final int NETWORK_TYPE_CDMA = 4; // 0x4
     field public static final int NETWORK_TYPE_EDGE = 2; // 0x2
@@ -45019,29 +44913,29 @@
     field public static final int UNKNOWN_CARRIER_ID = -1; // 0xffffffff
     field public static final int USSD_ERROR_SERVICE_UNAVAIL = -2; // 0xfffffffe
     field public static final int USSD_RETURN_FAILURE = -1; // 0xffffffff
-    field public static final java.lang.String VVM_TYPE_CVVM = "vvm_type_cvvm";
-    field public static final java.lang.String VVM_TYPE_OMTP = "vvm_type_omtp";
+    field public static final String VVM_TYPE_CVVM = "vvm_type_cvvm";
+    field public static final String VVM_TYPE_OMTP = "vvm_type_omtp";
   }
 
-  public static abstract class TelephonyManager.CellInfoCallback {
+  public abstract static class TelephonyManager.CellInfoCallback {
     ctor public TelephonyManager.CellInfoCallback();
-    method public abstract void onCellInfo(java.util.List<android.telephony.CellInfo>);
-    method public void onError(int, java.lang.Throwable);
+    method public abstract void onCellInfo(@NonNull java.util.List<android.telephony.CellInfo>);
+    method public void onError(int, @Nullable Throwable);
     field public static final int ERROR_MODEM_ERROR = 2; // 0x2
     field public static final int ERROR_TIMEOUT = 1; // 0x1
   }
 
-  public static abstract class TelephonyManager.UssdResponseCallback {
+  public abstract static class TelephonyManager.UssdResponseCallback {
     ctor public TelephonyManager.UssdResponseCallback();
-    method public void onReceiveUssdResponse(android.telephony.TelephonyManager, java.lang.String, java.lang.CharSequence);
-    method public void onReceiveUssdResponseFailed(android.telephony.TelephonyManager, java.lang.String, int);
+    method public void onReceiveUssdResponse(android.telephony.TelephonyManager, String, CharSequence);
+    method public void onReceiveUssdResponseFailed(android.telephony.TelephonyManager, String, int);
   }
 
   public final class TelephonyScanManager {
     ctor public TelephonyScanManager();
   }
 
-  public static abstract class TelephonyScanManager.NetworkScanCallback {
+  public abstract static class TelephonyScanManager.NetworkScanCallback {
     ctor public TelephonyScanManager.NetworkScanCallback();
     method public void onComplete();
     method public void onError(int);
@@ -45051,11 +44945,11 @@
   public abstract class VisualVoicemailService extends android.app.Service {
     ctor public VisualVoicemailService();
     method public android.os.IBinder onBind(android.content.Intent);
-    method public abstract void onCellServiceConnected(android.telephony.VisualVoicemailService.VisualVoicemailTask, android.telecom.PhoneAccountHandle);
-    method public abstract void onSimRemoved(android.telephony.VisualVoicemailService.VisualVoicemailTask, android.telecom.PhoneAccountHandle);
-    method public abstract void onSmsReceived(android.telephony.VisualVoicemailService.VisualVoicemailTask, android.telephony.VisualVoicemailSms);
-    method public abstract void onStopped(android.telephony.VisualVoicemailService.VisualVoicemailTask);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.telephony.VisualVoicemailService";
+    method @MainThread public abstract void onCellServiceConnected(android.telephony.VisualVoicemailService.VisualVoicemailTask, android.telecom.PhoneAccountHandle);
+    method @MainThread public abstract void onSimRemoved(android.telephony.VisualVoicemailService.VisualVoicemailTask, android.telecom.PhoneAccountHandle);
+    method @MainThread public abstract void onSmsReceived(android.telephony.VisualVoicemailService.VisualVoicemailTask, android.telephony.VisualVoicemailSms);
+    method @MainThread public abstract void onStopped(android.telephony.VisualVoicemailService.VisualVoicemailTask);
+    field public static final String SERVICE_INTERFACE = "android.telephony.VisualVoicemailService";
   }
 
   public static class VisualVoicemailService.VisualVoicemailTask {
@@ -45065,9 +44959,9 @@
   public final class VisualVoicemailSms implements android.os.Parcelable {
     method public int describeContents();
     method public android.os.Bundle getFields();
-    method public java.lang.String getMessageBody();
+    method public String getMessageBody();
     method public android.telecom.PhoneAccountHandle getPhoneAccountHandle();
-    method public java.lang.String getPrefix();
+    method public String getPrefix();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.VisualVoicemailSms> CREATOR;
   }
@@ -45078,7 +44972,7 @@
     field public static final android.os.Parcelable.Creator<android.telephony.VisualVoicemailSmsFilterSettings> CREATOR;
     field public static final int DESTINATION_PORT_ANY = -1; // 0xffffffff
     field public static final int DESTINATION_PORT_DATA_SMS = -2; // 0xfffffffe
-    field public final java.lang.String clientPrefix;
+    field public final String clientPrefix;
     field public final int destinationPort;
     field public final java.util.List<java.lang.String> originatingNumbers;
   }
@@ -45086,7 +44980,7 @@
   public static class VisualVoicemailSmsFilterSettings.Builder {
     ctor public VisualVoicemailSmsFilterSettings.Builder();
     method public android.telephony.VisualVoicemailSmsFilterSettings build();
-    method public android.telephony.VisualVoicemailSmsFilterSettings.Builder setClientPrefix(java.lang.String);
+    method public android.telephony.VisualVoicemailSmsFilterSettings.Builder setClientPrefix(String);
     method public android.telephony.VisualVoicemailSmsFilterSettings.Builder setDestinationPort(int);
     method public android.telephony.VisualVoicemailSmsFilterSettings.Builder setOriginatingNumbers(java.util.List<java.lang.String>);
   }
@@ -45116,28 +45010,28 @@
 
   public class ApnSetting implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getApnName();
+    method public String getApnName();
     method public int getApnTypeBitmask();
     method public int getAuthType();
     method public int getCarrierId();
-    method public java.lang.String getEntryName();
+    method public String getEntryName();
     method public int getId();
-    method public deprecated java.net.InetAddress getMmsProxyAddress();
-    method public java.lang.String getMmsProxyAddressAsString();
+    method @Deprecated public java.net.InetAddress getMmsProxyAddress();
+    method public String getMmsProxyAddressAsString();
     method public int getMmsProxyPort();
     method public android.net.Uri getMmsc();
     method public int getMvnoType();
     method public int getNetworkTypeBitmask();
-    method public java.lang.String getOperatorNumeric();
-    method public java.lang.String getPassword();
+    method public String getOperatorNumeric();
+    method public String getPassword();
     method public int getProtocol();
-    method public deprecated java.net.InetAddress getProxyAddress();
-    method public java.lang.String getProxyAddressAsString();
+    method @Deprecated public java.net.InetAddress getProxyAddress();
+    method public String getProxyAddressAsString();
     method public int getProxyPort();
     method public int getRoamingProtocol();
-    method public java.lang.String getUser();
+    method public String getUser();
     method public boolean isEnabled();
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
     field public static final int AUTH_TYPE_CHAP = 2; // 0x2
     field public static final int AUTH_TYPE_NONE = 0; // 0x0
     field public static final int AUTH_TYPE_PAP = 1; // 0x1
@@ -45166,44 +45060,44 @@
   public static class ApnSetting.Builder {
     ctor public ApnSetting.Builder();
     method public android.telephony.data.ApnSetting build();
-    method public android.telephony.data.ApnSetting.Builder setApnName(java.lang.String);
+    method public android.telephony.data.ApnSetting.Builder setApnName(String);
     method public android.telephony.data.ApnSetting.Builder setApnTypeBitmask(int);
     method public android.telephony.data.ApnSetting.Builder setAuthType(int);
     method public android.telephony.data.ApnSetting.Builder setCarrierEnabled(boolean);
     method public android.telephony.data.ApnSetting.Builder setCarrierId(int);
-    method public android.telephony.data.ApnSetting.Builder setEntryName(java.lang.String);
-    method public deprecated android.telephony.data.ApnSetting.Builder setMmsProxyAddress(java.net.InetAddress);
-    method public android.telephony.data.ApnSetting.Builder setMmsProxyAddress(java.lang.String);
+    method public android.telephony.data.ApnSetting.Builder setEntryName(String);
+    method @Deprecated public android.telephony.data.ApnSetting.Builder setMmsProxyAddress(java.net.InetAddress);
+    method public android.telephony.data.ApnSetting.Builder setMmsProxyAddress(String);
     method public android.telephony.data.ApnSetting.Builder setMmsProxyPort(int);
     method public android.telephony.data.ApnSetting.Builder setMmsc(android.net.Uri);
     method public android.telephony.data.ApnSetting.Builder setMvnoType(int);
     method public android.telephony.data.ApnSetting.Builder setNetworkTypeBitmask(int);
-    method public android.telephony.data.ApnSetting.Builder setOperatorNumeric(java.lang.String);
-    method public android.telephony.data.ApnSetting.Builder setPassword(java.lang.String);
+    method public android.telephony.data.ApnSetting.Builder setOperatorNumeric(String);
+    method public android.telephony.data.ApnSetting.Builder setPassword(String);
     method public android.telephony.data.ApnSetting.Builder setProtocol(int);
-    method public deprecated android.telephony.data.ApnSetting.Builder setProxyAddress(java.net.InetAddress);
-    method public android.telephony.data.ApnSetting.Builder setProxyAddress(java.lang.String);
+    method @Deprecated public android.telephony.data.ApnSetting.Builder setProxyAddress(java.net.InetAddress);
+    method public android.telephony.data.ApnSetting.Builder setProxyAddress(String);
     method public android.telephony.data.ApnSetting.Builder setProxyPort(int);
     method public android.telephony.data.ApnSetting.Builder setRoamingProtocol(int);
-    method public android.telephony.data.ApnSetting.Builder setUser(java.lang.String);
+    method public android.telephony.data.ApnSetting.Builder setUser(String);
   }
 
 }
 
 package android.telephony.emergency {
 
-  public final class EmergencyNumber implements java.lang.Comparable android.os.Parcelable {
-    method public int compareTo(android.telephony.emergency.EmergencyNumber);
+  public final class EmergencyNumber implements java.lang.Comparable<android.telephony.emergency.EmergencyNumber> android.os.Parcelable {
+    method public int compareTo(@NonNull android.telephony.emergency.EmergencyNumber);
     method public int describeContents();
-    method public java.lang.String getCountryIso();
+    method public String getCountryIso();
     method public int getEmergencyCallRouting();
     method public int getEmergencyNumberSourceBitmask();
     method public java.util.List<java.lang.Integer> getEmergencyNumberSources();
     method public java.util.List<java.lang.Integer> getEmergencyServiceCategories();
     method public int getEmergencyServiceCategoryBitmask();
-    method public java.util.List<java.lang.String> getEmergencyUrns();
-    method public java.lang.String getMnc();
-    method public java.lang.String getNumber();
+    method @NonNull public java.util.List<java.lang.String> getEmergencyUrns();
+    method public String getMnc();
+    method public String getNumber();
     method public boolean isFromSources(int);
     method public boolean isInEmergencyServiceCategories(int);
     method public void writeToParcel(android.os.Parcel, int);
@@ -45232,39 +45126,39 @@
 
   public final class DownloadableSubscription implements android.os.Parcelable {
     method public int describeContents();
-    method public static android.telephony.euicc.DownloadableSubscription forActivationCode(java.lang.String);
-    method public java.lang.String getConfirmationCode();
-    method public java.lang.String getEncodedActivationCode();
+    method public static android.telephony.euicc.DownloadableSubscription forActivationCode(String);
+    method @Nullable public String getConfirmationCode();
+    method @Nullable public String getEncodedActivationCode();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.euicc.DownloadableSubscription> CREATOR;
   }
 
   public final class EuiccInfo implements android.os.Parcelable {
-    ctor public EuiccInfo(java.lang.String);
+    ctor public EuiccInfo(@Nullable String);
     method public int describeContents();
-    method public java.lang.String getOsVersion();
+    method @Nullable public String getOsVersion();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.euicc.EuiccInfo> CREATOR;
   }
 
   public class EuiccManager {
     method public android.telephony.euicc.EuiccManager createForCardId(int);
-    method public void deleteSubscription(int, android.app.PendingIntent);
-    method public void downloadSubscription(android.telephony.euicc.DownloadableSubscription, boolean, android.app.PendingIntent);
-    method public java.lang.String getEid();
-    method public android.telephony.euicc.EuiccInfo getEuiccInfo();
+    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();
+    method @Nullable public android.telephony.euicc.EuiccInfo getEuiccInfo();
     method public boolean isEnabled();
     method public void startResolutionActivity(android.app.Activity, int, android.content.Intent, android.app.PendingIntent) throws android.content.IntentSender.SendIntentException;
-    method public void switchToSubscription(int, android.app.PendingIntent);
-    method public void updateSubscriptionNickname(int, java.lang.String, android.app.PendingIntent);
-    field public static final java.lang.String ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS = "android.telephony.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS";
-    field public static final java.lang.String ACTION_NOTIFY_CARRIER_SETUP_INCOMPLETE = "android.telephony.euicc.action.NOTIFY_CARRIER_SETUP_INCOMPLETE";
+    method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void switchToSubscription(int, android.app.PendingIntent);
+    method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void updateSubscriptionNickname(int, String, android.app.PendingIntent);
+    field public static final String ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS = "android.telephony.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS";
+    field public static final String ACTION_NOTIFY_CARRIER_SETUP_INCOMPLETE = "android.telephony.euicc.action.NOTIFY_CARRIER_SETUP_INCOMPLETE";
     field public static final int EMBEDDED_SUBSCRIPTION_RESULT_ERROR = 2; // 0x2
     field public static final int EMBEDDED_SUBSCRIPTION_RESULT_OK = 0; // 0x0
     field public static final int EMBEDDED_SUBSCRIPTION_RESULT_RESOLVABLE_ERROR = 1; // 0x1
-    field public static final java.lang.String EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE = "android.telephony.euicc.extra.EMBEDDED_SUBSCRIPTION_DETAILED_CODE";
-    field public static final java.lang.String EXTRA_EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTION = "android.telephony.euicc.extra.EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTION";
-    field public static final java.lang.String META_DATA_CARRIER_ICON = "android.telephony.euicc.carriericon";
+    field public static final String EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE = "android.telephony.euicc.extra.EMBEDDED_SUBSCRIPTION_DETAILED_CODE";
+    field public static final String EXTRA_EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTION = "android.telephony.euicc.extra.EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTION";
+    field public static final String META_DATA_CARRIER_ICON = "android.telephony.euicc.carriericon";
   }
 
 }
@@ -45282,79 +45176,76 @@
     method public void setStateInvalid();
   }
 
-  public final deprecated class SmsManager {
-    method public deprecated java.util.ArrayList<java.lang.String> divideMessage(java.lang.String);
-    method public static deprecated android.telephony.gsm.SmsManager getDefault();
-    method public deprecated void sendDataMessage(java.lang.String, java.lang.String, short, byte[], android.app.PendingIntent, android.app.PendingIntent);
-    method public deprecated void sendMultipartTextMessage(java.lang.String, java.lang.String, java.util.ArrayList<java.lang.String>, java.util.ArrayList<android.app.PendingIntent>, java.util.ArrayList<android.app.PendingIntent>);
-    method public deprecated void sendTextMessage(java.lang.String, java.lang.String, java.lang.String, android.app.PendingIntent, android.app.PendingIntent);
-    field public static final deprecated int RESULT_ERROR_GENERIC_FAILURE = 1; // 0x1
-    field public static final deprecated int RESULT_ERROR_NO_SERVICE = 4; // 0x4
-    field public static final deprecated int RESULT_ERROR_NULL_PDU = 3; // 0x3
-    field public static final deprecated int RESULT_ERROR_RADIO_OFF = 2; // 0x2
-    field public static final deprecated int STATUS_ON_SIM_FREE = 0; // 0x0
-    field public static final deprecated int STATUS_ON_SIM_READ = 1; // 0x1
-    field public static final deprecated int STATUS_ON_SIM_SENT = 5; // 0x5
-    field public static final deprecated int STATUS_ON_SIM_UNREAD = 3; // 0x3
-    field public static final deprecated int STATUS_ON_SIM_UNSENT = 7; // 0x7
+  @Deprecated public final class SmsManager {
+    method @Deprecated public java.util.ArrayList<java.lang.String> divideMessage(String);
+    method @Deprecated public static android.telephony.gsm.SmsManager getDefault();
+    method @Deprecated public void sendDataMessage(String, String, short, byte[], android.app.PendingIntent, android.app.PendingIntent);
+    method @Deprecated public void sendMultipartTextMessage(String, String, java.util.ArrayList<java.lang.String>, java.util.ArrayList<android.app.PendingIntent>, java.util.ArrayList<android.app.PendingIntent>);
+    method @Deprecated public void sendTextMessage(String, String, String, android.app.PendingIntent, android.app.PendingIntent);
+    field @Deprecated public static final int RESULT_ERROR_GENERIC_FAILURE = 1; // 0x1
+    field @Deprecated public static final int RESULT_ERROR_NO_SERVICE = 4; // 0x4
+    field @Deprecated public static final int RESULT_ERROR_NULL_PDU = 3; // 0x3
+    field @Deprecated public static final int RESULT_ERROR_RADIO_OFF = 2; // 0x2
+    field @Deprecated public static final int STATUS_ON_SIM_FREE = 0; // 0x0
+    field @Deprecated public static final int STATUS_ON_SIM_READ = 1; // 0x1
+    field @Deprecated public static final int STATUS_ON_SIM_SENT = 5; // 0x5
+    field @Deprecated public static final int STATUS_ON_SIM_UNREAD = 3; // 0x3
+    field @Deprecated public static final int STATUS_ON_SIM_UNSENT = 7; // 0x7
   }
 
-  public deprecated class SmsMessage {
-    ctor public deprecated SmsMessage();
-    method public static deprecated int[] calculateLength(java.lang.CharSequence, boolean);
-    method public static deprecated int[] calculateLength(java.lang.String, boolean);
-    method public static deprecated android.telephony.gsm.SmsMessage createFromPdu(byte[]);
-    method public deprecated java.lang.String getDisplayMessageBody();
-    method public deprecated java.lang.String getDisplayOriginatingAddress();
-    method public deprecated java.lang.String getEmailBody();
-    method public deprecated java.lang.String getEmailFrom();
-    method public deprecated int getIndexOnSim();
-    method public deprecated java.lang.String getMessageBody();
-    method public deprecated android.telephony.gsm.SmsMessage.MessageClass getMessageClass();
-    method public deprecated java.lang.String getOriginatingAddress();
-    method public deprecated byte[] getPdu();
-    method public deprecated int getProtocolIdentifier();
-    method public deprecated java.lang.String getPseudoSubject();
-    method public deprecated java.lang.String getServiceCenterAddress();
-    method public deprecated int getStatus();
-    method public deprecated int getStatusOnSim();
-    method public static deprecated android.telephony.gsm.SmsMessage.SubmitPdu getSubmitPdu(java.lang.String, java.lang.String, java.lang.String, boolean);
-    method public static deprecated android.telephony.gsm.SmsMessage.SubmitPdu getSubmitPdu(java.lang.String, java.lang.String, short, byte[], boolean);
-    method public static deprecated int getTPLayerLengthForPDU(java.lang.String);
-    method public deprecated long getTimestampMillis();
-    method public deprecated byte[] getUserData();
-    method public deprecated boolean isCphsMwiMessage();
-    method public deprecated boolean isEmail();
-    method public deprecated boolean isMWIClearMessage();
-    method public deprecated boolean isMWISetMessage();
-    method public deprecated boolean isMwiDontStore();
-    method public deprecated boolean isReplace();
-    method public deprecated boolean isReplyPathPresent();
-    method public deprecated boolean isStatusReportMessage();
-    field public static final deprecated int ENCODING_16BIT = 3; // 0x3
-    field public static final deprecated int ENCODING_7BIT = 1; // 0x1
-    field public static final deprecated int ENCODING_8BIT = 2; // 0x2
-    field public static final deprecated int ENCODING_UNKNOWN = 0; // 0x0
-    field public static final deprecated int MAX_USER_DATA_BYTES = 140; // 0x8c
-    field public static final deprecated int MAX_USER_DATA_SEPTETS = 160; // 0xa0
-    field public static final deprecated int MAX_USER_DATA_SEPTETS_WITH_HEADER = 153; // 0x99
+  @Deprecated public class SmsMessage {
+    ctor @Deprecated public SmsMessage();
+    method @Deprecated public static int[] calculateLength(CharSequence, boolean);
+    method @Deprecated public static int[] calculateLength(String, boolean);
+    method @Deprecated public static android.telephony.gsm.SmsMessage createFromPdu(byte[]);
+    method @Deprecated public String getDisplayMessageBody();
+    method @Deprecated public String getDisplayOriginatingAddress();
+    method @Deprecated public String getEmailBody();
+    method @Deprecated public String getEmailFrom();
+    method @Deprecated public int getIndexOnSim();
+    method @Deprecated public String getMessageBody();
+    method @Deprecated public android.telephony.gsm.SmsMessage.MessageClass getMessageClass();
+    method @Deprecated public String getOriginatingAddress();
+    method @Deprecated public byte[] getPdu();
+    method @Deprecated public int getProtocolIdentifier();
+    method @Deprecated public String getPseudoSubject();
+    method @Deprecated public String getServiceCenterAddress();
+    method @Deprecated public int getStatus();
+    method @Deprecated public int getStatusOnSim();
+    method @Deprecated public static android.telephony.gsm.SmsMessage.SubmitPdu getSubmitPdu(String, String, String, boolean);
+    method @Deprecated public static android.telephony.gsm.SmsMessage.SubmitPdu getSubmitPdu(String, String, short, byte[], boolean);
+    method @Deprecated public static int getTPLayerLengthForPDU(String);
+    method @Deprecated public long getTimestampMillis();
+    method @Deprecated public byte[] getUserData();
+    method @Deprecated public boolean isCphsMwiMessage();
+    method @Deprecated public boolean isEmail();
+    method @Deprecated public boolean isMWIClearMessage();
+    method @Deprecated public boolean isMWISetMessage();
+    method @Deprecated public boolean isMwiDontStore();
+    method @Deprecated public boolean isReplace();
+    method @Deprecated public boolean isReplyPathPresent();
+    method @Deprecated public boolean isStatusReportMessage();
+    field @Deprecated public static final int ENCODING_16BIT = 3; // 0x3
+    field @Deprecated public static final int ENCODING_7BIT = 1; // 0x1
+    field @Deprecated public static final int ENCODING_8BIT = 2; // 0x2
+    field @Deprecated public static final int ENCODING_UNKNOWN = 0; // 0x0
+    field @Deprecated public static final int MAX_USER_DATA_BYTES = 140; // 0x8c
+    field @Deprecated public static final int MAX_USER_DATA_SEPTETS = 160; // 0xa0
+    field @Deprecated public static final int MAX_USER_DATA_SEPTETS_WITH_HEADER = 153; // 0x99
   }
 
-  public static final deprecated class SmsMessage.MessageClass extends java.lang.Enum {
-    method public static android.telephony.gsm.SmsMessage.MessageClass valueOf(java.lang.String);
-    method public static final android.telephony.gsm.SmsMessage.MessageClass[] values();
-    enum_constant public static final android.telephony.gsm.SmsMessage.MessageClass CLASS_0;
-    enum_constant public static final android.telephony.gsm.SmsMessage.MessageClass CLASS_1;
-    enum_constant public static final android.telephony.gsm.SmsMessage.MessageClass CLASS_2;
-    enum_constant public static final android.telephony.gsm.SmsMessage.MessageClass CLASS_3;
-    enum_constant public static final android.telephony.gsm.SmsMessage.MessageClass UNKNOWN;
+  @Deprecated public enum SmsMessage.MessageClass {
+    enum_constant @Deprecated public static final android.telephony.gsm.SmsMessage.MessageClass CLASS_0;
+    enum_constant @Deprecated public static final android.telephony.gsm.SmsMessage.MessageClass CLASS_1;
+    enum_constant @Deprecated public static final android.telephony.gsm.SmsMessage.MessageClass CLASS_2;
+    enum_constant @Deprecated public static final android.telephony.gsm.SmsMessage.MessageClass CLASS_3;
+    enum_constant @Deprecated public static final android.telephony.gsm.SmsMessage.MessageClass UNKNOWN;
   }
 
-  public static deprecated class SmsMessage.SubmitPdu {
-    ctor public deprecated SmsMessage.SubmitPdu();
-    method public deprecated java.lang.String toString();
-    field public deprecated byte[] encodedMessage;
-    field public deprecated byte[] encodedScAddress;
+  @Deprecated public static class SmsMessage.SubmitPdu {
+    ctor @Deprecated public SmsMessage.SubmitPdu();
+    field @Deprecated public byte[] encodedMessage;
+    field @Deprecated public byte[] encodedScAddress;
   }
 
 }
@@ -45369,7 +45260,7 @@
   public final class DownloadRequest implements android.os.Parcelable {
     method public int describeContents();
     method public android.net.Uri getDestinationUri();
-    method public java.lang.String getFileServiceId();
+    method public String getFileServiceId();
     method public static int getMaxAppIntentSize();
     method public static int getMaxDestinationUriSize();
     method public android.net.Uri getSourceUri();
@@ -45380,7 +45271,7 @@
   }
 
   public static class DownloadRequest.Builder {
-    ctor public DownloadRequest.Builder(android.net.Uri, android.net.Uri);
+    ctor public DownloadRequest.Builder(@NonNull android.net.Uri, @NonNull android.net.Uri);
     method public android.telephony.mbms.DownloadRequest build();
     method public static android.telephony.mbms.DownloadRequest.Builder fromDownloadRequest(android.telephony.mbms.DownloadRequest);
     method public static android.telephony.mbms.DownloadRequest.Builder fromSerializedRequest(byte[]);
@@ -45396,7 +45287,7 @@
 
   public final class FileInfo implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getMimeType();
+    method public String getMimeType();
     method public android.net.Uri getUri();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.mbms.FileInfo> CREATOR;
@@ -45412,7 +45303,7 @@
   public class GroupCall implements java.lang.AutoCloseable {
     method public void close();
     method public long getTmgi();
-    method public void updateGroupCall(java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>);
+    method public void updateGroupCall(@NonNull java.util.List<java.lang.Integer>, @NonNull java.util.List<java.lang.Integer>);
     field public static final int REASON_BY_USER_REQUEST = 1; // 0x1
     field public static final int REASON_FREQUENCY_CONFLICT = 3; // 0x3
     field public static final int REASON_LEFT_MBMS_BROADCAST_AREA = 6; // 0x6
@@ -45424,10 +45315,10 @@
     field public static final int STATE_STOPPED = 1; // 0x1
   }
 
-  public abstract interface GroupCallCallback {
-    method public abstract void onBroadcastSignalStrengthUpdated(int);
-    method public abstract void onError(int, java.lang.String);
-    method public abstract void onGroupCallStateChanged(int, int);
+  public interface GroupCallCallback {
+    method public void onBroadcastSignalStrengthUpdated(@IntRange(from=0xffffffff, to=4) int);
+    method public void onError(int, @Nullable String);
+    method public void onGroupCallStateChanged(int, int);
     field public static final int SIGNAL_STRENGTH_UNAVAILABLE = -1; // 0xffffffff
   }
 
@@ -45438,7 +45329,7 @@
 
   public class MbmsDownloadSessionCallback {
     ctor public MbmsDownloadSessionCallback();
-    method public void onError(int, java.lang.String);
+    method public void onError(int, String);
     method public void onFileServicesUpdated(java.util.List<android.telephony.mbms.FileServiceInfo>);
     method public void onMiddlewareReady();
   }
@@ -45484,26 +45375,26 @@
     field public static final int ERROR_UNABLE_TO_START_SERVICE = 302; // 0x12e
   }
 
-  public abstract interface MbmsGroupCallSessionCallback {
-    method public abstract void onAvailableSaisUpdated(java.util.List<java.lang.Integer>, java.util.List<java.util.List<java.lang.Integer>>);
-    method public abstract void onError(int, java.lang.String);
-    method public abstract void onMiddlewareReady();
-    method public abstract void onServiceInterfaceAvailable(java.lang.String, int);
+  public interface MbmsGroupCallSessionCallback {
+    method public void onAvailableSaisUpdated(@NonNull java.util.List<java.lang.Integer>, @NonNull java.util.List<java.util.List<java.lang.Integer>>);
+    method public void onError(int, @Nullable String);
+    method public void onMiddlewareReady();
+    method public void onServiceInterfaceAvailable(@NonNull String, int);
   }
 
   public class MbmsStreamingSessionCallback {
     ctor public MbmsStreamingSessionCallback();
-    method public void onError(int, java.lang.String);
+    method public void onError(int, @Nullable String);
     method public void onMiddlewareReady();
     method public void onStreamingServicesUpdated(java.util.List<android.telephony.mbms.StreamingServiceInfo>);
   }
 
   public class ServiceInfo {
     method public java.util.List<java.util.Locale> getLocales();
-    method public java.lang.CharSequence getNameForLocale(java.util.Locale);
-    method public java.util.Set<java.util.Locale> getNamedContentLocales();
-    method public java.lang.String getServiceClassName();
-    method public java.lang.String getServiceId();
+    method @NonNull public CharSequence getNameForLocale(@NonNull java.util.Locale);
+    method @NonNull public java.util.Set<java.util.Locale> getNamedContentLocales();
+    method public String getServiceClassName();
+    method public String getServiceId();
     method public java.util.Date getSessionEndTime();
     method public java.util.Date getSessionStartTime();
   }
@@ -45511,7 +45402,7 @@
   public class StreamingService implements java.lang.AutoCloseable {
     method public void close();
     method public android.telephony.mbms.StreamingServiceInfo getInfo();
-    method public android.net.Uri getPlaybackUri();
+    method @Nullable public android.net.Uri getPlaybackUri();
     field public static final int BROADCAST_METHOD = 1; // 0x1
     field public static final int REASON_BY_USER_REQUEST = 1; // 0x1
     field public static final int REASON_END_OF_SESSION = 2; // 0x2
@@ -45529,7 +45420,7 @@
   public class StreamingServiceCallback {
     ctor public StreamingServiceCallback();
     method public void onBroadcastSignalStrengthUpdated(int);
-    method public void onError(int, java.lang.String);
+    method public void onError(int, @Nullable String);
     method public void onMediaDescriptionUpdated();
     method public void onStreamMethodUpdated(int);
     method public void onStreamStateUpdated(int, int);
@@ -45550,37 +45441,37 @@
     method public char charAt(int);
     method public void getChars(int, int, char[], int);
     method public int length();
-    method public static android.text.AlteredCharSequence make(java.lang.CharSequence, char[], int, int);
-    method public java.lang.CharSequence subSequence(int, int);
+    method public static android.text.AlteredCharSequence make(CharSequence, char[], int, int);
+    method public CharSequence subSequence(int, int);
   }
 
-  public deprecated class AndroidCharacter {
-    ctor public AndroidCharacter();
-    method public static void getDirectionalities(char[], byte[], int);
-    method public static int getEastAsianWidth(char);
-    method public static void getEastAsianWidths(char[], int, int, byte[]);
-    method public static char getMirror(char);
-    method public static boolean mirror(char[], int, int);
-    field public static final int EAST_ASIAN_WIDTH_AMBIGUOUS = 1; // 0x1
-    field public static final int EAST_ASIAN_WIDTH_FULL_WIDTH = 3; // 0x3
-    field public static final int EAST_ASIAN_WIDTH_HALF_WIDTH = 2; // 0x2
-    field public static final int EAST_ASIAN_WIDTH_NARROW = 4; // 0x4
-    field public static final int EAST_ASIAN_WIDTH_NEUTRAL = 0; // 0x0
-    field public static final int EAST_ASIAN_WIDTH_WIDE = 5; // 0x5
+  @Deprecated public class AndroidCharacter {
+    ctor @Deprecated public AndroidCharacter();
+    method @Deprecated public static void getDirectionalities(char[], byte[], int);
+    method @Deprecated public static int getEastAsianWidth(char);
+    method @Deprecated public static void getEastAsianWidths(char[], int, int, byte[]);
+    method @Deprecated public static char getMirror(char);
+    method @Deprecated public static boolean mirror(char[], int, int);
+    field @Deprecated public static final int EAST_ASIAN_WIDTH_AMBIGUOUS = 1; // 0x1
+    field @Deprecated public static final int EAST_ASIAN_WIDTH_FULL_WIDTH = 3; // 0x3
+    field @Deprecated public static final int EAST_ASIAN_WIDTH_HALF_WIDTH = 2; // 0x2
+    field @Deprecated public static final int EAST_ASIAN_WIDTH_NARROW = 4; // 0x4
+    field @Deprecated public static final int EAST_ASIAN_WIDTH_NEUTRAL = 0; // 0x0
+    field @Deprecated public static final int EAST_ASIAN_WIDTH_WIDE = 5; // 0x5
   }
 
   public class Annotation implements android.text.ParcelableSpan {
-    ctor public Annotation(java.lang.String, java.lang.String);
+    ctor public Annotation(String, String);
     ctor public Annotation(android.os.Parcel);
     method public int describeContents();
-    method public java.lang.String getKey();
+    method public String getKey();
     method public int getSpanTypeId();
-    method public java.lang.String getValue();
+    method public String getValue();
     method public void writeToParcel(android.os.Parcel, int);
   }
 
   public class AutoText {
-    method public static java.lang.String get(java.lang.CharSequence, int, int, android.view.View);
+    method public static String get(CharSequence, int, int, android.view.View);
     method public static int getSize(android.view.View);
   }
 
@@ -45589,17 +45480,17 @@
     method public static android.text.BidiFormatter getInstance(boolean);
     method public static android.text.BidiFormatter getInstance(java.util.Locale);
     method public boolean getStereoReset();
-    method public boolean isRtl(java.lang.String);
-    method public boolean isRtl(java.lang.CharSequence);
+    method public boolean isRtl(String);
+    method public boolean isRtl(CharSequence);
     method public boolean isRtlContext();
-    method public java.lang.String unicodeWrap(java.lang.String, android.text.TextDirectionHeuristic, boolean);
-    method public java.lang.CharSequence unicodeWrap(java.lang.CharSequence, android.text.TextDirectionHeuristic, boolean);
-    method public java.lang.String unicodeWrap(java.lang.String, android.text.TextDirectionHeuristic);
-    method public java.lang.CharSequence unicodeWrap(java.lang.CharSequence, android.text.TextDirectionHeuristic);
-    method public java.lang.String unicodeWrap(java.lang.String, boolean);
-    method public java.lang.CharSequence unicodeWrap(java.lang.CharSequence, boolean);
-    method public java.lang.String unicodeWrap(java.lang.String);
-    method public java.lang.CharSequence unicodeWrap(java.lang.CharSequence);
+    method @Nullable public String unicodeWrap(@Nullable String, android.text.TextDirectionHeuristic, boolean);
+    method @Nullable public CharSequence unicodeWrap(@Nullable CharSequence, android.text.TextDirectionHeuristic, boolean);
+    method public String unicodeWrap(String, android.text.TextDirectionHeuristic);
+    method public CharSequence unicodeWrap(CharSequence, android.text.TextDirectionHeuristic);
+    method public String unicodeWrap(String, boolean);
+    method public CharSequence unicodeWrap(CharSequence, boolean);
+    method public String unicodeWrap(String);
+    method public CharSequence unicodeWrap(CharSequence);
   }
 
   public static final class BidiFormatter.Builder {
@@ -45612,8 +45503,8 @@
   }
 
   public class BoringLayout extends android.text.Layout implements android.text.TextUtils.EllipsizeCallback {
-    ctor public BoringLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean);
-    ctor public BoringLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int);
+    ctor public BoringLayout(CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean);
+    ctor public BoringLayout(CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int);
     method public void ellipsized(int, int);
     method public int getBottomPadding();
     method public int getEllipsisCount(int);
@@ -45626,12 +45517,12 @@
     method public int getLineTop(int);
     method public int getParagraphDirection(int);
     method public int getTopPadding();
-    method public static android.text.BoringLayout.Metrics isBoring(java.lang.CharSequence, android.text.TextPaint);
-    method public static android.text.BoringLayout.Metrics isBoring(java.lang.CharSequence, android.text.TextPaint, android.text.BoringLayout.Metrics);
-    method public static android.text.BoringLayout make(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean);
-    method public static android.text.BoringLayout make(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int);
-    method public android.text.BoringLayout replaceOrMake(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean);
-    method public android.text.BoringLayout replaceOrMake(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int);
+    method public static android.text.BoringLayout.Metrics isBoring(CharSequence, android.text.TextPaint);
+    method public static android.text.BoringLayout.Metrics isBoring(CharSequence, android.text.TextPaint, android.text.BoringLayout.Metrics);
+    method public static android.text.BoringLayout make(CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean);
+    method public static android.text.BoringLayout make(CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int);
+    method public android.text.BoringLayout replaceOrMake(CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean);
+    method public android.text.BoringLayout replaceOrMake(CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int);
   }
 
   public static class BoringLayout.Metrics extends android.graphics.Paint.FontMetricsInt {
@@ -45639,17 +45530,17 @@
     field public int width;
   }
 
-  public abstract deprecated class ClipboardManager {
-    ctor public ClipboardManager();
-    method public abstract java.lang.CharSequence getText();
-    method public abstract boolean hasText();
-    method public abstract void setText(java.lang.CharSequence);
+  @Deprecated public abstract class ClipboardManager {
+    ctor @Deprecated public ClipboardManager();
+    method @Deprecated public abstract CharSequence getText();
+    method @Deprecated public abstract boolean hasText();
+    method @Deprecated public abstract void setText(CharSequence);
   }
 
   public class DynamicLayout extends android.text.Layout {
-    ctor public deprecated DynamicLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean);
-    ctor public deprecated DynamicLayout(java.lang.CharSequence, java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean);
-    ctor public deprecated DynamicLayout(java.lang.CharSequence, java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean, android.text.TextUtils.TruncateAt, int);
+    ctor @Deprecated public DynamicLayout(@NonNull CharSequence, @NonNull android.text.TextPaint, @IntRange(from=0) int, @NonNull android.text.Layout.Alignment, @FloatRange(from=0.0) float, float, boolean);
+    ctor @Deprecated public DynamicLayout(@NonNull CharSequence, @NonNull CharSequence, @NonNull android.text.TextPaint, @IntRange(from=0) int, @NonNull android.text.Layout.Alignment, @FloatRange(from=0.0) float, float, boolean);
+    ctor @Deprecated public DynamicLayout(@NonNull CharSequence, @NonNull CharSequence, @NonNull android.text.TextPaint, @IntRange(from=0) int, @NonNull android.text.Layout.Alignment, @FloatRange(from=0.0) float, float, boolean, @Nullable android.text.TextUtils.TruncateAt, @IntRange(from=0) int);
     method public int getBottomPadding();
     method public int getEllipsisCount(int);
     method public int getEllipsisStart(int);
@@ -45664,54 +45555,54 @@
   }
 
   public static final class DynamicLayout.Builder {
-    method public android.text.DynamicLayout build();
-    method public static android.text.DynamicLayout.Builder obtain(java.lang.CharSequence, android.text.TextPaint, int);
-    method public android.text.DynamicLayout.Builder setAlignment(android.text.Layout.Alignment);
-    method public android.text.DynamicLayout.Builder setBreakStrategy(int);
-    method public android.text.DynamicLayout.Builder setDisplayText(java.lang.CharSequence);
-    method public android.text.DynamicLayout.Builder setEllipsize(android.text.TextUtils.TruncateAt);
-    method public android.text.DynamicLayout.Builder setEllipsizedWidth(int);
-    method public android.text.DynamicLayout.Builder setHyphenationFrequency(int);
-    method public android.text.DynamicLayout.Builder setIncludePad(boolean);
-    method public android.text.DynamicLayout.Builder setJustificationMode(int);
-    method public android.text.DynamicLayout.Builder setLineSpacing(float, float);
-    method public android.text.DynamicLayout.Builder setTextDirection(android.text.TextDirectionHeuristic);
-    method public android.text.DynamicLayout.Builder setUseLineSpacingFromFallbacks(boolean);
+    method @NonNull public android.text.DynamicLayout build();
+    method @NonNull public static android.text.DynamicLayout.Builder obtain(@NonNull CharSequence, @NonNull android.text.TextPaint, @IntRange(from=0) int);
+    method @NonNull public android.text.DynamicLayout.Builder setAlignment(@NonNull android.text.Layout.Alignment);
+    method @NonNull public android.text.DynamicLayout.Builder setBreakStrategy(int);
+    method @NonNull public android.text.DynamicLayout.Builder setDisplayText(@NonNull CharSequence);
+    method public android.text.DynamicLayout.Builder setEllipsize(@Nullable android.text.TextUtils.TruncateAt);
+    method @NonNull public android.text.DynamicLayout.Builder setEllipsizedWidth(@IntRange(from=0) int);
+    method @NonNull public android.text.DynamicLayout.Builder setHyphenationFrequency(int);
+    method @NonNull public android.text.DynamicLayout.Builder setIncludePad(boolean);
+    method @NonNull public android.text.DynamicLayout.Builder setJustificationMode(int);
+    method @NonNull public android.text.DynamicLayout.Builder setLineSpacing(float, @FloatRange(from=0.0) float);
+    method @NonNull public android.text.DynamicLayout.Builder setTextDirection(@NonNull android.text.TextDirectionHeuristic);
+    method @NonNull public android.text.DynamicLayout.Builder setUseLineSpacingFromFallbacks(boolean);
   }
 
-  public abstract interface Editable implements java.lang.Appendable java.lang.CharSequence android.text.GetChars android.text.Spannable {
-    method public abstract android.text.Editable append(java.lang.CharSequence);
-    method public abstract android.text.Editable append(java.lang.CharSequence, int, int);
-    method public abstract android.text.Editable append(char);
-    method public abstract void clear();
-    method public abstract void clearSpans();
-    method public abstract android.text.Editable delete(int, int);
-    method public abstract android.text.InputFilter[] getFilters();
-    method public abstract android.text.Editable insert(int, java.lang.CharSequence, int, int);
-    method public abstract android.text.Editable insert(int, java.lang.CharSequence);
-    method public abstract android.text.Editable replace(int, int, java.lang.CharSequence, int, int);
-    method public abstract android.text.Editable replace(int, int, java.lang.CharSequence);
-    method public abstract void setFilters(android.text.InputFilter[]);
+  public interface Editable extends java.lang.CharSequence java.lang.Appendable android.text.GetChars android.text.Spannable {
+    method public android.text.Editable append(CharSequence);
+    method public android.text.Editable append(CharSequence, int, int);
+    method public android.text.Editable append(char);
+    method public void clear();
+    method public void clearSpans();
+    method public android.text.Editable delete(int, int);
+    method public android.text.InputFilter[] getFilters();
+    method public android.text.Editable insert(int, CharSequence, int, int);
+    method public android.text.Editable insert(int, CharSequence);
+    method public android.text.Editable replace(int, int, CharSequence, int, int);
+    method public android.text.Editable replace(int, int, CharSequence);
+    method public void setFilters(android.text.InputFilter[]);
   }
 
   public static class Editable.Factory {
     ctor public Editable.Factory();
     method public static android.text.Editable.Factory getInstance();
-    method public android.text.Editable newEditable(java.lang.CharSequence);
+    method public android.text.Editable newEditable(CharSequence);
   }
 
-  public abstract interface GetChars implements java.lang.CharSequence {
-    method public abstract void getChars(int, int, char[], int);
+  public interface GetChars extends java.lang.CharSequence {
+    method public void getChars(int, int, char[], int);
   }
 
   public class Html {
-    method public static java.lang.String escapeHtml(java.lang.CharSequence);
-    method public static deprecated android.text.Spanned fromHtml(java.lang.String);
-    method public static android.text.Spanned fromHtml(java.lang.String, int);
-    method public static deprecated android.text.Spanned fromHtml(java.lang.String, android.text.Html.ImageGetter, android.text.Html.TagHandler);
-    method public static android.text.Spanned fromHtml(java.lang.String, int, android.text.Html.ImageGetter, android.text.Html.TagHandler);
-    method public static deprecated java.lang.String toHtml(android.text.Spanned);
-    method public static java.lang.String toHtml(android.text.Spanned, int);
+    method public static String escapeHtml(CharSequence);
+    method @Deprecated public static android.text.Spanned fromHtml(String);
+    method public static android.text.Spanned fromHtml(String, int);
+    method @Deprecated public static android.text.Spanned fromHtml(String, android.text.Html.ImageGetter, android.text.Html.TagHandler);
+    method public static android.text.Spanned fromHtml(String, int, android.text.Html.ImageGetter, android.text.Html.TagHandler);
+    method @Deprecated public static String toHtml(android.text.Spanned);
+    method public static String toHtml(android.text.Spanned, int);
     field public static final int FROM_HTML_MODE_COMPACT = 63; // 0x3f
     field public static final int FROM_HTML_MODE_LEGACY = 0; // 0x0
     field public static final int FROM_HTML_OPTION_USE_CSS_COLORS = 256; // 0x100
@@ -45725,12 +45616,12 @@
     field public static final int TO_HTML_PARAGRAPH_LINES_INDIVIDUAL = 1; // 0x1
   }
 
-  public static abstract interface Html.ImageGetter {
-    method public abstract android.graphics.drawable.Drawable getDrawable(java.lang.String);
+  public static interface Html.ImageGetter {
+    method public android.graphics.drawable.Drawable getDrawable(String);
   }
 
-  public static abstract interface Html.TagHandler {
-    method public abstract void handleTag(boolean, java.lang.String, android.text.Editable, org.xml.sax.XMLReader);
+  public static interface Html.TagHandler {
+    method public void handleTag(boolean, String, android.text.Editable, org.xml.sax.XMLReader);
   }
 
   public class Hyphenator {
@@ -45749,23 +45640,23 @@
     field public static final int START_HYPHEN_EDIT_NO_EDIT = 0; // 0x0
   }
 
-  public abstract interface InputFilter {
-    method public abstract java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int);
+  public interface InputFilter {
+    method public CharSequence filter(CharSequence, int, int, android.text.Spanned, int, int);
   }
 
   public static class InputFilter.AllCaps implements android.text.InputFilter {
     ctor public InputFilter.AllCaps();
-    ctor public InputFilter.AllCaps(java.util.Locale);
-    method public java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int);
+    ctor public InputFilter.AllCaps(@NonNull java.util.Locale);
+    method public CharSequence filter(CharSequence, int, int, android.text.Spanned, int, int);
   }
 
   public static class InputFilter.LengthFilter implements android.text.InputFilter {
     ctor public InputFilter.LengthFilter(int);
-    method public java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int);
+    method public CharSequence filter(CharSequence, int, int, android.text.Spanned, int, int);
     method public int getMax();
   }
 
-  public abstract interface InputType {
+  public interface InputType {
     field public static final int TYPE_CLASS_DATETIME = 4; // 0x4
     field public static final int TYPE_CLASS_NUMBER = 2; // 0x2
     field public static final int TYPE_CLASS_PHONE = 3; // 0x3
@@ -45807,14 +45698,14 @@
   }
 
   public abstract class Layout {
-    ctor protected Layout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float);
+    ctor protected Layout(CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float);
     method public void draw(android.graphics.Canvas);
     method public void draw(android.graphics.Canvas, android.graphics.Path, android.graphics.Paint, int);
     method public final android.text.Layout.Alignment getAlignment();
     method public abstract int getBottomPadding();
-    method public void getCursorPath(int, android.graphics.Path, java.lang.CharSequence);
-    method public static float getDesiredWidth(java.lang.CharSequence, android.text.TextPaint);
-    method public static float getDesiredWidth(java.lang.CharSequence, int, int, android.text.TextPaint);
+    method public void getCursorPath(int, android.graphics.Path, CharSequence);
+    method public static float getDesiredWidth(CharSequence, android.text.TextPaint);
+    method public static float getDesiredWidth(CharSequence, int, int, android.text.TextPaint);
     method public abstract int getEllipsisCount(int);
     method public abstract int getEllipsisStart(int);
     method public int getEllipsizedWidth();
@@ -45850,7 +45741,7 @@
     method public void getSelectionPath(int, int, android.graphics.Path);
     method public final float getSpacingAdd();
     method public final float getSpacingMultiplier();
-    method public final java.lang.CharSequence getText();
+    method public final CharSequence getText();
     method public abstract int getTopPadding();
     method public final int getWidth();
     method public final void increaseWidthTo(int);
@@ -45870,9 +45761,7 @@
     field public static final int JUSTIFICATION_MODE_NONE = 0; // 0x0
   }
 
-  public static final class Layout.Alignment extends java.lang.Enum {
-    method public static android.text.Layout.Alignment valueOf(java.lang.String);
-    method public static final android.text.Layout.Alignment[] values();
+  public enum Layout.Alignment {
     enum_constant public static final android.text.Layout.Alignment ALIGN_CENTER;
     enum_constant public static final android.text.Layout.Alignment ALIGN_NORMAL;
     enum_constant public static final android.text.Layout.Alignment ALIGN_OPPOSITE;
@@ -45882,7 +45771,7 @@
   }
 
   public abstract class LoginFilter implements android.text.InputFilter {
-    method public java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int);
+    method public CharSequence filter(CharSequence, int, int, android.text.Spanned, int, int);
     method public abstract boolean isAllowed(char);
     method public void onInvalidCharacter(char);
     method public void onStart();
@@ -45907,51 +45796,51 @@
     method public boolean isAllowed(char);
   }
 
-  public abstract interface NoCopySpan {
+  public interface NoCopySpan {
   }
 
   public static class NoCopySpan.Concrete implements android.text.NoCopySpan {
     ctor public NoCopySpan.Concrete();
   }
 
-  public abstract interface ParcelableSpan implements android.os.Parcelable {
-    method public abstract int getSpanTypeId();
+  public interface ParcelableSpan extends android.os.Parcelable {
+    method public int getSpanTypeId();
   }
 
   public class PrecomputedText implements android.text.Spannable {
     method public char charAt(int);
-    method public static android.text.PrecomputedText create(java.lang.CharSequence, android.text.PrecomputedText.Params);
-    method public void getBounds(int, int, android.graphics.Rect);
-    method public int getParagraphCount();
-    method public int getParagraphEnd(int);
-    method public int getParagraphStart(int);
-    method public android.text.PrecomputedText.Params getParams();
-    method public int getSpanEnd(java.lang.Object);
-    method public int getSpanFlags(java.lang.Object);
-    method public int getSpanStart(java.lang.Object);
-    method public <T> T[] getSpans(int, int, java.lang.Class<T>);
-    method public float getWidth(int, int);
+    method public static android.text.PrecomputedText create(@NonNull CharSequence, @NonNull android.text.PrecomputedText.Params);
+    method public void getBounds(@IntRange(from=0) int, @IntRange(from=0) int, @NonNull android.graphics.Rect);
+    method @IntRange(from=0) public int getParagraphCount();
+    method @IntRange(from=0) public int getParagraphEnd(@IntRange(from=0) int);
+    method @IntRange(from=0) public int getParagraphStart(@IntRange(from=0) int);
+    method @NonNull public android.text.PrecomputedText.Params getParams();
+    method public int getSpanEnd(Object);
+    method public int getSpanFlags(Object);
+    method public int getSpanStart(Object);
+    method public <T> T[] getSpans(int, int, Class<T>);
+    method @FloatRange(from=0) public float getWidth(@IntRange(from=0) int, @IntRange(from=0) int);
     method public int length();
-    method public int nextSpanTransition(int, int, java.lang.Class);
-    method public void removeSpan(java.lang.Object);
-    method public void setSpan(java.lang.Object, int, int, int);
-    method public java.lang.CharSequence subSequence(int, int);
+    method public int nextSpanTransition(int, int, Class);
+    method public void removeSpan(Object);
+    method public void setSpan(Object, int, int, int);
+    method public CharSequence subSequence(int, int);
   }
 
   public static final class PrecomputedText.Params {
     method public int getBreakStrategy();
     method public int getHyphenationFrequency();
-    method public android.text.TextDirectionHeuristic getTextDirection();
-    method public android.text.TextPaint getTextPaint();
+    method @NonNull public android.text.TextDirectionHeuristic getTextDirection();
+    method @NonNull public android.text.TextPaint getTextPaint();
   }
 
   public static class PrecomputedText.Params.Builder {
-    ctor public PrecomputedText.Params.Builder(android.text.TextPaint);
-    ctor public PrecomputedText.Params.Builder(android.text.PrecomputedText.Params);
-    method public android.text.PrecomputedText.Params build();
+    ctor public PrecomputedText.Params.Builder(@NonNull android.text.TextPaint);
+    ctor public PrecomputedText.Params.Builder(@NonNull android.text.PrecomputedText.Params);
+    method @NonNull public android.text.PrecomputedText.Params build();
     method public android.text.PrecomputedText.Params.Builder setBreakStrategy(int);
     method public android.text.PrecomputedText.Params.Builder setHyphenationFrequency(int);
-    method public android.text.PrecomputedText.Params.Builder setTextDirection(android.text.TextDirectionHeuristic);
+    method public android.text.PrecomputedText.Params.Builder setTextDirection(@NonNull android.text.TextDirectionHeuristic);
   }
 
   public class Selection {
@@ -45962,8 +45851,8 @@
     method public static boolean extendToLeftEdge(android.text.Spannable, android.text.Layout);
     method public static boolean extendToRightEdge(android.text.Spannable, android.text.Layout);
     method public static boolean extendUp(android.text.Spannable, android.text.Layout);
-    method public static final int getSelectionEnd(java.lang.CharSequence);
-    method public static final int getSelectionStart(java.lang.CharSequence);
+    method public static final int getSelectionEnd(CharSequence);
+    method public static final int getSelectionStart(CharSequence);
     method public static boolean moveDown(android.text.Spannable, android.text.Layout);
     method public static boolean moveLeft(android.text.Spannable, android.text.Layout);
     method public static boolean moveRight(android.text.Spannable, android.text.Layout);
@@ -45974,42 +45863,51 @@
     method public static final void selectAll(android.text.Spannable);
     method public static void setSelection(android.text.Spannable, int, int);
     method public static final void setSelection(android.text.Spannable, int);
-    field public static final java.lang.Object SELECTION_END;
-    field public static final java.lang.Object SELECTION_START;
+    field public static final Object SELECTION_END;
+    field public static final Object SELECTION_START;
   }
 
-  public abstract interface SpanWatcher implements android.text.NoCopySpan {
-    method public abstract void onSpanAdded(android.text.Spannable, java.lang.Object, int, int);
-    method public abstract void onSpanChanged(android.text.Spannable, java.lang.Object, int, int, int, int);
-    method public abstract void onSpanRemoved(android.text.Spannable, java.lang.Object, int, int);
+  public interface SpanWatcher extends android.text.NoCopySpan {
+    method public void onSpanAdded(android.text.Spannable, Object, int, int);
+    method public void onSpanChanged(android.text.Spannable, Object, int, int, int, int);
+    method public void onSpanRemoved(android.text.Spannable, Object, int, int);
   }
 
-  public abstract interface Spannable implements android.text.Spanned {
-    method public abstract void removeSpan(java.lang.Object);
-    method public abstract void setSpan(java.lang.Object, int, int, int);
+  public interface Spannable extends android.text.Spanned {
+    method public void removeSpan(Object);
+    method public void setSpan(Object, int, int, int);
   }
 
   public static class Spannable.Factory {
     ctor public Spannable.Factory();
     method public static android.text.Spannable.Factory getInstance();
-    method public android.text.Spannable newSpannable(java.lang.CharSequence);
+    method public android.text.Spannable newSpannable(CharSequence);
   }
 
   public class SpannableString implements java.lang.CharSequence android.text.GetChars android.text.Spannable {
-    ctor public SpannableString(java.lang.CharSequence);
-    method public void removeSpan(java.lang.Object);
-    method public void setSpan(java.lang.Object, int, int, int);
-    method public final java.lang.CharSequence subSequence(int, int);
-    method public static android.text.SpannableString valueOf(java.lang.CharSequence);
+    ctor public SpannableString(CharSequence);
+    method public final char charAt(int);
+    method public final void getChars(int, int, char[], int);
+    method public int getSpanEnd(Object);
+    method public int getSpanFlags(Object);
+    method public int getSpanStart(Object);
+    method public <T> T[] getSpans(int, int, Class<T>);
+    method public final int length();
+    method public int nextSpanTransition(int, int, Class);
+    method public void removeSpan(Object);
+    method public void setSpan(Object, int, int, int);
+    method public final CharSequence subSequence(int, int);
+    method public final String toString();
+    method public static android.text.SpannableString valueOf(CharSequence);
   }
 
   public class SpannableStringBuilder implements java.lang.Appendable java.lang.CharSequence android.text.Editable android.text.GetChars android.text.Spannable {
     ctor public SpannableStringBuilder();
-    ctor public SpannableStringBuilder(java.lang.CharSequence);
-    ctor public SpannableStringBuilder(java.lang.CharSequence, int, int);
-    method public android.text.SpannableStringBuilder append(java.lang.CharSequence);
-    method public android.text.SpannableStringBuilder append(java.lang.CharSequence, java.lang.Object, int);
-    method public android.text.SpannableStringBuilder append(java.lang.CharSequence, int, int);
+    ctor public SpannableStringBuilder(CharSequence);
+    ctor public SpannableStringBuilder(CharSequence, int, int);
+    method public android.text.SpannableStringBuilder append(CharSequence);
+    method public android.text.SpannableStringBuilder append(CharSequence, Object, int);
+    method public android.text.SpannableStringBuilder append(CharSequence, int, int);
     method public android.text.SpannableStringBuilder append(char);
     method public char charAt(int);
     method public void clear();
@@ -46017,31 +45915,31 @@
     method public android.text.SpannableStringBuilder delete(int, int);
     method public void getChars(int, int, char[], int);
     method public android.text.InputFilter[] getFilters();
-    method public int getSpanEnd(java.lang.Object);
-    method public int getSpanFlags(java.lang.Object);
-    method public int getSpanStart(java.lang.Object);
-    method public <T> T[] getSpans(int, int, java.lang.Class<T>);
-    method public deprecated int getTextRunCursor(int, int, int, int, int, android.graphics.Paint);
+    method public int getSpanEnd(Object);
+    method public int getSpanFlags(Object);
+    method public int getSpanStart(Object);
+    method public <T> T[] getSpans(int, int, @Nullable Class<T>);
+    method @Deprecated public int getTextRunCursor(int, int, int, int, int, android.graphics.Paint);
     method public int getTextWatcherDepth();
-    method public android.text.SpannableStringBuilder insert(int, java.lang.CharSequence, int, int);
-    method public android.text.SpannableStringBuilder insert(int, java.lang.CharSequence);
+    method public android.text.SpannableStringBuilder insert(int, CharSequence, int, int);
+    method public android.text.SpannableStringBuilder insert(int, CharSequence);
     method public int length();
-    method public int nextSpanTransition(int, int, java.lang.Class);
-    method public void removeSpan(java.lang.Object);
-    method public android.text.SpannableStringBuilder replace(int, int, java.lang.CharSequence);
-    method public android.text.SpannableStringBuilder replace(int, int, java.lang.CharSequence, int, int);
+    method public int nextSpanTransition(int, int, Class);
+    method public void removeSpan(Object);
+    method public android.text.SpannableStringBuilder replace(int, int, CharSequence);
+    method public android.text.SpannableStringBuilder replace(int, int, CharSequence, int, int);
     method public void setFilters(android.text.InputFilter[]);
-    method public void setSpan(java.lang.Object, int, int, int);
-    method public java.lang.CharSequence subSequence(int, int);
-    method public static android.text.SpannableStringBuilder valueOf(java.lang.CharSequence);
+    method public void setSpan(Object, int, int, int);
+    method public CharSequence subSequence(int, int);
+    method public static android.text.SpannableStringBuilder valueOf(CharSequence);
   }
 
-  public abstract interface Spanned implements java.lang.CharSequence {
-    method public abstract int getSpanEnd(java.lang.Object);
-    method public abstract int getSpanFlags(java.lang.Object);
-    method public abstract int getSpanStart(java.lang.Object);
-    method public abstract <T> T[] getSpans(int, int, java.lang.Class<T>);
-    method public abstract int nextSpanTransition(int, int, java.lang.Class);
+  public interface Spanned extends java.lang.CharSequence {
+    method public int getSpanEnd(Object);
+    method public int getSpanFlags(Object);
+    method public int getSpanStart(Object);
+    method public <T> T[] getSpans(int, int, Class<T>);
+    method public int nextSpanTransition(int, int, Class);
     field public static final int SPAN_COMPOSING = 256; // 0x100
     field public static final int SPAN_EXCLUSIVE_EXCLUSIVE = 33; // 0x21
     field public static final int SPAN_EXCLUSIVE_INCLUSIVE = 34; // 0x22
@@ -46061,15 +45959,23 @@
   }
 
   public final class SpannedString implements java.lang.CharSequence android.text.GetChars android.text.Spanned {
-    ctor public SpannedString(java.lang.CharSequence);
-    method public java.lang.CharSequence subSequence(int, int);
-    method public static android.text.SpannedString valueOf(java.lang.CharSequence);
+    ctor public SpannedString(CharSequence);
+    method public final char charAt(int);
+    method public final void getChars(int, int, char[], int);
+    method public int getSpanEnd(Object);
+    method public int getSpanFlags(Object);
+    method public int getSpanStart(Object);
+    method public <T> T[] getSpans(int, int, Class<T>);
+    method public final int length();
+    method public int nextSpanTransition(int, int, Class);
+    method public CharSequence subSequence(int, int);
+    method public static android.text.SpannedString valueOf(CharSequence);
   }
 
   public class StaticLayout extends android.text.Layout {
-    ctor public deprecated StaticLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean);
-    ctor public deprecated StaticLayout(java.lang.CharSequence, int, int, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean);
-    ctor public deprecated StaticLayout(java.lang.CharSequence, int, int, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean, android.text.TextUtils.TruncateAt, int);
+    ctor @Deprecated public StaticLayout(CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean);
+    ctor @Deprecated public StaticLayout(CharSequence, int, int, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean);
+    ctor @Deprecated public StaticLayout(CharSequence, int, int, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean, android.text.TextUtils.TruncateAt, int);
     method public int getBottomPadding();
     method public int getEllipsisCount(int);
     method public int getEllipsisStart(int);
@@ -46084,26 +45990,26 @@
   }
 
   public static final class StaticLayout.Builder {
-    method public android.text.StaticLayout build();
-    method public static android.text.StaticLayout.Builder obtain(java.lang.CharSequence, int, int, android.text.TextPaint, int);
-    method public android.text.StaticLayout.Builder setAlignment(android.text.Layout.Alignment);
-    method public android.text.StaticLayout.Builder setBreakStrategy(int);
-    method public android.text.StaticLayout.Builder setEllipsize(android.text.TextUtils.TruncateAt);
-    method public android.text.StaticLayout.Builder setEllipsizedWidth(int);
-    method public android.text.StaticLayout.Builder setHyphenationFrequency(int);
-    method public android.text.StaticLayout.Builder setIncludePad(boolean);
-    method public android.text.StaticLayout.Builder setIndents(int[], int[]);
-    method public android.text.StaticLayout.Builder setJustificationMode(int);
-    method public android.text.StaticLayout.Builder setLineSpacing(float, float);
-    method public android.text.StaticLayout.Builder setMaxLines(int);
-    method public android.text.StaticLayout.Builder setText(java.lang.CharSequence);
-    method public android.text.StaticLayout.Builder setTextDirection(android.text.TextDirectionHeuristic);
-    method public android.text.StaticLayout.Builder setUseLineSpacingFromFallbacks(boolean);
+    method @NonNull public android.text.StaticLayout build();
+    method @NonNull public static android.text.StaticLayout.Builder obtain(@NonNull CharSequence, @IntRange(from=0) int, @IntRange(from=0) int, @NonNull android.text.TextPaint, @IntRange(from=0) int);
+    method @NonNull public android.text.StaticLayout.Builder setAlignment(@NonNull android.text.Layout.Alignment);
+    method @NonNull public android.text.StaticLayout.Builder setBreakStrategy(int);
+    method @NonNull public android.text.StaticLayout.Builder setEllipsize(@Nullable android.text.TextUtils.TruncateAt);
+    method @NonNull public android.text.StaticLayout.Builder setEllipsizedWidth(@IntRange(from=0) int);
+    method @NonNull public android.text.StaticLayout.Builder setHyphenationFrequency(int);
+    method @NonNull public android.text.StaticLayout.Builder setIncludePad(boolean);
+    method @NonNull public android.text.StaticLayout.Builder setIndents(@Nullable int[], @Nullable int[]);
+    method @NonNull public android.text.StaticLayout.Builder setJustificationMode(int);
+    method @NonNull public android.text.StaticLayout.Builder setLineSpacing(float, @FloatRange(from=0.0) float);
+    method @NonNull public android.text.StaticLayout.Builder setMaxLines(@IntRange(from=0) int);
+    method public android.text.StaticLayout.Builder setText(CharSequence);
+    method @NonNull public android.text.StaticLayout.Builder setTextDirection(@NonNull android.text.TextDirectionHeuristic);
+    method @NonNull public android.text.StaticLayout.Builder setUseLineSpacingFromFallbacks(boolean);
   }
 
-  public abstract interface TextDirectionHeuristic {
-    method public abstract boolean isRtl(char[], int, int);
-    method public abstract boolean isRtl(java.lang.CharSequence, int, int);
+  public interface TextDirectionHeuristic {
+    method public boolean isRtl(char[], int, int);
+    method public boolean isRtl(CharSequence, int, int);
   }
 
   public class TextDirectionHeuristics {
@@ -46122,55 +46028,55 @@
     ctor public TextPaint(android.graphics.Paint);
     method public void set(android.text.TextPaint);
     field public int baselineShift;
-    field public int bgColor;
+    field @ColorInt public int bgColor;
     field public float density;
     field public int[] drawableState;
-    field public int linkColor;
-    field public int underlineColor;
-    field public float underlineThickness;
+    field @ColorInt public int linkColor;
+    field @ColorInt public int underlineColor;
+    field @Px public float underlineThickness;
   }
 
   public class TextUtils {
-    method public static deprecated java.lang.CharSequence commaEllipsize(java.lang.CharSequence, android.text.TextPaint, float, java.lang.String, java.lang.String);
-    method public static java.lang.CharSequence concat(java.lang.CharSequence...);
-    method public static void copySpansFrom(android.text.Spanned, int, int, java.lang.Class, android.text.Spannable, int);
-    method public static void dumpSpans(java.lang.CharSequence, android.util.Printer, java.lang.String);
-    method public static java.lang.CharSequence ellipsize(java.lang.CharSequence, android.text.TextPaint, float, android.text.TextUtils.TruncateAt);
-    method public static java.lang.CharSequence ellipsize(java.lang.CharSequence, android.text.TextPaint, float, android.text.TextUtils.TruncateAt, boolean, android.text.TextUtils.EllipsizeCallback);
-    method public static boolean equals(java.lang.CharSequence, java.lang.CharSequence);
-    method public static java.lang.CharSequence expandTemplate(java.lang.CharSequence, java.lang.CharSequence...);
-    method public static int getCapsMode(java.lang.CharSequence, int, int);
-    method public static void getChars(java.lang.CharSequence, int, int, char[], int);
+    method @Deprecated public static CharSequence commaEllipsize(CharSequence, android.text.TextPaint, float, String, String);
+    method public static CharSequence concat(java.lang.CharSequence...);
+    method public static void copySpansFrom(android.text.Spanned, int, int, Class, android.text.Spannable, int);
+    method public static void dumpSpans(CharSequence, android.util.Printer, String);
+    method public static CharSequence ellipsize(CharSequence, android.text.TextPaint, float, android.text.TextUtils.TruncateAt);
+    method public static CharSequence ellipsize(CharSequence, android.text.TextPaint, float, android.text.TextUtils.TruncateAt, boolean, @Nullable android.text.TextUtils.EllipsizeCallback);
+    method public static boolean equals(CharSequence, CharSequence);
+    method public static CharSequence expandTemplate(CharSequence, java.lang.CharSequence...);
+    method public static int getCapsMode(CharSequence, int, int);
+    method public static void getChars(CharSequence, int, int, char[], int);
     method public static int getLayoutDirectionFromLocale(java.util.Locale);
-    method public static int getOffsetAfter(java.lang.CharSequence, int);
-    method public static int getOffsetBefore(java.lang.CharSequence, int);
-    method public static deprecated java.lang.CharSequence getReverse(java.lang.CharSequence, int, int);
-    method public static int getTrimmedLength(java.lang.CharSequence);
-    method public static java.lang.String htmlEncode(java.lang.String);
-    method public static int indexOf(java.lang.CharSequence, char);
-    method public static int indexOf(java.lang.CharSequence, char, int);
-    method public static int indexOf(java.lang.CharSequence, char, int, int);
-    method public static int indexOf(java.lang.CharSequence, java.lang.CharSequence);
-    method public static int indexOf(java.lang.CharSequence, java.lang.CharSequence, int);
-    method public static int indexOf(java.lang.CharSequence, java.lang.CharSequence, int, int);
-    method public static boolean isDigitsOnly(java.lang.CharSequence);
-    method public static boolean isEmpty(java.lang.CharSequence);
-    method public static boolean isGraphic(java.lang.CharSequence);
-    method public static deprecated boolean isGraphic(char);
-    method public static java.lang.String join(java.lang.CharSequence, java.lang.Object[]);
-    method public static java.lang.String join(java.lang.CharSequence, java.lang.Iterable);
-    method public static int lastIndexOf(java.lang.CharSequence, char);
-    method public static int lastIndexOf(java.lang.CharSequence, char, int);
-    method public static int lastIndexOf(java.lang.CharSequence, char, int, int);
-    method public static java.lang.CharSequence listEllipsize(android.content.Context, java.util.List<java.lang.CharSequence>, java.lang.String, android.text.TextPaint, float, int);
-    method public static java.lang.CharSequence makeSafeForPresentation(java.lang.String, int, float, int);
-    method public static boolean regionMatches(java.lang.CharSequence, int, java.lang.CharSequence, int, int);
-    method public static java.lang.CharSequence replace(java.lang.CharSequence, java.lang.String[], java.lang.CharSequence[]);
-    method public static java.lang.String[] split(java.lang.String, java.lang.String);
-    method public static java.lang.String[] split(java.lang.String, java.util.regex.Pattern);
-    method public static java.lang.CharSequence stringOrSpannedString(java.lang.CharSequence);
-    method public static java.lang.String substring(java.lang.CharSequence, int, int);
-    method public static void writeToParcel(java.lang.CharSequence, android.os.Parcel, int);
+    method public static int getOffsetAfter(CharSequence, int);
+    method public static int getOffsetBefore(CharSequence, int);
+    method @Deprecated public static CharSequence getReverse(CharSequence, int, int);
+    method public static int getTrimmedLength(CharSequence);
+    method public static String htmlEncode(String);
+    method public static int indexOf(CharSequence, char);
+    method public static int indexOf(CharSequence, char, int);
+    method public static int indexOf(CharSequence, char, int, int);
+    method public static int indexOf(CharSequence, CharSequence);
+    method public static int indexOf(CharSequence, CharSequence, int);
+    method public static int indexOf(CharSequence, CharSequence, int, int);
+    method public static boolean isDigitsOnly(CharSequence);
+    method public static boolean isEmpty(@Nullable CharSequence);
+    method public static boolean isGraphic(CharSequence);
+    method @Deprecated public static boolean isGraphic(char);
+    method public static String join(@NonNull CharSequence, @NonNull Object[]);
+    method public static String join(@NonNull CharSequence, @NonNull Iterable);
+    method public static int lastIndexOf(CharSequence, char);
+    method public static int lastIndexOf(CharSequence, char, int);
+    method public static int lastIndexOf(CharSequence, char, int, int);
+    method public static CharSequence listEllipsize(@Nullable android.content.Context, @Nullable java.util.List<java.lang.CharSequence>, @NonNull String, @NonNull android.text.TextPaint, @FloatRange(from=0.0, fromInclusive=false) float, @PluralsRes int);
+    method @NonNull public static CharSequence makeSafeForPresentation(@NonNull String, @IntRange(from=0) int, @FloatRange(from=0) float, int);
+    method public static boolean regionMatches(CharSequence, int, CharSequence, int, int);
+    method public static CharSequence replace(CharSequence, String[], CharSequence[]);
+    method public static String[] split(String, String);
+    method public static String[] split(String, java.util.regex.Pattern);
+    method public static CharSequence stringOrSpannedString(CharSequence);
+    method public static String substring(CharSequence, int, int);
+    method public static void writeToParcel(@Nullable CharSequence, @NonNull android.os.Parcel, int);
     field public static final int CAP_MODE_CHARACTERS = 4096; // 0x1000
     field public static final int CAP_MODE_SENTENCES = 16384; // 0x4000
     field public static final int CAP_MODE_WORDS = 8192; // 0x2000
@@ -46180,35 +46086,33 @@
     field public static final int SAFE_STRING_FLAG_TRIM = 1; // 0x1
   }
 
-  public static abstract interface TextUtils.EllipsizeCallback {
-    method public abstract void ellipsized(int, int);
+  public static interface TextUtils.EllipsizeCallback {
+    method public void ellipsized(int, int);
   }
 
-  public static class TextUtils.SimpleStringSplitter implements java.util.Iterator android.text.TextUtils.StringSplitter {
+  public static class TextUtils.SimpleStringSplitter implements java.util.Iterator<java.lang.String> android.text.TextUtils.StringSplitter {
     ctor public TextUtils.SimpleStringSplitter(char);
     method public boolean hasNext();
     method public java.util.Iterator<java.lang.String> iterator();
-    method public java.lang.String next();
-    method public void setString(java.lang.String);
+    method public String next();
+    method public void setString(String);
   }
 
-  public static abstract interface TextUtils.StringSplitter implements java.lang.Iterable {
-    method public abstract void setString(java.lang.String);
+  public static interface TextUtils.StringSplitter extends java.lang.Iterable<java.lang.String> {
+    method public void setString(String);
   }
 
-  public static final class TextUtils.TruncateAt extends java.lang.Enum {
-    method public static android.text.TextUtils.TruncateAt valueOf(java.lang.String);
-    method public static final android.text.TextUtils.TruncateAt[] values();
+  public enum TextUtils.TruncateAt {
     enum_constant public static final android.text.TextUtils.TruncateAt END;
     enum_constant public static final android.text.TextUtils.TruncateAt MARQUEE;
     enum_constant public static final android.text.TextUtils.TruncateAt MIDDLE;
     enum_constant public static final android.text.TextUtils.TruncateAt START;
   }
 
-  public abstract interface TextWatcher implements android.text.NoCopySpan {
-    method public abstract void afterTextChanged(android.text.Editable);
-    method public abstract void beforeTextChanged(java.lang.CharSequence, int, int, int);
-    method public abstract void onTextChanged(java.lang.CharSequence, int, int, int);
+  public interface TextWatcher extends android.text.NoCopySpan {
+    method public void afterTextChanged(android.text.Editable);
+    method public void beforeTextChanged(CharSequence, int, int, int);
+    method public void onTextChanged(CharSequence, int, int, int);
   }
 
 }
@@ -46217,10 +46121,10 @@
 
   public class DateFormat {
     ctor public DateFormat();
-    method public static java.lang.CharSequence format(java.lang.CharSequence, long);
-    method public static java.lang.CharSequence format(java.lang.CharSequence, java.util.Date);
-    method public static java.lang.CharSequence format(java.lang.CharSequence, java.util.Calendar);
-    method public static java.lang.String getBestDateTimePattern(java.util.Locale, java.lang.String);
+    method public static CharSequence format(CharSequence, long);
+    method public static CharSequence format(CharSequence, java.util.Date);
+    method public static CharSequence format(CharSequence, java.util.Calendar);
+    method public static String getBestDateTimePattern(java.util.Locale, String);
     method public static java.text.DateFormat getDateFormat(android.content.Context);
     method public static char[] getDateFormatOrder(android.content.Context);
     method public static java.text.DateFormat getLongDateFormat(android.content.Context);
@@ -46231,136 +46135,136 @@
 
   public class DateUtils {
     ctor public DateUtils();
-    method public static java.lang.String formatDateRange(android.content.Context, long, long, int);
+    method public static String formatDateRange(android.content.Context, long, long, int);
     method public static java.util.Formatter formatDateRange(android.content.Context, java.util.Formatter, long, long, int);
-    method public static java.util.Formatter formatDateRange(android.content.Context, java.util.Formatter, long, long, int, java.lang.String);
-    method public static java.lang.String formatDateTime(android.content.Context, long, int);
-    method public static java.lang.String formatElapsedTime(long);
-    method public static java.lang.String formatElapsedTime(java.lang.StringBuilder, long);
-    method public static final java.lang.CharSequence formatSameDayTime(long, long, int, int);
-    method public static deprecated java.lang.String getAMPMString(int);
-    method public static deprecated java.lang.String getDayOfWeekString(int, int);
-    method public static deprecated java.lang.String getMonthString(int, int);
-    method public static java.lang.CharSequence getRelativeDateTimeString(android.content.Context, long, long, long, int);
-    method public static java.lang.CharSequence getRelativeTimeSpanString(long);
-    method public static java.lang.CharSequence getRelativeTimeSpanString(long, long, long);
-    method public static java.lang.CharSequence getRelativeTimeSpanString(long, long, long, int);
-    method public static java.lang.CharSequence getRelativeTimeSpanString(android.content.Context, long, boolean);
-    method public static java.lang.CharSequence getRelativeTimeSpanString(android.content.Context, long);
+    method public static java.util.Formatter formatDateRange(android.content.Context, java.util.Formatter, long, long, int, String);
+    method public static String formatDateTime(android.content.Context, long, int);
+    method public static String formatElapsedTime(long);
+    method public static String formatElapsedTime(StringBuilder, long);
+    method public static final CharSequence formatSameDayTime(long, long, int, int);
+    method @Deprecated public static String getAMPMString(int);
+    method @Deprecated public static String getDayOfWeekString(int, int);
+    method @Deprecated public static String getMonthString(int, int);
+    method public static CharSequence getRelativeDateTimeString(android.content.Context, long, long, long, int);
+    method public static CharSequence getRelativeTimeSpanString(long);
+    method public static CharSequence getRelativeTimeSpanString(long, long, long);
+    method public static CharSequence getRelativeTimeSpanString(long, long, long, int);
+    method public static CharSequence getRelativeTimeSpanString(android.content.Context, long, boolean);
+    method public static CharSequence getRelativeTimeSpanString(android.content.Context, long);
     method public static boolean isToday(long);
-    field public static final deprecated java.lang.String ABBREV_MONTH_FORMAT = "%b";
-    field public static final java.lang.String ABBREV_WEEKDAY_FORMAT = "%a";
+    field @Deprecated public static final String ABBREV_MONTH_FORMAT = "%b";
+    field public static final String ABBREV_WEEKDAY_FORMAT = "%a";
     field public static final long DAY_IN_MILLIS = 86400000L; // 0x5265c00L
-    field public static final deprecated int FORMAT_12HOUR = 64; // 0x40
-    field public static final deprecated int FORMAT_24HOUR = 128; // 0x80
+    field @Deprecated public static final int FORMAT_12HOUR = 64; // 0x40
+    field @Deprecated public static final int FORMAT_24HOUR = 128; // 0x80
     field public static final int FORMAT_ABBREV_ALL = 524288; // 0x80000
     field public static final int FORMAT_ABBREV_MONTH = 65536; // 0x10000
     field public static final int FORMAT_ABBREV_RELATIVE = 262144; // 0x40000
     field public static final int FORMAT_ABBREV_TIME = 16384; // 0x4000
     field public static final int FORMAT_ABBREV_WEEKDAY = 32768; // 0x8000
-    field public static final deprecated int FORMAT_CAP_AMPM = 256; // 0x100
-    field public static final deprecated int FORMAT_CAP_MIDNIGHT = 4096; // 0x1000
-    field public static final deprecated int FORMAT_CAP_NOON = 1024; // 0x400
-    field public static final deprecated int FORMAT_CAP_NOON_MIDNIGHT = 5120; // 0x1400
+    field @Deprecated public static final int FORMAT_CAP_AMPM = 256; // 0x100
+    field @Deprecated public static final int FORMAT_CAP_MIDNIGHT = 4096; // 0x1000
+    field @Deprecated public static final int FORMAT_CAP_NOON = 1024; // 0x400
+    field @Deprecated public static final int FORMAT_CAP_NOON_MIDNIGHT = 5120; // 0x1400
     field public static final int FORMAT_NO_MIDNIGHT = 2048; // 0x800
     field public static final int FORMAT_NO_MONTH_DAY = 32; // 0x20
     field public static final int FORMAT_NO_NOON = 512; // 0x200
-    field public static final deprecated int FORMAT_NO_NOON_MIDNIGHT = 2560; // 0xa00
+    field @Deprecated public static final int FORMAT_NO_NOON_MIDNIGHT = 2560; // 0xa00
     field public static final int FORMAT_NO_YEAR = 8; // 0x8
     field public static final int FORMAT_NUMERIC_DATE = 131072; // 0x20000
     field public static final int FORMAT_SHOW_DATE = 16; // 0x10
     field public static final int FORMAT_SHOW_TIME = 1; // 0x1
     field public static final int FORMAT_SHOW_WEEKDAY = 2; // 0x2
     field public static final int FORMAT_SHOW_YEAR = 4; // 0x4
-    field public static final deprecated int FORMAT_UTC = 8192; // 0x2000
+    field @Deprecated public static final int FORMAT_UTC = 8192; // 0x2000
     field public static final long HOUR_IN_MILLIS = 3600000L; // 0x36ee80L
-    field public static final deprecated java.lang.String HOUR_MINUTE_24 = "%H:%M";
-    field public static final deprecated int LENGTH_LONG = 10; // 0xa
-    field public static final deprecated int LENGTH_MEDIUM = 20; // 0x14
-    field public static final deprecated int LENGTH_SHORT = 30; // 0x1e
-    field public static final deprecated int LENGTH_SHORTER = 40; // 0x28
-    field public static final deprecated int LENGTH_SHORTEST = 50; // 0x32
+    field @Deprecated public static final String HOUR_MINUTE_24 = "%H:%M";
+    field @Deprecated public static final int LENGTH_LONG = 10; // 0xa
+    field @Deprecated public static final int LENGTH_MEDIUM = 20; // 0x14
+    field @Deprecated public static final int LENGTH_SHORT = 30; // 0x1e
+    field @Deprecated public static final int LENGTH_SHORTER = 40; // 0x28
+    field @Deprecated public static final int LENGTH_SHORTEST = 50; // 0x32
     field public static final long MINUTE_IN_MILLIS = 60000L; // 0xea60L
-    field public static final java.lang.String MONTH_DAY_FORMAT = "%-d";
-    field public static final java.lang.String MONTH_FORMAT = "%B";
-    field public static final java.lang.String NUMERIC_MONTH_FORMAT = "%m";
+    field public static final String MONTH_DAY_FORMAT = "%-d";
+    field public static final String MONTH_FORMAT = "%B";
+    field public static final String NUMERIC_MONTH_FORMAT = "%m";
     field public static final long SECOND_IN_MILLIS = 1000L; // 0x3e8L
-    field public static final java.lang.String WEEKDAY_FORMAT = "%A";
+    field public static final String WEEKDAY_FORMAT = "%A";
     field public static final long WEEK_IN_MILLIS = 604800000L; // 0x240c8400L
-    field public static final java.lang.String YEAR_FORMAT = "%Y";
-    field public static final java.lang.String YEAR_FORMAT_TWO_DIGITS = "%g";
+    field public static final String YEAR_FORMAT = "%Y";
+    field public static final String YEAR_FORMAT_TWO_DIGITS = "%g";
     field public static final long YEAR_IN_MILLIS = 31449600000L; // 0x7528ad000L
-    field public static final deprecated int[] sameMonthTable;
-    field public static final deprecated int[] sameYearTable;
+    field @Deprecated public static final int[] sameMonthTable;
+    field @Deprecated public static final int[] sameYearTable;
   }
 
   public final class Formatter {
     ctor public Formatter();
-    method public static java.lang.String formatFileSize(android.content.Context, long);
-    method public static deprecated java.lang.String formatIpAddress(int);
-    method public static java.lang.String formatShortFileSize(android.content.Context, long);
+    method public static String formatFileSize(@Nullable android.content.Context, long);
+    method @Deprecated public static String formatIpAddress(int);
+    method public static String formatShortFileSize(@Nullable android.content.Context, long);
   }
 
-  public deprecated class Time {
-    ctor public Time(java.lang.String);
-    ctor public Time();
-    ctor public Time(android.text.format.Time);
-    method public boolean after(android.text.format.Time);
-    method public boolean before(android.text.format.Time);
-    method public void clear(java.lang.String);
-    method public static int compare(android.text.format.Time, android.text.format.Time);
-    method public java.lang.String format(java.lang.String);
-    method public java.lang.String format2445();
-    method public java.lang.String format3339(boolean);
-    method public int getActualMaximum(int);
-    method public static java.lang.String getCurrentTimezone();
-    method public static int getJulianDay(long, long);
-    method public static int getJulianMondayFromWeeksSinceEpoch(int);
-    method public int getWeekNumber();
-    method public static int getWeeksSinceEpochFromJulianDay(int, int);
-    method public static boolean isEpoch(android.text.format.Time);
-    method public long normalize(boolean);
-    method public boolean parse(java.lang.String);
-    method public boolean parse3339(java.lang.String);
-    method public void set(long);
-    method public void set(android.text.format.Time);
-    method public void set(int, int, int, int, int, int);
-    method public void set(int, int, int);
-    method public long setJulianDay(int);
-    method public void setToNow();
-    method public void switchTimezone(java.lang.String);
-    method public long toMillis(boolean);
-    field public static final int EPOCH_JULIAN_DAY = 2440588; // 0x253d8c
-    field public static final int FRIDAY = 5; // 0x5
-    field public static final int HOUR = 3; // 0x3
-    field public static final int MINUTE = 2; // 0x2
-    field public static final int MONDAY = 1; // 0x1
-    field public static final int MONDAY_BEFORE_JULIAN_EPOCH = 2440585; // 0x253d89
-    field public static final int MONTH = 5; // 0x5
-    field public static final int MONTH_DAY = 4; // 0x4
-    field public static final int SATURDAY = 6; // 0x6
-    field public static final int SECOND = 1; // 0x1
-    field public static final int SUNDAY = 0; // 0x0
-    field public static final int THURSDAY = 4; // 0x4
-    field public static final java.lang.String TIMEZONE_UTC = "UTC";
-    field public static final int TUESDAY = 2; // 0x2
-    field public static final int WEDNESDAY = 3; // 0x3
-    field public static final int WEEK_DAY = 7; // 0x7
-    field public static final int WEEK_NUM = 9; // 0x9
-    field public static final int YEAR = 6; // 0x6
-    field public static final int YEAR_DAY = 8; // 0x8
-    field public boolean allDay;
-    field public long gmtoff;
-    field public int hour;
-    field public int isDst;
-    field public int minute;
-    field public int month;
-    field public int monthDay;
-    field public int second;
-    field public java.lang.String timezone;
-    field public int weekDay;
-    field public int year;
-    field public int yearDay;
+  @Deprecated public class Time {
+    ctor @Deprecated public Time(String);
+    ctor @Deprecated public Time();
+    ctor @Deprecated public Time(android.text.format.Time);
+    method @Deprecated public boolean after(android.text.format.Time);
+    method @Deprecated public boolean before(android.text.format.Time);
+    method @Deprecated public void clear(String);
+    method @Deprecated public static int compare(android.text.format.Time, android.text.format.Time);
+    method @Deprecated public String format(String);
+    method @Deprecated public String format2445();
+    method @Deprecated public String format3339(boolean);
+    method @Deprecated public int getActualMaximum(int);
+    method @Deprecated public static String getCurrentTimezone();
+    method @Deprecated public static int getJulianDay(long, long);
+    method @Deprecated public static int getJulianMondayFromWeeksSinceEpoch(int);
+    method @Deprecated public int getWeekNumber();
+    method @Deprecated public static int getWeeksSinceEpochFromJulianDay(int, int);
+    method @Deprecated public static boolean isEpoch(android.text.format.Time);
+    method @Deprecated public long normalize(boolean);
+    method @Deprecated public boolean parse(String);
+    method @Deprecated public boolean parse3339(String);
+    method @Deprecated public void set(long);
+    method @Deprecated public void set(android.text.format.Time);
+    method @Deprecated public void set(int, int, int, int, int, int);
+    method @Deprecated public void set(int, int, int);
+    method @Deprecated public long setJulianDay(int);
+    method @Deprecated public void setToNow();
+    method @Deprecated public void switchTimezone(String);
+    method @Deprecated public long toMillis(boolean);
+    field @Deprecated public static final int EPOCH_JULIAN_DAY = 2440588; // 0x253d8c
+    field @Deprecated public static final int FRIDAY = 5; // 0x5
+    field @Deprecated public static final int HOUR = 3; // 0x3
+    field @Deprecated public static final int MINUTE = 2; // 0x2
+    field @Deprecated public static final int MONDAY = 1; // 0x1
+    field @Deprecated public static final int MONDAY_BEFORE_JULIAN_EPOCH = 2440585; // 0x253d89
+    field @Deprecated public static final int MONTH = 5; // 0x5
+    field @Deprecated public static final int MONTH_DAY = 4; // 0x4
+    field @Deprecated public static final int SATURDAY = 6; // 0x6
+    field @Deprecated public static final int SECOND = 1; // 0x1
+    field @Deprecated public static final int SUNDAY = 0; // 0x0
+    field @Deprecated public static final int THURSDAY = 4; // 0x4
+    field @Deprecated public static final String TIMEZONE_UTC = "UTC";
+    field @Deprecated public static final int TUESDAY = 2; // 0x2
+    field @Deprecated public static final int WEDNESDAY = 3; // 0x3
+    field @Deprecated public static final int WEEK_DAY = 7; // 0x7
+    field @Deprecated public static final int WEEK_NUM = 9; // 0x9
+    field @Deprecated public static final int YEAR = 6; // 0x6
+    field @Deprecated public static final int YEAR_DAY = 8; // 0x8
+    field @Deprecated public boolean allDay;
+    field @Deprecated public long gmtoff;
+    field @Deprecated public int hour;
+    field @Deprecated public int isDst;
+    field @Deprecated public int minute;
+    field @Deprecated public int month;
+    field @Deprecated public int monthDay;
+    field @Deprecated public int second;
+    field @Deprecated public String timezone;
+    field @Deprecated public int weekDay;
+    field @Deprecated public int year;
+    field @Deprecated public int yearDay;
   }
 
 }
@@ -46407,29 +46311,29 @@
   }
 
   public class CharacterPickerDialog extends android.app.Dialog implements android.widget.AdapterView.OnItemClickListener android.view.View.OnClickListener {
-    ctor public CharacterPickerDialog(android.content.Context, android.view.View, android.text.Editable, java.lang.String, boolean);
+    ctor public CharacterPickerDialog(android.content.Context, android.view.View, android.text.Editable, String, boolean);
     method public void onClick(android.view.View);
     method public void onItemClick(android.widget.AdapterView, android.view.View, int, long);
   }
 
   public class DateKeyListener extends android.text.method.NumberKeyListener {
-    ctor public deprecated DateKeyListener();
-    ctor public DateKeyListener(java.util.Locale);
-    method protected char[] getAcceptedChars();
+    ctor @Deprecated public DateKeyListener();
+    ctor public DateKeyListener(@Nullable java.util.Locale);
+    method @NonNull protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static deprecated android.text.method.DateKeyListener getInstance();
-    method public static android.text.method.DateKeyListener getInstance(java.util.Locale);
-    field public static final deprecated char[] CHARACTERS;
+    method @Deprecated @NonNull public static android.text.method.DateKeyListener getInstance();
+    method @NonNull public static android.text.method.DateKeyListener getInstance(@Nullable java.util.Locale);
+    field @Deprecated public static final char[] CHARACTERS;
   }
 
   public class DateTimeKeyListener extends android.text.method.NumberKeyListener {
-    ctor public deprecated DateTimeKeyListener();
-    ctor public DateTimeKeyListener(java.util.Locale);
-    method protected char[] getAcceptedChars();
+    ctor @Deprecated public DateTimeKeyListener();
+    ctor public DateTimeKeyListener(@Nullable java.util.Locale);
+    method @NonNull protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static deprecated android.text.method.DateTimeKeyListener getInstance();
-    method public static android.text.method.DateTimeKeyListener getInstance(java.util.Locale);
-    field public static final deprecated char[] CHARACTERS;
+    method @Deprecated @NonNull public static android.text.method.DateTimeKeyListener getInstance();
+    method @NonNull public static android.text.method.DateTimeKeyListener getInstance(@Nullable java.util.Locale);
+    field @Deprecated public static final char[] CHARACTERS;
   }
 
   public class DialerKeyListener extends android.text.method.NumberKeyListener {
@@ -46441,17 +46345,17 @@
   }
 
   public class DigitsKeyListener extends android.text.method.NumberKeyListener {
-    ctor public deprecated DigitsKeyListener();
-    ctor public deprecated DigitsKeyListener(boolean, boolean);
-    ctor public DigitsKeyListener(java.util.Locale);
-    ctor public DigitsKeyListener(java.util.Locale, boolean, boolean);
+    ctor @Deprecated public DigitsKeyListener();
+    ctor @Deprecated public DigitsKeyListener(boolean, boolean);
+    ctor public DigitsKeyListener(@Nullable java.util.Locale);
+    ctor public DigitsKeyListener(@Nullable java.util.Locale, boolean, boolean);
     method protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static deprecated android.text.method.DigitsKeyListener getInstance();
-    method public static deprecated android.text.method.DigitsKeyListener getInstance(boolean, boolean);
-    method public static android.text.method.DigitsKeyListener getInstance(java.util.Locale);
-    method public static android.text.method.DigitsKeyListener getInstance(java.util.Locale, boolean, boolean);
-    method public static android.text.method.DigitsKeyListener getInstance(java.lang.String);
+    method @Deprecated @NonNull public static android.text.method.DigitsKeyListener getInstance();
+    method @Deprecated @NonNull public static android.text.method.DigitsKeyListener getInstance(boolean, boolean);
+    method @NonNull public static android.text.method.DigitsKeyListener getInstance(@Nullable java.util.Locale);
+    method @NonNull public static android.text.method.DigitsKeyListener getInstance(@Nullable java.util.Locale, boolean, boolean);
+    method @NonNull public static android.text.method.DigitsKeyListener getInstance(@NonNull String);
   }
 
   public class HideReturnsTransformationMethod extends android.text.method.ReplacementTransformationMethod {
@@ -46461,12 +46365,12 @@
     method protected char[] getReplacement();
   }
 
-  public abstract interface KeyListener {
-    method public abstract void clearMetaKeyState(android.view.View, android.text.Editable, int);
-    method public abstract int getInputType();
-    method public abstract boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent);
-    method public abstract boolean onKeyOther(android.view.View, android.text.Editable, android.view.KeyEvent);
-    method public abstract boolean onKeyUp(android.view.View, android.text.Editable, int, android.view.KeyEvent);
+  public interface KeyListener {
+    method public void clearMetaKeyState(android.view.View, android.text.Editable, int);
+    method public int getInputType();
+    method public boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent);
+    method public boolean onKeyOther(android.view.View, android.text.Editable, android.view.KeyEvent);
+    method public boolean onKeyUp(android.view.View, android.text.Editable, int, android.view.KeyEvent);
   }
 
   public class LinkMovementMethod extends android.text.method.ScrollingMovementMethod {
@@ -46481,16 +46385,16 @@
     method public void clearMetaKeyState(android.view.View, android.text.Editable, int);
     method public static void clearMetaKeyState(android.text.Editable, int);
     method public long clearMetaKeyState(long, int);
-    method public static final int getMetaState(java.lang.CharSequence);
-    method public static final int getMetaState(java.lang.CharSequence, android.view.KeyEvent);
-    method public static final int getMetaState(java.lang.CharSequence, int);
-    method public static final int getMetaState(java.lang.CharSequence, int, android.view.KeyEvent);
+    method public static final int getMetaState(CharSequence);
+    method public static final int getMetaState(CharSequence, android.view.KeyEvent);
+    method public static final int getMetaState(CharSequence, int);
+    method public static final int getMetaState(CharSequence, int, android.view.KeyEvent);
     method public static final int getMetaState(long);
     method public static final int getMetaState(long, int);
     method public static long handleKeyDown(long, int, android.view.KeyEvent);
     method public static long handleKeyUp(long, int, android.view.KeyEvent);
-    method public static boolean isMetaTracker(java.lang.CharSequence, java.lang.Object);
-    method public static boolean isSelectingMetaTracker(java.lang.CharSequence, java.lang.Object);
+    method public static boolean isMetaTracker(CharSequence, Object);
+    method public static boolean isSelectingMetaTracker(CharSequence, Object);
     method public boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent);
     method public boolean onKeyUp(android.view.View, android.text.Editable, int, android.view.KeyEvent);
     method protected static void resetLockedMeta(android.text.Spannable);
@@ -46504,31 +46408,31 @@
     field public static final int META_SYM_ON = 4; // 0x4
   }
 
-  public abstract interface MovementMethod {
-    method public abstract boolean canSelectArbitrarily();
-    method public abstract void initialize(android.widget.TextView, android.text.Spannable);
-    method public abstract boolean onGenericMotionEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent);
-    method public abstract boolean onKeyDown(android.widget.TextView, android.text.Spannable, int, android.view.KeyEvent);
-    method public abstract boolean onKeyOther(android.widget.TextView, android.text.Spannable, android.view.KeyEvent);
-    method public abstract boolean onKeyUp(android.widget.TextView, android.text.Spannable, int, android.view.KeyEvent);
-    method public abstract void onTakeFocus(android.widget.TextView, android.text.Spannable, int);
-    method public abstract boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent);
-    method public abstract boolean onTrackballEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent);
+  public interface MovementMethod {
+    method public boolean canSelectArbitrarily();
+    method public void initialize(android.widget.TextView, android.text.Spannable);
+    method public boolean onGenericMotionEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent);
+    method public boolean onKeyDown(android.widget.TextView, android.text.Spannable, int, android.view.KeyEvent);
+    method public boolean onKeyOther(android.widget.TextView, android.text.Spannable, android.view.KeyEvent);
+    method public boolean onKeyUp(android.widget.TextView, android.text.Spannable, int, android.view.KeyEvent);
+    method public void onTakeFocus(android.widget.TextView, android.text.Spannable, int);
+    method public boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent);
+    method public boolean onTrackballEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent);
   }
 
   public class MultiTapKeyListener extends android.text.method.BaseKeyListener implements android.text.SpanWatcher {
     ctor public MultiTapKeyListener(android.text.method.TextKeyListener.Capitalize, boolean);
     method public int getInputType();
     method public static android.text.method.MultiTapKeyListener getInstance(boolean, android.text.method.TextKeyListener.Capitalize);
-    method public void onSpanAdded(android.text.Spannable, java.lang.Object, int, int);
-    method public void onSpanChanged(android.text.Spannable, java.lang.Object, int, int, int, int);
-    method public void onSpanRemoved(android.text.Spannable, java.lang.Object, int, int);
+    method public void onSpanAdded(android.text.Spannable, Object, int, int);
+    method public void onSpanChanged(android.text.Spannable, Object, int, int, int, int);
+    method public void onSpanRemoved(android.text.Spannable, Object, int, int);
   }
 
   public abstract class NumberKeyListener extends android.text.method.BaseKeyListener implements android.text.InputFilter {
     ctor public NumberKeyListener();
-    method public java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int);
-    method protected abstract char[] getAcceptedChars();
+    method public CharSequence filter(CharSequence, int, int, android.text.Spanned, int, int);
+    method @NonNull protected abstract char[] getAcceptedChars();
     method protected int lookup(android.view.KeyEvent, android.text.Spannable);
     method protected static boolean ok(char[], char);
   }
@@ -46536,11 +46440,11 @@
   public class PasswordTransformationMethod implements android.text.TextWatcher android.text.method.TransformationMethod {
     ctor public PasswordTransformationMethod();
     method public void afterTextChanged(android.text.Editable);
-    method public void beforeTextChanged(java.lang.CharSequence, int, int, int);
+    method public void beforeTextChanged(CharSequence, int, int, int);
     method public static android.text.method.PasswordTransformationMethod getInstance();
-    method public java.lang.CharSequence getTransformation(java.lang.CharSequence, android.view.View);
-    method public void onFocusChanged(android.view.View, java.lang.CharSequence, boolean, int, android.graphics.Rect);
-    method public void onTextChanged(java.lang.CharSequence, int, int, int);
+    method public CharSequence getTransformation(CharSequence, android.view.View);
+    method public void onFocusChanged(android.view.View, CharSequence, boolean, int, android.graphics.Rect);
+    method public void onTextChanged(CharSequence, int, int, int);
   }
 
   public class QwertyKeyListener extends android.text.method.BaseKeyListener {
@@ -46548,15 +46452,15 @@
     method public int getInputType();
     method public static android.text.method.QwertyKeyListener getInstance(boolean, android.text.method.TextKeyListener.Capitalize);
     method public static android.text.method.QwertyKeyListener getInstanceForFullKeyboard();
-    method public static void markAsReplaced(android.text.Spannable, int, int, java.lang.String);
+    method public static void markAsReplaced(android.text.Spannable, int, int, String);
   }
 
   public abstract class ReplacementTransformationMethod implements android.text.method.TransformationMethod {
     ctor public ReplacementTransformationMethod();
     method protected abstract char[] getOriginal();
     method protected abstract char[] getReplacement();
-    method public java.lang.CharSequence getTransformation(java.lang.CharSequence, android.view.View);
-    method public void onFocusChanged(android.view.View, java.lang.CharSequence, boolean, int, android.graphics.Rect);
+    method public CharSequence getTransformation(CharSequence, android.view.View);
+    method public void onFocusChanged(android.view.View, CharSequence, boolean, int, android.graphics.Rect);
   }
 
   public class ScrollingMovementMethod extends android.text.method.BaseMovementMethod implements android.text.method.MovementMethod {
@@ -46577,16 +46481,14 @@
     method public int getInputType();
     method public static android.text.method.TextKeyListener getInstance(boolean, android.text.method.TextKeyListener.Capitalize);
     method public static android.text.method.TextKeyListener getInstance();
-    method public void onSpanAdded(android.text.Spannable, java.lang.Object, int, int);
-    method public void onSpanChanged(android.text.Spannable, java.lang.Object, int, int, int, int);
-    method public void onSpanRemoved(android.text.Spannable, java.lang.Object, int, int);
+    method public void onSpanAdded(android.text.Spannable, Object, int, int);
+    method public void onSpanChanged(android.text.Spannable, Object, int, int, int, int);
+    method public void onSpanRemoved(android.text.Spannable, Object, int, int);
     method public void release();
-    method public static boolean shouldCap(android.text.method.TextKeyListener.Capitalize, java.lang.CharSequence, int);
+    method public static boolean shouldCap(android.text.method.TextKeyListener.Capitalize, CharSequence, int);
   }
 
-  public static final class TextKeyListener.Capitalize extends java.lang.Enum {
-    method public static android.text.method.TextKeyListener.Capitalize valueOf(java.lang.String);
-    method public static final android.text.method.TextKeyListener.Capitalize[] values();
+  public enum TextKeyListener.Capitalize {
     enum_constant public static final android.text.method.TextKeyListener.Capitalize CHARACTERS;
     enum_constant public static final android.text.method.TextKeyListener.Capitalize NONE;
     enum_constant public static final android.text.method.TextKeyListener.Capitalize SENTENCES;
@@ -46594,13 +46496,13 @@
   }
 
   public class TimeKeyListener extends android.text.method.NumberKeyListener {
-    ctor public deprecated TimeKeyListener();
-    ctor public TimeKeyListener(java.util.Locale);
-    method protected char[] getAcceptedChars();
+    ctor @Deprecated public TimeKeyListener();
+    ctor public TimeKeyListener(@Nullable java.util.Locale);
+    method @NonNull protected char[] getAcceptedChars();
     method public int getInputType();
-    method public static deprecated android.text.method.TimeKeyListener getInstance();
-    method public static android.text.method.TimeKeyListener getInstance(java.util.Locale);
-    field public static final deprecated char[] CHARACTERS;
+    method @Deprecated @NonNull public static android.text.method.TimeKeyListener getInstance();
+    method @NonNull public static android.text.method.TimeKeyListener getInstance(@Nullable java.util.Locale);
+    field @Deprecated public static final char[] CHARACTERS;
   }
 
   public class Touch {
@@ -46610,9 +46512,9 @@
     method public static void scrollTo(android.widget.TextView, android.text.Layout, int, int);
   }
 
-  public abstract interface TransformationMethod {
-    method public abstract java.lang.CharSequence getTransformation(java.lang.CharSequence, android.view.View);
-    method public abstract void onFocusChanged(android.view.View, java.lang.CharSequence, boolean, int, android.graphics.Rect);
+  public interface TransformationMethod {
+    method public CharSequence getTransformation(CharSequence, android.view.View);
+    method public void onFocusChanged(android.view.View, CharSequence, boolean, int, android.graphics.Rect);
   }
 
 }
@@ -46622,53 +46524,53 @@
   public class AbsoluteSizeSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
     ctor public AbsoluteSizeSpan(int);
     ctor public AbsoluteSizeSpan(int, boolean);
-    ctor public AbsoluteSizeSpan(android.os.Parcel);
+    ctor public AbsoluteSizeSpan(@NonNull android.os.Parcel);
     method public int describeContents();
     method public boolean getDip();
     method public int getSize();
     method public int getSpanTypeId();
-    method public void updateDrawState(android.text.TextPaint);
-    method public void updateMeasureState(android.text.TextPaint);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void updateDrawState(@NonNull android.text.TextPaint);
+    method public void updateMeasureState(@NonNull android.text.TextPaint);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
-  public abstract interface AlignmentSpan implements android.text.style.ParagraphStyle {
-    method public abstract android.text.Layout.Alignment getAlignment();
+  public interface AlignmentSpan extends android.text.style.ParagraphStyle {
+    method public android.text.Layout.Alignment getAlignment();
   }
 
   public static class AlignmentSpan.Standard implements android.text.style.AlignmentSpan android.text.ParcelableSpan {
-    ctor public AlignmentSpan.Standard(android.text.Layout.Alignment);
-    ctor public AlignmentSpan.Standard(android.os.Parcel);
+    ctor public AlignmentSpan.Standard(@NonNull android.text.Layout.Alignment);
+    ctor public AlignmentSpan.Standard(@NonNull android.os.Parcel);
     method public int describeContents();
     method public android.text.Layout.Alignment getAlignment();
     method public int getSpanTypeId();
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
   public class BackgroundColorSpan extends android.text.style.CharacterStyle implements android.text.ParcelableSpan android.text.style.UpdateAppearance {
-    ctor public BackgroundColorSpan(int);
-    ctor public BackgroundColorSpan(android.os.Parcel);
+    ctor public BackgroundColorSpan(@ColorInt int);
+    ctor public BackgroundColorSpan(@NonNull android.os.Parcel);
     method public int describeContents();
-    method public int getBackgroundColor();
+    method @ColorInt public int getBackgroundColor();
     method public int getSpanTypeId();
-    method public void updateDrawState(android.text.TextPaint);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void updateDrawState(@NonNull android.text.TextPaint);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
   public class BulletSpan implements android.text.style.LeadingMarginSpan android.text.ParcelableSpan {
     ctor public BulletSpan();
     ctor public BulletSpan(int);
-    ctor public BulletSpan(int, int);
-    ctor public BulletSpan(int, int, int);
-    ctor public BulletSpan(android.os.Parcel);
+    ctor public BulletSpan(int, @ColorInt int);
+    ctor public BulletSpan(int, @ColorInt int, @IntRange(from=0) int);
+    ctor public BulletSpan(@NonNull android.os.Parcel);
     method public int describeContents();
-    method public void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout);
+    method public void drawLeadingMargin(@NonNull android.graphics.Canvas, @NonNull android.graphics.Paint, int, int, int, int, int, @NonNull CharSequence, int, int, boolean, @Nullable android.text.Layout);
     method public int getBulletRadius();
     method public int getColor();
     method public int getGapWidth();
     method public int getLeadingMargin(boolean);
     method public int getSpanTypeId();
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
     field public static final int STANDARD_GAP_WIDTH = 2; // 0x2
   }
 
@@ -46681,24 +46583,24 @@
 
   public abstract class ClickableSpan extends android.text.style.CharacterStyle implements android.text.style.UpdateAppearance {
     ctor public ClickableSpan();
-    method public abstract void onClick(android.view.View);
-    method public void updateDrawState(android.text.TextPaint);
+    method public abstract void onClick(@NonNull android.view.View);
+    method public void updateDrawState(@NonNull android.text.TextPaint);
   }
 
   public class DrawableMarginSpan implements android.text.style.LeadingMarginSpan android.text.style.LineHeightSpan {
-    ctor public DrawableMarginSpan(android.graphics.drawable.Drawable);
-    ctor public DrawableMarginSpan(android.graphics.drawable.Drawable, int);
-    method public void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt);
-    method public void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout);
+    ctor public DrawableMarginSpan(@NonNull android.graphics.drawable.Drawable);
+    ctor public DrawableMarginSpan(@NonNull android.graphics.drawable.Drawable, int);
+    method public void chooseHeight(@NonNull CharSequence, int, int, int, int, @NonNull android.graphics.Paint.FontMetricsInt);
+    method public void drawLeadingMargin(@NonNull android.graphics.Canvas, @NonNull android.graphics.Paint, int, int, int, int, int, @NonNull CharSequence, int, int, boolean, @NonNull android.text.Layout);
     method public int getLeadingMargin(boolean);
   }
 
   public abstract class DynamicDrawableSpan extends android.text.style.ReplacementSpan {
     ctor public DynamicDrawableSpan();
     ctor protected DynamicDrawableSpan(int);
-    method public void draw(android.graphics.Canvas, java.lang.CharSequence, int, int, float, int, int, int, android.graphics.Paint);
+    method public void draw(@NonNull android.graphics.Canvas, CharSequence, @IntRange(from=0) int, @IntRange(from=0) int, float, int, int, int, @NonNull android.graphics.Paint);
     method public abstract android.graphics.drawable.Drawable getDrawable();
-    method public int getSize(android.graphics.Paint, java.lang.CharSequence, int, int, android.graphics.Paint.FontMetricsInt);
+    method public int getSize(@NonNull android.graphics.Paint, CharSequence, @IntRange(from=0) int, @IntRange(from=0) int, @Nullable android.graphics.Paint.FontMetricsInt);
     method public int getVerticalAlignment();
     field public static final int ALIGN_BASELINE = 1; // 0x1
     field public static final int ALIGN_BOTTOM = 0; // 0x0
@@ -46708,57 +46610,57 @@
   public class EasyEditSpan implements android.text.ParcelableSpan {
     ctor public EasyEditSpan();
     ctor public EasyEditSpan(android.app.PendingIntent);
-    ctor public EasyEditSpan(android.os.Parcel);
+    ctor public EasyEditSpan(@NonNull android.os.Parcel);
     method public int describeContents();
     method public int getSpanTypeId();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final java.lang.String EXTRA_TEXT_CHANGED_TYPE = "android.text.style.EXTRA_TEXT_CHANGED_TYPE";
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field public static final String EXTRA_TEXT_CHANGED_TYPE = "android.text.style.EXTRA_TEXT_CHANGED_TYPE";
     field public static final int TEXT_DELETED = 1; // 0x1
     field public static final int TEXT_MODIFIED = 2; // 0x2
   }
 
   public class ForegroundColorSpan extends android.text.style.CharacterStyle implements android.text.ParcelableSpan android.text.style.UpdateAppearance {
-    ctor public ForegroundColorSpan(int);
-    ctor public ForegroundColorSpan(android.os.Parcel);
+    ctor public ForegroundColorSpan(@ColorInt int);
+    ctor public ForegroundColorSpan(@NonNull android.os.Parcel);
     method public int describeContents();
-    method public int getForegroundColor();
+    method @ColorInt public int getForegroundColor();
     method public int getSpanTypeId();
-    method public void updateDrawState(android.text.TextPaint);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void updateDrawState(@NonNull android.text.TextPaint);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
   public class IconMarginSpan implements android.text.style.LeadingMarginSpan android.text.style.LineHeightSpan {
-    ctor public IconMarginSpan(android.graphics.Bitmap);
-    ctor public IconMarginSpan(android.graphics.Bitmap, int);
-    method public void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt);
-    method public void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout);
+    ctor public IconMarginSpan(@NonNull android.graphics.Bitmap);
+    ctor public IconMarginSpan(@NonNull android.graphics.Bitmap, @IntRange(from=0) int);
+    method public void chooseHeight(CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt);
+    method public void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, CharSequence, int, int, boolean, android.text.Layout);
     method public int getLeadingMargin(boolean);
   }
 
   public class ImageSpan extends android.text.style.DynamicDrawableSpan {
-    ctor public deprecated ImageSpan(android.graphics.Bitmap);
-    ctor public deprecated ImageSpan(android.graphics.Bitmap, int);
-    ctor public ImageSpan(android.content.Context, android.graphics.Bitmap);
-    ctor public ImageSpan(android.content.Context, android.graphics.Bitmap, int);
-    ctor public ImageSpan(android.graphics.drawable.Drawable);
-    ctor public ImageSpan(android.graphics.drawable.Drawable, int);
-    ctor public ImageSpan(android.graphics.drawable.Drawable, java.lang.String);
-    ctor public ImageSpan(android.graphics.drawable.Drawable, java.lang.String, int);
-    ctor public ImageSpan(android.content.Context, android.net.Uri);
-    ctor public ImageSpan(android.content.Context, android.net.Uri, int);
-    ctor public ImageSpan(android.content.Context, int);
-    ctor public ImageSpan(android.content.Context, int, int);
+    ctor @Deprecated public ImageSpan(@NonNull android.graphics.Bitmap);
+    ctor @Deprecated public ImageSpan(@NonNull android.graphics.Bitmap, int);
+    ctor public ImageSpan(@NonNull android.content.Context, @NonNull android.graphics.Bitmap);
+    ctor public ImageSpan(@NonNull android.content.Context, @NonNull android.graphics.Bitmap, int);
+    ctor public ImageSpan(@NonNull android.graphics.drawable.Drawable);
+    ctor public ImageSpan(@NonNull android.graphics.drawable.Drawable, int);
+    ctor public ImageSpan(@NonNull android.graphics.drawable.Drawable, @NonNull String);
+    ctor public ImageSpan(@NonNull android.graphics.drawable.Drawable, @NonNull String, int);
+    ctor public ImageSpan(@NonNull android.content.Context, @NonNull android.net.Uri);
+    ctor public ImageSpan(@NonNull android.content.Context, @NonNull android.net.Uri, int);
+    ctor public ImageSpan(@NonNull android.content.Context, @DrawableRes int);
+    ctor public ImageSpan(@NonNull android.content.Context, @DrawableRes int, int);
     method public android.graphics.drawable.Drawable getDrawable();
-    method public java.lang.String getSource();
+    method @Nullable public String getSource();
   }
 
-  public abstract interface LeadingMarginSpan implements android.text.style.ParagraphStyle {
-    method public abstract void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout);
-    method public abstract int getLeadingMargin(boolean);
+  public interface LeadingMarginSpan extends android.text.style.ParagraphStyle {
+    method public void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, CharSequence, int, int, boolean, android.text.Layout);
+    method public int getLeadingMargin(boolean);
   }
 
-  public static abstract interface LeadingMarginSpan.LeadingMarginSpan2 implements android.text.style.LeadingMarginSpan android.text.style.WrapTogetherSpan {
-    method public abstract int getLeadingMarginLineCount();
+  public static interface LeadingMarginSpan.LeadingMarginSpan2 extends android.text.style.LeadingMarginSpan android.text.style.WrapTogetherSpan {
+    method public int getLeadingMarginLineCount();
   }
 
   public static class LeadingMarginSpan.Standard implements android.text.style.LeadingMarginSpan android.text.ParcelableSpan {
@@ -46766,51 +46668,51 @@
     ctor public LeadingMarginSpan.Standard(int);
     ctor public LeadingMarginSpan.Standard(android.os.Parcel);
     method public int describeContents();
-    method public void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout);
+    method public void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, CharSequence, int, int, boolean, android.text.Layout);
     method public int getLeadingMargin(boolean);
     method public int getSpanTypeId();
     method public void writeToParcel(android.os.Parcel, int);
   }
 
-  public abstract interface LineBackgroundSpan implements android.text.style.ParagraphStyle {
-    method public abstract void drawBackground(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, int);
+  public interface LineBackgroundSpan extends android.text.style.ParagraphStyle {
+    method public void drawBackground(@NonNull android.graphics.Canvas, @NonNull android.graphics.Paint, @Px int, @Px int, @Px int, @Px int, @Px int, @NonNull CharSequence, int, int, int);
   }
 
   public static class LineBackgroundSpan.Standard implements android.text.style.LineBackgroundSpan android.text.ParcelableSpan {
-    ctor public LineBackgroundSpan.Standard(int);
-    ctor public LineBackgroundSpan.Standard(android.os.Parcel);
+    ctor public LineBackgroundSpan.Standard(@ColorInt int);
+    ctor public LineBackgroundSpan.Standard(@NonNull android.os.Parcel);
     method public int describeContents();
-    method public void drawBackground(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, int);
-    method public final int getColor();
+    method public void drawBackground(@NonNull android.graphics.Canvas, @NonNull android.graphics.Paint, @Px int, @Px int, @Px int, @Px int, @Px int, @NonNull CharSequence, int, int, int);
+    method @ColorInt public final int getColor();
     method public int getSpanTypeId();
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
-  public abstract interface LineHeightSpan implements android.text.style.ParagraphStyle android.text.style.WrapTogetherSpan {
-    method public abstract void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt);
+  public interface LineHeightSpan extends android.text.style.ParagraphStyle android.text.style.WrapTogetherSpan {
+    method public void chooseHeight(CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt);
   }
 
   public static class LineHeightSpan.Standard implements android.text.style.LineHeightSpan android.text.ParcelableSpan {
-    ctor public LineHeightSpan.Standard(int);
+    ctor public LineHeightSpan.Standard(@Px @IntRange(from=1) int);
     ctor public LineHeightSpan.Standard(android.os.Parcel);
-    method public void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt);
+    method public void chooseHeight(@NonNull CharSequence, int, int, int, int, @NonNull android.graphics.Paint.FontMetricsInt);
     method public int describeContents();
-    method public int getHeight();
+    method @Px public int getHeight();
     method public int getSpanTypeId();
     method public void writeToParcel(android.os.Parcel, int);
   }
 
-  public static abstract interface LineHeightSpan.WithDensity implements android.text.style.LineHeightSpan {
-    method public abstract void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt, android.text.TextPaint);
+  public static interface LineHeightSpan.WithDensity extends android.text.style.LineHeightSpan {
+    method public void chooseHeight(CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt, android.text.TextPaint);
   }
 
   public class LocaleSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
-    ctor public LocaleSpan(java.util.Locale);
-    ctor public LocaleSpan(android.os.LocaleList);
+    ctor public LocaleSpan(@Nullable java.util.Locale);
+    ctor public LocaleSpan(@NonNull android.os.LocaleList);
     ctor public LocaleSpan(android.os.Parcel);
     method public int describeContents();
-    method public java.util.Locale getLocale();
-    method public android.os.LocaleList getLocales();
+    method @Nullable public java.util.Locale getLocale();
+    method @NonNull public android.os.LocaleList getLocales();
     method public int getSpanTypeId();
     method public void updateDrawState(android.text.TextPaint);
     method public void updateMeasureState(android.text.TextPaint);
@@ -46826,72 +46728,72 @@
   public abstract class MetricAffectingSpan extends android.text.style.CharacterStyle implements android.text.style.UpdateLayout {
     ctor public MetricAffectingSpan();
     method public android.text.style.MetricAffectingSpan getUnderlying();
-    method public abstract void updateMeasureState(android.text.TextPaint);
+    method public abstract void updateMeasureState(@NonNull android.text.TextPaint);
   }
 
-  public abstract interface ParagraphStyle {
+  public interface ParagraphStyle {
   }
 
   public class QuoteSpan implements android.text.style.LeadingMarginSpan android.text.ParcelableSpan {
     ctor public QuoteSpan();
-    ctor public QuoteSpan(int);
-    ctor public QuoteSpan(int, int, int);
-    ctor public QuoteSpan(android.os.Parcel);
+    ctor public QuoteSpan(@ColorInt int);
+    ctor public QuoteSpan(@ColorInt int, @IntRange(from=0) int, @IntRange(from=0) int);
+    ctor public QuoteSpan(@NonNull android.os.Parcel);
     method public int describeContents();
-    method public void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout);
-    method public int getColor();
+    method public void drawLeadingMargin(@NonNull android.graphics.Canvas, @NonNull android.graphics.Paint, int, int, int, int, int, @NonNull CharSequence, int, int, boolean, @NonNull android.text.Layout);
+    method @ColorInt public int getColor();
     method public int getGapWidth();
     method public int getLeadingMargin(boolean);
     method public int getSpanTypeId();
     method public int getStripeWidth();
     method public void writeToParcel(android.os.Parcel, int);
-    field public static final int STANDARD_COLOR = -16776961; // 0xff0000ff
+    field @ColorInt public static final int STANDARD_COLOR = -16776961; // 0xff0000ff
     field public static final int STANDARD_GAP_WIDTH_PX = 2; // 0x2
     field public static final int STANDARD_STRIPE_WIDTH_PX = 2; // 0x2
   }
 
   public class RelativeSizeSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
-    ctor public RelativeSizeSpan(float);
-    ctor public RelativeSizeSpan(android.os.Parcel);
+    ctor public RelativeSizeSpan(@FloatRange(from=0) float);
+    ctor public RelativeSizeSpan(@NonNull android.os.Parcel);
     method public int describeContents();
     method public float getSizeChange();
     method public int getSpanTypeId();
-    method public void updateDrawState(android.text.TextPaint);
-    method public void updateMeasureState(android.text.TextPaint);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void updateDrawState(@NonNull android.text.TextPaint);
+    method public void updateMeasureState(@NonNull android.text.TextPaint);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
   public abstract class ReplacementSpan extends android.text.style.MetricAffectingSpan {
     ctor public ReplacementSpan();
-    method public abstract void draw(android.graphics.Canvas, java.lang.CharSequence, int, int, float, int, int, int, android.graphics.Paint);
-    method public abstract int getSize(android.graphics.Paint, java.lang.CharSequence, int, int, android.graphics.Paint.FontMetricsInt);
+    method public abstract void draw(@NonNull android.graphics.Canvas, CharSequence, @IntRange(from=0) int, @IntRange(from=0) int, float, int, int, int, @NonNull android.graphics.Paint);
+    method public abstract int getSize(@NonNull android.graphics.Paint, CharSequence, @IntRange(from=0) int, @IntRange(from=0) int, @Nullable android.graphics.Paint.FontMetricsInt);
     method public void updateDrawState(android.text.TextPaint);
     method public void updateMeasureState(android.text.TextPaint);
   }
 
   public class ScaleXSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
-    ctor public ScaleXSpan(float);
-    ctor public ScaleXSpan(android.os.Parcel);
+    ctor public ScaleXSpan(@FloatRange(from=0) float);
+    ctor public ScaleXSpan(@NonNull android.os.Parcel);
     method public int describeContents();
     method public float getScaleX();
     method public int getSpanTypeId();
     method public void updateDrawState(android.text.TextPaint);
     method public void updateMeasureState(android.text.TextPaint);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
   public class StrikethroughSpan extends android.text.style.CharacterStyle implements android.text.ParcelableSpan android.text.style.UpdateAppearance {
     ctor public StrikethroughSpan();
-    ctor public StrikethroughSpan(android.os.Parcel);
+    ctor public StrikethroughSpan(@NonNull android.os.Parcel);
     method public int describeContents();
     method public int getSpanTypeId();
-    method public void updateDrawState(android.text.TextPaint);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void updateDrawState(@NonNull android.text.TextPaint);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
   public class StyleSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
     ctor public StyleSpan(int);
-    ctor public StyleSpan(android.os.Parcel);
+    ctor public StyleSpan(@NonNull android.os.Parcel);
     method public int describeContents();
     method public int getSpanTypeId();
     method public int getStyle();
@@ -46902,68 +46804,68 @@
 
   public class SubscriptSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
     ctor public SubscriptSpan();
-    ctor public SubscriptSpan(android.os.Parcel);
+    ctor public SubscriptSpan(@NonNull android.os.Parcel);
     method public int describeContents();
     method public int getSpanTypeId();
-    method public void updateDrawState(android.text.TextPaint);
-    method public void updateMeasureState(android.text.TextPaint);
+    method public void updateDrawState(@NonNull android.text.TextPaint);
+    method public void updateMeasureState(@NonNull android.text.TextPaint);
     method public void writeToParcel(android.os.Parcel, int);
   }
 
   public class SuggestionSpan extends android.text.style.CharacterStyle implements android.text.ParcelableSpan {
-    ctor public SuggestionSpan(android.content.Context, java.lang.String[], int);
-    ctor public SuggestionSpan(java.util.Locale, java.lang.String[], int);
-    ctor public SuggestionSpan(android.content.Context, java.util.Locale, java.lang.String[], int, java.lang.Class<?>);
+    ctor public SuggestionSpan(android.content.Context, String[], int);
+    ctor public SuggestionSpan(java.util.Locale, String[], int);
+    ctor public SuggestionSpan(android.content.Context, java.util.Locale, String[], int, Class<?>);
     ctor public SuggestionSpan(android.os.Parcel);
     method public int describeContents();
     method public int getFlags();
-    method public deprecated java.lang.String getLocale();
-    method public java.util.Locale getLocaleObject();
+    method @Deprecated @NonNull public String getLocale();
+    method @Nullable public java.util.Locale getLocaleObject();
     method public int getSpanTypeId();
-    method public java.lang.String[] getSuggestions();
-    method public int getUnderlineColor();
+    method public String[] getSuggestions();
+    method @ColorInt public int getUnderlineColor();
     method public void setFlags(int);
     method public void updateDrawState(android.text.TextPaint);
     method public void writeToParcel(android.os.Parcel, int);
-    field public static final java.lang.String ACTION_SUGGESTION_PICKED = "android.text.style.SUGGESTION_PICKED";
+    field public static final String ACTION_SUGGESTION_PICKED = "android.text.style.SUGGESTION_PICKED";
     field public static final android.os.Parcelable.Creator<android.text.style.SuggestionSpan> CREATOR;
     field public static final int FLAG_AUTO_CORRECTION = 4; // 0x4
     field public static final int FLAG_EASY_CORRECT = 1; // 0x1
     field public static final int FLAG_MISSPELLED = 2; // 0x2
     field public static final int SUGGESTIONS_MAX_SIZE = 5; // 0x5
-    field public static final java.lang.String SUGGESTION_SPAN_PICKED_AFTER = "after";
-    field public static final java.lang.String SUGGESTION_SPAN_PICKED_BEFORE = "before";
-    field public static final java.lang.String SUGGESTION_SPAN_PICKED_HASHCODE = "hashcode";
+    field public static final String SUGGESTION_SPAN_PICKED_AFTER = "after";
+    field public static final String SUGGESTION_SPAN_PICKED_BEFORE = "before";
+    field public static final String SUGGESTION_SPAN_PICKED_HASHCODE = "hashcode";
   }
 
   public class SuperscriptSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
     ctor public SuperscriptSpan();
-    ctor public SuperscriptSpan(android.os.Parcel);
+    ctor public SuperscriptSpan(@NonNull android.os.Parcel);
     method public int describeContents();
     method public int getSpanTypeId();
-    method public void updateDrawState(android.text.TextPaint);
-    method public void updateMeasureState(android.text.TextPaint);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void updateDrawState(@NonNull android.text.TextPaint);
+    method public void updateMeasureState(@NonNull android.text.TextPaint);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
-  public abstract interface TabStopSpan implements android.text.style.ParagraphStyle {
-    method public abstract int getTabStop();
+  public interface TabStopSpan extends android.text.style.ParagraphStyle {
+    method public int getTabStop();
   }
 
   public static class TabStopSpan.Standard implements android.text.style.TabStopSpan {
-    ctor public TabStopSpan.Standard(int);
+    ctor public TabStopSpan.Standard(@IntRange(from=0) int);
     method public int getTabStop();
   }
 
   public class TextAppearanceSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
     ctor public TextAppearanceSpan(android.content.Context, int);
     ctor public TextAppearanceSpan(android.content.Context, int, int);
-    ctor public TextAppearanceSpan(java.lang.String, int, int, android.content.res.ColorStateList, android.content.res.ColorStateList);
+    ctor public TextAppearanceSpan(String, int, int, android.content.res.ColorStateList, android.content.res.ColorStateList);
     ctor public TextAppearanceSpan(android.os.Parcel);
     method public int describeContents();
-    method public java.lang.String getFamily();
-    method public java.lang.String getFontFeatureSettings();
-    method public java.lang.String getFontVariationSettings();
+    method public String getFamily();
+    method @Nullable public String getFontFeatureSettings();
+    method @Nullable public String getFontVariationSettings();
     method public android.content.res.ColorStateList getLinkTextColor();
     method public int getShadowColor();
     method public float getShadowDx();
@@ -46972,10 +46874,10 @@
     method public int getSpanTypeId();
     method public android.content.res.ColorStateList getTextColor();
     method public int getTextFontWeight();
-    method public android.os.LocaleList getTextLocales();
+    method @Nullable public android.os.LocaleList getTextLocales();
     method public int getTextSize();
     method public int getTextStyle();
-    method public android.graphics.Typeface getTypeface();
+    method @Nullable public android.graphics.Typeface getTypeface();
     method public boolean isElegantTextHeight();
     method public void updateDrawState(android.text.TextPaint);
     method public void updateMeasureState(android.text.TextPaint);
@@ -46983,58 +46885,58 @@
   }
 
   public class TtsSpan implements android.text.ParcelableSpan {
-    ctor public TtsSpan(java.lang.String, android.os.PersistableBundle);
+    ctor public TtsSpan(String, android.os.PersistableBundle);
     ctor public TtsSpan(android.os.Parcel);
     method public int describeContents();
     method public android.os.PersistableBundle getArgs();
     method public int getSpanTypeId();
-    method public java.lang.String getType();
+    method public String getType();
     method public void writeToParcel(android.os.Parcel, int);
-    field public static final java.lang.String ANIMACY_ANIMATE = "android.animate";
-    field public static final java.lang.String ANIMACY_INANIMATE = "android.inanimate";
-    field public static final java.lang.String ARG_ANIMACY = "android.arg.animacy";
-    field public static final java.lang.String ARG_CASE = "android.arg.case";
-    field public static final java.lang.String ARG_COUNTRY_CODE = "android.arg.country_code";
-    field public static final java.lang.String ARG_CURRENCY = "android.arg.money";
-    field public static final java.lang.String ARG_DAY = "android.arg.day";
-    field public static final java.lang.String ARG_DENOMINATOR = "android.arg.denominator";
-    field public static final java.lang.String ARG_DIGITS = "android.arg.digits";
-    field public static final java.lang.String ARG_DOMAIN = "android.arg.domain";
-    field public static final java.lang.String ARG_EXTENSION = "android.arg.extension";
-    field public static final java.lang.String ARG_FRACTIONAL_PART = "android.arg.fractional_part";
-    field public static final java.lang.String ARG_FRAGMENT_ID = "android.arg.fragment_id";
-    field public static final java.lang.String ARG_GENDER = "android.arg.gender";
-    field public static final java.lang.String ARG_HOURS = "android.arg.hours";
-    field public static final java.lang.String ARG_INTEGER_PART = "android.arg.integer_part";
-    field public static final java.lang.String ARG_MINUTES = "android.arg.minutes";
-    field public static final java.lang.String ARG_MONTH = "android.arg.month";
-    field public static final java.lang.String ARG_MULTIPLICITY = "android.arg.multiplicity";
-    field public static final java.lang.String ARG_NUMBER = "android.arg.number";
-    field public static final java.lang.String ARG_NUMBER_PARTS = "android.arg.number_parts";
-    field public static final java.lang.String ARG_NUMERATOR = "android.arg.numerator";
-    field public static final java.lang.String ARG_PASSWORD = "android.arg.password";
-    field public static final java.lang.String ARG_PATH = "android.arg.path";
-    field public static final java.lang.String ARG_PORT = "android.arg.port";
-    field public static final java.lang.String ARG_PROTOCOL = "android.arg.protocol";
-    field public static final java.lang.String ARG_QUANTITY = "android.arg.quantity";
-    field public static final java.lang.String ARG_QUERY_STRING = "android.arg.query_string";
-    field public static final java.lang.String ARG_TEXT = "android.arg.text";
-    field public static final java.lang.String ARG_UNIT = "android.arg.unit";
-    field public static final java.lang.String ARG_USERNAME = "android.arg.username";
-    field public static final java.lang.String ARG_VERBATIM = "android.arg.verbatim";
-    field public static final java.lang.String ARG_WEEKDAY = "android.arg.weekday";
-    field public static final java.lang.String ARG_YEAR = "android.arg.year";
-    field public static final java.lang.String CASE_ABLATIVE = "android.ablative";
-    field public static final java.lang.String CASE_ACCUSATIVE = "android.accusative";
-    field public static final java.lang.String CASE_DATIVE = "android.dative";
-    field public static final java.lang.String CASE_GENITIVE = "android.genitive";
-    field public static final java.lang.String CASE_INSTRUMENTAL = "android.instrumental";
-    field public static final java.lang.String CASE_LOCATIVE = "android.locative";
-    field public static final java.lang.String CASE_NOMINATIVE = "android.nominative";
-    field public static final java.lang.String CASE_VOCATIVE = "android.vocative";
-    field public static final java.lang.String GENDER_FEMALE = "android.female";
-    field public static final java.lang.String GENDER_MALE = "android.male";
-    field public static final java.lang.String GENDER_NEUTRAL = "android.neutral";
+    field public static final String ANIMACY_ANIMATE = "android.animate";
+    field public static final String ANIMACY_INANIMATE = "android.inanimate";
+    field public static final String ARG_ANIMACY = "android.arg.animacy";
+    field public static final String ARG_CASE = "android.arg.case";
+    field public static final String ARG_COUNTRY_CODE = "android.arg.country_code";
+    field public static final String ARG_CURRENCY = "android.arg.money";
+    field public static final String ARG_DAY = "android.arg.day";
+    field public static final String ARG_DENOMINATOR = "android.arg.denominator";
+    field public static final String ARG_DIGITS = "android.arg.digits";
+    field public static final String ARG_DOMAIN = "android.arg.domain";
+    field public static final String ARG_EXTENSION = "android.arg.extension";
+    field public static final String ARG_FRACTIONAL_PART = "android.arg.fractional_part";
+    field public static final String ARG_FRAGMENT_ID = "android.arg.fragment_id";
+    field public static final String ARG_GENDER = "android.arg.gender";
+    field public static final String ARG_HOURS = "android.arg.hours";
+    field public static final String ARG_INTEGER_PART = "android.arg.integer_part";
+    field public static final String ARG_MINUTES = "android.arg.minutes";
+    field public static final String ARG_MONTH = "android.arg.month";
+    field public static final String ARG_MULTIPLICITY = "android.arg.multiplicity";
+    field public static final String ARG_NUMBER = "android.arg.number";
+    field public static final String ARG_NUMBER_PARTS = "android.arg.number_parts";
+    field public static final String ARG_NUMERATOR = "android.arg.numerator";
+    field public static final String ARG_PASSWORD = "android.arg.password";
+    field public static final String ARG_PATH = "android.arg.path";
+    field public static final String ARG_PORT = "android.arg.port";
+    field public static final String ARG_PROTOCOL = "android.arg.protocol";
+    field public static final String ARG_QUANTITY = "android.arg.quantity";
+    field public static final String ARG_QUERY_STRING = "android.arg.query_string";
+    field public static final String ARG_TEXT = "android.arg.text";
+    field public static final String ARG_UNIT = "android.arg.unit";
+    field public static final String ARG_USERNAME = "android.arg.username";
+    field public static final String ARG_VERBATIM = "android.arg.verbatim";
+    field public static final String ARG_WEEKDAY = "android.arg.weekday";
+    field public static final String ARG_YEAR = "android.arg.year";
+    field public static final String CASE_ABLATIVE = "android.ablative";
+    field public static final String CASE_ACCUSATIVE = "android.accusative";
+    field public static final String CASE_DATIVE = "android.dative";
+    field public static final String CASE_GENITIVE = "android.genitive";
+    field public static final String CASE_INSTRUMENTAL = "android.instrumental";
+    field public static final String CASE_LOCATIVE = "android.locative";
+    field public static final String CASE_NOMINATIVE = "android.nominative";
+    field public static final String CASE_VOCATIVE = "android.vocative";
+    field public static final String GENDER_FEMALE = "android.female";
+    field public static final String GENDER_MALE = "android.male";
+    field public static final String GENDER_NEUTRAL = "android.neutral";
     field public static final int MONTH_APRIL = 3; // 0x3
     field public static final int MONTH_AUGUST = 7; // 0x7
     field public static final int MONTH_DECEMBER = 11; // 0xb
@@ -47047,22 +46949,22 @@
     field public static final int MONTH_NOVEMBER = 10; // 0xa
     field public static final int MONTH_OCTOBER = 9; // 0x9
     field public static final int MONTH_SEPTEMBER = 8; // 0x8
-    field public static final java.lang.String MULTIPLICITY_DUAL = "android.dual";
-    field public static final java.lang.String MULTIPLICITY_PLURAL = "android.plural";
-    field public static final java.lang.String MULTIPLICITY_SINGLE = "android.single";
-    field public static final java.lang.String TYPE_CARDINAL = "android.type.cardinal";
-    field public static final java.lang.String TYPE_DATE = "android.type.date";
-    field public static final java.lang.String TYPE_DECIMAL = "android.type.decimal";
-    field public static final java.lang.String TYPE_DIGITS = "android.type.digits";
-    field public static final java.lang.String TYPE_ELECTRONIC = "android.type.electronic";
-    field public static final java.lang.String TYPE_FRACTION = "android.type.fraction";
-    field public static final java.lang.String TYPE_MEASURE = "android.type.measure";
-    field public static final java.lang.String TYPE_MONEY = "android.type.money";
-    field public static final java.lang.String TYPE_ORDINAL = "android.type.ordinal";
-    field public static final java.lang.String TYPE_TELEPHONE = "android.type.telephone";
-    field public static final java.lang.String TYPE_TEXT = "android.type.text";
-    field public static final java.lang.String TYPE_TIME = "android.type.time";
-    field public static final java.lang.String TYPE_VERBATIM = "android.type.verbatim";
+    field public static final String MULTIPLICITY_DUAL = "android.dual";
+    field public static final String MULTIPLICITY_PLURAL = "android.plural";
+    field public static final String MULTIPLICITY_SINGLE = "android.single";
+    field public static final String TYPE_CARDINAL = "android.type.cardinal";
+    field public static final String TYPE_DATE = "android.type.date";
+    field public static final String TYPE_DECIMAL = "android.type.decimal";
+    field public static final String TYPE_DIGITS = "android.type.digits";
+    field public static final String TYPE_ELECTRONIC = "android.type.electronic";
+    field public static final String TYPE_FRACTION = "android.type.fraction";
+    field public static final String TYPE_MEASURE = "android.type.measure";
+    field public static final String TYPE_MONEY = "android.type.money";
+    field public static final String TYPE_ORDINAL = "android.type.ordinal";
+    field public static final String TYPE_TELEPHONE = "android.type.telephone";
+    field public static final String TYPE_TEXT = "android.type.text";
+    field public static final String TYPE_TIME = "android.type.time";
+    field public static final String TYPE_VERBATIM = "android.type.verbatim";
     field public static final int WEEKDAY_FRIDAY = 6; // 0x6
     field public static final int WEEKDAY_MONDAY = 2; // 0x2
     field public static final int WEEKDAY_SATURDAY = 7; // 0x7
@@ -47073,175 +46975,175 @@
   }
 
   public static class TtsSpan.Builder<C extends android.text.style.TtsSpan.Builder<?>> {
-    ctor public TtsSpan.Builder(java.lang.String);
+    ctor public TtsSpan.Builder(String);
     method public android.text.style.TtsSpan build();
-    method public C setIntArgument(java.lang.String, int);
-    method public C setLongArgument(java.lang.String, long);
-    method public C setStringArgument(java.lang.String, java.lang.String);
+    method public C setIntArgument(String, int);
+    method public C setLongArgument(String, long);
+    method public C setStringArgument(String, String);
   }
 
-  public static class TtsSpan.CardinalBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.CardinalBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.CardinalBuilder> {
     ctor public TtsSpan.CardinalBuilder();
     ctor public TtsSpan.CardinalBuilder(long);
-    ctor public TtsSpan.CardinalBuilder(java.lang.String);
+    ctor public TtsSpan.CardinalBuilder(String);
     method public android.text.style.TtsSpan.CardinalBuilder setNumber(long);
-    method public android.text.style.TtsSpan.CardinalBuilder setNumber(java.lang.String);
+    method public android.text.style.TtsSpan.CardinalBuilder setNumber(String);
   }
 
-  public static class TtsSpan.DateBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.DateBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.DateBuilder> {
     ctor public TtsSpan.DateBuilder();
-    ctor public TtsSpan.DateBuilder(java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer);
+    ctor public TtsSpan.DateBuilder(Integer, Integer, Integer, Integer);
     method public android.text.style.TtsSpan.DateBuilder setDay(int);
     method public android.text.style.TtsSpan.DateBuilder setMonth(int);
     method public android.text.style.TtsSpan.DateBuilder setWeekday(int);
     method public android.text.style.TtsSpan.DateBuilder setYear(int);
   }
 
-  public static class TtsSpan.DecimalBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.DecimalBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.DecimalBuilder> {
     ctor public TtsSpan.DecimalBuilder();
     ctor public TtsSpan.DecimalBuilder(double, int, int);
-    ctor public TtsSpan.DecimalBuilder(java.lang.String, java.lang.String);
+    ctor public TtsSpan.DecimalBuilder(String, String);
     method public android.text.style.TtsSpan.DecimalBuilder setArgumentsFromDouble(double, int, int);
-    method public android.text.style.TtsSpan.DecimalBuilder setFractionalPart(java.lang.String);
+    method public android.text.style.TtsSpan.DecimalBuilder setFractionalPart(String);
     method public android.text.style.TtsSpan.DecimalBuilder setIntegerPart(long);
-    method public android.text.style.TtsSpan.DecimalBuilder setIntegerPart(java.lang.String);
+    method public android.text.style.TtsSpan.DecimalBuilder setIntegerPart(String);
   }
 
-  public static class TtsSpan.DigitsBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.DigitsBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.DigitsBuilder> {
     ctor public TtsSpan.DigitsBuilder();
-    ctor public TtsSpan.DigitsBuilder(java.lang.String);
-    method public android.text.style.TtsSpan.DigitsBuilder setDigits(java.lang.String);
+    ctor public TtsSpan.DigitsBuilder(String);
+    method public android.text.style.TtsSpan.DigitsBuilder setDigits(String);
   }
 
-  public static class TtsSpan.ElectronicBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.ElectronicBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.ElectronicBuilder> {
     ctor public TtsSpan.ElectronicBuilder();
-    method public android.text.style.TtsSpan.ElectronicBuilder setDomain(java.lang.String);
-    method public android.text.style.TtsSpan.ElectronicBuilder setEmailArguments(java.lang.String, java.lang.String);
-    method public android.text.style.TtsSpan.ElectronicBuilder setFragmentId(java.lang.String);
-    method public android.text.style.TtsSpan.ElectronicBuilder setPassword(java.lang.String);
-    method public android.text.style.TtsSpan.ElectronicBuilder setPath(java.lang.String);
+    method public android.text.style.TtsSpan.ElectronicBuilder setDomain(String);
+    method public android.text.style.TtsSpan.ElectronicBuilder setEmailArguments(String, String);
+    method public android.text.style.TtsSpan.ElectronicBuilder setFragmentId(String);
+    method public android.text.style.TtsSpan.ElectronicBuilder setPassword(String);
+    method public android.text.style.TtsSpan.ElectronicBuilder setPath(String);
     method public android.text.style.TtsSpan.ElectronicBuilder setPort(int);
-    method public android.text.style.TtsSpan.ElectronicBuilder setProtocol(java.lang.String);
-    method public android.text.style.TtsSpan.ElectronicBuilder setQueryString(java.lang.String);
-    method public android.text.style.TtsSpan.ElectronicBuilder setUsername(java.lang.String);
+    method public android.text.style.TtsSpan.ElectronicBuilder setProtocol(String);
+    method public android.text.style.TtsSpan.ElectronicBuilder setQueryString(String);
+    method public android.text.style.TtsSpan.ElectronicBuilder setUsername(String);
   }
 
-  public static class TtsSpan.FractionBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.FractionBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.FractionBuilder> {
     ctor public TtsSpan.FractionBuilder();
     ctor public TtsSpan.FractionBuilder(long, long, long);
     method public android.text.style.TtsSpan.FractionBuilder setDenominator(long);
-    method public android.text.style.TtsSpan.FractionBuilder setDenominator(java.lang.String);
+    method public android.text.style.TtsSpan.FractionBuilder setDenominator(String);
     method public android.text.style.TtsSpan.FractionBuilder setIntegerPart(long);
-    method public android.text.style.TtsSpan.FractionBuilder setIntegerPart(java.lang.String);
+    method public android.text.style.TtsSpan.FractionBuilder setIntegerPart(String);
     method public android.text.style.TtsSpan.FractionBuilder setNumerator(long);
-    method public android.text.style.TtsSpan.FractionBuilder setNumerator(java.lang.String);
+    method public android.text.style.TtsSpan.FractionBuilder setNumerator(String);
   }
 
-  public static class TtsSpan.MeasureBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.MeasureBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.MeasureBuilder> {
     ctor public TtsSpan.MeasureBuilder();
     method public android.text.style.TtsSpan.MeasureBuilder setDenominator(long);
-    method public android.text.style.TtsSpan.MeasureBuilder setDenominator(java.lang.String);
-    method public android.text.style.TtsSpan.MeasureBuilder setFractionalPart(java.lang.String);
+    method public android.text.style.TtsSpan.MeasureBuilder setDenominator(String);
+    method public android.text.style.TtsSpan.MeasureBuilder setFractionalPart(String);
     method public android.text.style.TtsSpan.MeasureBuilder setIntegerPart(long);
-    method public android.text.style.TtsSpan.MeasureBuilder setIntegerPart(java.lang.String);
+    method public android.text.style.TtsSpan.MeasureBuilder setIntegerPart(String);
     method public android.text.style.TtsSpan.MeasureBuilder setNumber(long);
-    method public android.text.style.TtsSpan.MeasureBuilder setNumber(java.lang.String);
+    method public android.text.style.TtsSpan.MeasureBuilder setNumber(String);
     method public android.text.style.TtsSpan.MeasureBuilder setNumerator(long);
-    method public android.text.style.TtsSpan.MeasureBuilder setNumerator(java.lang.String);
-    method public android.text.style.TtsSpan.MeasureBuilder setUnit(java.lang.String);
+    method public android.text.style.TtsSpan.MeasureBuilder setNumerator(String);
+    method public android.text.style.TtsSpan.MeasureBuilder setUnit(String);
   }
 
-  public static class TtsSpan.MoneyBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.MoneyBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.MoneyBuilder> {
     ctor public TtsSpan.MoneyBuilder();
-    method public android.text.style.TtsSpan.MoneyBuilder setCurrency(java.lang.String);
-    method public android.text.style.TtsSpan.MoneyBuilder setFractionalPart(java.lang.String);
+    method public android.text.style.TtsSpan.MoneyBuilder setCurrency(String);
+    method public android.text.style.TtsSpan.MoneyBuilder setFractionalPart(String);
     method public android.text.style.TtsSpan.MoneyBuilder setIntegerPart(long);
-    method public android.text.style.TtsSpan.MoneyBuilder setIntegerPart(java.lang.String);
-    method public android.text.style.TtsSpan.MoneyBuilder setQuantity(java.lang.String);
+    method public android.text.style.TtsSpan.MoneyBuilder setIntegerPart(String);
+    method public android.text.style.TtsSpan.MoneyBuilder setQuantity(String);
   }
 
-  public static class TtsSpan.OrdinalBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.OrdinalBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.OrdinalBuilder> {
     ctor public TtsSpan.OrdinalBuilder();
     ctor public TtsSpan.OrdinalBuilder(long);
-    ctor public TtsSpan.OrdinalBuilder(java.lang.String);
+    ctor public TtsSpan.OrdinalBuilder(String);
     method public android.text.style.TtsSpan.OrdinalBuilder setNumber(long);
-    method public android.text.style.TtsSpan.OrdinalBuilder setNumber(java.lang.String);
+    method public android.text.style.TtsSpan.OrdinalBuilder setNumber(String);
   }
 
-  public static class TtsSpan.SemioticClassBuilder<C extends android.text.style.TtsSpan.SemioticClassBuilder<?>> extends android.text.style.TtsSpan.Builder {
-    ctor public TtsSpan.SemioticClassBuilder(java.lang.String);
-    method public C setAnimacy(java.lang.String);
-    method public C setCase(java.lang.String);
-    method public C setGender(java.lang.String);
-    method public C setMultiplicity(java.lang.String);
+  public static class TtsSpan.SemioticClassBuilder<C extends android.text.style.TtsSpan.SemioticClassBuilder<?>> extends android.text.style.TtsSpan.Builder<C> {
+    ctor public TtsSpan.SemioticClassBuilder(String);
+    method public C setAnimacy(String);
+    method public C setCase(String);
+    method public C setGender(String);
+    method public C setMultiplicity(String);
   }
 
-  public static class TtsSpan.TelephoneBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.TelephoneBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.TelephoneBuilder> {
     ctor public TtsSpan.TelephoneBuilder();
-    ctor public TtsSpan.TelephoneBuilder(java.lang.String);
-    method public android.text.style.TtsSpan.TelephoneBuilder setCountryCode(java.lang.String);
-    method public android.text.style.TtsSpan.TelephoneBuilder setExtension(java.lang.String);
-    method public android.text.style.TtsSpan.TelephoneBuilder setNumberParts(java.lang.String);
+    ctor public TtsSpan.TelephoneBuilder(String);
+    method public android.text.style.TtsSpan.TelephoneBuilder setCountryCode(String);
+    method public android.text.style.TtsSpan.TelephoneBuilder setExtension(String);
+    method public android.text.style.TtsSpan.TelephoneBuilder setNumberParts(String);
   }
 
-  public static class TtsSpan.TextBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.TextBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.TextBuilder> {
     ctor public TtsSpan.TextBuilder();
-    ctor public TtsSpan.TextBuilder(java.lang.String);
-    method public android.text.style.TtsSpan.TextBuilder setText(java.lang.String);
+    ctor public TtsSpan.TextBuilder(String);
+    method public android.text.style.TtsSpan.TextBuilder setText(String);
   }
 
-  public static class TtsSpan.TimeBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.TimeBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.TimeBuilder> {
     ctor public TtsSpan.TimeBuilder();
     ctor public TtsSpan.TimeBuilder(int, int);
     method public android.text.style.TtsSpan.TimeBuilder setHours(int);
     method public android.text.style.TtsSpan.TimeBuilder setMinutes(int);
   }
 
-  public static class TtsSpan.VerbatimBuilder extends android.text.style.TtsSpan.SemioticClassBuilder {
+  public static class TtsSpan.VerbatimBuilder extends android.text.style.TtsSpan.SemioticClassBuilder<android.text.style.TtsSpan.VerbatimBuilder> {
     ctor public TtsSpan.VerbatimBuilder();
-    ctor public TtsSpan.VerbatimBuilder(java.lang.String);
-    method public android.text.style.TtsSpan.VerbatimBuilder setVerbatim(java.lang.String);
+    ctor public TtsSpan.VerbatimBuilder(String);
+    method public android.text.style.TtsSpan.VerbatimBuilder setVerbatim(String);
   }
 
   public class TypefaceSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
-    ctor public TypefaceSpan(java.lang.String);
-    ctor public TypefaceSpan(android.graphics.Typeface);
-    ctor public TypefaceSpan(android.os.Parcel);
+    ctor public TypefaceSpan(@Nullable String);
+    ctor public TypefaceSpan(@NonNull android.graphics.Typeface);
+    ctor public TypefaceSpan(@NonNull android.os.Parcel);
     method public int describeContents();
-    method public java.lang.String getFamily();
+    method @Nullable public String getFamily();
     method public int getSpanTypeId();
-    method public android.graphics.Typeface getTypeface();
-    method public void updateDrawState(android.text.TextPaint);
-    method public void updateMeasureState(android.text.TextPaint);
-    method public void writeToParcel(android.os.Parcel, int);
+    method @Nullable public android.graphics.Typeface getTypeface();
+    method public void updateDrawState(@NonNull android.text.TextPaint);
+    method public void updateMeasureState(@NonNull android.text.TextPaint);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
   public class URLSpan extends android.text.style.ClickableSpan implements android.text.ParcelableSpan {
-    ctor public URLSpan(java.lang.String);
-    ctor public URLSpan(android.os.Parcel);
+    ctor public URLSpan(String);
+    ctor public URLSpan(@NonNull android.os.Parcel);
     method public int describeContents();
     method public int getSpanTypeId();
-    method public java.lang.String getURL();
+    method public String getURL();
     method public void onClick(android.view.View);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
   public class UnderlineSpan extends android.text.style.CharacterStyle implements android.text.ParcelableSpan android.text.style.UpdateAppearance {
     ctor public UnderlineSpan();
-    ctor public UnderlineSpan(android.os.Parcel);
+    ctor public UnderlineSpan(@NonNull android.os.Parcel);
     method public int describeContents();
     method public int getSpanTypeId();
-    method public void updateDrawState(android.text.TextPaint);
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void updateDrawState(@NonNull android.text.TextPaint);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
   }
 
-  public abstract interface UpdateAppearance {
+  public interface UpdateAppearance {
   }
 
-  public abstract interface UpdateLayout implements android.text.style.UpdateAppearance {
+  public interface UpdateLayout extends android.text.style.UpdateAppearance {
   }
 
-  public abstract interface WrapTogetherSpan implements android.text.style.ParagraphStyle {
+  public interface WrapTogetherSpan extends android.text.style.ParagraphStyle {
   }
 
 }
@@ -47250,19 +47152,19 @@
 
   public class Linkify {
     ctor public Linkify();
-    method public static final boolean addLinks(android.text.Spannable, int);
-    method public static final boolean addLinks(android.text.Spannable, int, java.util.function.Function<java.lang.String, android.text.style.URLSpan>);
-    method public static final boolean addLinks(android.widget.TextView, int);
-    method public static final void addLinks(android.widget.TextView, java.util.regex.Pattern, java.lang.String);
-    method public static final void addLinks(android.widget.TextView, java.util.regex.Pattern, java.lang.String, android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter);
-    method public static final void addLinks(android.widget.TextView, java.util.regex.Pattern, java.lang.String, java.lang.String[], android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter);
-    method public static final boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String);
-    method public static final boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String, android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter);
-    method public static final boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String, java.lang.String[], android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter);
-    method public static final boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String, java.lang.String[], android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter, java.util.function.Function<java.lang.String, android.text.style.URLSpan>);
+    method public static final boolean addLinks(@NonNull android.text.Spannable, int);
+    method public static final boolean addLinks(@NonNull android.text.Spannable, int, @Nullable java.util.function.Function<java.lang.String,android.text.style.URLSpan>);
+    method public static final boolean addLinks(@NonNull android.widget.TextView, int);
+    method public static final void addLinks(@NonNull android.widget.TextView, @NonNull java.util.regex.Pattern, @Nullable String);
+    method public static final void addLinks(@NonNull android.widget.TextView, @NonNull java.util.regex.Pattern, @Nullable String, @Nullable android.text.util.Linkify.MatchFilter, @Nullable android.text.util.Linkify.TransformFilter);
+    method public static final void addLinks(@NonNull android.widget.TextView, @NonNull java.util.regex.Pattern, @Nullable String, @Nullable String[], @Nullable android.text.util.Linkify.MatchFilter, @Nullable android.text.util.Linkify.TransformFilter);
+    method public static final boolean addLinks(@NonNull android.text.Spannable, @NonNull java.util.regex.Pattern, @Nullable String);
+    method public static final boolean addLinks(@NonNull android.text.Spannable, @NonNull java.util.regex.Pattern, @Nullable String, @Nullable android.text.util.Linkify.MatchFilter, @Nullable android.text.util.Linkify.TransformFilter);
+    method public static final boolean addLinks(@NonNull android.text.Spannable, @NonNull java.util.regex.Pattern, @Nullable String, @Nullable String[], @Nullable android.text.util.Linkify.MatchFilter, @Nullable android.text.util.Linkify.TransformFilter);
+    method public static final boolean addLinks(@NonNull android.text.Spannable, @NonNull java.util.regex.Pattern, @Nullable String, @Nullable String[], @Nullable android.text.util.Linkify.MatchFilter, @Nullable android.text.util.Linkify.TransformFilter, @Nullable java.util.function.Function<java.lang.String,android.text.style.URLSpan>);
     field public static final int ALL = 15; // 0xf
     field public static final int EMAIL_ADDRESSES = 2; // 0x2
-    field public static final deprecated int MAP_ADDRESSES = 8; // 0x8
+    field @Deprecated public static final int MAP_ADDRESSES = 8; // 0x8
     field public static final int PHONE_NUMBERS = 4; // 0x4
     field public static final int WEB_URLS = 1; // 0x1
     field public static final android.text.util.Linkify.MatchFilter sPhoneNumberMatchFilter;
@@ -47270,34 +47172,34 @@
     field public static final android.text.util.Linkify.MatchFilter sUrlMatchFilter;
   }
 
-  public static abstract interface Linkify.MatchFilter {
-    method public abstract boolean acceptMatch(java.lang.CharSequence, int, int);
+  public static interface Linkify.MatchFilter {
+    method public boolean acceptMatch(CharSequence, int, int);
   }
 
-  public static abstract interface Linkify.TransformFilter {
-    method public abstract java.lang.String transformUrl(java.util.regex.Matcher, java.lang.String);
+  public static interface Linkify.TransformFilter {
+    method public String transformUrl(java.util.regex.Matcher, String);
   }
 
   public class Rfc822Token {
-    ctor public Rfc822Token(java.lang.String, java.lang.String, java.lang.String);
-    method public java.lang.String getAddress();
-    method public java.lang.String getComment();
-    method public java.lang.String getName();
-    method public static java.lang.String quoteComment(java.lang.String);
-    method public static java.lang.String quoteName(java.lang.String);
-    method public static java.lang.String quoteNameIfNecessary(java.lang.String);
-    method public void setAddress(java.lang.String);
-    method public void setComment(java.lang.String);
-    method public void setName(java.lang.String);
+    ctor public Rfc822Token(@Nullable String, @Nullable String, @Nullable String);
+    method @Nullable public String getAddress();
+    method @Nullable public String getComment();
+    method @Nullable public String getName();
+    method public static String quoteComment(String);
+    method public static String quoteName(String);
+    method public static String quoteNameIfNecessary(String);
+    method public void setAddress(@Nullable String);
+    method public void setComment(@Nullable String);
+    method public void setName(@Nullable String);
   }
 
   public class Rfc822Tokenizer implements android.widget.MultiAutoCompleteTextView.Tokenizer {
     ctor public Rfc822Tokenizer();
-    method public int findTokenEnd(java.lang.CharSequence, int);
-    method public int findTokenStart(java.lang.CharSequence, int);
-    method public java.lang.CharSequence terminateToken(java.lang.CharSequence);
-    method public static void tokenize(java.lang.CharSequence, java.util.Collection<android.text.util.Rfc822Token>);
-    method public static android.text.util.Rfc822Token[] tokenize(java.lang.CharSequence);
+    method public int findTokenEnd(CharSequence, int);
+    method public int findTokenStart(CharSequence, int);
+    method public CharSequence terminateToken(CharSequence);
+    method public static void tokenize(CharSequence, java.util.Collection<android.text.util.Rfc822Token>);
+    method public static android.text.util.Rfc822Token[] tokenize(CharSequence);
   }
 
 }
@@ -47327,7 +47229,7 @@
     method public void captureEndValues(android.transition.TransitionValues);
     method public void captureStartValues(android.transition.TransitionValues);
     method public boolean getResizeClip();
-    method public deprecated void setReparent(boolean);
+    method @Deprecated public void setReparent(boolean);
     method public void setResizeClip(boolean);
   }
 
@@ -47400,14 +47302,14 @@
   public final class Scene {
     ctor public Scene(android.view.ViewGroup);
     ctor public Scene(android.view.ViewGroup, android.view.View);
-    ctor public deprecated Scene(android.view.ViewGroup, android.view.ViewGroup);
+    ctor @Deprecated public Scene(android.view.ViewGroup, android.view.ViewGroup);
     method public void enter();
     method public void exit();
-    method public static android.transition.Scene getCurrentScene(android.view.ViewGroup);
+    method @Nullable public static android.transition.Scene getCurrentScene(@NonNull android.view.ViewGroup);
     method public static android.transition.Scene getSceneForLayout(android.view.ViewGroup, int, android.content.Context);
     method public android.view.ViewGroup getSceneRoot();
-    method public void setEnterAction(java.lang.Runnable);
-    method public void setExitAction(java.lang.Runnable);
+    method public void setEnterAction(Runnable);
+    method public void setExitAction(Runnable);
   }
 
   public class SidePropagation extends android.transition.VisibilityPropagation {
@@ -47430,8 +47332,8 @@
     ctor public Transition(android.content.Context, android.util.AttributeSet);
     method public android.transition.Transition addListener(android.transition.Transition.TransitionListener);
     method public android.transition.Transition addTarget(int);
-    method public android.transition.Transition addTarget(java.lang.String);
-    method public android.transition.Transition addTarget(java.lang.Class);
+    method public android.transition.Transition addTarget(String);
+    method public android.transition.Transition addTarget(Class);
     method public android.transition.Transition addTarget(android.view.View);
     method public boolean canRemoveViews();
     method public abstract void captureEndValues(android.transition.TransitionValues);
@@ -47440,16 +47342,16 @@
     method public android.animation.Animator createAnimator(android.view.ViewGroup, android.transition.TransitionValues, android.transition.TransitionValues);
     method public android.transition.Transition excludeChildren(int, boolean);
     method public android.transition.Transition excludeChildren(android.view.View, boolean);
-    method public android.transition.Transition excludeChildren(java.lang.Class, boolean);
+    method public android.transition.Transition excludeChildren(Class, boolean);
     method public android.transition.Transition excludeTarget(int, boolean);
-    method public android.transition.Transition excludeTarget(java.lang.String, boolean);
+    method public android.transition.Transition excludeTarget(String, boolean);
     method public android.transition.Transition excludeTarget(android.view.View, boolean);
-    method public android.transition.Transition excludeTarget(java.lang.Class, boolean);
+    method public android.transition.Transition excludeTarget(Class, boolean);
     method public long getDuration();
     method public android.graphics.Rect getEpicenter();
     method public android.transition.Transition.EpicenterCallback getEpicenterCallback();
     method public android.animation.TimeInterpolator getInterpolator();
-    method public java.lang.String getName();
+    method public String getName();
     method public android.transition.PathMotion getPathMotion();
     method public android.transition.TransitionPropagation getPropagation();
     method public long getStartDelay();
@@ -47457,14 +47359,14 @@
     method public java.util.List<java.lang.String> getTargetNames();
     method public java.util.List<java.lang.Class> getTargetTypes();
     method public java.util.List<android.view.View> getTargets();
-    method public java.lang.String[] getTransitionProperties();
+    method public String[] getTransitionProperties();
     method public android.transition.TransitionValues getTransitionValues(android.view.View, boolean);
-    method public boolean isTransitionRequired(android.transition.TransitionValues, android.transition.TransitionValues);
+    method public boolean isTransitionRequired(@Nullable android.transition.TransitionValues, @Nullable android.transition.TransitionValues);
     method public android.transition.Transition removeListener(android.transition.Transition.TransitionListener);
     method public android.transition.Transition removeTarget(int);
-    method public android.transition.Transition removeTarget(java.lang.String);
+    method public android.transition.Transition removeTarget(String);
     method public android.transition.Transition removeTarget(android.view.View);
-    method public android.transition.Transition removeTarget(java.lang.Class);
+    method public android.transition.Transition removeTarget(Class);
     method public android.transition.Transition setDuration(long);
     method public void setEpicenterCallback(android.transition.Transition.EpicenterCallback);
     method public android.transition.Transition setInterpolator(android.animation.TimeInterpolator);
@@ -47478,23 +47380,23 @@
     field public static final int MATCH_NAME = 2; // 0x2
   }
 
-  public static abstract class Transition.EpicenterCallback {
+  public abstract static class Transition.EpicenterCallback {
     ctor public Transition.EpicenterCallback();
     method public abstract android.graphics.Rect onGetEpicenter(android.transition.Transition);
   }
 
-  public static abstract interface Transition.TransitionListener {
-    method public abstract void onTransitionCancel(android.transition.Transition);
-    method public abstract void onTransitionEnd(android.transition.Transition);
-    method public abstract void onTransitionPause(android.transition.Transition);
-    method public abstract void onTransitionResume(android.transition.Transition);
-    method public abstract void onTransitionStart(android.transition.Transition);
+  public static interface Transition.TransitionListener {
+    method public void onTransitionCancel(android.transition.Transition);
+    method public void onTransitionEnd(android.transition.Transition);
+    method public void onTransitionPause(android.transition.Transition);
+    method public void onTransitionResume(android.transition.Transition);
+    method public void onTransitionStart(android.transition.Transition);
   }
 
   public class TransitionInflater {
     method public static android.transition.TransitionInflater from(android.content.Context);
-    method public android.transition.Transition inflateTransition(int);
-    method public android.transition.TransitionManager inflateTransitionManager(int, android.view.ViewGroup);
+    method public android.transition.Transition inflateTransition(@TransitionRes int);
+    method public android.transition.TransitionManager inflateTransitionManager(@TransitionRes int, android.view.ViewGroup);
   }
 
   public abstract class TransitionListenerAdapter implements android.transition.Transition.TransitionListener {
@@ -47521,7 +47423,7 @@
   public abstract class TransitionPropagation {
     ctor public TransitionPropagation();
     method public abstract void captureValues(android.transition.TransitionValues);
-    method public abstract java.lang.String[] getPropagationProperties();
+    method public abstract String[] getPropagationProperties();
     method public abstract long getStartDelay(android.view.ViewGroup, android.transition.Transition, android.transition.TransitionValues, android.transition.TransitionValues);
   }
 
@@ -47531,8 +47433,8 @@
     method public android.transition.TransitionSet addListener(android.transition.Transition.TransitionListener);
     method public android.transition.TransitionSet addTarget(android.view.View);
     method public android.transition.TransitionSet addTarget(int);
-    method public android.transition.TransitionSet addTarget(java.lang.String);
-    method public android.transition.TransitionSet addTarget(java.lang.Class);
+    method public android.transition.TransitionSet addTarget(String);
+    method public android.transition.TransitionSet addTarget(Class);
     method public android.transition.TransitionSet addTransition(android.transition.Transition);
     method public void captureEndValues(android.transition.TransitionValues);
     method public void captureStartValues(android.transition.TransitionValues);
@@ -47543,8 +47445,8 @@
     method public android.transition.TransitionSet removeListener(android.transition.Transition.TransitionListener);
     method public android.transition.TransitionSet removeTarget(int);
     method public android.transition.TransitionSet removeTarget(android.view.View);
-    method public android.transition.TransitionSet removeTarget(java.lang.Class);
-    method public android.transition.TransitionSet removeTarget(java.lang.String);
+    method public android.transition.TransitionSet removeTarget(Class);
+    method public android.transition.TransitionSet removeTarget(String);
     method public android.transition.TransitionSet removeTransition(android.transition.Transition);
     method public android.transition.TransitionSet setDuration(long);
     method public android.transition.TransitionSet setInterpolator(android.animation.TimeInterpolator);
@@ -47555,10 +47457,10 @@
   }
 
   public class TransitionValues {
-    ctor public deprecated TransitionValues();
-    ctor public TransitionValues(android.view.View);
-    field public final java.util.Map<java.lang.String, java.lang.Object> values;
-    field public android.view.View view;
+    ctor @Deprecated public TransitionValues();
+    ctor public TransitionValues(@NonNull android.view.View);
+    field @NonNull public final java.util.Map<java.lang.String,java.lang.Object> values;
+    field @NonNull public android.view.View view;
   }
 
   public abstract class Visibility extends android.transition.Transition {
@@ -47580,7 +47482,7 @@
   public abstract class VisibilityPropagation extends android.transition.TransitionPropagation {
     ctor public VisibilityPropagation();
     method public void captureValues(android.transition.TransitionValues);
-    method public java.lang.String[] getPropagationProperties();
+    method public String[] getPropagationProperties();
     method public int getViewVisibility(android.transition.TransitionValues);
     method public int getViewX(android.transition.TransitionValues);
     method public int getViewY(android.transition.TransitionValues);
@@ -47592,38 +47494,38 @@
 
   public class AndroidException extends java.lang.Exception {
     ctor public AndroidException();
-    ctor public AndroidException(java.lang.String);
-    ctor public AndroidException(java.lang.String, java.lang.Throwable);
-    ctor public AndroidException(java.lang.Exception);
+    ctor public AndroidException(String);
+    ctor public AndroidException(String, Throwable);
+    ctor public AndroidException(Exception);
   }
 
   public class AndroidRuntimeException extends java.lang.RuntimeException {
     ctor public AndroidRuntimeException();
-    ctor public AndroidRuntimeException(java.lang.String);
-    ctor public AndroidRuntimeException(java.lang.String, java.lang.Throwable);
-    ctor public AndroidRuntimeException(java.lang.Exception);
+    ctor public AndroidRuntimeException(String);
+    ctor public AndroidRuntimeException(String, Throwable);
+    ctor public AndroidRuntimeException(Exception);
   }
 
-  public final class ArrayMap<K, V> implements java.util.Map {
+  public final class ArrayMap<K, V> implements java.util.Map<K,V> {
     ctor public ArrayMap();
     ctor public ArrayMap(int);
-    ctor public ArrayMap(android.util.ArrayMap<K, V>);
+    ctor public ArrayMap(android.util.ArrayMap<K,V>);
     method public void clear();
     method public boolean containsAll(java.util.Collection<?>);
-    method public boolean containsKey(java.lang.Object);
-    method public boolean containsValue(java.lang.Object);
+    method public boolean containsKey(Object);
+    method public boolean containsValue(Object);
     method public void ensureCapacity(int);
-    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
-    method public V get(java.lang.Object);
-    method public int indexOfKey(java.lang.Object);
-    method public int indexOfValue(java.lang.Object);
+    method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public V get(Object);
+    method public int indexOfKey(Object);
+    method public int indexOfValue(Object);
     method public boolean isEmpty();
     method public K keyAt(int);
     method public java.util.Set<K> keySet();
     method public V put(K, V);
-    method public void putAll(android.util.ArrayMap<? extends K, ? extends V>);
-    method public void putAll(java.util.Map<? extends K, ? extends V>);
-    method public V remove(java.lang.Object);
+    method public void putAll(android.util.ArrayMap<? extends K,? extends V>);
+    method public void putAll(java.util.Map<? extends K,? extends V>);
+    method public V remove(Object);
     method public boolean removeAll(java.util.Collection<?>);
     method public V removeAt(int);
     method public boolean retainAll(java.util.Collection<?>);
@@ -47633,7 +47535,7 @@
     method public java.util.Collection<V> values();
   }
 
-  public final class ArraySet<E> implements java.util.Collection java.util.Set {
+  public final class ArraySet<E> implements java.util.Collection<E> java.util.Set<E> {
     ctor public ArraySet();
     ctor public ArraySet(int);
     ctor public ArraySet(android.util.ArraySet<E>);
@@ -47642,19 +47544,19 @@
     method public void addAll(android.util.ArraySet<? extends E>);
     method public boolean addAll(java.util.Collection<? extends E>);
     method public void clear();
-    method public boolean contains(java.lang.Object);
+    method public boolean contains(Object);
     method public boolean containsAll(java.util.Collection<?>);
     method public void ensureCapacity(int);
-    method public int indexOf(java.lang.Object);
+    method public int indexOf(Object);
     method public boolean isEmpty();
     method public java.util.Iterator<E> iterator();
-    method public boolean remove(java.lang.Object);
+    method public boolean remove(Object);
     method public boolean removeAll(android.util.ArraySet<? extends E>);
     method public boolean removeAll(java.util.Collection<?>);
     method public E removeAt(int);
     method public boolean retainAll(java.util.Collection<?>);
     method public int size();
-    method public java.lang.Object[] toArray();
+    method public Object[] toArray();
     method public <T> T[] toArray(T[]);
     method public E valueAt(int);
   }
@@ -47670,40 +47572,40 @@
     method public java.io.FileOutputStream startWrite() throws java.io.IOException;
   }
 
-  public abstract interface AttributeSet {
-    method public abstract boolean getAttributeBooleanValue(java.lang.String, java.lang.String, boolean);
-    method public abstract boolean getAttributeBooleanValue(int, boolean);
-    method public abstract int getAttributeCount();
-    method public abstract float getAttributeFloatValue(java.lang.String, java.lang.String, float);
-    method public abstract float getAttributeFloatValue(int, float);
-    method public abstract int getAttributeIntValue(java.lang.String, java.lang.String, int);
-    method public abstract int getAttributeIntValue(int, int);
-    method public abstract int getAttributeListValue(java.lang.String, java.lang.String, java.lang.String[], int);
-    method public abstract int getAttributeListValue(int, java.lang.String[], int);
-    method public abstract java.lang.String getAttributeName(int);
-    method public abstract int getAttributeNameResource(int);
-    method public default java.lang.String getAttributeNamespace(int);
-    method public abstract int getAttributeResourceValue(java.lang.String, java.lang.String, int);
-    method public abstract int getAttributeResourceValue(int, int);
-    method public abstract int getAttributeUnsignedIntValue(java.lang.String, java.lang.String, int);
-    method public abstract int getAttributeUnsignedIntValue(int, int);
-    method public abstract java.lang.String getAttributeValue(int);
-    method public abstract java.lang.String getAttributeValue(java.lang.String, java.lang.String);
-    method public abstract java.lang.String getClassAttribute();
-    method public abstract java.lang.String getIdAttribute();
-    method public abstract int getIdAttributeResourceValue(int);
-    method public abstract java.lang.String getPositionDescription();
-    method public abstract int getStyleAttribute();
+  public interface AttributeSet {
+    method public boolean getAttributeBooleanValue(String, String, boolean);
+    method public boolean getAttributeBooleanValue(int, boolean);
+    method public int getAttributeCount();
+    method public float getAttributeFloatValue(String, String, float);
+    method public float getAttributeFloatValue(int, float);
+    method public int getAttributeIntValue(String, String, int);
+    method public int getAttributeIntValue(int, int);
+    method public int getAttributeListValue(String, String, String[], int);
+    method public int getAttributeListValue(int, String[], int);
+    method public String getAttributeName(int);
+    method public int getAttributeNameResource(int);
+    method public default String getAttributeNamespace(int);
+    method public int getAttributeResourceValue(String, String, int);
+    method public int getAttributeResourceValue(int, int);
+    method public int getAttributeUnsignedIntValue(String, String, int);
+    method public int getAttributeUnsignedIntValue(int, int);
+    method public String getAttributeValue(int);
+    method public String getAttributeValue(String, String);
+    method public String getClassAttribute();
+    method public String getIdAttribute();
+    method public int getIdAttributeResourceValue(int);
+    method public String getPositionDescription();
+    method public int getStyleAttribute();
   }
 
   public class Base64 {
-    method public static byte[] decode(java.lang.String, int);
+    method public static byte[] decode(String, int);
     method public static byte[] decode(byte[], int);
     method public static byte[] decode(byte[], int, int, int);
     method public static byte[] encode(byte[], int);
     method public static byte[] encode(byte[], int, int, int);
-    method public static java.lang.String encodeToString(byte[], int);
-    method public static java.lang.String encodeToString(byte[], int, int, int);
+    method public static String encodeToString(byte[], int);
+    method public static String encodeToString(byte[], int, int, int);
     field public static final int CRLF = 4; // 0x4
     field public static final int DEFAULT = 0; // 0x0
     field public static final int NO_CLOSE = 16; // 0x10
@@ -47713,13 +47615,12 @@
   }
 
   public class Base64DataException extends java.io.IOException {
-    ctor public Base64DataException(java.lang.String);
+    ctor public Base64DataException(String);
   }
 
   public class Base64InputStream extends java.io.FilterInputStream {
     ctor public Base64InputStream(java.io.InputStream, int);
     method public int available();
-    method public void mark(int);
     method public void reset();
   }
 
@@ -47727,16 +47628,16 @@
     ctor public Base64OutputStream(java.io.OutputStream, int);
   }
 
-  public final deprecated class Config {
-    field public static final deprecated boolean DEBUG = false;
-    field public static final deprecated boolean LOGD = true;
-    field public static final deprecated boolean LOGV = false;
-    field public static final deprecated boolean PROFILE = false;
-    field public static final deprecated boolean RELEASE = true;
+  @Deprecated public final class Config {
+    field @Deprecated public static final boolean DEBUG = false;
+    field @Deprecated public static final boolean LOGD = true;
+    field @Deprecated public static final boolean LOGV = false;
+    field @Deprecated public static final boolean PROFILE = false;
+    field @Deprecated public static final boolean RELEASE = true;
   }
 
   public class DebugUtils {
-    method public static boolean isObjectSelected(java.lang.Object);
+    method public static boolean isObjectSelected(Object);
   }
 
   public class DisplayMetrics {
@@ -47773,108 +47674,108 @@
   }
 
   public class EventLog {
-    method public static int getTagCode(java.lang.String);
-    method public static java.lang.String getTagName(int);
+    method public static int getTagCode(String);
+    method public static String getTagName(int);
     method public static void readEvents(int[], java.util.Collection<android.util.EventLog.Event>) throws java.io.IOException;
     method public static int writeEvent(int, int);
     method public static int writeEvent(int, long);
     method public static int writeEvent(int, float);
-    method public static int writeEvent(int, java.lang.String);
+    method public static int writeEvent(int, String);
     method public static int writeEvent(int, java.lang.Object...);
   }
 
   public static final class EventLog.Event {
-    method public synchronized java.lang.Object getData();
+    method public Object getData();
     method public int getProcessId();
     method public int getTag();
     method public int getThreadId();
     method public long getTimeNanos();
   }
 
-  public deprecated class EventLogTags {
-    ctor public EventLogTags() throws java.io.IOException;
-    ctor public EventLogTags(java.io.BufferedReader) throws java.io.IOException;
-    method public android.util.EventLogTags.Description get(java.lang.String);
-    method public android.util.EventLogTags.Description get(int);
+  @Deprecated public class EventLogTags {
+    ctor @Deprecated public EventLogTags() throws java.io.IOException;
+    ctor @Deprecated public EventLogTags(java.io.BufferedReader) throws java.io.IOException;
+    method @Deprecated public android.util.EventLogTags.Description get(String);
+    method @Deprecated public android.util.EventLogTags.Description get(int);
   }
 
-  public static class EventLogTags.Description {
-    field public final java.lang.String mName;
-    field public final int mTag;
+  @Deprecated public static class EventLogTags.Description {
+    field @Deprecated public final String mName;
+    field @Deprecated public final int mTag;
   }
 
-  public deprecated class FloatMath {
+  @Deprecated public class FloatMath {
   }
 
-  public abstract class FloatProperty<T> extends android.util.Property {
-    ctor public FloatProperty(java.lang.String);
-    method public final void set(T, java.lang.Float);
+  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
+    ctor public FloatProperty(String);
+    method public final void set(T, Float);
     method public abstract void setValue(T, float);
   }
 
-  public final class Half extends java.lang.Number implements java.lang.Comparable {
-    ctor public Half(short);
+  public final class Half extends java.lang.Number implements java.lang.Comparable<android.util.Half> {
+    ctor public Half(@HalfFloat short);
     ctor public Half(float);
     ctor public Half(double);
-    ctor public Half(java.lang.String) throws java.lang.NumberFormatException;
-    method public static short abs(short);
-    method public static short ceil(short);
-    method public static int compare(short, short);
-    method public int compareTo(android.util.Half);
-    method public static short copySign(short, short);
+    ctor public Half(@NonNull String) throws java.lang.NumberFormatException;
+    method @HalfFloat public static short abs(@HalfFloat short);
+    method @HalfFloat public static short ceil(@HalfFloat short);
+    method public static int compare(@HalfFloat short, @HalfFloat short);
+    method public int compareTo(@NonNull android.util.Half);
+    method @HalfFloat public static short copySign(@HalfFloat short, @HalfFloat short);
     method public double doubleValue();
-    method public static boolean equals(short, short);
+    method public static boolean equals(@HalfFloat short, @HalfFloat short);
     method public float floatValue();
-    method public static short floor(short);
-    method public static int getExponent(short);
-    method public static int getSign(short);
-    method public static int getSignificand(short);
-    method public static boolean greater(short, short);
-    method public static boolean greaterEquals(short, short);
-    method public static int halfToIntBits(short);
-    method public static int halfToRawIntBits(short);
-    method public static short halfToShortBits(short);
-    method public short halfValue();
-    method public static int hashCode(short);
-    method public static short intBitsToHalf(int);
+    method @HalfFloat public static short floor(@HalfFloat short);
+    method public static int getExponent(@HalfFloat short);
+    method public static int getSign(@HalfFloat short);
+    method public static int getSignificand(@HalfFloat short);
+    method public static boolean greater(@HalfFloat short, @HalfFloat short);
+    method public static boolean greaterEquals(@HalfFloat short, @HalfFloat short);
+    method public static int halfToIntBits(@HalfFloat short);
+    method public static int halfToRawIntBits(@HalfFloat short);
+    method @HalfFloat public static short halfToShortBits(@HalfFloat short);
+    method @HalfFloat public short halfValue();
+    method public static int hashCode(@HalfFloat short);
+    method @HalfFloat public static short intBitsToHalf(int);
     method public int intValue();
-    method public static boolean isInfinite(short);
+    method public static boolean isInfinite(@HalfFloat short);
     method public boolean isNaN();
-    method public static boolean isNaN(short);
-    method public static boolean isNormalized(short);
-    method public static boolean less(short, short);
-    method public static boolean lessEquals(short, short);
+    method public static boolean isNaN(@HalfFloat short);
+    method public static boolean isNormalized(@HalfFloat short);
+    method public static boolean less(@HalfFloat short, @HalfFloat short);
+    method public static boolean lessEquals(@HalfFloat short, @HalfFloat short);
     method public long longValue();
-    method public static short max(short, short);
-    method public static short min(short, short);
-    method public static short parseHalf(java.lang.String) throws java.lang.NumberFormatException;
-    method public static short round(short);
-    method public static float toFloat(short);
-    method public static short toHalf(float);
-    method public static java.lang.String toHexString(short);
-    method public static java.lang.String toString(short);
-    method public static short trunc(short);
-    method public static android.util.Half valueOf(short);
-    method public static android.util.Half valueOf(float);
-    method public static android.util.Half valueOf(java.lang.String);
-    field public static final short EPSILON = 5120; // 0x1400
-    field public static final short LOWEST_VALUE = -1025; // 0xfffffbff
+    method @HalfFloat public static short max(@HalfFloat short, @HalfFloat short);
+    method @HalfFloat public static short min(@HalfFloat short, @HalfFloat short);
+    method @HalfFloat public static short parseHalf(@NonNull String) throws java.lang.NumberFormatException;
+    method @HalfFloat public static short round(@HalfFloat short);
+    method public static float toFloat(@HalfFloat short);
+    method @HalfFloat public static short toHalf(float);
+    method @NonNull public static String toHexString(@HalfFloat short);
+    method @NonNull public static String toString(@HalfFloat short);
+    method @HalfFloat public static short trunc(@HalfFloat short);
+    method @NonNull public static android.util.Half valueOf(@HalfFloat short);
+    method @NonNull public static android.util.Half valueOf(float);
+    method @NonNull public static android.util.Half valueOf(@NonNull String);
+    field @HalfFloat public static final short EPSILON = 5120; // 0x1400
+    field @HalfFloat public static final short LOWEST_VALUE = -1025; // 0xfffffbff
     field public static final int MAX_EXPONENT = 15; // 0xf
-    field public static final short MAX_VALUE = 31743; // 0x7bff
+    field @HalfFloat public static final short MAX_VALUE = 31743; // 0x7bff
     field public static final int MIN_EXPONENT = -14; // 0xfffffff2
-    field public static final short MIN_NORMAL = 1024; // 0x400
-    field public static final short MIN_VALUE = 1; // 0x1
-    field public static final short NEGATIVE_INFINITY = -1024; // 0xfffffc00
-    field public static final short NEGATIVE_ZERO = -32768; // 0xffff8000
-    field public static final short NaN = 32256; // 0x7e00
-    field public static final short POSITIVE_INFINITY = 31744; // 0x7c00
-    field public static final short POSITIVE_ZERO = 0; // 0x0
+    field @HalfFloat public static final short MIN_NORMAL = 1024; // 0x400
+    field @HalfFloat public static final short MIN_VALUE = 1; // 0x1
+    field @HalfFloat public static final short NEGATIVE_INFINITY = -1024; // 0xfffffc00
+    field @HalfFloat public static final short NEGATIVE_ZERO = -32768; // 0xffff8000
+    field @HalfFloat public static final short NaN = 32256; // 0x7e00
+    field @HalfFloat public static final short POSITIVE_INFINITY = 31744; // 0x7c00
+    field @HalfFloat public static final short POSITIVE_ZERO = 0; // 0x0
     field public static final int SIZE = 16; // 0x10
   }
 
-  public abstract class IntProperty<T> extends android.util.Property {
-    ctor public IntProperty(java.lang.String);
-    method public final void set(T, java.lang.Integer);
+  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
+    ctor public IntProperty(String);
+    method public final void set(T, Integer);
     method public abstract void setValue(T, int);
   }
 
@@ -47891,17 +47792,15 @@
     method public double nextDouble() throws java.io.IOException;
     method public int nextInt() throws java.io.IOException;
     method public long nextLong() throws java.io.IOException;
-    method public java.lang.String nextName() throws java.io.IOException;
+    method public String nextName() throws java.io.IOException;
     method public void nextNull() throws java.io.IOException;
-    method public java.lang.String nextString() throws java.io.IOException;
+    method public String nextString() throws java.io.IOException;
     method public android.util.JsonToken peek() throws java.io.IOException;
     method public void setLenient(boolean);
     method public void skipValue() throws java.io.IOException;
   }
 
-  public final class JsonToken extends java.lang.Enum {
-    method public static android.util.JsonToken valueOf(java.lang.String);
-    method public static final android.util.JsonToken[] values();
+  public enum JsonToken {
     enum_constant public static final android.util.JsonToken BEGIN_ARRAY;
     enum_constant public static final android.util.JsonToken BEGIN_OBJECT;
     enum_constant public static final android.util.JsonToken BOOLEAN;
@@ -47923,15 +47822,15 @@
     method public android.util.JsonWriter endObject() throws java.io.IOException;
     method public void flush() throws java.io.IOException;
     method public boolean isLenient();
-    method public android.util.JsonWriter name(java.lang.String) throws java.io.IOException;
+    method public android.util.JsonWriter name(String) throws java.io.IOException;
     method public android.util.JsonWriter nullValue() throws java.io.IOException;
-    method public void setIndent(java.lang.String);
+    method public void setIndent(String);
     method public void setLenient(boolean);
-    method public android.util.JsonWriter value(java.lang.String) throws java.io.IOException;
+    method public android.util.JsonWriter value(String) throws java.io.IOException;
     method public android.util.JsonWriter value(boolean) throws java.io.IOException;
     method public android.util.JsonWriter value(double) throws java.io.IOException;
     method public android.util.JsonWriter value(long) throws java.io.IOException;
-    method public android.util.JsonWriter value(java.lang.Number) throws java.io.IOException;
+    method public android.util.JsonWriter value(Number) throws java.io.IOException;
   }
 
   public final class LayoutDirection {
@@ -47942,23 +47841,23 @@
   }
 
   public final class Log {
-    method public static int d(java.lang.String, java.lang.String);
-    method public static int d(java.lang.String, java.lang.String, java.lang.Throwable);
-    method public static int e(java.lang.String, java.lang.String);
-    method public static int e(java.lang.String, java.lang.String, java.lang.Throwable);
-    method public static java.lang.String getStackTraceString(java.lang.Throwable);
-    method public static int i(java.lang.String, java.lang.String);
-    method public static int i(java.lang.String, java.lang.String, java.lang.Throwable);
-    method public static boolean isLoggable(java.lang.String, int);
-    method public static int println(int, java.lang.String, java.lang.String);
-    method public static int v(java.lang.String, java.lang.String);
-    method public static int v(java.lang.String, java.lang.String, java.lang.Throwable);
-    method public static int w(java.lang.String, java.lang.String);
-    method public static int w(java.lang.String, java.lang.String, java.lang.Throwable);
-    method public static int w(java.lang.String, java.lang.Throwable);
-    method public static int wtf(java.lang.String, java.lang.String);
-    method public static int wtf(java.lang.String, java.lang.Throwable);
-    method public static int wtf(java.lang.String, java.lang.String, java.lang.Throwable);
+    method public static int d(@Nullable String, @NonNull String);
+    method public static int d(@Nullable String, @Nullable String, @Nullable Throwable);
+    method public static int e(@Nullable String, @NonNull String);
+    method public static int e(@Nullable String, @Nullable String, @Nullable Throwable);
+    method @NonNull public static String getStackTraceString(@Nullable Throwable);
+    method public static int i(@Nullable String, @NonNull String);
+    method public static int i(@Nullable String, @Nullable String, @Nullable Throwable);
+    method public static boolean isLoggable(@Nullable @Size(max=23, apis="..23") String, int);
+    method public static int println(int, @Nullable String, @NonNull String);
+    method public static int v(@Nullable String, @NonNull String);
+    method public static int v(@Nullable String, @Nullable String, @Nullable Throwable);
+    method public static int w(@Nullable String, @NonNull String);
+    method public static int w(@Nullable String, @Nullable String, @Nullable Throwable);
+    method public static int w(@Nullable String, @Nullable Throwable);
+    method public static int wtf(@Nullable String, @Nullable String);
+    method public static int wtf(@Nullable String, @NonNull Throwable);
+    method public static int wtf(@Nullable String, @Nullable String, @Nullable Throwable);
     field public static final int ASSERT = 7; // 0x7
     field public static final int DEBUG = 3; // 0x3
     field public static final int ERROR = 6; // 0x6
@@ -47968,8 +47867,8 @@
   }
 
   public class LogPrinter implements android.util.Printer {
-    ctor public LogPrinter(int, java.lang.String);
-    method public void println(java.lang.String);
+    ctor public LogPrinter(int, String);
+    method public void println(String);
   }
 
   public class LongSparseArray<E> implements java.lang.Cloneable {
@@ -47995,27 +47894,27 @@
   public class LruCache<K, V> {
     ctor public LruCache(int);
     method protected V create(K);
-    method public final synchronized int createCount();
+    method public final int createCount();
     method protected void entryRemoved(boolean, K, V, V);
     method public final void evictAll();
-    method public final synchronized int evictionCount();
+    method public final int evictionCount();
     method public final V get(K);
-    method public final synchronized int hitCount();
-    method public final synchronized int maxSize();
-    method public final synchronized int missCount();
+    method public final int hitCount();
+    method public final int maxSize();
+    method public final int missCount();
     method public final V put(K, V);
-    method public final synchronized int putCount();
+    method public final int putCount();
     method public final V remove(K);
     method public void resize(int);
-    method public final synchronized int size();
+    method public final int size();
     method protected int sizeOf(K, V);
-    method public final synchronized java.util.Map<K, V> snapshot();
-    method public final synchronized java.lang.String toString();
+    method public final java.util.Map<K,V> snapshot();
+    method public final String toString();
     method public void trimToSize(int);
   }
 
   public final class MalformedJsonException extends java.io.IOException {
-    ctor public MalformedJsonException(java.lang.String);
+    ctor public MalformedJsonException(String);
   }
 
   public class MonthDisplayHelper {
@@ -48036,92 +47935,92 @@
     method public void previousMonth();
   }
 
-  public final deprecated class MutableBoolean {
-    ctor public MutableBoolean(boolean);
-    field public boolean value;
+  @Deprecated public final class MutableBoolean {
+    ctor @Deprecated public MutableBoolean(boolean);
+    field @Deprecated public boolean value;
   }
 
-  public final deprecated class MutableByte {
-    ctor public MutableByte(byte);
-    field public byte value;
+  @Deprecated public final class MutableByte {
+    ctor @Deprecated public MutableByte(byte);
+    field @Deprecated public byte value;
   }
 
-  public final deprecated class MutableChar {
-    ctor public MutableChar(char);
-    field public char value;
+  @Deprecated public final class MutableChar {
+    ctor @Deprecated public MutableChar(char);
+    field @Deprecated public char value;
   }
 
-  public final deprecated class MutableDouble {
-    ctor public MutableDouble(double);
-    field public double value;
+  @Deprecated public final class MutableDouble {
+    ctor @Deprecated public MutableDouble(double);
+    field @Deprecated public double value;
   }
 
-  public final deprecated class MutableFloat {
-    ctor public MutableFloat(float);
-    field public float value;
+  @Deprecated public final class MutableFloat {
+    ctor @Deprecated public MutableFloat(float);
+    field @Deprecated public float value;
   }
 
-  public final deprecated class MutableInt {
-    ctor public MutableInt(int);
-    field public int value;
+  @Deprecated public final class MutableInt {
+    ctor @Deprecated public MutableInt(int);
+    field @Deprecated public int value;
   }
 
-  public final deprecated class MutableLong {
-    ctor public MutableLong(long);
-    field public long value;
+  @Deprecated public final class MutableLong {
+    ctor @Deprecated public MutableLong(long);
+    field @Deprecated public long value;
   }
 
-  public final deprecated class MutableShort {
-    ctor public MutableShort(short);
-    field public short value;
+  @Deprecated public final class MutableShort {
+    ctor @Deprecated public MutableShort(short);
+    field @Deprecated public short value;
   }
 
   public class NoSuchPropertyException extends java.lang.RuntimeException {
-    ctor public NoSuchPropertyException(java.lang.String);
+    ctor public NoSuchPropertyException(String);
   }
 
   public class Pair<F, S> {
     ctor public Pair(F, S);
-    method public static <A, B> android.util.Pair<A, B> create(A, B);
+    method public static <A, B> android.util.Pair<A,B> create(A, B);
     field public final F first;
     field public final S second;
   }
 
   public class Patterns {
-    method public static final java.lang.String concatGroups(java.util.regex.Matcher);
-    method public static final java.lang.String digitsAndPlusOnly(java.util.regex.Matcher);
+    method public static final String concatGroups(java.util.regex.Matcher);
+    method public static final String digitsAndPlusOnly(java.util.regex.Matcher);
     field public static final java.util.regex.Pattern DOMAIN_NAME;
     field public static final java.util.regex.Pattern EMAIL_ADDRESS;
-    field public static final deprecated java.lang.String GOOD_IRI_CHAR = "a-zA-Z0-9\u00a0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef";
+    field @Deprecated public static final String GOOD_IRI_CHAR = "a-zA-Z0-9\u00a0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef";
     field public static final java.util.regex.Pattern IP_ADDRESS;
     field public static final java.util.regex.Pattern PHONE;
-    field public static final deprecated java.util.regex.Pattern TOP_LEVEL_DOMAIN;
-    field public static final deprecated java.lang.String TOP_LEVEL_DOMAIN_STR = "((aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(biz|b[abdefghijmnorstvwyz])|(cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(edu|e[cegrstu])|f[ijkmor]|(gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(info|int|i[delmnoqrst])|(jobs|j[emop])|k[eghimnprwyz]|l[abcikrstuvy]|(mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])|(name|net|n[acefgilopruz])|(org|om)|(pro|p[aefghklmnrstwy])|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|(tel|travel|t[cdfghjklmnoprtvwz])|u[agksyz]|v[aceginu]|w[fs]|(\u03b4\u03bf\u03ba\u03b9\u03bc\u03ae|\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435|\u0440\u0444|\u0441\u0440\u0431|\u05d8\u05e2\u05e1\u05d8|\u0622\u0632\u0645\u0627\u06cc\u0634\u06cc|\u0625\u062e\u062a\u0628\u0627\u0631|\u0627\u0644\u0627\u0631\u062f\u0646|\u0627\u0644\u062c\u0632\u0627\u0626\u0631|\u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629|\u0627\u0644\u0645\u063a\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062a|\u0628\u06be\u0627\u0631\u062a|\u062a\u0648\u0646\u0633|\u0633\u0648\u0631\u064a\u0629|\u0641\u0644\u0633\u0637\u064a\u0646|\u0642\u0637\u0631|\u0645\u0635\u0631|\u092a\u0930\u0940\u0915\u094d\u0937\u093e|\u092d\u093e\u0930\u0924|\u09ad\u09be\u09b0\u09a4|\u0a2d\u0a3e\u0a30\u0a24|\u0aad\u0abe\u0ab0\u0aa4|\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe|\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8|\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd|\u0baa\u0bb0\u0bbf\u0b9f\u0bcd\u0b9a\u0bc8|\u0c2d\u0c3e\u0c30\u0c24\u0c4d|\u0dbd\u0d82\u0d9a\u0dcf|\u0e44\u0e17\u0e22|\u30c6\u30b9\u30c8|\u4e2d\u56fd|\u4e2d\u570b|\u53f0\u6e7e|\u53f0\u7063|\u65b0\u52a0\u5761|\u6d4b\u8bd5|\u6e2c\u8a66|\u9999\u6e2f|\ud14c\uc2a4\ud2b8|\ud55c\uad6d|xn\\-\\-0zwm56d|xn\\-\\-11b5bs3a9aj6g|xn\\-\\-3e0b707e|xn\\-\\-45brj9c|xn\\-\\-80akhbyknj4f|xn\\-\\-90a3ac|xn\\-\\-9t4b11yi5a|xn\\-\\-clchc0ea0b2g2a9gcd|xn\\-\\-deba0ad|xn\\-\\-fiqs8s|xn\\-\\-fiqz9s|xn\\-\\-fpcrj9c3d|xn\\-\\-fzc2c9e2c|xn\\-\\-g6w251d|xn\\-\\-gecrj9c|xn\\-\\-h2brj9c|xn\\-\\-hgbk6aj7f53bba|xn\\-\\-hlcj6aya9esc7a|xn\\-\\-j6w193g|xn\\-\\-jxalpdlp|xn\\-\\-kgbechtv|xn\\-\\-kprw13d|xn\\-\\-kpry57d|xn\\-\\-lgbbat1ad8j|xn\\-\\-mgbaam7a8h|xn\\-\\-mgbayh7gpa|xn\\-\\-mgbbh1a71e|xn\\-\\-mgbc0a9azcg|xn\\-\\-mgberp4a5d4ar|xn\\-\\-o3cw4h|xn\\-\\-ogbpf8fl|xn\\-\\-p1ai|xn\\-\\-pgbs0dh|xn\\-\\-s9brj9c|xn\\-\\-wgbh1c|xn\\-\\-wgbl6a|xn\\-\\-xkc2al3hye2a|xn\\-\\-xkc2dl3a5ee0h|xn\\-\\-yfro4i67o|xn\\-\\-ygbi2ammx|xn\\-\\-zckzah|xxx)|y[et]|z[amw])";
-    field public static final deprecated java.lang.String TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL = "(?:(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(?:biz|b[abdefghijmnorstvwyz])|(?:cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(?:edu|e[cegrstu])|f[ijkmor]|(?:gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(?:info|int|i[delmnoqrst])|(?:jobs|j[emop])|k[eghimnprwyz]|l[abcikrstuvy]|(?:mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])|(?:name|net|n[acefgilopruz])|(?:org|om)|(?:pro|p[aefghklmnrstwy])|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|(?:tel|travel|t[cdfghjklmnoprtvwz])|u[agksyz]|v[aceginu]|w[fs]|(?:\u03b4\u03bf\u03ba\u03b9\u03bc\u03ae|\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435|\u0440\u0444|\u0441\u0440\u0431|\u05d8\u05e2\u05e1\u05d8|\u0622\u0632\u0645\u0627\u06cc\u0634\u06cc|\u0625\u062e\u062a\u0628\u0627\u0631|\u0627\u0644\u0627\u0631\u062f\u0646|\u0627\u0644\u062c\u0632\u0627\u0626\u0631|\u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629|\u0627\u0644\u0645\u063a\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062a|\u0628\u06be\u0627\u0631\u062a|\u062a\u0648\u0646\u0633|\u0633\u0648\u0631\u064a\u0629|\u0641\u0644\u0633\u0637\u064a\u0646|\u0642\u0637\u0631|\u0645\u0635\u0631|\u092a\u0930\u0940\u0915\u094d\u0937\u093e|\u092d\u093e\u0930\u0924|\u09ad\u09be\u09b0\u09a4|\u0a2d\u0a3e\u0a30\u0a24|\u0aad\u0abe\u0ab0\u0aa4|\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe|\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8|\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd|\u0baa\u0bb0\u0bbf\u0b9f\u0bcd\u0b9a\u0bc8|\u0c2d\u0c3e\u0c30\u0c24\u0c4d|\u0dbd\u0d82\u0d9a\u0dcf|\u0e44\u0e17\u0e22|\u30c6\u30b9\u30c8|\u4e2d\u56fd|\u4e2d\u570b|\u53f0\u6e7e|\u53f0\u7063|\u65b0\u52a0\u5761|\u6d4b\u8bd5|\u6e2c\u8a66|\u9999\u6e2f|\ud14c\uc2a4\ud2b8|\ud55c\uad6d|xn\\-\\-0zwm56d|xn\\-\\-11b5bs3a9aj6g|xn\\-\\-3e0b707e|xn\\-\\-45brj9c|xn\\-\\-80akhbyknj4f|xn\\-\\-90a3ac|xn\\-\\-9t4b11yi5a|xn\\-\\-clchc0ea0b2g2a9gcd|xn\\-\\-deba0ad|xn\\-\\-fiqs8s|xn\\-\\-fiqz9s|xn\\-\\-fpcrj9c3d|xn\\-\\-fzc2c9e2c|xn\\-\\-g6w251d|xn\\-\\-gecrj9c|xn\\-\\-h2brj9c|xn\\-\\-hgbk6aj7f53bba|xn\\-\\-hlcj6aya9esc7a|xn\\-\\-j6w193g|xn\\-\\-jxalpdlp|xn\\-\\-kgbechtv|xn\\-\\-kprw13d|xn\\-\\-kpry57d|xn\\-\\-lgbbat1ad8j|xn\\-\\-mgbaam7a8h|xn\\-\\-mgbayh7gpa|xn\\-\\-mgbbh1a71e|xn\\-\\-mgbc0a9azcg|xn\\-\\-mgberp4a5d4ar|xn\\-\\-o3cw4h|xn\\-\\-ogbpf8fl|xn\\-\\-p1ai|xn\\-\\-pgbs0dh|xn\\-\\-s9brj9c|xn\\-\\-wgbh1c|xn\\-\\-wgbl6a|xn\\-\\-xkc2al3hye2a|xn\\-\\-xkc2dl3a5ee0h|xn\\-\\-yfro4i67o|xn\\-\\-ygbi2ammx|xn\\-\\-zckzah|xxx)|y[et]|z[amw]))";
+    field @Deprecated public static final java.util.regex.Pattern TOP_LEVEL_DOMAIN;
+    field @Deprecated public static final String TOP_LEVEL_DOMAIN_STR = "((aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(biz|b[abdefghijmnorstvwyz])|(cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(edu|e[cegrstu])|f[ijkmor]|(gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(info|int|i[delmnoqrst])|(jobs|j[emop])|k[eghimnprwyz]|l[abcikrstuvy]|(mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])|(name|net|n[acefgilopruz])|(org|om)|(pro|p[aefghklmnrstwy])|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|(tel|travel|t[cdfghjklmnoprtvwz])|u[agksyz]|v[aceginu]|w[fs]|(\u03b4\u03bf\u03ba\u03b9\u03bc\u03ae|\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435|\u0440\u0444|\u0441\u0440\u0431|\u05d8\u05e2\u05e1\u05d8|\u0622\u0632\u0645\u0627\u06cc\u0634\u06cc|\u0625\u062e\u062a\u0628\u0627\u0631|\u0627\u0644\u0627\u0631\u062f\u0646|\u0627\u0644\u062c\u0632\u0627\u0626\u0631|\u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629|\u0627\u0644\u0645\u063a\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062a|\u0628\u06be\u0627\u0631\u062a|\u062a\u0648\u0646\u0633|\u0633\u0648\u0631\u064a\u0629|\u0641\u0644\u0633\u0637\u064a\u0646|\u0642\u0637\u0631|\u0645\u0635\u0631|\u092a\u0930\u0940\u0915\u094d\u0937\u093e|\u092d\u093e\u0930\u0924|\u09ad\u09be\u09b0\u09a4|\u0a2d\u0a3e\u0a30\u0a24|\u0aad\u0abe\u0ab0\u0aa4|\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe|\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8|\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd|\u0baa\u0bb0\u0bbf\u0b9f\u0bcd\u0b9a\u0bc8|\u0c2d\u0c3e\u0c30\u0c24\u0c4d|\u0dbd\u0d82\u0d9a\u0dcf|\u0e44\u0e17\u0e22|\u30c6\u30b9\u30c8|\u4e2d\u56fd|\u4e2d\u570b|\u53f0\u6e7e|\u53f0\u7063|\u65b0\u52a0\u5761|\u6d4b\u8bd5|\u6e2c\u8a66|\u9999\u6e2f|\ud14c\uc2a4\ud2b8|\ud55c\uad6d|xn\\-\\-0zwm56d|xn\\-\\-11b5bs3a9aj6g|xn\\-\\-3e0b707e|xn\\-\\-45brj9c|xn\\-\\-80akhbyknj4f|xn\\-\\-90a3ac|xn\\-\\-9t4b11yi5a|xn\\-\\-clchc0ea0b2g2a9gcd|xn\\-\\-deba0ad|xn\\-\\-fiqs8s|xn\\-\\-fiqz9s|xn\\-\\-fpcrj9c3d|xn\\-\\-fzc2c9e2c|xn\\-\\-g6w251d|xn\\-\\-gecrj9c|xn\\-\\-h2brj9c|xn\\-\\-hgbk6aj7f53bba|xn\\-\\-hlcj6aya9esc7a|xn\\-\\-j6w193g|xn\\-\\-jxalpdlp|xn\\-\\-kgbechtv|xn\\-\\-kprw13d|xn\\-\\-kpry57d|xn\\-\\-lgbbat1ad8j|xn\\-\\-mgbaam7a8h|xn\\-\\-mgbayh7gpa|xn\\-\\-mgbbh1a71e|xn\\-\\-mgbc0a9azcg|xn\\-\\-mgberp4a5d4ar|xn\\-\\-o3cw4h|xn\\-\\-ogbpf8fl|xn\\-\\-p1ai|xn\\-\\-pgbs0dh|xn\\-\\-s9brj9c|xn\\-\\-wgbh1c|xn\\-\\-wgbl6a|xn\\-\\-xkc2al3hye2a|xn\\-\\-xkc2dl3a5ee0h|xn\\-\\-yfro4i67o|xn\\-\\-ygbi2ammx|xn\\-\\-zckzah|xxx)|y[et]|z[amw])";
+    field @Deprecated public static final String TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL = "(?:(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(?:biz|b[abdefghijmnorstvwyz])|(?:cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(?:edu|e[cegrstu])|f[ijkmor]|(?:gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(?:info|int|i[delmnoqrst])|(?:jobs|j[emop])|k[eghimnprwyz]|l[abcikrstuvy]|(?:mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])|(?:name|net|n[acefgilopruz])|(?:org|om)|(?:pro|p[aefghklmnrstwy])|qa|r[eosuw]|s[abcdeghijklmnortuvyz]|(?:tel|travel|t[cdfghjklmnoprtvwz])|u[agksyz]|v[aceginu]|w[fs]|(?:\u03b4\u03bf\u03ba\u03b9\u03bc\u03ae|\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435|\u0440\u0444|\u0441\u0440\u0431|\u05d8\u05e2\u05e1\u05d8|\u0622\u0632\u0645\u0627\u06cc\u0634\u06cc|\u0625\u062e\u062a\u0628\u0627\u0631|\u0627\u0644\u0627\u0631\u062f\u0646|\u0627\u0644\u062c\u0632\u0627\u0626\u0631|\u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629|\u0627\u0644\u0645\u063a\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062a|\u0628\u06be\u0627\u0631\u062a|\u062a\u0648\u0646\u0633|\u0633\u0648\u0631\u064a\u0629|\u0641\u0644\u0633\u0637\u064a\u0646|\u0642\u0637\u0631|\u0645\u0635\u0631|\u092a\u0930\u0940\u0915\u094d\u0937\u093e|\u092d\u093e\u0930\u0924|\u09ad\u09be\u09b0\u09a4|\u0a2d\u0a3e\u0a30\u0a24|\u0aad\u0abe\u0ab0\u0aa4|\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe|\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8|\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd|\u0baa\u0bb0\u0bbf\u0b9f\u0bcd\u0b9a\u0bc8|\u0c2d\u0c3e\u0c30\u0c24\u0c4d|\u0dbd\u0d82\u0d9a\u0dcf|\u0e44\u0e17\u0e22|\u30c6\u30b9\u30c8|\u4e2d\u56fd|\u4e2d\u570b|\u53f0\u6e7e|\u53f0\u7063|\u65b0\u52a0\u5761|\u6d4b\u8bd5|\u6e2c\u8a66|\u9999\u6e2f|\ud14c\uc2a4\ud2b8|\ud55c\uad6d|xn\\-\\-0zwm56d|xn\\-\\-11b5bs3a9aj6g|xn\\-\\-3e0b707e|xn\\-\\-45brj9c|xn\\-\\-80akhbyknj4f|xn\\-\\-90a3ac|xn\\-\\-9t4b11yi5a|xn\\-\\-clchc0ea0b2g2a9gcd|xn\\-\\-deba0ad|xn\\-\\-fiqs8s|xn\\-\\-fiqz9s|xn\\-\\-fpcrj9c3d|xn\\-\\-fzc2c9e2c|xn\\-\\-g6w251d|xn\\-\\-gecrj9c|xn\\-\\-h2brj9c|xn\\-\\-hgbk6aj7f53bba|xn\\-\\-hlcj6aya9esc7a|xn\\-\\-j6w193g|xn\\-\\-jxalpdlp|xn\\-\\-kgbechtv|xn\\-\\-kprw13d|xn\\-\\-kpry57d|xn\\-\\-lgbbat1ad8j|xn\\-\\-mgbaam7a8h|xn\\-\\-mgbayh7gpa|xn\\-\\-mgbbh1a71e|xn\\-\\-mgbc0a9azcg|xn\\-\\-mgberp4a5d4ar|xn\\-\\-o3cw4h|xn\\-\\-ogbpf8fl|xn\\-\\-p1ai|xn\\-\\-pgbs0dh|xn\\-\\-s9brj9c|xn\\-\\-wgbh1c|xn\\-\\-wgbl6a|xn\\-\\-xkc2al3hye2a|xn\\-\\-xkc2dl3a5ee0h|xn\\-\\-yfro4i67o|xn\\-\\-ygbi2ammx|xn\\-\\-zckzah|xxx)|y[et]|z[amw]))";
     field public static final java.util.regex.Pattern WEB_URL;
   }
 
   public class PrintStreamPrinter implements android.util.Printer {
     ctor public PrintStreamPrinter(java.io.PrintStream);
-    method public void println(java.lang.String);
+    method public void println(String);
   }
 
   public class PrintWriterPrinter implements android.util.Printer {
     ctor public PrintWriterPrinter(java.io.PrintWriter);
-    method public void println(java.lang.String);
+    method public void println(String);
   }
 
-  public abstract interface Printer {
-    method public abstract void println(java.lang.String);
+  public interface Printer {
+    method public void println(String);
   }
 
   public abstract class Property<T, V> {
-    ctor public Property(java.lang.Class<V>, java.lang.String);
+    ctor public Property(Class<V>, String);
     method public abstract V get(T);
-    method public java.lang.String getName();
-    method public java.lang.Class<V> getType();
+    method public String getName();
+    method public Class<V> getType();
     method public boolean isReadOnly();
-    method public static <T, V> android.util.Property<T, V> of(java.lang.Class<T>, java.lang.Class<V>, java.lang.String);
+    method public static <T, V> android.util.Property<T,V> of(Class<T>, Class<V>, String);
     method public void set(T, V);
   }
 
@@ -48140,7 +48039,7 @@
     method public android.util.Range<T> intersect(T, T);
   }
 
-  public final class Rational extends java.lang.Number implements java.lang.Comparable {
+  public final class Rational extends java.lang.Number implements java.lang.Comparable<android.util.Rational> {
     ctor public Rational(int, int);
     method public int compareTo(android.util.Rational);
     method public double doubleValue();
@@ -48153,7 +48052,7 @@
     method public boolean isNaN();
     method public boolean isZero();
     method public long longValue();
-    method public static android.util.Rational parseRational(java.lang.String) throws java.lang.NumberFormatException;
+    method public static android.util.Rational parseRational(String) throws java.lang.NumberFormatException;
     field public static final android.util.Rational NEGATIVE_INFINITY;
     field public static final android.util.Rational NaN;
     field public static final android.util.Rational POSITIVE_INFINITY;
@@ -48164,14 +48063,14 @@
     ctor public Size(int, int);
     method public int getHeight();
     method public int getWidth();
-    method public static android.util.Size parseSize(java.lang.String) throws java.lang.NumberFormatException;
+    method public static android.util.Size parseSize(String) throws java.lang.NumberFormatException;
   }
 
   public final class SizeF {
     ctor public SizeF(float, float);
     method public float getHeight();
     method public float getWidth();
-    method public static android.util.SizeF parseSizeF(java.lang.String) throws java.lang.NumberFormatException;
+    method public static android.util.SizeF parseSizeF(String) throws java.lang.NumberFormatException;
   }
 
   public class SparseArray<E> implements java.lang.Cloneable {
@@ -48252,7 +48151,7 @@
   }
 
   public class StateSet {
-    method public static java.lang.String dump(int[]);
+    method public static String dump(int[]);
     method public static boolean isWildCard(int[]);
     method public static boolean stateSetMatches(int[], int[]);
     method public static boolean stateSetMatches(int[], int);
@@ -48268,32 +48167,32 @@
   }
 
   public class StringBuilderPrinter implements android.util.Printer {
-    ctor public StringBuilderPrinter(java.lang.StringBuilder);
-    method public void println(java.lang.String);
+    ctor public StringBuilderPrinter(StringBuilder);
+    method public void println(String);
   }
 
   public class TimeFormatException extends java.lang.RuntimeException {
   }
 
   public class TimeUtils {
-    method public static java.util.TimeZone getTimeZone(int, boolean, long, java.lang.String);
-    method public static java.lang.String getTimeZoneDatabaseVersion();
-    method public static java.util.List<java.lang.String> getTimeZoneIdsForCountryCode(java.lang.String);
+    method public static java.util.TimeZone getTimeZone(int, boolean, long, String);
+    method public static String getTimeZoneDatabaseVersion();
+    method @Nullable public static java.util.List<java.lang.String> getTimeZoneIdsForCountryCode(@NonNull String);
   }
 
   public class TimingLogger {
-    ctor public TimingLogger(java.lang.String, java.lang.String);
-    method public void addSplit(java.lang.String);
+    ctor public TimingLogger(String, String);
+    method public void addSplit(String);
     method public void dumpToLog();
-    method public void reset(java.lang.String, java.lang.String);
+    method public void reset(String, String);
     method public void reset();
   }
 
   public class TypedValue {
     ctor public TypedValue();
     method public static float applyDimension(int, float, android.util.DisplayMetrics);
-    method public final java.lang.CharSequence coerceToString();
-    method public static final java.lang.String coerceToString(int, int);
+    method public final CharSequence coerceToString();
+    method public static final String coerceToString(int, int);
     method public static float complexToDimension(int, android.util.DisplayMetrics);
     method public static int complexToDimensionPixelOffset(int, android.util.DisplayMetrics);
     method public static int complexToDimensionPixelSize(int, android.util.DisplayMetrics);
@@ -48349,26 +48248,24 @@
     field public int changingConfigurations;
     field public int data;
     field public int density;
-    field public int resourceId;
+    field @AnyRes public int resourceId;
     field public int sourceStyleResourceId;
-    field public java.lang.CharSequence string;
+    field public CharSequence string;
     field public int type;
   }
 
   public class Xml {
     method public static android.util.AttributeSet asAttributeSet(org.xmlpull.v1.XmlPullParser);
-    method public static android.util.Xml.Encoding findEncodingByName(java.lang.String) throws java.io.UnsupportedEncodingException;
+    method public static android.util.Xml.Encoding findEncodingByName(String) throws java.io.UnsupportedEncodingException;
     method public static org.xmlpull.v1.XmlPullParser newPullParser();
     method public static org.xmlpull.v1.XmlSerializer newSerializer();
-    method public static void parse(java.lang.String, org.xml.sax.ContentHandler) throws org.xml.sax.SAXException;
+    method public static void parse(String, org.xml.sax.ContentHandler) throws org.xml.sax.SAXException;
     method public static void parse(java.io.Reader, org.xml.sax.ContentHandler) throws java.io.IOException, org.xml.sax.SAXException;
     method public static void parse(java.io.InputStream, android.util.Xml.Encoding, org.xml.sax.ContentHandler) throws java.io.IOException, org.xml.sax.SAXException;
-    field public static java.lang.String FEATURE_RELAXED;
+    field public static String FEATURE_RELAXED;
   }
 
-  public static final class Xml.Encoding extends java.lang.Enum {
-    method public static android.util.Xml.Encoding valueOf(java.lang.String);
-    method public static final android.util.Xml.Encoding[] values();
+  public enum Xml.Encoding {
     enum_constant public static final android.util.Xml.Encoding ISO_8859_1;
     enum_constant public static final android.util.Xml.Encoding US_ASCII;
     enum_constant public static final android.util.Xml.Encoding UTF_16;
@@ -48382,7 +48279,7 @@
   public abstract class AbsSavedState implements android.os.Parcelable {
     ctor protected AbsSavedState(android.os.Parcelable);
     ctor protected AbsSavedState(android.os.Parcel);
-    ctor protected AbsSavedState(android.os.Parcel, java.lang.ClassLoader);
+    ctor protected AbsSavedState(android.os.Parcel, ClassLoader);
     method public int describeContents();
     method public final android.os.Parcelable getSuperState();
     method public void writeToParcel(android.os.Parcel, int);
@@ -48396,9 +48293,9 @@
     method public abstract android.view.View getCustomView();
     method public abstract android.view.Menu getMenu();
     method public abstract android.view.MenuInflater getMenuInflater();
-    method public abstract java.lang.CharSequence getSubtitle();
-    method public java.lang.Object getTag();
-    method public abstract java.lang.CharSequence getTitle();
+    method public abstract CharSequence getSubtitle();
+    method public Object getTag();
+    method public abstract CharSequence getTitle();
     method public boolean getTitleOptionalHint();
     method public int getType();
     method public void hide(long);
@@ -48407,11 +48304,11 @@
     method public boolean isTitleOptional();
     method public void onWindowFocusChanged(boolean);
     method public abstract void setCustomView(android.view.View);
-    method public abstract void setSubtitle(java.lang.CharSequence);
-    method public abstract void setSubtitle(int);
-    method public void setTag(java.lang.Object);
-    method public abstract void setTitle(java.lang.CharSequence);
-    method public abstract void setTitle(int);
+    method public abstract void setSubtitle(CharSequence);
+    method public abstract void setSubtitle(@StringRes int);
+    method public void setTag(Object);
+    method public abstract void setTitle(CharSequence);
+    method public abstract void setTitle(@StringRes int);
     method public void setTitleOptionalHint(boolean);
     method public void setType(int);
     field public static final int DEFAULT_HIDE_DURATION = -1; // 0xffffffff
@@ -48419,14 +48316,14 @@
     field public static final int TYPE_PRIMARY = 0; // 0x0
   }
 
-  public static abstract interface ActionMode.Callback {
-    method public abstract boolean onActionItemClicked(android.view.ActionMode, android.view.MenuItem);
-    method public abstract boolean onCreateActionMode(android.view.ActionMode, android.view.Menu);
-    method public abstract void onDestroyActionMode(android.view.ActionMode);
-    method public abstract boolean onPrepareActionMode(android.view.ActionMode, android.view.Menu);
+  public static interface ActionMode.Callback {
+    method public boolean onActionItemClicked(android.view.ActionMode, android.view.MenuItem);
+    method public boolean onCreateActionMode(android.view.ActionMode, android.view.Menu);
+    method public void onDestroyActionMode(android.view.ActionMode);
+    method public boolean onPrepareActionMode(android.view.ActionMode, android.view.Menu);
   }
 
-  public static abstract class ActionMode.Callback2 implements android.view.ActionMode.Callback {
+  public abstract static class ActionMode.Callback2 implements android.view.ActionMode.Callback {
     ctor public ActionMode.Callback2();
     method public void onGetContentRect(android.view.ActionMode, android.view.View, android.graphics.Rect);
   }
@@ -48435,7 +48332,7 @@
     ctor public ActionProvider(android.content.Context);
     method public boolean hasSubMenu();
     method public boolean isVisible();
-    method public abstract deprecated android.view.View onCreateActionView();
+    method @Deprecated public abstract android.view.View onCreateActionView();
     method public android.view.View onCreateActionView(android.view.MenuItem);
     method public boolean onPerformDefaultAction();
     method public void onPrepareSubMenu(android.view.SubMenu);
@@ -48444,8 +48341,8 @@
     method public void setVisibilityListener(android.view.ActionProvider.VisibilityListener);
   }
 
-  public static abstract interface ActionProvider.VisibilityListener {
-    method public abstract void onActionProviderVisibilityChanged(boolean);
+  public static interface ActionProvider.VisibilityListener {
+    method public void onActionProviderVisibilityChanged(boolean);
   }
 
   public final class Choreographer {
@@ -48455,30 +48352,30 @@
     method public void removeFrameCallback(android.view.Choreographer.FrameCallback);
   }
 
-  public static abstract interface Choreographer.FrameCallback {
-    method public abstract void doFrame(long);
+  public static interface Choreographer.FrameCallback {
+    method public void doFrame(long);
   }
 
-  public abstract interface CollapsibleActionView {
-    method public abstract void onActionViewCollapsed();
-    method public abstract void onActionViewExpanded();
+  public interface CollapsibleActionView {
+    method public void onActionViewCollapsed();
+    method public void onActionViewExpanded();
   }
 
-  public abstract interface ContextMenu implements android.view.Menu {
-    method public abstract void clearHeader();
-    method public abstract android.view.ContextMenu setHeaderIcon(int);
-    method public abstract android.view.ContextMenu setHeaderIcon(android.graphics.drawable.Drawable);
-    method public abstract android.view.ContextMenu setHeaderTitle(int);
-    method public abstract android.view.ContextMenu setHeaderTitle(java.lang.CharSequence);
-    method public abstract android.view.ContextMenu setHeaderView(android.view.View);
+  public interface ContextMenu extends android.view.Menu {
+    method public void clearHeader();
+    method public android.view.ContextMenu setHeaderIcon(@DrawableRes int);
+    method public android.view.ContextMenu setHeaderIcon(android.graphics.drawable.Drawable);
+    method public android.view.ContextMenu setHeaderTitle(@StringRes int);
+    method public android.view.ContextMenu setHeaderTitle(CharSequence);
+    method public android.view.ContextMenu setHeaderView(android.view.View);
   }
 
-  public static abstract interface ContextMenu.ContextMenuInfo {
+  public static interface ContextMenu.ContextMenuInfo {
   }
 
   public class ContextThemeWrapper extends android.content.ContextWrapper {
     ctor public ContextThemeWrapper();
-    ctor public ContextThemeWrapper(android.content.Context, int);
+    ctor public ContextThemeWrapper(android.content.Context, @StyleRes int);
     ctor public ContextThemeWrapper(android.content.Context, android.content.res.Resources.Theme);
     method public void applyOverrideConfiguration(android.content.res.Configuration);
     method protected void onApplyThemeResource(android.content.res.Resources.Theme, int, boolean);
@@ -48487,16 +48384,16 @@
   public final class Display {
     method public long getAppVsyncOffsetNanos();
     method public void getCurrentSizeRange(android.graphics.Point, android.graphics.Point);
-    method public android.view.DisplayCutout getCutout();
+    method @Nullable public android.view.DisplayCutout getCutout();
     method public int getDisplayId();
     method public int getFlags();
     method public android.view.Display.HdrCapabilities getHdrCapabilities();
-    method public deprecated int getHeight();
+    method @Deprecated public int getHeight();
     method public void getMetrics(android.util.DisplayMetrics);
     method public android.view.Display.Mode getMode();
-    method public java.lang.String getName();
-    method public deprecated int getOrientation();
-    method public deprecated int getPixelFormat();
+    method public String getName();
+    method @Deprecated public int getOrientation();
+    method @Deprecated public int getPixelFormat();
     method public long getPresentationDeadlineNanos();
     method public void getRealMetrics(android.util.DisplayMetrics);
     method public void getRealSize(android.graphics.Point);
@@ -48506,8 +48403,8 @@
     method public void getSize(android.graphics.Point);
     method public int getState();
     method public android.view.Display.Mode[] getSupportedModes();
-    method public deprecated float[] getSupportedRefreshRates();
-    method public deprecated int getWidth();
+    method @Deprecated public float[] getSupportedRefreshRates();
+    method @Deprecated public int getWidth();
     method public boolean isHdr();
     method public boolean isValid();
     method public boolean isWideColorGamut();
@@ -48537,6 +48434,7 @@
     field public static final android.os.Parcelable.Creator<android.view.Display.HdrCapabilities> CREATOR;
     field public static final int HDR_TYPE_DOLBY_VISION = 1; // 0x1
     field public static final int HDR_TYPE_HDR10 = 2; // 0x2
+    field public static final int HDR_TYPE_HDR10_PLUS = 4; // 0x4
     field public static final int HDR_TYPE_HLG = 3; // 0x3
     field public static final float INVALID_LUMINANCE = -1.0f;
   }
@@ -48552,13 +48450,13 @@
   }
 
   public final class DisplayCutout {
-    ctor public DisplayCutout(android.graphics.Insets, android.graphics.Rect, android.graphics.Rect, android.graphics.Rect, android.graphics.Rect);
-    ctor public deprecated DisplayCutout(android.graphics.Rect, java.util.List<android.graphics.Rect>);
-    method public android.graphics.Rect getBoundingRectBottom();
-    method public android.graphics.Rect getBoundingRectLeft();
-    method public android.graphics.Rect getBoundingRectRight();
-    method public android.graphics.Rect getBoundingRectTop();
-    method public java.util.List<android.graphics.Rect> getBoundingRects();
+    ctor public DisplayCutout(@NonNull android.graphics.Insets, @Nullable android.graphics.Rect, @Nullable android.graphics.Rect, @Nullable android.graphics.Rect, @Nullable android.graphics.Rect);
+    ctor @Deprecated public DisplayCutout(@Nullable android.graphics.Rect, @Nullable java.util.List<android.graphics.Rect>);
+    method @NonNull public android.graphics.Rect getBoundingRectBottom();
+    method @NonNull public android.graphics.Rect getBoundingRectLeft();
+    method @NonNull public android.graphics.Rect getBoundingRectRight();
+    method @NonNull public android.graphics.Rect getBoundingRectTop();
+    method @NonNull public java.util.List<android.graphics.Rect> getBoundingRects();
     method public int getSafeInsetBottom();
     method public int getSafeInsetLeft();
     method public int getSafeInsetRight();
@@ -48577,7 +48475,7 @@
     method public int getAction();
     method public android.content.ClipData getClipData();
     method public android.content.ClipDescription getClipDescription();
-    method public java.lang.Object getLocalState();
+    method public Object getLocalState();
     method public boolean getResult();
     method public float getX();
     method public float getY();
@@ -48595,7 +48493,7 @@
     method public android.view.View findNearestTouchable(android.view.ViewGroup, int, int, int, int[]);
     method public final android.view.View findNextFocus(android.view.ViewGroup, android.view.View, int);
     method public android.view.View findNextFocusFromRect(android.view.ViewGroup, android.graphics.Rect, int);
-    method public android.view.View findNextKeyboardNavigationCluster(android.view.View, android.view.View, int);
+    method public android.view.View findNextKeyboardNavigationCluster(@NonNull android.view.View, @Nullable android.view.View, int);
     method public static android.view.FocusFinder getInstance();
   }
 
@@ -48627,8 +48525,8 @@
   }
 
   public class GestureDetector {
-    ctor public deprecated GestureDetector(android.view.GestureDetector.OnGestureListener, android.os.Handler);
-    ctor public deprecated GestureDetector(android.view.GestureDetector.OnGestureListener);
+    ctor @Deprecated public GestureDetector(android.view.GestureDetector.OnGestureListener, android.os.Handler);
+    ctor @Deprecated public GestureDetector(android.view.GestureDetector.OnGestureListener);
     ctor public GestureDetector(android.content.Context, android.view.GestureDetector.OnGestureListener);
     ctor public GestureDetector(android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler);
     ctor public GestureDetector(android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler, boolean);
@@ -48640,23 +48538,23 @@
     method public void setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener);
   }
 
-  public static abstract interface GestureDetector.OnContextClickListener {
-    method public abstract boolean onContextClick(android.view.MotionEvent);
+  public static interface GestureDetector.OnContextClickListener {
+    method public boolean onContextClick(android.view.MotionEvent);
   }
 
-  public static abstract interface GestureDetector.OnDoubleTapListener {
-    method public abstract boolean onDoubleTap(android.view.MotionEvent);
-    method public abstract boolean onDoubleTapEvent(android.view.MotionEvent);
-    method public abstract boolean onSingleTapConfirmed(android.view.MotionEvent);
+  public static interface GestureDetector.OnDoubleTapListener {
+    method public boolean onDoubleTap(android.view.MotionEvent);
+    method public boolean onDoubleTapEvent(android.view.MotionEvent);
+    method public boolean onSingleTapConfirmed(android.view.MotionEvent);
   }
 
-  public static abstract interface GestureDetector.OnGestureListener {
-    method public abstract boolean onDown(android.view.MotionEvent);
-    method public abstract boolean onFling(android.view.MotionEvent, android.view.MotionEvent, float, float);
-    method public abstract void onLongPress(android.view.MotionEvent);
-    method public abstract boolean onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float);
-    method public abstract void onShowPress(android.view.MotionEvent);
-    method public abstract boolean onSingleTapUp(android.view.MotionEvent);
+  public static interface GestureDetector.OnGestureListener {
+    method public boolean onDown(android.view.MotionEvent);
+    method public boolean onFling(android.view.MotionEvent, android.view.MotionEvent, float, float);
+    method public void onLongPress(android.view.MotionEvent);
+    method public boolean onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float);
+    method public void onShowPress(android.view.MotionEvent);
+    method public boolean onSingleTapUp(android.view.MotionEvent);
   }
 
   public static class GestureDetector.SimpleOnGestureListener implements android.view.GestureDetector.OnContextClickListener android.view.GestureDetector.OnDoubleTapListener android.view.GestureDetector.OnGestureListener {
@@ -48729,15 +48627,15 @@
 
   public class InflateException extends java.lang.RuntimeException {
     ctor public InflateException();
-    ctor public InflateException(java.lang.String, java.lang.Throwable);
-    ctor public InflateException(java.lang.String);
-    ctor public InflateException(java.lang.Throwable);
+    ctor public InflateException(String, Throwable);
+    ctor public InflateException(String);
+    ctor public InflateException(Throwable);
   }
 
   public final class InputDevice implements android.os.Parcelable {
     method public int describeContents();
     method public int getControllerNumber();
-    method public java.lang.String getDescriptor();
+    method public String getDescriptor();
     method public static android.view.InputDevice getDevice(int);
     method public static int[] getDeviceIds();
     method public int getId();
@@ -48746,7 +48644,7 @@
     method public android.view.InputDevice.MotionRange getMotionRange(int);
     method public android.view.InputDevice.MotionRange getMotionRange(int, int);
     method public java.util.List<android.view.InputDevice.MotionRange> getMotionRanges();
-    method public java.lang.String getName();
+    method public String getName();
     method public int getProductId();
     method public int getSources();
     method public int getVendorId();
@@ -48761,15 +48659,15 @@
     field public static final int KEYBOARD_TYPE_ALPHABETIC = 2; // 0x2
     field public static final int KEYBOARD_TYPE_NONE = 0; // 0x0
     field public static final int KEYBOARD_TYPE_NON_ALPHABETIC = 1; // 0x1
-    field public static final deprecated int MOTION_RANGE_ORIENTATION = 8; // 0x8
-    field public static final deprecated int MOTION_RANGE_PRESSURE = 2; // 0x2
-    field public static final deprecated int MOTION_RANGE_SIZE = 3; // 0x3
-    field public static final deprecated int MOTION_RANGE_TOOL_MAJOR = 6; // 0x6
-    field public static final deprecated int MOTION_RANGE_TOOL_MINOR = 7; // 0x7
-    field public static final deprecated int MOTION_RANGE_TOUCH_MAJOR = 4; // 0x4
-    field public static final deprecated int MOTION_RANGE_TOUCH_MINOR = 5; // 0x5
-    field public static final deprecated int MOTION_RANGE_X = 0; // 0x0
-    field public static final deprecated int MOTION_RANGE_Y = 1; // 0x1
+    field @Deprecated public static final int MOTION_RANGE_ORIENTATION = 8; // 0x8
+    field @Deprecated public static final int MOTION_RANGE_PRESSURE = 2; // 0x2
+    field @Deprecated public static final int MOTION_RANGE_SIZE = 3; // 0x3
+    field @Deprecated public static final int MOTION_RANGE_TOOL_MAJOR = 6; // 0x6
+    field @Deprecated public static final int MOTION_RANGE_TOOL_MINOR = 7; // 0x7
+    field @Deprecated public static final int MOTION_RANGE_TOUCH_MAJOR = 4; // 0x4
+    field @Deprecated public static final int MOTION_RANGE_TOUCH_MINOR = 5; // 0x5
+    field @Deprecated public static final int MOTION_RANGE_X = 0; // 0x0
+    field @Deprecated public static final int MOTION_RANGE_Y = 1; // 0x1
     field public static final int SOURCE_ANY = -256; // 0xffffff00
     field public static final int SOURCE_BLUETOOTH_STYLUS = 49154; // 0xc002
     field public static final int SOURCE_CLASS_BUTTON = 1; // 0x1
@@ -48820,9 +48718,9 @@
   public final class InputQueue {
   }
 
-  public static abstract interface InputQueue.Callback {
-    method public abstract void onInputQueueCreated(android.view.InputQueue);
-    method public abstract void onInputQueueDestroyed(android.view.InputQueue);
+  public static interface InputQueue.Callback {
+    method public void onInputQueueCreated(android.view.InputQueue);
+    method public void onInputQueueDestroyed(android.view.InputQueue);
   }
 
   public class KeyCharacterMap implements android.os.Parcelable {
@@ -48833,7 +48731,7 @@
     method public static int getDeadChar(int, int);
     method public char getDisplayLabel(int);
     method public android.view.KeyEvent[] getEvents(char[]);
-    method public deprecated boolean getKeyData(int, android.view.KeyCharacterMap.KeyData);
+    method @Deprecated public boolean getKeyData(int, android.view.KeyCharacterMap.KeyData);
     method public int getKeyboardType();
     method public char getMatch(int, char[]);
     method public char getMatch(int, char[], int);
@@ -48843,7 +48741,7 @@
     method public static android.view.KeyCharacterMap load(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int ALPHA = 3; // 0x3
-    field public static final deprecated int BUILT_IN_KEYBOARD = 0; // 0x0
+    field @Deprecated public static final int BUILT_IN_KEYBOARD = 0; // 0x0
     field public static final int COMBINING_ACCENT = -2147483648; // 0x80000000
     field public static final int COMBINING_ACCENT_MASK = 2147483647; // 0x7fffffff
     field public static final android.os.Parcelable.Creator<android.view.KeyCharacterMap> CREATOR;
@@ -48858,16 +48756,16 @@
     field public static final int VIRTUAL_KEYBOARD = -1; // 0xffffffff
   }
 
-  public static deprecated class KeyCharacterMap.KeyData {
-    ctor public KeyCharacterMap.KeyData();
-    field public static final int META_LENGTH = 4; // 0x4
-    field public char displayLabel;
-    field public char[] meta;
-    field public char number;
+  @Deprecated public static class KeyCharacterMap.KeyData {
+    ctor @Deprecated public KeyCharacterMap.KeyData();
+    field @Deprecated public static final int META_LENGTH = 4; // 0x4
+    field @Deprecated public char displayLabel;
+    field @Deprecated public char[] meta;
+    field @Deprecated public char number;
   }
 
   public static class KeyCharacterMap.UnavailableException extends android.util.AndroidRuntimeException {
-    ctor public KeyCharacterMap.UnavailableException(java.lang.String);
+    ctor public KeyCharacterMap.UnavailableException(String);
   }
 
   public class KeyEvent extends android.view.InputEvent implements android.os.Parcelable {
@@ -48877,17 +48775,17 @@
     ctor public KeyEvent(long, long, int, int, int, int, int, int);
     ctor public KeyEvent(long, long, int, int, int, int, int, int, int);
     ctor public KeyEvent(long, long, int, int, int, int, int, int, int, int);
-    ctor public KeyEvent(long, java.lang.String, int, int);
+    ctor public KeyEvent(long, String, int, int);
     ctor public KeyEvent(android.view.KeyEvent);
-    ctor public deprecated KeyEvent(android.view.KeyEvent, long, int);
+    ctor @Deprecated public KeyEvent(android.view.KeyEvent, long, int);
     method public static android.view.KeyEvent changeAction(android.view.KeyEvent, int);
     method public static android.view.KeyEvent changeFlags(android.view.KeyEvent, int);
     method public static android.view.KeyEvent changeTimeRepeat(android.view.KeyEvent, long, int);
     method public static android.view.KeyEvent changeTimeRepeat(android.view.KeyEvent, long, int, int);
-    method public final deprecated boolean dispatch(android.view.KeyEvent.Callback);
-    method public final boolean dispatch(android.view.KeyEvent.Callback, android.view.KeyEvent.DispatcherState, java.lang.Object);
+    method @Deprecated public final boolean dispatch(android.view.KeyEvent.Callback);
+    method public final boolean dispatch(android.view.KeyEvent.Callback, android.view.KeyEvent.DispatcherState, Object);
     method public final int getAction();
-    method public final deprecated java.lang.String getCharacters();
+    method @Deprecated public final String getCharacters();
     method public static int getDeadChar(int, int);
     method public final int getDeviceId();
     method public char getDisplayLabel();
@@ -48896,7 +48794,7 @@
     method public final int getFlags();
     method public final android.view.KeyCharacterMap getKeyCharacterMap();
     method public final int getKeyCode();
-    method public deprecated boolean getKeyData(android.view.KeyCharacterMap.KeyData);
+    method @Deprecated public boolean getKeyData(android.view.KeyCharacterMap.KeyData);
     method public char getMatch(char[]);
     method public char getMatch(char[], int);
     method public static int getMaxKeyCode();
@@ -48928,8 +48826,8 @@
     method public final boolean isSymPressed();
     method public final boolean isSystem();
     method public final boolean isTracking();
-    method public static int keyCodeFromString(java.lang.String);
-    method public static java.lang.String keyCodeToString(int);
+    method public static int keyCodeFromString(@NonNull String);
+    method public static String keyCodeToString(int);
     method public static boolean metaStateHasModifiers(int, int);
     method public static boolean metaStateHasNoModifiers(int);
     method public static int normalizeMetaState(int);
@@ -48937,7 +48835,7 @@
     method public final void startTracking();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int ACTION_DOWN = 0; // 0x0
-    field public static final deprecated int ACTION_MULTIPLE = 2; // 0x2
+    field @Deprecated public static final int ACTION_MULTIPLE = 2; // 0x2
     field public static final int ACTION_UP = 1; // 0x1
     field public static final android.os.Parcelable.Creator<android.view.KeyEvent> CREATOR;
     field public static final int FLAG_CANCELED = 32; // 0x20
@@ -48950,7 +48848,7 @@
     field public static final int FLAG_SOFT_KEYBOARD = 2; // 0x2
     field public static final int FLAG_TRACKING = 512; // 0x200
     field public static final int FLAG_VIRTUAL_HARD_KEY = 64; // 0x40
-    field public static final deprecated int FLAG_WOKE_HERE = 1; // 0x1
+    field @Deprecated public static final int FLAG_WOKE_HERE = 1; // 0x1
     field public static final int KEYCODE_0 = 7; // 0x7
     field public static final int KEYCODE_1 = 8; // 0x8
     field public static final int KEYCODE_11 = 227; // 0xe3
@@ -49240,7 +49138,7 @@
     field public static final int KEYCODE_ZENKAKU_HANKAKU = 211; // 0xd3
     field public static final int KEYCODE_ZOOM_IN = 168; // 0xa8
     field public static final int KEYCODE_ZOOM_OUT = 169; // 0xa9
-    field public static final deprecated int MAX_KEYCODE = 84; // 0x54
+    field @Deprecated public static final int MAX_KEYCODE = 84; // 0x54
     field public static final int META_ALT_LEFT_ON = 16; // 0x10
     field public static final int META_ALT_MASK = 50; // 0x32
     field public static final int META_ALT_ON = 2; // 0x2
@@ -49264,11 +49162,11 @@
     field public static final int META_SYM_ON = 4; // 0x4
   }
 
-  public static abstract interface KeyEvent.Callback {
-    method public abstract boolean onKeyDown(int, android.view.KeyEvent);
-    method public abstract boolean onKeyLongPress(int, android.view.KeyEvent);
-    method public abstract boolean onKeyMultiple(int, int, android.view.KeyEvent);
-    method public abstract boolean onKeyUp(int, android.view.KeyEvent);
+  public static interface KeyEvent.Callback {
+    method public boolean onKeyDown(int, android.view.KeyEvent);
+    method public boolean onKeyLongPress(int, android.view.KeyEvent);
+    method public boolean onKeyMultiple(int, int, android.view.KeyEvent);
+    method public boolean onKeyUp(int, android.view.KeyEvent);
   }
 
   public static class KeyEvent.DispatcherState {
@@ -49277,28 +49175,28 @@
     method public boolean isTracking(android.view.KeyEvent);
     method public void performedLongPress(android.view.KeyEvent);
     method public void reset();
-    method public void reset(java.lang.Object);
-    method public void startTracking(android.view.KeyEvent, java.lang.Object);
+    method public void reset(Object);
+    method public void startTracking(android.view.KeyEvent, Object);
   }
 
   public final class KeyboardShortcutGroup implements android.os.Parcelable {
-    ctor public KeyboardShortcutGroup(java.lang.CharSequence, java.util.List<android.view.KeyboardShortcutInfo>);
-    ctor public KeyboardShortcutGroup(java.lang.CharSequence);
+    ctor public KeyboardShortcutGroup(@Nullable CharSequence, @NonNull java.util.List<android.view.KeyboardShortcutInfo>);
+    ctor public KeyboardShortcutGroup(@Nullable CharSequence);
     method public void addItem(android.view.KeyboardShortcutInfo);
     method public int describeContents();
     method public java.util.List<android.view.KeyboardShortcutInfo> getItems();
-    method public java.lang.CharSequence getLabel();
+    method public CharSequence getLabel();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.KeyboardShortcutGroup> CREATOR;
   }
 
   public final class KeyboardShortcutInfo implements android.os.Parcelable {
-    ctor public KeyboardShortcutInfo(java.lang.CharSequence, int, int);
-    ctor public KeyboardShortcutInfo(java.lang.CharSequence, char, int);
+    ctor public KeyboardShortcutInfo(CharSequence, int, int);
+    ctor public KeyboardShortcutInfo(CharSequence, char, int);
     method public int describeContents();
     method public char getBaseCharacter();
     method public int getKeycode();
-    method public java.lang.CharSequence getLabel();
+    method @Nullable public CharSequence getLabel();
     method public int getModifiers();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.KeyboardShortcutInfo> CREATOR;
@@ -49308,61 +49206,61 @@
     ctor protected LayoutInflater(android.content.Context);
     ctor protected LayoutInflater(android.view.LayoutInflater, android.content.Context);
     method public abstract android.view.LayoutInflater cloneInContext(android.content.Context);
-    method public final android.view.View createView(java.lang.String, java.lang.String, android.util.AttributeSet) throws java.lang.ClassNotFoundException, android.view.InflateException;
+    method public final android.view.View createView(String, String, android.util.AttributeSet) throws java.lang.ClassNotFoundException, android.view.InflateException;
     method public static android.view.LayoutInflater from(android.content.Context);
     method public android.content.Context getContext();
     method public final android.view.LayoutInflater.Factory getFactory();
     method public final android.view.LayoutInflater.Factory2 getFactory2();
     method public android.view.LayoutInflater.Filter getFilter();
-    method public android.view.View inflate(int, android.view.ViewGroup);
-    method public android.view.View inflate(org.xmlpull.v1.XmlPullParser, android.view.ViewGroup);
-    method public android.view.View inflate(int, android.view.ViewGroup, boolean);
-    method public android.view.View inflate(org.xmlpull.v1.XmlPullParser, android.view.ViewGroup, boolean);
-    method protected android.view.View onCreateView(java.lang.String, android.util.AttributeSet) throws java.lang.ClassNotFoundException;
-    method protected android.view.View onCreateView(android.view.View, java.lang.String, android.util.AttributeSet) throws java.lang.ClassNotFoundException;
+    method public android.view.View inflate(@LayoutRes int, @Nullable android.view.ViewGroup);
+    method public android.view.View inflate(org.xmlpull.v1.XmlPullParser, @Nullable android.view.ViewGroup);
+    method public android.view.View inflate(@LayoutRes int, @Nullable android.view.ViewGroup, boolean);
+    method public android.view.View inflate(org.xmlpull.v1.XmlPullParser, @Nullable android.view.ViewGroup, boolean);
+    method protected android.view.View onCreateView(String, android.util.AttributeSet) throws java.lang.ClassNotFoundException;
+    method protected android.view.View onCreateView(android.view.View, String, android.util.AttributeSet) throws java.lang.ClassNotFoundException;
     method public void setFactory(android.view.LayoutInflater.Factory);
     method public void setFactory2(android.view.LayoutInflater.Factory2);
     method public void setFilter(android.view.LayoutInflater.Filter);
   }
 
-  public static abstract interface LayoutInflater.Factory {
-    method public abstract android.view.View onCreateView(java.lang.String, android.content.Context, android.util.AttributeSet);
+  public static interface LayoutInflater.Factory {
+    method @Nullable public android.view.View onCreateView(@NonNull String, @NonNull android.content.Context, @NonNull android.util.AttributeSet);
   }
 
-  public static abstract interface LayoutInflater.Factory2 implements android.view.LayoutInflater.Factory {
-    method public abstract android.view.View onCreateView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet);
+  public static interface LayoutInflater.Factory2 extends android.view.LayoutInflater.Factory {
+    method @Nullable public android.view.View onCreateView(@Nullable android.view.View, @NonNull String, @NonNull android.content.Context, @NonNull android.util.AttributeSet);
   }
 
-  public static abstract interface LayoutInflater.Filter {
-    method public abstract boolean onLoadClass(java.lang.Class);
+  public static interface LayoutInflater.Filter {
+    method public boolean onLoadClass(Class);
   }
 
-  public abstract interface Menu {
-    method public abstract android.view.MenuItem add(java.lang.CharSequence);
-    method public abstract android.view.MenuItem add(int);
-    method public abstract android.view.MenuItem add(int, int, int, java.lang.CharSequence);
-    method public abstract android.view.MenuItem add(int, int, int, int);
-    method public abstract int addIntentOptions(int, int, int, android.content.ComponentName, android.content.Intent[], android.content.Intent, int, android.view.MenuItem[]);
-    method public abstract android.view.SubMenu addSubMenu(java.lang.CharSequence);
-    method public abstract android.view.SubMenu addSubMenu(int);
-    method public abstract android.view.SubMenu addSubMenu(int, int, int, java.lang.CharSequence);
-    method public abstract android.view.SubMenu addSubMenu(int, int, int, int);
-    method public abstract void clear();
-    method public abstract void close();
-    method public abstract android.view.MenuItem findItem(int);
-    method public abstract android.view.MenuItem getItem(int);
-    method public abstract boolean hasVisibleItems();
-    method public abstract boolean isShortcutKey(int, android.view.KeyEvent);
-    method public abstract boolean performIdentifierAction(int, int);
-    method public abstract boolean performShortcut(int, android.view.KeyEvent, int);
-    method public abstract void removeGroup(int);
-    method public abstract void removeItem(int);
-    method public abstract void setGroupCheckable(int, boolean, boolean);
+  public interface Menu {
+    method public android.view.MenuItem add(CharSequence);
+    method public android.view.MenuItem add(@StringRes int);
+    method public android.view.MenuItem add(int, int, int, CharSequence);
+    method public android.view.MenuItem add(int, int, int, @StringRes int);
+    method public int addIntentOptions(int, int, int, android.content.ComponentName, android.content.Intent[], android.content.Intent, int, android.view.MenuItem[]);
+    method public android.view.SubMenu addSubMenu(CharSequence);
+    method public android.view.SubMenu addSubMenu(@StringRes int);
+    method public android.view.SubMenu addSubMenu(int, int, int, CharSequence);
+    method public android.view.SubMenu addSubMenu(int, int, int, @StringRes int);
+    method public void clear();
+    method public void close();
+    method public android.view.MenuItem findItem(int);
+    method public android.view.MenuItem getItem(int);
+    method public boolean hasVisibleItems();
+    method public boolean isShortcutKey(int, android.view.KeyEvent);
+    method public boolean performIdentifierAction(int, int);
+    method public boolean performShortcut(int, android.view.KeyEvent, int);
+    method public void removeGroup(int);
+    method public void removeItem(int);
+    method public void setGroupCheckable(int, boolean, boolean);
     method public default void setGroupDividerEnabled(boolean);
-    method public abstract void setGroupEnabled(int, boolean);
-    method public abstract void setGroupVisible(int, boolean);
-    method public abstract void setQwertyMode(boolean);
-    method public abstract int size();
+    method public void setGroupEnabled(int, boolean);
+    method public void setGroupVisible(int, boolean);
+    method public void setQwertyMode(boolean);
+    method public int size();
     field public static final int CATEGORY_ALTERNATIVE = 262144; // 0x40000
     field public static final int CATEGORY_CONTAINER = 65536; // 0x10000
     field public static final int CATEGORY_SECONDARY = 196608; // 0x30000
@@ -49377,64 +49275,64 @@
 
   public class MenuInflater {
     ctor public MenuInflater(android.content.Context);
-    method public void inflate(int, android.view.Menu);
+    method public void inflate(@MenuRes int, android.view.Menu);
   }
 
-  public abstract interface MenuItem {
-    method public abstract boolean collapseActionView();
-    method public abstract boolean expandActionView();
-    method public abstract android.view.ActionProvider getActionProvider();
-    method public abstract android.view.View getActionView();
+  public interface MenuItem {
+    method public boolean collapseActionView();
+    method public boolean expandActionView();
+    method public android.view.ActionProvider getActionProvider();
+    method public android.view.View getActionView();
     method public default int getAlphabeticModifiers();
-    method public abstract char getAlphabeticShortcut();
-    method public default java.lang.CharSequence getContentDescription();
-    method public abstract int getGroupId();
-    method public abstract android.graphics.drawable.Drawable getIcon();
-    method public default android.content.res.ColorStateList getIconTintList();
-    method public default android.graphics.PorterDuff.Mode getIconTintMode();
-    method public abstract android.content.Intent getIntent();
-    method public abstract int getItemId();
-    method public abstract android.view.ContextMenu.ContextMenuInfo getMenuInfo();
+    method public char getAlphabeticShortcut();
+    method public default CharSequence getContentDescription();
+    method public int getGroupId();
+    method public android.graphics.drawable.Drawable getIcon();
+    method @Nullable public default android.content.res.ColorStateList getIconTintList();
+    method @Nullable public default android.graphics.PorterDuff.Mode getIconTintMode();
+    method public android.content.Intent getIntent();
+    method public int getItemId();
+    method public android.view.ContextMenu.ContextMenuInfo getMenuInfo();
     method public default int getNumericModifiers();
-    method public abstract char getNumericShortcut();
-    method public abstract int getOrder();
-    method public abstract android.view.SubMenu getSubMenu();
-    method public abstract java.lang.CharSequence getTitle();
-    method public abstract java.lang.CharSequence getTitleCondensed();
-    method public default java.lang.CharSequence getTooltipText();
-    method public abstract boolean hasSubMenu();
-    method public abstract boolean isActionViewExpanded();
-    method public abstract boolean isCheckable();
-    method public abstract boolean isChecked();
-    method public abstract boolean isEnabled();
-    method public abstract boolean isVisible();
-    method public abstract android.view.MenuItem setActionProvider(android.view.ActionProvider);
-    method public abstract android.view.MenuItem setActionView(android.view.View);
-    method public abstract android.view.MenuItem setActionView(int);
-    method public abstract android.view.MenuItem setAlphabeticShortcut(char);
+    method public char getNumericShortcut();
+    method public int getOrder();
+    method public android.view.SubMenu getSubMenu();
+    method public CharSequence getTitle();
+    method public CharSequence getTitleCondensed();
+    method public default CharSequence getTooltipText();
+    method public boolean hasSubMenu();
+    method public boolean isActionViewExpanded();
+    method public boolean isCheckable();
+    method public boolean isChecked();
+    method public boolean isEnabled();
+    method public boolean isVisible();
+    method public android.view.MenuItem setActionProvider(android.view.ActionProvider);
+    method public android.view.MenuItem setActionView(android.view.View);
+    method public android.view.MenuItem setActionView(@LayoutRes int);
+    method public android.view.MenuItem setAlphabeticShortcut(char);
     method public default android.view.MenuItem setAlphabeticShortcut(char, int);
-    method public abstract android.view.MenuItem setCheckable(boolean);
-    method public abstract android.view.MenuItem setChecked(boolean);
-    method public default android.view.MenuItem setContentDescription(java.lang.CharSequence);
-    method public abstract android.view.MenuItem setEnabled(boolean);
-    method public abstract android.view.MenuItem setIcon(android.graphics.drawable.Drawable);
-    method public abstract android.view.MenuItem setIcon(int);
-    method public default android.view.MenuItem setIconTintList(android.content.res.ColorStateList);
-    method public default android.view.MenuItem setIconTintMode(android.graphics.PorterDuff.Mode);
-    method public abstract android.view.MenuItem setIntent(android.content.Intent);
-    method public abstract android.view.MenuItem setNumericShortcut(char);
+    method public android.view.MenuItem setCheckable(boolean);
+    method public android.view.MenuItem setChecked(boolean);
+    method public default android.view.MenuItem setContentDescription(CharSequence);
+    method public android.view.MenuItem setEnabled(boolean);
+    method public android.view.MenuItem setIcon(android.graphics.drawable.Drawable);
+    method public android.view.MenuItem setIcon(@DrawableRes int);
+    method public default android.view.MenuItem setIconTintList(@Nullable android.content.res.ColorStateList);
+    method public default android.view.MenuItem setIconTintMode(@Nullable android.graphics.PorterDuff.Mode);
+    method public android.view.MenuItem setIntent(android.content.Intent);
+    method public android.view.MenuItem setNumericShortcut(char);
     method public default android.view.MenuItem setNumericShortcut(char, int);
-    method public abstract android.view.MenuItem setOnActionExpandListener(android.view.MenuItem.OnActionExpandListener);
-    method public abstract android.view.MenuItem setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener);
-    method public abstract android.view.MenuItem setShortcut(char, char);
+    method public android.view.MenuItem setOnActionExpandListener(android.view.MenuItem.OnActionExpandListener);
+    method public android.view.MenuItem setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener);
+    method public android.view.MenuItem setShortcut(char, char);
     method public default android.view.MenuItem setShortcut(char, char, int, int);
-    method public abstract void setShowAsAction(int);
-    method public abstract android.view.MenuItem setShowAsActionFlags(int);
-    method public abstract android.view.MenuItem setTitle(java.lang.CharSequence);
-    method public abstract android.view.MenuItem setTitle(int);
-    method public abstract android.view.MenuItem setTitleCondensed(java.lang.CharSequence);
-    method public default android.view.MenuItem setTooltipText(java.lang.CharSequence);
-    method public abstract android.view.MenuItem setVisible(boolean);
+    method public void setShowAsAction(int);
+    method public android.view.MenuItem setShowAsActionFlags(int);
+    method public android.view.MenuItem setTitle(CharSequence);
+    method public android.view.MenuItem setTitle(@StringRes int);
+    method public android.view.MenuItem setTitleCondensed(CharSequence);
+    method public default android.view.MenuItem setTooltipText(CharSequence);
+    method public android.view.MenuItem setVisible(boolean);
     field public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
     field public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
     field public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
@@ -49442,21 +49340,21 @@
     field public static final int SHOW_AS_ACTION_WITH_TEXT = 4; // 0x4
   }
 
-  public static abstract interface MenuItem.OnActionExpandListener {
-    method public abstract boolean onMenuItemActionCollapse(android.view.MenuItem);
-    method public abstract boolean onMenuItemActionExpand(android.view.MenuItem);
+  public static interface MenuItem.OnActionExpandListener {
+    method public boolean onMenuItemActionCollapse(android.view.MenuItem);
+    method public boolean onMenuItemActionExpand(android.view.MenuItem);
   }
 
-  public static abstract interface MenuItem.OnMenuItemClickListener {
-    method public abstract boolean onMenuItemClick(android.view.MenuItem);
+  public static interface MenuItem.OnMenuItemClickListener {
+    method public boolean onMenuItemClick(android.view.MenuItem);
   }
 
   public final class MotionEvent extends android.view.InputEvent implements android.os.Parcelable {
-    method public static java.lang.String actionToString(int);
+    method public static String actionToString(int);
     method public void addBatch(long, float, float, float, float, int);
     method public void addBatch(long, android.view.MotionEvent.PointerCoords[], int);
-    method public static int axisFromString(java.lang.String);
-    method public static java.lang.String axisToString(int);
+    method public static int axisFromString(String);
+    method public static String axisToString(int);
     method public int findPointerIndex(int);
     method public int getAction();
     method public int getActionButton();
@@ -49527,9 +49425,9 @@
     method public float getYPrecision();
     method public boolean isButtonPressed(int);
     method public static android.view.MotionEvent obtain(long, long, int, int, android.view.MotionEvent.PointerProperties[], android.view.MotionEvent.PointerCoords[], int, int, float, float, int, int, int, int);
-    method public static deprecated android.view.MotionEvent obtain(long, long, int, int, int[], android.view.MotionEvent.PointerCoords[], int, float, float, int, int, int, int);
+    method @Deprecated public static android.view.MotionEvent obtain(long, long, int, int, int[], android.view.MotionEvent.PointerCoords[], int, float, float, int, int, int, int);
     method public static android.view.MotionEvent obtain(long, long, int, float, float, float, float, int, float, float, int, int);
-    method public static deprecated android.view.MotionEvent obtain(long, long, int, int, float, float, float, float, int, float, float, int, int);
+    method @Deprecated public static android.view.MotionEvent obtain(long, long, int, int, float, float, float, float, int, float, float, int, int);
     method public static android.view.MotionEvent obtain(long, long, int, float, float, int);
     method public static android.view.MotionEvent obtain(android.view.MotionEvent);
     method public static android.view.MotionEvent obtainNoHistory(android.view.MotionEvent);
@@ -49551,15 +49449,15 @@
     field public static final int ACTION_MASK = 255; // 0xff
     field public static final int ACTION_MOVE = 2; // 0x2
     field public static final int ACTION_OUTSIDE = 4; // 0x4
-    field public static final deprecated int ACTION_POINTER_1_DOWN = 5; // 0x5
-    field public static final deprecated int ACTION_POINTER_1_UP = 6; // 0x6
-    field public static final deprecated int ACTION_POINTER_2_DOWN = 261; // 0x105
-    field public static final deprecated int ACTION_POINTER_2_UP = 262; // 0x106
-    field public static final deprecated int ACTION_POINTER_3_DOWN = 517; // 0x205
-    field public static final deprecated int ACTION_POINTER_3_UP = 518; // 0x206
+    field @Deprecated public static final int ACTION_POINTER_1_DOWN = 5; // 0x5
+    field @Deprecated public static final int ACTION_POINTER_1_UP = 6; // 0x6
+    field @Deprecated public static final int ACTION_POINTER_2_DOWN = 261; // 0x105
+    field @Deprecated public static final int ACTION_POINTER_2_UP = 262; // 0x106
+    field @Deprecated public static final int ACTION_POINTER_3_DOWN = 517; // 0x205
+    field @Deprecated public static final int ACTION_POINTER_3_UP = 518; // 0x206
     field public static final int ACTION_POINTER_DOWN = 5; // 0x5
-    field public static final deprecated int ACTION_POINTER_ID_MASK = 65280; // 0xff00
-    field public static final deprecated int ACTION_POINTER_ID_SHIFT = 8; // 0x8
+    field @Deprecated public static final int ACTION_POINTER_ID_MASK = 65280; // 0xff00
+    field @Deprecated public static final int ACTION_POINTER_ID_SHIFT = 8; // 0x8
     field public static final int ACTION_POINTER_INDEX_MASK = 65280; // 0xff00
     field public static final int ACTION_POINTER_INDEX_SHIFT = 8; // 0x8
     field public static final int ACTION_POINTER_UP = 6; // 0x6
@@ -49671,24 +49569,24 @@
     field public static final int ORIENTATION_UNKNOWN = -1; // 0xffffffff
   }
 
-  public abstract deprecated class OrientationListener implements android.hardware.SensorListener {
-    ctor public OrientationListener(android.content.Context);
-    ctor public OrientationListener(android.content.Context, int);
-    method public void disable();
-    method public void enable();
-    method public void onAccuracyChanged(int, int);
-    method public abstract void onOrientationChanged(int);
-    method public void onSensorChanged(int, float[]);
-    field public static final int ORIENTATION_UNKNOWN = -1; // 0xffffffff
+  @Deprecated public abstract class OrientationListener implements android.hardware.SensorListener {
+    ctor @Deprecated public OrientationListener(android.content.Context);
+    ctor @Deprecated public OrientationListener(android.content.Context, int);
+    method @Deprecated public void disable();
+    method @Deprecated public void enable();
+    method @Deprecated public void onAccuracyChanged(int, int);
+    method @Deprecated public abstract void onOrientationChanged(int);
+    method @Deprecated public void onSensorChanged(int, float[]);
+    field @Deprecated public static final int ORIENTATION_UNKNOWN = -1; // 0xffffffff
   }
 
   public final class PixelCopy {
-    method public static void request(android.view.SurfaceView, android.graphics.Bitmap, android.view.PixelCopy.OnPixelCopyFinishedListener, android.os.Handler);
-    method public static void request(android.view.SurfaceView, android.graphics.Rect, android.graphics.Bitmap, android.view.PixelCopy.OnPixelCopyFinishedListener, android.os.Handler);
-    method public static void request(android.view.Surface, android.graphics.Bitmap, android.view.PixelCopy.OnPixelCopyFinishedListener, android.os.Handler);
-    method public static void request(android.view.Surface, android.graphics.Rect, android.graphics.Bitmap, android.view.PixelCopy.OnPixelCopyFinishedListener, android.os.Handler);
-    method public static void request(android.view.Window, android.graphics.Bitmap, android.view.PixelCopy.OnPixelCopyFinishedListener, android.os.Handler);
-    method public static void request(android.view.Window, android.graphics.Rect, android.graphics.Bitmap, android.view.PixelCopy.OnPixelCopyFinishedListener, android.os.Handler);
+    method public static void request(@NonNull android.view.SurfaceView, @NonNull android.graphics.Bitmap, @NonNull android.view.PixelCopy.OnPixelCopyFinishedListener, @NonNull android.os.Handler);
+    method public static void request(@NonNull android.view.SurfaceView, @Nullable android.graphics.Rect, @NonNull android.graphics.Bitmap, @NonNull android.view.PixelCopy.OnPixelCopyFinishedListener, @NonNull android.os.Handler);
+    method public static void request(@NonNull android.view.Surface, @NonNull android.graphics.Bitmap, @NonNull android.view.PixelCopy.OnPixelCopyFinishedListener, @NonNull android.os.Handler);
+    method public static void request(@NonNull android.view.Surface, @Nullable android.graphics.Rect, @NonNull android.graphics.Bitmap, @NonNull android.view.PixelCopy.OnPixelCopyFinishedListener, @NonNull android.os.Handler);
+    method public static void request(@NonNull android.view.Window, @NonNull android.graphics.Bitmap, @NonNull android.view.PixelCopy.OnPixelCopyFinishedListener, @NonNull android.os.Handler);
+    method public static void request(@NonNull android.view.Window, @Nullable android.graphics.Rect, @NonNull android.graphics.Bitmap, @NonNull android.view.PixelCopy.OnPixelCopyFinishedListener, @NonNull android.os.Handler);
     field public static final int ERROR_DESTINATION_INVALID = 5; // 0x5
     field public static final int ERROR_SOURCE_INVALID = 4; // 0x4
     field public static final int ERROR_SOURCE_NO_DATA = 3; // 0x3
@@ -49697,15 +49595,15 @@
     field public static final int SUCCESS = 0; // 0x0
   }
 
-  public static abstract interface PixelCopy.OnPixelCopyFinishedListener {
-    method public abstract void onPixelCopyFinished(int);
+  public static interface PixelCopy.OnPixelCopyFinishedListener {
+    method public void onPixelCopyFinished(int);
   }
 
   public final class PointerIcon implements android.os.Parcelable {
-    method public static android.view.PointerIcon create(android.graphics.Bitmap, float, float);
+    method public static android.view.PointerIcon create(@NonNull android.graphics.Bitmap, float, float);
     method public int describeContents();
-    method public static android.view.PointerIcon getSystemIcon(android.content.Context, int);
-    method public static android.view.PointerIcon load(android.content.res.Resources, int);
+    method public static android.view.PointerIcon getSystemIcon(@NonNull android.content.Context, int);
+    method public static android.view.PointerIcon load(@NonNull android.content.res.Resources, @XmlRes int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.PointerIcon> CREATOR;
     field public static final int TYPE_ALIAS = 1010; // 0x3f2
@@ -49755,10 +49653,10 @@
     method public void setStylusScaleEnabled(boolean);
   }
 
-  public static abstract interface ScaleGestureDetector.OnScaleGestureListener {
-    method public abstract boolean onScale(android.view.ScaleGestureDetector);
-    method public abstract boolean onScaleBegin(android.view.ScaleGestureDetector);
-    method public abstract void onScaleEnd(android.view.ScaleGestureDetector);
+  public static interface ScaleGestureDetector.OnScaleGestureListener {
+    method public boolean onScale(android.view.ScaleGestureDetector);
+    method public boolean onScaleBegin(android.view.ScaleGestureDetector);
+    method public void onScaleEnd(android.view.ScaleGestureDetector);
   }
 
   public static class ScaleGestureDetector.SimpleOnScaleGestureListener implements android.view.ScaleGestureDetector.OnScaleGestureListener {
@@ -49782,16 +49680,16 @@
     field public static final int NAVIGATION_UP = 2; // 0x2
   }
 
-  public abstract interface SubMenu implements android.view.Menu {
-    method public abstract void clearHeader();
-    method public abstract android.view.MenuItem getItem();
-    method public abstract android.view.SubMenu setHeaderIcon(int);
-    method public abstract android.view.SubMenu setHeaderIcon(android.graphics.drawable.Drawable);
-    method public abstract android.view.SubMenu setHeaderTitle(int);
-    method public abstract android.view.SubMenu setHeaderTitle(java.lang.CharSequence);
-    method public abstract android.view.SubMenu setHeaderView(android.view.View);
-    method public abstract android.view.SubMenu setIcon(int);
-    method public abstract android.view.SubMenu setIcon(android.graphics.drawable.Drawable);
+  public interface SubMenu extends android.view.Menu {
+    method public void clearHeader();
+    method public android.view.MenuItem getItem();
+    method public android.view.SubMenu setHeaderIcon(@DrawableRes int);
+    method public android.view.SubMenu setHeaderIcon(android.graphics.drawable.Drawable);
+    method public android.view.SubMenu setHeaderTitle(@StringRes int);
+    method public android.view.SubMenu setHeaderTitle(CharSequence);
+    method public android.view.SubMenu setHeaderView(android.view.View);
+    method public android.view.SubMenu setIcon(@DrawableRes int);
+    method public android.view.SubMenu setIcon(android.graphics.drawable.Drawable);
   }
 
   public class Surface implements android.os.Parcelable {
@@ -49802,7 +49700,7 @@
     method public android.graphics.Canvas lockHardwareCanvas();
     method public void readFromParcel(android.os.Parcel);
     method public void release();
-    method public deprecated void unlockCanvas(android.graphics.Canvas);
+    method @Deprecated public void unlockCanvas(android.graphics.Canvas);
     method public void unlockCanvasAndPost(android.graphics.Canvas);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.Surface> CREATOR;
@@ -49814,44 +49712,44 @@
 
   public static class Surface.OutOfResourcesException extends java.lang.RuntimeException {
     ctor public Surface.OutOfResourcesException();
-    ctor public Surface.OutOfResourcesException(java.lang.String);
+    ctor public Surface.OutOfResourcesException(String);
   }
 
-  public abstract interface SurfaceHolder {
-    method public abstract void addCallback(android.view.SurfaceHolder.Callback);
-    method public abstract android.view.Surface getSurface();
-    method public abstract android.graphics.Rect getSurfaceFrame();
-    method public abstract boolean isCreating();
-    method public abstract android.graphics.Canvas lockCanvas();
-    method public abstract android.graphics.Canvas lockCanvas(android.graphics.Rect);
+  public interface SurfaceHolder {
+    method public void addCallback(android.view.SurfaceHolder.Callback);
+    method public android.view.Surface getSurface();
+    method public android.graphics.Rect getSurfaceFrame();
+    method public boolean isCreating();
+    method public android.graphics.Canvas lockCanvas();
+    method public android.graphics.Canvas lockCanvas(android.graphics.Rect);
     method public default android.graphics.Canvas lockHardwareCanvas();
-    method public abstract void removeCallback(android.view.SurfaceHolder.Callback);
-    method public abstract void setFixedSize(int, int);
-    method public abstract void setFormat(int);
-    method public abstract void setKeepScreenOn(boolean);
-    method public abstract void setSizeFromLayout();
-    method public abstract deprecated void setType(int);
-    method public abstract void unlockCanvasAndPost(android.graphics.Canvas);
-    field public static final deprecated int SURFACE_TYPE_GPU = 2; // 0x2
-    field public static final deprecated int SURFACE_TYPE_HARDWARE = 1; // 0x1
-    field public static final deprecated int SURFACE_TYPE_NORMAL = 0; // 0x0
-    field public static final deprecated int SURFACE_TYPE_PUSH_BUFFERS = 3; // 0x3
+    method public void removeCallback(android.view.SurfaceHolder.Callback);
+    method public void setFixedSize(int, int);
+    method public void setFormat(int);
+    method public void setKeepScreenOn(boolean);
+    method public void setSizeFromLayout();
+    method @Deprecated public void setType(int);
+    method public void unlockCanvasAndPost(android.graphics.Canvas);
+    field @Deprecated public static final int SURFACE_TYPE_GPU = 2; // 0x2
+    field @Deprecated public static final int SURFACE_TYPE_HARDWARE = 1; // 0x1
+    field @Deprecated public static final int SURFACE_TYPE_NORMAL = 0; // 0x0
+    field @Deprecated public static final int SURFACE_TYPE_PUSH_BUFFERS = 3; // 0x3
   }
 
   public static class SurfaceHolder.BadSurfaceTypeException extends java.lang.RuntimeException {
     ctor public SurfaceHolder.BadSurfaceTypeException();
-    ctor public SurfaceHolder.BadSurfaceTypeException(java.lang.String);
+    ctor public SurfaceHolder.BadSurfaceTypeException(String);
   }
 
-  public static abstract interface SurfaceHolder.Callback {
-    method public abstract void surfaceChanged(android.view.SurfaceHolder, int, int, int);
-    method public abstract void surfaceCreated(android.view.SurfaceHolder);
-    method public abstract void surfaceDestroyed(android.view.SurfaceHolder);
+  public static interface SurfaceHolder.Callback {
+    method public void surfaceChanged(android.view.SurfaceHolder, int, int, int);
+    method public void surfaceCreated(android.view.SurfaceHolder);
+    method public void surfaceDestroyed(android.view.SurfaceHolder);
   }
 
-  public static abstract interface SurfaceHolder.Callback2 implements android.view.SurfaceHolder.Callback {
-    method public abstract void surfaceRedrawNeeded(android.view.SurfaceHolder);
-    method public default void surfaceRedrawNeededAsync(android.view.SurfaceHolder, java.lang.Runnable);
+  public static interface SurfaceHolder.Callback2 extends android.view.SurfaceHolder.Callback {
+    method public void surfaceRedrawNeeded(android.view.SurfaceHolder);
+    method public default void surfaceRedrawNeededAsync(android.view.SurfaceHolder, Runnable);
   }
 
   public class SurfaceView extends android.view.View {
@@ -49890,18 +49788,18 @@
     method public void unlockCanvasAndPost(android.graphics.Canvas);
   }
 
-  public static abstract interface TextureView.SurfaceTextureListener {
-    method public abstract void onSurfaceTextureAvailable(android.graphics.SurfaceTexture, int, int);
-    method public abstract boolean onSurfaceTextureDestroyed(android.graphics.SurfaceTexture);
-    method public abstract void onSurfaceTextureSizeChanged(android.graphics.SurfaceTexture, int, int);
-    method public abstract void onSurfaceTextureUpdated(android.graphics.SurfaceTexture);
+  public static interface TextureView.SurfaceTextureListener {
+    method public void onSurfaceTextureAvailable(android.graphics.SurfaceTexture, int, int);
+    method public boolean onSurfaceTextureDestroyed(android.graphics.SurfaceTexture);
+    method public void onSurfaceTextureSizeChanged(android.graphics.SurfaceTexture, int, int);
+    method public void onSurfaceTextureUpdated(android.graphics.SurfaceTexture);
   }
 
   public class TouchDelegate {
     ctor public TouchDelegate(android.graphics.Rect, android.view.View);
-    method public android.view.accessibility.AccessibilityNodeInfo.TouchDelegateInfo getTouchDelegateInfo();
-    method public boolean onTouchEvent(android.view.MotionEvent);
-    method public boolean onTouchExplorationHoverEvent(android.view.MotionEvent);
+    method @NonNull public android.view.accessibility.AccessibilityNodeInfo.TouchDelegateInfo getTouchDelegateInfo();
+    method public boolean onTouchEvent(@NonNull android.view.MotionEvent);
+    method public boolean onTouchExplorationHoverEvent(@NonNull android.view.MotionEvent);
     field public static final int ABOVE = 1; // 0x1
     field public static final int BELOW = 2; // 0x2
     field public static final int TO_LEFT = 4; // 0x4
@@ -49921,30 +49819,30 @@
     method public void recycle();
   }
 
-  public class View implements android.view.accessibility.AccessibilityEventSource android.graphics.drawable.Drawable.Callback android.view.KeyEvent.Callback {
+  @UiThread public class View implements android.view.accessibility.AccessibilityEventSource android.graphics.drawable.Drawable.Callback android.view.KeyEvent.Callback {
     ctor public View(android.content.Context);
-    ctor public View(android.content.Context, android.util.AttributeSet);
-    ctor public View(android.content.Context, android.util.AttributeSet, int);
-    ctor public View(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public View(android.content.Context, @Nullable android.util.AttributeSet);
+    ctor public View(android.content.Context, @Nullable android.util.AttributeSet, int);
+    ctor public View(android.content.Context, @Nullable android.util.AttributeSet, int, int);
     method public void addChildrenForAccessibility(java.util.ArrayList<android.view.View>);
-    method public void addExtraDataToAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo, java.lang.String, android.os.Bundle);
+    method public void addExtraDataToAccessibilityNodeInfo(@NonNull android.view.accessibility.AccessibilityNodeInfo, @NonNull String, @Nullable android.os.Bundle);
     method public void addFocusables(java.util.ArrayList<android.view.View>, int);
     method public void addFocusables(java.util.ArrayList<android.view.View>, int, int);
-    method public void addKeyboardNavigationClusters(java.util.Collection<android.view.View>, int);
+    method public void addKeyboardNavigationClusters(@NonNull java.util.Collection<android.view.View>, int);
     method public void addOnAttachStateChangeListener(android.view.View.OnAttachStateChangeListener);
     method public void addOnLayoutChangeListener(android.view.View.OnLayoutChangeListener);
     method public void addOnUnhandledKeyEventListener(android.view.View.OnUnhandledKeyEventListener);
     method public void addTouchables(java.util.ArrayList<android.view.View>);
     method public android.view.ViewPropertyAnimator animate();
-    method public void announceForAccessibility(java.lang.CharSequence);
+    method public void announceForAccessibility(CharSequence);
     method public void autofill(android.view.autofill.AutofillValue);
-    method public void autofill(android.util.SparseArray<android.view.autofill.AutofillValue>);
+    method public void autofill(@NonNull android.util.SparseArray<android.view.autofill.AutofillValue>);
     method protected boolean awakenScrollBars();
     method protected boolean awakenScrollBars(int);
     method protected boolean awakenScrollBars(int, boolean);
     method public void bringToFront();
-    method public deprecated void buildDrawingCache();
-    method public deprecated void buildDrawingCache(boolean);
+    method @Deprecated public void buildDrawingCache();
+    method @Deprecated public void buildDrawingCache(boolean);
     method public void buildLayer();
     method public boolean callOnClick();
     method public boolean canResolveLayoutDirection();
@@ -49969,7 +49867,7 @@
     method protected int computeVerticalScrollRange();
     method public android.view.accessibility.AccessibilityNodeInfo createAccessibilityNodeInfo();
     method public void createContextMenu(android.view.ContextMenu);
-    method public deprecated void destroyDrawingCache();
+    method @Deprecated public void destroyDrawingCache();
     method public android.view.WindowInsets dispatchApplyWindowInsets(android.view.WindowInsets);
     method public boolean dispatchCapturedPointerEvent(android.view.MotionEvent);
     method public void dispatchConfigurationChanged(android.content.res.Configuration);
@@ -49977,7 +49875,7 @@
     method public boolean dispatchDragEvent(android.view.DragEvent);
     method protected void dispatchDraw(android.graphics.Canvas);
     method public void dispatchDrawableHotspotChanged(float, float);
-    method public void dispatchFinishTemporaryDetach();
+    method @CallSuper public void dispatchFinishTemporaryDetach();
     method protected boolean dispatchGenericFocusedEvent(android.view.MotionEvent);
     method public boolean dispatchGenericMotionEvent(android.view.MotionEvent);
     method protected boolean dispatchGenericPointerEvent(android.view.MotionEvent);
@@ -49988,117 +49886,117 @@
     method public boolean dispatchNestedFling(float, float, boolean);
     method public boolean dispatchNestedPreFling(float, float);
     method public boolean dispatchNestedPrePerformAccessibilityAction(int, android.os.Bundle);
-    method public boolean dispatchNestedPreScroll(int, int, int[], int[]);
-    method public boolean dispatchNestedScroll(int, int, int, int, int[]);
+    method public boolean dispatchNestedPreScroll(int, int, @Nullable @Size(2) int[], @Nullable @Size(2) int[]);
+    method public boolean dispatchNestedScroll(int, int, int, int, @Nullable @Size(2) int[]);
     method public void dispatchPointerCaptureChanged(boolean);
     method public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
-    method public void dispatchProvideAutofillStructure(android.view.ViewStructure, int);
+    method public void dispatchProvideAutofillStructure(@NonNull android.view.ViewStructure, int);
     method public void dispatchProvideStructure(android.view.ViewStructure);
     method protected void dispatchRestoreInstanceState(android.util.SparseArray<android.os.Parcelable>);
     method protected void dispatchSaveInstanceState(android.util.SparseArray<android.os.Parcelable>);
     method protected void dispatchSetActivated(boolean);
     method protected void dispatchSetPressed(boolean);
     method protected void dispatchSetSelected(boolean);
-    method public void dispatchStartTemporaryDetach();
+    method @CallSuper public void dispatchStartTemporaryDetach();
     method public void dispatchSystemUiVisibilityChanged(int);
     method public boolean dispatchTouchEvent(android.view.MotionEvent);
     method public boolean dispatchTrackballEvent(android.view.MotionEvent);
     method public boolean dispatchUnhandledMove(android.view.View, int);
-    method protected void dispatchVisibilityChanged(android.view.View, int);
+    method protected void dispatchVisibilityChanged(@NonNull android.view.View, int);
     method public void dispatchWindowFocusChanged(boolean);
     method public void dispatchWindowSystemUiVisiblityChanged(int);
     method public void dispatchWindowVisibilityChanged(int);
-    method public void draw(android.graphics.Canvas);
-    method public void drawableHotspotChanged(float, float);
-    method protected void drawableStateChanged();
+    method @CallSuper public void draw(android.graphics.Canvas);
+    method @CallSuper public void drawableHotspotChanged(float, float);
+    method @CallSuper protected void drawableStateChanged();
     method public android.view.View findFocus();
-    method public final <T extends android.view.View> T findViewById(int);
-    method public final <T extends android.view.View> T findViewWithTag(java.lang.Object);
-    method public void findViewsWithText(java.util.ArrayList<android.view.View>, java.lang.CharSequence, int);
-    method protected deprecated boolean fitSystemWindows(android.graphics.Rect);
+    method public final <T extends android.view.View> T findViewById(@IdRes int);
+    method public final <T extends android.view.View> T findViewWithTag(Object);
+    method public void findViewsWithText(java.util.ArrayList<android.view.View>, CharSequence, int);
+    method @Deprecated protected boolean fitSystemWindows(android.graphics.Rect);
     method public android.view.View focusSearch(int);
     method public void forceHasOverlappingRendering(boolean);
     method public void forceLayout();
     method public static int generateViewId();
-    method public java.lang.CharSequence getAccessibilityClassName();
+    method public CharSequence getAccessibilityClassName();
     method public android.view.View.AccessibilityDelegate getAccessibilityDelegate();
     method public int getAccessibilityLiveRegion();
     method public android.view.accessibility.AccessibilityNodeProvider getAccessibilityNodeProvider();
-    method public java.lang.CharSequence getAccessibilityPaneTitle();
+    method @Nullable public CharSequence getAccessibilityPaneTitle();
     method public int getAccessibilityTraversalAfter();
     method public int getAccessibilityTraversalBefore();
-    method public float getAlpha();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getAlpha();
     method public android.view.animation.Animation getAnimation();
     method public android.os.IBinder getApplicationWindowToken();
-    method public java.lang.String[] getAutofillHints();
+    method @android.view.ViewDebug.ExportedProperty @Nullable public String[] getAutofillHints();
     method public final android.view.autofill.AutofillId getAutofillId();
     method public int getAutofillType();
-    method public android.view.autofill.AutofillValue getAutofillValue();
+    method @Nullable public android.view.autofill.AutofillValue getAutofillValue();
     method public android.graphics.drawable.Drawable getBackground();
-    method public android.content.res.ColorStateList getBackgroundTintList();
-    method public android.graphics.PorterDuff.Mode getBackgroundTintMode();
-    method public int getBaseline();
-    method public final int getBottom();
+    method @Nullable public android.content.res.ColorStateList getBackgroundTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getBackgroundTintMode();
+    method @android.view.ViewDebug.ExportedProperty(category="layout") public int getBaseline();
+    method @android.view.ViewDebug.CapturedViewProperty public final int getBottom();
     method protected float getBottomFadingEdgeStrength();
     method protected int getBottomPaddingOffset();
     method public float getCameraDistance();
     method public android.graphics.Rect getClipBounds();
     method public boolean getClipBounds(android.graphics.Rect);
     method public final boolean getClipToOutline();
-    method public final android.view.contentcapture.ContentCaptureSession getContentCaptureSession();
-    method public java.lang.CharSequence getContentDescription();
-    method public final android.content.Context getContext();
+    method @Nullable public final android.view.contentcapture.ContentCaptureSession getContentCaptureSession();
+    method @android.view.ViewDebug.ExportedProperty(category="accessibility") public CharSequence getContentDescription();
+    method @android.view.ViewDebug.CapturedViewProperty public final android.content.Context getContext();
     method protected android.view.ContextMenu.ContextMenuInfo getContextMenuInfo();
-    method public final boolean getDefaultFocusHighlightEnabled();
+    method @android.view.ViewDebug.ExportedProperty(category="focus") public final boolean getDefaultFocusHighlightEnabled();
     method public static int getDefaultSize(int, int);
     method public android.view.Display getDisplay();
     method public final int[] getDrawableState();
-    method public deprecated android.graphics.Bitmap getDrawingCache();
-    method public deprecated android.graphics.Bitmap getDrawingCache(boolean);
-    method public deprecated int getDrawingCacheBackgroundColor();
-    method public deprecated int getDrawingCacheQuality();
+    method @Deprecated public android.graphics.Bitmap getDrawingCache();
+    method @Deprecated public android.graphics.Bitmap getDrawingCache(boolean);
+    method @Deprecated @ColorInt public int getDrawingCacheBackgroundColor();
+    method @Deprecated public int getDrawingCacheQuality();
     method public void getDrawingRect(android.graphics.Rect);
     method public long getDrawingTime();
-    method public float getElevation();
-    method public boolean getFilterTouchesWhenObscured();
-    method public boolean getFitsSystemWindows();
-    method public int getFocusable();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getElevation();
+    method @android.view.ViewDebug.ExportedProperty public boolean getFilterTouchesWhenObscured();
+    method @android.view.ViewDebug.ExportedProperty public boolean getFitsSystemWindows();
+    method @android.view.ViewDebug.ExportedProperty(mapping={@android.view.ViewDebug.IntToString(from=android.view.View.NOT_FOCUSABLE, to="NOT_FOCUSABLE"), @android.view.ViewDebug.IntToString(from=android.view.View.FOCUSABLE, to="FOCUSABLE"), @android.view.ViewDebug.IntToString(from=android.view.View.FOCUSABLE_AUTO, to="FOCUSABLE_AUTO")}, category="focus") public int getFocusable();
     method public java.util.ArrayList<android.view.View> getFocusables(int);
     method public void getFocusedRect(android.graphics.Rect);
     method public android.graphics.drawable.Drawable getForeground();
     method public int getForegroundGravity();
-    method public android.content.res.ColorStateList getForegroundTintList();
-    method public android.graphics.PorterDuff.Mode getForegroundTintMode();
+    method @Nullable public android.content.res.ColorStateList getForegroundTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getForegroundTintMode();
     method public boolean getGlobalVisibleRect(android.graphics.Rect, android.graphics.Point);
     method public final boolean getGlobalVisibleRect(android.graphics.Rect);
     method public android.os.Handler getHandler();
     method public final boolean getHasOverlappingRendering();
-    method public final int getHeight();
+    method @android.view.ViewDebug.ExportedProperty(category="layout") public final int getHeight();
     method public void getHitRect(android.graphics.Rect);
     method public int getHorizontalFadingEdgeLength();
     method protected int getHorizontalScrollbarHeight();
-    method public int getId();
-    method public int getImportantForAccessibility();
-    method public int getImportantForAutofill();
-    method public int getImportantForContentCapture();
+    method @android.view.ViewDebug.CapturedViewProperty @IdRes public int getId();
+    method @android.view.ViewDebug.ExportedProperty(category="accessibility", mapping={@android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_ACCESSIBILITY_AUTO, to="auto"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_ACCESSIBILITY_YES, to="yes"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO, to="no"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS, to="noHideDescendants")}) public int getImportantForAccessibility();
+    method @android.view.ViewDebug.ExportedProperty(mapping={@android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_AUTOFILL_AUTO, to="auto"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_AUTOFILL_YES, to="yes"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_AUTOFILL_NO, to="no"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, to="yesExcludeDescendants"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS, to="noExcludeDescendants")}) public int getImportantForAutofill();
+    method @android.view.ViewDebug.ExportedProperty(mapping={@android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_CONTENT_CAPTURE_AUTO, to="auto"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_CONTENT_CAPTURE_YES, to="yes"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_CONTENT_CAPTURE_NO, to="no"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_CONTENT_CAPTURE_YES_EXCLUDE_DESCENDANTS, to="yesExcludeDescendants"), @android.view.ViewDebug.IntToString(from=android.view.View.IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS, to="noExcludeDescendants")}) public int getImportantForContentCapture();
     method public boolean getKeepScreenOn();
     method public android.view.KeyEvent.DispatcherState getKeyDispatcherState();
-    method public int getLabelFor();
+    method @android.view.ViewDebug.ExportedProperty(category="accessibility") public int getLabelFor();
     method public int getLayerType();
-    method public int getLayoutDirection();
-    method public android.view.ViewGroup.LayoutParams getLayoutParams();
-    method public final int getLeft();
+    method @android.view.ViewDebug.ExportedProperty(category="layout", mapping={@android.view.ViewDebug.IntToString(from=android.view.View.LAYOUT_DIRECTION_LTR, to="RESOLVED_DIRECTION_LTR"), @android.view.ViewDebug.IntToString(from=android.view.View.LAYOUT_DIRECTION_RTL, to="RESOLVED_DIRECTION_RTL")}) public int getLayoutDirection();
+    method @android.view.ViewDebug.ExportedProperty(deepExport=true, prefix="layout_") public android.view.ViewGroup.LayoutParams getLayoutParams();
+    method @android.view.ViewDebug.CapturedViewProperty public final int getLeft();
     method protected float getLeftFadingEdgeStrength();
     method protected int getLeftPaddingOffset();
     method public final boolean getLocalVisibleRect(android.graphics.Rect);
-    method public void getLocationInWindow(int[]);
-    method public void getLocationOnScreen(int[]);
+    method public void getLocationInWindow(@Size(2) int[]);
+    method public void getLocationOnScreen(@Size(2) int[]);
     method public android.graphics.Matrix getMatrix();
     method public final int getMeasuredHeight();
-    method public final int getMeasuredHeightAndState();
+    method @android.view.ViewDebug.ExportedProperty(category="measurement", flagMapping={@android.view.ViewDebug.FlagToString(mask=android.view.View.MEASURED_STATE_MASK, equals=android.view.View.MEASURED_STATE_TOO_SMALL, name="MEASURED_STATE_TOO_SMALL")}) public final int getMeasuredHeightAndState();
     method public final int getMeasuredState();
     method public final int getMeasuredWidth();
-    method public final int getMeasuredWidthAndState();
+    method @android.view.ViewDebug.ExportedProperty(category="measurement", flagMapping={@android.view.ViewDebug.FlagToString(mask=android.view.View.MEASURED_STATE_MASK, equals=android.view.View.MEASURED_STATE_TOO_SMALL, name="MEASURED_STATE_TOO_SMALL")}) public final int getMeasuredWidthAndState();
     method public int getMinimumHeight();
     method public int getMinimumWidth();
     method public int getNextClusterForwardId();
@@ -50108,9 +50006,9 @@
     method public int getNextFocusRightId();
     method public int getNextFocusUpId();
     method public android.view.View.OnFocusChangeListener getOnFocusChangeListener();
-    method public int getOutlineAmbientShadowColor();
+    method @ColorInt public int getOutlineAmbientShadowColor();
     method public android.view.ViewOutlineProvider getOutlineProvider();
-    method public int getOutlineSpotShadowColor();
+    method @ColorInt public int getOutlineSpotShadowColor();
     method public int getOverScrollMode();
     method public android.view.ViewOverlay getOverlay();
     method public int getPaddingBottom();
@@ -50121,141 +50019,141 @@
     method public int getPaddingTop();
     method public final android.view.ViewParent getParent();
     method public android.view.ViewParent getParentForAccessibility();
-    method public float getPivotX();
-    method public float getPivotY();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getPivotX();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getPivotY();
     method public android.view.PointerIcon getPointerIcon();
     method public android.content.res.Resources getResources();
     method public final boolean getRevealOnFocusHint();
-    method public final int getRight();
+    method @android.view.ViewDebug.CapturedViewProperty public final int getRight();
     method protected float getRightFadingEdgeStrength();
     method protected int getRightPaddingOffset();
     method public android.view.View getRootView();
     method public android.view.WindowInsets getRootWindowInsets();
-    method public float getRotation();
-    method public float getRotationX();
-    method public float getRotationY();
-    method public float getScaleX();
-    method public float getScaleY();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getRotation();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getRotationX();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getRotationY();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getScaleX();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getScaleY();
     method public int getScrollBarDefaultDelayBeforeFade();
     method public int getScrollBarFadeDuration();
     method public int getScrollBarSize();
-    method public int getScrollBarStyle();
+    method @android.view.ViewDebug.ExportedProperty(mapping={@android.view.ViewDebug.IntToString(from=android.view.View.SCROLLBARS_INSIDE_OVERLAY, to="INSIDE_OVERLAY"), @android.view.ViewDebug.IntToString(from=android.view.View.SCROLLBARS_INSIDE_INSET, to="INSIDE_INSET"), @android.view.ViewDebug.IntToString(from=android.view.View.SCROLLBARS_OUTSIDE_OVERLAY, to="OUTSIDE_OVERLAY"), @android.view.ViewDebug.IntToString(from=android.view.View.SCROLLBARS_OUTSIDE_INSET, to="OUTSIDE_INSET")}) public int getScrollBarStyle();
     method public int getScrollIndicators();
     method public final int getScrollX();
     method public final int getScrollY();
-    method public int getSolidColor();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") @ColorInt public int getSolidColor();
     method public android.animation.StateListAnimator getStateListAnimator();
     method protected int getSuggestedMinimumHeight();
     method protected int getSuggestedMinimumWidth();
     method public int getSystemUiVisibility();
-    method public java.lang.Object getTag();
-    method public java.lang.Object getTag(int);
-    method public int getTextAlignment();
-    method public int getTextDirection();
-    method public java.lang.CharSequence getTooltipText();
-    method public final int getTop();
+    method @android.view.ViewDebug.ExportedProperty public Object getTag();
+    method public Object getTag(int);
+    method @android.view.ViewDebug.ExportedProperty(category="text", mapping={@android.view.ViewDebug.IntToString(from=android.view.View.TEXT_ALIGNMENT_INHERIT, to="INHERIT"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_ALIGNMENT_GRAVITY, to="GRAVITY"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_ALIGNMENT_TEXT_START, to="TEXT_START"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_ALIGNMENT_TEXT_END, to="TEXT_END"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_ALIGNMENT_CENTER, to="CENTER"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_ALIGNMENT_VIEW_START, to="VIEW_START"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_ALIGNMENT_VIEW_END, to="VIEW_END")}) public int getTextAlignment();
+    method @android.view.ViewDebug.ExportedProperty(category="text", mapping={@android.view.ViewDebug.IntToString(from=android.view.View.TEXT_DIRECTION_INHERIT, to="INHERIT"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_DIRECTION_FIRST_STRONG, to="FIRST_STRONG"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_DIRECTION_ANY_RTL, to="ANY_RTL"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_DIRECTION_LTR, to="LTR"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_DIRECTION_RTL, to="RTL"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_DIRECTION_LOCALE, to="LOCALE"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_DIRECTION_FIRST_STRONG_LTR, to="FIRST_STRONG_LTR"), @android.view.ViewDebug.IntToString(from=android.view.View.TEXT_DIRECTION_FIRST_STRONG_RTL, to="FIRST_STRONG_RTL")}) public int getTextDirection();
+    method @Nullable public CharSequence getTooltipText();
+    method @android.view.ViewDebug.CapturedViewProperty public final int getTop();
     method protected float getTopFadingEdgeStrength();
     method protected int getTopPaddingOffset();
     method public android.view.TouchDelegate getTouchDelegate();
     method public java.util.ArrayList<android.view.View> getTouchables();
-    method public float getTransitionAlpha();
-    method public java.lang.String getTransitionName();
-    method public float getTranslationX();
-    method public float getTranslationY();
-    method public float getTranslationZ();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getTransitionAlpha();
+    method @android.view.ViewDebug.ExportedProperty public String getTransitionName();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getTranslationX();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getTranslationY();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getTranslationZ();
     method public long getUniqueDrawingId();
     method public int getVerticalFadingEdgeLength();
     method public int getVerticalScrollbarPosition();
     method public int getVerticalScrollbarWidth();
     method public android.view.ViewTreeObserver getViewTreeObserver();
-    method public int getVisibility();
-    method public final int getWidth();
+    method @android.view.ViewDebug.ExportedProperty(mapping={@android.view.ViewDebug.IntToString(from=android.view.View.VISIBLE, to="VISIBLE"), @android.view.ViewDebug.IntToString(from=android.view.View.INVISIBLE, to="INVISIBLE"), @android.view.ViewDebug.IntToString(from=android.view.View.GONE, to="GONE")}) public int getVisibility();
+    method @android.view.ViewDebug.ExportedProperty(category="layout") public final int getWidth();
     method protected int getWindowAttachCount();
     method public android.view.WindowId getWindowId();
     method public int getWindowSystemUiVisibility();
     method public android.os.IBinder getWindowToken();
     method public int getWindowVisibility();
     method public void getWindowVisibleDisplayFrame(android.graphics.Rect);
-    method public float getX();
-    method public float getY();
-    method public float getZ();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getX();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getY();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public float getZ();
     method public boolean hasExplicitFocusable();
-    method public boolean hasFocus();
+    method @android.view.ViewDebug.ExportedProperty(category="focus") public boolean hasFocus();
     method public boolean hasFocusable();
     method public boolean hasNestedScrollingParent();
     method public boolean hasOnClickListeners();
-    method public boolean hasOverlappingRendering();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public boolean hasOverlappingRendering();
     method public boolean hasPointerCapture();
-    method public boolean hasTransientState();
+    method @android.view.ViewDebug.ExportedProperty(category="layout") public boolean hasTransientState();
     method public boolean hasWindowFocus();
-    method public static android.view.View inflate(android.content.Context, int, android.view.ViewGroup);
-    method public deprecated void invalidate(android.graphics.Rect);
-    method public deprecated void invalidate(int, int, int, int);
+    method public static android.view.View inflate(android.content.Context, @LayoutRes int, android.view.ViewGroup);
+    method @Deprecated public void invalidate(android.graphics.Rect);
+    method @Deprecated public void invalidate(int, int, int, int);
     method public void invalidate();
-    method public void invalidateDrawable(android.graphics.drawable.Drawable);
+    method public void invalidateDrawable(@NonNull android.graphics.drawable.Drawable);
     method public void invalidateOutline();
     method public boolean isAccessibilityFocused();
     method public boolean isAccessibilityHeading();
-    method public boolean isActivated();
+    method @android.view.ViewDebug.ExportedProperty public boolean isActivated();
     method public boolean isAttachedToWindow();
-    method public boolean isClickable();
+    method @android.view.ViewDebug.ExportedProperty public boolean isClickable();
     method public boolean isContextClickable();
     method public boolean isDirty();
-    method public deprecated boolean isDrawingCacheEnabled();
+    method @Deprecated @android.view.ViewDebug.ExportedProperty(category="drawing") public boolean isDrawingCacheEnabled();
     method public boolean isDuplicateParentStateEnabled();
-    method public boolean isEnabled();
-    method public final boolean isFocusable();
-    method public final boolean isFocusableInTouchMode();
-    method public boolean isFocused();
-    method public final boolean isFocusedByDefault();
-    method public boolean isForceDarkAllowed();
-    method public boolean isHapticFeedbackEnabled();
-    method public boolean isHardwareAccelerated();
+    method @android.view.ViewDebug.ExportedProperty public boolean isEnabled();
+    method @android.view.ViewDebug.ExportedProperty(category="focus") public final boolean isFocusable();
+    method @android.view.ViewDebug.ExportedProperty(category="focus") public final boolean isFocusableInTouchMode();
+    method @android.view.ViewDebug.ExportedProperty(category="focus") public boolean isFocused();
+    method @android.view.ViewDebug.ExportedProperty(category="focus") public final boolean isFocusedByDefault();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public boolean isForceDarkAllowed();
+    method @android.view.ViewDebug.ExportedProperty public boolean isHapticFeedbackEnabled();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public boolean isHardwareAccelerated();
     method public boolean isHorizontalFadingEdgeEnabled();
     method public boolean isHorizontalScrollBarEnabled();
-    method public boolean isHovered();
+    method @android.view.ViewDebug.ExportedProperty public boolean isHovered();
     method public boolean isImportantForAccessibility();
     method public final boolean isImportantForAutofill();
     method public final boolean isImportantForContentCapture();
     method public boolean isInEditMode();
     method public boolean isInLayout();
-    method public boolean isInTouchMode();
-    method public final boolean isKeyboardNavigationCluster();
+    method @android.view.ViewDebug.ExportedProperty public boolean isInTouchMode();
+    method @android.view.ViewDebug.ExportedProperty(category="focus") public final boolean isKeyboardNavigationCluster();
     method public boolean isLaidOut();
     method public boolean isLayoutDirectionResolved();
     method public boolean isLayoutRequested();
     method public boolean isLongClickable();
     method public boolean isNestedScrollingEnabled();
-    method public boolean isOpaque();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public boolean isOpaque();
     method protected boolean isPaddingOffsetRequired();
     method public boolean isPaddingRelative();
     method public boolean isPivotSet();
-    method public boolean isPressed();
+    method @android.view.ViewDebug.ExportedProperty public boolean isPressed();
     method public boolean isSaveEnabled();
     method public boolean isSaveFromParentEnabled();
     method public boolean isScreenReaderFocusable();
     method public boolean isScrollContainer();
     method public boolean isScrollbarFadingEnabled();
-    method public boolean isSelected();
+    method @android.view.ViewDebug.ExportedProperty public boolean isSelected();
     method public boolean isShown();
-    method public boolean isSoundEffectsEnabled();
+    method @android.view.ViewDebug.ExportedProperty public boolean isSoundEffectsEnabled();
     method public final boolean isTemporarilyDetached();
     method public boolean isTextAlignmentResolved();
     method public boolean isTextDirectionResolved();
     method public boolean isVerticalFadingEdgeEnabled();
     method public boolean isVerticalScrollBarEnabled();
     method public boolean isVisibleToUserForAutofill(int);
-    method public void jumpDrawablesToCurrentState();
+    method @CallSuper public void jumpDrawablesToCurrentState();
     method public android.view.View keyboardNavigationClusterSearch(android.view.View, int);
     method public void layout(int, int, int, int);
     method public final void measure(int, int);
     method protected static int[] mergeDrawableStates(int[], int[]);
     method public void offsetLeftAndRight(int);
     method public void offsetTopAndBottom(int);
-    method protected void onAnimationEnd();
-    method protected void onAnimationStart();
+    method @CallSuper protected void onAnimationEnd();
+    method @CallSuper protected void onAnimationStart();
     method public android.view.WindowInsets onApplyWindowInsets(android.view.WindowInsets);
-    method protected void onAttachedToWindow();
+    method @CallSuper protected void onAttachedToWindow();
     method public void onCancelPendingInputEvents();
     method public boolean onCapturedPointerEvent(android.view.MotionEvent);
     method public boolean onCheckIsTextEditor();
@@ -50263,21 +50161,21 @@
     method protected void onCreateContextMenu(android.view.ContextMenu);
     method protected int[] onCreateDrawableState(int);
     method public android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo);
-    method protected void onDetachedFromWindow();
+    method @CallSuper protected void onDetachedFromWindow();
     method protected void onDisplayHint(int);
     method public boolean onDragEvent(android.view.DragEvent);
     method protected void onDraw(android.graphics.Canvas);
     method public void onDrawForeground(android.graphics.Canvas);
     method protected final void onDrawScrollBars(android.graphics.Canvas);
     method public boolean onFilterTouchEventForSecurity(android.view.MotionEvent);
-    method protected void onFinishInflate();
+    method @CallSuper protected void onFinishInflate();
     method public void onFinishTemporaryDetach();
-    method protected void onFocusChanged(boolean, int, android.graphics.Rect);
+    method @CallSuper protected void onFocusChanged(boolean, int, @Nullable android.graphics.Rect);
     method public boolean onGenericMotionEvent(android.view.MotionEvent);
     method public void onHoverChanged(boolean);
     method public boolean onHoverEvent(android.view.MotionEvent);
-    method public void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
-    method public void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo);
+    method @CallSuper public void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
+    method @CallSuper public void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo);
     method public boolean onKeyDown(int, android.view.KeyEvent);
     method public boolean onKeyLongPress(int, android.view.KeyEvent);
     method public boolean onKeyMultiple(int, int, android.view.KeyEvent);
@@ -50287,17 +50185,17 @@
     method protected void onLayout(boolean, int, int, int, int);
     method protected void onMeasure(int, int);
     method protected void onOverScrolled(int, int, boolean, boolean);
-    method public void onPointerCaptureChange(boolean);
-    method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
+    method @CallSuper public void onPointerCaptureChange(boolean);
+    method @CallSuper public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
     method public void onProvideAutofillStructure(android.view.ViewStructure, int);
     method public void onProvideAutofillVirtualStructure(android.view.ViewStructure, int);
-    method public void onProvideContentCaptureStructure(android.view.ViewStructure, int);
+    method public void onProvideContentCaptureStructure(@NonNull android.view.ViewStructure, int);
     method public void onProvideStructure(android.view.ViewStructure);
     method public void onProvideVirtualStructure(android.view.ViewStructure);
     method public android.view.PointerIcon onResolvePointerIcon(android.view.MotionEvent, int);
-    method protected void onRestoreInstanceState(android.os.Parcelable);
+    method @CallSuper protected void onRestoreInstanceState(android.os.Parcelable);
     method public void onRtlPropertiesChanged(int);
-    method protected android.os.Parcelable onSaveInstanceState();
+    method @CallSuper @Nullable protected android.os.Parcelable onSaveInstanceState();
     method public void onScreenStateChanged(int);
     method protected void onScrollChanged(int, int, int, int);
     method protected boolean onSetAlpha(int);
@@ -50305,8 +50203,8 @@
     method public void onStartTemporaryDetach();
     method public boolean onTouchEvent(android.view.MotionEvent);
     method public boolean onTrackballEvent(android.view.MotionEvent);
-    method public void onVisibilityAggregated(boolean);
-    method protected void onVisibilityChanged(android.view.View, int);
+    method @CallSuper public void onVisibilityAggregated(boolean);
+    method protected void onVisibilityChanged(@NonNull android.view.View, int);
     method public void onWindowFocusChanged(boolean);
     method public void onWindowSystemUiVisibilityChanged(int);
     method protected void onWindowVisibilityChanged(int);
@@ -50320,75 +50218,75 @@
     method public boolean performLongClick();
     method public boolean performLongClick(float, float);
     method public void playSoundEffect(int);
-    method public boolean post(java.lang.Runnable);
-    method public boolean postDelayed(java.lang.Runnable, long);
+    method public boolean post(Runnable);
+    method public boolean postDelayed(Runnable, long);
     method public void postInvalidate();
     method public void postInvalidate(int, int, int, int);
     method public void postInvalidateDelayed(long);
     method public void postInvalidateDelayed(long, int, int, int, int);
     method public void postInvalidateOnAnimation();
     method public void postInvalidateOnAnimation(int, int, int, int);
-    method public void postOnAnimation(java.lang.Runnable);
-    method public void postOnAnimationDelayed(java.lang.Runnable, long);
+    method public void postOnAnimation(Runnable);
+    method public void postOnAnimationDelayed(Runnable, long);
     method public void refreshDrawableState();
     method public void releasePointerCapture();
-    method public boolean removeCallbacks(java.lang.Runnable);
+    method public boolean removeCallbacks(Runnable);
     method public void removeOnAttachStateChangeListener(android.view.View.OnAttachStateChangeListener);
     method public void removeOnLayoutChangeListener(android.view.View.OnLayoutChangeListener);
     method public void removeOnUnhandledKeyEventListener(android.view.View.OnUnhandledKeyEventListener);
     method public void requestApplyInsets();
-    method public deprecated void requestFitSystemWindows();
+    method @Deprecated public void requestFitSystemWindows();
     method public final boolean requestFocus();
     method public final boolean requestFocus(int);
     method public boolean requestFocus(int, android.graphics.Rect);
     method public final boolean requestFocusFromTouch();
-    method public void requestLayout();
+    method @CallSuper public void requestLayout();
     method public void requestPointerCapture();
     method public boolean requestRectangleOnScreen(android.graphics.Rect);
     method public boolean requestRectangleOnScreen(android.graphics.Rect, boolean);
     method public final void requestUnbufferedDispatch(android.view.MotionEvent);
-    method public final <T extends android.view.View> T requireViewById(int);
+    method @NonNull public final <T extends android.view.View> T requireViewById(@IdRes int);
     method public void resetPivot();
     method public static int resolveSize(int, int);
     method public static int resolveSizeAndState(int, int, int);
     method public boolean restoreDefaultFocus();
     method public void restoreHierarchyState(android.util.SparseArray<android.os.Parcelable>);
     method public void saveHierarchyState(android.util.SparseArray<android.os.Parcelable>);
-    method public void scheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable, long);
+    method public void scheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable, long);
     method public void scrollBy(int, int);
     method public void scrollTo(int, int);
     method public void sendAccessibilityEvent(int);
     method public void sendAccessibilityEventUnchecked(android.view.accessibility.AccessibilityEvent);
-    method public void setAccessibilityDelegate(android.view.View.AccessibilityDelegate);
+    method public void setAccessibilityDelegate(@Nullable android.view.View.AccessibilityDelegate);
     method public void setAccessibilityHeading(boolean);
     method public void setAccessibilityLiveRegion(int);
-    method public void setAccessibilityPaneTitle(java.lang.CharSequence);
+    method public void setAccessibilityPaneTitle(@Nullable CharSequence);
     method public void setAccessibilityTraversalAfter(int);
     method public void setAccessibilityTraversalBefore(int);
     method public void setActivated(boolean);
-    method public void setAlpha(float);
+    method public void setAlpha(@FloatRange(from=0.0, to=1.0) float);
     method public void setAnimation(android.view.animation.Animation);
-    method public void setAnimationMatrix(android.graphics.Matrix);
-    method public void setAutofillHints(java.lang.String...);
-    method public void setAutofillId(android.view.autofill.AutofillId);
+    method public void setAnimationMatrix(@Nullable android.graphics.Matrix);
+    method public void setAutofillHints(@Nullable java.lang.String...);
+    method public void setAutofillId(@Nullable android.view.autofill.AutofillId);
     method public void setBackground(android.graphics.drawable.Drawable);
-    method public void setBackgroundColor(int);
-    method public deprecated void setBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setBackgroundResource(int);
-    method public void setBackgroundTintList(android.content.res.ColorStateList);
-    method public void setBackgroundTintMode(android.graphics.PorterDuff.Mode);
+    method public void setBackgroundColor(@ColorInt int);
+    method @Deprecated public void setBackgroundDrawable(android.graphics.drawable.Drawable);
+    method public void setBackgroundResource(@DrawableRes int);
+    method public void setBackgroundTintList(@Nullable android.content.res.ColorStateList);
+    method public void setBackgroundTintMode(@Nullable android.graphics.PorterDuff.Mode);
     method public final void setBottom(int);
     method public void setCameraDistance(float);
     method public void setClickable(boolean);
     method public void setClipBounds(android.graphics.Rect);
     method public void setClipToOutline(boolean);
-    method public void setContentCaptureSession(android.view.contentcapture.ContentCaptureSession);
-    method public void setContentDescription(java.lang.CharSequence);
+    method public void setContentCaptureSession(@NonNull android.view.contentcapture.ContentCaptureSession);
+    method public void setContentDescription(CharSequence);
     method public void setContextClickable(boolean);
     method public void setDefaultFocusHighlightEnabled(boolean);
-    method public deprecated void setDrawingCacheBackgroundColor(int);
-    method public deprecated void setDrawingCacheEnabled(boolean);
-    method public deprecated void setDrawingCacheQuality(int);
+    method @Deprecated public void setDrawingCacheBackgroundColor(@ColorInt int);
+    method @Deprecated public void setDrawingCacheEnabled(boolean);
+    method @Deprecated public void setDrawingCacheQuality(int);
     method public void setDuplicateParentStateEnabled(boolean);
     method public void setElevation(float);
     method public void setEnabled(boolean);
@@ -50402,22 +50300,22 @@
     method public void setForceDarkAllowed(boolean);
     method public void setForeground(android.graphics.drawable.Drawable);
     method public void setForegroundGravity(int);
-    method public void setForegroundTintList(android.content.res.ColorStateList);
-    method public void setForegroundTintMode(android.graphics.PorterDuff.Mode);
+    method public void setForegroundTintList(@Nullable android.content.res.ColorStateList);
+    method public void setForegroundTintMode(@Nullable android.graphics.PorterDuff.Mode);
     method public void setHapticFeedbackEnabled(boolean);
     method public void setHasTransientState(boolean);
     method public void setHorizontalFadingEdgeEnabled(boolean);
     method public void setHorizontalScrollBarEnabled(boolean);
     method public void setHovered(boolean);
-    method public void setId(int);
+    method public void setId(@IdRes int);
     method public void setImportantForAccessibility(int);
     method public void setImportantForAutofill(int);
     method public void setImportantForContentCapture(int);
     method public void setKeepScreenOn(boolean);
     method public void setKeyboardNavigationCluster(boolean);
-    method public void setLabelFor(int);
-    method public void setLayerPaint(android.graphics.Paint);
-    method public void setLayerType(int, android.graphics.Paint);
+    method public void setLabelFor(@IdRes int);
+    method public void setLayerPaint(@Nullable android.graphics.Paint);
+    method public void setLayerType(int, @Nullable android.graphics.Paint);
     method public void setLayoutDirection(int);
     method public void setLayoutParams(android.view.ViewGroup.LayoutParams);
     method public final void setLeft(int);
@@ -50435,21 +50333,21 @@
     method public void setNextFocusUpId(int);
     method public void setOnApplyWindowInsetsListener(android.view.View.OnApplyWindowInsetsListener);
     method public void setOnCapturedPointerListener(android.view.View.OnCapturedPointerListener);
-    method public void setOnClickListener(android.view.View.OnClickListener);
-    method public void setOnContextClickListener(android.view.View.OnContextClickListener);
+    method public void setOnClickListener(@Nullable android.view.View.OnClickListener);
+    method public void setOnContextClickListener(@Nullable android.view.View.OnContextClickListener);
     method public void setOnCreateContextMenuListener(android.view.View.OnCreateContextMenuListener);
     method public void setOnDragListener(android.view.View.OnDragListener);
     method public void setOnFocusChangeListener(android.view.View.OnFocusChangeListener);
     method public void setOnGenericMotionListener(android.view.View.OnGenericMotionListener);
     method public void setOnHoverListener(android.view.View.OnHoverListener);
     method public void setOnKeyListener(android.view.View.OnKeyListener);
-    method public void setOnLongClickListener(android.view.View.OnLongClickListener);
+    method public void setOnLongClickListener(@Nullable android.view.View.OnLongClickListener);
     method public void setOnScrollChangeListener(android.view.View.OnScrollChangeListener);
     method public void setOnSystemUiVisibilityChangeListener(android.view.View.OnSystemUiVisibilityChangeListener);
     method public void setOnTouchListener(android.view.View.OnTouchListener);
-    method public void setOutlineAmbientShadowColor(int);
+    method public void setOutlineAmbientShadowColor(@ColorInt int);
     method public void setOutlineProvider(android.view.ViewOutlineProvider);
-    method public void setOutlineSpotShadowColor(int);
+    method public void setOutlineSpotShadowColor(@ColorInt int);
     method public void setOverScrollMode(int);
     method public void setPadding(int, int, int, int);
     method public void setPaddingRelative(int, int, int, int);
@@ -50481,15 +50379,15 @@
     method public void setSoundEffectsEnabled(boolean);
     method public void setStateListAnimator(android.animation.StateListAnimator);
     method public void setSystemUiVisibility(int);
-    method public void setTag(java.lang.Object);
-    method public void setTag(int, java.lang.Object);
+    method public void setTag(Object);
+    method public void setTag(int, Object);
     method public void setTextAlignment(int);
     method public void setTextDirection(int);
-    method public void setTooltipText(java.lang.CharSequence);
+    method public void setTooltipText(@Nullable CharSequence);
     method public final void setTop(int);
     method public void setTouchDelegate(android.view.TouchDelegate);
     method public void setTransitionAlpha(float);
-    method public final void setTransitionName(java.lang.String);
+    method public final void setTransitionName(String);
     method public void setTranslationX(float);
     method public void setTranslationY(float);
     method public void setTranslationZ(float);
@@ -50497,7 +50395,7 @@
     method public void setVerticalScrollBarEnabled(boolean);
     method public void setVerticalScrollbarPosition(int);
     method public void setVisibility(int);
-    method public deprecated void setWillNotCacheDrawing(boolean);
+    method @Deprecated public void setWillNotCacheDrawing(boolean);
     method public void setWillNotDraw(boolean);
     method public void setX(float);
     method public void setY(float);
@@ -50507,36 +50405,36 @@
     method public android.view.ActionMode startActionMode(android.view.ActionMode.Callback);
     method public android.view.ActionMode startActionMode(android.view.ActionMode.Callback, int);
     method public void startAnimation(android.view.animation.Animation);
-    method public final deprecated boolean startDrag(android.content.ClipData, android.view.View.DragShadowBuilder, java.lang.Object, int);
-    method public final boolean startDragAndDrop(android.content.ClipData, android.view.View.DragShadowBuilder, java.lang.Object, int);
+    method @Deprecated public final boolean startDrag(android.content.ClipData, android.view.View.DragShadowBuilder, Object, int);
+    method public final boolean startDragAndDrop(android.content.ClipData, android.view.View.DragShadowBuilder, Object, int);
     method public boolean startNestedScroll(int);
     method public void stopNestedScroll();
     method public void transformMatrixToGlobal(android.graphics.Matrix);
     method public void transformMatrixToLocal(android.graphics.Matrix);
-    method public void unscheduleDrawable(android.graphics.drawable.Drawable, java.lang.Runnable);
+    method public void unscheduleDrawable(@NonNull android.graphics.drawable.Drawable, @NonNull Runnable);
     method public void unscheduleDrawable(android.graphics.drawable.Drawable);
     method public final void updateDragShadow(android.view.View.DragShadowBuilder);
-    method protected boolean verifyDrawable(android.graphics.drawable.Drawable);
-    method public deprecated boolean willNotCacheDrawing();
-    method public boolean willNotDraw();
+    method @CallSuper protected boolean verifyDrawable(@NonNull android.graphics.drawable.Drawable);
+    method @Deprecated @android.view.ViewDebug.ExportedProperty(category="drawing") public boolean willNotCacheDrawing();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public boolean willNotDraw();
     field public static final int ACCESSIBILITY_LIVE_REGION_ASSERTIVE = 2; // 0x2
     field public static final int ACCESSIBILITY_LIVE_REGION_NONE = 0; // 0x0
     field public static final int ACCESSIBILITY_LIVE_REGION_POLITE = 1; // 0x1
-    field public static final android.util.Property<android.view.View, java.lang.Float> ALPHA;
+    field public static final android.util.Property<android.view.View,java.lang.Float> ALPHA;
     field public static final int AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 1; // 0x1
-    field public static final java.lang.String AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE = "creditCardExpirationDate";
-    field public static final java.lang.String AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY = "creditCardExpirationDay";
-    field public static final java.lang.String AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH = "creditCardExpirationMonth";
-    field public static final java.lang.String AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR = "creditCardExpirationYear";
-    field public static final java.lang.String AUTOFILL_HINT_CREDIT_CARD_NUMBER = "creditCardNumber";
-    field public static final java.lang.String AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE = "creditCardSecurityCode";
-    field public static final java.lang.String AUTOFILL_HINT_EMAIL_ADDRESS = "emailAddress";
-    field public static final java.lang.String AUTOFILL_HINT_NAME = "name";
-    field public static final java.lang.String AUTOFILL_HINT_PASSWORD = "password";
-    field public static final java.lang.String AUTOFILL_HINT_PHONE = "phone";
-    field public static final java.lang.String AUTOFILL_HINT_POSTAL_ADDRESS = "postalAddress";
-    field public static final java.lang.String AUTOFILL_HINT_POSTAL_CODE = "postalCode";
-    field public static final java.lang.String AUTOFILL_HINT_USERNAME = "username";
+    field public static final String AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE = "creditCardExpirationDate";
+    field public static final String AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY = "creditCardExpirationDay";
+    field public static final String AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH = "creditCardExpirationMonth";
+    field public static final String AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR = "creditCardExpirationYear";
+    field public static final String AUTOFILL_HINT_CREDIT_CARD_NUMBER = "creditCardNumber";
+    field public static final String AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE = "creditCardSecurityCode";
+    field public static final String AUTOFILL_HINT_EMAIL_ADDRESS = "emailAddress";
+    field public static final String AUTOFILL_HINT_NAME = "name";
+    field public static final String AUTOFILL_HINT_PASSWORD = "password";
+    field public static final String AUTOFILL_HINT_PHONE = "phone";
+    field public static final String AUTOFILL_HINT_POSTAL_ADDRESS = "postalAddress";
+    field public static final String AUTOFILL_HINT_POSTAL_CODE = "postalCode";
+    field public static final String AUTOFILL_HINT_USERNAME = "username";
     field public static final int AUTOFILL_TYPE_DATE = 4; // 0x4
     field public static final int AUTOFILL_TYPE_LIST = 3; // 0x3
     field public static final int AUTOFILL_TYPE_NONE = 0; // 0x0
@@ -50548,9 +50446,9 @@
     field public static final int DRAG_FLAG_GLOBAL_URI_READ = 1; // 0x1
     field public static final int DRAG_FLAG_GLOBAL_URI_WRITE = 2; // 0x2
     field public static final int DRAG_FLAG_OPAQUE = 512; // 0x200
-    field public static final deprecated int DRAWING_CACHE_QUALITY_AUTO = 0; // 0x0
-    field public static final deprecated int DRAWING_CACHE_QUALITY_HIGH = 1048576; // 0x100000
-    field public static final deprecated int DRAWING_CACHE_QUALITY_LOW = 524288; // 0x80000
+    field @Deprecated public static final int DRAWING_CACHE_QUALITY_AUTO = 0; // 0x0
+    field @Deprecated public static final int DRAWING_CACHE_QUALITY_HIGH = 1048576; // 0x100000
+    field @Deprecated public static final int DRAWING_CACHE_QUALITY_LOW = 524288; // 0x80000
     field protected static final int[] EMPTY_STATE_SET;
     field protected static final int[] ENABLED_FOCUSED_SELECTED_STATE_SET;
     field protected static final int[] ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET;
@@ -50626,11 +50524,11 @@
     field protected static final int[] PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET;
     field protected static final int[] PRESSED_STATE_SET;
     field protected static final int[] PRESSED_WINDOW_FOCUSED_STATE_SET;
-    field public static final android.util.Property<android.view.View, java.lang.Float> ROTATION;
-    field public static final android.util.Property<android.view.View, java.lang.Float> ROTATION_X;
-    field public static final android.util.Property<android.view.View, java.lang.Float> ROTATION_Y;
-    field public static final android.util.Property<android.view.View, java.lang.Float> SCALE_X;
-    field public static final android.util.Property<android.view.View, java.lang.Float> SCALE_Y;
+    field public static final android.util.Property<android.view.View,java.lang.Float> ROTATION;
+    field public static final android.util.Property<android.view.View,java.lang.Float> ROTATION_X;
+    field public static final android.util.Property<android.view.View,java.lang.Float> ROTATION_Y;
+    field public static final android.util.Property<android.view.View,java.lang.Float> SCALE_X;
+    field public static final android.util.Property<android.view.View,java.lang.Float> SCALE_Y;
     field public static final int SCREEN_STATE_OFF = 0; // 0x0
     field public static final int SCREEN_STATE_ON = 1; // 0x1
     field public static final int SCROLLBARS_INSIDE_INSET = 16777216; // 0x1000000
@@ -50652,8 +50550,8 @@
     field protected static final int[] SELECTED_STATE_SET;
     field protected static final int[] SELECTED_WINDOW_FOCUSED_STATE_SET;
     field public static final int SOUND_EFFECTS_ENABLED = 134217728; // 0x8000000
-    field public static final deprecated int STATUS_BAR_HIDDEN = 1; // 0x1
-    field public static final deprecated int STATUS_BAR_VISIBLE = 0; // 0x0
+    field @Deprecated public static final int STATUS_BAR_HIDDEN = 1; // 0x1
+    field @Deprecated public static final int STATUS_BAR_VISIBLE = 0; // 0x0
     field public static final int SYSTEM_UI_FLAG_FULLSCREEN = 4; // 0x4
     field public static final int SYSTEM_UI_FLAG_HIDE_NAVIGATION = 2; // 0x2
     field public static final int SYSTEM_UI_FLAG_IMMERSIVE = 2048; // 0x800
@@ -50681,20 +50579,20 @@
     field public static final int TEXT_DIRECTION_LOCALE = 5; // 0x5
     field public static final int TEXT_DIRECTION_LTR = 3; // 0x3
     field public static final int TEXT_DIRECTION_RTL = 4; // 0x4
-    field public static final android.util.Property<android.view.View, java.lang.Float> TRANSLATION_X;
-    field public static final android.util.Property<android.view.View, java.lang.Float> TRANSLATION_Y;
-    field public static final android.util.Property<android.view.View, java.lang.Float> TRANSLATION_Z;
-    field protected static final java.lang.String VIEW_LOG_TAG = "View";
+    field public static final android.util.Property<android.view.View,java.lang.Float> TRANSLATION_X;
+    field public static final android.util.Property<android.view.View,java.lang.Float> TRANSLATION_Y;
+    field public static final android.util.Property<android.view.View,java.lang.Float> TRANSLATION_Z;
+    field protected static final String VIEW_LOG_TAG = "View";
     field public static final int VISIBLE = 0; // 0x0
     field protected static final int[] WINDOW_FOCUSED_STATE_SET;
-    field public static final android.util.Property<android.view.View, java.lang.Float> X;
-    field public static final android.util.Property<android.view.View, java.lang.Float> Y;
-    field public static final android.util.Property<android.view.View, java.lang.Float> Z;
+    field public static final android.util.Property<android.view.View,java.lang.Float> X;
+    field public static final android.util.Property<android.view.View,java.lang.Float> Y;
+    field public static final android.util.Property<android.view.View,java.lang.Float> Z;
   }
 
   public static class View.AccessibilityDelegate {
     ctor public View.AccessibilityDelegate();
-    method public void addExtraDataToAccessibilityNodeInfo(android.view.View, android.view.accessibility.AccessibilityNodeInfo, java.lang.String, android.os.Bundle);
+    method public void addExtraDataToAccessibilityNodeInfo(@NonNull android.view.View, @NonNull android.view.accessibility.AccessibilityNodeInfo, @NonNull String, @Nullable android.os.Bundle);
     method public boolean dispatchPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
     method public android.view.accessibility.AccessibilityNodeProvider getAccessibilityNodeProvider(android.view.View);
     method public void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
@@ -50708,7 +50606,7 @@
 
   public static class View.BaseSavedState extends android.view.AbsSavedState {
     ctor public View.BaseSavedState(android.os.Parcel);
-    ctor public View.BaseSavedState(android.os.Parcel, java.lang.ClassLoader);
+    ctor public View.BaseSavedState(android.os.Parcel, ClassLoader);
     ctor public View.BaseSavedState(android.os.Parcelable);
     field public static final android.os.Parcelable.Creator<android.view.View.BaseSavedState> CREATOR;
   }
@@ -50725,80 +50623,80 @@
     ctor public View.MeasureSpec();
     method public static int getMode(int);
     method public static int getSize(int);
-    method public static int makeMeasureSpec(int, int);
-    method public static java.lang.String toString(int);
+    method public static int makeMeasureSpec(@IntRange(from=0, to=0x40000000 - 1) int, int);
+    method public static String toString(int);
     field public static final int AT_MOST = -2147483648; // 0x80000000
     field public static final int EXACTLY = 1073741824; // 0x40000000
     field public static final int UNSPECIFIED = 0; // 0x0
   }
 
-  public static abstract interface View.OnApplyWindowInsetsListener {
-    method public abstract android.view.WindowInsets onApplyWindowInsets(android.view.View, android.view.WindowInsets);
+  public static interface View.OnApplyWindowInsetsListener {
+    method public android.view.WindowInsets onApplyWindowInsets(android.view.View, android.view.WindowInsets);
   }
 
-  public static abstract interface View.OnAttachStateChangeListener {
-    method public abstract void onViewAttachedToWindow(android.view.View);
-    method public abstract void onViewDetachedFromWindow(android.view.View);
+  public static interface View.OnAttachStateChangeListener {
+    method public void onViewAttachedToWindow(android.view.View);
+    method public void onViewDetachedFromWindow(android.view.View);
   }
 
-  public static abstract interface View.OnCapturedPointerListener {
-    method public abstract boolean onCapturedPointer(android.view.View, android.view.MotionEvent);
+  public static interface View.OnCapturedPointerListener {
+    method public boolean onCapturedPointer(android.view.View, android.view.MotionEvent);
   }
 
-  public static abstract interface View.OnClickListener {
-    method public abstract void onClick(android.view.View);
+  public static interface View.OnClickListener {
+    method public void onClick(android.view.View);
   }
 
-  public static abstract interface View.OnContextClickListener {
-    method public abstract boolean onContextClick(android.view.View);
+  public static interface View.OnContextClickListener {
+    method public boolean onContextClick(android.view.View);
   }
 
-  public static abstract interface View.OnCreateContextMenuListener {
-    method public abstract void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo);
+  public static interface View.OnCreateContextMenuListener {
+    method public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo);
   }
 
-  public static abstract interface View.OnDragListener {
-    method public abstract boolean onDrag(android.view.View, android.view.DragEvent);
+  public static interface View.OnDragListener {
+    method public boolean onDrag(android.view.View, android.view.DragEvent);
   }
 
-  public static abstract interface View.OnFocusChangeListener {
-    method public abstract void onFocusChange(android.view.View, boolean);
+  public static interface View.OnFocusChangeListener {
+    method public void onFocusChange(android.view.View, boolean);
   }
 
-  public static abstract interface View.OnGenericMotionListener {
-    method public abstract boolean onGenericMotion(android.view.View, android.view.MotionEvent);
+  public static interface View.OnGenericMotionListener {
+    method public boolean onGenericMotion(android.view.View, android.view.MotionEvent);
   }
 
-  public static abstract interface View.OnHoverListener {
-    method public abstract boolean onHover(android.view.View, android.view.MotionEvent);
+  public static interface View.OnHoverListener {
+    method public boolean onHover(android.view.View, android.view.MotionEvent);
   }
 
-  public static abstract interface View.OnKeyListener {
-    method public abstract boolean onKey(android.view.View, int, android.view.KeyEvent);
+  public static interface View.OnKeyListener {
+    method public boolean onKey(android.view.View, int, android.view.KeyEvent);
   }
 
-  public static abstract interface View.OnLayoutChangeListener {
-    method public abstract void onLayoutChange(android.view.View, int, int, int, int, int, int, int, int);
+  public static interface View.OnLayoutChangeListener {
+    method public void onLayoutChange(android.view.View, int, int, int, int, int, int, int, int);
   }
 
-  public static abstract interface View.OnLongClickListener {
-    method public abstract boolean onLongClick(android.view.View);
+  public static interface View.OnLongClickListener {
+    method public boolean onLongClick(android.view.View);
   }
 
-  public static abstract interface View.OnScrollChangeListener {
-    method public abstract void onScrollChange(android.view.View, int, int, int, int);
+  public static interface View.OnScrollChangeListener {
+    method public void onScrollChange(android.view.View, int, int, int, int);
   }
 
-  public static abstract interface View.OnSystemUiVisibilityChangeListener {
-    method public abstract void onSystemUiVisibilityChange(int);
+  public static interface View.OnSystemUiVisibilityChangeListener {
+    method public void onSystemUiVisibilityChange(int);
   }
 
-  public static abstract interface View.OnTouchListener {
-    method public abstract boolean onTouch(android.view.View, android.view.MotionEvent);
+  public static interface View.OnTouchListener {
+    method public boolean onTouch(android.view.View, android.view.MotionEvent);
   }
 
-  public static abstract interface View.OnUnhandledKeyEventListener {
-    method public abstract boolean onUnhandledKeyEvent(android.view.View, android.view.KeyEvent);
+  public static interface View.OnUnhandledKeyEventListener {
+    method public boolean onUnhandledKeyEvent(android.view.View, android.view.KeyEvent);
   }
 
   public final class ViewAnimationUtils {
@@ -50806,20 +50704,20 @@
   }
 
   public class ViewConfiguration {
-    ctor public deprecated ViewConfiguration();
+    ctor @Deprecated public ViewConfiguration();
     method public static android.view.ViewConfiguration get(android.content.Context);
     method public static long getDefaultActionModeHideDuration();
     method public static int getDoubleTapTimeout();
-    method public static deprecated int getEdgeSlop();
-    method public static deprecated int getFadingEdgeLength();
-    method public static deprecated long getGlobalActionKeyTimeout();
+    method @Deprecated public static int getEdgeSlop();
+    method @Deprecated public static int getFadingEdgeLength();
+    method @Deprecated public static long getGlobalActionKeyTimeout();
     method public static int getJumpTapTimeout();
     method public static int getKeyRepeatDelay();
     method public static int getKeyRepeatTimeout();
     method public static int getLongPressTimeout();
-    method public static deprecated int getMaximumDrawingCacheSize();
-    method public static deprecated int getMaximumFlingVelocity();
-    method public static deprecated int getMinimumFlingVelocity();
+    method @Deprecated public static int getMaximumDrawingCacheSize();
+    method @Deprecated public static int getMaximumFlingVelocity();
+    method @Deprecated public static int getMinimumFlingVelocity();
     method public static int getPressedStateDuration();
     method public int getScaledDoubleTapSlop();
     method public int getScaledEdgeSlop();
@@ -50837,12 +50735,12 @@
     method public float getScaledVerticalScrollFactor();
     method public int getScaledWindowTouchSlop();
     method public static int getScrollBarFadeDuration();
-    method public static deprecated int getScrollBarSize();
+    method @Deprecated public static int getScrollBarSize();
     method public static int getScrollDefaultDelay();
     method public static float getScrollFriction();
     method public static int getTapTimeout();
-    method public static deprecated int getTouchSlop();
-    method public static deprecated int getWindowTouchSlop();
+    method @Deprecated public static int getTouchSlop();
+    method @Deprecated public static int getWindowTouchSlop();
     method public static long getZoomControlsTimeout();
     method public boolean hasPermanentMenuKey();
     method public boolean shouldShowMenuShortcutsWhenKeyboardPresent();
@@ -50850,54 +50748,66 @@
 
   public class ViewDebug {
     ctor public ViewDebug();
-    method public static void dumpCapturedView(java.lang.String, java.lang.Object);
-    method public static deprecated void startHierarchyTracing(java.lang.String, android.view.View);
-    method public static deprecated void startRecyclerTracing(java.lang.String, android.view.View);
-    method public static deprecated void stopHierarchyTracing();
-    method public static deprecated void stopRecyclerTracing();
-    method public static deprecated void trace(android.view.View, android.view.ViewDebug.RecyclerTraceType, int...);
-    method public static deprecated void trace(android.view.View, android.view.ViewDebug.HierarchyTraceType);
-    field public static final deprecated boolean TRACE_HIERARCHY = false;
-    field public static final deprecated boolean TRACE_RECYCLER = false;
+    method public static void dumpCapturedView(String, Object);
+    method @Deprecated public static void startHierarchyTracing(String, android.view.View);
+    method @Deprecated public static void startRecyclerTracing(String, android.view.View);
+    method @Deprecated public static void stopHierarchyTracing();
+    method @Deprecated public static void stopRecyclerTracing();
+    method @Deprecated public static void trace(android.view.View, android.view.ViewDebug.RecyclerTraceType, int...);
+    method @Deprecated public static void trace(android.view.View, android.view.ViewDebug.HierarchyTraceType);
+    field @Deprecated public static final boolean TRACE_HIERARCHY = false;
+    field @Deprecated public static final boolean TRACE_RECYCLER = false;
   }
 
-  public static abstract class ViewDebug.CapturedViewProperty implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public static @interface ViewDebug.CapturedViewProperty {
+    method public abstract boolean retrieveReturn() default false;
   }
 
-  public static abstract class ViewDebug.ExportedProperty implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public static @interface ViewDebug.ExportedProperty {
+    method public abstract String category() default "";
+    method public abstract boolean deepExport() default false;
+    method public abstract android.view.ViewDebug.FlagToString[] flagMapping() default {};
+    method public abstract boolean formatToHexString() default false;
+    method public abstract boolean hasAdjacentMapping() default false;
+    method public abstract android.view.ViewDebug.IntToString[] indexMapping() default {};
+    method public abstract android.view.ViewDebug.IntToString[] mapping() default {};
+    method public abstract String prefix() default "";
+    method public abstract boolean resolveId() default false;
   }
 
-  public static abstract class ViewDebug.FlagToString implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public static @interface ViewDebug.FlagToString {
+    method public abstract int equals();
+    method public abstract int mask();
+    method public abstract String name();
+    method public abstract boolean outputIf() default true;
   }
 
-  public static final deprecated class ViewDebug.HierarchyTraceType extends java.lang.Enum {
-    method public static android.view.ViewDebug.HierarchyTraceType valueOf(java.lang.String);
-    method public static final android.view.ViewDebug.HierarchyTraceType[] values();
-    enum_constant public static final android.view.ViewDebug.HierarchyTraceType BUILD_CACHE;
-    enum_constant public static final android.view.ViewDebug.HierarchyTraceType DRAW;
-    enum_constant public static final android.view.ViewDebug.HierarchyTraceType INVALIDATE;
-    enum_constant public static final android.view.ViewDebug.HierarchyTraceType INVALIDATE_CHILD;
-    enum_constant public static final android.view.ViewDebug.HierarchyTraceType INVALIDATE_CHILD_IN_PARENT;
-    enum_constant public static final android.view.ViewDebug.HierarchyTraceType ON_LAYOUT;
-    enum_constant public static final android.view.ViewDebug.HierarchyTraceType ON_MEASURE;
-    enum_constant public static final android.view.ViewDebug.HierarchyTraceType REQUEST_LAYOUT;
+  @Deprecated public enum ViewDebug.HierarchyTraceType {
+    enum_constant @Deprecated public static final android.view.ViewDebug.HierarchyTraceType BUILD_CACHE;
+    enum_constant @Deprecated public static final android.view.ViewDebug.HierarchyTraceType DRAW;
+    enum_constant @Deprecated public static final android.view.ViewDebug.HierarchyTraceType INVALIDATE;
+    enum_constant @Deprecated public static final android.view.ViewDebug.HierarchyTraceType INVALIDATE_CHILD;
+    enum_constant @Deprecated public static final android.view.ViewDebug.HierarchyTraceType INVALIDATE_CHILD_IN_PARENT;
+    enum_constant @Deprecated public static final android.view.ViewDebug.HierarchyTraceType ON_LAYOUT;
+    enum_constant @Deprecated public static final android.view.ViewDebug.HierarchyTraceType ON_MEASURE;
+    enum_constant @Deprecated public static final android.view.ViewDebug.HierarchyTraceType REQUEST_LAYOUT;
   }
 
-  public static abstract class ViewDebug.IntToString implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public static @interface ViewDebug.IntToString {
+    method public abstract int from();
+    method public abstract String to();
   }
 
-  public static final deprecated class ViewDebug.RecyclerTraceType extends java.lang.Enum {
-    method public static android.view.ViewDebug.RecyclerTraceType valueOf(java.lang.String);
-    method public static final android.view.ViewDebug.RecyclerTraceType[] values();
-    enum_constant public static final android.view.ViewDebug.RecyclerTraceType BIND_VIEW;
-    enum_constant public static final android.view.ViewDebug.RecyclerTraceType MOVE_FROM_ACTIVE_TO_SCRAP_HEAP;
-    enum_constant public static final android.view.ViewDebug.RecyclerTraceType MOVE_TO_SCRAP_HEAP;
-    enum_constant public static final android.view.ViewDebug.RecyclerTraceType NEW_VIEW;
-    enum_constant public static final android.view.ViewDebug.RecyclerTraceType RECYCLE_FROM_ACTIVE_HEAP;
-    enum_constant public static final android.view.ViewDebug.RecyclerTraceType RECYCLE_FROM_SCRAP_HEAP;
+  @Deprecated public enum ViewDebug.RecyclerTraceType {
+    enum_constant @Deprecated public static final android.view.ViewDebug.RecyclerTraceType BIND_VIEW;
+    enum_constant @Deprecated public static final android.view.ViewDebug.RecyclerTraceType MOVE_FROM_ACTIVE_TO_SCRAP_HEAP;
+    enum_constant @Deprecated public static final android.view.ViewDebug.RecyclerTraceType MOVE_TO_SCRAP_HEAP;
+    enum_constant @Deprecated public static final android.view.ViewDebug.RecyclerTraceType NEW_VIEW;
+    enum_constant @Deprecated public static final android.view.ViewDebug.RecyclerTraceType RECYCLE_FROM_ACTIVE_HEAP;
+    enum_constant @Deprecated public static final android.view.ViewDebug.RecyclerTraceType RECYCLE_FROM_SCRAP_HEAP;
   }
 
-  public abstract class ViewGroup extends android.view.View implements android.view.ViewManager android.view.ViewParent {
+  @UiThread public abstract class ViewGroup extends android.view.View implements android.view.ViewManager android.view.ViewParent {
     ctor public ViewGroup(android.content.Context);
     ctor public ViewGroup(android.content.Context, android.util.AttributeSet);
     ctor public ViewGroup(android.content.Context, android.util.AttributeSet, int);
@@ -50943,9 +50853,9 @@
     method public static int getChildMeasureSpec(int, int, int);
     method protected boolean getChildStaticTransformation(android.view.View, android.view.animation.Transformation);
     method public boolean getChildVisibleRect(android.view.View, android.graphics.Rect, android.graphics.Point);
-    method public boolean getClipChildren();
-    method public boolean getClipToPadding();
-    method public int getDescendantFocusability();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public boolean getClipChildren();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") public boolean getClipToPadding();
+    method @android.view.ViewDebug.ExportedProperty(category="focus", mapping={@android.view.ViewDebug.IntToString(from=android.view.ViewGroup.FOCUS_BEFORE_DESCENDANTS, to="FOCUS_BEFORE_DESCENDANTS"), @android.view.ViewDebug.IntToString(from=android.view.ViewGroup.FOCUS_AFTER_DESCENDANTS, to="FOCUS_AFTER_DESCENDANTS"), @android.view.ViewDebug.IntToString(from=android.view.ViewGroup.FOCUS_BLOCK_DESCENDANTS, to="FOCUS_BLOCK_DESCENDANTS")}) public int getDescendantFocusability();
     method public android.view.View getFocusedChild();
     method public android.view.animation.LayoutAnimationController getLayoutAnimation();
     method public android.view.animation.Animation.AnimationListener getLayoutAnimationListener();
@@ -50953,15 +50863,15 @@
     method public android.animation.LayoutTransition getLayoutTransition();
     method public int getNestedScrollAxes();
     method public android.view.ViewGroupOverlay getOverlay();
-    method public deprecated int getPersistentDrawingCache();
-    method public boolean getTouchscreenBlocksFocus();
+    method @Deprecated @android.view.ViewDebug.ExportedProperty(category="drawing", mapping={@android.view.ViewDebug.IntToString(from=android.view.ViewGroup.PERSISTENT_NO_CACHE, to="NONE"), @android.view.ViewDebug.IntToString(from=android.view.ViewGroup.PERSISTENT_ANIMATION_CACHE, to="ANIMATION"), @android.view.ViewDebug.IntToString(from=android.view.ViewGroup.PERSISTENT_SCROLLING_CACHE, to="SCROLLING"), @android.view.ViewDebug.IntToString(from=android.view.ViewGroup.PERSISTENT_ALL_CACHES, to="ALL")}) public int getPersistentDrawingCache();
+    method @android.view.ViewDebug.ExportedProperty(category="focus") public boolean getTouchscreenBlocksFocus();
     method public int indexOfChild(android.view.View);
-    method public final deprecated void invalidateChild(android.view.View, android.graphics.Rect);
-    method public deprecated android.view.ViewParent invalidateChildInParent(int[], android.graphics.Rect);
-    method public deprecated boolean isAlwaysDrawnWithCacheEnabled();
-    method public deprecated boolean isAnimationCacheEnabled();
-    method protected boolean isChildrenDrawingOrderEnabled();
-    method protected deprecated boolean isChildrenDrawnWithCacheEnabled();
+    method @Deprecated public final void invalidateChild(android.view.View, android.graphics.Rect);
+    method @Deprecated public android.view.ViewParent invalidateChildInParent(int[], android.graphics.Rect);
+    method @Deprecated public boolean isAlwaysDrawnWithCacheEnabled();
+    method @Deprecated public boolean isAnimationCacheEnabled();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") protected boolean isChildrenDrawingOrderEnabled();
+    method @Deprecated protected boolean isChildrenDrawnWithCacheEnabled();
     method public boolean isLayoutSuppressed();
     method public boolean isMotionEventSplittingEnabled();
     method public boolean isTransitionGroup();
@@ -51003,11 +50913,11 @@
     method public void requestTransparentRegion(android.view.View);
     method public void scheduleLayoutAnimation();
     method public void setAddStatesFromChildren(boolean);
-    method public deprecated void setAlwaysDrawnWithCacheEnabled(boolean);
-    method public deprecated void setAnimationCacheEnabled(boolean);
-    method protected deprecated void setChildrenDrawingCacheEnabled(boolean);
+    method @Deprecated public void setAlwaysDrawnWithCacheEnabled(boolean);
+    method @Deprecated public void setAnimationCacheEnabled(boolean);
+    method @Deprecated protected void setChildrenDrawingCacheEnabled(boolean);
     method protected void setChildrenDrawingOrderEnabled(boolean);
-    method protected deprecated void setChildrenDrawnWithCacheEnabled(boolean);
+    method @Deprecated protected void setChildrenDrawnWithCacheEnabled(boolean);
     method public void setClipChildren(boolean);
     method public void setClipToPadding(boolean);
     method public void setDescendantFocusability(int);
@@ -51017,7 +50927,7 @@
     method public void setLayoutTransition(android.animation.LayoutTransition);
     method public void setMotionEventSplittingEnabled(boolean);
     method public void setOnHierarchyChangeListener(android.view.ViewGroup.OnHierarchyChangeListener);
-    method public deprecated void setPersistentDrawingCache(int);
+    method @Deprecated public void setPersistentDrawingCache(int);
     method protected void setStaticTransformationsEnabled(boolean);
     method public void setTouchscreenBlocksFocus(boolean);
     method public void setTransitionGroup(boolean);
@@ -51036,10 +50946,10 @@
     field public static final int FOCUS_BLOCK_DESCENDANTS = 393216; // 0x60000
     field public static final int LAYOUT_MODE_CLIP_BOUNDS = 0; // 0x0
     field public static final int LAYOUT_MODE_OPTICAL_BOUNDS = 1; // 0x1
-    field public static final deprecated int PERSISTENT_ALL_CACHES = 3; // 0x3
-    field public static final deprecated int PERSISTENT_ANIMATION_CACHE = 1; // 0x1
-    field public static final deprecated int PERSISTENT_NO_CACHE = 0; // 0x0
-    field public static final deprecated int PERSISTENT_SCROLLING_CACHE = 2; // 0x2
+    field @Deprecated public static final int PERSISTENT_ALL_CACHES = 3; // 0x3
+    field @Deprecated public static final int PERSISTENT_ANIMATION_CACHE = 1; // 0x1
+    field @Deprecated public static final int PERSISTENT_NO_CACHE = 0; // 0x0
+    field @Deprecated public static final int PERSISTENT_SCROLLING_CACHE = 2; // 0x2
   }
 
   public static class ViewGroup.LayoutParams {
@@ -51048,12 +50958,12 @@
     ctor public ViewGroup.LayoutParams(android.view.ViewGroup.LayoutParams);
     method public void resolveLayoutDirection(int);
     method protected void setBaseAttributes(android.content.res.TypedArray, int, int);
-    field public static final deprecated int FILL_PARENT = -1; // 0xffffffff
+    field @Deprecated public static final int FILL_PARENT = -1; // 0xffffffff
     field public static final int MATCH_PARENT = -1; // 0xffffffff
     field public static final int WRAP_CONTENT = -2; // 0xfffffffe
-    field public int height;
+    field @android.view.ViewDebug.ExportedProperty(category="layout", mapping={@android.view.ViewDebug.IntToString(from=android.view.ViewGroup.LayoutParams.MATCH_PARENT, to="MATCH_PARENT"), @android.view.ViewDebug.IntToString(from=android.view.ViewGroup.LayoutParams.WRAP_CONTENT, to="WRAP_CONTENT")}) public int height;
     field public android.view.animation.LayoutAnimationController.AnimationParameters layoutAnimationParameters;
-    field public int width;
+    field @android.view.ViewDebug.ExportedProperty(category="layout", mapping={@android.view.ViewDebug.IntToString(from=android.view.ViewGroup.LayoutParams.MATCH_PARENT, to="MATCH_PARENT"), @android.view.ViewDebug.IntToString(from=android.view.ViewGroup.LayoutParams.WRAP_CONTENT, to="WRAP_CONTENT")}) public int width;
   }
 
   public static class ViewGroup.MarginLayoutParams extends android.view.ViewGroup.LayoutParams {
@@ -51069,26 +50979,26 @@
     method public void setMarginEnd(int);
     method public void setMarginStart(int);
     method public void setMargins(int, int, int, int);
-    field public int bottomMargin;
-    field public int leftMargin;
-    field public int rightMargin;
-    field public int topMargin;
+    field @android.view.ViewDebug.ExportedProperty(category="layout") public int bottomMargin;
+    field @android.view.ViewDebug.ExportedProperty(category="layout") public int leftMargin;
+    field @android.view.ViewDebug.ExportedProperty(category="layout") public int rightMargin;
+    field @android.view.ViewDebug.ExportedProperty(category="layout") public int topMargin;
   }
 
-  public static abstract interface ViewGroup.OnHierarchyChangeListener {
-    method public abstract void onChildViewAdded(android.view.View, android.view.View);
-    method public abstract void onChildViewRemoved(android.view.View, android.view.View);
+  public static interface ViewGroup.OnHierarchyChangeListener {
+    method public void onChildViewAdded(android.view.View, android.view.View);
+    method public void onChildViewRemoved(android.view.View, android.view.View);
   }
 
   public class ViewGroupOverlay extends android.view.ViewOverlay {
-    method public void add(android.view.View);
-    method public void remove(android.view.View);
+    method public void add(@NonNull android.view.View);
+    method public void remove(@NonNull android.view.View);
   }
 
-  public abstract interface ViewManager {
-    method public abstract void addView(android.view.View, android.view.ViewGroup.LayoutParams);
-    method public abstract void removeView(android.view.View);
-    method public abstract void updateViewLayout(android.view.View, android.view.ViewGroup.LayoutParams);
+  public interface ViewManager {
+    method public void addView(android.view.View, android.view.ViewGroup.LayoutParams);
+    method public void removeView(android.view.View);
+    method public void updateViewLayout(android.view.View, android.view.ViewGroup.LayoutParams);
   }
 
   public abstract class ViewOutlineProvider {
@@ -51100,57 +51010,57 @@
   }
 
   public class ViewOverlay {
-    method public void add(android.graphics.drawable.Drawable);
+    method public void add(@NonNull android.graphics.drawable.Drawable);
     method public void clear();
-    method public void remove(android.graphics.drawable.Drawable);
+    method public void remove(@NonNull android.graphics.drawable.Drawable);
   }
 
-  public abstract interface ViewParent {
-    method public abstract void bringChildToFront(android.view.View);
-    method public abstract boolean canResolveLayoutDirection();
-    method public abstract boolean canResolveTextAlignment();
-    method public abstract boolean canResolveTextDirection();
-    method public abstract void childDrawableStateChanged(android.view.View);
-    method public abstract void childHasTransientStateChanged(android.view.View, boolean);
-    method public abstract void clearChildFocus(android.view.View);
-    method public abstract void createContextMenu(android.view.ContextMenu);
-    method public abstract android.view.View focusSearch(android.view.View, int);
-    method public abstract void focusableViewAvailable(android.view.View);
-    method public abstract boolean getChildVisibleRect(android.view.View, android.graphics.Rect, android.graphics.Point);
-    method public abstract int getLayoutDirection();
-    method public abstract android.view.ViewParent getParent();
-    method public abstract android.view.ViewParent getParentForAccessibility();
-    method public abstract int getTextAlignment();
-    method public abstract int getTextDirection();
-    method public abstract deprecated void invalidateChild(android.view.View, android.graphics.Rect);
-    method public abstract deprecated android.view.ViewParent invalidateChildInParent(int[], android.graphics.Rect);
-    method public abstract boolean isLayoutDirectionResolved();
-    method public abstract boolean isLayoutRequested();
-    method public abstract boolean isTextAlignmentResolved();
-    method public abstract boolean isTextDirectionResolved();
-    method public abstract android.view.View keyboardNavigationClusterSearch(android.view.View, int);
-    method public abstract void notifySubtreeAccessibilityStateChanged(android.view.View, android.view.View, int);
-    method public default void onDescendantInvalidated(android.view.View, android.view.View);
-    method public abstract boolean onNestedFling(android.view.View, float, float, boolean);
-    method public abstract boolean onNestedPreFling(android.view.View, float, float);
-    method public abstract boolean onNestedPrePerformAccessibilityAction(android.view.View, int, android.os.Bundle);
-    method public abstract void onNestedPreScroll(android.view.View, int, int, int[]);
-    method public abstract void onNestedScroll(android.view.View, int, int, int, int);
-    method public abstract void onNestedScrollAccepted(android.view.View, android.view.View, int);
-    method public abstract boolean onStartNestedScroll(android.view.View, android.view.View, int);
-    method public abstract void onStopNestedScroll(android.view.View);
-    method public abstract void recomputeViewAttributes(android.view.View);
-    method public abstract void requestChildFocus(android.view.View, android.view.View);
-    method public abstract boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean);
-    method public abstract void requestDisallowInterceptTouchEvent(boolean);
-    method public abstract void requestFitSystemWindows();
-    method public abstract void requestLayout();
-    method public abstract boolean requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
-    method public abstract void requestTransparentRegion(android.view.View);
-    method public abstract boolean showContextMenuForChild(android.view.View);
-    method public abstract boolean showContextMenuForChild(android.view.View, float, float);
-    method public abstract android.view.ActionMode startActionModeForChild(android.view.View, android.view.ActionMode.Callback);
-    method public abstract android.view.ActionMode startActionModeForChild(android.view.View, android.view.ActionMode.Callback, int);
+  public interface ViewParent {
+    method public void bringChildToFront(android.view.View);
+    method public boolean canResolveLayoutDirection();
+    method public boolean canResolveTextAlignment();
+    method public boolean canResolveTextDirection();
+    method public void childDrawableStateChanged(android.view.View);
+    method public void childHasTransientStateChanged(android.view.View, boolean);
+    method public void clearChildFocus(android.view.View);
+    method public void createContextMenu(android.view.ContextMenu);
+    method public android.view.View focusSearch(android.view.View, int);
+    method public void focusableViewAvailable(android.view.View);
+    method public boolean getChildVisibleRect(android.view.View, android.graphics.Rect, android.graphics.Point);
+    method public int getLayoutDirection();
+    method public android.view.ViewParent getParent();
+    method public android.view.ViewParent getParentForAccessibility();
+    method public int getTextAlignment();
+    method public int getTextDirection();
+    method @Deprecated public void invalidateChild(android.view.View, android.graphics.Rect);
+    method @Deprecated public android.view.ViewParent invalidateChildInParent(int[], android.graphics.Rect);
+    method public boolean isLayoutDirectionResolved();
+    method public boolean isLayoutRequested();
+    method public boolean isTextAlignmentResolved();
+    method public boolean isTextDirectionResolved();
+    method public android.view.View keyboardNavigationClusterSearch(android.view.View, int);
+    method public void notifySubtreeAccessibilityStateChanged(android.view.View, @NonNull android.view.View, int);
+    method public default void onDescendantInvalidated(@NonNull android.view.View, @NonNull android.view.View);
+    method public boolean onNestedFling(android.view.View, float, float, boolean);
+    method public boolean onNestedPreFling(android.view.View, float, float);
+    method public boolean onNestedPrePerformAccessibilityAction(android.view.View, int, android.os.Bundle);
+    method public void onNestedPreScroll(android.view.View, int, int, int[]);
+    method public void onNestedScroll(android.view.View, int, int, int, int);
+    method public void onNestedScrollAccepted(android.view.View, android.view.View, int);
+    method public boolean onStartNestedScroll(android.view.View, android.view.View, int);
+    method public void onStopNestedScroll(android.view.View);
+    method public void recomputeViewAttributes(android.view.View);
+    method public void requestChildFocus(android.view.View, android.view.View);
+    method public boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean);
+    method public void requestDisallowInterceptTouchEvent(boolean);
+    method public void requestFitSystemWindows();
+    method public void requestLayout();
+    method public boolean requestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+    method public void requestTransparentRegion(android.view.View);
+    method public boolean showContextMenuForChild(android.view.View);
+    method public boolean showContextMenuForChild(android.view.View, float, float);
+    method public android.view.ActionMode startActionModeForChild(android.view.View, android.view.ActionMode.Callback);
+    method public android.view.ActionMode startActionModeForChild(android.view.View, android.view.ActionMode.Callback, int);
   }
 
   public class ViewPropertyAnimator {
@@ -51182,9 +51092,9 @@
     method public android.view.ViewPropertyAnimator translationYBy(float);
     method public android.view.ViewPropertyAnimator translationZ(float);
     method public android.view.ViewPropertyAnimator translationZBy(float);
-    method public android.view.ViewPropertyAnimator withEndAction(java.lang.Runnable);
+    method public android.view.ViewPropertyAnimator withEndAction(Runnable);
     method public android.view.ViewPropertyAnimator withLayer();
-    method public android.view.ViewPropertyAnimator withStartAction(java.lang.Runnable);
+    method public android.view.ViewPropertyAnimator withStartAction(Runnable);
     method public android.view.ViewPropertyAnimator x(float);
     method public android.view.ViewPropertyAnimator xBy(float);
     method public android.view.ViewPropertyAnimator y(float);
@@ -51198,31 +51108,31 @@
     method public abstract int addChildCount(int);
     method public abstract void asyncCommit();
     method public abstract android.view.ViewStructure asyncNewChild(int);
-    method public abstract android.view.autofill.AutofillId getAutofillId();
+    method @Nullable public abstract android.view.autofill.AutofillId getAutofillId();
     method public abstract int getChildCount();
     method public abstract android.os.Bundle getExtras();
-    method public abstract java.lang.CharSequence getHint();
-    method public abstract java.lang.CharSequence getText();
+    method public abstract CharSequence getHint();
+    method public abstract CharSequence getText();
     method public abstract int getTextSelectionEnd();
     method public abstract int getTextSelectionStart();
     method public abstract boolean hasExtras();
     method public abstract android.view.ViewStructure newChild(int);
-    method public abstract android.view.ViewStructure.HtmlInfo.Builder newHtmlInfoBuilder(java.lang.String);
+    method public abstract android.view.ViewStructure.HtmlInfo.Builder newHtmlInfoBuilder(@NonNull String);
     method public abstract void setAccessibilityFocused(boolean);
     method public abstract void setActivated(boolean);
     method public abstract void setAlpha(float);
-    method public abstract void setAutofillHints(java.lang.String[]);
-    method public abstract void setAutofillId(android.view.autofill.AutofillId);
-    method public abstract void setAutofillId(android.view.autofill.AutofillId, int);
-    method public abstract void setAutofillOptions(java.lang.CharSequence[]);
+    method public abstract void setAutofillHints(@Nullable String[]);
+    method public abstract void setAutofillId(@NonNull android.view.autofill.AutofillId);
+    method public abstract void setAutofillId(@NonNull android.view.autofill.AutofillId, int);
+    method public abstract void setAutofillOptions(CharSequence[]);
     method public abstract void setAutofillType(int);
     method public abstract void setAutofillValue(android.view.autofill.AutofillValue);
     method public abstract void setCheckable(boolean);
     method public abstract void setChecked(boolean);
     method public abstract void setChildCount(int);
-    method public abstract void setClassName(java.lang.String);
+    method public abstract void setClassName(String);
     method public abstract void setClickable(boolean);
-    method public abstract void setContentDescription(java.lang.CharSequence);
+    method public abstract void setContentDescription(CharSequence);
     method public abstract void setContextClickable(boolean);
     method public abstract void setDataIsSensitive(boolean);
     method public abstract void setDimens(int, int, int, int, int, int);
@@ -51230,9 +51140,9 @@
     method public abstract void setEnabled(boolean);
     method public abstract void setFocusable(boolean);
     method public abstract void setFocused(boolean);
-    method public abstract void setHint(java.lang.CharSequence);
-    method public abstract void setHtmlInfo(android.view.ViewStructure.HtmlInfo);
-    method public abstract void setId(int, java.lang.String, java.lang.String, java.lang.String);
+    method public abstract void setHint(CharSequence);
+    method public abstract void setHtmlInfo(@NonNull android.view.ViewStructure.HtmlInfo);
+    method public abstract void setId(int, String, String, String);
     method public void setImportantForAutofill(int);
     method public abstract void setInputType(int);
     method public abstract void setLocaleList(android.os.LocaleList);
@@ -51242,46 +51152,46 @@
     method public void setMinTextEms(int);
     method public abstract void setOpaque(boolean);
     method public abstract void setSelected(boolean);
-    method public abstract void setText(java.lang.CharSequence);
-    method public abstract void setText(java.lang.CharSequence, int, int);
-    method public void setTextIdEntry(java.lang.String);
+    method public abstract void setText(CharSequence);
+    method public abstract void setText(CharSequence, int, int);
+    method public void setTextIdEntry(@NonNull String);
     method public abstract void setTextLines(int[], int[]);
     method public abstract void setTextStyle(float, int, int, int);
     method public abstract void setTransformation(android.graphics.Matrix);
     method public abstract void setVisibility(int);
-    method public abstract void setWebDomain(java.lang.String);
+    method public abstract void setWebDomain(@Nullable String);
   }
 
-  public static abstract class ViewStructure.HtmlInfo {
+  public abstract static class ViewStructure.HtmlInfo {
     ctor public ViewStructure.HtmlInfo();
-    method public abstract java.util.List<android.util.Pair<java.lang.String, java.lang.String>> getAttributes();
-    method public abstract java.lang.String getTag();
+    method @Nullable public abstract java.util.List<android.util.Pair<java.lang.String,java.lang.String>> getAttributes();
+    method @NonNull public abstract String getTag();
   }
 
-  public static abstract class ViewStructure.HtmlInfo.Builder {
+  public abstract static class ViewStructure.HtmlInfo.Builder {
     ctor public ViewStructure.HtmlInfo.Builder();
-    method public abstract android.view.ViewStructure.HtmlInfo.Builder addAttribute(java.lang.String, java.lang.String);
+    method public abstract android.view.ViewStructure.HtmlInfo.Builder addAttribute(@NonNull String, @NonNull String);
     method public abstract android.view.ViewStructure.HtmlInfo build();
   }
 
-  public final class ViewStub extends android.view.View {
+  @android.widget.RemoteViews.RemoteView public final class ViewStub extends android.view.View {
     ctor public ViewStub(android.content.Context);
-    ctor public ViewStub(android.content.Context, int);
+    ctor public ViewStub(android.content.Context, @LayoutRes int);
     ctor public ViewStub(android.content.Context, android.util.AttributeSet);
     ctor public ViewStub(android.content.Context, android.util.AttributeSet, int);
     ctor public ViewStub(android.content.Context, android.util.AttributeSet, int, int);
-    method public int getInflatedId();
+    method @IdRes public int getInflatedId();
     method public android.view.LayoutInflater getLayoutInflater();
-    method public int getLayoutResource();
+    method @LayoutRes public int getLayoutResource();
     method public android.view.View inflate();
-    method public void setInflatedId(int);
+    method public void setInflatedId(@IdRes int);
     method public void setLayoutInflater(android.view.LayoutInflater);
-    method public void setLayoutResource(int);
+    method public void setLayoutResource(@LayoutRes int);
     method public void setOnInflateListener(android.view.ViewStub.OnInflateListener);
   }
 
-  public static abstract interface ViewStub.OnInflateListener {
-    method public abstract void onInflate(android.view.ViewStub, android.view.View);
+  public static interface ViewStub.OnInflateListener {
+    method public void onInflate(android.view.ViewStub, android.view.View);
   }
 
   public final class ViewTreeObserver {
@@ -51297,8 +51207,8 @@
     method public void dispatchOnGlobalLayout();
     method public boolean dispatchOnPreDraw();
     method public boolean isAlive();
-    method public void registerFrameCommitCallback(java.lang.Runnable);
-    method public deprecated void removeGlobalOnLayoutListener(android.view.ViewTreeObserver.OnGlobalLayoutListener);
+    method public void registerFrameCommitCallback(@NonNull Runnable);
+    method @Deprecated public void removeGlobalOnLayoutListener(android.view.ViewTreeObserver.OnGlobalLayoutListener);
     method public void removeOnDrawListener(android.view.ViewTreeObserver.OnDrawListener);
     method public void removeOnGlobalFocusChangeListener(android.view.ViewTreeObserver.OnGlobalFocusChangeListener);
     method public void removeOnGlobalLayoutListener(android.view.ViewTreeObserver.OnGlobalLayoutListener);
@@ -51307,51 +51217,51 @@
     method public void removeOnTouchModeChangeListener(android.view.ViewTreeObserver.OnTouchModeChangeListener);
     method public void removeOnWindowAttachListener(android.view.ViewTreeObserver.OnWindowAttachListener);
     method public void removeOnWindowFocusChangeListener(android.view.ViewTreeObserver.OnWindowFocusChangeListener);
-    method public boolean unregisterFrameCommitCallback(java.lang.Runnable);
+    method public boolean unregisterFrameCommitCallback(@NonNull Runnable);
   }
 
-  public static abstract interface ViewTreeObserver.OnDrawListener {
-    method public abstract void onDraw();
+  public static interface ViewTreeObserver.OnDrawListener {
+    method public void onDraw();
   }
 
-  public static abstract interface ViewTreeObserver.OnGlobalFocusChangeListener {
-    method public abstract void onGlobalFocusChanged(android.view.View, android.view.View);
+  public static interface ViewTreeObserver.OnGlobalFocusChangeListener {
+    method public void onGlobalFocusChanged(android.view.View, android.view.View);
   }
 
-  public static abstract interface ViewTreeObserver.OnGlobalLayoutListener {
-    method public abstract void onGlobalLayout();
+  public static interface ViewTreeObserver.OnGlobalLayoutListener {
+    method public void onGlobalLayout();
   }
 
-  public static abstract interface ViewTreeObserver.OnPreDrawListener {
-    method public abstract boolean onPreDraw();
+  public static interface ViewTreeObserver.OnPreDrawListener {
+    method public boolean onPreDraw();
   }
 
-  public static abstract interface ViewTreeObserver.OnScrollChangedListener {
-    method public abstract void onScrollChanged();
+  public static interface ViewTreeObserver.OnScrollChangedListener {
+    method public void onScrollChanged();
   }
 
-  public static abstract interface ViewTreeObserver.OnTouchModeChangeListener {
-    method public abstract void onTouchModeChanged(boolean);
+  public static interface ViewTreeObserver.OnTouchModeChangeListener {
+    method public void onTouchModeChanged(boolean);
   }
 
-  public static abstract interface ViewTreeObserver.OnWindowAttachListener {
-    method public abstract void onWindowAttached();
-    method public abstract void onWindowDetached();
+  public static interface ViewTreeObserver.OnWindowAttachListener {
+    method public void onWindowAttached();
+    method public void onWindowDetached();
   }
 
-  public static abstract interface ViewTreeObserver.OnWindowFocusChangeListener {
-    method public abstract void onWindowFocusChanged(boolean);
+  public static interface ViewTreeObserver.OnWindowFocusChangeListener {
+    method public void onWindowFocusChanged(boolean);
   }
 
   public abstract class Window {
     ctor public Window(android.content.Context);
     method public abstract void addContentView(android.view.View, android.view.ViewGroup.LayoutParams);
     method public void addFlags(int);
-    method public final void addOnFrameMetricsAvailableListener(android.view.Window.OnFrameMetricsAvailableListener, android.os.Handler);
+    method public final void addOnFrameMetricsAvailableListener(@NonNull android.view.Window.OnFrameMetricsAvailableListener, android.os.Handler);
     method public void clearFlags(int);
     method public abstract void closeAllPanels();
     method public abstract void closePanel(int);
-    method public <T extends android.view.View> T findViewById(int);
+    method public <T extends android.view.View> T findViewById(@IdRes int);
     method public boolean getAllowEnterTransitionOverlap();
     method public boolean getAllowReturnTransitionOverlap();
     method public final android.view.WindowManager.LayoutParams getAttributes();
@@ -51360,18 +51270,18 @@
     method public final android.view.Window getContainer();
     method public android.transition.Scene getContentScene();
     method public final android.content.Context getContext();
-    method public abstract android.view.View getCurrentFocus();
-    method public abstract android.view.View getDecorView();
+    method @Nullable public abstract android.view.View getCurrentFocus();
+    method @NonNull public abstract android.view.View getDecorView();
     method public static int getDefaultFeatures(android.content.Context);
     method public android.transition.Transition getEnterTransition();
     method public android.transition.Transition getExitTransition();
     method protected final int getFeatures();
     method protected final int getForcedWindowFlags();
-    method public abstract android.view.LayoutInflater getLayoutInflater();
+    method @NonNull public abstract android.view.LayoutInflater getLayoutInflater();
     method protected final int getLocalFeatures();
     method public android.media.session.MediaController getMediaController();
-    method public abstract int getNavigationBarColor();
-    method public int getNavigationBarDividerColor();
+    method @ColorInt public abstract int getNavigationBarColor();
+    method @ColorInt public int getNavigationBarDividerColor();
     method public android.transition.Transition getReenterTransition();
     method public android.transition.Transition getReturnTransition();
     method public android.transition.Transition getSharedElementEnterTransition();
@@ -51379,7 +51289,7 @@
     method public android.transition.Transition getSharedElementReenterTransition();
     method public android.transition.Transition getSharedElementReturnTransition();
     method public boolean getSharedElementsUseOverlay();
-    method public abstract int getStatusBarColor();
+    method @ColorInt public abstract int getStatusBarColor();
     method public long getTransitionBackgroundFadeDuration();
     method public android.transition.TransitionManager getTransitionManager();
     method public abstract int getVolumeControlStream();
@@ -51404,21 +51314,21 @@
     method public abstract boolean performPanelShortcut(int, int, android.view.KeyEvent, int);
     method public final void removeOnFrameMetricsAvailableListener(android.view.Window.OnFrameMetricsAvailableListener);
     method public boolean requestFeature(int);
-    method public final <T extends android.view.View> T requireViewById(int);
+    method @NonNull public final <T extends android.view.View> T requireViewById(@IdRes int);
     method public abstract void restoreHierarchyState(android.os.Bundle);
     method public abstract android.os.Bundle saveHierarchyState();
     method public void setAllowEnterTransitionOverlap(boolean);
     method public void setAllowReturnTransitionOverlap(boolean);
     method public void setAttributes(android.view.WindowManager.LayoutParams);
     method public abstract void setBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setBackgroundDrawableResource(int);
+    method public void setBackgroundDrawableResource(@DrawableRes int);
     method public void setCallback(android.view.Window.Callback);
     method public abstract void setChildDrawable(int, android.graphics.drawable.Drawable);
     method public abstract void setChildInt(int, int);
     method public void setClipToOutline(boolean);
     method public void setColorMode(int);
     method public void setContainer(android.view.Window);
-    method public abstract void setContentView(int);
+    method public abstract void setContentView(@LayoutRes int);
     method public abstract void setContentView(android.view.View);
     method public abstract void setContentView(android.view.View, android.view.ViewGroup.LayoutParams);
     method public abstract void setDecorCaptionShade(int);
@@ -51429,19 +51339,19 @@
     method public void setExitTransition(android.transition.Transition);
     method public abstract void setFeatureDrawable(int, android.graphics.drawable.Drawable);
     method public abstract void setFeatureDrawableAlpha(int, int);
-    method public abstract void setFeatureDrawableResource(int, int);
+    method public abstract void setFeatureDrawableResource(int, @DrawableRes int);
     method public abstract void setFeatureDrawableUri(int, android.net.Uri);
     method public abstract void setFeatureInt(int, int);
     method public void setFlags(int, int);
     method public void setFormat(int);
     method public void setGravity(int);
-    method public void setIcon(int);
+    method public void setIcon(@DrawableRes int);
     method public void setLayout(int, int);
     method public void setLocalFocus(boolean, boolean);
-    method public void setLogo(int);
+    method public void setLogo(@DrawableRes int);
     method public void setMediaController(android.media.session.MediaController);
-    method public abstract void setNavigationBarColor(int);
-    method public void setNavigationBarDividerColor(int);
+    method public abstract void setNavigationBarColor(@ColorInt int);
+    method public void setNavigationBarDividerColor(@ColorInt int);
     method public void setReenterTransition(android.transition.Transition);
     method public abstract void setResizingCaptionDrawable(android.graphics.drawable.Drawable);
     method public final void setRestrictedCaptionAreaListener(android.view.Window.OnRestrictedCaptionAreaChangedListener);
@@ -51452,19 +51362,19 @@
     method public void setSharedElementReturnTransition(android.transition.Transition);
     method public void setSharedElementsUseOverlay(boolean);
     method public void setSoftInputMode(int);
-    method public abstract void setStatusBarColor(int);
+    method public abstract void setStatusBarColor(@ColorInt int);
     method public void setSustainedPerformanceMode(boolean);
-    method public abstract void setTitle(java.lang.CharSequence);
-    method public abstract deprecated void setTitleColor(int);
+    method public abstract void setTitle(CharSequence);
+    method @Deprecated public abstract void setTitleColor(@ColorInt int);
     method public void setTransitionBackgroundFadeDuration(long);
     method public void setTransitionManager(android.transition.TransitionManager);
     method public void setType(int);
     method public void setUiOptions(int);
     method public void setUiOptions(int, int);
     method public abstract void setVolumeControlStream(int);
-    method public void setWindowAnimations(int);
-    method public void setWindowManager(android.view.WindowManager, android.os.IBinder, java.lang.String);
-    method public void setWindowManager(android.view.WindowManager, android.os.IBinder, java.lang.String, boolean);
+    method public void setWindowAnimations(@StyleRes int);
+    method public void setWindowManager(android.view.WindowManager, android.os.IBinder, String);
+    method public void setWindowManager(android.view.WindowManager, android.os.IBinder, String, boolean);
     method public abstract boolean superDispatchGenericMotionEvent(android.view.MotionEvent);
     method public abstract boolean superDispatchKeyEvent(android.view.KeyEvent);
     method public abstract boolean superDispatchKeyShortcutEvent(android.view.KeyEvent);
@@ -51477,7 +51387,7 @@
     field public static final int DECOR_CAPTION_SHADE_AUTO = 0; // 0x0
     field public static final int DECOR_CAPTION_SHADE_DARK = 2; // 0x2
     field public static final int DECOR_CAPTION_SHADE_LIGHT = 1; // 0x1
-    field protected static final deprecated int DEFAULT_FEATURES = 65; // 0x41
+    field @Deprecated protected static final int DEFAULT_FEATURES = 65; // 0x41
     field public static final int FEATURE_ACTION_BAR = 8; // 0x8
     field public static final int FEATURE_ACTION_BAR_OVERLAY = 9; // 0x9
     field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
@@ -51485,60 +51395,60 @@
     field public static final int FEATURE_CONTENT_TRANSITIONS = 12; // 0xc
     field public static final int FEATURE_CONTEXT_MENU = 6; // 0x6
     field public static final int FEATURE_CUSTOM_TITLE = 7; // 0x7
-    field public static final deprecated int FEATURE_INDETERMINATE_PROGRESS = 5; // 0x5
+    field @Deprecated public static final int FEATURE_INDETERMINATE_PROGRESS = 5; // 0x5
     field public static final int FEATURE_LEFT_ICON = 3; // 0x3
     field public static final int FEATURE_NO_TITLE = 1; // 0x1
     field public static final int FEATURE_OPTIONS_PANEL = 0; // 0x0
-    field public static final deprecated int FEATURE_PROGRESS = 2; // 0x2
+    field @Deprecated public static final int FEATURE_PROGRESS = 2; // 0x2
     field public static final int FEATURE_RIGHT_ICON = 4; // 0x4
     field public static final int FEATURE_SWIPE_TO_DISMISS = 11; // 0xb
     field public static final int ID_ANDROID_CONTENT = 16908290; // 0x1020002
-    field public static final java.lang.String NAVIGATION_BAR_BACKGROUND_TRANSITION_NAME = "android:navigation:background";
-    field public static final deprecated int PROGRESS_END = 10000; // 0x2710
-    field public static final deprecated int PROGRESS_INDETERMINATE_OFF = -4; // 0xfffffffc
-    field public static final deprecated int PROGRESS_INDETERMINATE_ON = -3; // 0xfffffffd
-    field public static final deprecated int PROGRESS_SECONDARY_END = 30000; // 0x7530
-    field public static final deprecated int PROGRESS_SECONDARY_START = 20000; // 0x4e20
-    field public static final deprecated int PROGRESS_START = 0; // 0x0
-    field public static final deprecated int PROGRESS_VISIBILITY_OFF = -2; // 0xfffffffe
-    field public static final deprecated int PROGRESS_VISIBILITY_ON = -1; // 0xffffffff
-    field public static final java.lang.String STATUS_BAR_BACKGROUND_TRANSITION_NAME = "android:status:background";
+    field public static final String NAVIGATION_BAR_BACKGROUND_TRANSITION_NAME = "android:navigation:background";
+    field @Deprecated public static final int PROGRESS_END = 10000; // 0x2710
+    field @Deprecated public static final int PROGRESS_INDETERMINATE_OFF = -4; // 0xfffffffc
+    field @Deprecated public static final int PROGRESS_INDETERMINATE_ON = -3; // 0xfffffffd
+    field @Deprecated public static final int PROGRESS_SECONDARY_END = 30000; // 0x7530
+    field @Deprecated public static final int PROGRESS_SECONDARY_START = 20000; // 0x4e20
+    field @Deprecated public static final int PROGRESS_START = 0; // 0x0
+    field @Deprecated public static final int PROGRESS_VISIBILITY_OFF = -2; // 0xfffffffe
+    field @Deprecated public static final int PROGRESS_VISIBILITY_ON = -1; // 0xffffffff
+    field public static final String STATUS_BAR_BACKGROUND_TRANSITION_NAME = "android:status:background";
   }
 
-  public static abstract interface Window.Callback {
-    method public abstract boolean dispatchGenericMotionEvent(android.view.MotionEvent);
-    method public abstract boolean dispatchKeyEvent(android.view.KeyEvent);
-    method public abstract boolean dispatchKeyShortcutEvent(android.view.KeyEvent);
-    method public abstract boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
-    method public abstract boolean dispatchTouchEvent(android.view.MotionEvent);
-    method public abstract boolean dispatchTrackballEvent(android.view.MotionEvent);
-    method public abstract void onActionModeFinished(android.view.ActionMode);
-    method public abstract void onActionModeStarted(android.view.ActionMode);
-    method public abstract void onAttachedToWindow();
-    method public abstract void onContentChanged();
-    method public abstract boolean onCreatePanelMenu(int, android.view.Menu);
-    method public abstract android.view.View onCreatePanelView(int);
-    method public abstract void onDetachedFromWindow();
-    method public abstract boolean onMenuItemSelected(int, android.view.MenuItem);
-    method public abstract boolean onMenuOpened(int, android.view.Menu);
-    method public abstract void onPanelClosed(int, android.view.Menu);
+  public static interface Window.Callback {
+    method public boolean dispatchGenericMotionEvent(android.view.MotionEvent);
+    method public boolean dispatchKeyEvent(android.view.KeyEvent);
+    method public boolean dispatchKeyShortcutEvent(android.view.KeyEvent);
+    method public boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
+    method public boolean dispatchTouchEvent(android.view.MotionEvent);
+    method public boolean dispatchTrackballEvent(android.view.MotionEvent);
+    method public void onActionModeFinished(android.view.ActionMode);
+    method public void onActionModeStarted(android.view.ActionMode);
+    method public void onAttachedToWindow();
+    method public void onContentChanged();
+    method public boolean onCreatePanelMenu(int, @NonNull android.view.Menu);
+    method @Nullable public android.view.View onCreatePanelView(int);
+    method public void onDetachedFromWindow();
+    method public boolean onMenuItemSelected(int, @NonNull android.view.MenuItem);
+    method public boolean onMenuOpened(int, @NonNull android.view.Menu);
+    method public void onPanelClosed(int, @NonNull android.view.Menu);
     method public default void onPointerCaptureChanged(boolean);
-    method public abstract boolean onPreparePanel(int, android.view.View, android.view.Menu);
-    method public default void onProvideKeyboardShortcuts(java.util.List<android.view.KeyboardShortcutGroup>, android.view.Menu, int);
-    method public abstract boolean onSearchRequested();
-    method public abstract boolean onSearchRequested(android.view.SearchEvent);
-    method public abstract void onWindowAttributesChanged(android.view.WindowManager.LayoutParams);
-    method public abstract void onWindowFocusChanged(boolean);
-    method public abstract android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback);
-    method public abstract android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback, int);
+    method public boolean onPreparePanel(int, @Nullable android.view.View, @NonNull android.view.Menu);
+    method public default void onProvideKeyboardShortcuts(java.util.List<android.view.KeyboardShortcutGroup>, @Nullable android.view.Menu, int);
+    method public boolean onSearchRequested();
+    method public boolean onSearchRequested(android.view.SearchEvent);
+    method public void onWindowAttributesChanged(android.view.WindowManager.LayoutParams);
+    method public void onWindowFocusChanged(boolean);
+    method @Nullable public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback);
+    method @Nullable public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback, int);
   }
 
-  public static abstract interface Window.OnFrameMetricsAvailableListener {
-    method public abstract void onFrameMetricsAvailable(android.view.Window, android.view.FrameMetrics, int);
+  public static interface Window.OnFrameMetricsAvailableListener {
+    method public void onFrameMetricsAvailable(android.view.Window, android.view.FrameMetrics, int);
   }
 
-  public static abstract interface Window.OnRestrictedCaptionAreaChangedListener {
-    method public abstract void onRestrictedCaptionAreaChanged(android.graphics.Rect);
+  public static interface Window.OnRestrictedCaptionAreaChangedListener {
+    method public void onRestrictedCaptionAreaChanged(android.graphics.Rect);
   }
 
   public final class WindowAnimationFrameStats extends android.view.FrameStats implements android.os.Parcelable {
@@ -51564,7 +51474,7 @@
     field public static final android.os.Parcelable.Creator<android.view.WindowId> CREATOR;
   }
 
-  public static abstract class WindowId.FocusObserver {
+  public abstract static class WindowId.FocusObserver {
     ctor public WindowId.FocusObserver();
     method public abstract void onFocusGained(android.view.WindowId);
     method public abstract void onFocusLost(android.view.WindowId);
@@ -51572,52 +51482,52 @@
 
   public final class WindowInsets {
     ctor public WindowInsets(android.view.WindowInsets);
-    method public android.view.WindowInsets consumeDisplayCutout();
-    method public android.view.WindowInsets consumeStableInsets();
-    method public android.view.WindowInsets consumeSystemWindowInsets();
-    method public android.view.DisplayCutout getDisplayCutout();
+    method @NonNull public android.view.WindowInsets consumeDisplayCutout();
+    method @NonNull public android.view.WindowInsets consumeStableInsets();
+    method @NonNull public android.view.WindowInsets consumeSystemWindowInsets();
+    method @Nullable public android.view.DisplayCutout getDisplayCutout();
     method public int getStableInsetBottom();
     method public int getStableInsetLeft();
     method public int getStableInsetRight();
     method public int getStableInsetTop();
-    method public android.graphics.Insets getStableInsets();
+    method @NonNull public android.graphics.Insets getStableInsets();
     method public int getSystemWindowInsetBottom();
     method public int getSystemWindowInsetLeft();
     method public int getSystemWindowInsetRight();
     method public int getSystemWindowInsetTop();
-    method public android.graphics.Insets getSystemWindowInsets();
+    method @NonNull public android.graphics.Insets getSystemWindowInsets();
     method public boolean hasInsets();
     method public boolean hasStableInsets();
     method public boolean hasSystemWindowInsets();
-    method public android.view.WindowInsets inset(int, int, int, int);
+    method @NonNull public android.view.WindowInsets inset(int, int, int, int);
     method public boolean isConsumed();
     method public boolean isRound();
-    method public deprecated android.view.WindowInsets replaceSystemWindowInsets(int, int, int, int);
-    method public deprecated android.view.WindowInsets replaceSystemWindowInsets(android.graphics.Rect);
+    method @Deprecated @NonNull public android.view.WindowInsets replaceSystemWindowInsets(int, int, int, int);
+    method @Deprecated @NonNull public android.view.WindowInsets replaceSystemWindowInsets(android.graphics.Rect);
   }
 
   public static class WindowInsets.Builder {
     ctor public WindowInsets.Builder();
     ctor public WindowInsets.Builder(android.view.WindowInsets);
-    method public android.view.WindowInsets build();
-    method public android.view.WindowInsets.Builder setDisplayCutout(android.view.DisplayCutout);
-    method public android.view.WindowInsets.Builder setStableInsets(android.graphics.Insets);
-    method public android.view.WindowInsets.Builder setSystemWindowInsets(android.graphics.Insets);
+    method @NonNull public android.view.WindowInsets build();
+    method @NonNull public android.view.WindowInsets.Builder setDisplayCutout(@Nullable android.view.DisplayCutout);
+    method @NonNull public android.view.WindowInsets.Builder setStableInsets(@NonNull android.graphics.Insets);
+    method @NonNull public android.view.WindowInsets.Builder setSystemWindowInsets(@NonNull android.graphics.Insets);
   }
 
-  public abstract interface WindowManager implements android.view.ViewManager {
-    method public abstract android.view.Display getDefaultDisplay();
-    method public abstract void removeViewImmediate(android.view.View);
+  public interface WindowManager extends android.view.ViewManager {
+    method public android.view.Display getDefaultDisplay();
+    method public void removeViewImmediate(android.view.View);
   }
 
   public static class WindowManager.BadTokenException extends java.lang.RuntimeException {
     ctor public WindowManager.BadTokenException();
-    ctor public WindowManager.BadTokenException(java.lang.String);
+    ctor public WindowManager.BadTokenException(String);
   }
 
   public static class WindowManager.InvalidDisplayException extends java.lang.RuntimeException {
     ctor public WindowManager.InvalidDisplayException();
-    ctor public WindowManager.InvalidDisplayException(java.lang.String);
+    ctor public WindowManager.InvalidDisplayException(String);
   }
 
   public static class WindowManager.LayoutParams extends android.view.ViewGroup.LayoutParams implements android.os.Parcelable {
@@ -51629,13 +51539,13 @@
     ctor public WindowManager.LayoutParams(int, int, int, int, int, int, int);
     ctor public WindowManager.LayoutParams(android.os.Parcel);
     method public final int copyFrom(android.view.WindowManager.LayoutParams);
-    method public java.lang.String debug(java.lang.String);
+    method public String debug(String);
     method public int describeContents();
     method public int getColorMode();
-    method public final java.lang.CharSequence getTitle();
+    method public final CharSequence getTitle();
     method public static boolean mayUseInputMethod(int);
     method public void setColorMode(int);
-    method public final void setTitle(java.lang.CharSequence);
+    method public final void setTitle(CharSequence);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int ALPHA_CHANGED = 128; // 0x80
     field public static final int ANIMATION_CHANGED = 16; // 0x10
@@ -51650,10 +51560,10 @@
     field public static final int FLAGS_CHANGED = 4; // 0x4
     field public static final int FLAG_ALLOW_LOCK_WHILE_SCREEN_ON = 1; // 0x1
     field public static final int FLAG_ALT_FOCUSABLE_IM = 131072; // 0x20000
-    field public static final deprecated int FLAG_BLUR_BEHIND = 4; // 0x4
+    field @Deprecated public static final int FLAG_BLUR_BEHIND = 4; // 0x4
     field public static final int FLAG_DIM_BEHIND = 2; // 0x2
-    field public static final deprecated int FLAG_DISMISS_KEYGUARD = 4194304; // 0x400000
-    field public static final deprecated int FLAG_DITHER = 4096; // 0x1000
+    field @Deprecated public static final int FLAG_DISMISS_KEYGUARD = 4194304; // 0x400000
+    field @Deprecated public static final int FLAG_DITHER = 4096; // 0x1000
     field public static final int FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS = -2147483648; // 0x80000000
     field public static final int FLAG_FORCE_NOT_FULLSCREEN = 2048; // 0x800
     field public static final int FLAG_FULLSCREEN = 1024; // 0x400
@@ -51672,12 +51582,12 @@
     field public static final int FLAG_SCALED = 16384; // 0x4000
     field public static final int FLAG_SECURE = 8192; // 0x2000
     field public static final int FLAG_SHOW_WALLPAPER = 1048576; // 0x100000
-    field public static final deprecated int FLAG_SHOW_WHEN_LOCKED = 524288; // 0x80000
+    field @Deprecated public static final int FLAG_SHOW_WHEN_LOCKED = 524288; // 0x80000
     field public static final int FLAG_SPLIT_TOUCH = 8388608; // 0x800000
-    field public static final deprecated int FLAG_TOUCHABLE_WHEN_WAKING = 64; // 0x40
+    field @Deprecated public static final int FLAG_TOUCHABLE_WHEN_WAKING = 64; // 0x40
     field public static final int FLAG_TRANSLUCENT_NAVIGATION = 134217728; // 0x8000000
     field public static final int FLAG_TRANSLUCENT_STATUS = 67108864; // 0x4000000
-    field public static final deprecated int FLAG_TURN_SCREEN_ON = 2097152; // 0x200000
+    field @Deprecated public static final int FLAG_TURN_SCREEN_ON = 2097152; // 0x200000
     field public static final int FLAG_WATCH_OUTSIDE_TOUCH = 262144; // 0x40000
     field public static final int FORMAT_CHANGED = 8; // 0x8
     field public static final int LAST_APPLICATION_WINDOW = 99; // 0x63
@@ -51688,10 +51598,10 @@
     field public static final int LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER = 2; // 0x2
     field public static final int LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES = 1; // 0x1
     field public static final int MEMORY_TYPE_CHANGED = 256; // 0x100
-    field public static final deprecated int MEMORY_TYPE_GPU = 2; // 0x2
-    field public static final deprecated int MEMORY_TYPE_HARDWARE = 1; // 0x1
-    field public static final deprecated int MEMORY_TYPE_NORMAL = 0; // 0x0
-    field public static final deprecated int MEMORY_TYPE_PUSH_BUFFERS = 3; // 0x3
+    field @Deprecated public static final int MEMORY_TYPE_GPU = 2; // 0x2
+    field @Deprecated public static final int MEMORY_TYPE_HARDWARE = 1; // 0x1
+    field @Deprecated public static final int MEMORY_TYPE_NORMAL = 0; // 0x0
+    field @Deprecated public static final int MEMORY_TYPE_PUSH_BUFFERS = 3; // 0x3
     field public static final int ROTATION_ANIMATION_CHANGED = 4096; // 0x1000
     field public static final int ROTATION_ANIMATION_CROSSFADE = 1; // 0x1
     field public static final int ROTATION_ANIMATION_JUMPCUT = 2; // 0x2
@@ -51728,43 +51638,43 @@
     field public static final int TYPE_INPUT_METHOD = 2011; // 0x7db
     field public static final int TYPE_INPUT_METHOD_DIALOG = 2012; // 0x7dc
     field public static final int TYPE_KEYGUARD_DIALOG = 2009; // 0x7d9
-    field public static final deprecated int TYPE_PHONE = 2002; // 0x7d2
-    field public static final deprecated int TYPE_PRIORITY_PHONE = 2007; // 0x7d7
+    field @Deprecated public static final int TYPE_PHONE = 2002; // 0x7d2
+    field @Deprecated public static final int TYPE_PRIORITY_PHONE = 2007; // 0x7d7
     field public static final int TYPE_PRIVATE_PRESENTATION = 2030; // 0x7ee
     field public static final int TYPE_SEARCH_BAR = 2001; // 0x7d1
     field public static final int TYPE_STATUS_BAR = 2000; // 0x7d0
     field public static final int TYPE_STATUS_BAR_PANEL = 2014; // 0x7de
-    field public static final deprecated int TYPE_SYSTEM_ALERT = 2003; // 0x7d3
+    field @Deprecated public static final int TYPE_SYSTEM_ALERT = 2003; // 0x7d3
     field public static final int TYPE_SYSTEM_DIALOG = 2008; // 0x7d8
-    field public static final deprecated int TYPE_SYSTEM_ERROR = 2010; // 0x7da
-    field public static final deprecated int TYPE_SYSTEM_OVERLAY = 2006; // 0x7d6
-    field public static final deprecated int TYPE_TOAST = 2005; // 0x7d5
+    field @Deprecated public static final int TYPE_SYSTEM_ERROR = 2010; // 0x7da
+    field @Deprecated public static final int TYPE_SYSTEM_OVERLAY = 2006; // 0x7d6
+    field @Deprecated public static final int TYPE_TOAST = 2005; // 0x7d5
     field public static final int TYPE_WALLPAPER = 2013; // 0x7dd
     field public float alpha;
     field public float buttonBrightness;
     field public float dimAmount;
-    field public int flags;
+    field @android.view.ViewDebug.ExportedProperty(flagMapping={@android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON, equals=android.view.WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON, name="ALLOW_LOCK_WHILE_SCREEN_ON"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_DIM_BEHIND, equals=android.view.WindowManager.LayoutParams.FLAG_DIM_BEHIND, name="DIM_BEHIND"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_BLUR_BEHIND, equals=android.view.WindowManager.LayoutParams.FLAG_BLUR_BEHIND, name="BLUR_BEHIND"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, equals=android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, name="NOT_FOCUSABLE"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, equals=android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, name="NOT_TOUCHABLE"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, equals=android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, name="NOT_TOUCH_MODAL"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING, equals=android.view.WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING, name="TOUCHABLE_WHEN_WAKING"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, equals=android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, name="KEEP_SCREEN_ON"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, equals=android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, name="LAYOUT_IN_SCREEN"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, equals=android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, name="LAYOUT_NO_LIMITS"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN, equals=android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN, name="FULLSCREEN"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, equals=android.view.WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, name="FORCE_NOT_FULLSCREEN"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_DITHER, equals=android.view.WindowManager.LayoutParams.FLAG_DITHER, name="DITHER"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_SECURE, equals=android.view.WindowManager.LayoutParams.FLAG_SECURE, name="SECURE"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_SCALED, equals=android.view.WindowManager.LayoutParams.FLAG_SCALED, name="SCALED"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_IGNORE_CHEEK_PRESSES, equals=android.view.WindowManager.LayoutParams.FLAG_IGNORE_CHEEK_PRESSES, name="IGNORE_CHEEK_PRESSES"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR, equals=android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR, name="LAYOUT_INSET_DECOR"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, equals=android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, name="ALT_FOCUSABLE_IM"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, equals=android.view.WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, name="WATCH_OUTSIDE_TOUCH"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED, equals=android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED, name="SHOW_WHEN_LOCKED"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER, equals=android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER, name="SHOW_WALLPAPER"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON, equals=android.view.WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON, name="TURN_SCREEN_ON"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD, equals=android.view.WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD, name="DISMISS_KEYGUARD"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_SPLIT_TOUCH, equals=android.view.WindowManager.LayoutParams.FLAG_SPLIT_TOUCH, name="SPLIT_TOUCH"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, equals=android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, name="HARDWARE_ACCELERATED"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_OVERSCAN, equals=android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_OVERSCAN, name="LOCAL_FOCUS_MODE"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, equals=android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, name="TRANSLUCENT_STATUS"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, equals=android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, name="TRANSLUCENT_NAVIGATION"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_LOCAL_FOCUS_MODE, equals=android.view.WindowManager.LayoutParams.FLAG_LOCAL_FOCUS_MODE, name="LOCAL_FOCUS_MODE"), @android.view.ViewDebug.FlagToString(mask=0x20000000, equals=0x20000000, name="FLAG_SLIPPERY"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_LAYOUT_ATTACHED_IN_DECOR, equals=android.view.WindowManager.LayoutParams.FLAG_LAYOUT_ATTACHED_IN_DECOR, name="FLAG_LAYOUT_ATTACHED_IN_DECOR"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS, equals=android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS, name="DRAWS_SYSTEM_BAR_BACKGROUNDS")}, formatToHexString=true) public int flags;
     field public int format;
     field public int gravity;
     field public float horizontalMargin;
-    field public float horizontalWeight;
+    field @android.view.ViewDebug.ExportedProperty public float horizontalWeight;
     field public int layoutInDisplayCutoutMode;
-    field public deprecated int memoryType;
-    field public java.lang.String packageName;
+    field @Deprecated public int memoryType;
+    field public String packageName;
     field public int preferredDisplayModeId;
-    field public deprecated float preferredRefreshRate;
+    field @Deprecated public float preferredRefreshRate;
     field public int rotationAnimation;
     field public float screenBrightness;
     field public int screenOrientation;
     field public int softInputMode;
     field public int systemUiVisibility;
     field public android.os.IBinder token;
-    field public int type;
+    field @android.view.ViewDebug.ExportedProperty(mapping={@android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION, to="BASE_APPLICATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION, to="APPLICATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING, to="APPLICATION_STARTING"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_DRAWN_APPLICATION, to="DRAWN_APPLICATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_PANEL, to="APPLICATION_PANEL"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA, to="APPLICATION_MEDIA"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL, to="APPLICATION_SUB_PANEL"), @android.view.ViewDebug.IntToString(from=0x3ed, to="APPLICATION_ABOVE_SUB_PANEL"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG, to="APPLICATION_ATTACHED_DIALOG"), @android.view.ViewDebug.IntToString(from=0x3ec, to="APPLICATION_MEDIA_OVERLAY"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR, to="STATUS_BAR"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SEARCH_BAR, to="SEARCH_BAR"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_PHONE, to="PHONE"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, to="SYSTEM_ALERT"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_TOAST, to="TOAST"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, to="SYSTEM_OVERLAY"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_PRIORITY_PHONE, to="PRIORITY_PHONE"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG, to="SYSTEM_DIALOG"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG, to="KEYGUARD_DIALOG"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, to="SYSTEM_ERROR"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD, to="INPUT_METHOD"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG, to="INPUT_METHOD_DIALOG"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_WALLPAPER, to="WALLPAPER"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL, to="STATUS_BAR_PANEL"), @android.view.ViewDebug.IntToString(from=0x7df, to="SECURE_SYSTEM_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7e0, to="DRAG"), @android.view.ViewDebug.IntToString(from=0x7e1, to="STATUS_BAR_SUB_PANEL"), @android.view.ViewDebug.IntToString(from=0x7e2, to="POINTER"), @android.view.ViewDebug.IntToString(from=0x7e3, to="NAVIGATION_BAR"), @android.view.ViewDebug.IntToString(from=0x7e4, to="VOLUME_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7e5, to="BOOT_PROGRESS"), @android.view.ViewDebug.IntToString(from=0x7e6, to="INPUT_CONSUMER"), @android.view.ViewDebug.IntToString(from=0x7e7, to="DREAM"), @android.view.ViewDebug.IntToString(from=0x7e8, to="NAVIGATION_BAR_PANEL"), @android.view.ViewDebug.IntToString(from=0x7ea, to="DISPLAY_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7eb, to="MAGNIFICATION_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7f5, to="PRESENTATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION, to="PRIVATE_PRESENTATION"), @android.view.ViewDebug.IntToString(from=0x7ef, to="VOICE_INTERACTION"), @android.view.ViewDebug.IntToString(from=0x7f1, to="VOICE_INTERACTION_STARTING"), @android.view.ViewDebug.IntToString(from=0x7f2, to="DOCK_DIVIDER"), @android.view.ViewDebug.IntToString(from=0x7f3, to="QS_DIALOG"), @android.view.ViewDebug.IntToString(from=0x7f4, to="SCREENSHOT"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, to="APPLICATION_OVERLAY")}) public int type;
     field public float verticalMargin;
-    field public float verticalWeight;
+    field @android.view.ViewDebug.ExportedProperty public float verticalWeight;
     field public int windowAnimations;
-    field public int x;
-    field public int y;
+    field @android.view.ViewDebug.ExportedProperty public int x;
+    field @android.view.ViewDebug.ExportedProperty public int y;
   }
 
 }
@@ -51774,13 +51684,13 @@
   public final class AccessibilityEvent extends android.view.accessibility.AccessibilityRecord implements android.os.Parcelable {
     method public void appendRecord(android.view.accessibility.AccessibilityRecord);
     method public int describeContents();
-    method public static java.lang.String eventTypeToString(int);
+    method public static String eventTypeToString(int);
     method public int getAction();
     method public int getContentChangeTypes();
     method public long getEventTime();
     method public int getEventType();
     method public int getMovementGranularity();
-    method public java.lang.CharSequence getPackageName();
+    method public CharSequence getPackageName();
     method public android.view.accessibility.AccessibilityRecord getRecord(int);
     method public int getRecordCount();
     method public int getWindowChanges();
@@ -51793,7 +51703,7 @@
     method public void setEventTime(long);
     method public void setEventType(int);
     method public void setMovementGranularity(int);
-    method public void setPackageName(java.lang.CharSequence);
+    method public void setPackageName(CharSequence);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
     field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
@@ -51804,7 +51714,7 @@
     field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
     field public static final android.os.Parcelable.Creator<android.view.accessibility.AccessibilityEvent> CREATOR;
     field public static final int INVALID_POSITION = -1; // 0xffffffff
-    field public static final deprecated int MAX_TEXT_LENGTH = 500; // 0x1f4
+    field @Deprecated public static final int MAX_TEXT_LENGTH = 500; // 0x1f4
     field public static final int TYPES_ALL_MASK = -1; // 0xffffffff
     field public static final int TYPE_ANNOUNCEMENT = 16384; // 0x4000
     field public static final int TYPE_ASSIST_READING_CONTEXT = 16777216; // 0x1000000
@@ -51844,18 +51754,18 @@
     field public static final int WINDOWS_CHANGE_TITLE = 4; // 0x4
   }
 
-  public abstract interface AccessibilityEventSource {
-    method public abstract void sendAccessibilityEvent(int);
-    method public abstract void sendAccessibilityEventUnchecked(android.view.accessibility.AccessibilityEvent);
+  public interface AccessibilityEventSource {
+    method public void sendAccessibilityEvent(int);
+    method public void sendAccessibilityEventUnchecked(android.view.accessibility.AccessibilityEvent);
   }
 
   public final class AccessibilityManager {
     method public void addAccessibilityRequestPreparer(android.view.accessibility.AccessibilityRequestPreparer);
-    method public boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener);
-    method public void addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener, android.os.Handler);
-    method public boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener);
-    method public void addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener, android.os.Handler);
-    method public deprecated java.util.List<android.content.pm.ServiceInfo> getAccessibilityServiceList();
+    method public boolean addAccessibilityStateChangeListener(@NonNull android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener);
+    method public void addAccessibilityStateChangeListener(@NonNull android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener, @Nullable android.os.Handler);
+    method public boolean addTouchExplorationStateChangeListener(@NonNull android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener);
+    method public void addTouchExplorationStateChangeListener(@NonNull android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener, @Nullable android.os.Handler);
+    method @Deprecated public java.util.List<android.content.pm.ServiceInfo> getAccessibilityServiceList();
     method public java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int);
     method public java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList();
     method public int getRecommendedTimeoutMillis(int, int);
@@ -51864,66 +51774,66 @@
     method public boolean isEnabled();
     method public boolean isTouchExplorationEnabled();
     method public void removeAccessibilityRequestPreparer(android.view.accessibility.AccessibilityRequestPreparer);
-    method public boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener);
-    method public boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener);
+    method public boolean removeAccessibilityStateChangeListener(@NonNull android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener);
+    method public boolean removeTouchExplorationStateChangeListener(@NonNull android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener);
     method public void sendAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
     field public static final int FLAG_CONTENT_CONTROLS = 4; // 0x4
     field public static final int FLAG_CONTENT_ICONS = 1; // 0x1
     field public static final int FLAG_CONTENT_TEXT = 2; // 0x2
   }
 
-  public static abstract interface AccessibilityManager.AccessibilityStateChangeListener {
-    method public abstract void onAccessibilityStateChanged(boolean);
+  public static interface AccessibilityManager.AccessibilityStateChangeListener {
+    method public void onAccessibilityStateChanged(boolean);
   }
 
-  public static abstract interface AccessibilityManager.TouchExplorationStateChangeListener {
-    method public abstract void onTouchExplorationStateChanged(boolean);
+  public static interface AccessibilityManager.TouchExplorationStateChangeListener {
+    method public void onTouchExplorationStateChanged(boolean);
   }
 
   public class AccessibilityNodeInfo implements android.os.Parcelable {
     method public void addAction(android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction);
-    method public deprecated void addAction(int);
+    method @Deprecated public void addAction(int);
     method public void addChild(android.view.View);
     method public void addChild(android.view.View, int);
     method public boolean canOpenPopup();
     method public int describeContents();
-    method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(java.lang.String);
-    method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId(java.lang.String);
+    method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(String);
+    method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId(String);
     method public android.view.accessibility.AccessibilityNodeInfo findFocus(int);
     method public android.view.accessibility.AccessibilityNodeInfo focusSearch(int);
     method public java.util.List<android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction> getActionList();
-    method public deprecated int getActions();
+    method @Deprecated public int getActions();
     method public java.util.List<java.lang.String> getAvailableExtraData();
     method public void getBoundsInParent(android.graphics.Rect);
     method public void getBoundsInScreen(android.graphics.Rect);
     method public android.view.accessibility.AccessibilityNodeInfo getChild(int);
     method public int getChildCount();
-    method public java.lang.CharSequence getClassName();
+    method public CharSequence getClassName();
     method public android.view.accessibility.AccessibilityNodeInfo.CollectionInfo getCollectionInfo();
     method public android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo getCollectionItemInfo();
-    method public java.lang.CharSequence getContentDescription();
+    method public CharSequence getContentDescription();
     method public int getDrawingOrder();
-    method public java.lang.CharSequence getError();
+    method public CharSequence getError();
     method public android.os.Bundle getExtras();
-    method public java.lang.CharSequence getHintText();
+    method public CharSequence getHintText();
     method public int getInputType();
     method public android.view.accessibility.AccessibilityNodeInfo getLabelFor();
     method public android.view.accessibility.AccessibilityNodeInfo getLabeledBy();
     method public int getLiveRegion();
     method public int getMaxTextLength();
     method public int getMovementGranularities();
-    method public java.lang.CharSequence getPackageName();
-    method public java.lang.CharSequence getPaneTitle();
+    method public CharSequence getPackageName();
+    method @Nullable public CharSequence getPaneTitle();
     method public android.view.accessibility.AccessibilityNodeInfo getParent();
     method public android.view.accessibility.AccessibilityNodeInfo.RangeInfo getRangeInfo();
-    method public java.lang.CharSequence getText();
+    method public CharSequence getText();
     method public int getTextSelectionEnd();
     method public int getTextSelectionStart();
-    method public java.lang.CharSequence getTooltipText();
-    method public android.view.accessibility.AccessibilityNodeInfo.TouchDelegateInfo getTouchDelegateInfo();
+    method @Nullable public CharSequence getTooltipText();
+    method @Nullable public android.view.accessibility.AccessibilityNodeInfo.TouchDelegateInfo getTouchDelegateInfo();
     method public android.view.accessibility.AccessibilityNodeInfo getTraversalAfter();
     method public android.view.accessibility.AccessibilityNodeInfo getTraversalBefore();
-    method public java.lang.String getViewIdResourceName();
+    method public String getViewIdResourceName();
     method public android.view.accessibility.AccessibilityWindowInfo getWindow();
     method public int getWindowId();
     method public boolean isAccessibilityFocused();
@@ -51956,8 +51866,8 @@
     method public boolean performAction(int, android.os.Bundle);
     method public void recycle();
     method public boolean refresh();
-    method public boolean refreshWithExtraData(java.lang.String, android.os.Bundle);
-    method public deprecated void removeAction(int);
+    method public boolean refreshWithExtraData(String, android.os.Bundle);
+    method @Deprecated public void removeAction(int);
     method public boolean removeAction(android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction);
     method public boolean removeChild(android.view.View);
     method public boolean removeChild(android.view.View, int);
@@ -51968,22 +51878,22 @@
     method public void setCanOpenPopup(boolean);
     method public void setCheckable(boolean);
     method public void setChecked(boolean);
-    method public void setClassName(java.lang.CharSequence);
-    method public deprecated void setClickable(boolean);
+    method public void setClassName(CharSequence);
+    method @Deprecated public void setClickable(boolean);
     method public void setCollectionInfo(android.view.accessibility.AccessibilityNodeInfo.CollectionInfo);
     method public void setCollectionItemInfo(android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo);
-    method public void setContentDescription(java.lang.CharSequence);
+    method public void setContentDescription(CharSequence);
     method public void setContentInvalid(boolean);
-    method public deprecated void setContextClickable(boolean);
-    method public deprecated void setDismissable(boolean);
+    method @Deprecated public void setContextClickable(boolean);
+    method @Deprecated public void setDismissable(boolean);
     method public void setDrawingOrder(int);
     method public void setEditable(boolean);
     method public void setEnabled(boolean);
-    method public void setError(java.lang.CharSequence);
-    method public deprecated void setFocusable(boolean);
+    method public void setError(CharSequence);
+    method @Deprecated public void setFocusable(boolean);
     method public void setFocused(boolean);
     method public void setHeading(boolean);
-    method public void setHintText(java.lang.CharSequence);
+    method public void setHintText(CharSequence);
     method public void setImportantForAccessibility(boolean);
     method public void setInputType(int);
     method public void setLabelFor(android.view.View);
@@ -51991,46 +51901,46 @@
     method public void setLabeledBy(android.view.View);
     method public void setLabeledBy(android.view.View, int);
     method public void setLiveRegion(int);
-    method public deprecated void setLongClickable(boolean);
+    method @Deprecated public void setLongClickable(boolean);
     method public void setMaxTextLength(int);
     method public void setMovementGranularities(int);
     method public void setMultiLine(boolean);
-    method public void setPackageName(java.lang.CharSequence);
-    method public void setPaneTitle(java.lang.CharSequence);
+    method public void setPackageName(CharSequence);
+    method public void setPaneTitle(@Nullable CharSequence);
     method public void setParent(android.view.View);
     method public void setParent(android.view.View, int);
     method public void setPassword(boolean);
     method public void setRangeInfo(android.view.accessibility.AccessibilityNodeInfo.RangeInfo);
     method public void setScreenReaderFocusable(boolean);
-    method public deprecated void setScrollable(boolean);
+    method @Deprecated public void setScrollable(boolean);
     method public void setSelected(boolean);
     method public void setShowingHintText(boolean);
     method public void setSource(android.view.View);
     method public void setSource(android.view.View, int);
-    method public void setText(java.lang.CharSequence);
+    method public void setText(CharSequence);
     method public void setTextEntryKey(boolean);
     method public void setTextSelection(int, int);
-    method public void setTooltipText(java.lang.CharSequence);
-    method public void setTouchDelegateInfo(android.view.accessibility.AccessibilityNodeInfo.TouchDelegateInfo);
+    method public void setTooltipText(@Nullable CharSequence);
+    method public void setTouchDelegateInfo(@NonNull android.view.accessibility.AccessibilityNodeInfo.TouchDelegateInfo);
     method public void setTraversalAfter(android.view.View);
     method public void setTraversalAfter(android.view.View, int);
     method public void setTraversalBefore(android.view.View);
     method public void setTraversalBefore(android.view.View, int);
-    method public void setViewIdResourceName(java.lang.String);
+    method public void setViewIdResourceName(String);
     method public void setVisibleToUser(boolean);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int ACTION_ACCESSIBILITY_FOCUS = 64; // 0x40
-    field public static final java.lang.String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
-    field public static final java.lang.String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
-    field public static final java.lang.String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
-    field public static final java.lang.String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
-    field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
-    field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
-    field public static final java.lang.String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
-    field public static final java.lang.String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
-    field public static final java.lang.String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
-    field public static final java.lang.String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
-    field public static final java.lang.String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
+    field public static final String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
+    field public static final String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
+    field public static final String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
+    field public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
+    field public static final String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
+    field public static final String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
+    field public static final String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
+    field public static final String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
+    field public static final String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
+    field public static final String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
+    field public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
     field public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 128; // 0x80
     field public static final int ACTION_CLEAR_FOCUS = 2; // 0x2
     field public static final int ACTION_CLEAR_SELECTION = 8; // 0x8
@@ -52053,9 +51963,9 @@
     field public static final int ACTION_SET_SELECTION = 131072; // 0x20000
     field public static final int ACTION_SET_TEXT = 2097152; // 0x200000
     field public static final android.os.Parcelable.Creator<android.view.accessibility.AccessibilityNodeInfo> CREATOR;
-    field public static final java.lang.String EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH = "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH";
-    field public static final java.lang.String EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX = "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX";
-    field public static final java.lang.String EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY = "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_KEY";
+    field public static final String EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH = "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH";
+    field public static final String EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX = "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX";
+    field public static final String EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY = "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_KEY";
     field public static final int FOCUS_ACCESSIBILITY = 2; // 0x2
     field public static final int FOCUS_INPUT = 1; // 0x1
     field public static final int MOVEMENT_GRANULARITY_CHARACTER = 1; // 0x1
@@ -52066,9 +51976,9 @@
   }
 
   public static final class AccessibilityNodeInfo.AccessibilityAction {
-    ctor public AccessibilityNodeInfo.AccessibilityAction(int, java.lang.CharSequence);
+    ctor public AccessibilityNodeInfo.AccessibilityAction(int, @Nullable CharSequence);
     method public int getId();
-    method public java.lang.CharSequence getLabel();
+    method public CharSequence getLabel();
     field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_ACCESSIBILITY_FOCUS;
     field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_ACCESSIBILITY_FOCUS;
     field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_FOCUS;
@@ -52125,7 +52035,7 @@
     method public int getColumnSpan();
     method public int getRowIndex();
     method public int getRowSpan();
-    method public deprecated boolean isHeading();
+    method @Deprecated public boolean isHeading();
     method public boolean isSelected();
     method public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(int, int, int, int, boolean);
     method public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(int, int, int, int, boolean, boolean);
@@ -52143,20 +52053,20 @@
   }
 
   public static final class AccessibilityNodeInfo.TouchDelegateInfo implements android.os.Parcelable {
-    ctor public AccessibilityNodeInfo.TouchDelegateInfo(java.util.Map<android.graphics.Region, android.view.View>);
+    ctor public AccessibilityNodeInfo.TouchDelegateInfo(@NonNull java.util.Map<android.graphics.Region,android.view.View>);
     method public int describeContents();
-    method public android.graphics.Region getRegionAt(int);
+    method @NonNull public android.graphics.Region getRegionAt(int);
     method public int getRegionCount();
-    method public android.view.accessibility.AccessibilityNodeInfo getTargetForRegion(android.graphics.Region);
+    method @Nullable public android.view.accessibility.AccessibilityNodeInfo getTargetForRegion(@NonNull android.graphics.Region);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.accessibility.AccessibilityNodeInfo.TouchDelegateInfo> CREATOR;
   }
 
   public abstract class AccessibilityNodeProvider {
     ctor public AccessibilityNodeProvider();
-    method public void addExtraDataToAccessibilityNodeInfo(int, android.view.accessibility.AccessibilityNodeInfo, java.lang.String, android.os.Bundle);
+    method public void addExtraDataToAccessibilityNodeInfo(int, android.view.accessibility.AccessibilityNodeInfo, String, android.os.Bundle);
     method public android.view.accessibility.AccessibilityNodeInfo createAccessibilityNodeInfo(int);
-    method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(java.lang.String, int);
+    method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(String, int);
     method public android.view.accessibility.AccessibilityNodeInfo findFocus(int);
     method public boolean performAction(int, int, android.os.Bundle);
     field public static final int HOST_VIEW_ID = -1; // 0xffffffff
@@ -52164,9 +52074,9 @@
 
   public class AccessibilityRecord {
     method public int getAddedCount();
-    method public java.lang.CharSequence getBeforeText();
-    method public java.lang.CharSequence getClassName();
-    method public java.lang.CharSequence getContentDescription();
+    method public CharSequence getBeforeText();
+    method public CharSequence getClassName();
+    method public CharSequence getContentDescription();
     method public int getCurrentItemIndex();
     method public int getFromIndex();
     method public int getItemCount();
@@ -52191,10 +52101,10 @@
     method public static android.view.accessibility.AccessibilityRecord obtain();
     method public void recycle();
     method public void setAddedCount(int);
-    method public void setBeforeText(java.lang.CharSequence);
+    method public void setBeforeText(CharSequence);
     method public void setChecked(boolean);
-    method public void setClassName(java.lang.CharSequence);
-    method public void setContentDescription(java.lang.CharSequence);
+    method public void setClassName(CharSequence);
+    method public void setContentDescription(CharSequence);
     method public void setCurrentItemIndex(int);
     method public void setEnabled(boolean);
     method public void setFromIndex(int);
@@ -52211,14 +52121,14 @@
     method public void setScrollY(int);
     method public void setScrollable(boolean);
     method public void setSource(android.view.View);
-    method public void setSource(android.view.View, int);
+    method public void setSource(@Nullable android.view.View, int);
     method public void setToIndex(int);
   }
 
   public abstract class AccessibilityRequestPreparer {
     ctor public AccessibilityRequestPreparer(android.view.View, int);
-    method public android.view.View getView();
-    method public abstract void onPrepareExtraData(int, java.lang.String, android.os.Bundle, android.os.Message);
+    method @Nullable public android.view.View getView();
+    method public abstract void onPrepareExtraData(int, String, android.os.Bundle, android.os.Message);
     field public static final int REQUEST_TYPE_EXTRA_DATA = 1; // 0x1
   }
 
@@ -52232,7 +52142,7 @@
     method public int getLayer();
     method public android.view.accessibility.AccessibilityWindowInfo getParent();
     method public android.view.accessibility.AccessibilityNodeInfo getRoot();
-    method public java.lang.CharSequence getTitle();
+    method @Nullable public CharSequence getTitle();
     method public int getType();
     method public boolean isAccessibilityFocused();
     method public boolean isActive();
@@ -52251,16 +52161,16 @@
   }
 
   public class CaptioningManager {
-    method public void addCaptioningChangeListener(android.view.accessibility.CaptioningManager.CaptioningChangeListener);
+    method public void addCaptioningChangeListener(@NonNull android.view.accessibility.CaptioningManager.CaptioningChangeListener);
     method public final float getFontScale();
-    method public final java.util.Locale getLocale();
-    method public android.view.accessibility.CaptioningManager.CaptionStyle getUserStyle();
+    method @Nullable public final java.util.Locale getLocale();
+    method @NonNull public android.view.accessibility.CaptioningManager.CaptionStyle getUserStyle();
     method public final boolean isEnabled();
-    method public void removeCaptioningChangeListener(android.view.accessibility.CaptioningManager.CaptioningChangeListener);
+    method public void removeCaptioningChangeListener(@NonNull android.view.accessibility.CaptioningManager.CaptioningChangeListener);
   }
 
   public static final class CaptioningManager.CaptionStyle {
-    method public android.graphics.Typeface getTypeface();
+    method @Nullable public android.graphics.Typeface getTypeface();
     method public boolean hasBackgroundColor();
     method public boolean hasEdgeColor();
     method public boolean hasEdgeType();
@@ -52279,12 +52189,12 @@
     field public final int windowColor;
   }
 
-  public static abstract class CaptioningManager.CaptioningChangeListener {
+  public abstract static class CaptioningManager.CaptioningChangeListener {
     ctor public CaptioningManager.CaptioningChangeListener();
     method public void onEnabledChanged(boolean);
     method public void onFontScaleChanged(float);
-    method public void onLocaleChanged(java.util.Locale);
-    method public void onUserStyleChanged(android.view.accessibility.CaptioningManager.CaptionStyle);
+    method public void onLocaleChanged(@Nullable java.util.Locale);
+    method public void onUserStyleChanged(@NonNull android.view.accessibility.CaptioningManager.CaptionStyle);
   }
 
 }
@@ -52318,8 +52228,8 @@
     method protected android.view.animation.Animation clone() throws java.lang.CloneNotSupportedException;
     method public long computeDurationHint();
     method protected void ensureInterpolator();
-    method public int getBackgroundColor();
-    method public deprecated boolean getDetachWallpaper();
+    method @ColorInt public int getBackgroundColor();
+    method @Deprecated public boolean getDetachWallpaper();
     method public long getDuration();
     method public boolean getFillAfter();
     method public boolean getFillBefore();
@@ -52343,13 +52253,13 @@
     method public void restrictDuration(long);
     method public void scaleCurrentDuration(float);
     method public void setAnimationListener(android.view.animation.Animation.AnimationListener);
-    method public void setBackgroundColor(int);
-    method public deprecated void setDetachWallpaper(boolean);
+    method public void setBackgroundColor(@ColorInt int);
+    method @Deprecated public void setDetachWallpaper(boolean);
     method public void setDuration(long);
     method public void setFillAfter(boolean);
     method public void setFillBefore(boolean);
     method public void setFillEnabled(boolean);
-    method public void setInterpolator(android.content.Context, int);
+    method public void setInterpolator(android.content.Context, @AnimRes @InterpolatorRes int);
     method public void setInterpolator(android.view.animation.Interpolator);
     method public void setRepeatCount(int);
     method public void setRepeatMode(int);
@@ -52372,10 +52282,10 @@
     field public static final int ZORDER_TOP = 1; // 0x1
   }
 
-  public static abstract interface Animation.AnimationListener {
-    method public abstract void onAnimationEnd(android.view.animation.Animation);
-    method public abstract void onAnimationRepeat(android.view.animation.Animation);
-    method public abstract void onAnimationStart(android.view.animation.Animation);
+  public static interface Animation.AnimationListener {
+    method public void onAnimationEnd(android.view.animation.Animation);
+    method public void onAnimationRepeat(android.view.animation.Animation);
+    method public void onAnimationStart(android.view.animation.Animation);
   }
 
   protected static class Animation.Description {
@@ -52395,9 +52305,9 @@
   public class AnimationUtils {
     ctor public AnimationUtils();
     method public static long currentAnimationTimeMillis();
-    method public static android.view.animation.Animation loadAnimation(android.content.Context, int) throws android.content.res.Resources.NotFoundException;
-    method public static android.view.animation.Interpolator loadInterpolator(android.content.Context, int) throws android.content.res.Resources.NotFoundException;
-    method public static android.view.animation.LayoutAnimationController loadLayoutAnimation(android.content.Context, int) throws android.content.res.Resources.NotFoundException;
+    method public static android.view.animation.Animation loadAnimation(android.content.Context, @AnimRes int) throws android.content.res.Resources.NotFoundException;
+    method public static android.view.animation.Interpolator loadInterpolator(android.content.Context, @AnimRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static android.view.animation.LayoutAnimationController loadLayoutAnimation(android.content.Context, @AnimRes int) throws android.content.res.Resources.NotFoundException;
     method public static android.view.animation.Animation makeInAnimation(android.content.Context, boolean);
     method public static android.view.animation.Animation makeInChildBottomAnimation(android.content.Context);
     method public static android.view.animation.Animation makeOutAnimation(android.content.Context, boolean);
@@ -52472,7 +52382,7 @@
     field public int rowsCount;
   }
 
-  public abstract interface Interpolator implements android.animation.TimeInterpolator {
+  public interface Interpolator extends android.animation.TimeInterpolator {
   }
 
   public class LayoutAnimationController {
@@ -52487,10 +52397,10 @@
     method public int getOrder();
     method protected int getTransformedIndex(android.view.animation.LayoutAnimationController.AnimationParameters);
     method public boolean isDone();
-    method public void setAnimation(android.content.Context, int);
+    method public void setAnimation(android.content.Context, @AnimRes int);
     method public void setAnimation(android.view.animation.Animation);
     method public void setDelay(float);
-    method public void setInterpolator(android.content.Context, int);
+    method public void setInterpolator(android.content.Context, @InterpolatorRes int);
     method public void setInterpolator(android.view.animation.Interpolator);
     method public void setOrder(int);
     method public void start();
@@ -52552,9 +52462,9 @@
     method public android.graphics.Matrix getMatrix();
     method public int getTransformationType();
     method public void set(android.view.animation.Transformation);
-    method public void setAlpha(float);
+    method public void setAlpha(@FloatRange(from=0.0, to=1.0) float);
     method public void setTransformationType(int);
-    method public java.lang.String toShortString();
+    method public String toShortString();
     field public static final int TYPE_ALPHA = 1; // 0x1
     field public static final int TYPE_BOTH = 3; // 0x3
     field public static final int TYPE_IDENTITY = 0; // 0x0
@@ -52584,40 +52494,40 @@
     method public void cancel();
     method public void commit();
     method public void disableAutofillServices();
-    method public android.content.ComponentName getAutofillServiceComponentName();
-    method public java.util.List<java.lang.String> getAvailableFieldClassificationAlgorithms();
-    method public java.lang.String getDefaultFieldClassificationAlgorithm();
-    method public android.view.autofill.AutofillId getNextAutofillId();
-    method public android.service.autofill.UserData getUserData();
-    method public java.lang.String getUserDataId();
+    method @Nullable public android.content.ComponentName getAutofillServiceComponentName();
+    method @NonNull public java.util.List<java.lang.String> getAvailableFieldClassificationAlgorithms();
+    method @Nullable public String getDefaultFieldClassificationAlgorithm();
+    method @Nullable public android.view.autofill.AutofillId getNextAutofillId();
+    method @Nullable public android.service.autofill.UserData getUserData();
+    method @Nullable public String getUserDataId();
     method public boolean hasEnabledAutofillServices();
     method public boolean isAutofillSupported();
     method public boolean isEnabled();
     method public boolean isFieldClassificationEnabled();
     method public void notifyValueChanged(android.view.View);
     method public void notifyValueChanged(android.view.View, int, android.view.autofill.AutofillValue);
-    method public void notifyViewClicked(android.view.View);
-    method public void notifyViewClicked(android.view.View, int);
-    method public void notifyViewEntered(android.view.View);
-    method public void notifyViewEntered(android.view.View, int, android.graphics.Rect);
-    method public void notifyViewExited(android.view.View);
-    method public void notifyViewExited(android.view.View, int);
-    method public void notifyViewVisibilityChanged(android.view.View, boolean);
-    method public void notifyViewVisibilityChanged(android.view.View, int, boolean);
-    method public void registerCallback(android.view.autofill.AutofillManager.AutofillCallback);
-    method public void requestAutofill(android.view.View);
-    method public void requestAutofill(android.view.View, int, android.graphics.Rect);
-    method public void setUserData(android.service.autofill.UserData);
-    method public void unregisterCallback(android.view.autofill.AutofillManager.AutofillCallback);
-    field public static final java.lang.String EXTRA_ASSIST_STRUCTURE = "android.view.autofill.extra.ASSIST_STRUCTURE";
-    field public static final java.lang.String EXTRA_AUTHENTICATION_RESULT = "android.view.autofill.extra.AUTHENTICATION_RESULT";
-    field public static final java.lang.String EXTRA_CLIENT_STATE = "android.view.autofill.extra.CLIENT_STATE";
+    method public void notifyViewClicked(@NonNull android.view.View);
+    method public void notifyViewClicked(@NonNull android.view.View, int);
+    method public void notifyViewEntered(@NonNull android.view.View);
+    method public void notifyViewEntered(@NonNull android.view.View, int, @NonNull android.graphics.Rect);
+    method public void notifyViewExited(@NonNull android.view.View);
+    method public void notifyViewExited(@NonNull android.view.View, int);
+    method public void notifyViewVisibilityChanged(@NonNull android.view.View, boolean);
+    method public void notifyViewVisibilityChanged(@NonNull android.view.View, int, boolean);
+    method public void registerCallback(@Nullable android.view.autofill.AutofillManager.AutofillCallback);
+    method public void requestAutofill(@NonNull android.view.View);
+    method public void requestAutofill(@NonNull android.view.View, int, @NonNull android.graphics.Rect);
+    method public void setUserData(@Nullable android.service.autofill.UserData);
+    method public void unregisterCallback(@Nullable android.view.autofill.AutofillManager.AutofillCallback);
+    field public static final String EXTRA_ASSIST_STRUCTURE = "android.view.autofill.extra.ASSIST_STRUCTURE";
+    field public static final String EXTRA_AUTHENTICATION_RESULT = "android.view.autofill.extra.AUTHENTICATION_RESULT";
+    field public static final String EXTRA_CLIENT_STATE = "android.view.autofill.extra.CLIENT_STATE";
   }
 
-  public static abstract class AutofillManager.AutofillCallback {
+  public abstract static class AutofillManager.AutofillCallback {
     ctor public AutofillManager.AutofillCallback();
-    method public void onAutofillEvent(android.view.View, int);
-    method public void onAutofillEvent(android.view.View, int, int);
+    method public void onAutofillEvent(@NonNull android.view.View, int);
+    method public void onAutofillEvent(@NonNull android.view.View, int, int);
     field public static final int EVENT_INPUT_HIDDEN = 2; // 0x2
     field public static final int EVENT_INPUT_SHOWN = 1; // 0x1
     field public static final int EVENT_INPUT_UNAVAILABLE = 3; // 0x3
@@ -52627,11 +52537,11 @@
     method public int describeContents();
     method public static android.view.autofill.AutofillValue forDate(long);
     method public static android.view.autofill.AutofillValue forList(int);
-    method public static android.view.autofill.AutofillValue forText(java.lang.CharSequence);
+    method public static android.view.autofill.AutofillValue forText(@Nullable CharSequence);
     method public static android.view.autofill.AutofillValue forToggle(boolean);
     method public long getDateValue();
     method public int getListValue();
-    method public java.lang.CharSequence getTextValue();
+    method @NonNull public CharSequence getTextValue();
     method public boolean getToggleValue();
     method public boolean isDate();
     method public boolean isList();
@@ -52654,29 +52564,28 @@
   public static final class ContentCaptureContext.Builder {
     ctor public ContentCaptureContext.Builder();
     method public android.view.contentcapture.ContentCaptureContext build();
-    method public android.view.contentcapture.ContentCaptureContext.Builder setExtras(android.os.Bundle);
-    method public android.view.contentcapture.ContentCaptureContext.Builder setUri(android.net.Uri);
+    method @NonNull public android.view.contentcapture.ContentCaptureContext.Builder setExtras(@NonNull android.os.Bundle);
+    method @NonNull public android.view.contentcapture.ContentCaptureContext.Builder setUri(@NonNull android.net.Uri);
   }
 
   public final class ContentCaptureManager {
-    method public android.content.ComponentName getServiceComponentName();
+    method @Nullable public android.content.ComponentName getServiceComponentName();
     method public boolean isContentCaptureEnabled();
-    method public void removeUserData(android.view.contentcapture.UserDataRemovalRequest);
+    method public void removeUserData(@NonNull android.view.contentcapture.UserDataRemovalRequest);
     method public void setContentCaptureEnabled(boolean);
   }
 
   public abstract class ContentCaptureSession implements java.lang.AutoCloseable {
     method public void close();
-    method public final android.view.contentcapture.ContentCaptureSession createContentCaptureSession(android.view.contentcapture.ContentCaptureContext);
+    method @NonNull public final android.view.contentcapture.ContentCaptureSession createContentCaptureSession(@NonNull android.view.contentcapture.ContentCaptureContext);
     method public final void destroy();
     method public final android.view.contentcapture.ContentCaptureSessionId getContentCaptureSessionId();
-    method public android.view.autofill.AutofillId newAutofillId(android.view.autofill.AutofillId, int);
-    method public final android.view.ViewStructure newVirtualViewStructure(android.view.autofill.AutofillId, int);
-    method public final void notifyViewAppeared(android.view.ViewStructure);
-    method public final void notifyViewDisappeared(android.view.autofill.AutofillId);
-    method public final void notifyViewTextChanged(android.view.autofill.AutofillId, java.lang.CharSequence, int);
-    method public final void notifyViewsDisappeared(android.view.autofill.AutofillId, int[]);
-    field public static final int FLAG_USER_INPUT = 1; // 0x1
+    method @NonNull public android.view.autofill.AutofillId newAutofillId(@NonNull android.view.autofill.AutofillId, int);
+    method @NonNull public final android.view.ViewStructure newVirtualViewStructure(@NonNull android.view.autofill.AutofillId, int);
+    method public final void notifyViewAppeared(@NonNull android.view.ViewStructure);
+    method public final void notifyViewDisappeared(@NonNull android.view.autofill.AutofillId);
+    method public final void notifyViewTextChanged(@NonNull android.view.autofill.AutofillId, @Nullable CharSequence, int);
+    method public final void notifyViewsDisappeared(@NonNull android.view.autofill.AutofillId, @NonNull int[]);
   }
 
   public final class ContentCaptureSessionId implements android.os.Parcelable {
@@ -52693,9 +52602,9 @@
 
   public static final class UserDataRemovalRequest.Builder {
     ctor public UserDataRemovalRequest.Builder();
-    method public android.view.contentcapture.UserDataRemovalRequest.Builder addUri(android.net.Uri, boolean);
-    method public android.view.contentcapture.UserDataRemovalRequest build();
-    method public android.view.contentcapture.UserDataRemovalRequest.Builder forEverything();
+    method public android.view.contentcapture.UserDataRemovalRequest.Builder addUri(@NonNull android.net.Uri, boolean);
+    method @NonNull public android.view.contentcapture.UserDataRemovalRequest build();
+    method @NonNull public android.view.contentcapture.UserDataRemovalRequest.Builder forEverything();
   }
 
 }
@@ -52706,11 +52615,11 @@
     ctor public BaseInputConnection(android.view.View, boolean);
     method public boolean beginBatchEdit();
     method public boolean clearMetaKeyStates(int);
-    method public void closeConnection();
+    method @CallSuper public void closeConnection();
     method public boolean commitCompletion(android.view.inputmethod.CompletionInfo);
     method public boolean commitContent(android.view.inputmethod.InputContentInfo, int, android.os.Bundle);
     method public boolean commitCorrection(android.view.inputmethod.CorrectionInfo);
-    method public boolean commitText(java.lang.CharSequence, int);
+    method public boolean commitText(CharSequence, int);
     method public boolean deleteSurroundingText(int, int);
     method public boolean deleteSurroundingTextInCodePoints(int, int);
     method public boolean endBatchEdit();
@@ -52721,40 +52630,40 @@
     method public android.text.Editable getEditable();
     method public android.view.inputmethod.ExtractedText getExtractedText(android.view.inputmethod.ExtractedTextRequest, int);
     method public android.os.Handler getHandler();
-    method public java.lang.CharSequence getSelectedText(int);
-    method public java.lang.CharSequence getTextAfterCursor(int, int);
-    method public java.lang.CharSequence getTextBeforeCursor(int, int);
+    method public CharSequence getSelectedText(int);
+    method public CharSequence getTextAfterCursor(int, int);
+    method public CharSequence getTextBeforeCursor(int, int);
     method public boolean performContextMenuAction(int);
     method public boolean performEditorAction(int);
-    method public boolean performPrivateCommand(java.lang.String, android.os.Bundle);
+    method public boolean performPrivateCommand(String, android.os.Bundle);
     method public static final void removeComposingSpans(android.text.Spannable);
     method public boolean reportFullscreenMode(boolean);
     method public boolean requestCursorUpdates(int);
     method public boolean sendKeyEvent(android.view.KeyEvent);
     method public boolean setComposingRegion(int, int);
     method public static void setComposingSpans(android.text.Spannable);
-    method public boolean setComposingText(java.lang.CharSequence, int);
+    method public boolean setComposingText(CharSequence, int);
     method public boolean setSelection(int, int);
   }
 
   public final class CompletionInfo implements android.os.Parcelable {
-    ctor public CompletionInfo(long, int, java.lang.CharSequence);
-    ctor public CompletionInfo(long, int, java.lang.CharSequence, java.lang.CharSequence);
+    ctor public CompletionInfo(long, int, CharSequence);
+    ctor public CompletionInfo(long, int, CharSequence, CharSequence);
     method public int describeContents();
     method public long getId();
-    method public java.lang.CharSequence getLabel();
+    method public CharSequence getLabel();
     method public int getPosition();
-    method public java.lang.CharSequence getText();
+    method public CharSequence getText();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.inputmethod.CompletionInfo> CREATOR;
   }
 
   public final class CorrectionInfo implements android.os.Parcelable {
-    ctor public CorrectionInfo(int, java.lang.CharSequence, java.lang.CharSequence);
+    ctor public CorrectionInfo(int, CharSequence, CharSequence);
     method public int describeContents();
-    method public java.lang.CharSequence getNewText();
+    method public CharSequence getNewText();
     method public int getOffset();
-    method public java.lang.CharSequence getOldText();
+    method public CharSequence getOldText();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.inputmethod.CorrectionInfo> CREATOR;
   }
@@ -52764,7 +52673,7 @@
     method public int describeContents();
     method public android.graphics.RectF getCharacterBounds(int);
     method public int getCharacterBoundsFlags(int);
-    method public java.lang.CharSequence getComposingText();
+    method public CharSequence getComposingText();
     method public int getComposingTextStart();
     method public float getInsertionMarkerBaseline();
     method public float getInsertionMarkerBottom();
@@ -52786,7 +52695,7 @@
     method public android.view.inputmethod.CursorAnchorInfo.Builder addCharacterBounds(int, float, float, float, float, int);
     method public android.view.inputmethod.CursorAnchorInfo build();
     method public void reset();
-    method public android.view.inputmethod.CursorAnchorInfo.Builder setComposingText(int, java.lang.CharSequence);
+    method public android.view.inputmethod.CursorAnchorInfo.Builder setComposingText(int, CharSequence);
     method public android.view.inputmethod.CursorAnchorInfo.Builder setInsertionMarkerLocation(float, float, float, float, int);
     method public android.view.inputmethod.CursorAnchorInfo.Builder setMatrix(android.graphics.Matrix);
     method public android.view.inputmethod.CursorAnchorInfo.Builder setSelectionRange(int, int);
@@ -52795,7 +52704,7 @@
   public class EditorInfo implements android.text.InputType android.os.Parcelable {
     ctor public EditorInfo();
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public final void makeCompatible(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.inputmethod.EditorInfo> CREATOR;
@@ -52818,21 +52727,21 @@
     field public static final int IME_MASK_ACTION = 255; // 0xff
     field public static final int IME_NULL = 0; // 0x0
     field public int actionId;
-    field public java.lang.CharSequence actionLabel;
-    field public java.lang.String[] contentMimeTypes;
+    field public CharSequence actionLabel;
+    field @Nullable public String[] contentMimeTypes;
     field public android.os.Bundle extras;
     field public int fieldId;
-    field public java.lang.String fieldName;
-    field public android.os.LocaleList hintLocales;
-    field public java.lang.CharSequence hintText;
+    field public String fieldName;
+    field @Nullable public android.os.LocaleList hintLocales;
+    field public CharSequence hintText;
     field public int imeOptions;
     field public int initialCapsMode;
     field public int initialSelEnd;
     field public int initialSelStart;
     field public int inputType;
-    field public java.lang.CharSequence label;
-    field public java.lang.String packageName;
-    field public java.lang.String privateImeOptions;
+    field public CharSequence label;
+    field public String packageName;
+    field public String privateImeOptions;
   }
 
   public class ExtractedText implements android.os.Parcelable {
@@ -52843,13 +52752,13 @@
     field public static final int FLAG_SELECTING = 2; // 0x2
     field public static final int FLAG_SINGLE_LINE = 1; // 0x1
     field public int flags;
-    field public java.lang.CharSequence hint;
+    field public CharSequence hint;
     field public int partialEndOffset;
     field public int partialStartOffset;
     field public int selectionEnd;
     field public int selectionStart;
     field public int startOffset;
-    field public java.lang.CharSequence text;
+    field public CharSequence text;
   }
 
   public class ExtractedTextRequest implements android.os.Parcelable {
@@ -52875,33 +52784,33 @@
     field public static final android.os.Parcelable.Creator<android.view.inputmethod.InputBinding> CREATOR;
   }
 
-  public abstract interface InputConnection {
-    method public abstract boolean beginBatchEdit();
-    method public abstract boolean clearMetaKeyStates(int);
-    method public abstract void closeConnection();
-    method public abstract boolean commitCompletion(android.view.inputmethod.CompletionInfo);
-    method public abstract boolean commitContent(android.view.inputmethod.InputContentInfo, int, android.os.Bundle);
-    method public abstract boolean commitCorrection(android.view.inputmethod.CorrectionInfo);
-    method public abstract boolean commitText(java.lang.CharSequence, int);
-    method public abstract boolean deleteSurroundingText(int, int);
-    method public abstract boolean deleteSurroundingTextInCodePoints(int, int);
-    method public abstract boolean endBatchEdit();
-    method public abstract boolean finishComposingText();
-    method public abstract int getCursorCapsMode(int);
-    method public abstract android.view.inputmethod.ExtractedText getExtractedText(android.view.inputmethod.ExtractedTextRequest, int);
-    method public abstract android.os.Handler getHandler();
-    method public abstract java.lang.CharSequence getSelectedText(int);
-    method public abstract java.lang.CharSequence getTextAfterCursor(int, int);
-    method public abstract java.lang.CharSequence getTextBeforeCursor(int, int);
-    method public abstract boolean performContextMenuAction(int);
-    method public abstract boolean performEditorAction(int);
-    method public abstract boolean performPrivateCommand(java.lang.String, android.os.Bundle);
-    method public abstract boolean reportFullscreenMode(boolean);
-    method public abstract boolean requestCursorUpdates(int);
-    method public abstract boolean sendKeyEvent(android.view.KeyEvent);
-    method public abstract boolean setComposingRegion(int, int);
-    method public abstract boolean setComposingText(java.lang.CharSequence, int);
-    method public abstract boolean setSelection(int, int);
+  public interface InputConnection {
+    method public boolean beginBatchEdit();
+    method public boolean clearMetaKeyStates(int);
+    method public void closeConnection();
+    method public boolean commitCompletion(android.view.inputmethod.CompletionInfo);
+    method public boolean commitContent(@NonNull android.view.inputmethod.InputContentInfo, int, @Nullable android.os.Bundle);
+    method public boolean commitCorrection(android.view.inputmethod.CorrectionInfo);
+    method public boolean commitText(CharSequence, int);
+    method public boolean deleteSurroundingText(int, int);
+    method public boolean deleteSurroundingTextInCodePoints(int, int);
+    method public boolean endBatchEdit();
+    method public boolean finishComposingText();
+    method public int getCursorCapsMode(int);
+    method public android.view.inputmethod.ExtractedText getExtractedText(android.view.inputmethod.ExtractedTextRequest, int);
+    method public android.os.Handler getHandler();
+    method public CharSequence getSelectedText(int);
+    method public CharSequence getTextAfterCursor(int, int);
+    method public CharSequence getTextBeforeCursor(int, int);
+    method public boolean performContextMenuAction(int);
+    method public boolean performEditorAction(int);
+    method public boolean performPrivateCommand(String, android.os.Bundle);
+    method public boolean reportFullscreenMode(boolean);
+    method public boolean requestCursorUpdates(int);
+    method public boolean sendKeyEvent(android.view.KeyEvent);
+    method public boolean setComposingRegion(int, int);
+    method public boolean setComposingText(CharSequence, int);
+    method public boolean setSelection(int, int);
     field public static final int CURSOR_UPDATE_IMMEDIATE = 1; // 0x1
     field public static final int CURSOR_UPDATE_MONITOR = 2; // 0x2
     field public static final int GET_EXTRACTED_TEXT_MONITOR = 1; // 0x1
@@ -52917,7 +52826,7 @@
     method public boolean commitCompletion(android.view.inputmethod.CompletionInfo);
     method public boolean commitContent(android.view.inputmethod.InputContentInfo, int, android.os.Bundle);
     method public boolean commitCorrection(android.view.inputmethod.CorrectionInfo);
-    method public boolean commitText(java.lang.CharSequence, int);
+    method public boolean commitText(CharSequence, int);
     method public boolean deleteSurroundingText(int, int);
     method public boolean deleteSurroundingTextInCodePoints(int, int);
     method public boolean endBatchEdit();
@@ -52925,112 +52834,112 @@
     method public int getCursorCapsMode(int);
     method public android.view.inputmethod.ExtractedText getExtractedText(android.view.inputmethod.ExtractedTextRequest, int);
     method public android.os.Handler getHandler();
-    method public java.lang.CharSequence getSelectedText(int);
-    method public java.lang.CharSequence getTextAfterCursor(int, int);
-    method public java.lang.CharSequence getTextBeforeCursor(int, int);
+    method public CharSequence getSelectedText(int);
+    method public CharSequence getTextAfterCursor(int, int);
+    method public CharSequence getTextBeforeCursor(int, int);
     method public boolean performContextMenuAction(int);
     method public boolean performEditorAction(int);
-    method public boolean performPrivateCommand(java.lang.String, android.os.Bundle);
+    method public boolean performPrivateCommand(String, android.os.Bundle);
     method public boolean reportFullscreenMode(boolean);
     method public boolean requestCursorUpdates(int);
     method public boolean sendKeyEvent(android.view.KeyEvent);
     method public boolean setComposingRegion(int, int);
-    method public boolean setComposingText(java.lang.CharSequence, int);
+    method public boolean setComposingText(CharSequence, int);
     method public boolean setSelection(int, int);
     method public void setTarget(android.view.inputmethod.InputConnection);
   }
 
   public final class InputContentInfo implements android.os.Parcelable {
-    ctor public InputContentInfo(android.net.Uri, android.content.ClipDescription);
-    ctor public InputContentInfo(android.net.Uri, android.content.ClipDescription, android.net.Uri);
+    ctor public InputContentInfo(@NonNull android.net.Uri, @NonNull android.content.ClipDescription);
+    ctor public InputContentInfo(@NonNull android.net.Uri, @NonNull android.content.ClipDescription, @Nullable android.net.Uri);
     method public int describeContents();
-    method public android.net.Uri getContentUri();
-    method public android.content.ClipDescription getDescription();
-    method public android.net.Uri getLinkUri();
+    method @NonNull public android.net.Uri getContentUri();
+    method @NonNull public android.content.ClipDescription getDescription();
+    method @Nullable public android.net.Uri getLinkUri();
     method public void releasePermission();
     method public void requestPermission();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.inputmethod.InputContentInfo> CREATOR;
   }
 
-  public abstract interface InputMethod {
-    method public abstract void attachToken(android.os.IBinder);
-    method public abstract void bindInput(android.view.inputmethod.InputBinding);
-    method public abstract void changeInputMethodSubtype(android.view.inputmethod.InputMethodSubtype);
-    method public abstract void createSession(android.view.inputmethod.InputMethod.SessionCallback);
-    method public abstract void hideSoftInput(int, android.os.ResultReceiver);
-    method public abstract void restartInput(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
-    method public abstract void revokeSession(android.view.inputmethod.InputMethodSession);
-    method public abstract void setSessionEnabled(android.view.inputmethod.InputMethodSession, boolean);
-    method public abstract void showSoftInput(int, android.os.ResultReceiver);
-    method public abstract void startInput(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
-    method public abstract void unbindInput();
-    field public static final java.lang.String SERVICE_INTERFACE = "android.view.InputMethod";
-    field public static final java.lang.String SERVICE_META_DATA = "android.view.im";
+  public interface InputMethod {
+    method @MainThread public void attachToken(android.os.IBinder);
+    method @MainThread public void bindInput(android.view.inputmethod.InputBinding);
+    method @MainThread public void changeInputMethodSubtype(android.view.inputmethod.InputMethodSubtype);
+    method @MainThread public void createSession(android.view.inputmethod.InputMethod.SessionCallback);
+    method @MainThread public void hideSoftInput(int, android.os.ResultReceiver);
+    method @MainThread public void restartInput(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
+    method @MainThread public void revokeSession(android.view.inputmethod.InputMethodSession);
+    method @MainThread public void setSessionEnabled(android.view.inputmethod.InputMethodSession, boolean);
+    method @MainThread public void showSoftInput(int, android.os.ResultReceiver);
+    method @MainThread public void startInput(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
+    method @MainThread public void unbindInput();
+    field public static final String SERVICE_INTERFACE = "android.view.InputMethod";
+    field public static final String SERVICE_META_DATA = "android.view.im";
     field public static final int SHOW_EXPLICIT = 1; // 0x1
     field public static final int SHOW_FORCED = 2; // 0x2
   }
 
-  public static abstract interface InputMethod.SessionCallback {
-    method public abstract void sessionCreated(android.view.inputmethod.InputMethodSession);
+  public static interface InputMethod.SessionCallback {
+    method public void sessionCreated(android.view.inputmethod.InputMethodSession);
   }
 
   public final class InputMethodInfo implements android.os.Parcelable {
     ctor public InputMethodInfo(android.content.Context, android.content.pm.ResolveInfo) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    ctor public InputMethodInfo(java.lang.String, java.lang.String, java.lang.CharSequence, java.lang.String);
+    ctor public InputMethodInfo(String, String, CharSequence, String);
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
+    method public void dump(android.util.Printer, String);
     method public android.content.ComponentName getComponent();
-    method public java.lang.String getId();
+    method public String getId();
     method public int getIsDefaultResourceId();
-    method public java.lang.String getPackageName();
+    method public String getPackageName();
     method public android.content.pm.ServiceInfo getServiceInfo();
-    method public java.lang.String getServiceName();
-    method public java.lang.String getSettingsActivity();
+    method public String getServiceName();
+    method public String getSettingsActivity();
     method public android.view.inputmethod.InputMethodSubtype getSubtypeAt(int);
     method public int getSubtypeCount();
     method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
-    method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
+    method public CharSequence loadLabel(android.content.pm.PackageManager);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.inputmethod.InputMethodInfo> CREATOR;
   }
 
   public final class InputMethodManager {
-    method public void dispatchKeyEventFromInputMethod(android.view.View, android.view.KeyEvent);
+    method public void dispatchKeyEventFromInputMethod(@Nullable android.view.View, @NonNull android.view.KeyEvent);
     method public void displayCompletions(android.view.View, android.view.inputmethod.CompletionInfo[]);
     method public android.view.inputmethod.InputMethodSubtype getCurrentInputMethodSubtype();
     method public java.util.List<android.view.inputmethod.InputMethodInfo> getEnabledInputMethodList();
     method public java.util.List<android.view.inputmethod.InputMethodSubtype> getEnabledInputMethodSubtypeList(android.view.inputmethod.InputMethodInfo, boolean);
     method public java.util.List<android.view.inputmethod.InputMethodInfo> getInputMethodList();
     method public android.view.inputmethod.InputMethodSubtype getLastInputMethodSubtype();
-    method public java.util.Map<android.view.inputmethod.InputMethodInfo, java.util.List<android.view.inputmethod.InputMethodSubtype>> getShortcutInputMethodsAndSubtypes();
-    method public deprecated void hideSoftInputFromInputMethod(android.os.IBinder, int);
+    method public java.util.Map<android.view.inputmethod.InputMethodInfo,java.util.List<android.view.inputmethod.InputMethodSubtype>> getShortcutInputMethodsAndSubtypes();
+    method @Deprecated public void hideSoftInputFromInputMethod(android.os.IBinder, int);
     method public boolean hideSoftInputFromWindow(android.os.IBinder, int);
     method public boolean hideSoftInputFromWindow(android.os.IBinder, int, android.os.ResultReceiver);
-    method public deprecated void hideStatusIcon(android.os.IBinder);
+    method @Deprecated public void hideStatusIcon(android.os.IBinder);
     method public boolean isAcceptingText();
     method public boolean isActive(android.view.View);
     method public boolean isActive();
     method public boolean isFullscreenMode();
-    method public deprecated boolean isWatchingCursor(android.view.View);
+    method @Deprecated public boolean isWatchingCursor(android.view.View);
     method public void restartInput(android.view.View);
-    method public void sendAppPrivateCommand(android.view.View, java.lang.String, android.os.Bundle);
-    method public void setAdditionalInputMethodSubtypes(java.lang.String, android.view.inputmethod.InputMethodSubtype[]);
-    method public boolean setCurrentInputMethodSubtype(android.view.inputmethod.InputMethodSubtype);
-    method public deprecated void setInputMethod(android.os.IBinder, java.lang.String);
-    method public deprecated void setInputMethodAndSubtype(android.os.IBinder, java.lang.String, android.view.inputmethod.InputMethodSubtype);
-    method public deprecated boolean shouldOfferSwitchingToNextInputMethod(android.os.IBinder);
-    method public void showInputMethodAndSubtypeEnabler(java.lang.String);
+    method public void sendAppPrivateCommand(android.view.View, String, android.os.Bundle);
+    method public void setAdditionalInputMethodSubtypes(String, android.view.inputmethod.InputMethodSubtype[]);
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setCurrentInputMethodSubtype(android.view.inputmethod.InputMethodSubtype);
+    method @Deprecated public void setInputMethod(android.os.IBinder, String);
+    method @Deprecated public void setInputMethodAndSubtype(@NonNull android.os.IBinder, String, android.view.inputmethod.InputMethodSubtype);
+    method @Deprecated public boolean shouldOfferSwitchingToNextInputMethod(android.os.IBinder);
+    method public void showInputMethodAndSubtypeEnabler(String);
     method public void showInputMethodPicker();
     method public boolean showSoftInput(android.view.View, int);
     method public boolean showSoftInput(android.view.View, int, android.os.ResultReceiver);
-    method public deprecated void showSoftInputFromInputMethod(android.os.IBinder, int);
-    method public deprecated void showStatusIcon(android.os.IBinder, java.lang.String, int);
-    method public deprecated boolean switchToLastInputMethod(android.os.IBinder);
-    method public deprecated boolean switchToNextInputMethod(android.os.IBinder, boolean);
+    method @Deprecated public void showSoftInputFromInputMethod(android.os.IBinder, int);
+    method @Deprecated public void showStatusIcon(android.os.IBinder, String, @DrawableRes int);
+    method @Deprecated public boolean switchToLastInputMethod(android.os.IBinder);
+    method @Deprecated public boolean switchToNextInputMethod(android.os.IBinder, boolean);
     method public void toggleSoftInput(int, int);
     method public void toggleSoftInputFromWindow(android.os.IBinder, int, int);
-    method public deprecated void updateCursor(android.view.View, int, int, int, int);
+    method @Deprecated public void updateCursor(android.view.View, int, int, int, int);
     method public void updateCursorAnchorInfo(android.view.View, android.view.inputmethod.CursorAnchorInfo);
     method public void updateExtractedText(android.view.View, int, android.view.inputmethod.ExtractedText);
     method public void updateSelection(android.view.View, int, int, int, int);
@@ -53045,37 +52954,37 @@
     field public static final int SHOW_IMPLICIT = 1; // 0x1
   }
 
-  public abstract interface InputMethodSession {
-    method public abstract void appPrivateCommand(java.lang.String, android.os.Bundle);
-    method public abstract void dispatchGenericMotionEvent(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback);
-    method public abstract void dispatchKeyEvent(int, android.view.KeyEvent, android.view.inputmethod.InputMethodSession.EventCallback);
-    method public abstract void dispatchTrackballEvent(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback);
-    method public abstract void displayCompletions(android.view.inputmethod.CompletionInfo[]);
-    method public abstract void finishInput();
-    method public abstract void toggleSoftInput(int, int);
-    method public abstract void updateCursor(android.graphics.Rect);
-    method public abstract void updateCursorAnchorInfo(android.view.inputmethod.CursorAnchorInfo);
-    method public abstract void updateExtractedText(int, android.view.inputmethod.ExtractedText);
-    method public abstract void updateSelection(int, int, int, int, int, int);
-    method public abstract void viewClicked(boolean);
+  public interface InputMethodSession {
+    method public void appPrivateCommand(String, android.os.Bundle);
+    method public void dispatchGenericMotionEvent(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback);
+    method public void dispatchKeyEvent(int, android.view.KeyEvent, android.view.inputmethod.InputMethodSession.EventCallback);
+    method public void dispatchTrackballEvent(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback);
+    method public void displayCompletions(android.view.inputmethod.CompletionInfo[]);
+    method public void finishInput();
+    method public void toggleSoftInput(int, int);
+    method public void updateCursor(android.graphics.Rect);
+    method public void updateCursorAnchorInfo(android.view.inputmethod.CursorAnchorInfo);
+    method public void updateExtractedText(int, android.view.inputmethod.ExtractedText);
+    method public void updateSelection(int, int, int, int, int, int);
+    method public void viewClicked(boolean);
   }
 
-  public static abstract interface InputMethodSession.EventCallback {
-    method public abstract void finishedEvent(int, boolean);
+  public static interface InputMethodSession.EventCallback {
+    method public void finishedEvent(int, boolean);
   }
 
   public final class InputMethodSubtype implements android.os.Parcelable {
-    ctor public deprecated InputMethodSubtype(int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean);
-    ctor public deprecated InputMethodSubtype(int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int);
-    method public boolean containsExtraValueKey(java.lang.String);
+    ctor @Deprecated public InputMethodSubtype(int, int, String, String, String, boolean, boolean);
+    ctor @Deprecated public InputMethodSubtype(int, int, String, String, String, boolean, boolean, int);
+    method public boolean containsExtraValueKey(String);
     method public int describeContents();
-    method public java.lang.CharSequence getDisplayName(android.content.Context, java.lang.String, android.content.pm.ApplicationInfo);
-    method public java.lang.String getExtraValue();
-    method public java.lang.String getExtraValueOf(java.lang.String);
+    method @NonNull public CharSequence getDisplayName(android.content.Context, String, android.content.pm.ApplicationInfo);
+    method public String getExtraValue();
+    method public String getExtraValueOf(String);
     method public int getIconResId();
-    method public java.lang.String getLanguageTag();
-    method public deprecated java.lang.String getLocale();
-    method public java.lang.String getMode();
+    method @NonNull public String getLanguageTag();
+    method @Deprecated @NonNull public String getLocale();
+    method public String getMode();
     method public int getNameResId();
     method public boolean isAsciiCapable();
     method public boolean isAuxiliary();
@@ -53089,13 +52998,13 @@
     method public android.view.inputmethod.InputMethodSubtype build();
     method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setIsAsciiCapable(boolean);
     method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setIsAuxiliary(boolean);
-    method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setLanguageTag(java.lang.String);
+    method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setLanguageTag(String);
     method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setOverridesImplicitlyEnabledSubtype(boolean);
-    method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setSubtypeExtraValue(java.lang.String);
+    method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setSubtypeExtraValue(String);
     method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setSubtypeIconResId(int);
     method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setSubtypeId(int);
-    method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setSubtypeLocale(java.lang.String);
-    method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setSubtypeMode(java.lang.String);
+    method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setSubtypeLocale(String);
+    method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setSubtypeMode(String);
     method public android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder setSubtypeNameResId(int);
   }
 
@@ -53103,10 +53012,10 @@
 
 package android.view.inspector {
 
-  public abstract interface InspectionCompanion<T> {
-    method public default java.lang.String getNodeName();
-    method public abstract void mapProperties(android.view.inspector.PropertyMapper);
-    method public abstract void readProperties(T, android.view.inspector.PropertyReader);
+  public interface InspectionCompanion<T> {
+    method @Nullable public default String getNodeName();
+    method public void mapProperties(@NonNull android.view.inspector.PropertyMapper);
+    method public void readProperties(@NonNull T, @NonNull android.view.inspector.PropertyReader);
   }
 
   public static class InspectionCompanion.UninitializedPropertyMapException extends java.lang.RuntimeException {
@@ -53114,57 +53023,57 @@
   }
 
   public final class IntFlagMapping {
-    method public java.util.Set<java.lang.String> get(int);
+    method @NonNull public java.util.Set<java.lang.String> get(int);
   }
 
   public static final class IntFlagMapping.Builder {
     ctor public IntFlagMapping.Builder();
-    method public android.view.inspector.IntFlagMapping.Builder addFlag(java.lang.String, int);
-    method public android.view.inspector.IntFlagMapping.Builder addFlag(java.lang.String, int, int);
-    method public android.view.inspector.IntFlagMapping build();
+    method @NonNull public android.view.inspector.IntFlagMapping.Builder addFlag(@NonNull String, int);
+    method @NonNull public android.view.inspector.IntFlagMapping.Builder addFlag(@NonNull String, int, int);
+    method @NonNull public android.view.inspector.IntFlagMapping build();
   }
 
-  public abstract interface PropertyMapper {
-    method public abstract int mapBoolean(java.lang.String, int);
-    method public abstract int mapByte(java.lang.String, int);
-    method public abstract int mapChar(java.lang.String, int);
-    method public abstract int mapColor(java.lang.String, int);
-    method public abstract int mapDouble(java.lang.String, int);
-    method public abstract int mapFloat(java.lang.String, int);
-    method public abstract int mapGravity(java.lang.String, int);
-    method public abstract int mapInt(java.lang.String, int);
-    method public abstract int mapIntEnum(java.lang.String, int, android.util.SparseArray<java.lang.String>);
-    method public abstract int mapIntFlag(java.lang.String, int, android.view.inspector.IntFlagMapping);
-    method public abstract int mapLong(java.lang.String, int);
-    method public abstract int mapObject(java.lang.String, int);
-    method public abstract int mapShort(java.lang.String, int);
+  public interface PropertyMapper {
+    method public int mapBoolean(@NonNull String, @AttrRes int);
+    method public int mapByte(@NonNull String, @AttrRes int);
+    method public int mapChar(@NonNull String, @AttrRes int);
+    method public int mapColor(@NonNull String, @AttrRes int);
+    method public int mapDouble(@NonNull String, @AttrRes int);
+    method public int mapFloat(@NonNull String, @AttrRes int);
+    method public int mapGravity(@NonNull String, @AttrRes int);
+    method public int mapInt(@NonNull String, @AttrRes int);
+    method public int mapIntEnum(@NonNull String, @AttrRes int, @NonNull android.util.SparseArray<java.lang.String>);
+    method public int mapIntFlag(@NonNull String, @AttrRes int, @NonNull android.view.inspector.IntFlagMapping);
+    method public int mapLong(@NonNull String, @AttrRes int);
+    method public int mapObject(@NonNull String, @AttrRes int);
+    method public int mapShort(@NonNull String, @AttrRes int);
   }
 
   public static class PropertyMapper.PropertyConflictException extends java.lang.RuntimeException {
-    ctor public PropertyMapper.PropertyConflictException(java.lang.String, java.lang.String, java.lang.String);
+    ctor public PropertyMapper.PropertyConflictException(@NonNull String, @NonNull String, @NonNull String);
   }
 
-  public abstract interface PropertyReader {
-    method public abstract void readBoolean(int, boolean);
-    method public abstract void readByte(int, byte);
-    method public abstract void readChar(int, char);
-    method public abstract void readColor(int, int);
-    method public abstract void readColor(int, long);
-    method public abstract void readColor(int, android.graphics.Color);
-    method public abstract void readDouble(int, double);
-    method public abstract void readFloat(int, float);
-    method public abstract void readGravity(int, int);
-    method public abstract void readInt(int, int);
-    method public abstract void readIntEnum(int, int);
-    method public abstract void readIntFlag(int, int);
-    method public abstract void readLong(int, long);
-    method public abstract void readObject(int, java.lang.Object);
-    method public abstract void readShort(int, short);
+  public interface PropertyReader {
+    method public void readBoolean(int, boolean);
+    method public void readByte(int, byte);
+    method public void readChar(int, char);
+    method public void readColor(int, @ColorInt int);
+    method public void readColor(int, @ColorLong long);
+    method public void readColor(int, @Nullable android.graphics.Color);
+    method public void readDouble(int, double);
+    method public void readFloat(int, float);
+    method public void readGravity(int, int);
+    method public void readInt(int, int);
+    method public void readIntEnum(int, int);
+    method public void readIntFlag(int, int);
+    method public void readLong(int, long);
+    method public void readObject(int, @Nullable Object);
+    method public void readShort(int, short);
   }
 
   public static class PropertyReader.PropertyTypeMismatchException extends java.lang.RuntimeException {
-    ctor public PropertyReader.PropertyTypeMismatchException(int, java.lang.String, java.lang.String, java.lang.String);
-    ctor public PropertyReader.PropertyTypeMismatchException(int, java.lang.String, java.lang.String);
+    ctor public PropertyReader.PropertyTypeMismatchException(int, @NonNull String, @NonNull String, @Nullable String);
+    ctor public PropertyReader.PropertyTypeMismatchException(int, @NonNull String, @NonNull String);
   }
 
 }
@@ -53173,49 +53082,49 @@
 
   public final class ConversationAction implements android.os.Parcelable {
     method public int describeContents();
-    method public android.app.RemoteAction getAction();
-    method public float getConfidenceScore();
-    method public android.os.Bundle getExtras();
-    method public java.lang.CharSequence getTextReply();
-    method public java.lang.String getType();
+    method @Nullable public android.app.RemoteAction getAction();
+    method @FloatRange(from=0, to=1) public float getConfidenceScore();
+    method @NonNull public android.os.Bundle getExtras();
+    method @Nullable public CharSequence getTextReply();
+    method @NonNull public String getType();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.ConversationAction> CREATOR;
-    field public static final java.lang.String TYPE_CALL_PHONE = "call_phone";
-    field public static final java.lang.String TYPE_CREATE_REMINDER = "create_reminder";
-    field public static final java.lang.String TYPE_OPEN_URL = "open_url";
-    field public static final java.lang.String TYPE_SEND_EMAIL = "send_email";
-    field public static final java.lang.String TYPE_SEND_SMS = "send_sms";
-    field public static final java.lang.String TYPE_SHARE_LOCATION = "share_location";
-    field public static final java.lang.String TYPE_TEXT_REPLY = "text_reply";
-    field public static final java.lang.String TYPE_TRACK_FLIGHT = "track_flight";
-    field public static final java.lang.String TYPE_VIEW_CALENDAR = "view_calendar";
-    field public static final java.lang.String TYPE_VIEW_MAP = "view_map";
+    field public static final String TYPE_CALL_PHONE = "call_phone";
+    field public static final String TYPE_CREATE_REMINDER = "create_reminder";
+    field public static final String TYPE_OPEN_URL = "open_url";
+    field public static final String TYPE_SEND_EMAIL = "send_email";
+    field public static final String TYPE_SEND_SMS = "send_sms";
+    field public static final String TYPE_SHARE_LOCATION = "share_location";
+    field public static final String TYPE_TEXT_REPLY = "text_reply";
+    field public static final String TYPE_TRACK_FLIGHT = "track_flight";
+    field public static final String TYPE_VIEW_CALENDAR = "view_calendar";
+    field public static final String TYPE_VIEW_MAP = "view_map";
   }
 
   public static final class ConversationAction.Builder {
-    ctor public ConversationAction.Builder(java.lang.String);
-    method public android.view.textclassifier.ConversationAction build();
-    method public android.view.textclassifier.ConversationAction.Builder setAction(android.app.RemoteAction);
-    method public android.view.textclassifier.ConversationAction.Builder setConfidenceScore(float);
-    method public android.view.textclassifier.ConversationAction.Builder setExtras(android.os.Bundle);
-    method public android.view.textclassifier.ConversationAction.Builder setTextReply(java.lang.CharSequence);
+    ctor public ConversationAction.Builder(@NonNull String);
+    method @NonNull public android.view.textclassifier.ConversationAction build();
+    method @NonNull public android.view.textclassifier.ConversationAction.Builder setAction(@Nullable android.app.RemoteAction);
+    method @NonNull public android.view.textclassifier.ConversationAction.Builder setConfidenceScore(@FloatRange(from=0, to=1) float);
+    method @NonNull public android.view.textclassifier.ConversationAction.Builder setExtras(@Nullable android.os.Bundle);
+    method @NonNull public android.view.textclassifier.ConversationAction.Builder setTextReply(@Nullable CharSequence);
   }
 
   public final class ConversationActions implements android.os.Parcelable {
-    ctor public ConversationActions(java.util.List<android.view.textclassifier.ConversationAction>, java.lang.String);
+    ctor public ConversationActions(@NonNull java.util.List<android.view.textclassifier.ConversationAction>, @Nullable String);
     method public int describeContents();
-    method public java.util.List<android.view.textclassifier.ConversationAction> getConversationActions();
-    method public java.lang.String getId();
+    method @NonNull public java.util.List<android.view.textclassifier.ConversationAction> getConversationActions();
+    method @Nullable public String getId();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.ConversationActions> CREATOR;
   }
 
   public static final class ConversationActions.Message implements android.os.Parcelable {
     method public int describeContents();
-    method public android.app.Person getAuthor();
-    method public android.os.Bundle getExtras();
-    method public java.time.ZonedDateTime getReferenceTime();
-    method public java.lang.CharSequence getText();
+    method @NonNull public android.app.Person getAuthor();
+    method @NonNull public android.os.Bundle getExtras();
+    method @Nullable public java.time.ZonedDateTime getReferenceTime();
+    method @Nullable public CharSequence getText();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.ConversationActions.Message> CREATOR;
     field public static final android.app.Person PERSON_USER_LOCAL;
@@ -53223,60 +53132,60 @@
   }
 
   public static final class ConversationActions.Message.Builder {
-    ctor public ConversationActions.Message.Builder(android.app.Person);
-    method public android.view.textclassifier.ConversationActions.Message build();
-    method public android.view.textclassifier.ConversationActions.Message.Builder setExtras(android.os.Bundle);
-    method public android.view.textclassifier.ConversationActions.Message.Builder setReferenceTime(java.time.ZonedDateTime);
-    method public android.view.textclassifier.ConversationActions.Message.Builder setText(java.lang.CharSequence);
+    ctor public ConversationActions.Message.Builder(@NonNull android.app.Person);
+    method @NonNull public android.view.textclassifier.ConversationActions.Message build();
+    method @NonNull public android.view.textclassifier.ConversationActions.Message.Builder setExtras(@Nullable android.os.Bundle);
+    method @NonNull public android.view.textclassifier.ConversationActions.Message.Builder setReferenceTime(@Nullable java.time.ZonedDateTime);
+    method @NonNull public android.view.textclassifier.ConversationActions.Message.Builder setText(@Nullable CharSequence);
   }
 
   public static final class ConversationActions.Request implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getCallingPackageName();
-    method public java.util.List<android.view.textclassifier.ConversationActions.Message> getConversation();
-    method public java.lang.String getConversationId();
-    method public java.util.List<java.lang.String> getHints();
-    method public int getMaxSuggestions();
-    method public android.view.textclassifier.TextClassifier.EntityConfig getTypeConfig();
+    method @Nullable public String getCallingPackageName();
+    method @NonNull public java.util.List<android.view.textclassifier.ConversationActions.Message> getConversation();
+    method @Nullable public String getConversationId();
+    method @Nullable public java.util.List<java.lang.String> getHints();
+    method @IntRange(from=0) public int getMaxSuggestions();
+    method @NonNull public android.view.textclassifier.TextClassifier.EntityConfig getTypeConfig();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.ConversationActions.Request> CREATOR;
-    field public static final java.lang.String HINT_FOR_IN_APP = "in_app";
-    field public static final java.lang.String HINT_FOR_NOTIFICATION = "notification";
+    field public static final String HINT_FOR_IN_APP = "in_app";
+    field public static final String HINT_FOR_NOTIFICATION = "notification";
   }
 
   public static final class ConversationActions.Request.Builder {
-    ctor public ConversationActions.Request.Builder(java.util.List<android.view.textclassifier.ConversationActions.Message>);
-    method public android.view.textclassifier.ConversationActions.Request build();
-    method public android.view.textclassifier.ConversationActions.Request.Builder setConversationId(java.lang.String);
-    method public android.view.textclassifier.ConversationActions.Request.Builder setHints(java.util.List<java.lang.String>);
-    method public android.view.textclassifier.ConversationActions.Request.Builder setMaxSuggestions(int);
-    method public android.view.textclassifier.ConversationActions.Request.Builder setTypeConfig(android.view.textclassifier.TextClassifier.EntityConfig);
+    ctor public ConversationActions.Request.Builder(@NonNull java.util.List<android.view.textclassifier.ConversationActions.Message>);
+    method @NonNull public android.view.textclassifier.ConversationActions.Request build();
+    method @NonNull public android.view.textclassifier.ConversationActions.Request.Builder setConversationId(@Nullable String);
+    method public android.view.textclassifier.ConversationActions.Request.Builder setHints(@Nullable java.util.List<java.lang.String>);
+    method @NonNull public android.view.textclassifier.ConversationActions.Request.Builder setMaxSuggestions(@IntRange(from=0) int);
+    method @NonNull public android.view.textclassifier.ConversationActions.Request.Builder setTypeConfig(@Nullable android.view.textclassifier.TextClassifier.EntityConfig);
   }
 
   public final class SelectionEvent implements android.os.Parcelable {
-    method public static android.view.textclassifier.SelectionEvent createSelectionActionEvent(int, int, int);
-    method public static android.view.textclassifier.SelectionEvent createSelectionActionEvent(int, int, int, android.view.textclassifier.TextClassification);
-    method public static android.view.textclassifier.SelectionEvent createSelectionModifiedEvent(int, int);
-    method public static android.view.textclassifier.SelectionEvent createSelectionModifiedEvent(int, int, android.view.textclassifier.TextClassification);
-    method public static android.view.textclassifier.SelectionEvent createSelectionModifiedEvent(int, int, android.view.textclassifier.TextSelection);
-    method public static android.view.textclassifier.SelectionEvent createSelectionStartedEvent(int, int);
+    method @NonNull public static android.view.textclassifier.SelectionEvent createSelectionActionEvent(int, int, int);
+    method @NonNull public static android.view.textclassifier.SelectionEvent createSelectionActionEvent(int, int, int, @NonNull android.view.textclassifier.TextClassification);
+    method @NonNull public static android.view.textclassifier.SelectionEvent createSelectionModifiedEvent(int, int);
+    method @NonNull public static android.view.textclassifier.SelectionEvent createSelectionModifiedEvent(int, int, @NonNull android.view.textclassifier.TextClassification);
+    method @NonNull public static android.view.textclassifier.SelectionEvent createSelectionModifiedEvent(int, int, @NonNull android.view.textclassifier.TextSelection);
+    method @NonNull public static android.view.textclassifier.SelectionEvent createSelectionStartedEvent(int, int);
     method public int describeContents();
     method public long getDurationSincePreviousEvent();
     method public long getDurationSinceSessionStart();
     method public int getEnd();
-    method public java.lang.String getEntityType();
+    method @NonNull public String getEntityType();
     method public int getEventIndex();
     method public long getEventTime();
     method public int getEventType();
     method public int getInvocationMethod();
-    method public java.lang.String getPackageName();
-    method public java.lang.String getResultId();
-    method public android.view.textclassifier.TextClassificationSessionId getSessionId();
+    method @NonNull public String getPackageName();
+    method @Nullable public String getResultId();
+    method @Nullable public android.view.textclassifier.TextClassificationSessionId getSessionId();
     method public int getSmartEnd();
     method public int getSmartStart();
     method public int getStart();
-    method public java.lang.String getWidgetType();
-    method public java.lang.String getWidgetVersion();
+    method @NonNull public String getWidgetType();
+    method @Nullable public String getWidgetVersion();
     method public static boolean isTerminal(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int ACTION_ABANDON = 107; // 0x6b
@@ -53304,79 +53213,79 @@
   public final class TextClassification implements android.os.Parcelable {
     method public int describeContents();
     method public java.util.List<android.app.RemoteAction> getActions();
-    method public float getConfidenceScore(java.lang.String);
-    method public java.lang.String getEntity(int);
-    method public int getEntityCount();
-    method public android.os.Bundle getExtras();
-    method public deprecated android.graphics.drawable.Drawable getIcon();
-    method public java.lang.String getId();
-    method public deprecated android.content.Intent getIntent();
-    method public deprecated java.lang.CharSequence getLabel();
-    method public deprecated android.view.View.OnClickListener getOnClickListener();
-    method public java.lang.String getText();
+    method @FloatRange(from=0.0, to=1.0) public float getConfidenceScore(String);
+    method @NonNull public String getEntity(int);
+    method @IntRange(from=0) public int getEntityCount();
+    method @NonNull public android.os.Bundle getExtras();
+    method @Deprecated @Nullable public android.graphics.drawable.Drawable getIcon();
+    method @Nullable public String getId();
+    method @Deprecated @Nullable public android.content.Intent getIntent();
+    method @Deprecated @Nullable public CharSequence getLabel();
+    method @Deprecated @Nullable public android.view.View.OnClickListener getOnClickListener();
+    method @Nullable public String getText();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextClassification> CREATOR;
   }
 
   public static final class TextClassification.Builder {
     ctor public TextClassification.Builder();
-    method public android.view.textclassifier.TextClassification.Builder addAction(android.app.RemoteAction);
-    method public android.view.textclassifier.TextClassification build();
-    method public android.view.textclassifier.TextClassification.Builder setEntityType(java.lang.String, float);
-    method public android.view.textclassifier.TextClassification.Builder setExtras(android.os.Bundle);
-    method public deprecated android.view.textclassifier.TextClassification.Builder setIcon(android.graphics.drawable.Drawable);
-    method public android.view.textclassifier.TextClassification.Builder setId(java.lang.String);
-    method public deprecated android.view.textclassifier.TextClassification.Builder setIntent(android.content.Intent);
-    method public deprecated android.view.textclassifier.TextClassification.Builder setLabel(java.lang.String);
-    method public deprecated android.view.textclassifier.TextClassification.Builder setOnClickListener(android.view.View.OnClickListener);
-    method public android.view.textclassifier.TextClassification.Builder setText(java.lang.String);
+    method @NonNull public android.view.textclassifier.TextClassification.Builder addAction(@NonNull android.app.RemoteAction);
+    method @NonNull public android.view.textclassifier.TextClassification build();
+    method @NonNull public android.view.textclassifier.TextClassification.Builder setEntityType(@NonNull String, @FloatRange(from=0.0, to=1.0) float);
+    method @NonNull public android.view.textclassifier.TextClassification.Builder setExtras(@Nullable android.os.Bundle);
+    method @Deprecated @NonNull public android.view.textclassifier.TextClassification.Builder setIcon(@Nullable android.graphics.drawable.Drawable);
+    method @NonNull public android.view.textclassifier.TextClassification.Builder setId(@Nullable String);
+    method @Deprecated @NonNull public android.view.textclassifier.TextClassification.Builder setIntent(@Nullable android.content.Intent);
+    method @Deprecated @NonNull public android.view.textclassifier.TextClassification.Builder setLabel(@Nullable String);
+    method @Deprecated @NonNull public android.view.textclassifier.TextClassification.Builder setOnClickListener(@Nullable android.view.View.OnClickListener);
+    method @NonNull public android.view.textclassifier.TextClassification.Builder setText(@Nullable String);
   }
 
   public static final class TextClassification.Request implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getCallingPackageName();
-    method public android.os.LocaleList getDefaultLocales();
-    method public int getEndIndex();
-    method public android.os.Bundle getExtras();
-    method public java.time.ZonedDateTime getReferenceTime();
-    method public int getStartIndex();
-    method public java.lang.CharSequence getText();
+    method @Nullable public String getCallingPackageName();
+    method @Nullable public android.os.LocaleList getDefaultLocales();
+    method @IntRange(from=0) public int getEndIndex();
+    method @NonNull public android.os.Bundle getExtras();
+    method @Nullable public java.time.ZonedDateTime getReferenceTime();
+    method @IntRange(from=0) public int getStartIndex();
+    method @NonNull public CharSequence getText();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextClassification.Request> CREATOR;
   }
 
   public static final class TextClassification.Request.Builder {
-    ctor public TextClassification.Request.Builder(java.lang.CharSequence, int, int);
-    method public android.view.textclassifier.TextClassification.Request build();
-    method public android.view.textclassifier.TextClassification.Request.Builder setDefaultLocales(android.os.LocaleList);
-    method public android.view.textclassifier.TextClassification.Request.Builder setExtras(android.os.Bundle);
-    method public android.view.textclassifier.TextClassification.Request.Builder setReferenceTime(java.time.ZonedDateTime);
+    ctor public TextClassification.Request.Builder(@NonNull CharSequence, @IntRange(from=0) int, @IntRange(from=0) int);
+    method @NonNull public android.view.textclassifier.TextClassification.Request build();
+    method @NonNull public android.view.textclassifier.TextClassification.Request.Builder setDefaultLocales(@Nullable android.os.LocaleList);
+    method @NonNull public android.view.textclassifier.TextClassification.Request.Builder setExtras(@Nullable android.os.Bundle);
+    method @NonNull public android.view.textclassifier.TextClassification.Request.Builder setReferenceTime(@Nullable java.time.ZonedDateTime);
   }
 
   public final class TextClassificationContext implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getPackageName();
-    method public java.lang.String getWidgetType();
-    method public java.lang.String getWidgetVersion();
+    method @NonNull public String getPackageName();
+    method @NonNull public String getWidgetType();
+    method @Nullable public String getWidgetVersion();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextClassificationContext> CREATOR;
   }
 
   public static final class TextClassificationContext.Builder {
-    ctor public TextClassificationContext.Builder(java.lang.String, java.lang.String);
-    method public android.view.textclassifier.TextClassificationContext build();
-    method public android.view.textclassifier.TextClassificationContext.Builder setWidgetVersion(java.lang.String);
+    ctor public TextClassificationContext.Builder(@NonNull String, @NonNull String);
+    method @NonNull public android.view.textclassifier.TextClassificationContext build();
+    method public android.view.textclassifier.TextClassificationContext.Builder setWidgetVersion(@Nullable String);
   }
 
   public final class TextClassificationManager {
-    method public android.view.textclassifier.TextClassifier createTextClassificationSession(android.view.textclassifier.TextClassificationContext);
-    method public android.view.textclassifier.TextClassifier getTextClassifier();
-    method public void setTextClassificationSessionFactory(android.view.textclassifier.TextClassificationSessionFactory);
-    method public void setTextClassifier(android.view.textclassifier.TextClassifier);
+    method @NonNull public android.view.textclassifier.TextClassifier createTextClassificationSession(@NonNull android.view.textclassifier.TextClassificationContext);
+    method @NonNull public android.view.textclassifier.TextClassifier getTextClassifier();
+    method public void setTextClassificationSessionFactory(@Nullable android.view.textclassifier.TextClassificationSessionFactory);
+    method public void setTextClassifier(@Nullable android.view.textclassifier.TextClassifier);
   }
 
-  public abstract interface TextClassificationSessionFactory {
-    method public abstract android.view.textclassifier.TextClassifier createTextClassificationSession(android.view.textclassifier.TextClassificationContext);
+  public interface TextClassificationSessionFactory {
+    method @NonNull public android.view.textclassifier.TextClassifier createTextClassificationSession(@NonNull android.view.textclassifier.TextClassificationContext);
   }
 
   public final class TextClassificationSessionId implements android.os.Parcelable {
@@ -53385,51 +53294,51 @@
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextClassificationSessionId> CREATOR;
   }
 
-  public abstract interface TextClassifier {
-    method public default android.view.textclassifier.TextClassification classifyText(android.view.textclassifier.TextClassification.Request);
-    method public default android.view.textclassifier.TextClassification classifyText(java.lang.CharSequence, int, int, android.os.LocaleList);
+  public interface TextClassifier {
+    method @WorkerThread @NonNull public default android.view.textclassifier.TextClassification classifyText(@NonNull android.view.textclassifier.TextClassification.Request);
+    method @WorkerThread @NonNull public default android.view.textclassifier.TextClassification classifyText(@NonNull CharSequence, @IntRange(from=0) int, @IntRange(from=0) int, @Nullable android.os.LocaleList);
     method public default void destroy();
-    method public default android.view.textclassifier.TextLanguage detectLanguage(android.view.textclassifier.TextLanguage.Request);
-    method public default android.view.textclassifier.TextLinks generateLinks(android.view.textclassifier.TextLinks.Request);
-    method public default int getMaxGenerateLinksTextLength();
+    method @WorkerThread @NonNull public default android.view.textclassifier.TextLanguage detectLanguage(@NonNull android.view.textclassifier.TextLanguage.Request);
+    method @WorkerThread @NonNull public default android.view.textclassifier.TextLinks generateLinks(@NonNull android.view.textclassifier.TextLinks.Request);
+    method @WorkerThread public default int getMaxGenerateLinksTextLength();
     method public default boolean isDestroyed();
-    method public default void onSelectionEvent(android.view.textclassifier.SelectionEvent);
-    method public default void onTextClassifierEvent(android.view.textclassifier.TextClassifierEvent);
-    method public default android.view.textclassifier.ConversationActions suggestConversationActions(android.view.textclassifier.ConversationActions.Request);
-    method public default android.view.textclassifier.TextSelection suggestSelection(android.view.textclassifier.TextSelection.Request);
-    method public default android.view.textclassifier.TextSelection suggestSelection(java.lang.CharSequence, int, int, android.os.LocaleList);
-    field public static final java.lang.String EXTRA_FROM_TEXT_CLASSIFIER = "android.view.textclassifier.extra.FROM_TEXT_CLASSIFIER";
-    field public static final java.lang.String HINT_TEXT_IS_EDITABLE = "android.text_is_editable";
-    field public static final java.lang.String HINT_TEXT_IS_NOT_EDITABLE = "android.text_is_not_editable";
+    method public default void onSelectionEvent(@NonNull android.view.textclassifier.SelectionEvent);
+    method public default void onTextClassifierEvent(@NonNull android.view.textclassifier.TextClassifierEvent);
+    method @WorkerThread public default android.view.textclassifier.ConversationActions suggestConversationActions(@NonNull android.view.textclassifier.ConversationActions.Request);
+    method @WorkerThread @NonNull public default android.view.textclassifier.TextSelection suggestSelection(@NonNull android.view.textclassifier.TextSelection.Request);
+    method @WorkerThread @NonNull public default android.view.textclassifier.TextSelection suggestSelection(@NonNull CharSequence, @IntRange(from=0) int, @IntRange(from=0) int, @Nullable android.os.LocaleList);
+    field public static final String EXTRA_FROM_TEXT_CLASSIFIER = "android.view.textclassifier.extra.FROM_TEXT_CLASSIFIER";
+    field public static final String HINT_TEXT_IS_EDITABLE = "android.text_is_editable";
+    field public static final String HINT_TEXT_IS_NOT_EDITABLE = "android.text_is_not_editable";
     field public static final android.view.textclassifier.TextClassifier NO_OP;
-    field public static final java.lang.String TYPE_ADDRESS = "address";
-    field public static final java.lang.String TYPE_DATE = "date";
-    field public static final java.lang.String TYPE_DATE_TIME = "datetime";
-    field public static final java.lang.String TYPE_EMAIL = "email";
-    field public static final java.lang.String TYPE_FLIGHT_NUMBER = "flight";
-    field public static final java.lang.String TYPE_OTHER = "other";
-    field public static final java.lang.String TYPE_PHONE = "phone";
-    field public static final java.lang.String TYPE_UNKNOWN = "";
-    field public static final java.lang.String TYPE_URL = "url";
-    field public static final java.lang.String WIDGET_TYPE_CUSTOM_EDITTEXT = "customedit";
-    field public static final java.lang.String WIDGET_TYPE_CUSTOM_TEXTVIEW = "customview";
-    field public static final java.lang.String WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEW = "nosel-customview";
-    field public static final java.lang.String WIDGET_TYPE_EDITTEXT = "edittext";
-    field public static final java.lang.String WIDGET_TYPE_EDIT_WEBVIEW = "edit-webview";
-    field public static final java.lang.String WIDGET_TYPE_NOTIFICATION = "notification";
-    field public static final java.lang.String WIDGET_TYPE_TEXTVIEW = "textview";
-    field public static final java.lang.String WIDGET_TYPE_UNKNOWN = "unknown";
-    field public static final java.lang.String WIDGET_TYPE_UNSELECTABLE_TEXTVIEW = "nosel-textview";
-    field public static final java.lang.String WIDGET_TYPE_WEBVIEW = "webview";
+    field public static final String TYPE_ADDRESS = "address";
+    field public static final String TYPE_DATE = "date";
+    field public static final String TYPE_DATE_TIME = "datetime";
+    field public static final String TYPE_EMAIL = "email";
+    field public static final String TYPE_FLIGHT_NUMBER = "flight";
+    field public static final String TYPE_OTHER = "other";
+    field public static final String TYPE_PHONE = "phone";
+    field public static final String TYPE_UNKNOWN = "";
+    field public static final String TYPE_URL = "url";
+    field public static final String WIDGET_TYPE_CUSTOM_EDITTEXT = "customedit";
+    field public static final String WIDGET_TYPE_CUSTOM_TEXTVIEW = "customview";
+    field public static final String WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEW = "nosel-customview";
+    field public static final String WIDGET_TYPE_EDITTEXT = "edittext";
+    field public static final String WIDGET_TYPE_EDIT_WEBVIEW = "edit-webview";
+    field public static final String WIDGET_TYPE_NOTIFICATION = "notification";
+    field public static final String WIDGET_TYPE_TEXTVIEW = "textview";
+    field public static final String WIDGET_TYPE_UNKNOWN = "unknown";
+    field public static final String WIDGET_TYPE_UNSELECTABLE_TEXTVIEW = "nosel-textview";
+    field public static final String WIDGET_TYPE_WEBVIEW = "webview";
   }
 
   public static final class TextClassifier.EntityConfig implements android.os.Parcelable {
-    method public static deprecated android.view.textclassifier.TextClassifier.EntityConfig create(java.util.Collection<java.lang.String>, java.util.Collection<java.lang.String>, java.util.Collection<java.lang.String>);
-    method public static deprecated android.view.textclassifier.TextClassifier.EntityConfig createWithExplicitEntityList(java.util.Collection<java.lang.String>);
-    method public static deprecated android.view.textclassifier.TextClassifier.EntityConfig createWithHints(java.util.Collection<java.lang.String>);
+    method @Deprecated public static android.view.textclassifier.TextClassifier.EntityConfig create(@Nullable java.util.Collection<java.lang.String>, @Nullable java.util.Collection<java.lang.String>, @Nullable java.util.Collection<java.lang.String>);
+    method @Deprecated public static android.view.textclassifier.TextClassifier.EntityConfig createWithExplicitEntityList(@Nullable java.util.Collection<java.lang.String>);
+    method @Deprecated public static android.view.textclassifier.TextClassifier.EntityConfig createWithHints(@Nullable java.util.Collection<java.lang.String>);
     method public int describeContents();
     method public java.util.Collection<java.lang.String> getHints();
-    method public java.util.Collection<java.lang.String> resolveEntityListModifications(java.util.Collection<java.lang.String>);
+    method public java.util.Collection<java.lang.String> resolveEntityListModifications(@NonNull java.util.Collection<java.lang.String>);
     method public boolean shouldIncludeTypesFromTextClassifier();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextClassifier.EntityConfig> CREATOR;
@@ -53437,29 +53346,29 @@
 
   public static final class TextClassifier.EntityConfig.Builder {
     ctor public TextClassifier.EntityConfig.Builder();
-    method public android.view.textclassifier.TextClassifier.EntityConfig build();
-    method public android.view.textclassifier.TextClassifier.EntityConfig.Builder includeTypesFromTextClassifier(boolean);
-    method public android.view.textclassifier.TextClassifier.EntityConfig.Builder setExcludedTypes(java.util.Collection<java.lang.String>);
+    method @NonNull public android.view.textclassifier.TextClassifier.EntityConfig build();
+    method @NonNull public android.view.textclassifier.TextClassifier.EntityConfig.Builder includeTypesFromTextClassifier(boolean);
+    method @NonNull public android.view.textclassifier.TextClassifier.EntityConfig.Builder setExcludedTypes(@Nullable java.util.Collection<java.lang.String>);
     method public android.view.textclassifier.TextClassifier.EntityConfig.Builder setHints(java.util.Collection<java.lang.String>);
-    method public android.view.textclassifier.TextClassifier.EntityConfig.Builder setIncludedTypes(java.util.Collection<java.lang.String>);
+    method @NonNull public android.view.textclassifier.TextClassifier.EntityConfig.Builder setIncludedTypes(@Nullable java.util.Collection<java.lang.String>);
   }
 
   public final class TextClassifierEvent implements android.os.Parcelable {
     method public int describeContents();
-    method public int[] getActionIndices();
-    method public java.lang.String getEntityType();
+    method @NonNull public int[] getActionIndices();
+    method @Nullable public String getEntityType();
     method public int getEventCategory();
-    method public android.view.textclassifier.TextClassificationContext getEventContext();
+    method @Nullable public android.view.textclassifier.TextClassificationContext getEventContext();
     method public int getEventIndex();
     method public long getEventTime();
     method public int getEventType();
-    method public android.os.Bundle getExtras();
-    method public java.lang.String getLanguage();
+    method @NonNull public android.os.Bundle getExtras();
+    method @Nullable public String getLanguage();
     method public int getRelativeSuggestedWordEndIndex();
     method public int getRelativeSuggestedWordStartIndex();
     method public int getRelativeWordEndIndex();
     method public int getRelativeWordStartIndex();
-    method public java.lang.String getResultId();
+    method @Nullable public String getResultId();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CATEGORY_CONVERSATION_ACTIONS = 3; // 0x3
     field public static final int CATEGORY_LANGUAGE_DETECTION = 4; // 0x4
@@ -53492,60 +53401,60 @@
 
   public static final class TextClassifierEvent.Builder {
     ctor public TextClassifierEvent.Builder(int, int);
-    method public android.view.textclassifier.TextClassifierEvent build();
-    method public android.view.textclassifier.TextClassifierEvent.Builder setActionIndices(int...);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setEntityType(java.lang.String);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setEventContext(android.view.textclassifier.TextClassificationContext);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setEventIndex(int);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setEventTime(long);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setExtras(android.os.Bundle);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setLanguage(java.lang.String);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setRelativeSuggestedWordEndIndex(int);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setRelativeSuggestedWordStartIndex(int);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setRelativeWordEndIndex(int);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setRelativeWordStartIndex(int);
-    method public android.view.textclassifier.TextClassifierEvent.Builder setResultId(java.lang.String);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent build();
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setActionIndices(@NonNull int...);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setEntityType(@Nullable String);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setEventContext(@Nullable android.view.textclassifier.TextClassificationContext);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setEventIndex(int);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setEventTime(long);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setExtras(@NonNull android.os.Bundle);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setLanguage(@Nullable String);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setRelativeSuggestedWordEndIndex(int);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setRelativeSuggestedWordStartIndex(int);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setRelativeWordEndIndex(int);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setRelativeWordStartIndex(int);
+    method @NonNull public android.view.textclassifier.TextClassifierEvent.Builder setResultId(@Nullable String);
   }
 
   public final class TextLanguage implements android.os.Parcelable {
     method public int describeContents();
-    method public float getConfidenceScore(android.icu.util.ULocale);
-    method public android.os.Bundle getExtras();
-    method public java.lang.String getId();
-    method public android.icu.util.ULocale getLocale(int);
-    method public int getLocaleHypothesisCount();
+    method @FloatRange(from=0.0, to=1.0) public float getConfidenceScore(@NonNull android.icu.util.ULocale);
+    method @NonNull public android.os.Bundle getExtras();
+    method @Nullable public String getId();
+    method @NonNull public android.icu.util.ULocale getLocale(int);
+    method @IntRange(from=0) public int getLocaleHypothesisCount();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextLanguage> CREATOR;
   }
 
   public static final class TextLanguage.Builder {
     ctor public TextLanguage.Builder();
-    method public android.view.textclassifier.TextLanguage build();
-    method public android.view.textclassifier.TextLanguage.Builder putLocale(android.icu.util.ULocale, float);
-    method public android.view.textclassifier.TextLanguage.Builder setExtras(android.os.Bundle);
-    method public android.view.textclassifier.TextLanguage.Builder setId(java.lang.String);
+    method @NonNull public android.view.textclassifier.TextLanguage build();
+    method @NonNull public android.view.textclassifier.TextLanguage.Builder putLocale(@NonNull android.icu.util.ULocale, @FloatRange(from=0.0, to=1.0) float);
+    method @NonNull public android.view.textclassifier.TextLanguage.Builder setExtras(@NonNull android.os.Bundle);
+    method @NonNull public android.view.textclassifier.TextLanguage.Builder setId(@Nullable String);
   }
 
   public static final class TextLanguage.Request implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getCallingPackageName();
-    method public android.os.Bundle getExtras();
-    method public java.lang.CharSequence getText();
+    method @Nullable public String getCallingPackageName();
+    method @NonNull public android.os.Bundle getExtras();
+    method @NonNull public CharSequence getText();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextLanguage.Request> CREATOR;
   }
 
   public static final class TextLanguage.Request.Builder {
-    ctor public TextLanguage.Request.Builder(java.lang.CharSequence);
-    method public android.view.textclassifier.TextLanguage.Request build();
-    method public android.view.textclassifier.TextLanguage.Request.Builder setExtras(android.os.Bundle);
+    ctor public TextLanguage.Request.Builder(@NonNull CharSequence);
+    method @NonNull public android.view.textclassifier.TextLanguage.Request build();
+    method @NonNull public android.view.textclassifier.TextLanguage.Request.Builder setExtras(@NonNull android.os.Bundle);
   }
 
   public final class TextLinks implements android.os.Parcelable {
-    method public int apply(android.text.Spannable, int, java.util.function.Function<android.view.textclassifier.TextLinks.TextLink, android.view.textclassifier.TextLinks.TextLinkSpan>);
+    method public int apply(@NonNull android.text.Spannable, int, @Nullable java.util.function.Function<android.view.textclassifier.TextLinks.TextLink,android.view.textclassifier.TextLinks.TextLinkSpan>);
     method public int describeContents();
-    method public android.os.Bundle getExtras();
-    method public java.util.Collection<android.view.textclassifier.TextLinks.TextLink> getLinks();
+    method @NonNull public android.os.Bundle getExtras();
+    method @NonNull public java.util.Collection<android.view.textclassifier.TextLinks.TextLink> getLinks();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int APPLY_STRATEGY_IGNORE = 0; // 0x0
     field public static final int APPLY_STRATEGY_REPLACE = 1; // 0x1
@@ -53558,38 +53467,38 @@
   }
 
   public static final class TextLinks.Builder {
-    ctor public TextLinks.Builder(java.lang.String);
-    method public android.view.textclassifier.TextLinks.Builder addLink(int, int, java.util.Map<java.lang.String, java.lang.Float>);
-    method public android.view.textclassifier.TextLinks.Builder addLink(int, int, java.util.Map<java.lang.String, java.lang.Float>, android.os.Bundle);
-    method public android.view.textclassifier.TextLinks build();
-    method public android.view.textclassifier.TextLinks.Builder clearTextLinks();
-    method public android.view.textclassifier.TextLinks.Builder setExtras(android.os.Bundle);
+    ctor public TextLinks.Builder(@NonNull String);
+    method @NonNull public android.view.textclassifier.TextLinks.Builder addLink(int, int, @NonNull java.util.Map<java.lang.String,java.lang.Float>);
+    method @NonNull public android.view.textclassifier.TextLinks.Builder addLink(int, int, @NonNull java.util.Map<java.lang.String,java.lang.Float>, @NonNull android.os.Bundle);
+    method @NonNull public android.view.textclassifier.TextLinks build();
+    method @NonNull public android.view.textclassifier.TextLinks.Builder clearTextLinks();
+    method public android.view.textclassifier.TextLinks.Builder setExtras(@Nullable android.os.Bundle);
   }
 
   public static final class TextLinks.Request implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getCallingPackageName();
-    method public android.os.LocaleList getDefaultLocales();
-    method public android.view.textclassifier.TextClassifier.EntityConfig getEntityConfig();
-    method public android.os.Bundle getExtras();
-    method public java.lang.CharSequence getText();
+    method @Nullable public String getCallingPackageName();
+    method @Nullable public android.os.LocaleList getDefaultLocales();
+    method @Nullable public android.view.textclassifier.TextClassifier.EntityConfig getEntityConfig();
+    method @NonNull public android.os.Bundle getExtras();
+    method @NonNull public CharSequence getText();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextLinks.Request> CREATOR;
   }
 
   public static final class TextLinks.Request.Builder {
-    ctor public TextLinks.Request.Builder(java.lang.CharSequence);
-    method public android.view.textclassifier.TextLinks.Request build();
-    method public android.view.textclassifier.TextLinks.Request.Builder setDefaultLocales(android.os.LocaleList);
-    method public android.view.textclassifier.TextLinks.Request.Builder setEntityConfig(android.view.textclassifier.TextClassifier.EntityConfig);
-    method public android.view.textclassifier.TextLinks.Request.Builder setExtras(android.os.Bundle);
+    ctor public TextLinks.Request.Builder(@NonNull CharSequence);
+    method @NonNull public android.view.textclassifier.TextLinks.Request build();
+    method @NonNull public android.view.textclassifier.TextLinks.Request.Builder setDefaultLocales(@Nullable android.os.LocaleList);
+    method @NonNull public android.view.textclassifier.TextLinks.Request.Builder setEntityConfig(@Nullable android.view.textclassifier.TextClassifier.EntityConfig);
+    method public android.view.textclassifier.TextLinks.Request.Builder setExtras(@Nullable android.os.Bundle);
   }
 
   public static final class TextLinks.TextLink implements android.os.Parcelable {
     method public int describeContents();
-    method public float getConfidenceScore(java.lang.String);
+    method @FloatRange(from=0.0, to=1.0) public float getConfidenceScore(String);
     method public int getEnd();
-    method public java.lang.String getEntity(int);
+    method @NonNull public String getEntity(int);
     method public int getEntityCount();
     method public android.os.Bundle getExtras();
     method public int getStart();
@@ -53598,18 +53507,18 @@
   }
 
   public static class TextLinks.TextLinkSpan extends android.text.style.ClickableSpan {
-    ctor public TextLinks.TextLinkSpan(android.view.textclassifier.TextLinks.TextLink);
+    ctor public TextLinks.TextLinkSpan(@NonNull android.view.textclassifier.TextLinks.TextLink);
     method public final android.view.textclassifier.TextLinks.TextLink getTextLink();
     method public void onClick(android.view.View);
   }
 
   public final class TextSelection implements android.os.Parcelable {
     method public int describeContents();
-    method public float getConfidenceScore(java.lang.String);
-    method public java.lang.String getEntity(int);
-    method public int getEntityCount();
-    method public android.os.Bundle getExtras();
-    method public java.lang.String getId();
+    method @FloatRange(from=0.0, to=1.0) public float getConfidenceScore(String);
+    method @NonNull public String getEntity(int);
+    method @IntRange(from=0) public int getEntityCount();
+    method @NonNull public android.os.Bundle getExtras();
+    method @Nullable public String getId();
     method public int getSelectionEndIndex();
     method public int getSelectionStartIndex();
     method public void writeToParcel(android.os.Parcel, int);
@@ -53617,30 +53526,30 @@
   }
 
   public static final class TextSelection.Builder {
-    ctor public TextSelection.Builder(int, int);
-    method public android.view.textclassifier.TextSelection build();
-    method public android.view.textclassifier.TextSelection.Builder setEntityType(java.lang.String, float);
-    method public android.view.textclassifier.TextSelection.Builder setExtras(android.os.Bundle);
-    method public android.view.textclassifier.TextSelection.Builder setId(java.lang.String);
+    ctor public TextSelection.Builder(@IntRange(from=0) int, @IntRange(from=0) int);
+    method @NonNull public android.view.textclassifier.TextSelection build();
+    method @NonNull public android.view.textclassifier.TextSelection.Builder setEntityType(@NonNull String, @FloatRange(from=0.0, to=1.0) float);
+    method public android.view.textclassifier.TextSelection.Builder setExtras(@Nullable android.os.Bundle);
+    method @NonNull public android.view.textclassifier.TextSelection.Builder setId(@Nullable String);
   }
 
   public static final class TextSelection.Request implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getCallingPackageName();
-    method public android.os.LocaleList getDefaultLocales();
-    method public int getEndIndex();
-    method public android.os.Bundle getExtras();
-    method public int getStartIndex();
-    method public java.lang.CharSequence getText();
+    method @Nullable public String getCallingPackageName();
+    method @Nullable public android.os.LocaleList getDefaultLocales();
+    method @IntRange(from=0) public int getEndIndex();
+    method @NonNull public android.os.Bundle getExtras();
+    method @IntRange(from=0) public int getStartIndex();
+    method @NonNull public CharSequence getText();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textclassifier.TextSelection.Request> CREATOR;
   }
 
   public static final class TextSelection.Request.Builder {
-    ctor public TextSelection.Request.Builder(java.lang.CharSequence, int, int);
-    method public android.view.textclassifier.TextSelection.Request build();
-    method public android.view.textclassifier.TextSelection.Request.Builder setDefaultLocales(android.os.LocaleList);
-    method public android.view.textclassifier.TextSelection.Request.Builder setExtras(android.os.Bundle);
+    ctor public TextSelection.Request.Builder(@NonNull CharSequence, @IntRange(from=0) int, @IntRange(from=0) int);
+    method @NonNull public android.view.textclassifier.TextSelection.Request build();
+    method @NonNull public android.view.textclassifier.TextSelection.Request.Builder setDefaultLocales(@Nullable android.os.LocaleList);
+    method public android.view.textclassifier.TextSelection.Request.Builder setExtras(@Nullable android.os.Bundle);
   }
 
 }
@@ -53662,14 +53571,14 @@
   public final class SpellCheckerInfo implements android.os.Parcelable {
     method public int describeContents();
     method public android.content.ComponentName getComponent();
-    method public java.lang.String getId();
-    method public java.lang.String getPackageName();
+    method public String getId();
+    method public String getPackageName();
     method public android.content.pm.ServiceInfo getServiceInfo();
-    method public java.lang.String getSettingsActivity();
+    method public String getSettingsActivity();
     method public android.view.textservice.SpellCheckerSubtype getSubtypeAt(int);
     method public int getSubtypeCount();
     method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
-    method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
+    method public CharSequence loadLabel(android.content.pm.PackageManager);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textservice.SpellCheckerInfo> CREATOR;
   }
@@ -53679,39 +53588,39 @@
     method public void close();
     method public void getSentenceSuggestions(android.view.textservice.TextInfo[], int);
     method public android.view.textservice.SpellCheckerInfo getSpellChecker();
-    method public deprecated void getSuggestions(android.view.textservice.TextInfo, int);
-    method public deprecated void getSuggestions(android.view.textservice.TextInfo[], int, boolean);
+    method @Deprecated public void getSuggestions(android.view.textservice.TextInfo, int);
+    method @Deprecated public void getSuggestions(android.view.textservice.TextInfo[], int, boolean);
     method public boolean isSessionDisconnected();
-    field public static final java.lang.String SERVICE_META_DATA = "android.view.textservice.scs";
+    field public static final String SERVICE_META_DATA = "android.view.textservice.scs";
   }
 
-  public static abstract interface SpellCheckerSession.SpellCheckerSessionListener {
-    method public abstract void onGetSentenceSuggestions(android.view.textservice.SentenceSuggestionsInfo[]);
-    method public abstract void onGetSuggestions(android.view.textservice.SuggestionsInfo[]);
+  public static interface SpellCheckerSession.SpellCheckerSessionListener {
+    method public void onGetSentenceSuggestions(android.view.textservice.SentenceSuggestionsInfo[]);
+    method public void onGetSuggestions(android.view.textservice.SuggestionsInfo[]);
   }
 
   public final class SpellCheckerSubtype implements android.os.Parcelable {
-    ctor public deprecated SpellCheckerSubtype(int, java.lang.String, java.lang.String);
-    method public boolean containsExtraValueKey(java.lang.String);
+    ctor @Deprecated public SpellCheckerSubtype(int, String, String);
+    method public boolean containsExtraValueKey(String);
     method public int describeContents();
-    method public java.lang.CharSequence getDisplayName(android.content.Context, java.lang.String, android.content.pm.ApplicationInfo);
-    method public java.lang.String getExtraValue();
-    method public java.lang.String getExtraValueOf(java.lang.String);
-    method public java.lang.String getLanguageTag();
-    method public deprecated java.lang.String getLocale();
+    method public CharSequence getDisplayName(android.content.Context, String, android.content.pm.ApplicationInfo);
+    method public String getExtraValue();
+    method public String getExtraValueOf(String);
+    method @NonNull public String getLanguageTag();
+    method @Deprecated @NonNull public String getLocale();
     method public int getNameResId();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textservice.SpellCheckerSubtype> CREATOR;
   }
 
   public final class SuggestionsInfo implements android.os.Parcelable {
-    ctor public SuggestionsInfo(int, java.lang.String[]);
-    ctor public SuggestionsInfo(int, java.lang.String[], int, int);
+    ctor public SuggestionsInfo(int, String[]);
+    ctor public SuggestionsInfo(int, String[], int, int);
     ctor public SuggestionsInfo(android.os.Parcel);
     method public int describeContents();
     method public int getCookie();
     method public int getSequence();
-    method public java.lang.String getSuggestionAt(int);
+    method public String getSuggestionAt(int);
     method public int getSuggestionsAttributes();
     method public int getSuggestionsCount();
     method public void setCookieAndSequence(int, int);
@@ -53723,15 +53632,15 @@
   }
 
   public final class TextInfo implements android.os.Parcelable {
-    ctor public TextInfo(java.lang.String);
-    ctor public TextInfo(java.lang.String, int, int);
-    ctor public TextInfo(java.lang.CharSequence, int, int, int, int);
+    ctor public TextInfo(String);
+    ctor public TextInfo(String, int, int);
+    ctor public TextInfo(CharSequence, int, int, int, int);
     ctor public TextInfo(android.os.Parcel);
     method public int describeContents();
-    method public java.lang.CharSequence getCharSequence();
+    method public CharSequence getCharSequence();
     method public int getCookie();
     method public int getSequence();
-    method public java.lang.String getText();
+    method public String getText();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.textservice.TextInfo> CREATOR;
   }
@@ -53747,25 +53656,23 @@
   public abstract class ClientCertRequest {
     ctor public ClientCertRequest();
     method public abstract void cancel();
-    method public abstract java.lang.String getHost();
-    method public abstract java.lang.String[] getKeyTypes();
+    method public abstract String getHost();
+    method @Nullable public abstract String[] getKeyTypes();
     method public abstract int getPort();
-    method public abstract java.security.Principal[] getPrincipals();
+    method @Nullable public abstract java.security.Principal[] getPrincipals();
     method public abstract void ignore();
     method public abstract void proceed(java.security.PrivateKey, java.security.cert.X509Certificate[]);
   }
 
   public class ConsoleMessage {
-    ctor public ConsoleMessage(java.lang.String, java.lang.String, int, android.webkit.ConsoleMessage.MessageLevel);
+    ctor public ConsoleMessage(String, String, int, android.webkit.ConsoleMessage.MessageLevel);
     method public int lineNumber();
-    method public java.lang.String message();
+    method public String message();
     method public android.webkit.ConsoleMessage.MessageLevel messageLevel();
-    method public java.lang.String sourceId();
+    method public String sourceId();
   }
 
-  public static final class ConsoleMessage.MessageLevel extends java.lang.Enum {
-    method public static android.webkit.ConsoleMessage.MessageLevel valueOf(java.lang.String);
-    method public static final android.webkit.ConsoleMessage.MessageLevel[] values();
+  public enum ConsoleMessage.MessageLevel {
     enum_constant public static final android.webkit.ConsoleMessage.MessageLevel DEBUG;
     enum_constant public static final android.webkit.ConsoleMessage.MessageLevel ERROR;
     enum_constant public static final android.webkit.ConsoleMessage.MessageLevel LOG;
@@ -53774,72 +53681,73 @@
   }
 
   public abstract class CookieManager {
-    ctor public deprecated CookieManager();
+    ctor @Deprecated public CookieManager();
     method public abstract boolean acceptCookie();
     method public abstract boolean acceptThirdPartyCookies(android.webkit.WebView);
     method public static boolean allowFileSchemeCookies();
     method public abstract void flush();
-    method public abstract java.lang.String getCookie(java.lang.String);
+    method public abstract String getCookie(String);
     method public static android.webkit.CookieManager getInstance();
     method public abstract boolean hasCookies();
-    method public abstract deprecated void removeAllCookie();
-    method public abstract void removeAllCookies(android.webkit.ValueCallback<java.lang.Boolean>);
-    method public abstract deprecated void removeExpiredCookie();
-    method public abstract deprecated void removeSessionCookie();
-    method public abstract void removeSessionCookies(android.webkit.ValueCallback<java.lang.Boolean>);
+    method @Deprecated public abstract void removeAllCookie();
+    method public abstract void removeAllCookies(@Nullable android.webkit.ValueCallback<java.lang.Boolean>);
+    method @Deprecated public abstract void removeExpiredCookie();
+    method @Deprecated public abstract void removeSessionCookie();
+    method public abstract void removeSessionCookies(@Nullable android.webkit.ValueCallback<java.lang.Boolean>);
     method public abstract void setAcceptCookie(boolean);
     method public static void setAcceptFileSchemeCookies(boolean);
     method public abstract void setAcceptThirdPartyCookies(android.webkit.WebView, boolean);
-    method public abstract void setCookie(java.lang.String, java.lang.String);
-    method public abstract void setCookie(java.lang.String, java.lang.String, android.webkit.ValueCallback<java.lang.Boolean>);
+    method public abstract void setCookie(String, String);
+    method public abstract void setCookie(String, String, @Nullable android.webkit.ValueCallback<java.lang.Boolean>);
   }
 
-  public final deprecated class CookieSyncManager implements java.lang.Runnable {
-    method public static android.webkit.CookieSyncManager createInstance(android.content.Context);
-    method public static android.webkit.CookieSyncManager getInstance();
-    method public deprecated void resetSync();
-    method public deprecated void startSync();
-    method public deprecated void stopSync();
-    method public deprecated void sync();
-    method protected deprecated void syncFromRamToFlash();
+  @Deprecated public final class CookieSyncManager implements java.lang.Runnable {
+    method @Deprecated public static android.webkit.CookieSyncManager createInstance(android.content.Context);
+    method @Deprecated public static android.webkit.CookieSyncManager getInstance();
+    method @Deprecated public void resetSync();
+    method @Deprecated public void run();
+    method @Deprecated public void startSync();
+    method @Deprecated public void stopSync();
+    method @Deprecated public void sync();
+    method @Deprecated protected void syncFromRamToFlash();
   }
 
   public class DateSorter {
     ctor public DateSorter(android.content.Context);
     method public long getBoundary(int);
     method public int getIndex(long);
-    method public java.lang.String getLabel(int);
+    method public String getLabel(int);
     field public static final int DAY_COUNT = 5; // 0x5
   }
 
-  public abstract interface DownloadListener {
-    method public abstract void onDownloadStart(java.lang.String, java.lang.String, java.lang.String, java.lang.String, long);
+  public interface DownloadListener {
+    method public void onDownloadStart(String, String, String, String, long);
   }
 
   public class GeolocationPermissions {
-    method public void allow(java.lang.String);
-    method public void clear(java.lang.String);
+    method public void allow(String);
+    method public void clear(String);
     method public void clearAll();
-    method public void getAllowed(java.lang.String, android.webkit.ValueCallback<java.lang.Boolean>);
+    method public void getAllowed(String, android.webkit.ValueCallback<java.lang.Boolean>);
     method public static android.webkit.GeolocationPermissions getInstance();
     method public void getOrigins(android.webkit.ValueCallback<java.util.Set<java.lang.String>>);
   }
 
-  public static abstract interface GeolocationPermissions.Callback {
-    method public abstract void invoke(java.lang.String, boolean, boolean);
+  public static interface GeolocationPermissions.Callback {
+    method public void invoke(String, boolean, boolean);
   }
 
   public class HttpAuthHandler extends android.os.Handler {
     method public void cancel();
-    method public void proceed(java.lang.String, java.lang.String);
+    method public void proceed(String, String);
     method public boolean useHttpAuthUsernamePassword();
   }
 
-  public abstract class JavascriptInterface implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD}) public @interface JavascriptInterface {
   }
 
   public class JsPromptResult extends android.webkit.JsResult {
-    method public void confirm(java.lang.String);
+    method public void confirm(String);
   }
 
   public class JsResult {
@@ -53848,39 +53756,39 @@
   }
 
   public class MimeTypeMap {
-    method public java.lang.String getExtensionFromMimeType(java.lang.String);
-    method public static java.lang.String getFileExtensionFromUrl(java.lang.String);
-    method public java.lang.String getMimeTypeFromExtension(java.lang.String);
+    method @Nullable public String getExtensionFromMimeType(String);
+    method public static String getFileExtensionFromUrl(String);
+    method @Nullable public String getMimeTypeFromExtension(String);
     method public static android.webkit.MimeTypeMap getSingleton();
-    method public boolean hasExtension(java.lang.String);
-    method public boolean hasMimeType(java.lang.String);
+    method public boolean hasExtension(String);
+    method public boolean hasMimeType(String);
   }
 
   public abstract class PermissionRequest {
     ctor public PermissionRequest();
     method public abstract void deny();
     method public abstract android.net.Uri getOrigin();
-    method public abstract java.lang.String[] getResources();
-    method public abstract void grant(java.lang.String[]);
-    field public static final java.lang.String RESOURCE_AUDIO_CAPTURE = "android.webkit.resource.AUDIO_CAPTURE";
-    field public static final java.lang.String RESOURCE_MIDI_SYSEX = "android.webkit.resource.MIDI_SYSEX";
-    field public static final java.lang.String RESOURCE_PROTECTED_MEDIA_ID = "android.webkit.resource.PROTECTED_MEDIA_ID";
-    field public static final java.lang.String RESOURCE_VIDEO_CAPTURE = "android.webkit.resource.VIDEO_CAPTURE";
+    method public abstract String[] getResources();
+    method public abstract void grant(String[]);
+    field public static final String RESOURCE_AUDIO_CAPTURE = "android.webkit.resource.AUDIO_CAPTURE";
+    field public static final String RESOURCE_MIDI_SYSEX = "android.webkit.resource.MIDI_SYSEX";
+    field public static final String RESOURCE_PROTECTED_MEDIA_ID = "android.webkit.resource.PROTECTED_MEDIA_ID";
+    field public static final String RESOURCE_VIDEO_CAPTURE = "android.webkit.resource.VIDEO_CAPTURE";
   }
 
-  public abstract interface PluginStub {
-    method public abstract android.view.View getEmbeddedView(int, android.content.Context);
-    method public abstract android.view.View getFullScreenView(int, android.content.Context);
+  public interface PluginStub {
+    method public android.view.View getEmbeddedView(int, android.content.Context);
+    method public android.view.View getFullScreenView(int, android.content.Context);
   }
 
   public abstract class RenderProcessGoneDetail {
-    ctor public deprecated RenderProcessGoneDetail();
+    ctor @Deprecated public RenderProcessGoneDetail();
     method public abstract boolean didCrash();
     method public abstract int rendererPriorityAtExit();
   }
 
   public abstract class SafeBrowsingResponse {
-    ctor public deprecated SafeBrowsingResponse();
+    ctor @Deprecated public SafeBrowsingResponse();
     method public abstract void backToSafety(boolean);
     method public abstract void proceed(boolean);
     method public abstract void showInterstitial(boolean);
@@ -53888,14 +53796,14 @@
 
   public class ServiceWorkerClient {
     ctor public ServiceWorkerClient();
-    method public android.webkit.WebResourceResponse shouldInterceptRequest(android.webkit.WebResourceRequest);
+    method @Nullable public android.webkit.WebResourceResponse shouldInterceptRequest(android.webkit.WebResourceRequest);
   }
 
   public abstract class ServiceWorkerController {
-    ctor public deprecated ServiceWorkerController();
-    method public static android.webkit.ServiceWorkerController getInstance();
-    method public abstract android.webkit.ServiceWorkerWebSettings getServiceWorkerWebSettings();
-    method public abstract void setServiceWorkerClient(android.webkit.ServiceWorkerClient);
+    ctor @Deprecated public ServiceWorkerController();
+    method @NonNull public static android.webkit.ServiceWorkerController getInstance();
+    method @NonNull public abstract android.webkit.ServiceWorkerWebSettings getServiceWorkerWebSettings();
+    method public abstract void setServiceWorkerClient(@Nullable android.webkit.ServiceWorkerClient);
   }
 
   public abstract class ServiceWorkerWebSettings {
@@ -53916,7 +53824,7 @@
   }
 
   public class TracingConfig {
-    method public java.util.List<java.lang.String> getCustomIncludedCategories();
+    method @NonNull public java.util.List<java.lang.String> getCustomIncludedCategories();
     method public int getPredefinedCategories();
     method public int getTracingMode();
     field public static final int CATEGORIES_ALL = 1; // 0x1
@@ -53941,90 +53849,90 @@
   }
 
   public abstract class TracingController {
-    ctor public deprecated TracingController();
-    method public static android.webkit.TracingController getInstance();
+    ctor @Deprecated public TracingController();
+    method @NonNull public static android.webkit.TracingController getInstance();
     method public abstract boolean isTracing();
-    method public abstract void start(android.webkit.TracingConfig);
-    method public abstract boolean stop(java.io.OutputStream, java.util.concurrent.Executor);
+    method public abstract void start(@NonNull android.webkit.TracingConfig);
+    method public abstract boolean stop(@Nullable java.io.OutputStream, @NonNull java.util.concurrent.Executor);
   }
 
   public final class URLUtil {
     ctor public URLUtil();
-    method public static java.lang.String composeSearchUrl(java.lang.String, java.lang.String, java.lang.String);
+    method public static String composeSearchUrl(String, String, String);
     method public static byte[] decode(byte[]) throws java.lang.IllegalArgumentException;
-    method public static java.lang.String guessFileName(java.lang.String, java.lang.String, java.lang.String);
-    method public static java.lang.String guessUrl(java.lang.String);
-    method public static boolean isAboutUrl(java.lang.String);
-    method public static boolean isAssetUrl(java.lang.String);
-    method public static boolean isContentUrl(java.lang.String);
-    method public static deprecated boolean isCookielessProxyUrl(java.lang.String);
-    method public static boolean isDataUrl(java.lang.String);
-    method public static boolean isFileUrl(java.lang.String);
-    method public static boolean isHttpUrl(java.lang.String);
-    method public static boolean isHttpsUrl(java.lang.String);
-    method public static boolean isJavaScriptUrl(java.lang.String);
-    method public static boolean isNetworkUrl(java.lang.String);
-    method public static boolean isValidUrl(java.lang.String);
-    method public static java.lang.String stripAnchor(java.lang.String);
+    method public static String guessFileName(String, @Nullable String, @Nullable String);
+    method public static String guessUrl(String);
+    method public static boolean isAboutUrl(String);
+    method public static boolean isAssetUrl(String);
+    method public static boolean isContentUrl(String);
+    method @Deprecated public static boolean isCookielessProxyUrl(String);
+    method public static boolean isDataUrl(String);
+    method public static boolean isFileUrl(String);
+    method public static boolean isHttpUrl(String);
+    method public static boolean isHttpsUrl(String);
+    method public static boolean isJavaScriptUrl(String);
+    method public static boolean isNetworkUrl(String);
+    method public static boolean isValidUrl(String);
+    method public static String stripAnchor(String);
   }
 
-  public abstract interface ValueCallback<T> {
-    method public abstract void onReceiveValue(T);
+  public interface ValueCallback<T> {
+    method public void onReceiveValue(T);
   }
 
   public abstract class WebBackForwardList implements java.lang.Cloneable java.io.Serializable {
     ctor public WebBackForwardList();
     method protected abstract android.webkit.WebBackForwardList clone();
     method public abstract int getCurrentIndex();
-    method public abstract android.webkit.WebHistoryItem getCurrentItem();
+    method @Nullable public abstract android.webkit.WebHistoryItem getCurrentItem();
     method public abstract android.webkit.WebHistoryItem getItemAtIndex(int);
     method public abstract int getSize();
   }
 
   public class WebChromeClient {
     ctor public WebChromeClient();
-    method public android.graphics.Bitmap getDefaultVideoPoster();
-    method public android.view.View getVideoLoadingProgressView();
+    method @Nullable public android.graphics.Bitmap getDefaultVideoPoster();
+    method @Nullable public android.view.View getVideoLoadingProgressView();
     method public void getVisitedHistory(android.webkit.ValueCallback<java.lang.String[]>);
     method public void onCloseWindow(android.webkit.WebView);
-    method public deprecated void onConsoleMessage(java.lang.String, int, java.lang.String);
+    method @Deprecated public void onConsoleMessage(String, int, String);
     method public boolean onConsoleMessage(android.webkit.ConsoleMessage);
     method public boolean onCreateWindow(android.webkit.WebView, boolean, boolean, android.os.Message);
-    method public deprecated void onExceededDatabaseQuota(java.lang.String, java.lang.String, long, long, long, android.webkit.WebStorage.QuotaUpdater);
+    method @Deprecated public void onExceededDatabaseQuota(String, String, long, long, long, android.webkit.WebStorage.QuotaUpdater);
     method public void onGeolocationPermissionsHidePrompt();
-    method public void onGeolocationPermissionsShowPrompt(java.lang.String, android.webkit.GeolocationPermissions.Callback);
+    method public void onGeolocationPermissionsShowPrompt(String, android.webkit.GeolocationPermissions.Callback);
     method public void onHideCustomView();
-    method public boolean onJsAlert(android.webkit.WebView, java.lang.String, java.lang.String, android.webkit.JsResult);
-    method public boolean onJsBeforeUnload(android.webkit.WebView, java.lang.String, java.lang.String, android.webkit.JsResult);
-    method public boolean onJsConfirm(android.webkit.WebView, java.lang.String, java.lang.String, android.webkit.JsResult);
-    method public boolean onJsPrompt(android.webkit.WebView, java.lang.String, java.lang.String, java.lang.String, android.webkit.JsPromptResult);
-    method public deprecated boolean onJsTimeout();
+    method public boolean onJsAlert(android.webkit.WebView, String, String, android.webkit.JsResult);
+    method public boolean onJsBeforeUnload(android.webkit.WebView, String, String, android.webkit.JsResult);
+    method public boolean onJsConfirm(android.webkit.WebView, String, String, android.webkit.JsResult);
+    method public boolean onJsPrompt(android.webkit.WebView, String, String, String, android.webkit.JsPromptResult);
+    method @Deprecated public boolean onJsTimeout();
     method public void onPermissionRequest(android.webkit.PermissionRequest);
     method public void onPermissionRequestCanceled(android.webkit.PermissionRequest);
     method public void onProgressChanged(android.webkit.WebView, int);
-    method public deprecated void onReachedMaxAppCacheSize(long, long, android.webkit.WebStorage.QuotaUpdater);
+    method @Deprecated public void onReachedMaxAppCacheSize(long, long, android.webkit.WebStorage.QuotaUpdater);
     method public void onReceivedIcon(android.webkit.WebView, android.graphics.Bitmap);
-    method public void onReceivedTitle(android.webkit.WebView, java.lang.String);
-    method public void onReceivedTouchIconUrl(android.webkit.WebView, java.lang.String, boolean);
+    method public void onReceivedTitle(android.webkit.WebView, String);
+    method public void onReceivedTouchIconUrl(android.webkit.WebView, String, boolean);
     method public void onRequestFocus(android.webkit.WebView);
     method public void onShowCustomView(android.view.View, android.webkit.WebChromeClient.CustomViewCallback);
-    method public deprecated void onShowCustomView(android.view.View, int, android.webkit.WebChromeClient.CustomViewCallback);
+    method @Deprecated public void onShowCustomView(android.view.View, int, android.webkit.WebChromeClient.CustomViewCallback);
     method public boolean onShowFileChooser(android.webkit.WebView, android.webkit.ValueCallback<android.net.Uri[]>, android.webkit.WebChromeClient.FileChooserParams);
   }
 
-  public static abstract interface WebChromeClient.CustomViewCallback {
-    method public abstract void onCustomViewHidden();
+  public static interface WebChromeClient.CustomViewCallback {
+    method public void onCustomViewHidden();
   }
 
-  public static abstract class WebChromeClient.FileChooserParams {
+  public abstract static class WebChromeClient.FileChooserParams {
     ctor public WebChromeClient.FileChooserParams();
     method public abstract android.content.Intent createIntent();
-    method public abstract java.lang.String[] getAcceptTypes();
-    method public abstract java.lang.String getFilenameHint();
+    method public abstract String[] getAcceptTypes();
+    method @Nullable public abstract String getFilenameHint();
     method public abstract int getMode();
-    method public abstract java.lang.CharSequence getTitle();
+    method @Nullable public abstract CharSequence getTitle();
     method public abstract boolean isCaptureEnabled();
-    method public static android.net.Uri[] parseResult(int, android.content.Intent);
+    method @Nullable public static android.net.Uri[] parseResult(int, android.content.Intent);
     field public static final int MODE_OPEN = 0; // 0x0
     field public static final int MODE_OPEN_MULTIPLE = 1; // 0x1
     field public static final int MODE_SAVE = 3; // 0x3
@@ -54033,32 +53941,32 @@
   public abstract class WebHistoryItem implements java.lang.Cloneable {
     ctor public WebHistoryItem();
     method protected abstract android.webkit.WebHistoryItem clone();
-    method public abstract android.graphics.Bitmap getFavicon();
-    method public abstract java.lang.String getOriginalUrl();
-    method public abstract java.lang.String getTitle();
-    method public abstract java.lang.String getUrl();
+    method @Nullable public abstract android.graphics.Bitmap getFavicon();
+    method public abstract String getOriginalUrl();
+    method public abstract String getTitle();
+    method public abstract String getUrl();
   }
 
-  public abstract deprecated class WebIconDatabase {
-    ctor public WebIconDatabase();
-    method public abstract void close();
-    method public static android.webkit.WebIconDatabase getInstance();
-    method public abstract void open(java.lang.String);
-    method public abstract void releaseIconForPageUrl(java.lang.String);
-    method public abstract void removeAllIcons();
-    method public abstract void requestIconForPageUrl(java.lang.String, android.webkit.WebIconDatabase.IconListener);
-    method public abstract void retainIconForPageUrl(java.lang.String);
+  @Deprecated public abstract class WebIconDatabase {
+    ctor @Deprecated public WebIconDatabase();
+    method @Deprecated public abstract void close();
+    method @Deprecated public static android.webkit.WebIconDatabase getInstance();
+    method @Deprecated public abstract void open(String);
+    method @Deprecated public abstract void releaseIconForPageUrl(String);
+    method @Deprecated public abstract void removeAllIcons();
+    method @Deprecated public abstract void requestIconForPageUrl(String, android.webkit.WebIconDatabase.IconListener);
+    method @Deprecated public abstract void retainIconForPageUrl(String);
   }
 
-  public static abstract deprecated interface WebIconDatabase.IconListener {
-    method public abstract void onReceivedIcon(java.lang.String, android.graphics.Bitmap);
+  @Deprecated public static interface WebIconDatabase.IconListener {
+    method @Deprecated public void onReceivedIcon(String, android.graphics.Bitmap);
   }
 
   public class WebMessage {
-    ctor public WebMessage(java.lang.String);
-    ctor public WebMessage(java.lang.String, android.webkit.WebMessagePort[]);
-    method public java.lang.String getData();
-    method public android.webkit.WebMessagePort[] getPorts();
+    ctor public WebMessage(String);
+    ctor public WebMessage(String, android.webkit.WebMessagePort[]);
+    method public String getData();
+    method @Nullable public android.webkit.WebMessagePort[] getPorts();
   }
 
   public abstract class WebMessagePort {
@@ -54068,44 +53976,44 @@
     method public abstract void setWebMessageCallback(android.webkit.WebMessagePort.WebMessageCallback, android.os.Handler);
   }
 
-  public static abstract class WebMessagePort.WebMessageCallback {
+  public abstract static class WebMessagePort.WebMessageCallback {
     ctor public WebMessagePort.WebMessageCallback();
     method public void onMessage(android.webkit.WebMessagePort, android.webkit.WebMessage);
   }
 
   public abstract class WebResourceError {
-    method public abstract java.lang.CharSequence getDescription();
+    method public abstract CharSequence getDescription();
     method public abstract int getErrorCode();
   }
 
-  public abstract interface WebResourceRequest {
-    method public abstract java.lang.String getMethod();
-    method public abstract java.util.Map<java.lang.String, java.lang.String> getRequestHeaders();
-    method public abstract android.net.Uri getUrl();
-    method public abstract boolean hasGesture();
-    method public abstract boolean isForMainFrame();
-    method public abstract boolean isRedirect();
+  public interface WebResourceRequest {
+    method public String getMethod();
+    method public java.util.Map<java.lang.String,java.lang.String> getRequestHeaders();
+    method public android.net.Uri getUrl();
+    method public boolean hasGesture();
+    method public boolean isForMainFrame();
+    method public boolean isRedirect();
   }
 
   public class WebResourceResponse {
-    ctor public WebResourceResponse(java.lang.String, java.lang.String, java.io.InputStream);
-    ctor public WebResourceResponse(java.lang.String, java.lang.String, int, java.lang.String, java.util.Map<java.lang.String, java.lang.String>, java.io.InputStream);
+    ctor public WebResourceResponse(String, String, java.io.InputStream);
+    ctor public WebResourceResponse(String, String, int, @NonNull String, java.util.Map<java.lang.String,java.lang.String>, java.io.InputStream);
     method public java.io.InputStream getData();
-    method public java.lang.String getEncoding();
-    method public java.lang.String getMimeType();
-    method public java.lang.String getReasonPhrase();
-    method public java.util.Map<java.lang.String, java.lang.String> getResponseHeaders();
+    method public String getEncoding();
+    method public String getMimeType();
+    method public String getReasonPhrase();
+    method public java.util.Map<java.lang.String,java.lang.String> getResponseHeaders();
     method public int getStatusCode();
     method public void setData(java.io.InputStream);
-    method public void setEncoding(java.lang.String);
-    method public void setMimeType(java.lang.String);
-    method public void setResponseHeaders(java.util.Map<java.lang.String, java.lang.String>);
-    method public void setStatusCodeAndReasonPhrase(int, java.lang.String);
+    method public void setEncoding(String);
+    method public void setMimeType(String);
+    method public void setResponseHeaders(java.util.Map<java.lang.String,java.lang.String>);
+    method public void setStatusCodeAndReasonPhrase(int, @NonNull String);
   }
 
   public abstract class WebSettings {
     ctor public WebSettings();
-    method public abstract deprecated boolean enableSmoothTransition();
+    method @Deprecated public abstract boolean enableSmoothTransition();
     method public abstract boolean getAllowContentAccess();
     method public abstract boolean getAllowFileAccess();
     method public abstract boolean getAllowFileAccessFromFileURLs();
@@ -54114,24 +54022,24 @@
     method public abstract boolean getBlockNetworkLoads();
     method public abstract boolean getBuiltInZoomControls();
     method public abstract int getCacheMode();
-    method public abstract java.lang.String getCursiveFontFamily();
+    method public abstract String getCursiveFontFamily();
     method public abstract boolean getDatabaseEnabled();
-    method public abstract deprecated java.lang.String getDatabasePath();
+    method @Deprecated public abstract String getDatabasePath();
     method public abstract int getDefaultFixedFontSize();
     method public abstract int getDefaultFontSize();
-    method public abstract java.lang.String getDefaultTextEncodingName();
-    method public static java.lang.String getDefaultUserAgent(android.content.Context);
-    method public abstract deprecated android.webkit.WebSettings.ZoomDensity getDefaultZoom();
+    method public abstract String getDefaultTextEncodingName();
+    method public static String getDefaultUserAgent(android.content.Context);
+    method @Deprecated public abstract android.webkit.WebSettings.ZoomDensity getDefaultZoom();
     method public abstract int getDisabledActionModeMenuItems();
     method public abstract boolean getDisplayZoomControls();
     method public abstract boolean getDomStorageEnabled();
-    method public abstract java.lang.String getFantasyFontFamily();
-    method public abstract java.lang.String getFixedFontFamily();
+    method public abstract String getFantasyFontFamily();
+    method public abstract String getFixedFontFamily();
     method public int getForceDarkMode();
     method public abstract boolean getJavaScriptCanOpenWindowsAutomatically();
     method public abstract boolean getJavaScriptEnabled();
     method public abstract android.webkit.WebSettings.LayoutAlgorithm getLayoutAlgorithm();
-    method public abstract deprecated boolean getLightTouchEnabled();
+    method @Deprecated public abstract boolean getLightTouchEnabled();
     method public abstract boolean getLoadWithOverviewMode();
     method public abstract boolean getLoadsImagesAutomatically();
     method public abstract boolean getMediaPlaybackRequiresUserGesture();
@@ -54139,48 +54047,48 @@
     method public abstract int getMinimumLogicalFontSize();
     method public abstract int getMixedContentMode();
     method public abstract boolean getOffscreenPreRaster();
-    method public abstract deprecated android.webkit.WebSettings.PluginState getPluginState();
+    method @Deprecated public abstract android.webkit.WebSettings.PluginState getPluginState();
     method public abstract boolean getSafeBrowsingEnabled();
-    method public abstract java.lang.String getSansSerifFontFamily();
-    method public abstract deprecated boolean getSaveFormData();
-    method public abstract deprecated boolean getSavePassword();
-    method public abstract java.lang.String getSerifFontFamily();
-    method public abstract java.lang.String getStandardFontFamily();
-    method public deprecated synchronized android.webkit.WebSettings.TextSize getTextSize();
+    method public abstract String getSansSerifFontFamily();
+    method @Deprecated public abstract boolean getSaveFormData();
+    method @Deprecated public abstract boolean getSavePassword();
+    method public abstract String getSerifFontFamily();
+    method public abstract String getStandardFontFamily();
+    method @Deprecated public android.webkit.WebSettings.TextSize getTextSize();
     method public abstract int getTextZoom();
     method public abstract boolean getUseWideViewPort();
-    method public abstract java.lang.String getUserAgentString();
+    method public abstract String getUserAgentString();
     method public abstract void setAllowContentAccess(boolean);
     method public abstract void setAllowFileAccess(boolean);
     method public abstract void setAllowFileAccessFromFileURLs(boolean);
     method public abstract void setAllowUniversalAccessFromFileURLs(boolean);
     method public abstract void setAppCacheEnabled(boolean);
-    method public abstract deprecated void setAppCacheMaxSize(long);
-    method public abstract void setAppCachePath(java.lang.String);
+    method @Deprecated public abstract void setAppCacheMaxSize(long);
+    method public abstract void setAppCachePath(String);
     method public abstract void setBlockNetworkImage(boolean);
     method public abstract void setBlockNetworkLoads(boolean);
     method public abstract void setBuiltInZoomControls(boolean);
     method public abstract void setCacheMode(int);
-    method public abstract void setCursiveFontFamily(java.lang.String);
+    method public abstract void setCursiveFontFamily(String);
     method public abstract void setDatabaseEnabled(boolean);
-    method public abstract deprecated void setDatabasePath(java.lang.String);
+    method @Deprecated public abstract void setDatabasePath(String);
     method public abstract void setDefaultFixedFontSize(int);
     method public abstract void setDefaultFontSize(int);
-    method public abstract void setDefaultTextEncodingName(java.lang.String);
-    method public abstract deprecated void setDefaultZoom(android.webkit.WebSettings.ZoomDensity);
+    method public abstract void setDefaultTextEncodingName(String);
+    method @Deprecated public abstract void setDefaultZoom(android.webkit.WebSettings.ZoomDensity);
     method public abstract void setDisabledActionModeMenuItems(int);
     method public abstract void setDisplayZoomControls(boolean);
     method public abstract void setDomStorageEnabled(boolean);
-    method public abstract deprecated void setEnableSmoothTransition(boolean);
-    method public abstract void setFantasyFontFamily(java.lang.String);
-    method public abstract void setFixedFontFamily(java.lang.String);
+    method @Deprecated public abstract void setEnableSmoothTransition(boolean);
+    method public abstract void setFantasyFontFamily(String);
+    method public abstract void setFixedFontFamily(String);
     method public void setForceDarkMode(int);
-    method public abstract deprecated void setGeolocationDatabasePath(java.lang.String);
+    method @Deprecated public abstract void setGeolocationDatabasePath(String);
     method public abstract void setGeolocationEnabled(boolean);
     method public abstract void setJavaScriptCanOpenWindowsAutomatically(boolean);
     method public abstract void setJavaScriptEnabled(boolean);
     method public abstract void setLayoutAlgorithm(android.webkit.WebSettings.LayoutAlgorithm);
-    method public abstract deprecated void setLightTouchEnabled(boolean);
+    method @Deprecated public abstract void setLightTouchEnabled(boolean);
     method public abstract void setLoadWithOverviewMode(boolean);
     method public abstract void setLoadsImagesAutomatically(boolean);
     method public abstract void setMediaPlaybackRequiresUserGesture(boolean);
@@ -54189,20 +54097,20 @@
     method public abstract void setMixedContentMode(int);
     method public abstract void setNeedInitialFocus(boolean);
     method public abstract void setOffscreenPreRaster(boolean);
-    method public abstract deprecated void setPluginState(android.webkit.WebSettings.PluginState);
-    method public abstract deprecated void setRenderPriority(android.webkit.WebSettings.RenderPriority);
+    method @Deprecated public abstract void setPluginState(android.webkit.WebSettings.PluginState);
+    method @Deprecated public abstract void setRenderPriority(android.webkit.WebSettings.RenderPriority);
     method public abstract void setSafeBrowsingEnabled(boolean);
-    method public abstract void setSansSerifFontFamily(java.lang.String);
-    method public abstract deprecated void setSaveFormData(boolean);
-    method public abstract deprecated void setSavePassword(boolean);
-    method public abstract void setSerifFontFamily(java.lang.String);
-    method public abstract void setStandardFontFamily(java.lang.String);
+    method public abstract void setSansSerifFontFamily(String);
+    method @Deprecated public abstract void setSaveFormData(boolean);
+    method @Deprecated public abstract void setSavePassword(boolean);
+    method public abstract void setSerifFontFamily(String);
+    method public abstract void setStandardFontFamily(String);
     method public abstract void setSupportMultipleWindows(boolean);
     method public abstract void setSupportZoom(boolean);
-    method public deprecated synchronized void setTextSize(android.webkit.WebSettings.TextSize);
+    method @Deprecated public void setTextSize(android.webkit.WebSettings.TextSize);
     method public abstract void setTextZoom(int);
     method public abstract void setUseWideViewPort(boolean);
-    method public abstract void setUserAgentString(java.lang.String);
+    method public abstract void setUserAgentString(@Nullable String);
     method public abstract boolean supportMultipleWindows();
     method public abstract boolean supportZoom();
     field public static final int FORCE_DARK_AUTO = 0; // 0x0
@@ -54211,7 +54119,7 @@
     field public static final int LOAD_CACHE_ELSE_NETWORK = 1; // 0x1
     field public static final int LOAD_CACHE_ONLY = 3; // 0x3
     field public static final int LOAD_DEFAULT = -1; // 0xffffffff
-    field public static final deprecated int LOAD_NORMAL = 0; // 0x0
+    field @Deprecated public static final int LOAD_NORMAL = 0; // 0x0
     field public static final int LOAD_NO_CACHE = 2; // 0x2
     field public static final int MENU_ITEM_NONE = 0; // 0x0
     field public static final int MENU_ITEM_PROCESS_TEXT = 4; // 0x4
@@ -54222,44 +54130,34 @@
     field public static final int MIXED_CONTENT_NEVER_ALLOW = 1; // 0x1
   }
 
-  public static final class WebSettings.LayoutAlgorithm extends java.lang.Enum {
-    method public static android.webkit.WebSettings.LayoutAlgorithm valueOf(java.lang.String);
-    method public static final android.webkit.WebSettings.LayoutAlgorithm[] values();
-    enum_constant public static final deprecated android.webkit.WebSettings.LayoutAlgorithm NARROW_COLUMNS;
+  public enum WebSettings.LayoutAlgorithm {
+    enum_constant @Deprecated public static final android.webkit.WebSettings.LayoutAlgorithm NARROW_COLUMNS;
     enum_constant public static final android.webkit.WebSettings.LayoutAlgorithm NORMAL;
-    enum_constant public static final deprecated android.webkit.WebSettings.LayoutAlgorithm SINGLE_COLUMN;
+    enum_constant @Deprecated public static final android.webkit.WebSettings.LayoutAlgorithm SINGLE_COLUMN;
     enum_constant public static final android.webkit.WebSettings.LayoutAlgorithm TEXT_AUTOSIZING;
   }
 
-  public static final class WebSettings.PluginState extends java.lang.Enum {
-    method public static android.webkit.WebSettings.PluginState valueOf(java.lang.String);
-    method public static final android.webkit.WebSettings.PluginState[] values();
+  public enum WebSettings.PluginState {
     enum_constant public static final android.webkit.WebSettings.PluginState OFF;
     enum_constant public static final android.webkit.WebSettings.PluginState ON;
     enum_constant public static final android.webkit.WebSettings.PluginState ON_DEMAND;
   }
 
-  public static final class WebSettings.RenderPriority extends java.lang.Enum {
-    method public static android.webkit.WebSettings.RenderPriority valueOf(java.lang.String);
-    method public static final android.webkit.WebSettings.RenderPriority[] values();
+  public enum WebSettings.RenderPriority {
     enum_constant public static final android.webkit.WebSettings.RenderPriority HIGH;
     enum_constant public static final android.webkit.WebSettings.RenderPriority LOW;
     enum_constant public static final android.webkit.WebSettings.RenderPriority NORMAL;
   }
 
-  public static final deprecated class WebSettings.TextSize extends java.lang.Enum {
-    method public static android.webkit.WebSettings.TextSize valueOf(java.lang.String);
-    method public static final android.webkit.WebSettings.TextSize[] values();
-    enum_constant public static final android.webkit.WebSettings.TextSize LARGER;
-    enum_constant public static final android.webkit.WebSettings.TextSize LARGEST;
-    enum_constant public static final android.webkit.WebSettings.TextSize NORMAL;
-    enum_constant public static final android.webkit.WebSettings.TextSize SMALLER;
-    enum_constant public static final android.webkit.WebSettings.TextSize SMALLEST;
+  @Deprecated public enum WebSettings.TextSize {
+    enum_constant @Deprecated public static final android.webkit.WebSettings.TextSize LARGER;
+    enum_constant @Deprecated public static final android.webkit.WebSettings.TextSize LARGEST;
+    enum_constant @Deprecated public static final android.webkit.WebSettings.TextSize NORMAL;
+    enum_constant @Deprecated public static final android.webkit.WebSettings.TextSize SMALLER;
+    enum_constant @Deprecated public static final android.webkit.WebSettings.TextSize SMALLEST;
   }
 
-  public static final class WebSettings.ZoomDensity extends java.lang.Enum {
-    method public static android.webkit.WebSettings.ZoomDensity valueOf(java.lang.String);
-    method public static final android.webkit.WebSettings.ZoomDensity[] values();
+  public enum WebSettings.ZoomDensity {
     enum_constant public static final android.webkit.WebSettings.ZoomDensity CLOSE;
     enum_constant public static final android.webkit.WebSettings.ZoomDensity FAR;
     enum_constant public static final android.webkit.WebSettings.ZoomDensity MEDIUM;
@@ -54267,22 +54165,22 @@
 
   public class WebStorage {
     method public void deleteAllData();
-    method public void deleteOrigin(java.lang.String);
+    method public void deleteOrigin(String);
     method public static android.webkit.WebStorage getInstance();
     method public void getOrigins(android.webkit.ValueCallback<java.util.Map>);
-    method public void getQuotaForOrigin(java.lang.String, android.webkit.ValueCallback<java.lang.Long>);
-    method public void getUsageForOrigin(java.lang.String, android.webkit.ValueCallback<java.lang.Long>);
-    method public deprecated void setQuotaForOrigin(java.lang.String, long);
+    method public void getQuotaForOrigin(String, android.webkit.ValueCallback<java.lang.Long>);
+    method public void getUsageForOrigin(String, android.webkit.ValueCallback<java.lang.Long>);
+    method @Deprecated public void setQuotaForOrigin(String, long);
   }
 
   public static class WebStorage.Origin {
-    method public java.lang.String getOrigin();
+    method public String getOrigin();
     method public long getQuota();
     method public long getUsage();
   }
 
-  public static abstract deprecated interface WebStorage.QuotaUpdater {
-    method public abstract void updateQuota(long);
+  @Deprecated public static interface WebStorage.QuotaUpdater {
+    method @Deprecated public void updateQuota(long);
   }
 
   public class WebView extends android.widget.AbsoluteLayout implements android.view.ViewGroup.OnHierarchyChangeListener android.view.ViewTreeObserver.OnGlobalFocusChangeListener {
@@ -54290,112 +54188,112 @@
     ctor public WebView(android.content.Context, android.util.AttributeSet);
     ctor public WebView(android.content.Context, android.util.AttributeSet, int);
     ctor public WebView(android.content.Context, android.util.AttributeSet, int, int);
-    ctor public deprecated WebView(android.content.Context, android.util.AttributeSet, int, boolean);
-    method public void addJavascriptInterface(java.lang.Object, java.lang.String);
+    ctor @Deprecated public WebView(android.content.Context, android.util.AttributeSet, int, boolean);
+    method public void addJavascriptInterface(Object, String);
     method public boolean canGoBack();
     method public boolean canGoBackOrForward(int);
     method public boolean canGoForward();
-    method public deprecated boolean canZoomIn();
-    method public deprecated boolean canZoomOut();
-    method public deprecated android.graphics.Picture capturePicture();
+    method @Deprecated public boolean canZoomIn();
+    method @Deprecated public boolean canZoomOut();
+    method @Deprecated public android.graphics.Picture capturePicture();
     method public void clearCache(boolean);
-    method public static void clearClientCertPreferences(java.lang.Runnable);
+    method public static void clearClientCertPreferences(@Nullable Runnable);
     method public void clearFormData();
     method public void clearHistory();
     method public void clearMatches();
     method public void clearSslPreferences();
-    method public deprecated void clearView();
+    method @Deprecated public void clearView();
     method public android.webkit.WebBackForwardList copyBackForwardList();
-    method public deprecated android.print.PrintDocumentAdapter createPrintDocumentAdapter();
-    method public android.print.PrintDocumentAdapter createPrintDocumentAdapter(java.lang.String);
+    method @Deprecated public android.print.PrintDocumentAdapter createPrintDocumentAdapter();
+    method public android.print.PrintDocumentAdapter createPrintDocumentAdapter(String);
     method public android.webkit.WebMessagePort[] createWebMessageChannel();
     method public void destroy();
     method public static void disableWebView();
     method public void documentHasImages(android.os.Message);
     method public static void enableSlowWholeDocumentDraw();
-    method public void evaluateJavascript(java.lang.String, android.webkit.ValueCallback<java.lang.String>);
-    method public static deprecated java.lang.String findAddress(java.lang.String);
-    method public deprecated int findAll(java.lang.String);
-    method public void findAllAsync(java.lang.String);
+    method public void evaluateJavascript(String, @Nullable android.webkit.ValueCallback<java.lang.String>);
+    method @Deprecated @Nullable public static String findAddress(String);
+    method @Deprecated public int findAll(String);
+    method public void findAllAsync(String);
     method public void findNext(boolean);
     method public void flingScroll(int, int);
-    method public deprecated void freeMemory();
-    method public android.net.http.SslCertificate getCertificate();
-    method public int getContentHeight();
-    method public static android.content.pm.PackageInfo getCurrentWebViewPackage();
+    method @Deprecated public void freeMemory();
+    method @Nullable public android.net.http.SslCertificate getCertificate();
+    method @android.view.ViewDebug.ExportedProperty(category="webview") public int getContentHeight();
+    method @Nullable public static android.content.pm.PackageInfo getCurrentWebViewPackage();
     method public android.graphics.Bitmap getFavicon();
     method public android.webkit.WebView.HitTestResult getHitTestResult();
-    method public deprecated java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String);
-    method public java.lang.String getOriginalUrl();
+    method @Deprecated @Nullable public String[] getHttpAuthUsernamePassword(String, String);
+    method @android.view.ViewDebug.ExportedProperty(category="webview") public String getOriginalUrl();
     method public int getProgress();
     method public boolean getRendererPriorityWaivedWhenNotVisible();
     method public int getRendererRequestedPriority();
-    method public static android.net.Uri getSafeBrowsingPrivacyPolicyUrl();
-    method public deprecated float getScale();
+    method @NonNull public static android.net.Uri getSafeBrowsingPrivacyPolicyUrl();
+    method @Deprecated @android.view.ViewDebug.ExportedProperty(category="webview") public float getScale();
     method public android.webkit.WebSettings getSettings();
-    method public android.view.textclassifier.TextClassifier getTextClassifier();
-    method public java.lang.String getTitle();
-    method public java.lang.String getUrl();
-    method public android.webkit.WebChromeClient getWebChromeClient();
-    method public static java.lang.ClassLoader getWebViewClassLoader();
+    method @NonNull public android.view.textclassifier.TextClassifier getTextClassifier();
+    method @android.view.ViewDebug.ExportedProperty(category="webview") public String getTitle();
+    method @android.view.ViewDebug.ExportedProperty(category="webview") public String getUrl();
+    method @Nullable public android.webkit.WebChromeClient getWebChromeClient();
+    method @NonNull public static ClassLoader getWebViewClassLoader();
     method public android.webkit.WebViewClient getWebViewClient();
-    method public android.os.Looper getWebViewLooper();
-    method public android.webkit.WebViewRenderer getWebViewRenderer();
-    method public android.webkit.WebViewRendererClient getWebViewRendererClient();
+    method @NonNull public android.os.Looper getWebViewLooper();
+    method @Nullable public android.webkit.WebViewRenderer getWebViewRenderer();
+    method @Nullable public android.webkit.WebViewRendererClient getWebViewRendererClient();
     method public void goBack();
     method public void goBackOrForward(int);
     method public void goForward();
     method public void invokeZoomPicker();
     method public boolean isPrivateBrowsingEnabled();
-    method public void loadData(java.lang.String, java.lang.String, java.lang.String);
-    method public void loadDataWithBaseURL(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public void loadUrl(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
-    method public void loadUrl(java.lang.String);
-    method public deprecated void onChildViewAdded(android.view.View, android.view.View);
-    method public deprecated void onChildViewRemoved(android.view.View, android.view.View);
-    method public deprecated void onGlobalFocusChanged(android.view.View, android.view.View);
+    method public void loadData(String, @Nullable String, @Nullable String);
+    method public void loadDataWithBaseURL(@Nullable String, String, @Nullable String, @Nullable String, @Nullable String);
+    method public void loadUrl(String, java.util.Map<java.lang.String,java.lang.String>);
+    method public void loadUrl(String);
+    method @Deprecated public void onChildViewAdded(android.view.View, android.view.View);
+    method @Deprecated public void onChildViewRemoved(android.view.View, android.view.View);
+    method @Deprecated public void onGlobalFocusChanged(android.view.View, android.view.View);
     method public void onPause();
     method public void onResume();
-    method public deprecated boolean overlayHorizontalScrollbar();
-    method public deprecated boolean overlayVerticalScrollbar();
+    method @Deprecated public boolean overlayHorizontalScrollbar();
+    method @Deprecated public boolean overlayVerticalScrollbar();
     method public boolean pageDown(boolean);
     method public boolean pageUp(boolean);
     method public void pauseTimers();
-    method public void postUrl(java.lang.String, byte[]);
+    method public void postUrl(String, byte[]);
     method public void postVisualStateCallback(long, android.webkit.WebView.VisualStateCallback);
     method public void postWebMessage(android.webkit.WebMessage, android.net.Uri);
     method public void reload();
-    method public void removeJavascriptInterface(java.lang.String);
-    method public void requestFocusNodeHref(android.os.Message);
+    method public void removeJavascriptInterface(@NonNull String);
+    method public void requestFocusNodeHref(@Nullable android.os.Message);
     method public void requestImageRef(android.os.Message);
-    method public android.webkit.WebBackForwardList restoreState(android.os.Bundle);
+    method @Nullable public android.webkit.WebBackForwardList restoreState(android.os.Bundle);
     method public void resumeTimers();
-    method public deprecated void savePassword(java.lang.String, java.lang.String, java.lang.String);
-    method public android.webkit.WebBackForwardList saveState(android.os.Bundle);
-    method public void saveWebArchive(java.lang.String);
-    method public void saveWebArchive(java.lang.String, boolean, android.webkit.ValueCallback<java.lang.String>);
-    method public deprecated void setCertificate(android.net.http.SslCertificate);
-    method public static void setDataDirectorySuffix(java.lang.String);
+    method @Deprecated public void savePassword(String, String, String);
+    method @Nullable public android.webkit.WebBackForwardList saveState(android.os.Bundle);
+    method public void saveWebArchive(String);
+    method public void saveWebArchive(String, boolean, @Nullable android.webkit.ValueCallback<java.lang.String>);
+    method @Deprecated public void setCertificate(android.net.http.SslCertificate);
+    method public static void setDataDirectorySuffix(String);
     method public void setDownloadListener(android.webkit.DownloadListener);
     method public void setFindListener(android.webkit.WebView.FindListener);
-    method public deprecated void setHorizontalScrollbarOverlay(boolean);
-    method public deprecated void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+    method @Deprecated public void setHorizontalScrollbarOverlay(boolean);
+    method @Deprecated public void setHttpAuthUsernamePassword(String, String, String, String);
     method public void setInitialScale(int);
-    method public deprecated void setMapTrackballToArrowKeys(boolean);
+    method @Deprecated public void setMapTrackballToArrowKeys(boolean);
     method public void setNetworkAvailable(boolean);
-    method public deprecated void setPictureListener(android.webkit.WebView.PictureListener);
+    method @Deprecated public void setPictureListener(android.webkit.WebView.PictureListener);
     method public void setRendererPriorityPolicy(int, boolean);
-    method public static void setSafeBrowsingWhitelist(java.util.List<java.lang.String>, android.webkit.ValueCallback<java.lang.Boolean>);
-    method public void setTextClassifier(android.view.textclassifier.TextClassifier);
-    method public deprecated void setVerticalScrollbarOverlay(boolean);
+    method public static void setSafeBrowsingWhitelist(@NonNull java.util.List<java.lang.String>, @Nullable android.webkit.ValueCallback<java.lang.Boolean>);
+    method public void setTextClassifier(@Nullable android.view.textclassifier.TextClassifier);
+    method @Deprecated public void setVerticalScrollbarOverlay(boolean);
     method public void setWebChromeClient(android.webkit.WebChromeClient);
     method public static void setWebContentsDebuggingEnabled(boolean);
     method public void setWebViewClient(android.webkit.WebViewClient);
-    method public void setWebViewRendererClient(java.util.concurrent.Executor, android.webkit.WebViewRendererClient);
-    method public void setWebViewRendererClient(android.webkit.WebViewRendererClient);
-    method public deprecated boolean shouldDelayChildPressedState();
-    method public deprecated boolean showFindDialog(java.lang.String, boolean);
-    method public static void startSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
+    method public void setWebViewRendererClient(@NonNull java.util.concurrent.Executor, @NonNull android.webkit.WebViewRendererClient);
+    method public void setWebViewRendererClient(@Nullable android.webkit.WebViewRendererClient);
+    method @Deprecated public boolean shouldDelayChildPressedState();
+    method @Deprecated public boolean showFindDialog(@Nullable String, boolean);
+    method public static void startSafeBrowsing(@NonNull android.content.Context, @Nullable android.webkit.ValueCallback<java.lang.Boolean>);
     method public void stopLoading();
     method public void zoomBy(float);
     method public boolean zoomIn();
@@ -54403,23 +54301,23 @@
     field public static final int RENDERER_PRIORITY_BOUND = 1; // 0x1
     field public static final int RENDERER_PRIORITY_IMPORTANT = 2; // 0x2
     field public static final int RENDERER_PRIORITY_WAIVED = 0; // 0x0
-    field public static final java.lang.String SCHEME_GEO = "geo:0,0?q=";
-    field public static final java.lang.String SCHEME_MAILTO = "mailto:";
-    field public static final java.lang.String SCHEME_TEL = "tel:";
+    field public static final String SCHEME_GEO = "geo:0,0?q=";
+    field public static final String SCHEME_MAILTO = "mailto:";
+    field public static final String SCHEME_TEL = "tel:";
   }
 
-  public static abstract interface WebView.FindListener {
-    method public abstract void onFindResultReceived(int, int, boolean);
+  public static interface WebView.FindListener {
+    method public void onFindResultReceived(int, int, boolean);
   }
 
   public static class WebView.HitTestResult {
-    method public java.lang.String getExtra();
+    method @Nullable public String getExtra();
     method public int getType();
-    field public static final deprecated int ANCHOR_TYPE = 1; // 0x1
+    field @Deprecated public static final int ANCHOR_TYPE = 1; // 0x1
     field public static final int EDIT_TEXT_TYPE = 9; // 0x9
     field public static final int EMAIL_TYPE = 4; // 0x4
     field public static final int GEO_TYPE = 3; // 0x3
-    field public static final deprecated int IMAGE_ANCHOR_TYPE = 6; // 0x6
+    field @Deprecated public static final int IMAGE_ANCHOR_TYPE = 6; // 0x6
     field public static final int IMAGE_TYPE = 5; // 0x5
     field public static final int PHONE_TYPE = 2; // 0x2
     field public static final int SRC_ANCHOR_TYPE = 7; // 0x7
@@ -54427,45 +54325,45 @@
     field public static final int UNKNOWN_TYPE = 0; // 0x0
   }
 
-  public static abstract deprecated interface WebView.PictureListener {
-    method public abstract deprecated void onNewPicture(android.webkit.WebView, android.graphics.Picture);
+  @Deprecated public static interface WebView.PictureListener {
+    method @Deprecated public void onNewPicture(android.webkit.WebView, @Nullable android.graphics.Picture);
   }
 
-  public static abstract class WebView.VisualStateCallback {
+  public abstract static class WebView.VisualStateCallback {
     ctor public WebView.VisualStateCallback();
     method public abstract void onComplete(long);
   }
 
   public class WebView.WebViewTransport {
     ctor public WebView.WebViewTransport();
-    method public synchronized android.webkit.WebView getWebView();
-    method public synchronized void setWebView(android.webkit.WebView);
+    method public android.webkit.WebView getWebView();
+    method public void setWebView(android.webkit.WebView);
   }
 
   public class WebViewClient {
     ctor public WebViewClient();
-    method public void doUpdateVisitedHistory(android.webkit.WebView, java.lang.String, boolean);
+    method public void doUpdateVisitedHistory(android.webkit.WebView, String, boolean);
     method public void onFormResubmission(android.webkit.WebView, android.os.Message, android.os.Message);
-    method public void onLoadResource(android.webkit.WebView, java.lang.String);
-    method public void onPageCommitVisible(android.webkit.WebView, java.lang.String);
-    method public void onPageFinished(android.webkit.WebView, java.lang.String);
-    method public void onPageStarted(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
+    method public void onLoadResource(android.webkit.WebView, String);
+    method public void onPageCommitVisible(android.webkit.WebView, String);
+    method public void onPageFinished(android.webkit.WebView, String);
+    method public void onPageStarted(android.webkit.WebView, String, android.graphics.Bitmap);
     method public void onReceivedClientCertRequest(android.webkit.WebView, android.webkit.ClientCertRequest);
-    method public deprecated void onReceivedError(android.webkit.WebView, int, java.lang.String, java.lang.String);
+    method @Deprecated public void onReceivedError(android.webkit.WebView, int, String, String);
     method public void onReceivedError(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceError);
-    method public void onReceivedHttpAuthRequest(android.webkit.WebView, android.webkit.HttpAuthHandler, java.lang.String, java.lang.String);
+    method public void onReceivedHttpAuthRequest(android.webkit.WebView, android.webkit.HttpAuthHandler, String, String);
     method public void onReceivedHttpError(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceResponse);
-    method public void onReceivedLoginRequest(android.webkit.WebView, java.lang.String, java.lang.String, java.lang.String);
+    method public void onReceivedLoginRequest(android.webkit.WebView, String, @Nullable String, String);
     method public void onReceivedSslError(android.webkit.WebView, android.webkit.SslErrorHandler, android.net.http.SslError);
     method public boolean onRenderProcessGone(android.webkit.WebView, android.webkit.RenderProcessGoneDetail);
     method public void onSafeBrowsingHit(android.webkit.WebView, android.webkit.WebResourceRequest, int, android.webkit.SafeBrowsingResponse);
     method public void onScaleChanged(android.webkit.WebView, float, float);
-    method public deprecated void onTooManyRedirects(android.webkit.WebView, android.os.Message, android.os.Message);
+    method @Deprecated public void onTooManyRedirects(android.webkit.WebView, android.os.Message, android.os.Message);
     method public void onUnhandledKeyEvent(android.webkit.WebView, android.view.KeyEvent);
-    method public deprecated android.webkit.WebResourceResponse shouldInterceptRequest(android.webkit.WebView, java.lang.String);
-    method public android.webkit.WebResourceResponse shouldInterceptRequest(android.webkit.WebView, android.webkit.WebResourceRequest);
+    method @Deprecated @Nullable public android.webkit.WebResourceResponse shouldInterceptRequest(android.webkit.WebView, String);
+    method @Nullable public android.webkit.WebResourceResponse shouldInterceptRequest(android.webkit.WebView, android.webkit.WebResourceRequest);
     method public boolean shouldOverrideKeyEvent(android.webkit.WebView, android.view.KeyEvent);
-    method public deprecated boolean shouldOverrideUrlLoading(android.webkit.WebView, java.lang.String);
+    method @Deprecated public boolean shouldOverrideUrlLoading(android.webkit.WebView, String);
     method public boolean shouldOverrideUrlLoading(android.webkit.WebView, android.webkit.WebResourceRequest);
     field public static final int ERROR_AUTHENTICATION = -4; // 0xfffffffc
     field public static final int ERROR_BAD_URL = -12; // 0xfffffff4
@@ -54491,21 +54389,21 @@
   }
 
   public abstract class WebViewDatabase {
-    ctor public deprecated WebViewDatabase();
-    method public abstract deprecated void clearFormData();
+    ctor @Deprecated public WebViewDatabase();
+    method @Deprecated public abstract void clearFormData();
     method public abstract void clearHttpAuthUsernamePassword();
-    method public abstract deprecated void clearUsernamePassword();
-    method public abstract java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String);
+    method @Deprecated public abstract void clearUsernamePassword();
+    method @Nullable public abstract String[] getHttpAuthUsernamePassword(String, String);
     method public static android.webkit.WebViewDatabase getInstance(android.content.Context);
-    method public abstract deprecated boolean hasFormData();
+    method @Deprecated public abstract boolean hasFormData();
     method public abstract boolean hasHttpAuthUsernamePassword();
-    method public abstract deprecated boolean hasUsernamePassword();
-    method public abstract void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+    method @Deprecated public abstract boolean hasUsernamePassword();
+    method public abstract void setHttpAuthUsernamePassword(String, String, String, String);
   }
 
-  public deprecated class WebViewFragment extends android.app.Fragment {
-    ctor public WebViewFragment();
-    method public android.webkit.WebView getWebView();
+  @Deprecated public class WebViewFragment extends android.app.Fragment {
+    ctor @Deprecated public WebViewFragment();
+    method @Deprecated public android.webkit.WebView getWebView();
   }
 
   public abstract class WebViewRenderer {
@@ -54514,28 +54412,28 @@
 
   public abstract class WebViewRendererClient {
     ctor public WebViewRendererClient();
-    method public abstract void onRendererResponsive(android.webkit.WebView, android.webkit.WebViewRenderer);
-    method public abstract void onRendererUnresponsive(android.webkit.WebView, android.webkit.WebViewRenderer);
+    method public abstract void onRendererResponsive(@NonNull android.webkit.WebView, @Nullable android.webkit.WebViewRenderer);
+    method public abstract void onRendererUnresponsive(@NonNull android.webkit.WebView, @Nullable android.webkit.WebViewRenderer);
   }
 
 }
 
 package android.widget {
 
-  public abstract class AbsListView extends android.widget.AdapterView implements android.widget.Filter.FilterListener android.text.TextWatcher android.view.ViewTreeObserver.OnGlobalLayoutListener android.view.ViewTreeObserver.OnTouchModeChangeListener {
+  public abstract class AbsListView extends android.widget.AdapterView<android.widget.ListAdapter> implements android.widget.Filter.FilterListener android.text.TextWatcher android.view.ViewTreeObserver.OnGlobalLayoutListener android.view.ViewTreeObserver.OnTouchModeChangeListener {
     ctor public AbsListView(android.content.Context);
     ctor public AbsListView(android.content.Context, android.util.AttributeSet);
     ctor public AbsListView(android.content.Context, android.util.AttributeSet, int);
     ctor public AbsListView(android.content.Context, android.util.AttributeSet, int, int);
     method public void afterTextChanged(android.text.Editable);
-    method public void beforeTextChanged(java.lang.CharSequence, int, int, int);
+    method public void beforeTextChanged(CharSequence, int, int, int);
     method public boolean canScrollList(int);
     method public void clearChoices();
     method public void clearTextFilter();
     method public void deferNotifyDataSetChanged();
     method public void fling(int);
     method public android.widget.AbsListView.LayoutParams generateLayoutParams(android.util.AttributeSet);
-    method public int getCacheColorHint();
+    method @android.view.ViewDebug.ExportedProperty(category="drawing") @ColorInt public int getCacheColorHint();
     method public int getCheckedItemCount();
     method public long[] getCheckedItemIds();
     method public int getCheckedItemPosition();
@@ -54545,21 +54443,21 @@
     method public int getListPaddingLeft();
     method public int getListPaddingRight();
     method public int getListPaddingTop();
-    method public android.view.View getSelectedView();
+    method @android.view.ViewDebug.ExportedProperty public android.view.View getSelectedView();
     method public android.graphics.drawable.Drawable getSelector();
-    method public java.lang.CharSequence getTextFilter();
+    method public CharSequence getTextFilter();
     method public int getTranscriptMode();
     method protected void handleDataChanged();
     method public boolean hasTextFilter();
     method public void invalidateViews();
     method public boolean isFastScrollAlwaysVisible();
-    method public boolean isFastScrollEnabled();
+    method @android.view.ViewDebug.ExportedProperty public boolean isFastScrollEnabled();
     method protected boolean isInFilterMode();
     method public boolean isItemChecked(int);
-    method public boolean isScrollingCacheEnabled();
-    method public boolean isSmoothScrollbarEnabled();
-    method public boolean isStackFromBottom();
-    method public boolean isTextFilterEnabled();
+    method @android.view.ViewDebug.ExportedProperty public boolean isScrollingCacheEnabled();
+    method @android.view.ViewDebug.ExportedProperty public boolean isSmoothScrollbarEnabled();
+    method @android.view.ViewDebug.ExportedProperty public boolean isStackFromBottom();
+    method @android.view.ViewDebug.ExportedProperty public boolean isTextFilterEnabled();
     method protected void layoutChildren();
     method public void onFilterComplete(int);
     method public void onGlobalLayout();
@@ -54568,20 +54466,20 @@
     method public void onRemoteAdapterDisconnected();
     method public void onRestoreInstanceState(android.os.Parcelable);
     method public android.os.Parcelable onSaveInstanceState();
-    method public void onTextChanged(java.lang.CharSequence, int, int, int);
+    method public void onTextChanged(CharSequence, int, int, int);
     method public void onTouchModeChanged(boolean);
     method public int pointToPosition(int, int);
     method public long pointToRowId(int, int);
     method public void reclaimViews(java.util.List<android.view.View>);
     method public void scrollListBy(int);
     method public void setAdapter(android.widget.ListAdapter);
-    method public void setCacheColorHint(int);
+    method public void setCacheColorHint(@ColorInt int);
     method public void setChoiceMode(int);
     method public void setDrawSelectorOnTop(boolean);
     method public void setFastScrollAlwaysVisible(boolean);
     method public void setFastScrollEnabled(boolean);
     method public void setFastScrollStyle(int);
-    method public void setFilterText(java.lang.String);
+    method public void setFilterText(String);
     method public void setFriction(float);
     method public void setItemChecked(int, boolean);
     method public void setMultiChoiceModeListener(android.widget.AbsListView.MultiChoiceModeListener);
@@ -54591,7 +54489,7 @@
     method public void setScrollIndicators(android.view.View, android.view.View);
     method public void setScrollingCacheEnabled(boolean);
     method public void setSelectionFromTop(int, int);
-    method public void setSelector(int);
+    method public void setSelector(@DrawableRes int);
     method public void setSelector(android.graphics.drawable.Drawable);
     method public void setSmoothScrollbarEnabled(boolean);
     method public void setStackFromBottom(boolean);
@@ -54603,7 +54501,7 @@
     method public void smoothScrollToPosition(int, int);
     method public void smoothScrollToPositionFromTop(int, int, int);
     method public void smoothScrollToPositionFromTop(int, int);
-    method public boolean verifyDrawable(android.graphics.drawable.Drawable);
+    method public boolean verifyDrawable(@NonNull android.graphics.drawable.Drawable);
     field public static final int CHOICE_MODE_MULTIPLE = 2; // 0x2
     field public static final int CHOICE_MODE_MULTIPLE_MODAL = 3; // 0x3
     field public static final int CHOICE_MODE_NONE = 0; // 0x0
@@ -54620,24 +54518,24 @@
     ctor public AbsListView.LayoutParams(android.view.ViewGroup.LayoutParams);
   }
 
-  public static abstract interface AbsListView.MultiChoiceModeListener implements android.view.ActionMode.Callback {
-    method public abstract void onItemCheckedStateChanged(android.view.ActionMode, int, long, boolean);
+  public static interface AbsListView.MultiChoiceModeListener extends android.view.ActionMode.Callback {
+    method public void onItemCheckedStateChanged(android.view.ActionMode, int, long, boolean);
   }
 
-  public static abstract interface AbsListView.OnScrollListener {
-    method public abstract void onScroll(android.widget.AbsListView, int, int, int);
-    method public abstract void onScrollStateChanged(android.widget.AbsListView, int);
+  public static interface AbsListView.OnScrollListener {
+    method public void onScroll(android.widget.AbsListView, int, int, int);
+    method public void onScrollStateChanged(android.widget.AbsListView, int);
     field public static final int SCROLL_STATE_FLING = 2; // 0x2
     field public static final int SCROLL_STATE_IDLE = 0; // 0x0
     field public static final int SCROLL_STATE_TOUCH_SCROLL = 1; // 0x1
   }
 
-  public static abstract interface AbsListView.RecyclerListener {
-    method public abstract void onMovedToScrapHeap(android.view.View);
+  public static interface AbsListView.RecyclerListener {
+    method public void onMovedToScrapHeap(android.view.View);
   }
 
-  public static abstract interface AbsListView.SelectionBoundsAdjuster {
-    method public abstract void adjustListItemSelectionBounds(android.graphics.Rect);
+  public static interface AbsListView.SelectionBoundsAdjuster {
+    method public void adjustListItemSelectionBounds(android.graphics.Rect);
   }
 
   public abstract class AbsSeekBar extends android.widget.ProgressBar {
@@ -54649,23 +54547,23 @@
     method public boolean getSplitTrack();
     method public android.graphics.drawable.Drawable getThumb();
     method public int getThumbOffset();
-    method public android.content.res.ColorStateList getThumbTintList();
-    method public android.graphics.PorterDuff.Mode getThumbTintMode();
+    method @Nullable public android.content.res.ColorStateList getThumbTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getThumbTintMode();
     method public android.graphics.drawable.Drawable getTickMark();
-    method public android.content.res.ColorStateList getTickMarkTintList();
-    method public android.graphics.PorterDuff.Mode getTickMarkTintMode();
+    method @Nullable public android.content.res.ColorStateList getTickMarkTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getTickMarkTintMode();
     method public void setKeyProgressIncrement(int);
     method public void setSplitTrack(boolean);
     method public void setThumb(android.graphics.drawable.Drawable);
     method public void setThumbOffset(int);
-    method public void setThumbTintList(android.content.res.ColorStateList);
-    method public void setThumbTintMode(android.graphics.PorterDuff.Mode);
+    method public void setThumbTintList(@Nullable android.content.res.ColorStateList);
+    method public void setThumbTintMode(@Nullable android.graphics.PorterDuff.Mode);
     method public void setTickMark(android.graphics.drawable.Drawable);
-    method public void setTickMarkTintList(android.content.res.ColorStateList);
-    method public void setTickMarkTintMode(android.graphics.PorterDuff.Mode);
+    method public void setTickMarkTintList(@Nullable android.content.res.ColorStateList);
+    method public void setTickMarkTintMode(@Nullable android.graphics.PorterDuff.Mode);
   }
 
-  public abstract class AbsSpinner extends android.widget.AdapterView {
+  public abstract class AbsSpinner extends android.widget.AdapterView<android.widget.SpinnerAdapter> {
     ctor public AbsSpinner(android.content.Context);
     ctor public AbsSpinner(android.content.Context, android.util.AttributeSet);
     ctor public AbsSpinner(android.content.Context, android.util.AttributeSet, int);
@@ -54680,20 +54578,20 @@
     method public void setSelection(int);
   }
 
-  public deprecated class AbsoluteLayout extends android.view.ViewGroup {
-    ctor public AbsoluteLayout(android.content.Context);
-    ctor public AbsoluteLayout(android.content.Context, android.util.AttributeSet);
-    ctor public AbsoluteLayout(android.content.Context, android.util.AttributeSet, int);
-    ctor public AbsoluteLayout(android.content.Context, android.util.AttributeSet, int, int);
+  @Deprecated @android.widget.RemoteViews.RemoteView public class AbsoluteLayout extends android.view.ViewGroup {
+    ctor @Deprecated public AbsoluteLayout(android.content.Context);
+    ctor @Deprecated public AbsoluteLayout(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public AbsoluteLayout(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public AbsoluteLayout(android.content.Context, android.util.AttributeSet, int, int);
   }
 
-  public static class AbsoluteLayout.LayoutParams extends android.view.ViewGroup.LayoutParams {
-    ctor public AbsoluteLayout.LayoutParams(int, int, int, int);
-    ctor public AbsoluteLayout.LayoutParams(android.content.Context, android.util.AttributeSet);
-    ctor public AbsoluteLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
-    method public java.lang.String debug(java.lang.String);
-    field public int x;
-    field public int y;
+  @Deprecated public static class AbsoluteLayout.LayoutParams extends android.view.ViewGroup.LayoutParams {
+    ctor @Deprecated public AbsoluteLayout.LayoutParams(int, int, int, int);
+    ctor @Deprecated public AbsoluteLayout.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public AbsoluteLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
+    method @Deprecated public String debug(String);
+    field @Deprecated public int x;
+    field @Deprecated public int y;
   }
 
   public class ActionMenuView extends android.widget.LinearLayout {
@@ -54704,15 +54602,15 @@
     method public android.widget.ActionMenuView.LayoutParams generateLayoutParams(android.util.AttributeSet);
     method protected android.widget.ActionMenuView.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams);
     method public android.view.Menu getMenu();
-    method public android.graphics.drawable.Drawable getOverflowIcon();
+    method @Nullable public android.graphics.drawable.Drawable getOverflowIcon();
     method public int getPopupTheme();
     method public boolean hideOverflowMenu();
     method public boolean isOverflowMenuShowing();
     method public void onConfigurationChanged(android.content.res.Configuration);
     method public void onDetachedFromWindow();
     method public void setOnMenuItemClickListener(android.widget.ActionMenuView.OnMenuItemClickListener);
-    method public void setOverflowIcon(android.graphics.drawable.Drawable);
-    method public void setPopupTheme(int);
+    method public void setOverflowIcon(@Nullable android.graphics.drawable.Drawable);
+    method public void setPopupTheme(@StyleRes int);
     method public boolean showOverflowMenu();
   }
 
@@ -54723,22 +54621,22 @@
     ctor public ActionMenuView.LayoutParams(int, int);
   }
 
-  public static abstract interface ActionMenuView.OnMenuItemClickListener {
-    method public abstract boolean onMenuItemClick(android.view.MenuItem);
+  public static interface ActionMenuView.OnMenuItemClickListener {
+    method public boolean onMenuItemClick(android.view.MenuItem);
   }
 
-  public abstract interface Adapter {
-    method public default java.lang.CharSequence[] getAutofillOptions();
-    method public abstract int getCount();
-    method public abstract java.lang.Object getItem(int);
-    method public abstract long getItemId(int);
-    method public abstract int getItemViewType(int);
-    method public abstract android.view.View getView(int, android.view.View, android.view.ViewGroup);
-    method public abstract int getViewTypeCount();
-    method public abstract boolean hasStableIds();
-    method public abstract boolean isEmpty();
-    method public abstract void registerDataSetObserver(android.database.DataSetObserver);
-    method public abstract void unregisterDataSetObserver(android.database.DataSetObserver);
+  public interface Adapter {
+    method @Nullable public default CharSequence[] getAutofillOptions();
+    method public int getCount();
+    method public Object getItem(int);
+    method public long getItemId(int);
+    method public int getItemViewType(int);
+    method public android.view.View getView(int, android.view.View, android.view.ViewGroup);
+    method public int getViewTypeCount();
+    method public boolean hasStableIds();
+    method public boolean isEmpty();
+    method public void registerDataSetObserver(android.database.DataSetObserver);
+    method public void unregisterDataSetObserver(android.database.DataSetObserver);
     field public static final int IGNORE_ITEM_VIEW_TYPE = -1; // 0xffffffff
     field public static final int NO_SELECTION = -2147483648; // 0x80000000
   }
@@ -54749,26 +54647,26 @@
     ctor public AdapterView(android.content.Context, android.util.AttributeSet, int);
     ctor public AdapterView(android.content.Context, android.util.AttributeSet, int, int);
     method public abstract T getAdapter();
-    method public int getCount();
+    method @android.view.ViewDebug.CapturedViewProperty public int getCount();
     method public android.view.View getEmptyView();
     method public int getFirstVisiblePosition();
-    method public java.lang.Object getItemAtPosition(int);
+    method public Object getItemAtPosition(int);
     method public long getItemIdAtPosition(int);
     method public int getLastVisiblePosition();
-    method public final android.widget.AdapterView.OnItemClickListener getOnItemClickListener();
+    method @Nullable public final android.widget.AdapterView.OnItemClickListener getOnItemClickListener();
     method public final android.widget.AdapterView.OnItemLongClickListener getOnItemLongClickListener();
-    method public final android.widget.AdapterView.OnItemSelectedListener getOnItemSelectedListener();
+    method @Nullable public final android.widget.AdapterView.OnItemSelectedListener getOnItemSelectedListener();
     method public int getPositionForView(android.view.View);
-    method public java.lang.Object getSelectedItem();
-    method public long getSelectedItemId();
-    method public int getSelectedItemPosition();
+    method public Object getSelectedItem();
+    method @android.view.ViewDebug.CapturedViewProperty public long getSelectedItemId();
+    method @android.view.ViewDebug.CapturedViewProperty public int getSelectedItemPosition();
     method public abstract android.view.View getSelectedView();
     method public boolean performItemClick(android.view.View, int, long);
     method public abstract void setAdapter(T);
     method public void setEmptyView(android.view.View);
-    method public void setOnItemClickListener(android.widget.AdapterView.OnItemClickListener);
+    method public void setOnItemClickListener(@Nullable android.widget.AdapterView.OnItemClickListener);
     method public void setOnItemLongClickListener(android.widget.AdapterView.OnItemLongClickListener);
-    method public void setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener);
+    method public void setOnItemSelectedListener(@Nullable android.widget.AdapterView.OnItemSelectedListener);
     method public abstract void setSelection(int);
     field public static final int INVALID_POSITION = -1; // 0xffffffff
     field public static final long INVALID_ROW_ID = -9223372036854775808L; // 0x8000000000000000L
@@ -54783,20 +54681,20 @@
     field public android.view.View targetView;
   }
 
-  public static abstract interface AdapterView.OnItemClickListener {
-    method public abstract void onItemClick(android.widget.AdapterView<?>, android.view.View, int, long);
+  public static interface AdapterView.OnItemClickListener {
+    method public void onItemClick(android.widget.AdapterView<?>, android.view.View, int, long);
   }
 
-  public static abstract interface AdapterView.OnItemLongClickListener {
-    method public abstract boolean onItemLongClick(android.widget.AdapterView<?>, android.view.View, int, long);
+  public static interface AdapterView.OnItemLongClickListener {
+    method public boolean onItemLongClick(android.widget.AdapterView<?>, android.view.View, int, long);
   }
 
-  public static abstract interface AdapterView.OnItemSelectedListener {
-    method public abstract void onItemSelected(android.widget.AdapterView<?>, android.view.View, int, long);
-    method public abstract void onNothingSelected(android.widget.AdapterView<?>);
+  public static interface AdapterView.OnItemSelectedListener {
+    method public void onItemSelected(android.widget.AdapterView<?>, android.view.View, int, long);
+    method public void onNothingSelected(android.widget.AdapterView<?>);
   }
 
-  public abstract class AdapterViewAnimator extends android.widget.AdapterView implements android.widget.Advanceable {
+  public abstract class AdapterViewAnimator extends android.widget.AdapterView<android.widget.Adapter> implements android.widget.Advanceable {
     ctor public AdapterViewAnimator(android.content.Context);
     ctor public AdapterViewAnimator(android.content.Context, android.util.AttributeSet);
     ctor public AdapterViewAnimator(android.content.Context, android.util.AttributeSet, int);
@@ -54827,7 +54725,7 @@
     method public void showPrevious();
   }
 
-  public class AdapterViewFlipper extends android.widget.AdapterViewAnimator {
+  @android.widget.RemoteViews.RemoteView public class AdapterViewFlipper extends android.widget.AdapterViewAnimator {
     ctor public AdapterViewFlipper(android.content.Context);
     ctor public AdapterViewFlipper(android.content.Context, android.util.AttributeSet);
     ctor public AdapterViewFlipper(android.content.Context, android.util.AttributeSet, int);
@@ -54841,56 +54739,56 @@
     method public void stopFlipping();
   }
 
-  public abstract interface Advanceable {
-    method public abstract void advance();
-    method public abstract void fyiWillBeAdvancedByHostKThx();
+  public interface Advanceable {
+    method public void advance();
+    method public void fyiWillBeAdvancedByHostKThx();
   }
 
   public class AlphabetIndexer extends android.database.DataSetObserver implements android.widget.SectionIndexer {
-    ctor public AlphabetIndexer(android.database.Cursor, int, java.lang.CharSequence);
-    method protected int compare(java.lang.String, java.lang.String);
+    ctor public AlphabetIndexer(android.database.Cursor, int, CharSequence);
+    method protected int compare(String, String);
     method public int getPositionForSection(int);
     method public int getSectionForPosition(int);
-    method public java.lang.Object[] getSections();
+    method public Object[] getSections();
     method public void setCursor(android.database.Cursor);
-    field protected java.lang.CharSequence mAlphabet;
+    field protected CharSequence mAlphabet;
     field protected int mColumnIndex;
     field protected android.database.Cursor mDataCursor;
   }
 
-  public deprecated class AnalogClock extends android.view.View {
-    ctor public AnalogClock(android.content.Context);
-    ctor public AnalogClock(android.content.Context, android.util.AttributeSet);
-    ctor public AnalogClock(android.content.Context, android.util.AttributeSet, int);
-    ctor public AnalogClock(android.content.Context, android.util.AttributeSet, int, int);
+  @Deprecated @android.widget.RemoteViews.RemoteView public class AnalogClock extends android.view.View {
+    ctor @Deprecated public AnalogClock(android.content.Context);
+    ctor @Deprecated public AnalogClock(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public AnalogClock(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public AnalogClock(android.content.Context, android.util.AttributeSet, int, int);
   }
 
   public class ArrayAdapter<T> extends android.widget.BaseAdapter implements android.widget.Filterable android.widget.ThemedSpinnerAdapter {
-    ctor public ArrayAdapter(android.content.Context, int);
-    ctor public ArrayAdapter(android.content.Context, int, int);
-    ctor public ArrayAdapter(android.content.Context, int, T[]);
-    ctor public ArrayAdapter(android.content.Context, int, int, T[]);
-    ctor public ArrayAdapter(android.content.Context, int, java.util.List<T>);
-    ctor public ArrayAdapter(android.content.Context, int, int, java.util.List<T>);
-    method public void add(T);
-    method public void addAll(java.util.Collection<? extends T>);
+    ctor public ArrayAdapter(@NonNull android.content.Context, @LayoutRes int);
+    ctor public ArrayAdapter(@NonNull android.content.Context, @LayoutRes int, @IdRes int);
+    ctor public ArrayAdapter(@NonNull android.content.Context, @LayoutRes int, @NonNull T[]);
+    ctor public ArrayAdapter(@NonNull android.content.Context, @LayoutRes int, @IdRes int, @NonNull T[]);
+    ctor public ArrayAdapter(@NonNull android.content.Context, @LayoutRes int, @NonNull java.util.List<T>);
+    ctor public ArrayAdapter(@NonNull android.content.Context, @LayoutRes int, @IdRes int, @NonNull java.util.List<T>);
+    method public void add(@Nullable T);
+    method public void addAll(@NonNull java.util.Collection<? extends T>);
     method public void addAll(T...);
     method public void clear();
-    method public static android.widget.ArrayAdapter<java.lang.CharSequence> createFromResource(android.content.Context, int, int);
-    method public android.content.Context getContext();
+    method @NonNull public static android.widget.ArrayAdapter<java.lang.CharSequence> createFromResource(@NonNull android.content.Context, @ArrayRes int, @LayoutRes int);
+    method @NonNull public android.content.Context getContext();
     method public int getCount();
-    method public android.content.res.Resources.Theme getDropDownViewTheme();
-    method public android.widget.Filter getFilter();
-    method public T getItem(int);
+    method @Nullable public android.content.res.Resources.Theme getDropDownViewTheme();
+    method @NonNull public android.widget.Filter getFilter();
+    method @Nullable public T getItem(int);
     method public long getItemId(int);
-    method public int getPosition(T);
-    method public android.view.View getView(int, android.view.View, android.view.ViewGroup);
-    method public void insert(T, int);
-    method public void remove(T);
-    method public void setDropDownViewResource(int);
-    method public void setDropDownViewTheme(android.content.res.Resources.Theme);
+    method public int getPosition(@Nullable T);
+    method @NonNull public android.view.View getView(int, @Nullable android.view.View, @NonNull android.view.ViewGroup);
+    method public void insert(@Nullable T, int);
+    method public void remove(@Nullable T);
+    method public void setDropDownViewResource(@LayoutRes int);
+    method public void setDropDownViewTheme(@Nullable android.content.res.Resources.Theme);
     method public void setNotifyOnChange(boolean);
-    method public void sort(java.util.Comparator<? super T>);
+    method public void sort(@NonNull java.util.Comparator<? super T>);
   }
 
   public class AutoCompleteTextView extends android.widget.EditText implements android.widget.Filter.FilterListener {
@@ -54900,11 +54798,11 @@
     ctor public AutoCompleteTextView(android.content.Context, android.util.AttributeSet, int, int);
     ctor public AutoCompleteTextView(android.content.Context, android.util.AttributeSet, int, int, android.content.res.Resources.Theme);
     method public void clearListSelection();
-    method protected java.lang.CharSequence convertSelectionToString(java.lang.Object);
+    method protected CharSequence convertSelectionToString(Object);
     method public void dismissDropDown();
     method public boolean enoughToFilter();
     method public android.widget.ListAdapter getAdapter();
-    method public java.lang.CharSequence getCompletionHint();
+    method public CharSequence getCompletionHint();
     method public int getDropDownAnchor();
     method public android.graphics.drawable.Drawable getDropDownBackground();
     method public int getDropDownHeight();
@@ -54912,8 +54810,8 @@
     method public int getDropDownVerticalOffset();
     method public int getDropDownWidth();
     method protected android.widget.Filter getFilter();
-    method public deprecated android.widget.AdapterView.OnItemClickListener getItemClickListener();
-    method public deprecated android.widget.AdapterView.OnItemSelectedListener getItemSelectedListener();
+    method @Deprecated public android.widget.AdapterView.OnItemClickListener getItemClickListener();
+    method @Deprecated public android.widget.AdapterView.OnItemSelectedListener getItemSelectedListener();
     method public int getListSelection();
     method public android.widget.AdapterView.OnItemClickListener getOnItemClickListener();
     method public android.widget.AdapterView.OnItemSelectedListener getOnItemSelectedListener();
@@ -54923,14 +54821,14 @@
     method public boolean isPopupShowing();
     method public void onFilterComplete(int);
     method public void performCompletion();
-    method protected void performFiltering(java.lang.CharSequence, int);
+    method protected void performFiltering(CharSequence, int);
     method public void performValidation();
-    method protected void replaceText(java.lang.CharSequence);
+    method protected void replaceText(CharSequence);
     method public <T extends android.widget.ListAdapter & android.widget.Filterable> void setAdapter(T);
-    method public void setCompletionHint(java.lang.CharSequence);
+    method public void setCompletionHint(CharSequence);
     method public void setDropDownAnchor(int);
     method public void setDropDownBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setDropDownBackgroundResource(int);
+    method public void setDropDownBackgroundResource(@DrawableRes int);
     method public void setDropDownHeight(int);
     method public void setDropDownHorizontalOffset(int);
     method public void setDropDownVerticalOffset(int);
@@ -54939,19 +54837,19 @@
     method public void setOnDismissListener(android.widget.AutoCompleteTextView.OnDismissListener);
     method public void setOnItemClickListener(android.widget.AdapterView.OnItemClickListener);
     method public void setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener);
-    method public void setText(java.lang.CharSequence, boolean);
+    method public void setText(CharSequence, boolean);
     method public void setThreshold(int);
     method public void setValidator(android.widget.AutoCompleteTextView.Validator);
     method public void showDropDown();
   }
 
-  public static abstract interface AutoCompleteTextView.OnDismissListener {
-    method public abstract void onDismiss();
+  public static interface AutoCompleteTextView.OnDismissListener {
+    method public void onDismiss();
   }
 
-  public static abstract interface AutoCompleteTextView.Validator {
-    method public abstract java.lang.CharSequence fixText(java.lang.CharSequence);
-    method public abstract boolean isValid(java.lang.CharSequence);
+  public static interface AutoCompleteTextView.Validator {
+    method public CharSequence fixText(CharSequence);
+    method public boolean isValid(CharSequence);
   }
 
   public abstract class BaseAdapter implements android.widget.ListAdapter android.widget.SpinnerAdapter {
@@ -54966,7 +54864,7 @@
     method public void notifyDataSetChanged();
     method public void notifyDataSetInvalidated();
     method public void registerDataSetObserver(android.database.DataSetObserver);
-    method public void setAutofillOptions(java.lang.CharSequence...);
+    method public void setAutofillOptions(@Nullable java.lang.CharSequence...);
     method public void unregisterDataSetObserver(android.database.DataSetObserver);
   }
 
@@ -54988,7 +54886,7 @@
     method public void unregisterDataSetObserver(android.database.DataSetObserver);
   }
 
-  public class Button extends android.widget.TextView {
+  @android.widget.RemoteViews.RemoteView public class Button extends android.widget.TextView {
     ctor public Button(android.content.Context);
     ctor public Button(android.content.Context, android.util.AttributeSet);
     ctor public Button(android.content.Context, android.util.AttributeSet, int);
@@ -54996,45 +54894,45 @@
   }
 
   public class CalendarView extends android.widget.FrameLayout {
-    ctor public CalendarView(android.content.Context);
-    ctor public CalendarView(android.content.Context, android.util.AttributeSet);
-    ctor public CalendarView(android.content.Context, android.util.AttributeSet, int);
-    ctor public CalendarView(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public CalendarView(@NonNull android.content.Context);
+    ctor public CalendarView(@NonNull android.content.Context, @Nullable android.util.AttributeSet);
+    ctor public CalendarView(@NonNull android.content.Context, @Nullable android.util.AttributeSet, @AttrRes int);
+    ctor public CalendarView(@NonNull android.content.Context, @Nullable android.util.AttributeSet, @AttrRes int, @StyleRes int);
     method public long getDate();
-    method public int getDateTextAppearance();
+    method @StyleRes public int getDateTextAppearance();
     method public int getFirstDayOfWeek();
-    method public deprecated int getFocusedMonthDateColor();
+    method @Deprecated @ColorInt public int getFocusedMonthDateColor();
     method public long getMaxDate();
     method public long getMinDate();
-    method public deprecated android.graphics.drawable.Drawable getSelectedDateVerticalBar();
-    method public deprecated int getSelectedWeekBackgroundColor();
-    method public deprecated boolean getShowWeekNumber();
-    method public deprecated int getShownWeekCount();
-    method public deprecated int getUnfocusedMonthDateColor();
-    method public int getWeekDayTextAppearance();
-    method public deprecated int getWeekNumberColor();
-    method public deprecated int getWeekSeparatorLineColor();
+    method @Deprecated public android.graphics.drawable.Drawable getSelectedDateVerticalBar();
+    method @Deprecated @ColorInt public int getSelectedWeekBackgroundColor();
+    method @Deprecated public boolean getShowWeekNumber();
+    method @Deprecated public int getShownWeekCount();
+    method @Deprecated @ColorInt public int getUnfocusedMonthDateColor();
+    method @StyleRes public int getWeekDayTextAppearance();
+    method @Deprecated @ColorInt public int getWeekNumberColor();
+    method @Deprecated @ColorInt public int getWeekSeparatorLineColor();
     method public void setDate(long);
     method public void setDate(long, boolean, boolean);
-    method public void setDateTextAppearance(int);
+    method public void setDateTextAppearance(@StyleRes int);
     method public void setFirstDayOfWeek(int);
-    method public deprecated void setFocusedMonthDateColor(int);
+    method @Deprecated public void setFocusedMonthDateColor(@ColorInt int);
     method public void setMaxDate(long);
     method public void setMinDate(long);
     method public void setOnDateChangeListener(android.widget.CalendarView.OnDateChangeListener);
-    method public deprecated void setSelectedDateVerticalBar(int);
-    method public deprecated void setSelectedDateVerticalBar(android.graphics.drawable.Drawable);
-    method public deprecated void setSelectedWeekBackgroundColor(int);
-    method public deprecated void setShowWeekNumber(boolean);
-    method public deprecated void setShownWeekCount(int);
-    method public deprecated void setUnfocusedMonthDateColor(int);
-    method public void setWeekDayTextAppearance(int);
-    method public deprecated void setWeekNumberColor(int);
-    method public deprecated void setWeekSeparatorLineColor(int);
+    method @Deprecated public void setSelectedDateVerticalBar(@DrawableRes int);
+    method @Deprecated public void setSelectedDateVerticalBar(android.graphics.drawable.Drawable);
+    method @Deprecated public void setSelectedWeekBackgroundColor(@ColorInt int);
+    method @Deprecated public void setShowWeekNumber(boolean);
+    method @Deprecated public void setShownWeekCount(int);
+    method @Deprecated public void setUnfocusedMonthDateColor(@ColorInt int);
+    method public void setWeekDayTextAppearance(@StyleRes int);
+    method @Deprecated public void setWeekNumberColor(@ColorInt int);
+    method @Deprecated public void setWeekSeparatorLineColor(@ColorInt int);
   }
 
-  public static abstract interface CalendarView.OnDateChangeListener {
-    method public abstract void onSelectedDayChange(android.widget.CalendarView, int, int, int);
+  public static interface CalendarView.OnDateChangeListener {
+    method public void onSelectedDayChange(@NonNull android.widget.CalendarView, int, int, int);
   }
 
   public class CheckBox extends android.widget.CompoundButton {
@@ -55044,10 +54942,10 @@
     ctor public CheckBox(android.content.Context, android.util.AttributeSet, int, int);
   }
 
-  public abstract interface Checkable {
-    method public abstract boolean isChecked();
-    method public abstract void setChecked(boolean);
-    method public abstract void toggle();
+  public interface Checkable {
+    method public boolean isChecked();
+    method public void setChecked(boolean);
+    method public void toggle();
   }
 
   public class CheckedTextView extends android.widget.TextView implements android.widget.Checkable {
@@ -55056,37 +54954,37 @@
     ctor public CheckedTextView(android.content.Context, android.util.AttributeSet, int);
     ctor public CheckedTextView(android.content.Context, android.util.AttributeSet, int, int);
     method public android.graphics.drawable.Drawable getCheckMarkDrawable();
-    method public android.content.res.ColorStateList getCheckMarkTintList();
-    method public android.graphics.PorterDuff.Mode getCheckMarkTintMode();
-    method public boolean isChecked();
-    method public void setCheckMarkDrawable(int);
-    method public void setCheckMarkDrawable(android.graphics.drawable.Drawable);
-    method public void setCheckMarkTintList(android.content.res.ColorStateList);
-    method public void setCheckMarkTintMode(android.graphics.PorterDuff.Mode);
+    method @Nullable public android.content.res.ColorStateList getCheckMarkTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getCheckMarkTintMode();
+    method @android.view.ViewDebug.ExportedProperty public boolean isChecked();
+    method public void setCheckMarkDrawable(@DrawableRes int);
+    method public void setCheckMarkDrawable(@Nullable android.graphics.drawable.Drawable);
+    method public void setCheckMarkTintList(@Nullable android.content.res.ColorStateList);
+    method public void setCheckMarkTintMode(@Nullable android.graphics.PorterDuff.Mode);
     method public void setChecked(boolean);
     method public void toggle();
   }
 
-  public class Chronometer extends android.widget.TextView {
+  @android.widget.RemoteViews.RemoteView public class Chronometer extends android.widget.TextView {
     ctor public Chronometer(android.content.Context);
     ctor public Chronometer(android.content.Context, android.util.AttributeSet);
     ctor public Chronometer(android.content.Context, android.util.AttributeSet, int);
     ctor public Chronometer(android.content.Context, android.util.AttributeSet, int, int);
     method public long getBase();
-    method public java.lang.String getFormat();
+    method public String getFormat();
     method public android.widget.Chronometer.OnChronometerTickListener getOnChronometerTickListener();
     method public boolean isCountDown();
     method public boolean isTheFinalCountDown();
     method public void setBase(long);
     method public void setCountDown(boolean);
-    method public void setFormat(java.lang.String);
+    method public void setFormat(String);
     method public void setOnChronometerTickListener(android.widget.Chronometer.OnChronometerTickListener);
     method public void start();
     method public void stop();
   }
 
-  public static abstract interface Chronometer.OnChronometerTickListener {
-    method public abstract void onChronometerTick(android.widget.Chronometer);
+  public static interface Chronometer.OnChronometerTickListener {
+    method public void onChronometerTick(android.widget.Chronometer);
   }
 
   public abstract class CompoundButton extends android.widget.Button implements android.widget.Checkable {
@@ -55094,47 +54992,47 @@
     ctor public CompoundButton(android.content.Context, android.util.AttributeSet);
     ctor public CompoundButton(android.content.Context, android.util.AttributeSet, int);
     ctor public CompoundButton(android.content.Context, android.util.AttributeSet, int, int);
-    method public android.graphics.drawable.Drawable getButtonDrawable();
-    method public android.content.res.ColorStateList getButtonTintList();
-    method public android.graphics.PorterDuff.Mode getButtonTintMode();
-    method public boolean isChecked();
-    method public void setButtonDrawable(int);
-    method public void setButtonDrawable(android.graphics.drawable.Drawable);
-    method public void setButtonTintList(android.content.res.ColorStateList);
-    method public void setButtonTintMode(android.graphics.PorterDuff.Mode);
+    method @Nullable public android.graphics.drawable.Drawable getButtonDrawable();
+    method @Nullable public android.content.res.ColorStateList getButtonTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getButtonTintMode();
+    method @android.view.ViewDebug.ExportedProperty public boolean isChecked();
+    method public void setButtonDrawable(@DrawableRes int);
+    method public void setButtonDrawable(@Nullable android.graphics.drawable.Drawable);
+    method public void setButtonTintList(@Nullable android.content.res.ColorStateList);
+    method public void setButtonTintMode(@Nullable android.graphics.PorterDuff.Mode);
     method public void setChecked(boolean);
-    method public void setOnCheckedChangeListener(android.widget.CompoundButton.OnCheckedChangeListener);
+    method public void setOnCheckedChangeListener(@Nullable android.widget.CompoundButton.OnCheckedChangeListener);
     method public void toggle();
   }
 
-  public static abstract interface CompoundButton.OnCheckedChangeListener {
-    method public abstract void onCheckedChanged(android.widget.CompoundButton, boolean);
+  public static interface CompoundButton.OnCheckedChangeListener {
+    method public void onCheckedChanged(android.widget.CompoundButton, boolean);
   }
 
   public abstract class CursorAdapter extends android.widget.BaseAdapter implements android.widget.Filterable android.widget.ThemedSpinnerAdapter {
-    ctor public deprecated CursorAdapter(android.content.Context, android.database.Cursor);
+    ctor @Deprecated public CursorAdapter(android.content.Context, android.database.Cursor);
     ctor public CursorAdapter(android.content.Context, android.database.Cursor, boolean);
     ctor public CursorAdapter(android.content.Context, android.database.Cursor, int);
     method public abstract void bindView(android.view.View, android.content.Context, android.database.Cursor);
     method public void changeCursor(android.database.Cursor);
-    method public java.lang.CharSequence convertToString(android.database.Cursor);
+    method public CharSequence convertToString(android.database.Cursor);
     method public int getCount();
     method public android.database.Cursor getCursor();
     method public android.content.res.Resources.Theme getDropDownViewTheme();
     method public android.widget.Filter getFilter();
     method public android.widget.FilterQueryProvider getFilterQueryProvider();
-    method public java.lang.Object getItem(int);
+    method public Object getItem(int);
     method public long getItemId(int);
     method public android.view.View getView(int, android.view.View, android.view.ViewGroup);
-    method protected deprecated void init(android.content.Context, android.database.Cursor, boolean);
+    method @Deprecated protected void init(android.content.Context, android.database.Cursor, boolean);
     method public android.view.View newDropDownView(android.content.Context, android.database.Cursor, android.view.ViewGroup);
     method public abstract android.view.View newView(android.content.Context, android.database.Cursor, android.view.ViewGroup);
     method protected void onContentChanged();
-    method public android.database.Cursor runQueryOnBackgroundThread(java.lang.CharSequence);
+    method @WorkerThread public android.database.Cursor runQueryOnBackgroundThread(CharSequence);
     method public void setDropDownViewTheme(android.content.res.Resources.Theme);
     method public void setFilterQueryProvider(android.widget.FilterQueryProvider);
     method public android.database.Cursor swapCursor(android.database.Cursor);
-    field public static final deprecated int FLAG_AUTO_REQUERY = 1; // 0x1
+    field @Deprecated public static final int FLAG_AUTO_REQUERY = 1; // 0x1
     field public static final int FLAG_REGISTER_CONTENT_OBSERVER = 2; // 0x2
   }
 
@@ -55144,7 +55042,7 @@
     method protected abstract void bindChildView(android.view.View, android.content.Context, android.database.Cursor, boolean);
     method protected abstract void bindGroupView(android.view.View, android.content.Context, android.database.Cursor, boolean);
     method public void changeCursor(android.database.Cursor);
-    method public java.lang.String convertToString(android.database.Cursor);
+    method public String convertToString(android.database.Cursor);
     method public android.database.Cursor getChild(int, int);
     method public long getChildId(int, int);
     method public android.view.View getChildView(int, int, boolean, android.view.View, android.view.ViewGroup);
@@ -55162,7 +55060,7 @@
     method protected abstract android.view.View newChildView(android.content.Context, android.database.Cursor, boolean, android.view.ViewGroup);
     method protected abstract android.view.View newGroupView(android.content.Context, android.database.Cursor, boolean, android.view.ViewGroup);
     method public void notifyDataSetChanged(boolean);
-    method public android.database.Cursor runQueryOnBackgroundThread(java.lang.CharSequence);
+    method public android.database.Cursor runQueryOnBackgroundThread(CharSequence);
     method public void setChildrenCursor(int, android.database.Cursor);
     method public void setFilterQueryProvider(android.widget.FilterQueryProvider);
     method public void setGroupCursor(android.database.Cursor);
@@ -55173,69 +55071,69 @@
     ctor public DatePicker(android.content.Context, android.util.AttributeSet);
     ctor public DatePicker(android.content.Context, android.util.AttributeSet, int);
     ctor public DatePicker(android.content.Context, android.util.AttributeSet, int, int);
-    method public deprecated android.widget.CalendarView getCalendarView();
-    method public deprecated boolean getCalendarViewShown();
+    method @Deprecated public android.widget.CalendarView getCalendarView();
+    method @Deprecated public boolean getCalendarViewShown();
     method public int getDayOfMonth();
     method public int getFirstDayOfWeek();
     method public long getMaxDate();
     method public long getMinDate();
     method public int getMonth();
-    method public deprecated boolean getSpinnersShown();
+    method @Deprecated public boolean getSpinnersShown();
     method public int getYear();
     method public void init(int, int, int, android.widget.DatePicker.OnDateChangedListener);
-    method public deprecated void setCalendarViewShown(boolean);
+    method @Deprecated public void setCalendarViewShown(boolean);
     method public void setFirstDayOfWeek(int);
     method public void setMaxDate(long);
     method public void setMinDate(long);
     method public void setOnDateChangedListener(android.widget.DatePicker.OnDateChangedListener);
-    method public deprecated void setSpinnersShown(boolean);
+    method @Deprecated public void setSpinnersShown(boolean);
     method public void updateDate(int, int, int);
   }
 
-  public static abstract interface DatePicker.OnDateChangedListener {
-    method public abstract void onDateChanged(android.widget.DatePicker, int, int, int);
+  public static interface DatePicker.OnDateChangedListener {
+    method public void onDateChanged(android.widget.DatePicker, int, int, int);
   }
 
-  public deprecated class DialerFilter extends android.widget.RelativeLayout {
-    ctor public DialerFilter(android.content.Context);
-    ctor public DialerFilter(android.content.Context, android.util.AttributeSet);
-    method public void append(java.lang.String);
-    method public void clearText();
-    method public java.lang.CharSequence getDigits();
-    method public java.lang.CharSequence getFilterText();
-    method public java.lang.CharSequence getLetters();
-    method public int getMode();
-    method public boolean isQwertyKeyboard();
-    method protected void onModeChange(int, int);
-    method public void removeFilterWatcher(android.text.TextWatcher);
-    method public void setDigitsWatcher(android.text.TextWatcher);
-    method public void setFilterWatcher(android.text.TextWatcher);
-    method public void setLettersWatcher(android.text.TextWatcher);
-    method public void setMode(int);
-    field public static final int DIGITS_AND_LETTERS = 1; // 0x1
-    field public static final int DIGITS_AND_LETTERS_NO_DIGITS = 2; // 0x2
-    field public static final int DIGITS_AND_LETTERS_NO_LETTERS = 3; // 0x3
-    field public static final int DIGITS_ONLY = 4; // 0x4
-    field public static final int LETTERS_ONLY = 5; // 0x5
+  @Deprecated public class DialerFilter extends android.widget.RelativeLayout {
+    ctor @Deprecated public DialerFilter(android.content.Context);
+    ctor @Deprecated public DialerFilter(android.content.Context, android.util.AttributeSet);
+    method @Deprecated public void append(String);
+    method @Deprecated public void clearText();
+    method @Deprecated public CharSequence getDigits();
+    method @Deprecated public CharSequence getFilterText();
+    method @Deprecated public CharSequence getLetters();
+    method @Deprecated public int getMode();
+    method @Deprecated public boolean isQwertyKeyboard();
+    method @Deprecated protected void onModeChange(int, int);
+    method @Deprecated public void removeFilterWatcher(android.text.TextWatcher);
+    method @Deprecated public void setDigitsWatcher(android.text.TextWatcher);
+    method @Deprecated public void setFilterWatcher(android.text.TextWatcher);
+    method @Deprecated public void setLettersWatcher(android.text.TextWatcher);
+    method @Deprecated public void setMode(int);
+    field @Deprecated public static final int DIGITS_AND_LETTERS = 1; // 0x1
+    field @Deprecated public static final int DIGITS_AND_LETTERS_NO_DIGITS = 2; // 0x2
+    field @Deprecated public static final int DIGITS_AND_LETTERS_NO_LETTERS = 3; // 0x3
+    field @Deprecated public static final int DIGITS_ONLY = 4; // 0x4
+    field @Deprecated public static final int LETTERS_ONLY = 5; // 0x5
   }
 
-  public deprecated class DigitalClock extends android.widget.TextView {
-    ctor public DigitalClock(android.content.Context);
-    ctor public DigitalClock(android.content.Context, android.util.AttributeSet);
+  @Deprecated public class DigitalClock extends android.widget.TextView {
+    ctor @Deprecated public DigitalClock(android.content.Context);
+    ctor @Deprecated public DigitalClock(android.content.Context, android.util.AttributeSet);
   }
 
   public class EdgeEffect {
     ctor public EdgeEffect(android.content.Context);
     method public boolean draw(android.graphics.Canvas);
     method public void finish();
-    method public int getColor();
+    method @ColorInt public int getColor();
     method public int getMaxHeight();
     method public boolean isFinished();
     method public void onAbsorb(int);
     method public void onPull(float);
     method public void onPull(float, float);
     method public void onRelease();
-    method public void setColor(int);
+    method public void setColor(@ColorInt int);
     method public void setSize(int, int);
   }
 
@@ -55251,25 +55149,25 @@
     method public void setSelection(int);
   }
 
-  public abstract interface ExpandableListAdapter {
-    method public abstract boolean areAllItemsEnabled();
-    method public abstract java.lang.Object getChild(int, int);
-    method public abstract long getChildId(int, int);
-    method public abstract android.view.View getChildView(int, int, boolean, android.view.View, android.view.ViewGroup);
-    method public abstract int getChildrenCount(int);
-    method public abstract long getCombinedChildId(long, long);
-    method public abstract long getCombinedGroupId(long);
-    method public abstract java.lang.Object getGroup(int);
-    method public abstract int getGroupCount();
-    method public abstract long getGroupId(int);
-    method public abstract android.view.View getGroupView(int, boolean, android.view.View, android.view.ViewGroup);
-    method public abstract boolean hasStableIds();
-    method public abstract boolean isChildSelectable(int, int);
-    method public abstract boolean isEmpty();
-    method public abstract void onGroupCollapsed(int);
-    method public abstract void onGroupExpanded(int);
-    method public abstract void registerDataSetObserver(android.database.DataSetObserver);
-    method public abstract void unregisterDataSetObserver(android.database.DataSetObserver);
+  public interface ExpandableListAdapter {
+    method public boolean areAllItemsEnabled();
+    method public Object getChild(int, int);
+    method public long getChildId(int, int);
+    method public android.view.View getChildView(int, int, boolean, android.view.View, android.view.ViewGroup);
+    method public int getChildrenCount(int);
+    method public long getCombinedChildId(long, long);
+    method public long getCombinedGroupId(long);
+    method public Object getGroup(int);
+    method public int getGroupCount();
+    method public long getGroupId(int);
+    method public android.view.View getGroupView(int, boolean, android.view.View, android.view.ViewGroup);
+    method public boolean hasStableIds();
+    method public boolean isChildSelectable(int, int);
+    method public boolean isEmpty();
+    method public void onGroupCollapsed(int);
+    method public void onGroupExpanded(int);
+    method public void registerDataSetObserver(android.database.DataSetObserver);
+    method public void unregisterDataSetObserver(android.database.DataSetObserver);
   }
 
   public class ExpandableListView extends android.widget.ListView {
@@ -55319,97 +55217,97 @@
     field public android.view.View targetView;
   }
 
-  public static abstract interface ExpandableListView.OnChildClickListener {
-    method public abstract boolean onChildClick(android.widget.ExpandableListView, android.view.View, int, int, long);
+  public static interface ExpandableListView.OnChildClickListener {
+    method public boolean onChildClick(android.widget.ExpandableListView, android.view.View, int, int, long);
   }
 
-  public static abstract interface ExpandableListView.OnGroupClickListener {
-    method public abstract boolean onGroupClick(android.widget.ExpandableListView, android.view.View, int, long);
+  public static interface ExpandableListView.OnGroupClickListener {
+    method public boolean onGroupClick(android.widget.ExpandableListView, android.view.View, int, long);
   }
 
-  public static abstract interface ExpandableListView.OnGroupCollapseListener {
-    method public abstract void onGroupCollapse(int);
+  public static interface ExpandableListView.OnGroupCollapseListener {
+    method public void onGroupCollapse(int);
   }
 
-  public static abstract interface ExpandableListView.OnGroupExpandListener {
-    method public abstract void onGroupExpand(int);
+  public static interface ExpandableListView.OnGroupExpandListener {
+    method public void onGroupExpand(int);
   }
 
   public abstract class Filter {
     ctor public Filter();
-    method public java.lang.CharSequence convertResultToString(java.lang.Object);
-    method public final void filter(java.lang.CharSequence);
-    method public final void filter(java.lang.CharSequence, android.widget.Filter.FilterListener);
-    method protected abstract android.widget.Filter.FilterResults performFiltering(java.lang.CharSequence);
-    method protected abstract void publishResults(java.lang.CharSequence, android.widget.Filter.FilterResults);
+    method public CharSequence convertResultToString(Object);
+    method public final void filter(CharSequence);
+    method public final void filter(CharSequence, android.widget.Filter.FilterListener);
+    method protected abstract android.widget.Filter.FilterResults performFiltering(CharSequence);
+    method protected abstract void publishResults(CharSequence, android.widget.Filter.FilterResults);
   }
 
-  public static abstract interface Filter.FilterListener {
-    method public abstract void onFilterComplete(int);
+  public static interface Filter.FilterListener {
+    method public void onFilterComplete(int);
   }
 
   protected static class Filter.FilterResults {
     ctor public Filter.FilterResults();
     field public int count;
-    field public java.lang.Object values;
+    field public Object values;
   }
 
-  public abstract interface FilterQueryProvider {
-    method public abstract android.database.Cursor runQuery(java.lang.CharSequence);
+  public interface FilterQueryProvider {
+    method public android.database.Cursor runQuery(CharSequence);
   }
 
-  public abstract interface Filterable {
-    method public abstract android.widget.Filter getFilter();
+  public interface Filterable {
+    method public android.widget.Filter getFilter();
   }
 
-  public class FrameLayout extends android.view.ViewGroup {
-    ctor public FrameLayout(android.content.Context);
-    ctor public FrameLayout(android.content.Context, android.util.AttributeSet);
-    ctor public FrameLayout(android.content.Context, android.util.AttributeSet, int);
-    ctor public FrameLayout(android.content.Context, android.util.AttributeSet, int, int);
+  @android.widget.RemoteViews.RemoteView public class FrameLayout extends android.view.ViewGroup {
+    ctor public FrameLayout(@NonNull android.content.Context);
+    ctor public FrameLayout(@NonNull android.content.Context, @Nullable android.util.AttributeSet);
+    ctor public FrameLayout(@NonNull android.content.Context, @Nullable android.util.AttributeSet, @AttrRes int);
+    ctor public FrameLayout(@NonNull android.content.Context, @Nullable android.util.AttributeSet, @AttrRes int, @StyleRes int);
     method protected android.widget.FrameLayout.LayoutParams generateDefaultLayoutParams();
     method public android.widget.FrameLayout.LayoutParams generateLayoutParams(android.util.AttributeSet);
-    method public deprecated boolean getConsiderGoneChildrenWhenMeasuring();
+    method @Deprecated public boolean getConsiderGoneChildrenWhenMeasuring();
     method public boolean getMeasureAllChildren();
     method public void setMeasureAllChildren(boolean);
   }
 
   public static class FrameLayout.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
-    ctor public FrameLayout.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public FrameLayout.LayoutParams(@NonNull android.content.Context, @Nullable android.util.AttributeSet);
     ctor public FrameLayout.LayoutParams(int, int);
     ctor public FrameLayout.LayoutParams(int, int, int);
-    ctor public FrameLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
-    ctor public FrameLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    ctor public FrameLayout.LayoutParams(android.widget.FrameLayout.LayoutParams);
+    ctor public FrameLayout.LayoutParams(@NonNull android.view.ViewGroup.LayoutParams);
+    ctor public FrameLayout.LayoutParams(@NonNull android.view.ViewGroup.MarginLayoutParams);
+    ctor public FrameLayout.LayoutParams(@NonNull android.widget.FrameLayout.LayoutParams);
     field public static final int UNSPECIFIED_GRAVITY = -1; // 0xffffffff
     field public int gravity;
   }
 
-  public deprecated class Gallery extends android.widget.AbsSpinner implements android.view.GestureDetector.OnGestureListener {
-    ctor public Gallery(android.content.Context);
-    ctor public Gallery(android.content.Context, android.util.AttributeSet);
-    ctor public Gallery(android.content.Context, android.util.AttributeSet, int);
-    ctor public Gallery(android.content.Context, android.util.AttributeSet, int, int);
-    method public boolean onDown(android.view.MotionEvent);
-    method public boolean onFling(android.view.MotionEvent, android.view.MotionEvent, float, float);
-    method public void onLongPress(android.view.MotionEvent);
-    method public boolean onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float);
-    method public void onShowPress(android.view.MotionEvent);
-    method public boolean onSingleTapUp(android.view.MotionEvent);
-    method public void setAnimationDuration(int);
-    method public void setCallbackDuringFling(boolean);
-    method public void setGravity(int);
-    method public void setSpacing(int);
-    method public void setUnselectedAlpha(float);
+  @Deprecated public class Gallery extends android.widget.AbsSpinner implements android.view.GestureDetector.OnGestureListener {
+    ctor @Deprecated public Gallery(android.content.Context);
+    ctor @Deprecated public Gallery(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public Gallery(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public Gallery(android.content.Context, android.util.AttributeSet, int, int);
+    method @Deprecated public boolean onDown(android.view.MotionEvent);
+    method @Deprecated public boolean onFling(android.view.MotionEvent, android.view.MotionEvent, float, float);
+    method @Deprecated public void onLongPress(@NonNull android.view.MotionEvent);
+    method @Deprecated public boolean onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float);
+    method @Deprecated public void onShowPress(android.view.MotionEvent);
+    method @Deprecated public boolean onSingleTapUp(android.view.MotionEvent);
+    method @Deprecated public void setAnimationDuration(int);
+    method @Deprecated public void setCallbackDuringFling(boolean);
+    method @Deprecated public void setGravity(int);
+    method @Deprecated public void setSpacing(int);
+    method @Deprecated public void setUnselectedAlpha(float);
   }
 
-  public static class Gallery.LayoutParams extends android.view.ViewGroup.LayoutParams {
-    ctor public Gallery.LayoutParams(android.content.Context, android.util.AttributeSet);
-    ctor public Gallery.LayoutParams(int, int);
-    ctor public Gallery.LayoutParams(android.view.ViewGroup.LayoutParams);
+  @Deprecated public static class Gallery.LayoutParams extends android.view.ViewGroup.LayoutParams {
+    ctor @Deprecated public Gallery.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public Gallery.LayoutParams(int, int);
+    ctor @Deprecated public Gallery.LayoutParams(android.view.ViewGroup.LayoutParams);
   }
 
-  public class GridLayout extends android.view.ViewGroup {
+  @android.widget.RemoteViews.RemoteView public class GridLayout extends android.view.ViewGroup {
     ctor public GridLayout(android.content.Context);
     ctor public GridLayout(android.content.Context, android.util.AttributeSet);
     ctor public GridLayout(android.content.Context, android.util.AttributeSet, int);
@@ -55455,7 +55353,7 @@
     field public static final int VERTICAL = 1; // 0x1
   }
 
-  public static abstract class GridLayout.Alignment {
+  public abstract static class GridLayout.Alignment {
   }
 
   public static class GridLayout.LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
@@ -55473,7 +55371,7 @@
   public static class GridLayout.Spec {
   }
 
-  public class GridView extends android.widget.AbsListView {
+  @android.widget.RemoteViews.RemoteView public class GridView extends android.widget.AbsListView {
     ctor public GridView(android.content.Context);
     ctor public GridView(android.content.Context, android.util.AttributeSet);
     ctor public GridView(android.content.Context, android.util.AttributeSet, int);
@@ -55482,7 +55380,7 @@
     method public int getColumnWidth();
     method public int getGravity();
     method public int getHorizontalSpacing();
-    method public int getNumColumns();
+    method @android.view.ViewDebug.ExportedProperty public int getNumColumns();
     method public int getRequestedColumnWidth();
     method public int getRequestedHorizontalSpacing();
     method public int getStretchMode();
@@ -55509,7 +55407,7 @@
     method public android.widget.Filter getFilter();
     method public int getFootersCount();
     method public int getHeadersCount();
-    method public java.lang.Object getItem(int);
+    method public Object getItem(int);
     method public long getItemId(int);
     method public int getItemViewType(int);
     method public android.view.View getView(int, android.view.View, android.view.ViewGroup);
@@ -55524,11 +55422,11 @@
     method public void unregisterDataSetObserver(android.database.DataSetObserver);
   }
 
-  public abstract interface HeterogeneousExpandableList {
-    method public abstract int getChildType(int, int);
-    method public abstract int getChildTypeCount();
-    method public abstract int getGroupType(int);
-    method public abstract int getGroupTypeCount();
+  public interface HeterogeneousExpandableList {
+    method public int getChildType(int, int);
+    method public int getChildTypeCount();
+    method public int getGroupType(int);
+    method public int getGroupTypeCount();
   }
 
   public class HorizontalScrollView extends android.widget.FrameLayout {
@@ -55551,7 +55449,7 @@
     method public final void smoothScrollTo(int, int);
   }
 
-  public class ImageButton extends android.widget.ImageView {
+  @android.widget.RemoteViews.RemoteView public class ImageButton extends android.widget.ImageView {
     ctor public ImageButton(android.content.Context);
     ctor public ImageButton(android.content.Context, android.util.AttributeSet);
     ctor public ImageButton(android.content.Context, android.util.AttributeSet, int);
@@ -55562,16 +55460,16 @@
     ctor public ImageSwitcher(android.content.Context);
     ctor public ImageSwitcher(android.content.Context, android.util.AttributeSet);
     method public void setImageDrawable(android.graphics.drawable.Drawable);
-    method public void setImageResource(int);
+    method public void setImageResource(@DrawableRes int);
     method public void setImageURI(android.net.Uri);
   }
 
-  public class ImageView extends android.view.View {
+  @android.widget.RemoteViews.RemoteView public class ImageView extends android.view.View {
     ctor public ImageView(android.content.Context);
-    ctor public ImageView(android.content.Context, android.util.AttributeSet);
-    ctor public ImageView(android.content.Context, android.util.AttributeSet, int);
-    ctor public ImageView(android.content.Context, android.util.AttributeSet, int, int);
-    method public void animateTransform(android.graphics.Matrix);
+    ctor public ImageView(android.content.Context, @Nullable android.util.AttributeSet);
+    ctor public ImageView(android.content.Context, @Nullable android.util.AttributeSet, int);
+    ctor public ImageView(android.content.Context, @Nullable android.util.AttributeSet, int, int);
+    method public void animateTransform(@Nullable android.graphics.Matrix);
     method public final void clearColorFilter();
     method public boolean getAdjustViewBounds();
     method public boolean getBaselineAlignBottom();
@@ -55580,14 +55478,14 @@
     method public android.graphics.drawable.Drawable getDrawable();
     method public int getImageAlpha();
     method public android.graphics.Matrix getImageMatrix();
-    method public android.content.res.ColorStateList getImageTintList();
-    method public android.graphics.PorterDuff.Mode getImageTintMode();
+    method @Nullable public android.content.res.ColorStateList getImageTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getImageTintMode();
     method public int getMaxHeight();
     method public int getMaxWidth();
     method public android.widget.ImageView.ScaleType getScaleType();
     method public int[] onCreateDrawableState(int);
     method public void setAdjustViewBounds(boolean);
-    method public deprecated void setAlpha(int);
+    method @Deprecated public void setAlpha(int);
     method public void setBaseline(int);
     method public void setBaselineAlignBottom(boolean);
     method public final void setColorFilter(int, android.graphics.PorterDuff.Mode);
@@ -55597,23 +55495,21 @@
     method protected boolean setFrame(int, int, int, int);
     method public void setImageAlpha(int);
     method public void setImageBitmap(android.graphics.Bitmap);
-    method public void setImageDrawable(android.graphics.drawable.Drawable);
-    method public void setImageIcon(android.graphics.drawable.Icon);
+    method public void setImageDrawable(@Nullable android.graphics.drawable.Drawable);
+    method public void setImageIcon(@Nullable android.graphics.drawable.Icon);
     method public void setImageLevel(int);
     method public void setImageMatrix(android.graphics.Matrix);
-    method public void setImageResource(int);
+    method public void setImageResource(@DrawableRes int);
     method public void setImageState(int[], boolean);
-    method public void setImageTintList(android.content.res.ColorStateList);
-    method public void setImageTintMode(android.graphics.PorterDuff.Mode);
-    method public void setImageURI(android.net.Uri);
+    method public void setImageTintList(@Nullable android.content.res.ColorStateList);
+    method public void setImageTintMode(@Nullable android.graphics.PorterDuff.Mode);
+    method public void setImageURI(@Nullable android.net.Uri);
     method public void setMaxHeight(int);
     method public void setMaxWidth(int);
     method public void setScaleType(android.widget.ImageView.ScaleType);
   }
 
-  public static final class ImageView.ScaleType extends java.lang.Enum {
-    method public static android.widget.ImageView.ScaleType valueOf(java.lang.String);
-    method public static final android.widget.ImageView.ScaleType[] values();
+  public enum ImageView.ScaleType {
     enum_constant public static final android.widget.ImageView.ScaleType CENTER;
     enum_constant public static final android.widget.ImageView.ScaleType CENTER_CROP;
     enum_constant public static final android.widget.ImageView.ScaleType CENTER_INSIDE;
@@ -55624,10 +55520,10 @@
     enum_constant public static final android.widget.ImageView.ScaleType MATRIX;
   }
 
-  public class LinearLayout extends android.view.ViewGroup {
+  @android.widget.RemoteViews.RemoteView public class LinearLayout extends android.view.ViewGroup {
     ctor public LinearLayout(android.content.Context);
-    ctor public LinearLayout(android.content.Context, android.util.AttributeSet);
-    ctor public LinearLayout(android.content.Context, android.util.AttributeSet, int);
+    ctor public LinearLayout(android.content.Context, @Nullable android.util.AttributeSet);
+    ctor public LinearLayout(android.content.Context, @Nullable android.util.AttributeSet, int);
     ctor public LinearLayout(android.content.Context, android.util.AttributeSet, int, int);
     method protected android.widget.LinearLayout.LayoutParams generateDefaultLayoutParams();
     method public android.widget.LinearLayout.LayoutParams generateLayoutParams(android.util.AttributeSet);
@@ -55667,51 +55563,51 @@
     ctor public LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
     ctor public LinearLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
     ctor public LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams);
-    method public java.lang.String debug(java.lang.String);
-    field public int gravity;
-    field public float weight;
+    method public String debug(String);
+    field @android.view.ViewDebug.ExportedProperty(category="layout", mapping={@android.view.ViewDebug.IntToString(from=0xffffffff, to="NONE"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.NO_GRAVITY, to="NONE"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.TOP, to="TOP"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.BOTTOM, to="BOTTOM"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.LEFT, to="LEFT"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.RIGHT, to="RIGHT"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.START, to="START"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.END, to="END"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.CENTER_VERTICAL, to="CENTER_VERTICAL"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.FILL_VERTICAL, to="FILL_VERTICAL"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.CENTER_HORIZONTAL, to="CENTER_HORIZONTAL"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.FILL_HORIZONTAL, to="FILL_HORIZONTAL"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.CENTER, to="CENTER"), @android.view.ViewDebug.IntToString(from=android.view.Gravity.FILL, to="FILL")}) public int gravity;
+    field @android.view.ViewDebug.ExportedProperty(category="layout") public float weight;
   }
 
-  public abstract interface ListAdapter implements android.widget.Adapter {
-    method public abstract boolean areAllItemsEnabled();
-    method public abstract boolean isEnabled(int);
+  public interface ListAdapter extends android.widget.Adapter {
+    method public boolean areAllItemsEnabled();
+    method public boolean isEnabled(int);
   }
 
   public class ListPopupWindow {
-    ctor public ListPopupWindow(android.content.Context);
-    ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet);
-    ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet, int);
-    ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public ListPopupWindow(@NonNull android.content.Context);
+    ctor public ListPopupWindow(@NonNull android.content.Context, @Nullable android.util.AttributeSet);
+    ctor public ListPopupWindow(@NonNull android.content.Context, @Nullable android.util.AttributeSet, @AttrRes int);
+    ctor public ListPopupWindow(@NonNull android.content.Context, @Nullable android.util.AttributeSet, @AttrRes int, @StyleRes int);
     method public void clearListSelection();
     method public android.view.View.OnTouchListener createDragToOpenListener(android.view.View);
     method public void dismiss();
-    method public android.view.View getAnchorView();
-    method public int getAnimationStyle();
-    method public android.graphics.drawable.Drawable getBackground();
+    method @Nullable public android.view.View getAnchorView();
+    method @StyleRes public int getAnimationStyle();
+    method @Nullable public android.graphics.drawable.Drawable getBackground();
     method public int getHeight();
     method public int getHorizontalOffset();
     method public int getInputMethodMode();
-    method public android.widget.ListView getListView();
+    method @Nullable public android.widget.ListView getListView();
     method public int getPromptPosition();
-    method public java.lang.Object getSelectedItem();
+    method @Nullable public Object getSelectedItem();
     method public long getSelectedItemId();
     method public int getSelectedItemPosition();
-    method public android.view.View getSelectedView();
+    method @Nullable public android.view.View getSelectedView();
     method public int getSoftInputMode();
     method public int getVerticalOffset();
     method public int getWidth();
     method public boolean isInputMethodNotNeeded();
     method public boolean isModal();
     method public boolean isShowing();
-    method public boolean onKeyDown(int, android.view.KeyEvent);
-    method public boolean onKeyPreIme(int, android.view.KeyEvent);
-    method public boolean onKeyUp(int, android.view.KeyEvent);
+    method public boolean onKeyDown(int, @NonNull android.view.KeyEvent);
+    method public boolean onKeyPreIme(int, @NonNull android.view.KeyEvent);
+    method public boolean onKeyUp(int, @NonNull android.view.KeyEvent);
     method public boolean performItemClick(int);
     method public void postShow();
-    method public void setAdapter(android.widget.ListAdapter);
-    method public void setAnchorView(android.view.View);
-    method public void setAnimationStyle(int);
-    method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
+    method public void setAdapter(@Nullable android.widget.ListAdapter);
+    method public void setAnchorView(@Nullable android.view.View);
+    method public void setAnimationStyle(@StyleRes int);
+    method public void setBackgroundDrawable(@Nullable android.graphics.drawable.Drawable);
     method public void setContentWidth(int);
     method public void setDropDownGravity(int);
     method public void setHeight(int);
@@ -55719,11 +55615,11 @@
     method public void setInputMethodMode(int);
     method public void setListSelector(android.graphics.drawable.Drawable);
     method public void setModal(boolean);
-    method public void setOnDismissListener(android.widget.PopupWindow.OnDismissListener);
-    method public void setOnItemClickListener(android.widget.AdapterView.OnItemClickListener);
-    method public void setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener);
+    method public void setOnDismissListener(@Nullable android.widget.PopupWindow.OnDismissListener);
+    method public void setOnItemClickListener(@Nullable android.widget.AdapterView.OnItemClickListener);
+    method public void setOnItemSelectedListener(@Nullable android.widget.AdapterView.OnItemSelectedListener);
     method public void setPromptPosition(int);
-    method public void setPromptView(android.view.View);
+    method public void setPromptView(@Nullable android.view.View);
     method public void setSelection(int);
     method public void setSoftInputMode(int);
     method public void setVerticalOffset(int);
@@ -55739,20 +55635,20 @@
     field public static final int WRAP_CONTENT = -2; // 0xfffffffe
   }
 
-  public class ListView extends android.widget.AbsListView {
+  @android.widget.RemoteViews.RemoteView public class ListView extends android.widget.AbsListView {
     ctor public ListView(android.content.Context);
     ctor public ListView(android.content.Context, android.util.AttributeSet);
     ctor public ListView(android.content.Context, android.util.AttributeSet, int);
     ctor public ListView(android.content.Context, android.util.AttributeSet, int, int);
-    method public void addFooterView(android.view.View, java.lang.Object, boolean);
+    method public void addFooterView(android.view.View, Object, boolean);
     method public void addFooterView(android.view.View);
-    method public void addHeaderView(android.view.View, java.lang.Object, boolean);
+    method public void addHeaderView(android.view.View, Object, boolean);
     method public void addHeaderView(android.view.View);
     method public boolean areFooterDividersEnabled();
     method public boolean areHeaderDividersEnabled();
     method public android.widget.ListAdapter getAdapter();
-    method public deprecated long[] getCheckItemIds();
-    method public android.graphics.drawable.Drawable getDivider();
+    method @Deprecated public long[] getCheckItemIds();
+    method @Nullable public android.graphics.drawable.Drawable getDivider();
     method public int getDividerHeight();
     method public int getFooterViewsCount();
     method public int getHeaderViewsCount();
@@ -55762,7 +55658,7 @@
     method public android.graphics.drawable.Drawable getOverscrollHeader();
     method public boolean removeFooterView(android.view.View);
     method public boolean removeHeaderView(android.view.View);
-    method public void setDivider(android.graphics.drawable.Drawable);
+    method public void setDivider(@Nullable android.graphics.drawable.Drawable);
     method public void setDividerHeight(int);
     method public void setFooterDividersEnabled(boolean);
     method public void setHeaderDividersEnabled(boolean);
@@ -55776,30 +55672,30 @@
 
   public class ListView.FixedViewInfo {
     ctor public ListView.FixedViewInfo();
-    field public java.lang.Object data;
+    field public Object data;
     field public boolean isSelectable;
     field public android.view.View view;
   }
 
-  public final class Magnifier {
-    ctor public deprecated Magnifier(android.view.View);
+  @UiThread public final class Magnifier {
+    ctor @Deprecated public Magnifier(@NonNull android.view.View);
     method public void dismiss();
-    method public float getCornerRadius();
-    method public int getDefaultHorizontalSourceToMagnifierOffset();
-    method public int getDefaultVerticalSourceToMagnifierOffset();
-    method public float getElevation();
-    method public int getHeight();
-    method public android.graphics.drawable.Drawable getOverlay();
-    method public android.graphics.Point getPosition();
-    method public int getSourceHeight();
-    method public android.graphics.Point getSourcePosition();
-    method public int getSourceWidth();
-    method public int getWidth();
+    method @Px public float getCornerRadius();
+    method @Px public int getDefaultHorizontalSourceToMagnifierOffset();
+    method @Px public int getDefaultVerticalSourceToMagnifierOffset();
+    method @Px public float getElevation();
+    method @Px public int getHeight();
+    method @Nullable public android.graphics.drawable.Drawable getOverlay();
+    method @Nullable public android.graphics.Point getPosition();
+    method @Px public int getSourceHeight();
+    method @Nullable public android.graphics.Point getSourcePosition();
+    method @Px public int getSourceWidth();
+    method @Px public int getWidth();
     method public float getZoom();
     method public boolean isClippingEnabled();
-    method public void setZoom(float);
-    method public void show(float, float);
-    method public void show(float, float, float, float);
+    method public void setZoom(@FloatRange(from=0.0f) float);
+    method public void show(@FloatRange(from=0) float, @FloatRange(from=0) float);
+    method public void show(@FloatRange(from=0) float, @FloatRange(from=0) float, float, float);
     method public void update();
     field public static final int SOURCE_BOUND_MAX_IN_SURFACE = 0; // 0x0
     field public static final int SOURCE_BOUND_MAX_IN_VIEW = 1; // 0x1
@@ -55807,16 +55703,16 @@
   }
 
   public static class Magnifier.Builder {
-    ctor public Magnifier.Builder(android.view.View);
-    method public android.widget.Magnifier build();
-    method public android.widget.Magnifier.Builder setClippingEnabled(boolean);
-    method public android.widget.Magnifier.Builder setCornerRadius(float);
-    method public android.widget.Magnifier.Builder setDefaultSourceToMagnifierOffset(int, int);
-    method public android.widget.Magnifier.Builder setElevation(float);
-    method public android.widget.Magnifier.Builder setOverlay(android.graphics.drawable.Drawable);
-    method public android.widget.Magnifier.Builder setSize(int, int);
-    method public android.widget.Magnifier.Builder setSourceBounds(int, int, int, int);
-    method public android.widget.Magnifier.Builder setZoom(float);
+    ctor public Magnifier.Builder(@NonNull android.view.View);
+    method @NonNull public android.widget.Magnifier build();
+    method @NonNull public android.widget.Magnifier.Builder setClippingEnabled(boolean);
+    method @NonNull public android.widget.Magnifier.Builder setCornerRadius(@Px @FloatRange(from=0) float);
+    method @NonNull public android.widget.Magnifier.Builder setDefaultSourceToMagnifierOffset(@Px int, @Px int);
+    method @NonNull public android.widget.Magnifier.Builder setElevation(@Px @FloatRange(from=0) float);
+    method @NonNull public android.widget.Magnifier.Builder setOverlay(@Nullable android.graphics.drawable.Drawable);
+    method @NonNull public android.widget.Magnifier.Builder setSize(@Px @IntRange(from=0) int, @Px @IntRange(from=0) int);
+    method @NonNull public android.widget.Magnifier.Builder setSourceBounds(int, int, int, int);
+    method @NonNull public android.widget.Magnifier.Builder setZoom(@FloatRange(from=0.0f) float);
   }
 
   public class MediaController extends android.widget.FrameLayout {
@@ -55833,18 +55729,18 @@
     method public void show(int);
   }
 
-  public static abstract interface MediaController.MediaPlayerControl {
-    method public abstract boolean canPause();
-    method public abstract boolean canSeekBackward();
-    method public abstract boolean canSeekForward();
-    method public abstract int getAudioSessionId();
-    method public abstract int getBufferPercentage();
-    method public abstract int getCurrentPosition();
-    method public abstract int getDuration();
-    method public abstract boolean isPlaying();
-    method public abstract void pause();
-    method public abstract void seekTo(int);
-    method public abstract void start();
+  public static interface MediaController.MediaPlayerControl {
+    method public boolean canPause();
+    method public boolean canSeekBackward();
+    method public boolean canSeekForward();
+    method public int getAudioSessionId();
+    method public int getBufferPercentage();
+    method public int getCurrentPosition();
+    method public int getDuration();
+    method public boolean isPlaying();
+    method public void pause();
+    method public void seekTo(int);
+    method public void start();
   }
 
   public class MultiAutoCompleteTextView extends android.widget.AutoCompleteTextView {
@@ -55852,21 +55748,21 @@
     ctor public MultiAutoCompleteTextView(android.content.Context, android.util.AttributeSet);
     ctor public MultiAutoCompleteTextView(android.content.Context, android.util.AttributeSet, int);
     ctor public MultiAutoCompleteTextView(android.content.Context, android.util.AttributeSet, int, int);
-    method protected void performFiltering(java.lang.CharSequence, int, int, int);
+    method protected void performFiltering(CharSequence, int, int, int);
     method public void setTokenizer(android.widget.MultiAutoCompleteTextView.Tokenizer);
   }
 
   public static class MultiAutoCompleteTextView.CommaTokenizer implements android.widget.MultiAutoCompleteTextView.Tokenizer {
     ctor public MultiAutoCompleteTextView.CommaTokenizer();
-    method public int findTokenEnd(java.lang.CharSequence, int);
-    method public int findTokenStart(java.lang.CharSequence, int);
-    method public java.lang.CharSequence terminateToken(java.lang.CharSequence);
+    method public int findTokenEnd(CharSequence, int);
+    method public int findTokenStart(CharSequence, int);
+    method public CharSequence terminateToken(CharSequence);
   }
 
-  public static abstract interface MultiAutoCompleteTextView.Tokenizer {
-    method public abstract int findTokenEnd(java.lang.CharSequence, int);
-    method public abstract int findTokenStart(java.lang.CharSequence, int);
-    method public abstract java.lang.CharSequence terminateToken(java.lang.CharSequence);
+  public static interface MultiAutoCompleteTextView.Tokenizer {
+    method public int findTokenEnd(CharSequence, int);
+    method public int findTokenStart(CharSequence, int);
+    method public CharSequence terminateToken(CharSequence);
   }
 
   public class NumberPicker extends android.widget.LinearLayout {
@@ -55874,44 +55770,44 @@
     ctor public NumberPicker(android.content.Context, android.util.AttributeSet);
     ctor public NumberPicker(android.content.Context, android.util.AttributeSet, int);
     ctor public NumberPicker(android.content.Context, android.util.AttributeSet, int, int);
-    method public java.lang.String[] getDisplayedValues();
+    method public String[] getDisplayedValues();
     method public int getMaxValue();
     method public int getMinValue();
     method public int getSelectionDividerHeight();
     method public int getValue();
     method public boolean getWrapSelectorWheel();
-    method public void setDisplayedValues(java.lang.String[]);
+    method public void setDisplayedValues(String[]);
     method public void setFormatter(android.widget.NumberPicker.Formatter);
     method public void setMaxValue(int);
     method public void setMinValue(int);
     method public void setOnLongPressUpdateInterval(long);
     method public void setOnScrollListener(android.widget.NumberPicker.OnScrollListener);
     method public void setOnValueChangedListener(android.widget.NumberPicker.OnValueChangeListener);
-    method public void setSelectionDividerHeight(int);
+    method public void setSelectionDividerHeight(@IntRange(from=0) @Px int);
     method public void setValue(int);
     method public void setWrapSelectorWheel(boolean);
   }
 
-  public static abstract interface NumberPicker.Formatter {
-    method public abstract java.lang.String format(int);
+  public static interface NumberPicker.Formatter {
+    method public String format(int);
   }
 
-  public static abstract interface NumberPicker.OnScrollListener {
-    method public abstract void onScrollStateChange(android.widget.NumberPicker, int);
+  public static interface NumberPicker.OnScrollListener {
+    method public void onScrollStateChange(android.widget.NumberPicker, int);
     field public static final int SCROLL_STATE_FLING = 2; // 0x2
     field public static final int SCROLL_STATE_IDLE = 0; // 0x0
     field public static final int SCROLL_STATE_TOUCH_SCROLL = 1; // 0x1
   }
 
-  public static abstract interface NumberPicker.OnValueChangeListener {
-    method public abstract void onValueChange(android.widget.NumberPicker, int, int);
+  public static interface NumberPicker.OnValueChangeListener {
+    method public void onValueChange(android.widget.NumberPicker, int, int);
   }
 
   public class OverScroller {
     ctor public OverScroller(android.content.Context);
     ctor public OverScroller(android.content.Context, android.view.animation.Interpolator);
-    ctor public deprecated OverScroller(android.content.Context, android.view.animation.Interpolator, float, float);
-    ctor public deprecated OverScroller(android.content.Context, android.view.animation.Interpolator, float, float, boolean);
+    ctor @Deprecated public OverScroller(android.content.Context, android.view.animation.Interpolator, float, float);
+    ctor @Deprecated public OverScroller(android.content.Context, android.view.animation.Interpolator, float, float, boolean);
     method public void abortAnimation();
     method public boolean computeScrollOffset();
     method public void fling(int, int, int, int, int, int, int, int);
@@ -55943,19 +55839,19 @@
     method public int getGravity();
     method public android.view.Menu getMenu();
     method public android.view.MenuInflater getMenuInflater();
-    method public void inflate(int);
+    method public void inflate(@MenuRes int);
     method public void setGravity(int);
     method public void setOnDismissListener(android.widget.PopupMenu.OnDismissListener);
     method public void setOnMenuItemClickListener(android.widget.PopupMenu.OnMenuItemClickListener);
     method public void show();
   }
 
-  public static abstract interface PopupMenu.OnDismissListener {
-    method public abstract void onDismiss(android.widget.PopupMenu);
+  public static interface PopupMenu.OnDismissListener {
+    method public void onDismiss(android.widget.PopupMenu);
   }
 
-  public static abstract interface PopupMenu.OnMenuItemClickListener {
-    method public abstract boolean onMenuItemClick(android.view.MenuItem);
+  public static interface PopupMenu.OnMenuItemClickListener {
+    method public boolean onMenuItemClick(android.view.MenuItem);
   }
 
   public class PopupWindow {
@@ -55973,13 +55869,13 @@
     method public android.graphics.drawable.Drawable getBackground();
     method public android.view.View getContentView();
     method public float getElevation();
-    method public android.transition.Transition getEnterTransition();
-    method public android.transition.Transition getExitTransition();
+    method @Nullable public android.transition.Transition getEnterTransition();
+    method @Nullable public android.transition.Transition getExitTransition();
     method public int getHeight();
     method public int getInputMethodMode();
-    method public int getMaxAvailableHeight(android.view.View);
-    method public int getMaxAvailableHeight(android.view.View, int);
-    method public int getMaxAvailableHeight(android.view.View, int, boolean);
+    method public int getMaxAvailableHeight(@NonNull android.view.View);
+    method public int getMaxAvailableHeight(@NonNull android.view.View, int);
+    method public int getMaxAvailableHeight(@NonNull android.view.View, int, boolean);
     method public boolean getOverlapAnchor();
     method public int getSoftInputMode();
     method public int getWidth();
@@ -55998,8 +55894,8 @@
     method public void setClippingEnabled(boolean);
     method public void setContentView(android.view.View);
     method public void setElevation(float);
-    method public void setEnterTransition(android.transition.Transition);
-    method public void setExitTransition(android.transition.Transition);
+    method public void setEnterTransition(@Nullable android.transition.Transition);
+    method public void setExitTransition(@Nullable android.transition.Transition);
     method public void setFocusable(boolean);
     method public void setHeight(int);
     method public void setIgnoreCheekPress();
@@ -56012,7 +55908,7 @@
     method public void setTouchInterceptor(android.view.View.OnTouchListener);
     method public void setTouchable(boolean);
     method public void setWidth(int);
-    method public deprecated void setWindowLayoutMode(int, int);
+    method @Deprecated public void setWindowLayoutMode(int, int);
     method public void setWindowLayoutType(int);
     method public void showAsDropDown(android.view.View);
     method public void showAsDropDown(android.view.View, int, int);
@@ -56029,58 +55925,56 @@
     field public static final int INPUT_METHOD_NOT_NEEDED = 2; // 0x2
   }
 
-  public static abstract interface PopupWindow.OnDismissListener {
-    method public abstract void onDismiss();
+  public static interface PopupWindow.OnDismissListener {
+    method public void onDismiss();
   }
 
-  public class ProgressBar extends android.view.View {
+  @android.widget.RemoteViews.RemoteView public class ProgressBar extends android.view.View {
     ctor public ProgressBar(android.content.Context);
     ctor public ProgressBar(android.content.Context, android.util.AttributeSet);
     ctor public ProgressBar(android.content.Context, android.util.AttributeSet, int);
     ctor public ProgressBar(android.content.Context, android.util.AttributeSet, int, int);
     method public android.graphics.drawable.Drawable getIndeterminateDrawable();
-    method public android.content.res.ColorStateList getIndeterminateTintList();
-    method public android.graphics.PorterDuff.Mode getIndeterminateTintMode();
+    method @Nullable public android.content.res.ColorStateList getIndeterminateTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getIndeterminateTintMode();
     method public android.view.animation.Interpolator getInterpolator();
-    method public synchronized int getMax();
-    method public synchronized int getMin();
-    method public synchronized int getProgress();
-    method public android.content.res.ColorStateList getProgressBackgroundTintList();
-    method public android.graphics.PorterDuff.Mode getProgressBackgroundTintMode();
+    method @android.view.ViewDebug.ExportedProperty(category="progress") public int getMax();
+    method @android.view.ViewDebug.ExportedProperty(category="progress") public int getMin();
+    method @android.view.ViewDebug.ExportedProperty(category="progress") public int getProgress();
+    method @Nullable public android.content.res.ColorStateList getProgressBackgroundTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getProgressBackgroundTintMode();
     method public android.graphics.drawable.Drawable getProgressDrawable();
-    method public android.content.res.ColorStateList getProgressTintList();
-    method public android.graphics.PorterDuff.Mode getProgressTintMode();
-    method public synchronized int getSecondaryProgress();
-    method public android.content.res.ColorStateList getSecondaryProgressTintList();
-    method public android.graphics.PorterDuff.Mode getSecondaryProgressTintMode();
-    method public final synchronized void incrementProgressBy(int);
-    method public final synchronized void incrementSecondaryProgressBy(int);
+    method @Nullable public android.content.res.ColorStateList getProgressTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getProgressTintMode();
+    method @android.view.ViewDebug.ExportedProperty(category="progress") public int getSecondaryProgress();
+    method @Nullable public android.content.res.ColorStateList getSecondaryProgressTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getSecondaryProgressTintMode();
+    method public final void incrementProgressBy(int);
+    method public final void incrementSecondaryProgressBy(int);
     method public boolean isAnimating();
-    method public synchronized boolean isIndeterminate();
-    method protected synchronized void onDraw(android.graphics.Canvas);
-    method protected synchronized void onMeasure(int, int);
+    method @android.view.ViewDebug.ExportedProperty(category="progress") public boolean isIndeterminate();
     method public void onRestoreInstanceState(android.os.Parcelable);
     method public android.os.Parcelable onSaveInstanceState();
-    method public synchronized void setIndeterminate(boolean);
+    method public void setIndeterminate(boolean);
     method public void setIndeterminateDrawable(android.graphics.drawable.Drawable);
     method public void setIndeterminateDrawableTiled(android.graphics.drawable.Drawable);
-    method public void setIndeterminateTintList(android.content.res.ColorStateList);
-    method public void setIndeterminateTintMode(android.graphics.PorterDuff.Mode);
-    method public void setInterpolator(android.content.Context, int);
+    method public void setIndeterminateTintList(@Nullable android.content.res.ColorStateList);
+    method public void setIndeterminateTintMode(@Nullable android.graphics.PorterDuff.Mode);
+    method public void setInterpolator(android.content.Context, @InterpolatorRes int);
     method public void setInterpolator(android.view.animation.Interpolator);
-    method public synchronized void setMax(int);
-    method public synchronized void setMin(int);
-    method public synchronized void setProgress(int);
+    method public void setMax(int);
+    method public void setMin(int);
+    method public void setProgress(int);
     method public void setProgress(int, boolean);
-    method public void setProgressBackgroundTintList(android.content.res.ColorStateList);
-    method public void setProgressBackgroundTintMode(android.graphics.PorterDuff.Mode);
+    method public void setProgressBackgroundTintList(@Nullable android.content.res.ColorStateList);
+    method public void setProgressBackgroundTintMode(@Nullable android.graphics.PorterDuff.Mode);
     method public void setProgressDrawable(android.graphics.drawable.Drawable);
     method public void setProgressDrawableTiled(android.graphics.drawable.Drawable);
-    method public void setProgressTintList(android.content.res.ColorStateList);
-    method public void setProgressTintMode(android.graphics.PorterDuff.Mode);
-    method public synchronized void setSecondaryProgress(int);
-    method public void setSecondaryProgressTintList(android.content.res.ColorStateList);
-    method public void setSecondaryProgressTintMode(android.graphics.PorterDuff.Mode);
+    method public void setProgressTintList(@Nullable android.content.res.ColorStateList);
+    method public void setProgressTintMode(@Nullable android.graphics.PorterDuff.Mode);
+    method public void setSecondaryProgress(int);
+    method public void setSecondaryProgressTintList(@Nullable android.content.res.ColorStateList);
+    method public void setSecondaryProgressTintMode(@Nullable android.graphics.PorterDuff.Mode);
   }
 
   public class QuickContactBadge extends android.widget.ImageView implements android.view.View.OnClickListener {
@@ -56088,18 +55982,18 @@
     ctor public QuickContactBadge(android.content.Context, android.util.AttributeSet);
     ctor public QuickContactBadge(android.content.Context, android.util.AttributeSet, int);
     ctor public QuickContactBadge(android.content.Context, android.util.AttributeSet, int, int);
-    method public void assignContactFromEmail(java.lang.String, boolean);
-    method public void assignContactFromEmail(java.lang.String, boolean, android.os.Bundle);
-    method public void assignContactFromPhone(java.lang.String, boolean);
-    method public void assignContactFromPhone(java.lang.String, boolean, android.os.Bundle);
+    method public void assignContactFromEmail(String, boolean);
+    method public void assignContactFromEmail(String, boolean, android.os.Bundle);
+    method public void assignContactFromPhone(String, boolean);
+    method public void assignContactFromPhone(String, boolean, android.os.Bundle);
     method public void assignContactUri(android.net.Uri);
     method public void onClick(android.view.View);
-    method public void setExcludeMimes(java.lang.String[]);
+    method public void setExcludeMimes(String[]);
     method public void setImageToDefault();
     method public void setMode(int);
     method public void setOverlay(android.graphics.drawable.Drawable);
-    method public void setPrioritizedMimeType(java.lang.String);
-    field protected java.lang.String[] mExcludeMimes;
+    method public void setPrioritizedMimeType(String);
+    field protected String[] mExcludeMimes;
   }
 
   public class RadioButton extends android.widget.CompoundButton {
@@ -56112,10 +56006,10 @@
   public class RadioGroup extends android.widget.LinearLayout {
     ctor public RadioGroup(android.content.Context);
     ctor public RadioGroup(android.content.Context, android.util.AttributeSet);
-    method public void check(int);
+    method public void check(@IdRes int);
     method public void clearCheck();
     method public android.widget.RadioGroup.LayoutParams generateLayoutParams(android.util.AttributeSet);
-    method public int getCheckedRadioButtonId();
+    method @IdRes public int getCheckedRadioButtonId();
     method public void setOnCheckedChangeListener(android.widget.RadioGroup.OnCheckedChangeListener);
   }
 
@@ -56127,8 +56021,8 @@
     ctor public RadioGroup.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
   }
 
-  public static abstract interface RadioGroup.OnCheckedChangeListener {
-    method public abstract void onCheckedChanged(android.widget.RadioGroup, int);
+  public static interface RadioGroup.OnCheckedChangeListener {
+    method public void onCheckedChanged(android.widget.RadioGroup, @IdRes int);
   }
 
   public class RatingBar extends android.widget.AbsSeekBar {
@@ -56148,11 +56042,11 @@
     method public void setStepSize(float);
   }
 
-  public static abstract interface RatingBar.OnRatingBarChangeListener {
-    method public abstract void onRatingChanged(android.widget.RatingBar, float, boolean);
+  public static interface RatingBar.OnRatingBarChangeListener {
+    method public void onRatingChanged(android.widget.RatingBar, float, boolean);
   }
 
-  public class RelativeLayout extends android.view.ViewGroup {
+  @android.widget.RemoteViews.RemoteView public class RelativeLayout extends android.view.ViewGroup {
     ctor public RelativeLayout(android.content.Context);
     ctor public RelativeLayout(android.content.Context, android.util.AttributeSet);
     ctor public RelativeLayout(android.content.Context, android.util.AttributeSet, int);
@@ -56196,91 +56090,91 @@
     ctor public RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams);
     method public void addRule(int);
     method public void addRule(int, int);
-    method public java.lang.String debug(java.lang.String);
+    method public String debug(String);
     method public int getRule(int);
     method public int[] getRules();
     method public void removeRule(int);
-    field public boolean alignWithParent;
+    field @android.view.ViewDebug.ExportedProperty(category="layout") public boolean alignWithParent;
   }
 
   public class RemoteViews implements android.view.LayoutInflater.Filter android.os.Parcelable {
-    ctor public RemoteViews(java.lang.String, int);
+    ctor public RemoteViews(String, int);
     ctor public RemoteViews(android.widget.RemoteViews, android.widget.RemoteViews);
     ctor public RemoteViews(android.widget.RemoteViews);
     ctor public RemoteViews(android.os.Parcel);
     method public void addView(int, android.widget.RemoteViews);
     method public android.view.View apply(android.content.Context, android.view.ViewGroup);
-    method public deprecated android.widget.RemoteViews clone();
+    method @Deprecated public android.widget.RemoteViews clone();
     method public int describeContents();
     method public int getLayoutId();
-    method public java.lang.String getPackage();
-    method public boolean onLoadClass(java.lang.Class);
+    method public String getPackage();
+    method public boolean onLoadClass(Class);
     method public void reapply(android.content.Context, android.view.View);
     method public void removeAllViews(int);
     method public void setAccessibilityTraversalAfter(int, int);
     method public void setAccessibilityTraversalBefore(int, int);
-    method public void setBitmap(int, java.lang.String, android.graphics.Bitmap);
-    method public void setBoolean(int, java.lang.String, boolean);
-    method public void setBundle(int, java.lang.String, android.os.Bundle);
-    method public void setByte(int, java.lang.String, byte);
-    method public void setChar(int, java.lang.String, char);
-    method public void setCharSequence(int, java.lang.String, java.lang.CharSequence);
-    method public void setChronometer(int, long, java.lang.String, boolean);
+    method public void setBitmap(int, String, android.graphics.Bitmap);
+    method public void setBoolean(int, String, boolean);
+    method public void setBundle(int, String, android.os.Bundle);
+    method public void setByte(int, String, byte);
+    method public void setChar(int, String, char);
+    method public void setCharSequence(int, String, CharSequence);
+    method public void setChronometer(int, long, String, boolean);
     method public void setChronometerCountDown(int, boolean);
-    method public void setContentDescription(int, java.lang.CharSequence);
+    method public void setContentDescription(int, CharSequence);
     method public void setDisplayedChild(int, int);
-    method public void setDouble(int, java.lang.String, double);
+    method public void setDouble(int, String, double);
     method public void setEmptyView(int, int);
-    method public void setFloat(int, java.lang.String, float);
-    method public void setIcon(int, java.lang.String, android.graphics.drawable.Icon);
+    method public void setFloat(int, String, float);
+    method public void setIcon(int, String, android.graphics.drawable.Icon);
     method public void setImageViewBitmap(int, android.graphics.Bitmap);
     method public void setImageViewIcon(int, android.graphics.drawable.Icon);
     method public void setImageViewResource(int, int);
     method public void setImageViewUri(int, android.net.Uri);
-    method public void setInt(int, java.lang.String, int);
-    method public void setIntent(int, java.lang.String, android.content.Intent);
+    method public void setInt(int, String, int);
+    method public void setIntent(int, String, android.content.Intent);
     method public void setLabelFor(int, int);
-    method public void setLightBackgroundLayoutId(int);
-    method public void setLong(int, java.lang.String, long);
+    method public void setLightBackgroundLayoutId(@LayoutRes int);
+    method public void setLong(int, String, long);
     method public void setOnClickFillInIntent(int, android.content.Intent);
     method public void setOnClickPendingIntent(int, android.app.PendingIntent);
     method public void setOnClickResponse(int, android.widget.RemoteViews.RemoteResponse);
     method public void setPendingIntentTemplate(int, android.app.PendingIntent);
     method public void setProgressBar(int, int, int, boolean);
     method public void setRelativeScrollPosition(int, int);
-    method public deprecated void setRemoteAdapter(int, int, android.content.Intent);
+    method @Deprecated public void setRemoteAdapter(int, int, android.content.Intent);
     method public void setRemoteAdapter(int, android.content.Intent);
     method public void setScrollPosition(int, int);
-    method public void setShort(int, java.lang.String, short);
-    method public void setString(int, java.lang.String, java.lang.String);
-    method public void setTextColor(int, int);
+    method public void setShort(int, String, short);
+    method public void setString(int, String, String);
+    method public void setTextColor(int, @ColorInt int);
     method public void setTextViewCompoundDrawables(int, int, int, int, int);
     method public void setTextViewCompoundDrawablesRelative(int, int, int, int, int);
-    method public void setTextViewText(int, java.lang.CharSequence);
+    method public void setTextViewText(int, CharSequence);
     method public void setTextViewTextSize(int, int, float);
-    method public void setUri(int, java.lang.String, android.net.Uri);
+    method public void setUri(int, String, android.net.Uri);
     method public void setViewPadding(int, int, int, int, int);
     method public void setViewVisibility(int, int);
     method public void showNext(int);
     method public void showPrevious(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.widget.RemoteViews> CREATOR;
-    field public static final java.lang.String EXTRA_SHARED_ELEMENT_BOUNDS = "android.widget.extra.SHARED_ELEMENT_BOUNDS";
+    field public static final String EXTRA_SHARED_ELEMENT_BOUNDS = "android.widget.extra.SHARED_ELEMENT_BOUNDS";
   }
 
   public static class RemoteViews.ActionException extends java.lang.RuntimeException {
-    ctor public RemoteViews.ActionException(java.lang.Exception);
-    ctor public RemoteViews.ActionException(java.lang.String);
+    ctor public RemoteViews.ActionException(Exception);
+    ctor public RemoteViews.ActionException(String);
   }
 
   public static class RemoteViews.RemoteResponse {
     ctor public RemoteViews.RemoteResponse();
-    method public android.widget.RemoteViews.RemoteResponse addSharedElement(int, java.lang.String);
+    method public android.widget.RemoteViews.RemoteResponse addSharedElement(int, String);
     method public static android.widget.RemoteViews.RemoteResponse fromFillInIntent(android.content.Intent);
     method public static android.widget.RemoteViews.RemoteResponse fromPendingIntent(android.app.PendingIntent);
   }
 
-  public static abstract class RemoteViews.RemoteView implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public static @interface RemoteViews.RemoteView {
   }
 
   public abstract class RemoteViewsService extends android.app.Service {
@@ -56289,20 +56183,20 @@
     method public abstract android.widget.RemoteViewsService.RemoteViewsFactory onGetViewFactory(android.content.Intent);
   }
 
-  public static abstract interface RemoteViewsService.RemoteViewsFactory {
-    method public abstract int getCount();
-    method public abstract long getItemId(int);
-    method public abstract android.widget.RemoteViews getLoadingView();
-    method public abstract android.widget.RemoteViews getViewAt(int);
-    method public abstract int getViewTypeCount();
-    method public abstract boolean hasStableIds();
-    method public abstract void onCreate();
-    method public abstract void onDataSetChanged();
-    method public abstract void onDestroy();
+  public static interface RemoteViewsService.RemoteViewsFactory {
+    method public int getCount();
+    method public long getItemId(int);
+    method public android.widget.RemoteViews getLoadingView();
+    method public android.widget.RemoteViews getViewAt(int);
+    method public int getViewTypeCount();
+    method public boolean hasStableIds();
+    method public void onCreate();
+    method public void onDataSetChanged();
+    method public void onDestroy();
   }
 
   public abstract class ResourceCursorAdapter extends android.widget.CursorAdapter {
-    ctor public deprecated ResourceCursorAdapter(android.content.Context, int, android.database.Cursor);
+    ctor @Deprecated public ResourceCursorAdapter(android.content.Context, int, android.database.Cursor);
     ctor public ResourceCursorAdapter(android.content.Context, int, android.database.Cursor, boolean);
     ctor public ResourceCursorAdapter(android.content.Context, int, android.database.Cursor, int);
     method public android.view.View newView(android.content.Context, android.database.Cursor, android.view.ViewGroup);
@@ -56372,8 +56266,8 @@
     method public int getImeOptions();
     method public int getInputType();
     method public int getMaxWidth();
-    method public java.lang.CharSequence getQuery();
-    method public java.lang.CharSequence getQueryHint();
+    method public CharSequence getQuery();
+    method @Nullable public CharSequence getQueryHint();
     method public android.widget.CursorAdapter getSuggestionsAdapter();
     method public boolean isIconfiedByDefault();
     method public boolean isIconified();
@@ -56391,32 +56285,32 @@
     method public void setOnQueryTextListener(android.widget.SearchView.OnQueryTextListener);
     method public void setOnSearchClickListener(android.view.View.OnClickListener);
     method public void setOnSuggestionListener(android.widget.SearchView.OnSuggestionListener);
-    method public void setQuery(java.lang.CharSequence, boolean);
-    method public void setQueryHint(java.lang.CharSequence);
+    method public void setQuery(CharSequence, boolean);
+    method public void setQueryHint(@Nullable CharSequence);
     method public void setQueryRefinementEnabled(boolean);
     method public void setSearchableInfo(android.app.SearchableInfo);
     method public void setSubmitButtonEnabled(boolean);
     method public void setSuggestionsAdapter(android.widget.CursorAdapter);
   }
 
-  public static abstract interface SearchView.OnCloseListener {
-    method public abstract boolean onClose();
+  public static interface SearchView.OnCloseListener {
+    method public boolean onClose();
   }
 
-  public static abstract interface SearchView.OnQueryTextListener {
-    method public abstract boolean onQueryTextChange(java.lang.String);
-    method public abstract boolean onQueryTextSubmit(java.lang.String);
+  public static interface SearchView.OnQueryTextListener {
+    method public boolean onQueryTextChange(String);
+    method public boolean onQueryTextSubmit(String);
   }
 
-  public static abstract interface SearchView.OnSuggestionListener {
-    method public abstract boolean onSuggestionClick(int);
-    method public abstract boolean onSuggestionSelect(int);
+  public static interface SearchView.OnSuggestionListener {
+    method public boolean onSuggestionClick(int);
+    method public boolean onSuggestionSelect(int);
   }
 
-  public abstract interface SectionIndexer {
-    method public abstract int getPositionForSection(int);
-    method public abstract int getSectionForPosition(int);
-    method public abstract java.lang.Object[] getSections();
+  public interface SectionIndexer {
+    method public int getPositionForSection(int);
+    method public int getSectionForPosition(int);
+    method public Object[] getSections();
   }
 
   public class SeekBar extends android.widget.AbsSeekBar {
@@ -56427,31 +56321,31 @@
     method public void setOnSeekBarChangeListener(android.widget.SeekBar.OnSeekBarChangeListener);
   }
 
-  public static abstract interface SeekBar.OnSeekBarChangeListener {
-    method public abstract void onProgressChanged(android.widget.SeekBar, int, boolean);
-    method public abstract void onStartTrackingTouch(android.widget.SeekBar);
-    method public abstract void onStopTrackingTouch(android.widget.SeekBar);
+  public static interface SeekBar.OnSeekBarChangeListener {
+    method public void onProgressChanged(android.widget.SeekBar, int, boolean);
+    method public void onStartTrackingTouch(android.widget.SeekBar);
+    method public void onStopTrackingTouch(android.widget.SeekBar);
   }
 
   public class ShareActionProvider extends android.view.ActionProvider {
     ctor public ShareActionProvider(android.content.Context);
     method public android.view.View onCreateActionView();
     method public void setOnShareTargetSelectedListener(android.widget.ShareActionProvider.OnShareTargetSelectedListener);
-    method public void setShareHistoryFileName(java.lang.String);
+    method public void setShareHistoryFileName(String);
     method public void setShareIntent(android.content.Intent);
-    field public static final java.lang.String DEFAULT_SHARE_HISTORY_FILE_NAME = "share_history.xml";
+    field public static final String DEFAULT_SHARE_HISTORY_FILE_NAME = "share_history.xml";
   }
 
-  public static abstract interface ShareActionProvider.OnShareTargetSelectedListener {
-    method public abstract boolean onShareTargetSelected(android.widget.ShareActionProvider, android.content.Intent);
+  public static interface ShareActionProvider.OnShareTargetSelectedListener {
+    method public boolean onShareTargetSelected(android.widget.ShareActionProvider, android.content.Intent);
   }
 
   public class SimpleAdapter extends android.widget.BaseAdapter implements android.widget.Filterable android.widget.ThemedSpinnerAdapter {
-    ctor public SimpleAdapter(android.content.Context, java.util.List<? extends java.util.Map<java.lang.String, ?>>, int, java.lang.String[], int[]);
+    ctor public SimpleAdapter(android.content.Context, java.util.List<? extends java.util.Map<java.lang.String,?>>, @LayoutRes int, String[], @IdRes int[]);
     method public int getCount();
     method public android.content.res.Resources.Theme getDropDownViewTheme();
     method public android.widget.Filter getFilter();
-    method public java.lang.Object getItem(int);
+    method public Object getItem(int);
     method public long getItemId(int);
     method public android.view.View getView(int, android.view.View, android.view.ViewGroup);
     method public android.widget.SimpleAdapter.ViewBinder getViewBinder();
@@ -56459,62 +56353,62 @@
     method public void setDropDownViewTheme(android.content.res.Resources.Theme);
     method public void setViewBinder(android.widget.SimpleAdapter.ViewBinder);
     method public void setViewImage(android.widget.ImageView, int);
-    method public void setViewImage(android.widget.ImageView, java.lang.String);
-    method public void setViewText(android.widget.TextView, java.lang.String);
+    method public void setViewImage(android.widget.ImageView, String);
+    method public void setViewText(android.widget.TextView, String);
   }
 
-  public static abstract interface SimpleAdapter.ViewBinder {
-    method public abstract boolean setViewValue(android.view.View, java.lang.Object, java.lang.String);
+  public static interface SimpleAdapter.ViewBinder {
+    method public boolean setViewValue(android.view.View, Object, String);
   }
 
   public class SimpleCursorAdapter extends android.widget.ResourceCursorAdapter {
-    ctor public deprecated SimpleCursorAdapter(android.content.Context, int, android.database.Cursor, java.lang.String[], int[]);
-    ctor public SimpleCursorAdapter(android.content.Context, int, android.database.Cursor, java.lang.String[], int[], int);
+    ctor @Deprecated public SimpleCursorAdapter(android.content.Context, int, android.database.Cursor, String[], int[]);
+    ctor public SimpleCursorAdapter(android.content.Context, int, android.database.Cursor, String[], int[], int);
     method public void bindView(android.view.View, android.content.Context, android.database.Cursor);
-    method public void changeCursorAndColumns(android.database.Cursor, java.lang.String[], int[]);
+    method public void changeCursorAndColumns(android.database.Cursor, String[], int[]);
     method public android.widget.SimpleCursorAdapter.CursorToStringConverter getCursorToStringConverter();
     method public int getStringConversionColumn();
     method public android.widget.SimpleCursorAdapter.ViewBinder getViewBinder();
     method public void setCursorToStringConverter(android.widget.SimpleCursorAdapter.CursorToStringConverter);
     method public void setStringConversionColumn(int);
     method public void setViewBinder(android.widget.SimpleCursorAdapter.ViewBinder);
-    method public void setViewImage(android.widget.ImageView, java.lang.String);
-    method public void setViewText(android.widget.TextView, java.lang.String);
+    method public void setViewImage(android.widget.ImageView, String);
+    method public void setViewText(android.widget.TextView, String);
   }
 
-  public static abstract interface SimpleCursorAdapter.CursorToStringConverter {
-    method public abstract java.lang.CharSequence convertToString(android.database.Cursor);
+  public static interface SimpleCursorAdapter.CursorToStringConverter {
+    method public CharSequence convertToString(android.database.Cursor);
   }
 
-  public static abstract interface SimpleCursorAdapter.ViewBinder {
-    method public abstract boolean setViewValue(android.view.View, android.database.Cursor, int);
+  public static interface SimpleCursorAdapter.ViewBinder {
+    method public boolean setViewValue(android.view.View, android.database.Cursor, int);
   }
 
   public abstract class SimpleCursorTreeAdapter extends android.widget.ResourceCursorTreeAdapter {
-    ctor public SimpleCursorTreeAdapter(android.content.Context, android.database.Cursor, int, int, java.lang.String[], int[], int, int, java.lang.String[], int[]);
-    ctor public SimpleCursorTreeAdapter(android.content.Context, android.database.Cursor, int, int, java.lang.String[], int[], int, java.lang.String[], int[]);
-    ctor public SimpleCursorTreeAdapter(android.content.Context, android.database.Cursor, int, java.lang.String[], int[], int, java.lang.String[], int[]);
+    ctor public SimpleCursorTreeAdapter(android.content.Context, android.database.Cursor, int, int, String[], int[], int, int, String[], int[]);
+    ctor public SimpleCursorTreeAdapter(android.content.Context, android.database.Cursor, int, int, String[], int[], int, String[], int[]);
+    ctor public SimpleCursorTreeAdapter(android.content.Context, android.database.Cursor, int, String[], int[], int, String[], int[]);
     method protected void bindChildView(android.view.View, android.content.Context, android.database.Cursor, boolean);
     method protected void bindGroupView(android.view.View, android.content.Context, android.database.Cursor, boolean);
     method public android.widget.SimpleCursorTreeAdapter.ViewBinder getViewBinder();
     method public void setViewBinder(android.widget.SimpleCursorTreeAdapter.ViewBinder);
-    method protected void setViewImage(android.widget.ImageView, java.lang.String);
-    method public void setViewText(android.widget.TextView, java.lang.String);
+    method protected void setViewImage(android.widget.ImageView, String);
+    method public void setViewText(android.widget.TextView, String);
   }
 
-  public static abstract interface SimpleCursorTreeAdapter.ViewBinder {
-    method public abstract boolean setViewValue(android.view.View, android.database.Cursor, int);
+  public static interface SimpleCursorTreeAdapter.ViewBinder {
+    method public boolean setViewValue(android.view.View, android.database.Cursor, int);
   }
 
   public class SimpleExpandableListAdapter extends android.widget.BaseExpandableListAdapter {
-    ctor public SimpleExpandableListAdapter(android.content.Context, java.util.List<? extends java.util.Map<java.lang.String, ?>>, int, java.lang.String[], int[], java.util.List<? extends java.util.List<? extends java.util.Map<java.lang.String, ?>>>, int, java.lang.String[], int[]);
-    ctor public SimpleExpandableListAdapter(android.content.Context, java.util.List<? extends java.util.Map<java.lang.String, ?>>, int, int, java.lang.String[], int[], java.util.List<? extends java.util.List<? extends java.util.Map<java.lang.String, ?>>>, int, java.lang.String[], int[]);
-    ctor public SimpleExpandableListAdapter(android.content.Context, java.util.List<? extends java.util.Map<java.lang.String, ?>>, int, int, java.lang.String[], int[], java.util.List<? extends java.util.List<? extends java.util.Map<java.lang.String, ?>>>, int, int, java.lang.String[], int[]);
-    method public java.lang.Object getChild(int, int);
+    ctor public SimpleExpandableListAdapter(android.content.Context, java.util.List<? extends java.util.Map<java.lang.String,?>>, int, String[], int[], java.util.List<? extends java.util.List<? extends java.util.Map<java.lang.String,?>>>, int, String[], int[]);
+    ctor public SimpleExpandableListAdapter(android.content.Context, java.util.List<? extends java.util.Map<java.lang.String,?>>, int, int, String[], int[], java.util.List<? extends java.util.List<? extends java.util.Map<java.lang.String,?>>>, int, String[], int[]);
+    ctor public SimpleExpandableListAdapter(android.content.Context, java.util.List<? extends java.util.Map<java.lang.String,?>>, int, int, String[], int[], java.util.List<? extends java.util.List<? extends java.util.Map<java.lang.String,?>>>, int, int, String[], int[]);
+    method public Object getChild(int, int);
     method public long getChildId(int, int);
     method public android.view.View getChildView(int, int, boolean, android.view.View, android.view.ViewGroup);
     method public int getChildrenCount(int);
-    method public java.lang.Object getGroup(int);
+    method public Object getGroup(int);
     method public int getGroupCount();
     method public long getGroupId(int);
     method public android.view.View getGroupView(int, boolean, android.view.View, android.view.ViewGroup);
@@ -56524,40 +56418,40 @@
     method public android.view.View newGroupView(boolean, android.view.ViewGroup);
   }
 
-  public deprecated class SlidingDrawer extends android.view.ViewGroup {
-    ctor public SlidingDrawer(android.content.Context, android.util.AttributeSet);
-    ctor public SlidingDrawer(android.content.Context, android.util.AttributeSet, int);
-    ctor public SlidingDrawer(android.content.Context, android.util.AttributeSet, int, int);
-    method public void animateClose();
-    method public void animateOpen();
-    method public void animateToggle();
-    method public void close();
-    method public android.view.View getContent();
-    method public android.view.View getHandle();
-    method public boolean isMoving();
-    method public boolean isOpened();
-    method public void lock();
-    method public void open();
-    method public void setOnDrawerCloseListener(android.widget.SlidingDrawer.OnDrawerCloseListener);
-    method public void setOnDrawerOpenListener(android.widget.SlidingDrawer.OnDrawerOpenListener);
-    method public void setOnDrawerScrollListener(android.widget.SlidingDrawer.OnDrawerScrollListener);
-    method public void toggle();
-    method public void unlock();
-    field public static final int ORIENTATION_HORIZONTAL = 0; // 0x0
-    field public static final int ORIENTATION_VERTICAL = 1; // 0x1
+  @Deprecated public class SlidingDrawer extends android.view.ViewGroup {
+    ctor @Deprecated public SlidingDrawer(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public SlidingDrawer(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public SlidingDrawer(android.content.Context, android.util.AttributeSet, int, int);
+    method @Deprecated public void animateClose();
+    method @Deprecated public void animateOpen();
+    method @Deprecated public void animateToggle();
+    method @Deprecated public void close();
+    method @Deprecated public android.view.View getContent();
+    method @Deprecated public android.view.View getHandle();
+    method @Deprecated public boolean isMoving();
+    method @Deprecated public boolean isOpened();
+    method @Deprecated public void lock();
+    method @Deprecated public void open();
+    method @Deprecated public void setOnDrawerCloseListener(android.widget.SlidingDrawer.OnDrawerCloseListener);
+    method @Deprecated public void setOnDrawerOpenListener(android.widget.SlidingDrawer.OnDrawerOpenListener);
+    method @Deprecated public void setOnDrawerScrollListener(android.widget.SlidingDrawer.OnDrawerScrollListener);
+    method @Deprecated public void toggle();
+    method @Deprecated public void unlock();
+    field @Deprecated public static final int ORIENTATION_HORIZONTAL = 0; // 0x0
+    field @Deprecated public static final int ORIENTATION_VERTICAL = 1; // 0x1
   }
 
-  public static abstract interface SlidingDrawer.OnDrawerCloseListener {
-    method public abstract void onDrawerClosed();
+  @Deprecated public static interface SlidingDrawer.OnDrawerCloseListener {
+    method @Deprecated public void onDrawerClosed();
   }
 
-  public static abstract interface SlidingDrawer.OnDrawerOpenListener {
-    method public abstract void onDrawerOpened();
+  @Deprecated public static interface SlidingDrawer.OnDrawerOpenListener {
+    method @Deprecated public void onDrawerOpened();
   }
 
-  public static abstract interface SlidingDrawer.OnDrawerScrollListener {
-    method public abstract void onScrollEnded();
-    method public abstract void onScrollStarted();
+  @Deprecated public static interface SlidingDrawer.OnDrawerScrollListener {
+    method @Deprecated public void onScrollEnded();
+    method @Deprecated public void onScrollStarted();
   }
 
   public final class Space extends android.view.View {
@@ -56581,25 +56475,25 @@
     method public int getGravity();
     method public android.graphics.drawable.Drawable getPopupBackground();
     method public android.content.Context getPopupContext();
-    method public java.lang.CharSequence getPrompt();
+    method public CharSequence getPrompt();
     method public void onClick(android.content.DialogInterface, int);
     method public void setDropDownHorizontalOffset(int);
     method public void setDropDownVerticalOffset(int);
     method public void setDropDownWidth(int);
     method public void setGravity(int);
     method public void setPopupBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setPopupBackgroundResource(int);
-    method public void setPrompt(java.lang.CharSequence);
+    method public void setPopupBackgroundResource(@DrawableRes int);
+    method public void setPrompt(CharSequence);
     method public void setPromptId(int);
     field public static final int MODE_DIALOG = 0; // 0x0
     field public static final int MODE_DROPDOWN = 1; // 0x1
   }
 
-  public abstract interface SpinnerAdapter implements android.widget.Adapter {
-    method public abstract android.view.View getDropDownView(int, android.view.View, android.view.ViewGroup);
+  public interface SpinnerAdapter extends android.widget.Adapter {
+    method public android.view.View getDropDownView(int, android.view.View, android.view.ViewGroup);
   }
 
-  public class StackView extends android.widget.AdapterViewAnimator {
+  @android.widget.RemoteViews.RemoteView public class StackView extends android.widget.AdapterViewAnimator {
     ctor public StackView(android.content.Context);
     ctor public StackView(android.content.Context, android.util.AttributeSet);
     ctor public StackView(android.content.Context, android.util.AttributeSet, int);
@@ -56615,34 +56509,34 @@
     method public boolean getSplitTrack();
     method public int getSwitchMinWidth();
     method public int getSwitchPadding();
-    method public java.lang.CharSequence getTextOff();
-    method public java.lang.CharSequence getTextOn();
+    method public CharSequence getTextOff();
+    method public CharSequence getTextOn();
     method public android.graphics.drawable.Drawable getThumbDrawable();
     method public int getThumbTextPadding();
-    method public android.content.res.ColorStateList getThumbTintList();
-    method public android.graphics.PorterDuff.Mode getThumbTintMode();
+    method @Nullable public android.content.res.ColorStateList getThumbTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getThumbTintMode();
     method public android.graphics.drawable.Drawable getTrackDrawable();
-    method public android.content.res.ColorStateList getTrackTintList();
-    method public android.graphics.PorterDuff.Mode getTrackTintMode();
+    method @Nullable public android.content.res.ColorStateList getTrackTintList();
+    method @Nullable public android.graphics.PorterDuff.Mode getTrackTintMode();
     method public void onMeasure(int, int);
     method public void setShowText(boolean);
     method public void setSplitTrack(boolean);
     method public void setSwitchMinWidth(int);
     method public void setSwitchPadding(int);
-    method public void setSwitchTextAppearance(android.content.Context, int);
+    method public void setSwitchTextAppearance(android.content.Context, @StyleRes int);
     method public void setSwitchTypeface(android.graphics.Typeface, int);
     method public void setSwitchTypeface(android.graphics.Typeface);
-    method public void setTextOff(java.lang.CharSequence);
-    method public void setTextOn(java.lang.CharSequence);
+    method public void setTextOff(CharSequence);
+    method public void setTextOn(CharSequence);
     method public void setThumbDrawable(android.graphics.drawable.Drawable);
-    method public void setThumbResource(int);
+    method public void setThumbResource(@DrawableRes int);
     method public void setThumbTextPadding(int);
-    method public void setThumbTintList(android.content.res.ColorStateList);
-    method public void setThumbTintMode(android.graphics.PorterDuff.Mode);
+    method public void setThumbTintList(@Nullable android.content.res.ColorStateList);
+    method public void setThumbTintMode(@Nullable android.graphics.PorterDuff.Mode);
     method public void setTrackDrawable(android.graphics.drawable.Drawable);
-    method public void setTrackResource(int);
-    method public void setTrackTintList(android.content.res.ColorStateList);
-    method public void setTrackTintMode(android.graphics.PorterDuff.Mode);
+    method public void setTrackResource(@DrawableRes int);
+    method public void setTrackTintList(@Nullable android.content.res.ColorStateList);
+    method public void setTrackTintMode(@Nullable android.graphics.PorterDuff.Mode);
   }
 
   public class TabHost extends android.widget.FrameLayout implements android.view.ViewTreeObserver.OnTouchModeChangeListener {
@@ -56652,36 +56546,36 @@
     ctor public TabHost(android.content.Context, android.util.AttributeSet, int, int);
     method public void addTab(android.widget.TabHost.TabSpec);
     method public void clearAllTabs();
-    method public int getCurrentTab();
-    method public java.lang.String getCurrentTabTag();
-    method public android.view.View getCurrentTabView();
+    method @Nullable public int getCurrentTab();
+    method @Nullable public String getCurrentTabTag();
+    method @Nullable public android.view.View getCurrentTabView();
     method public android.view.View getCurrentView();
     method public android.widget.FrameLayout getTabContentView();
     method public android.widget.TabWidget getTabWidget();
-    method public android.widget.TabHost.TabSpec newTabSpec(java.lang.String);
+    method @NonNull public android.widget.TabHost.TabSpec newTabSpec(@NonNull String);
     method public void onTouchModeChanged(boolean);
     method public void setCurrentTab(int);
-    method public void setCurrentTabByTag(java.lang.String);
+    method public void setCurrentTabByTag(String);
     method public void setOnTabChangedListener(android.widget.TabHost.OnTabChangeListener);
     method public void setup();
     method public void setup(android.app.LocalActivityManager);
   }
 
-  public static abstract interface TabHost.OnTabChangeListener {
-    method public abstract void onTabChanged(java.lang.String);
+  public static interface TabHost.OnTabChangeListener {
+    method public void onTabChanged(String);
   }
 
-  public static abstract interface TabHost.TabContentFactory {
-    method public abstract android.view.View createTabContent(java.lang.String);
+  public static interface TabHost.TabContentFactory {
+    method public android.view.View createTabContent(String);
   }
 
   public class TabHost.TabSpec {
-    method public java.lang.String getTag();
+    method @NonNull public String getTag();
     method public android.widget.TabHost.TabSpec setContent(int);
     method public android.widget.TabHost.TabSpec setContent(android.widget.TabHost.TabContentFactory);
     method public android.widget.TabHost.TabSpec setContent(android.content.Intent);
-    method public android.widget.TabHost.TabSpec setIndicator(java.lang.CharSequence);
-    method public android.widget.TabHost.TabSpec setIndicator(java.lang.CharSequence, android.graphics.drawable.Drawable);
+    method public android.widget.TabHost.TabSpec setIndicator(CharSequence);
+    method public android.widget.TabHost.TabSpec setIndicator(CharSequence, android.graphics.drawable.Drawable);
     method public android.widget.TabHost.TabSpec setIndicator(android.view.View);
   }
 
@@ -56693,17 +56587,17 @@
     method public void dispatchDraw(android.graphics.Canvas);
     method public void focusCurrentTab(int);
     method public android.view.View getChildTabViewAt(int);
-    method public android.graphics.drawable.Drawable getLeftStripDrawable();
-    method public android.graphics.drawable.Drawable getRightStripDrawable();
+    method @Nullable public android.graphics.drawable.Drawable getLeftStripDrawable();
+    method @Nullable public android.graphics.drawable.Drawable getRightStripDrawable();
     method public int getTabCount();
     method public boolean isStripEnabled();
     method public void onFocusChange(android.view.View, boolean);
     method public void setCurrentTab(int);
-    method public void setDividerDrawable(int);
-    method public void setLeftStripDrawable(android.graphics.drawable.Drawable);
-    method public void setLeftStripDrawable(int);
-    method public void setRightStripDrawable(android.graphics.drawable.Drawable);
-    method public void setRightStripDrawable(int);
+    method public void setDividerDrawable(@DrawableRes int);
+    method public void setLeftStripDrawable(@Nullable android.graphics.drawable.Drawable);
+    method public void setLeftStripDrawable(@DrawableRes int);
+    method public void setRightStripDrawable(@Nullable android.graphics.drawable.Drawable);
+    method public void setRightStripDrawable(@DrawableRes int);
     method public void setStripEnabled(boolean);
   }
 
@@ -56748,41 +56642,41 @@
     ctor public TableRow.LayoutParams(int);
     ctor public TableRow.LayoutParams(android.view.ViewGroup.LayoutParams);
     ctor public TableRow.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
-    field public int column;
-    field public int span;
+    field @android.view.ViewDebug.ExportedProperty(category="layout") public int column;
+    field @android.view.ViewDebug.ExportedProperty(category="layout") public int span;
   }
 
-  public class TextClock extends android.widget.TextView {
+  @android.widget.RemoteViews.RemoteView public class TextClock extends android.widget.TextView {
     ctor public TextClock(android.content.Context);
     ctor public TextClock(android.content.Context, android.util.AttributeSet);
     ctor public TextClock(android.content.Context, android.util.AttributeSet, int);
     ctor public TextClock(android.content.Context, android.util.AttributeSet, int, int);
-    method public java.lang.CharSequence getFormat12Hour();
-    method public java.lang.CharSequence getFormat24Hour();
-    method public java.lang.String getTimeZone();
+    method @android.view.ViewDebug.ExportedProperty public CharSequence getFormat12Hour();
+    method @android.view.ViewDebug.ExportedProperty public CharSequence getFormat24Hour();
+    method public String getTimeZone();
     method public boolean is24HourModeEnabled();
-    method public void setFormat12Hour(java.lang.CharSequence);
-    method public void setFormat24Hour(java.lang.CharSequence);
-    method public void setTimeZone(java.lang.String);
-    field public static final deprecated java.lang.CharSequence DEFAULT_FORMAT_12_HOUR;
-    field public static final deprecated java.lang.CharSequence DEFAULT_FORMAT_24_HOUR;
+    method public void setFormat12Hour(CharSequence);
+    method public void setFormat24Hour(CharSequence);
+    method public void setTimeZone(String);
+    field @Deprecated public static final CharSequence DEFAULT_FORMAT_12_HOUR;
+    field @Deprecated public static final CharSequence DEFAULT_FORMAT_24_HOUR;
   }
 
   public class TextSwitcher extends android.widget.ViewSwitcher {
     ctor public TextSwitcher(android.content.Context);
     ctor public TextSwitcher(android.content.Context, android.util.AttributeSet);
-    method public void setCurrentText(java.lang.CharSequence);
-    method public void setText(java.lang.CharSequence);
+    method public void setCurrentText(CharSequence);
+    method public void setText(CharSequence);
   }
 
-  public class TextView extends android.view.View implements android.view.ViewTreeObserver.OnPreDrawListener {
+  @android.widget.RemoteViews.RemoteView public class TextView extends android.view.View implements android.view.ViewTreeObserver.OnPreDrawListener {
     ctor public TextView(android.content.Context);
-    ctor public TextView(android.content.Context, android.util.AttributeSet);
-    ctor public TextView(android.content.Context, android.util.AttributeSet, int);
-    ctor public TextView(android.content.Context, android.util.AttributeSet, int, int);
+    ctor public TextView(android.content.Context, @Nullable android.util.AttributeSet);
+    ctor public TextView(android.content.Context, @Nullable android.util.AttributeSet, int);
+    ctor public TextView(android.content.Context, @Nullable android.util.AttributeSet, int, int);
     method public void addTextChangedListener(android.text.TextWatcher);
-    method public final void append(java.lang.CharSequence);
-    method public void append(java.lang.CharSequence, int, int);
+    method public final void append(CharSequence);
+    method public void append(CharSequence, int, int);
     method public void beginBatchEdit();
     method public boolean bringPointIntoView(int);
     method public void clearComposingText();
@@ -56800,38 +56694,38 @@
     method public int getCompoundDrawablePadding();
     method public android.content.res.ColorStateList getCompoundDrawableTintList();
     method public android.graphics.PorterDuff.Mode getCompoundDrawableTintMode();
-    method public android.graphics.drawable.Drawable[] getCompoundDrawables();
-    method public android.graphics.drawable.Drawable[] getCompoundDrawablesRelative();
+    method @NonNull public android.graphics.drawable.Drawable[] getCompoundDrawables();
+    method @NonNull public android.graphics.drawable.Drawable[] getCompoundDrawablesRelative();
     method public int getCompoundPaddingBottom();
     method public int getCompoundPaddingEnd();
     method public int getCompoundPaddingLeft();
     method public int getCompoundPaddingRight();
     method public int getCompoundPaddingStart();
     method public int getCompoundPaddingTop();
-    method public final int getCurrentHintTextColor();
-    method public final int getCurrentTextColor();
+    method @ColorInt public final int getCurrentHintTextColor();
+    method @ColorInt public final int getCurrentTextColor();
     method public android.view.ActionMode.Callback getCustomInsertionActionModeCallback();
     method public android.view.ActionMode.Callback getCustomSelectionActionModeCallback();
     method protected boolean getDefaultEditable();
     method protected android.text.method.MovementMethod getDefaultMovementMethod();
     method public android.text.Editable getEditableText();
-    method public android.text.TextUtils.TruncateAt getEllipsize();
-    method public java.lang.CharSequence getError();
+    method @android.view.ViewDebug.ExportedProperty public android.text.TextUtils.TruncateAt getEllipsize();
+    method public CharSequence getError();
     method public int getExtendedPaddingBottom();
     method public int getExtendedPaddingTop();
     method public android.text.InputFilter[] getFilters();
     method public int getFirstBaselineToTopHeight();
-    method public java.lang.String getFontFeatureSettings();
-    method public java.lang.String getFontVariationSettings();
+    method @Nullable public String getFontFeatureSettings();
+    method @Nullable public String getFontVariationSettings();
     method public boolean getFreezesText();
     method public int getGravity();
-    method public int getHighlightColor();
-    method public java.lang.CharSequence getHint();
+    method @ColorInt public int getHighlightColor();
+    method @android.view.ViewDebug.CapturedViewProperty public CharSequence getHint();
     method public final android.content.res.ColorStateList getHintTextColors();
     method public int getHyphenationFrequency();
     method public int getImeActionId();
-    method public java.lang.CharSequence getImeActionLabel();
-    method public android.os.LocaleList getImeHintLocales();
+    method public CharSequence getImeActionLabel();
+    method @Nullable public android.os.LocaleList getImeHintLocales();
     method public int getImeOptions();
     method public boolean getIncludeFontPadding();
     method public android.os.Bundle getInputExtras(boolean);
@@ -56861,27 +56755,27 @@
     method public int getOffsetForPosition(float, float);
     method public android.text.TextPaint getPaint();
     method public int getPaintFlags();
-    method public java.lang.String getPrivateImeOptions();
-    method public int getSelectionEnd();
-    method public int getSelectionStart();
-    method public int getShadowColor();
+    method public String getPrivateImeOptions();
+    method @android.view.ViewDebug.ExportedProperty(category="text") public int getSelectionEnd();
+    method @android.view.ViewDebug.ExportedProperty(category="text") public int getSelectionStart();
+    method @ColorInt public int getShadowColor();
     method public float getShadowDx();
     method public float getShadowDy();
     method public float getShadowRadius();
     method public final boolean getShowSoftInputOnFocus();
-    method public java.lang.CharSequence getText();
-    method public android.view.textclassifier.TextClassifier getTextClassifier();
+    method @android.view.ViewDebug.CapturedViewProperty public CharSequence getText();
+    method @NonNull public android.view.textclassifier.TextClassifier getTextClassifier();
     method public final android.content.res.ColorStateList getTextColors();
-    method public android.graphics.drawable.Drawable getTextCursorDrawable();
+    method @Nullable public android.graphics.drawable.Drawable getTextCursorDrawable();
     method public android.text.TextDirectionHeuristic getTextDirectionHeuristic();
-    method public java.util.Locale getTextLocale();
-    method public android.os.LocaleList getTextLocales();
-    method public android.text.PrecomputedText.Params getTextMetricsParams();
+    method @NonNull public java.util.Locale getTextLocale();
+    method @NonNull @Size(min=1) public android.os.LocaleList getTextLocales();
+    method @NonNull public android.text.PrecomputedText.Params getTextMetricsParams();
     method public float getTextScaleX();
-    method public android.graphics.drawable.Drawable getTextSelectHandle();
-    method public android.graphics.drawable.Drawable getTextSelectHandleLeft();
-    method public android.graphics.drawable.Drawable getTextSelectHandleRight();
-    method public float getTextSize();
+    method @Nullable public android.graphics.drawable.Drawable getTextSelectHandle();
+    method @Nullable public android.graphics.drawable.Drawable getTextSelectHandleLeft();
+    method @Nullable public android.graphics.drawable.Drawable getTextSelectHandleRight();
+    method @android.view.ViewDebug.ExportedProperty(category="text") public float getTextSize();
     method public int getTotalPaddingBottom();
     method public int getTotalPaddingEnd();
     method public int getTotalPaddingLeft();
@@ -56909,28 +56803,28 @@
     method public void onEditorAction(int);
     method public void onEndBatchEdit();
     method public boolean onPreDraw();
-    method public boolean onPrivateIMECommand(java.lang.String, android.os.Bundle);
+    method public boolean onPrivateIMECommand(String, android.os.Bundle);
     method public void onRestoreInstanceState(android.os.Parcelable);
     method public android.os.Parcelable onSaveInstanceState();
     method protected void onSelectionChanged(int, int);
-    method protected void onTextChanged(java.lang.CharSequence, int, int, int);
+    method protected void onTextChanged(CharSequence, int, int, int);
     method public boolean onTextContextMenuItem(int);
     method public void removeTextChangedListener(android.text.TextWatcher);
     method public void setAllCaps(boolean);
     method public final void setAutoLinkMask(int);
     method public void setAutoSizeTextTypeUniformWithConfiguration(int, int, int, int);
-    method public void setAutoSizeTextTypeUniformWithPresetSizes(int[], int);
+    method public void setAutoSizeTextTypeUniformWithPresetSizes(@NonNull int[], int);
     method public void setAutoSizeTextTypeWithDefaults(int);
     method public void setBreakStrategy(int);
     method public void setCompoundDrawablePadding(int);
-    method public void setCompoundDrawableTintList(android.content.res.ColorStateList);
-    method public void setCompoundDrawableTintMode(android.graphics.PorterDuff.Mode);
-    method public void setCompoundDrawables(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
-    method public void setCompoundDrawablesRelative(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
-    method public void setCompoundDrawablesRelativeWithIntrinsicBounds(int, int, int, int);
-    method public void setCompoundDrawablesRelativeWithIntrinsicBounds(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
-    method public void setCompoundDrawablesWithIntrinsicBounds(int, int, int, int);
-    method public void setCompoundDrawablesWithIntrinsicBounds(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
+    method public void setCompoundDrawableTintList(@Nullable android.content.res.ColorStateList);
+    method public void setCompoundDrawableTintMode(@Nullable android.graphics.PorterDuff.Mode);
+    method public void setCompoundDrawables(@Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable);
+    method public void setCompoundDrawablesRelative(@Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable);
+    method public void setCompoundDrawablesRelativeWithIntrinsicBounds(@DrawableRes int, @DrawableRes int, @DrawableRes int, @DrawableRes int);
+    method public void setCompoundDrawablesRelativeWithIntrinsicBounds(@Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable);
+    method public void setCompoundDrawablesWithIntrinsicBounds(@DrawableRes int, @DrawableRes int, @DrawableRes int, @DrawableRes int);
+    method public void setCompoundDrawablesWithIntrinsicBounds(@Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable);
     method public void setCursorVisible(boolean);
     method public void setCustomInsertionActionModeCallback(android.view.ActionMode.Callback);
     method public void setCustomSelectionActionModeCallback(android.view.ActionMode.Callback);
@@ -56938,39 +56832,39 @@
     method public void setElegantTextHeight(boolean);
     method public void setEllipsize(android.text.TextUtils.TruncateAt);
     method public void setEms(int);
-    method public void setError(java.lang.CharSequence);
-    method public void setError(java.lang.CharSequence, android.graphics.drawable.Drawable);
+    method public void setError(CharSequence);
+    method public void setError(CharSequence, android.graphics.drawable.Drawable);
     method public void setExtractedText(android.view.inputmethod.ExtractedText);
     method public void setFallbackLineSpacing(boolean);
     method public void setFilters(android.text.InputFilter[]);
-    method public void setFirstBaselineToTopHeight(int);
-    method public void setFontFeatureSettings(java.lang.String);
-    method public boolean setFontVariationSettings(java.lang.String);
+    method public void setFirstBaselineToTopHeight(@Px @IntRange(from=0) int);
+    method public void setFontFeatureSettings(@Nullable String);
+    method public boolean setFontVariationSettings(@Nullable String);
     method protected boolean setFrame(int, int, int, int);
     method public void setFreezesText(boolean);
     method public void setGravity(int);
     method public void setHeight(int);
-    method public void setHighlightColor(int);
-    method public final void setHint(java.lang.CharSequence);
-    method public final void setHint(int);
-    method public final void setHintTextColor(int);
+    method public void setHighlightColor(@ColorInt int);
+    method public final void setHint(CharSequence);
+    method public final void setHint(@StringRes int);
+    method public final void setHintTextColor(@ColorInt int);
     method public final void setHintTextColor(android.content.res.ColorStateList);
     method public void setHorizontallyScrolling(boolean);
     method public void setHyphenationFrequency(int);
-    method public void setImeActionLabel(java.lang.CharSequence, int);
-    method public void setImeHintLocales(android.os.LocaleList);
+    method public void setImeActionLabel(CharSequence, int);
+    method public void setImeHintLocales(@Nullable android.os.LocaleList);
     method public void setImeOptions(int);
     method public void setIncludeFontPadding(boolean);
-    method public void setInputExtras(int) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public void setInputExtras(@XmlRes int) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
     method public void setInputType(int);
     method public void setJustificationMode(int);
     method public void setKeyListener(android.text.method.KeyListener);
-    method public void setLastBaselineToBottomHeight(int);
+    method public void setLastBaselineToBottomHeight(@Px @IntRange(from=0) int);
     method public void setLetterSpacing(float);
-    method public void setLineHeight(int);
+    method public void setLineHeight(@Px @IntRange(from=0) int);
     method public void setLineSpacing(float, float);
     method public void setLines(int);
-    method public final void setLinkTextColor(int);
+    method public final void setLinkTextColor(@ColorInt int);
     method public final void setLinkTextColor(android.content.res.ColorStateList);
     method public final void setLinksClickable(boolean);
     method public void setMarqueeRepeatLimit(int);
@@ -56985,7 +56879,7 @@
     method public final void setMovementMethod(android.text.method.MovementMethod);
     method public void setOnEditorActionListener(android.widget.TextView.OnEditorActionListener);
     method public void setPaintFlags(int);
-    method public void setPrivateImeOptions(java.lang.String);
+    method public void setPrivateImeOptions(String);
     method public void setRawInputType(int);
     method public void setScroller(android.widget.Scroller);
     method public void setSelectAllOnFocus(boolean);
@@ -56994,60 +56888,58 @@
     method public void setSingleLine();
     method public void setSingleLine(boolean);
     method public final void setSpannableFactory(android.text.Spannable.Factory);
-    method public final void setText(java.lang.CharSequence);
-    method public void setText(java.lang.CharSequence, android.widget.TextView.BufferType);
+    method public final void setText(CharSequence);
+    method public void setText(CharSequence, android.widget.TextView.BufferType);
     method public final void setText(char[], int, int);
-    method public final void setText(int);
-    method public final void setText(int, android.widget.TextView.BufferType);
-    method public void setTextAppearance(int);
-    method public deprecated void setTextAppearance(android.content.Context, int);
-    method public void setTextClassifier(android.view.textclassifier.TextClassifier);
-    method public void setTextColor(int);
+    method public final void setText(@StringRes int);
+    method public final void setText(@StringRes int, android.widget.TextView.BufferType);
+    method public void setTextAppearance(@StyleRes int);
+    method @Deprecated public void setTextAppearance(android.content.Context, @StyleRes int);
+    method public void setTextClassifier(@Nullable android.view.textclassifier.TextClassifier);
+    method public void setTextColor(@ColorInt int);
     method public void setTextColor(android.content.res.ColorStateList);
-    method public void setTextCursorDrawable(android.graphics.drawable.Drawable);
-    method public void setTextCursorDrawable(int);
+    method public void setTextCursorDrawable(@Nullable android.graphics.drawable.Drawable);
+    method public void setTextCursorDrawable(@DrawableRes int);
     method public void setTextIsSelectable(boolean);
-    method public final void setTextKeepState(java.lang.CharSequence);
-    method public final void setTextKeepState(java.lang.CharSequence, android.widget.TextView.BufferType);
-    method public void setTextLocale(java.util.Locale);
-    method public void setTextLocales(android.os.LocaleList);
-    method public void setTextMetricsParams(android.text.PrecomputedText.Params);
+    method public final void setTextKeepState(CharSequence);
+    method public final void setTextKeepState(CharSequence, android.widget.TextView.BufferType);
+    method public void setTextLocale(@NonNull java.util.Locale);
+    method public void setTextLocales(@NonNull @Size(min=1) android.os.LocaleList);
+    method public void setTextMetricsParams(@NonNull android.text.PrecomputedText.Params);
     method public void setTextScaleX(float);
-    method public void setTextSelectHandle(android.graphics.drawable.Drawable);
-    method public void setTextSelectHandle(int);
-    method public void setTextSelectHandleLeft(android.graphics.drawable.Drawable);
-    method public void setTextSelectHandleLeft(int);
-    method public void setTextSelectHandleRight(android.graphics.drawable.Drawable);
-    method public void setTextSelectHandleRight(int);
+    method public void setTextSelectHandle(@NonNull android.graphics.drawable.Drawable);
+    method public void setTextSelectHandle(@DrawableRes int);
+    method public void setTextSelectHandleLeft(@NonNull android.graphics.drawable.Drawable);
+    method public void setTextSelectHandleLeft(@DrawableRes int);
+    method public void setTextSelectHandleRight(@NonNull android.graphics.drawable.Drawable);
+    method public void setTextSelectHandleRight(@DrawableRes int);
     method public void setTextSize(float);
     method public void setTextSize(int, float);
     method public final void setTransformationMethod(android.text.method.TransformationMethod);
-    method public void setTypeface(android.graphics.Typeface, int);
-    method public void setTypeface(android.graphics.Typeface);
+    method public void setTypeface(@Nullable android.graphics.Typeface, int);
+    method public void setTypeface(@Nullable android.graphics.Typeface);
     method public void setWidth(int);
     field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0
     field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1
   }
 
-  public static final class TextView.BufferType extends java.lang.Enum {
-    method public static android.widget.TextView.BufferType valueOf(java.lang.String);
-    method public static final android.widget.TextView.BufferType[] values();
+  public enum TextView.BufferType {
     enum_constant public static final android.widget.TextView.BufferType EDITABLE;
     enum_constant public static final android.widget.TextView.BufferType NORMAL;
     enum_constant public static final android.widget.TextView.BufferType SPANNABLE;
   }
 
-  public static abstract interface TextView.OnEditorActionListener {
-    method public abstract boolean onEditorAction(android.widget.TextView, int, android.view.KeyEvent);
+  public static interface TextView.OnEditorActionListener {
+    method public boolean onEditorAction(android.widget.TextView, int, android.view.KeyEvent);
   }
 
   public static class TextView.SavedState extends android.view.View.BaseSavedState {
     field public static final android.os.Parcelable.Creator<android.widget.TextView.SavedState> CREATOR;
   }
 
-  public abstract interface ThemedSpinnerAdapter implements android.widget.SpinnerAdapter {
-    method public abstract android.content.res.Resources.Theme getDropDownViewTheme();
-    method public abstract void setDropDownViewTheme(android.content.res.Resources.Theme);
+  public interface ThemedSpinnerAdapter extends android.widget.SpinnerAdapter {
+    method @Nullable public android.content.res.Resources.Theme getDropDownViewTheme();
+    method public void setDropDownViewTheme(@Nullable android.content.res.Resources.Theme);
   }
 
   public class TimePicker extends android.widget.FrameLayout {
@@ -57055,22 +56947,22 @@
     ctor public TimePicker(android.content.Context, android.util.AttributeSet);
     ctor public TimePicker(android.content.Context, android.util.AttributeSet, int);
     ctor public TimePicker(android.content.Context, android.util.AttributeSet, int, int);
-    method public deprecated java.lang.Integer getCurrentHour();
-    method public deprecated java.lang.Integer getCurrentMinute();
+    method @Deprecated @NonNull public Integer getCurrentHour();
+    method @Deprecated @NonNull public Integer getCurrentMinute();
     method public int getHour();
     method public int getMinute();
     method public boolean is24HourView();
-    method public deprecated void setCurrentHour(java.lang.Integer);
-    method public deprecated void setCurrentMinute(java.lang.Integer);
-    method public void setHour(int);
-    method public void setIs24HourView(java.lang.Boolean);
-    method public void setMinute(int);
+    method @Deprecated public void setCurrentHour(@NonNull Integer);
+    method @Deprecated public void setCurrentMinute(@NonNull Integer);
+    method public void setHour(@IntRange(from=0, to=23) int);
+    method public void setIs24HourView(@NonNull Boolean);
+    method public void setMinute(@IntRange(from=0, to=59) int);
     method public void setOnTimeChangedListener(android.widget.TimePicker.OnTimeChangedListener);
     method public boolean validateInput();
   }
 
-  public static abstract interface TimePicker.OnTimeChangedListener {
-    method public abstract void onTimeChanged(android.widget.TimePicker, int, int);
+  public static interface TimePicker.OnTimeChangedListener {
+    method public void onTimeChanged(android.widget.TimePicker, int, int);
   }
 
   public class Toast {
@@ -57083,13 +56975,13 @@
     method public android.view.View getView();
     method public int getXOffset();
     method public int getYOffset();
-    method public static android.widget.Toast makeText(android.content.Context, java.lang.CharSequence, int);
-    method public static android.widget.Toast makeText(android.content.Context, int, int) throws android.content.res.Resources.NotFoundException;
+    method public static android.widget.Toast makeText(android.content.Context, CharSequence, int);
+    method public static android.widget.Toast makeText(android.content.Context, @StringRes int, int) throws android.content.res.Resources.NotFoundException;
     method public void setDuration(int);
     method public void setGravity(int, int, int);
     method public void setMargin(float, float);
-    method public void setText(int);
-    method public void setText(java.lang.CharSequence);
+    method public void setText(@StringRes int);
+    method public void setText(CharSequence);
     method public void setView(android.view.View);
     method public void show();
     field public static final int LENGTH_LONG = 1; // 0x1
@@ -57101,11 +56993,11 @@
     ctor public ToggleButton(android.content.Context, android.util.AttributeSet, int);
     ctor public ToggleButton(android.content.Context, android.util.AttributeSet);
     ctor public ToggleButton(android.content.Context);
-    method public java.lang.CharSequence getTextOff();
-    method public java.lang.CharSequence getTextOn();
+    method public CharSequence getTextOff();
+    method public CharSequence getTextOn();
     method public void setBackgroundDrawable(android.graphics.drawable.Drawable);
-    method public void setTextOff(java.lang.CharSequence);
-    method public void setTextOn(java.lang.CharSequence);
+    method public void setTextOff(CharSequence);
+    method public void setTextOn(CharSequence);
   }
 
   public class Toolbar extends android.view.ViewGroup {
@@ -57118,8 +57010,8 @@
     method protected android.widget.Toolbar.LayoutParams generateDefaultLayoutParams();
     method public android.widget.Toolbar.LayoutParams generateLayoutParams(android.util.AttributeSet);
     method protected android.widget.Toolbar.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams);
-    method public java.lang.CharSequence getCollapseContentDescription();
-    method public android.graphics.drawable.Drawable getCollapseIcon();
+    method @Nullable public CharSequence getCollapseContentDescription();
+    method @Nullable public android.graphics.drawable.Drawable getCollapseIcon();
     method public int getContentInsetEnd();
     method public int getContentInsetEndWithActions();
     method public int getContentInsetLeft();
@@ -57131,60 +57023,60 @@
     method public int getCurrentContentInsetRight();
     method public int getCurrentContentInsetStart();
     method public android.graphics.drawable.Drawable getLogo();
-    method public java.lang.CharSequence getLogoDescription();
+    method public CharSequence getLogoDescription();
     method public android.view.Menu getMenu();
-    method public java.lang.CharSequence getNavigationContentDescription();
-    method public android.graphics.drawable.Drawable getNavigationIcon();
-    method public android.graphics.drawable.Drawable getOverflowIcon();
+    method @Nullable public CharSequence getNavigationContentDescription();
+    method @Nullable public android.graphics.drawable.Drawable getNavigationIcon();
+    method @Nullable public android.graphics.drawable.Drawable getOverflowIcon();
     method public int getPopupTheme();
-    method public java.lang.CharSequence getSubtitle();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence getSubtitle();
+    method public CharSequence getTitle();
     method public int getTitleMarginBottom();
     method public int getTitleMarginEnd();
     method public int getTitleMarginStart();
     method public int getTitleMarginTop();
     method public boolean hasExpandedActionView();
     method public boolean hideOverflowMenu();
-    method public void inflateMenu(int);
+    method public void inflateMenu(@MenuRes int);
     method public boolean isOverflowMenuShowing();
-    method public void setCollapseContentDescription(int);
-    method public void setCollapseContentDescription(java.lang.CharSequence);
-    method public void setCollapseIcon(int);
-    method public void setCollapseIcon(android.graphics.drawable.Drawable);
+    method public void setCollapseContentDescription(@StringRes int);
+    method public void setCollapseContentDescription(@Nullable CharSequence);
+    method public void setCollapseIcon(@DrawableRes int);
+    method public void setCollapseIcon(@Nullable android.graphics.drawable.Drawable);
     method public void setContentInsetEndWithActions(int);
     method public void setContentInsetStartWithNavigation(int);
     method public void setContentInsetsAbsolute(int, int);
     method public void setContentInsetsRelative(int, int);
-    method public void setLogo(int);
+    method public void setLogo(@DrawableRes int);
     method public void setLogo(android.graphics.drawable.Drawable);
-    method public void setLogoDescription(int);
-    method public void setLogoDescription(java.lang.CharSequence);
-    method public void setNavigationContentDescription(int);
-    method public void setNavigationContentDescription(java.lang.CharSequence);
-    method public void setNavigationIcon(int);
-    method public void setNavigationIcon(android.graphics.drawable.Drawable);
+    method public void setLogoDescription(@StringRes int);
+    method public void setLogoDescription(CharSequence);
+    method public void setNavigationContentDescription(@StringRes int);
+    method public void setNavigationContentDescription(@Nullable CharSequence);
+    method public void setNavigationIcon(@DrawableRes int);
+    method public void setNavigationIcon(@Nullable android.graphics.drawable.Drawable);
     method public void setNavigationOnClickListener(android.view.View.OnClickListener);
     method public void setOnMenuItemClickListener(android.widget.Toolbar.OnMenuItemClickListener);
-    method public void setOverflowIcon(android.graphics.drawable.Drawable);
-    method public void setPopupTheme(int);
-    method public void setSubtitle(int);
-    method public void setSubtitle(java.lang.CharSequence);
-    method public void setSubtitleTextAppearance(android.content.Context, int);
-    method public void setSubtitleTextColor(int);
-    method public void setTitle(int);
-    method public void setTitle(java.lang.CharSequence);
+    method public void setOverflowIcon(@Nullable android.graphics.drawable.Drawable);
+    method public void setPopupTheme(@StyleRes int);
+    method public void setSubtitle(@StringRes int);
+    method public void setSubtitle(CharSequence);
+    method public void setSubtitleTextAppearance(android.content.Context, @StyleRes int);
+    method public void setSubtitleTextColor(@ColorInt int);
+    method public void setTitle(@StringRes int);
+    method public void setTitle(CharSequence);
     method public void setTitleMargin(int, int, int, int);
     method public void setTitleMarginBottom(int);
     method public void setTitleMarginEnd(int);
     method public void setTitleMarginStart(int);
     method public void setTitleMarginTop(int);
-    method public void setTitleTextAppearance(android.content.Context, int);
-    method public void setTitleTextColor(int);
+    method public void setTitleTextAppearance(android.content.Context, @StyleRes int);
+    method public void setTitleTextColor(@ColorInt int);
     method public boolean showOverflowMenu();
   }
 
   public static class Toolbar.LayoutParams extends android.app.ActionBar.LayoutParams {
-    ctor public Toolbar.LayoutParams(android.content.Context, android.util.AttributeSet);
+    ctor public Toolbar.LayoutParams(@NonNull android.content.Context, android.util.AttributeSet);
     ctor public Toolbar.LayoutParams(int, int);
     ctor public Toolbar.LayoutParams(int, int, int);
     ctor public Toolbar.LayoutParams(int);
@@ -57194,17 +57086,17 @@
     ctor public Toolbar.LayoutParams(android.view.ViewGroup.LayoutParams);
   }
 
-  public static abstract interface Toolbar.OnMenuItemClickListener {
-    method public abstract boolean onMenuItemClick(android.view.MenuItem);
+  public static interface Toolbar.OnMenuItemClickListener {
+    method public boolean onMenuItemClick(android.view.MenuItem);
   }
 
-  public deprecated class TwoLineListItem extends android.widget.RelativeLayout {
-    ctor public TwoLineListItem(android.content.Context);
-    ctor public TwoLineListItem(android.content.Context, android.util.AttributeSet);
-    ctor public TwoLineListItem(android.content.Context, android.util.AttributeSet, int);
-    ctor public TwoLineListItem(android.content.Context, android.util.AttributeSet, int, int);
-    method public android.widget.TextView getText1();
-    method public android.widget.TextView getText2();
+  @Deprecated public class TwoLineListItem extends android.widget.RelativeLayout {
+    ctor @Deprecated public TwoLineListItem(android.content.Context);
+    ctor @Deprecated public TwoLineListItem(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public TwoLineListItem(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public TwoLineListItem(android.content.Context, android.util.AttributeSet, int, int);
+    method @Deprecated public android.widget.TextView getText1();
+    method @Deprecated public android.widget.TextView getText2();
   }
 
   public class VideoView extends android.view.SurfaceView implements android.widget.MediaController.MediaPlayerControl {
@@ -57225,16 +57117,16 @@
     method public int resolveAdjustedSize(int, int);
     method public void resume();
     method public void seekTo(int);
-    method public void setAudioAttributes(android.media.AudioAttributes);
+    method public void setAudioAttributes(@NonNull android.media.AudioAttributes);
     method public void setAudioFocusRequest(int);
     method public void setMediaController(android.widget.MediaController);
     method public void setOnCompletionListener(android.media.MediaPlayer.OnCompletionListener);
     method public void setOnErrorListener(android.media.MediaPlayer.OnErrorListener);
     method public void setOnInfoListener(android.media.MediaPlayer.OnInfoListener);
     method public void setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener);
-    method public void setVideoPath(java.lang.String);
+    method public void setVideoPath(String);
     method public void setVideoURI(android.net.Uri);
-    method public void setVideoURI(android.net.Uri, java.util.Map<java.lang.String, java.lang.String>);
+    method public void setVideoURI(android.net.Uri, java.util.Map<java.lang.String,java.lang.String>);
     method public void start();
     method public void stopPlayback();
     method public void suspend();
@@ -57251,14 +57143,14 @@
     method public void setAnimateFirstView(boolean);
     method public void setDisplayedChild(int);
     method public void setInAnimation(android.view.animation.Animation);
-    method public void setInAnimation(android.content.Context, int);
+    method public void setInAnimation(android.content.Context, @AnimRes int);
     method public void setOutAnimation(android.view.animation.Animation);
-    method public void setOutAnimation(android.content.Context, int);
+    method public void setOutAnimation(android.content.Context, @AnimRes int);
     method public void showNext();
     method public void showPrevious();
   }
 
-  public class ViewFlipper extends android.widget.ViewAnimator {
+  @android.widget.RemoteViews.RemoteView public class ViewFlipper extends android.widget.ViewAnimator {
     ctor public ViewFlipper(android.content.Context);
     ctor public ViewFlipper(android.content.Context, android.util.AttributeSet);
     method public boolean isAutoStart();
@@ -57277,42 +57169,42 @@
     method public void setFactory(android.widget.ViewSwitcher.ViewFactory);
   }
 
-  public static abstract interface ViewSwitcher.ViewFactory {
-    method public abstract android.view.View makeView();
+  public static interface ViewSwitcher.ViewFactory {
+    method public android.view.View makeView();
   }
 
-  public abstract interface WrapperListAdapter implements android.widget.ListAdapter {
-    method public abstract android.widget.ListAdapter getWrappedAdapter();
+  public interface WrapperListAdapter extends android.widget.ListAdapter {
+    method public android.widget.ListAdapter getWrappedAdapter();
   }
 
-  public deprecated class ZoomButton extends android.widget.ImageButton implements android.view.View.OnLongClickListener {
-    ctor public ZoomButton(android.content.Context);
-    ctor public ZoomButton(android.content.Context, android.util.AttributeSet);
-    ctor public ZoomButton(android.content.Context, android.util.AttributeSet, int);
-    ctor public ZoomButton(android.content.Context, android.util.AttributeSet, int, int);
-    method public boolean onLongClick(android.view.View);
-    method public void setZoomSpeed(long);
+  @Deprecated public class ZoomButton extends android.widget.ImageButton implements android.view.View.OnLongClickListener {
+    ctor @Deprecated public ZoomButton(android.content.Context);
+    ctor @Deprecated public ZoomButton(android.content.Context, android.util.AttributeSet);
+    ctor @Deprecated public ZoomButton(android.content.Context, android.util.AttributeSet, int);
+    ctor @Deprecated public ZoomButton(android.content.Context, android.util.AttributeSet, int, int);
+    method @Deprecated public boolean onLongClick(android.view.View);
+    method @Deprecated public void setZoomSpeed(long);
   }
 
-  public deprecated class ZoomButtonsController implements android.view.View.OnTouchListener {
-    ctor public ZoomButtonsController(android.view.View);
-    method public android.view.ViewGroup getContainer();
-    method public android.view.View getZoomControls();
-    method public boolean isAutoDismissed();
-    method public boolean isVisible();
+  @Deprecated public class ZoomButtonsController implements android.view.View.OnTouchListener {
+    ctor @Deprecated public ZoomButtonsController(android.view.View);
+    method @Deprecated public android.view.ViewGroup getContainer();
+    method @Deprecated public android.view.View getZoomControls();
+    method @Deprecated public boolean isAutoDismissed();
+    method @Deprecated public boolean isVisible();
     method public boolean onTouch(android.view.View, android.view.MotionEvent);
-    method public void setAutoDismissed(boolean);
-    method public void setFocusable(boolean);
-    method public void setOnZoomListener(android.widget.ZoomButtonsController.OnZoomListener);
-    method public void setVisible(boolean);
-    method public void setZoomInEnabled(boolean);
-    method public void setZoomOutEnabled(boolean);
-    method public void setZoomSpeed(long);
+    method @Deprecated public void setAutoDismissed(boolean);
+    method @Deprecated public void setFocusable(boolean);
+    method @Deprecated public void setOnZoomListener(android.widget.ZoomButtonsController.OnZoomListener);
+    method @Deprecated public void setVisible(boolean);
+    method @Deprecated public void setZoomInEnabled(boolean);
+    method @Deprecated public void setZoomOutEnabled(boolean);
+    method @Deprecated public void setZoomSpeed(long);
   }
 
-  public static abstract interface ZoomButtonsController.OnZoomListener {
-    method public abstract void onVisibilityChanged(boolean);
-    method public abstract void onZoom(boolean);
+  @Deprecated public static interface ZoomButtonsController.OnZoomListener {
+    method @Deprecated public void onVisibilityChanged(boolean);
+    method @Deprecated public void onZoom(boolean);
   }
 
   public class ZoomControls extends android.widget.LinearLayout {
@@ -57331,10 +57223,14 @@
 
 package dalvik.annotation {
 
-  public abstract deprecated class TestTarget implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.ANNOTATION_TYPE}) public @interface TestTarget {
+    method @Deprecated public abstract String conceptName() default "";
+    method @Deprecated public abstract Class<?>[] methodArgs() default {};
+    method @Deprecated public abstract String methodName() default "";
   }
 
-  public abstract deprecated class TestTargetClass implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE}) public @interface TestTargetClass {
+    method @Deprecated public abstract Class<?> value();
   }
 
 }
@@ -57346,7 +57242,7 @@
     field public static final int MAXIMUM_VALUE;
   }
 
-  public abstract interface Opcodes {
+  public interface Opcodes {
     field public static final int OP_ADD_DOUBLE = 171; // 0xab
     field public static final int OP_ADD_DOUBLE_2ADDR = 203; // 0xcb
     field public static final int OP_ADD_FLOAT = 166; // 0xa6
@@ -57378,7 +57274,7 @@
     field public static final int OP_APUT_SHORT = 81; // 0x51
     field public static final int OP_APUT_WIDE = 76; // 0x4c
     field public static final int OP_ARRAY_LENGTH = 33; // 0x21
-    field public static final deprecated int OP_BREAKPOINT = 236; // 0xec
+    field @Deprecated public static final int OP_BREAKPOINT = 236; // 0xec
     field public static final int OP_CHECK_CAST = 31; // 0x1f
     field public static final int OP_CHECK_CAST_JUMBO = 511; // 0x1ff
     field public static final int OP_CMPG_DOUBLE = 48; // 0x30
@@ -57413,8 +57309,8 @@
     field public static final int OP_DOUBLE_TO_FLOAT = 140; // 0x8c
     field public static final int OP_DOUBLE_TO_INT = 138; // 0x8a
     field public static final int OP_DOUBLE_TO_LONG = 139; // 0x8b
-    field public static final deprecated int OP_EXECUTE_INLINE = 238; // 0xee
-    field public static final deprecated int OP_EXECUTE_INLINE_RANGE = 239; // 0xef
+    field @Deprecated public static final int OP_EXECUTE_INLINE = 238; // 0xee
+    field @Deprecated public static final int OP_EXECUTE_INLINE_RANGE = 239; // 0xef
     field public static final int OP_FILLED_NEW_ARRAY = 36; // 0x24
     field public static final int OP_FILLED_NEW_ARRAY_JUMBO = 1535; // 0x5ff
     field public static final int OP_FILLED_NEW_ARRAY_RANGE = 37; // 0x25
@@ -57447,14 +57343,14 @@
     field public static final int OP_IGET_JUMBO = 1791; // 0x6ff
     field public static final int OP_IGET_OBJECT = 84; // 0x54
     field public static final int OP_IGET_OBJECT_JUMBO = 2303; // 0x8ff
-    field public static final deprecated int OP_IGET_OBJECT_QUICK = 244; // 0xf4
-    field public static final deprecated int OP_IGET_QUICK = 242; // 0xf2
+    field @Deprecated public static final int OP_IGET_OBJECT_QUICK = 244; // 0xf4
+    field @Deprecated public static final int OP_IGET_QUICK = 242; // 0xf2
     field public static final int OP_IGET_SHORT = 88; // 0x58
     field public static final int OP_IGET_SHORT_JUMBO = 3327; // 0xcff
     field public static final int OP_IGET_WIDE = 83; // 0x53
     field public static final int OP_IGET_WIDE_JUMBO = 2047; // 0x7ff
-    field public static final deprecated int OP_IGET_WIDE_QUICK = 243; // 0xf3
-    field public static final deprecated int OP_IGET_WIDE_VOLATILE = 232; // 0xe8
+    field @Deprecated public static final int OP_IGET_WIDE_QUICK = 243; // 0xf3
+    field @Deprecated public static final int OP_IGET_WIDE_VOLATILE = 232; // 0xe8
     field public static final int OP_INSTANCE_OF = 32; // 0x20
     field public static final int OP_INSTANCE_OF_JUMBO = 767; // 0x2ff
     field public static final int OP_INT_TO_BYTE = 141; // 0x8d
@@ -57466,7 +57362,7 @@
     field public static final int OP_INVOKE_CUSTOM = 252; // 0xfc
     field public static final int OP_INVOKE_CUSTOM_RANGE = 253; // 0xfd
     field public static final int OP_INVOKE_DIRECT = 112; // 0x70
-    field public static final deprecated int OP_INVOKE_DIRECT_EMPTY = 240; // 0xf0
+    field @Deprecated public static final int OP_INVOKE_DIRECT_EMPTY = 240; // 0xf0
     field public static final int OP_INVOKE_DIRECT_JUMBO = 9471; // 0x24ff
     field public static final int OP_INVOKE_DIRECT_RANGE = 118; // 0x76
     field public static final int OP_INVOKE_INTERFACE = 114; // 0x72
@@ -57479,13 +57375,13 @@
     field public static final int OP_INVOKE_STATIC_RANGE = 119; // 0x77
     field public static final int OP_INVOKE_SUPER = 111; // 0x6f
     field public static final int OP_INVOKE_SUPER_JUMBO = 9215; // 0x23ff
-    field public static final deprecated int OP_INVOKE_SUPER_QUICK = 250; // 0xfa
-    field public static final deprecated int OP_INVOKE_SUPER_QUICK_RANGE = 251; // 0xfb
+    field @Deprecated public static final int OP_INVOKE_SUPER_QUICK = 250; // 0xfa
+    field @Deprecated public static final int OP_INVOKE_SUPER_QUICK_RANGE = 251; // 0xfb
     field public static final int OP_INVOKE_SUPER_RANGE = 117; // 0x75
     field public static final int OP_INVOKE_VIRTUAL = 110; // 0x6e
     field public static final int OP_INVOKE_VIRTUAL_JUMBO = 8959; // 0x22ff
-    field public static final deprecated int OP_INVOKE_VIRTUAL_QUICK = 248; // 0xf8
-    field public static final deprecated int OP_INVOKE_VIRTUAL_QUICK_RANGE = 249; // 0xf9
+    field @Deprecated public static final int OP_INVOKE_VIRTUAL_QUICK = 248; // 0xf8
+    field @Deprecated public static final int OP_INVOKE_VIRTUAL_QUICK_RANGE = 249; // 0xf9
     field public static final int OP_INVOKE_VIRTUAL_RANGE = 116; // 0x74
     field public static final int OP_IPUT = 89; // 0x59
     field public static final int OP_IPUT_BOOLEAN = 92; // 0x5c
@@ -57497,14 +57393,14 @@
     field public static final int OP_IPUT_JUMBO = 3583; // 0xdff
     field public static final int OP_IPUT_OBJECT = 91; // 0x5b
     field public static final int OP_IPUT_OBJECT_JUMBO = 4095; // 0xfff
-    field public static final deprecated int OP_IPUT_OBJECT_QUICK = 247; // 0xf7
-    field public static final deprecated int OP_IPUT_QUICK = 245; // 0xf5
+    field @Deprecated public static final int OP_IPUT_OBJECT_QUICK = 247; // 0xf7
+    field @Deprecated public static final int OP_IPUT_QUICK = 245; // 0xf5
     field public static final int OP_IPUT_SHORT = 95; // 0x5f
     field public static final int OP_IPUT_SHORT_JUMBO = 5119; // 0x13ff
     field public static final int OP_IPUT_WIDE = 90; // 0x5a
     field public static final int OP_IPUT_WIDE_JUMBO = 3839; // 0xeff
-    field public static final deprecated int OP_IPUT_WIDE_QUICK = 246; // 0xf6
-    field public static final deprecated int OP_IPUT_WIDE_VOLATILE = 233; // 0xe9
+    field @Deprecated public static final int OP_IPUT_WIDE_QUICK = 246; // 0xf6
+    field @Deprecated public static final int OP_IPUT_WIDE_VOLATILE = 233; // 0xe9
     field public static final int OP_LONG_TO_DOUBLE = 134; // 0x86
     field public static final int OP_LONG_TO_FLOAT = 133; // 0x85
     field public static final int OP_LONG_TO_INT = 132; // 0x84
@@ -57581,7 +57477,7 @@
     field public static final int OP_SGET_SHORT_JUMBO = 6911; // 0x1aff
     field public static final int OP_SGET_WIDE = 97; // 0x61
     field public static final int OP_SGET_WIDE_JUMBO = 5631; // 0x15ff
-    field public static final deprecated int OP_SGET_WIDE_VOLATILE = 234; // 0xea
+    field @Deprecated public static final int OP_SGET_WIDE_VOLATILE = 234; // 0xea
     field public static final int OP_SHL_INT = 152; // 0x98
     field public static final int OP_SHL_INT_2ADDR = 184; // 0xb8
     field public static final int OP_SHL_INT_LIT8 = 224; // 0xe0
@@ -57607,7 +57503,7 @@
     field public static final int OP_SPUT_SHORT_JUMBO = 8703; // 0x21ff
     field public static final int OP_SPUT_WIDE = 104; // 0x68
     field public static final int OP_SPUT_WIDE_JUMBO = 7423; // 0x1cff
-    field public static final deprecated int OP_SPUT_WIDE_VOLATILE = 235; // 0xeb
+    field @Deprecated public static final int OP_SPUT_WIDE_VOLATILE = 235; // 0xeb
     field public static final int OP_SUB_DOUBLE = 172; // 0xac
     field public static final int OP_SUB_DOUBLE_2ADDR = 204; // 0xcc
     field public static final int OP_SUB_FLOAT = 167; // 0xa7
@@ -57617,7 +57513,7 @@
     field public static final int OP_SUB_LONG = 156; // 0x9c
     field public static final int OP_SUB_LONG_2ADDR = 188; // 0xbc
     field public static final int OP_THROW = 39; // 0x27
-    field public static final deprecated int OP_THROW_VERIFICATION_ERROR = 237; // 0xed
+    field @Deprecated public static final int OP_THROW_VERIFICATION_ERROR = 237; // 0xed
     field public static final int OP_USHR_INT = 154; // 0x9a
     field public static final int OP_USHR_INT_2ADDR = 186; // 0xba
     field public static final int OP_USHR_INT_LIT8 = 226; // 0xe2
@@ -57636,42 +57532,41 @@
 package dalvik.system {
 
   public class BaseDexClassLoader extends java.lang.ClassLoader {
-    ctor public BaseDexClassLoader(java.lang.String, java.io.File, java.lang.String, java.lang.ClassLoader);
-    method public java.lang.String findLibrary(java.lang.String);
-    method protected java.util.Enumeration<java.net.URL> findResources(java.lang.String);
-    method protected synchronized java.lang.Package getPackage(java.lang.String);
+    ctor public BaseDexClassLoader(String, java.io.File, String, ClassLoader);
+    method public String findLibrary(String);
+    method protected java.util.Enumeration<java.net.URL> findResources(String);
   }
 
   public final class DelegateLastClassLoader extends dalvik.system.PathClassLoader {
-    ctor public DelegateLastClassLoader(java.lang.String, java.lang.ClassLoader);
-    ctor public DelegateLastClassLoader(java.lang.String, java.lang.String, java.lang.ClassLoader);
-    ctor public DelegateLastClassLoader(java.lang.String, java.lang.String, java.lang.ClassLoader, boolean);
+    ctor public DelegateLastClassLoader(String, ClassLoader);
+    ctor public DelegateLastClassLoader(String, String, ClassLoader);
+    ctor public DelegateLastClassLoader(String, String, ClassLoader, boolean);
   }
 
   public class DexClassLoader extends dalvik.system.BaseDexClassLoader {
-    ctor public DexClassLoader(java.lang.String, java.lang.String, java.lang.String, java.lang.ClassLoader);
+    ctor public DexClassLoader(String, String, String, ClassLoader);
   }
 
-  public final deprecated class DexFile {
-    ctor public deprecated DexFile(java.io.File) throws java.io.IOException;
-    ctor public deprecated DexFile(java.lang.String) throws java.io.IOException;
-    method public void close() throws java.io.IOException;
-    method public java.util.Enumeration<java.lang.String> entries();
-    method public java.lang.String getName();
-    method public static boolean isDexOptNeeded(java.lang.String) throws java.io.FileNotFoundException, java.io.IOException;
-    method public java.lang.Class loadClass(java.lang.String, java.lang.ClassLoader);
-    method public static deprecated dalvik.system.DexFile loadDex(java.lang.String, java.lang.String, int) throws java.io.IOException;
+  @Deprecated public final class DexFile {
+    ctor @Deprecated public DexFile(java.io.File) throws java.io.IOException;
+    ctor @Deprecated public DexFile(String) throws java.io.IOException;
+    method @Deprecated public void close() throws java.io.IOException;
+    method @Deprecated public java.util.Enumeration<java.lang.String> entries();
+    method @Deprecated public String getName();
+    method @Deprecated public static boolean isDexOptNeeded(String) throws java.io.FileNotFoundException, java.io.IOException;
+    method @Deprecated public Class loadClass(String, ClassLoader);
+    method @Deprecated public static dalvik.system.DexFile loadDex(String, String, int) throws java.io.IOException;
   }
 
   public final class InMemoryDexClassLoader extends dalvik.system.BaseDexClassLoader {
-    ctor public InMemoryDexClassLoader(java.nio.ByteBuffer[], java.lang.String, java.lang.ClassLoader);
-    ctor public InMemoryDexClassLoader(java.nio.ByteBuffer[], java.lang.ClassLoader);
-    ctor public InMemoryDexClassLoader(java.nio.ByteBuffer, java.lang.ClassLoader);
+    ctor public InMemoryDexClassLoader(@NonNull java.nio.ByteBuffer[], @Nullable String, @Nullable ClassLoader);
+    ctor public InMemoryDexClassLoader(@NonNull java.nio.ByteBuffer[], @Nullable ClassLoader);
+    ctor public InMemoryDexClassLoader(@NonNull java.nio.ByteBuffer, @Nullable ClassLoader);
   }
 
   public class PathClassLoader extends dalvik.system.BaseDexClassLoader {
-    ctor public PathClassLoader(java.lang.String, java.lang.ClassLoader);
-    ctor public PathClassLoader(java.lang.String, java.lang.String, java.lang.ClassLoader);
+    ctor public PathClassLoader(String, ClassLoader);
+    ctor public PathClassLoader(String, String, ClassLoader);
   }
 
 }
@@ -57713,9 +57608,7 @@
     field public static final int TIBETAN = 16384; // 0x4000
   }
 
-  public static class NumericShaper.Range extends java.lang.Enum {
-    method public static java.awt.font.NumericShaper.Range valueOf(java.lang.String);
-    method public static final java.awt.font.NumericShaper.Range[] values();
+  public enum NumericShaper.Range {
     enum_constant public static final java.awt.font.NumericShaper.Range ARABIC;
     enum_constant public static final java.awt.font.NumericShaper.Range BALINESE;
     enum_constant public static final java.awt.font.NumericShaper.Range BENGALI;
@@ -57754,7 +57647,7 @@
   }
 
   public final class TextAttribute extends java.text.AttributedCharacterIterator.Attribute {
-    ctor protected TextAttribute(java.lang.String);
+    ctor protected TextAttribute(String);
     field public static final java.awt.font.TextAttribute BACKGROUND;
     field public static final java.awt.font.TextAttribute BIDI_EMBEDDING;
     field public static final java.awt.font.TextAttribute CHAR_REPLACEMENT;
@@ -57764,56 +57657,56 @@
     field public static final java.awt.font.TextAttribute INPUT_METHOD_HIGHLIGHT;
     field public static final java.awt.font.TextAttribute INPUT_METHOD_UNDERLINE;
     field public static final java.awt.font.TextAttribute JUSTIFICATION;
-    field public static final java.lang.Float JUSTIFICATION_FULL;
-    field public static final java.lang.Float JUSTIFICATION_NONE;
+    field public static final Float JUSTIFICATION_FULL;
+    field public static final Float JUSTIFICATION_NONE;
     field public static final java.awt.font.TextAttribute KERNING;
-    field public static final java.lang.Integer KERNING_ON;
+    field public static final Integer KERNING_ON;
     field public static final java.awt.font.TextAttribute LIGATURES;
-    field public static final java.lang.Integer LIGATURES_ON;
+    field public static final Integer LIGATURES_ON;
     field public static final java.awt.font.TextAttribute NUMERIC_SHAPING;
     field public static final java.awt.font.TextAttribute POSTURE;
-    field public static final java.lang.Float POSTURE_OBLIQUE;
-    field public static final java.lang.Float POSTURE_REGULAR;
+    field public static final Float POSTURE_OBLIQUE;
+    field public static final Float POSTURE_REGULAR;
     field public static final java.awt.font.TextAttribute RUN_DIRECTION;
-    field public static final java.lang.Boolean RUN_DIRECTION_LTR;
-    field public static final java.lang.Boolean RUN_DIRECTION_RTL;
+    field public static final Boolean RUN_DIRECTION_LTR;
+    field public static final Boolean RUN_DIRECTION_RTL;
     field public static final java.awt.font.TextAttribute SIZE;
     field public static final java.awt.font.TextAttribute STRIKETHROUGH;
-    field public static final java.lang.Boolean STRIKETHROUGH_ON;
+    field public static final Boolean STRIKETHROUGH_ON;
     field public static final java.awt.font.TextAttribute SUPERSCRIPT;
-    field public static final java.lang.Integer SUPERSCRIPT_SUB;
-    field public static final java.lang.Integer SUPERSCRIPT_SUPER;
+    field public static final Integer SUPERSCRIPT_SUB;
+    field public static final Integer SUPERSCRIPT_SUPER;
     field public static final java.awt.font.TextAttribute SWAP_COLORS;
-    field public static final java.lang.Boolean SWAP_COLORS_ON;
+    field public static final Boolean SWAP_COLORS_ON;
     field public static final java.awt.font.TextAttribute TRACKING;
-    field public static final java.lang.Float TRACKING_LOOSE;
-    field public static final java.lang.Float TRACKING_TIGHT;
+    field public static final Float TRACKING_LOOSE;
+    field public static final Float TRACKING_TIGHT;
     field public static final java.awt.font.TextAttribute TRANSFORM;
     field public static final java.awt.font.TextAttribute UNDERLINE;
-    field public static final java.lang.Integer UNDERLINE_LOW_DASHED;
-    field public static final java.lang.Integer UNDERLINE_LOW_DOTTED;
-    field public static final java.lang.Integer UNDERLINE_LOW_GRAY;
-    field public static final java.lang.Integer UNDERLINE_LOW_ONE_PIXEL;
-    field public static final java.lang.Integer UNDERLINE_LOW_TWO_PIXEL;
-    field public static final java.lang.Integer UNDERLINE_ON;
+    field public static final Integer UNDERLINE_LOW_DASHED;
+    field public static final Integer UNDERLINE_LOW_DOTTED;
+    field public static final Integer UNDERLINE_LOW_GRAY;
+    field public static final Integer UNDERLINE_LOW_ONE_PIXEL;
+    field public static final Integer UNDERLINE_LOW_TWO_PIXEL;
+    field public static final Integer UNDERLINE_ON;
     field public static final java.awt.font.TextAttribute WEIGHT;
-    field public static final java.lang.Float WEIGHT_BOLD;
-    field public static final java.lang.Float WEIGHT_DEMIBOLD;
-    field public static final java.lang.Float WEIGHT_DEMILIGHT;
-    field public static final java.lang.Float WEIGHT_EXTRABOLD;
-    field public static final java.lang.Float WEIGHT_EXTRA_LIGHT;
-    field public static final java.lang.Float WEIGHT_HEAVY;
-    field public static final java.lang.Float WEIGHT_LIGHT;
-    field public static final java.lang.Float WEIGHT_MEDIUM;
-    field public static final java.lang.Float WEIGHT_REGULAR;
-    field public static final java.lang.Float WEIGHT_SEMIBOLD;
-    field public static final java.lang.Float WEIGHT_ULTRABOLD;
+    field public static final Float WEIGHT_BOLD;
+    field public static final Float WEIGHT_DEMIBOLD;
+    field public static final Float WEIGHT_DEMILIGHT;
+    field public static final Float WEIGHT_EXTRABOLD;
+    field public static final Float WEIGHT_EXTRA_LIGHT;
+    field public static final Float WEIGHT_HEAVY;
+    field public static final Float WEIGHT_LIGHT;
+    field public static final Float WEIGHT_MEDIUM;
+    field public static final Float WEIGHT_REGULAR;
+    field public static final Float WEIGHT_SEMIBOLD;
+    field public static final Float WEIGHT_ULTRABOLD;
     field public static final java.awt.font.TextAttribute WIDTH;
-    field public static final java.lang.Float WIDTH_CONDENSED;
-    field public static final java.lang.Float WIDTH_EXTENDED;
-    field public static final java.lang.Float WIDTH_REGULAR;
-    field public static final java.lang.Float WIDTH_SEMI_CONDENSED;
-    field public static final java.lang.Float WIDTH_SEMI_EXTENDED;
+    field public static final Float WIDTH_CONDENSED;
+    field public static final Float WIDTH_EXTENDED;
+    field public static final Float WIDTH_REGULAR;
+    field public static final Float WIDTH_SEMI_CONDENSED;
+    field public static final Float WIDTH_SEMI_EXTENDED;
   }
 
 }
@@ -57821,45 +57714,45 @@
 package java.beans {
 
   public class IndexedPropertyChangeEvent extends java.beans.PropertyChangeEvent {
-    ctor public IndexedPropertyChangeEvent(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, int);
+    ctor public IndexedPropertyChangeEvent(Object, String, Object, Object, int);
     method public int getIndex();
   }
 
   public class PropertyChangeEvent extends java.util.EventObject {
-    ctor public PropertyChangeEvent(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object);
-    method public java.lang.Object getNewValue();
-    method public java.lang.Object getOldValue();
-    method public java.lang.Object getPropagationId();
-    method public java.lang.String getPropertyName();
-    method public void setPropagationId(java.lang.Object);
+    ctor public PropertyChangeEvent(Object, String, Object, Object);
+    method public Object getNewValue();
+    method public Object getOldValue();
+    method public Object getPropagationId();
+    method public String getPropertyName();
+    method public void setPropagationId(Object);
   }
 
-  public abstract interface PropertyChangeListener implements java.util.EventListener {
-    method public abstract void propertyChange(java.beans.PropertyChangeEvent);
+  public interface PropertyChangeListener extends java.util.EventListener {
+    method public void propertyChange(java.beans.PropertyChangeEvent);
   }
 
-  public class PropertyChangeListenerProxy extends java.util.EventListenerProxy implements java.beans.PropertyChangeListener {
-    ctor public PropertyChangeListenerProxy(java.lang.String, java.beans.PropertyChangeListener);
-    method public java.lang.String getPropertyName();
+  public class PropertyChangeListenerProxy extends java.util.EventListenerProxy<java.beans.PropertyChangeListener> implements java.beans.PropertyChangeListener {
+    ctor public PropertyChangeListenerProxy(String, java.beans.PropertyChangeListener);
+    method public String getPropertyName();
     method public void propertyChange(java.beans.PropertyChangeEvent);
   }
 
   public class PropertyChangeSupport implements java.io.Serializable {
-    ctor public PropertyChangeSupport(java.lang.Object);
+    ctor public PropertyChangeSupport(Object);
     method public void addPropertyChangeListener(java.beans.PropertyChangeListener);
-    method public void addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
-    method public void fireIndexedPropertyChange(java.lang.String, int, java.lang.Object, java.lang.Object);
-    method public void fireIndexedPropertyChange(java.lang.String, int, int, int);
-    method public void fireIndexedPropertyChange(java.lang.String, int, boolean, boolean);
-    method public void firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object);
-    method public void firePropertyChange(java.lang.String, int, int);
-    method public void firePropertyChange(java.lang.String, boolean, boolean);
+    method public void addPropertyChangeListener(String, java.beans.PropertyChangeListener);
+    method public void fireIndexedPropertyChange(String, int, Object, Object);
+    method public void fireIndexedPropertyChange(String, int, int, int);
+    method public void fireIndexedPropertyChange(String, int, boolean, boolean);
+    method public void firePropertyChange(String, Object, Object);
+    method public void firePropertyChange(String, int, int);
+    method public void firePropertyChange(String, boolean, boolean);
     method public void firePropertyChange(java.beans.PropertyChangeEvent);
     method public java.beans.PropertyChangeListener[] getPropertyChangeListeners();
-    method public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String);
-    method public boolean hasListeners(java.lang.String);
+    method public java.beans.PropertyChangeListener[] getPropertyChangeListeners(String);
+    method public boolean hasListeners(String);
     method public void removePropertyChangeListener(java.beans.PropertyChangeListener);
-    method public void removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener);
+    method public void removePropertyChangeListener(String, java.beans.PropertyChangeListener);
   }
 
 }
@@ -57869,10 +57762,6 @@
   public class BufferedInputStream extends java.io.FilterInputStream {
     ctor public BufferedInputStream(java.io.InputStream);
     ctor public BufferedInputStream(java.io.InputStream, int);
-    method public synchronized int available() throws java.io.IOException;
-    method public synchronized int read() throws java.io.IOException;
-    method public synchronized int read(byte[], int, int) throws java.io.IOException;
-    method public synchronized long skip(long) throws java.io.IOException;
     field protected volatile byte[] buf;
     field protected int count;
     field protected int marklimit;
@@ -57883,9 +57772,6 @@
   public class BufferedOutputStream extends java.io.FilterOutputStream {
     ctor public BufferedOutputStream(java.io.OutputStream);
     ctor public BufferedOutputStream(java.io.OutputStream, int);
-    method public synchronized void flush() throws java.io.IOException;
-    method public synchronized void write(int) throws java.io.IOException;
-    method public synchronized void write(byte[], int, int) throws java.io.IOException;
     field protected byte[] buf;
     field protected int count;
   }
@@ -57896,7 +57782,7 @@
     method public void close() throws java.io.IOException;
     method public java.util.stream.Stream<java.lang.String> lines();
     method public int read(char[], int, int) throws java.io.IOException;
-    method public java.lang.String readLine() throws java.io.IOException;
+    method public String readLine() throws java.io.IOException;
   }
 
   public class BufferedWriter extends java.io.Writer {
@@ -57911,12 +57797,11 @@
   public class ByteArrayInputStream extends java.io.InputStream {
     ctor public ByteArrayInputStream(byte[]);
     ctor public ByteArrayInputStream(byte[], int, int);
-    method public synchronized int available();
-    method public void mark(int);
-    method public synchronized int read();
-    method public synchronized int read(byte[], int, int);
-    method public synchronized void reset();
-    method public synchronized long skip(long);
+    method public int available();
+    method public int read();
+    method public int read(byte[], int, int);
+    method public void reset();
+    method public long skip(long);
     field protected byte[] buf;
     field protected int count;
     field protected int mark;
@@ -57926,15 +57811,14 @@
   public class ByteArrayOutputStream extends java.io.OutputStream {
     ctor public ByteArrayOutputStream();
     ctor public ByteArrayOutputStream(int);
-    method public synchronized void reset();
-    method public synchronized int size();
-    method public synchronized byte[] toByteArray();
-    method public synchronized java.lang.String toString();
-    method public synchronized java.lang.String toString(java.lang.String) throws java.io.UnsupportedEncodingException;
-    method public deprecated synchronized java.lang.String toString(int);
-    method public synchronized void write(int);
-    method public synchronized void write(byte[], int, int);
-    method public synchronized void writeTo(java.io.OutputStream) throws java.io.IOException;
+    method public void reset();
+    method public int size();
+    method public byte[] toByteArray();
+    method @NonNull public String toString(@NonNull String) throws java.io.UnsupportedEncodingException;
+    method @Deprecated @NonNull public String toString(int);
+    method public void write(int);
+    method public void write(byte[], int, int);
+    method public void writeTo(@NonNull java.io.OutputStream) throws java.io.IOException;
     field protected byte[] buf;
     field protected int count;
   }
@@ -57953,8 +57837,8 @@
   public class CharArrayWriter extends java.io.Writer {
     ctor public CharArrayWriter();
     ctor public CharArrayWriter(int);
-    method public java.io.CharArrayWriter append(java.lang.CharSequence);
-    method public java.io.CharArrayWriter append(java.lang.CharSequence, int, int);
+    method public java.io.CharArrayWriter append(CharSequence);
+    method public java.io.CharArrayWriter append(CharSequence, int, int);
     method public java.io.CharArrayWriter append(char);
     method public void close();
     method public void flush();
@@ -57963,7 +57847,7 @@
     method public char[] toCharArray();
     method public void write(int);
     method public void write(char[], int, int);
-    method public void write(java.lang.String, int, int);
+    method public void write(String, int, int);
     method public void writeTo(java.io.Writer) throws java.io.IOException;
     field protected char[] buf;
     field protected int count;
@@ -57971,41 +57855,41 @@
 
   public class CharConversionException extends java.io.IOException {
     ctor public CharConversionException();
-    ctor public CharConversionException(java.lang.String);
+    ctor public CharConversionException(String);
   }
 
-  public abstract interface Closeable implements java.lang.AutoCloseable {
-    method public abstract void close() throws java.io.IOException;
+  public interface Closeable extends java.lang.AutoCloseable {
+    method public void close() throws java.io.IOException;
   }
 
   public final class Console implements java.io.Flushable {
     method public void flush();
-    method public java.io.Console format(java.lang.String, java.lang.Object...);
-    method public java.io.Console printf(java.lang.String, java.lang.Object...);
-    method public java.lang.String readLine(java.lang.String, java.lang.Object...);
-    method public java.lang.String readLine();
-    method public char[] readPassword(java.lang.String, java.lang.Object...);
+    method public java.io.Console format(String, java.lang.Object...);
+    method public java.io.Console printf(String, java.lang.Object...);
+    method public String readLine(String, java.lang.Object...);
+    method public String readLine();
+    method public char[] readPassword(String, java.lang.Object...);
     method public char[] readPassword();
     method public java.io.Reader reader();
     method public java.io.PrintWriter writer();
   }
 
-  public abstract interface DataInput {
-    method public abstract boolean readBoolean() throws java.io.IOException;
-    method public abstract byte readByte() throws java.io.IOException;
-    method public abstract char readChar() throws java.io.IOException;
-    method public abstract double readDouble() throws java.io.IOException;
-    method public abstract float readFloat() throws java.io.IOException;
-    method public abstract void readFully(byte[]) throws java.io.IOException;
-    method public abstract void readFully(byte[], int, int) throws java.io.IOException;
-    method public abstract int readInt() throws java.io.IOException;
-    method public abstract java.lang.String readLine() throws java.io.IOException;
-    method public abstract long readLong() throws java.io.IOException;
-    method public abstract short readShort() throws java.io.IOException;
-    method public abstract java.lang.String readUTF() throws java.io.IOException;
-    method public abstract int readUnsignedByte() throws java.io.IOException;
-    method public abstract int readUnsignedShort() throws java.io.IOException;
-    method public abstract int skipBytes(int) throws java.io.IOException;
+  public interface DataInput {
+    method public boolean readBoolean() throws java.io.IOException;
+    method public byte readByte() throws java.io.IOException;
+    method public char readChar() throws java.io.IOException;
+    method public double readDouble() throws java.io.IOException;
+    method public float readFloat() throws java.io.IOException;
+    method public void readFully(byte[]) throws java.io.IOException;
+    method public void readFully(byte[], int, int) throws java.io.IOException;
+    method public int readInt() throws java.io.IOException;
+    method public String readLine() throws java.io.IOException;
+    method public long readLong() throws java.io.IOException;
+    method public short readShort() throws java.io.IOException;
+    method public String readUTF() throws java.io.IOException;
+    method public int readUnsignedByte() throws java.io.IOException;
+    method public int readUnsignedShort() throws java.io.IOException;
+    method public int skipBytes(int) throws java.io.IOException;
   }
 
   public class DataInputStream extends java.io.FilterInputStream implements java.io.DataInput {
@@ -58020,86 +57904,84 @@
     method public final void readFully(byte[]) throws java.io.IOException;
     method public final void readFully(byte[], int, int) throws java.io.IOException;
     method public final int readInt() throws java.io.IOException;
-    method public final deprecated java.lang.String readLine() throws java.io.IOException;
+    method @Deprecated public final String readLine() throws java.io.IOException;
     method public final long readLong() throws java.io.IOException;
     method public final short readShort() throws java.io.IOException;
-    method public final java.lang.String readUTF() throws java.io.IOException;
-    method public static final java.lang.String readUTF(java.io.DataInput) throws java.io.IOException;
+    method public final String readUTF() throws java.io.IOException;
+    method public static final String readUTF(java.io.DataInput) throws java.io.IOException;
     method public final int readUnsignedByte() throws java.io.IOException;
     method public final int readUnsignedShort() throws java.io.IOException;
     method public final int skipBytes(int) throws java.io.IOException;
   }
 
-  public abstract interface DataOutput {
-    method public abstract void write(int) throws java.io.IOException;
-    method public abstract void write(byte[]) throws java.io.IOException;
-    method public abstract void write(byte[], int, int) throws java.io.IOException;
-    method public abstract void writeBoolean(boolean) throws java.io.IOException;
-    method public abstract void writeByte(int) throws java.io.IOException;
-    method public abstract void writeBytes(java.lang.String) throws java.io.IOException;
-    method public abstract void writeChar(int) throws java.io.IOException;
-    method public abstract void writeChars(java.lang.String) throws java.io.IOException;
-    method public abstract void writeDouble(double) throws java.io.IOException;
-    method public abstract void writeFloat(float) throws java.io.IOException;
-    method public abstract void writeInt(int) throws java.io.IOException;
-    method public abstract void writeLong(long) throws java.io.IOException;
-    method public abstract void writeShort(int) throws java.io.IOException;
-    method public abstract void writeUTF(java.lang.String) throws java.io.IOException;
+  public interface DataOutput {
+    method public void write(int) throws java.io.IOException;
+    method public void write(byte[]) throws java.io.IOException;
+    method public void write(byte[], int, int) throws java.io.IOException;
+    method public void writeBoolean(boolean) throws java.io.IOException;
+    method public void writeByte(int) throws java.io.IOException;
+    method public void writeBytes(String) throws java.io.IOException;
+    method public void writeChar(int) throws java.io.IOException;
+    method public void writeChars(String) throws java.io.IOException;
+    method public void writeDouble(double) throws java.io.IOException;
+    method public void writeFloat(float) throws java.io.IOException;
+    method public void writeInt(int) throws java.io.IOException;
+    method public void writeLong(long) throws java.io.IOException;
+    method public void writeShort(int) throws java.io.IOException;
+    method public void writeUTF(String) throws java.io.IOException;
   }
 
   public class DataOutputStream extends java.io.FilterOutputStream implements java.io.DataOutput {
     ctor public DataOutputStream(java.io.OutputStream);
     method public final int size();
-    method public synchronized void write(int) throws java.io.IOException;
-    method public synchronized void write(byte[], int, int) throws java.io.IOException;
     method public final void writeBoolean(boolean) throws java.io.IOException;
     method public final void writeByte(int) throws java.io.IOException;
-    method public final void writeBytes(java.lang.String) throws java.io.IOException;
+    method public final void writeBytes(String) throws java.io.IOException;
     method public final void writeChar(int) throws java.io.IOException;
-    method public final void writeChars(java.lang.String) throws java.io.IOException;
+    method public final void writeChars(String) throws java.io.IOException;
     method public final void writeDouble(double) throws java.io.IOException;
     method public final void writeFloat(float) throws java.io.IOException;
     method public final void writeInt(int) throws java.io.IOException;
     method public final void writeLong(long) throws java.io.IOException;
     method public final void writeShort(int) throws java.io.IOException;
-    method public final void writeUTF(java.lang.String) throws java.io.IOException;
+    method public final void writeUTF(String) throws java.io.IOException;
     field protected int written;
   }
 
   public class EOFException extends java.io.IOException {
     ctor public EOFException();
-    ctor public EOFException(java.lang.String);
+    ctor public EOFException(String);
   }
 
-  public abstract interface Externalizable implements java.io.Serializable {
-    method public abstract void readExternal(java.io.ObjectInput) throws java.lang.ClassNotFoundException, java.io.IOException;
-    method public abstract void writeExternal(java.io.ObjectOutput) throws java.io.IOException;
+  public interface Externalizable extends java.io.Serializable {
+    method public void readExternal(java.io.ObjectInput) throws java.lang.ClassNotFoundException, java.io.IOException;
+    method public void writeExternal(java.io.ObjectOutput) throws java.io.IOException;
   }
 
-  public class File implements java.lang.Comparable java.io.Serializable {
-    ctor public File(java.lang.String);
-    ctor public File(java.lang.String, java.lang.String);
-    ctor public File(java.io.File, java.lang.String);
-    ctor public File(java.net.URI);
+  public class File implements java.lang.Comparable<java.io.File> java.io.Serializable {
+    ctor public File(@NonNull String);
+    ctor public File(@Nullable String, @NonNull String);
+    ctor public File(@Nullable java.io.File, @NonNull String);
+    ctor public File(@NonNull java.net.URI);
     method public boolean canExecute();
     method public boolean canRead();
     method public boolean canWrite();
-    method public int compareTo(java.io.File);
+    method public int compareTo(@NonNull java.io.File);
     method public boolean createNewFile() throws java.io.IOException;
-    method public static java.io.File createTempFile(java.lang.String, java.lang.String, java.io.File) throws java.io.IOException;
-    method public static java.io.File createTempFile(java.lang.String, java.lang.String) throws java.io.IOException;
+    method @NonNull public static java.io.File createTempFile(@NonNull String, @Nullable String, @Nullable java.io.File) throws java.io.IOException;
+    method @NonNull public static java.io.File createTempFile(@NonNull String, @Nullable String) throws java.io.IOException;
     method public boolean delete();
     method public void deleteOnExit();
     method public boolean exists();
-    method public java.io.File getAbsoluteFile();
-    method public java.lang.String getAbsolutePath();
-    method public java.io.File getCanonicalFile() throws java.io.IOException;
-    method public java.lang.String getCanonicalPath() throws java.io.IOException;
+    method @NonNull public java.io.File getAbsoluteFile();
+    method @NonNull public String getAbsolutePath();
+    method @NonNull public java.io.File getCanonicalFile() throws java.io.IOException;
+    method @NonNull public String getCanonicalPath() throws java.io.IOException;
     method public long getFreeSpace();
-    method public java.lang.String getName();
-    method public java.lang.String getParent();
-    method public java.io.File getParentFile();
-    method public java.lang.String getPath();
+    method @NonNull public String getName();
+    method @Nullable public String getParent();
+    method @Nullable public java.io.File getParentFile();
+    method @NonNull public String getPath();
     method public long getTotalSpace();
     method public long getUsableSpace();
     method public boolean isAbsolute();
@@ -58108,15 +57990,15 @@
     method public boolean isHidden();
     method public long lastModified();
     method public long length();
-    method public java.lang.String[] list();
-    method public java.lang.String[] list(java.io.FilenameFilter);
+    method public String[] list();
+    method public String[] list(@Nullable java.io.FilenameFilter);
     method public java.io.File[] listFiles();
-    method public java.io.File[] listFiles(java.io.FilenameFilter);
-    method public java.io.File[] listFiles(java.io.FileFilter);
+    method public java.io.File[] listFiles(@Nullable java.io.FilenameFilter);
+    method public java.io.File[] listFiles(@Nullable java.io.FileFilter);
     method public static java.io.File[] listRoots();
     method public boolean mkdir();
     method public boolean mkdirs();
-    method public boolean renameTo(java.io.File);
+    method public boolean renameTo(@NonNull java.io.File);
     method public boolean setExecutable(boolean, boolean);
     method public boolean setExecutable(boolean);
     method public boolean setLastModified(long);
@@ -58125,12 +58007,12 @@
     method public boolean setReadable(boolean);
     method public boolean setWritable(boolean, boolean);
     method public boolean setWritable(boolean);
-    method public java.nio.file.Path toPath();
-    method public java.net.URI toURI();
-    method public deprecated java.net.URL toURL() throws java.net.MalformedURLException;
-    field public static final java.lang.String pathSeparator;
+    method @NonNull public java.nio.file.Path toPath();
+    method @NonNull public java.net.URI toURI();
+    method @Deprecated @NonNull public java.net.URL toURL() throws java.net.MalformedURLException;
+    field @NonNull public static final String pathSeparator;
     field public static final char pathSeparatorChar;
-    field public static final java.lang.String separator;
+    field @NonNull public static final String separator;
     field public static final char separatorChar;
   }
 
@@ -58143,12 +58025,12 @@
     field public static final java.io.FileDescriptor out;
   }
 
-  public abstract interface FileFilter {
-    method public abstract boolean accept(java.io.File);
+  @java.lang.FunctionalInterface public interface FileFilter {
+    method public boolean accept(java.io.File);
   }
 
   public class FileInputStream extends java.io.InputStream {
-    ctor public FileInputStream(java.lang.String) throws java.io.FileNotFoundException;
+    ctor public FileInputStream(String) throws java.io.FileNotFoundException;
     ctor public FileInputStream(java.io.File) throws java.io.FileNotFoundException;
     ctor public FileInputStream(java.io.FileDescriptor);
     method protected void finalize() throws java.io.IOException;
@@ -58159,12 +58041,12 @@
 
   public class FileNotFoundException extends java.io.IOException {
     ctor public FileNotFoundException();
-    ctor public FileNotFoundException(java.lang.String);
+    ctor public FileNotFoundException(String);
   }
 
   public class FileOutputStream extends java.io.OutputStream {
-    ctor public FileOutputStream(java.lang.String) throws java.io.FileNotFoundException;
-    ctor public FileOutputStream(java.lang.String, boolean) throws java.io.FileNotFoundException;
+    ctor public FileOutputStream(String) throws java.io.FileNotFoundException;
+    ctor public FileOutputStream(String, boolean) throws java.io.FileNotFoundException;
     ctor public FileOutputStream(java.io.File) throws java.io.FileNotFoundException;
     ctor public FileOutputStream(java.io.File, boolean) throws java.io.FileNotFoundException;
     ctor public FileOutputStream(java.io.FileDescriptor);
@@ -58175,27 +58057,27 @@
   }
 
   public final class FilePermission extends java.security.Permission implements java.io.Serializable {
-    ctor public FilePermission(java.lang.String, java.lang.String);
-    method public java.lang.String getActions();
+    ctor public FilePermission(String, String);
+    method public String getActions();
     method public boolean implies(java.security.Permission);
   }
 
   public class FileReader extends java.io.InputStreamReader {
-    ctor public FileReader(java.lang.String) throws java.io.FileNotFoundException;
+    ctor public FileReader(String) throws java.io.FileNotFoundException;
     ctor public FileReader(java.io.File) throws java.io.FileNotFoundException;
     ctor public FileReader(java.io.FileDescriptor);
   }
 
   public class FileWriter extends java.io.OutputStreamWriter {
-    ctor public FileWriter(java.lang.String) throws java.io.IOException;
-    ctor public FileWriter(java.lang.String, boolean) throws java.io.IOException;
+    ctor public FileWriter(String) throws java.io.IOException;
+    ctor public FileWriter(String, boolean) throws java.io.IOException;
     ctor public FileWriter(java.io.File) throws java.io.IOException;
     ctor public FileWriter(java.io.File, boolean) throws java.io.IOException;
     ctor public FileWriter(java.io.FileDescriptor);
   }
 
-  public abstract interface FilenameFilter {
-    method public abstract boolean accept(java.io.File, java.lang.String);
+  @java.lang.FunctionalInterface public interface FilenameFilter {
+    method public boolean accept(java.io.File, String);
   }
 
   public class FilterInputStream extends java.io.InputStream {
@@ -58225,66 +58107,64 @@
     field protected java.io.Writer out;
   }
 
-  public abstract interface Flushable {
-    method public abstract void flush() throws java.io.IOException;
+  public interface Flushable {
+    method public void flush() throws java.io.IOException;
   }
 
   public class IOError extends java.lang.Error {
-    ctor public IOError(java.lang.Throwable);
+    ctor public IOError(Throwable);
   }
 
   public class IOException extends java.lang.Exception {
     ctor public IOException();
-    ctor public IOException(java.lang.String);
-    ctor public IOException(java.lang.String, java.lang.Throwable);
-    ctor public IOException(java.lang.Throwable);
+    ctor public IOException(String);
+    ctor public IOException(String, Throwable);
+    ctor public IOException(Throwable);
   }
 
   public abstract class InputStream implements java.io.Closeable {
     ctor public InputStream();
     method public int available() throws java.io.IOException;
     method public void close() throws java.io.IOException;
-    method public synchronized void mark(int);
+    method public void mark(int);
     method public boolean markSupported();
     method public abstract int read() throws java.io.IOException;
     method public int read(byte[]) throws java.io.IOException;
     method public int read(byte[], int, int) throws java.io.IOException;
-    method public synchronized void reset() throws java.io.IOException;
+    method public void reset() throws java.io.IOException;
     method public long skip(long) throws java.io.IOException;
   }
 
   public class InputStreamReader extends java.io.Reader {
     ctor public InputStreamReader(java.io.InputStream);
-    ctor public InputStreamReader(java.io.InputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
+    ctor public InputStreamReader(java.io.InputStream, String) throws java.io.UnsupportedEncodingException;
     ctor public InputStreamReader(java.io.InputStream, java.nio.charset.Charset);
     ctor public InputStreamReader(java.io.InputStream, java.nio.charset.CharsetDecoder);
     method public void close() throws java.io.IOException;
-    method public java.lang.String getEncoding();
+    method public String getEncoding();
     method public int read(char[], int, int) throws java.io.IOException;
   }
 
   public class InterruptedIOException extends java.io.IOException {
     ctor public InterruptedIOException();
-    ctor public InterruptedIOException(java.lang.String);
+    ctor public InterruptedIOException(String);
     field public int bytesTransferred;
   }
 
   public class InvalidClassException extends java.io.ObjectStreamException {
-    ctor public InvalidClassException(java.lang.String);
-    ctor public InvalidClassException(java.lang.String, java.lang.String);
-    field public java.lang.String classname;
+    ctor public InvalidClassException(String);
+    ctor public InvalidClassException(String, String);
+    field public String classname;
   }
 
   public class InvalidObjectException extends java.io.ObjectStreamException {
-    ctor public InvalidObjectException(java.lang.String);
+    ctor public InvalidObjectException(String);
   }
 
-  public deprecated class LineNumberInputStream extends java.io.FilterInputStream {
-    ctor public LineNumberInputStream(java.io.InputStream);
-    method public int getLineNumber();
-    method public void mark(int);
-    method public void reset() throws java.io.IOException;
-    method public void setLineNumber(int);
+  @Deprecated public class LineNumberInputStream extends java.io.FilterInputStream {
+    ctor @Deprecated public LineNumberInputStream(java.io.InputStream);
+    method @Deprecated public int getLineNumber();
+    method @Deprecated public void setLineNumber(int);
   }
 
   public class LineNumberReader extends java.io.BufferedReader {
@@ -58295,23 +58175,23 @@
   }
 
   public class NotActiveException extends java.io.ObjectStreamException {
-    ctor public NotActiveException(java.lang.String);
+    ctor public NotActiveException(String);
     ctor public NotActiveException();
   }
 
   public class NotSerializableException extends java.io.ObjectStreamException {
-    ctor public NotSerializableException(java.lang.String);
+    ctor public NotSerializableException(String);
     ctor public NotSerializableException();
   }
 
-  public abstract interface ObjectInput implements java.lang.AutoCloseable java.io.DataInput {
-    method public abstract int available() throws java.io.IOException;
-    method public abstract void close() throws java.io.IOException;
-    method public abstract int read() throws java.io.IOException;
-    method public abstract int read(byte[]) throws java.io.IOException;
-    method public abstract int read(byte[], int, int) throws java.io.IOException;
-    method public abstract java.lang.Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException;
-    method public abstract long skip(long) throws java.io.IOException;
+  public interface ObjectInput extends java.io.DataInput java.lang.AutoCloseable {
+    method public int available() throws java.io.IOException;
+    method public void close() throws java.io.IOException;
+    method public int read() throws java.io.IOException;
+    method public int read(byte[]) throws java.io.IOException;
+    method public int read(byte[], int, int) throws java.io.IOException;
+    method public Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+    method public long skip(long) throws java.io.IOException;
   }
 
   public class ObjectInputStream extends java.io.InputStream implements java.io.ObjectInput java.io.ObjectStreamConstants {
@@ -58330,106 +58210,106 @@
     method public void readFully(byte[]) throws java.io.IOException;
     method public void readFully(byte[], int, int) throws java.io.IOException;
     method public int readInt() throws java.io.IOException;
-    method public deprecated java.lang.String readLine() throws java.io.IOException;
+    method @Deprecated public String readLine() throws java.io.IOException;
     method public long readLong() throws java.io.IOException;
-    method public final java.lang.Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException;
-    method protected java.lang.Object readObjectOverride() throws java.lang.ClassNotFoundException, java.io.IOException;
+    method public final Object readObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+    method protected Object readObjectOverride() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public short readShort() throws java.io.IOException;
     method protected void readStreamHeader() throws java.io.IOException, java.io.StreamCorruptedException;
-    method public java.lang.String readUTF() throws java.io.IOException;
-    method public java.lang.Object readUnshared() throws java.lang.ClassNotFoundException, java.io.IOException;
+    method public String readUTF() throws java.io.IOException;
+    method public Object readUnshared() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public int readUnsignedByte() throws java.io.IOException;
     method public int readUnsignedShort() throws java.io.IOException;
     method public void registerValidation(java.io.ObjectInputValidation, int) throws java.io.InvalidObjectException, java.io.NotActiveException;
-    method protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass) throws java.lang.ClassNotFoundException, java.io.IOException;
-    method protected java.lang.Object resolveObject(java.lang.Object) throws java.io.IOException;
-    method protected java.lang.Class<?> resolveProxyClass(java.lang.String[]) throws java.lang.ClassNotFoundException, java.io.IOException;
+    method protected Class<?> resolveClass(java.io.ObjectStreamClass) throws java.lang.ClassNotFoundException, java.io.IOException;
+    method protected Object resolveObject(Object) throws java.io.IOException;
+    method protected Class<?> resolveProxyClass(String[]) throws java.lang.ClassNotFoundException, java.io.IOException;
     method public int skipBytes(int) throws java.io.IOException;
   }
 
-  public static abstract class ObjectInputStream.GetField {
+  public abstract static class ObjectInputStream.GetField {
     ctor public ObjectInputStream.GetField();
-    method public abstract boolean defaulted(java.lang.String) throws java.io.IOException;
-    method public abstract boolean get(java.lang.String, boolean) throws java.io.IOException;
-    method public abstract byte get(java.lang.String, byte) throws java.io.IOException;
-    method public abstract char get(java.lang.String, char) throws java.io.IOException;
-    method public abstract short get(java.lang.String, short) throws java.io.IOException;
-    method public abstract int get(java.lang.String, int) throws java.io.IOException;
-    method public abstract long get(java.lang.String, long) throws java.io.IOException;
-    method public abstract float get(java.lang.String, float) throws java.io.IOException;
-    method public abstract double get(java.lang.String, double) throws java.io.IOException;
-    method public abstract java.lang.Object get(java.lang.String, java.lang.Object) throws java.io.IOException;
+    method public abstract boolean defaulted(String) throws java.io.IOException;
+    method public abstract boolean get(String, boolean) throws java.io.IOException;
+    method public abstract byte get(String, byte) throws java.io.IOException;
+    method public abstract char get(String, char) throws java.io.IOException;
+    method public abstract short get(String, short) throws java.io.IOException;
+    method public abstract int get(String, int) throws java.io.IOException;
+    method public abstract long get(String, long) throws java.io.IOException;
+    method public abstract float get(String, float) throws java.io.IOException;
+    method public abstract double get(String, double) throws java.io.IOException;
+    method public abstract Object get(String, Object) throws java.io.IOException;
     method public abstract java.io.ObjectStreamClass getObjectStreamClass();
   }
 
-  public abstract interface ObjectInputValidation {
-    method public abstract void validateObject() throws java.io.InvalidObjectException;
+  public interface ObjectInputValidation {
+    method public void validateObject() throws java.io.InvalidObjectException;
   }
 
-  public abstract interface ObjectOutput implements java.lang.AutoCloseable java.io.DataOutput {
-    method public abstract void close() throws java.io.IOException;
-    method public abstract void flush() throws java.io.IOException;
-    method public abstract void writeObject(java.lang.Object) throws java.io.IOException;
+  public interface ObjectOutput extends java.io.DataOutput java.lang.AutoCloseable {
+    method public void close() throws java.io.IOException;
+    method public void flush() throws java.io.IOException;
+    method public void writeObject(Object) throws java.io.IOException;
   }
 
   public class ObjectOutputStream extends java.io.OutputStream implements java.io.ObjectOutput java.io.ObjectStreamConstants {
     ctor public ObjectOutputStream(java.io.OutputStream) throws java.io.IOException;
     ctor protected ObjectOutputStream() throws java.io.IOException, java.lang.SecurityException;
-    method protected void annotateClass(java.lang.Class<?>) throws java.io.IOException;
-    method protected void annotateProxyClass(java.lang.Class<?>) throws java.io.IOException;
+    method protected void annotateClass(Class<?>) throws java.io.IOException;
+    method protected void annotateProxyClass(Class<?>) throws java.io.IOException;
     method public void defaultWriteObject() throws java.io.IOException;
     method protected void drain() throws java.io.IOException;
     method protected boolean enableReplaceObject(boolean) throws java.lang.SecurityException;
     method public java.io.ObjectOutputStream.PutField putFields() throws java.io.IOException;
-    method protected java.lang.Object replaceObject(java.lang.Object) throws java.io.IOException;
+    method protected Object replaceObject(Object) throws java.io.IOException;
     method public void reset() throws java.io.IOException;
     method public void useProtocolVersion(int) throws java.io.IOException;
     method public void write(int) throws java.io.IOException;
     method public void writeBoolean(boolean) throws java.io.IOException;
     method public void writeByte(int) throws java.io.IOException;
-    method public void writeBytes(java.lang.String) throws java.io.IOException;
+    method public void writeBytes(String) throws java.io.IOException;
     method public void writeChar(int) throws java.io.IOException;
-    method public void writeChars(java.lang.String) throws java.io.IOException;
+    method public void writeChars(String) throws java.io.IOException;
     method protected void writeClassDescriptor(java.io.ObjectStreamClass) throws java.io.IOException;
     method public void writeDouble(double) throws java.io.IOException;
     method public void writeFields() throws java.io.IOException;
     method public void writeFloat(float) throws java.io.IOException;
     method public void writeInt(int) throws java.io.IOException;
     method public void writeLong(long) throws java.io.IOException;
-    method public final void writeObject(java.lang.Object) throws java.io.IOException;
-    method protected void writeObjectOverride(java.lang.Object) throws java.io.IOException;
+    method public final void writeObject(Object) throws java.io.IOException;
+    method protected void writeObjectOverride(Object) throws java.io.IOException;
     method public void writeShort(int) throws java.io.IOException;
     method protected void writeStreamHeader() throws java.io.IOException;
-    method public void writeUTF(java.lang.String) throws java.io.IOException;
-    method public void writeUnshared(java.lang.Object) throws java.io.IOException;
+    method public void writeUTF(String) throws java.io.IOException;
+    method public void writeUnshared(Object) throws java.io.IOException;
   }
 
-  public static abstract class ObjectOutputStream.PutField {
+  public abstract static class ObjectOutputStream.PutField {
     ctor public ObjectOutputStream.PutField();
-    method public abstract void put(java.lang.String, boolean);
-    method public abstract void put(java.lang.String, byte);
-    method public abstract void put(java.lang.String, char);
-    method public abstract void put(java.lang.String, short);
-    method public abstract void put(java.lang.String, int);
-    method public abstract void put(java.lang.String, long);
-    method public abstract void put(java.lang.String, float);
-    method public abstract void put(java.lang.String, double);
-    method public abstract void put(java.lang.String, java.lang.Object);
-    method public abstract deprecated void write(java.io.ObjectOutput) throws java.io.IOException;
+    method public abstract void put(String, boolean);
+    method public abstract void put(String, byte);
+    method public abstract void put(String, char);
+    method public abstract void put(String, short);
+    method public abstract void put(String, int);
+    method public abstract void put(String, long);
+    method public abstract void put(String, float);
+    method public abstract void put(String, double);
+    method public abstract void put(String, Object);
+    method @Deprecated public abstract void write(java.io.ObjectOutput) throws java.io.IOException;
   }
 
   public class ObjectStreamClass implements java.io.Serializable {
-    method public java.lang.Class<?> forClass();
-    method public java.io.ObjectStreamField getField(java.lang.String);
+    method public Class<?> forClass();
+    method public java.io.ObjectStreamField getField(String);
     method public java.io.ObjectStreamField[] getFields();
-    method public java.lang.String getName();
+    method public String getName();
     method public long getSerialVersionUID();
-    method public static java.io.ObjectStreamClass lookup(java.lang.Class<?>);
-    method public static java.io.ObjectStreamClass lookupAny(java.lang.Class<?>);
+    method public static java.io.ObjectStreamClass lookup(Class<?>);
+    method public static java.io.ObjectStreamClass lookupAny(Class<?>);
     field public static final java.io.ObjectStreamField[] NO_FIELDS;
   }
 
-  public abstract interface ObjectStreamConstants {
+  public interface ObjectStreamConstants {
     field public static final int PROTOCOL_VERSION_1 = 1; // 0x1
     field public static final int PROTOCOL_VERSION_2 = 2; // 0x2
     field public static final byte SC_BLOCK_DATA = 8; // 0x8
@@ -58462,19 +58342,19 @@
   }
 
   public abstract class ObjectStreamException extends java.io.IOException {
-    ctor protected ObjectStreamException(java.lang.String);
+    ctor protected ObjectStreamException(String);
     ctor protected ObjectStreamException();
   }
 
-  public class ObjectStreamField implements java.lang.Comparable {
-    ctor public ObjectStreamField(java.lang.String, java.lang.Class<?>);
-    ctor public ObjectStreamField(java.lang.String, java.lang.Class<?>, boolean);
-    method public int compareTo(java.lang.Object);
-    method public java.lang.String getName();
+  public class ObjectStreamField implements java.lang.Comparable<java.lang.Object> {
+    ctor public ObjectStreamField(String, Class<?>);
+    ctor public ObjectStreamField(String, Class<?>, boolean);
+    method public int compareTo(Object);
+    method public String getName();
     method public int getOffset();
-    method public java.lang.Class<?> getType();
+    method public Class<?> getType();
     method public char getTypeCode();
-    method public java.lang.String getTypeString();
+    method public String getTypeString();
     method public boolean isPrimitive();
     method public boolean isUnshared();
     method protected void setOffset(int);
@@ -58495,13 +58375,13 @@
   }
 
   public class OutputStreamWriter extends java.io.Writer {
-    ctor public OutputStreamWriter(java.io.OutputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
+    ctor public OutputStreamWriter(java.io.OutputStream, String) throws java.io.UnsupportedEncodingException;
     ctor public OutputStreamWriter(java.io.OutputStream);
     ctor public OutputStreamWriter(java.io.OutputStream, java.nio.charset.Charset);
     ctor public OutputStreamWriter(java.io.OutputStream, java.nio.charset.CharsetEncoder);
     method public void close() throws java.io.IOException;
     method public void flush() throws java.io.IOException;
-    method public java.lang.String getEncoding();
+    method public String getEncoding();
     method public void write(char[], int, int) throws java.io.IOException;
   }
 
@@ -58510,11 +58390,9 @@
     ctor public PipedInputStream(java.io.PipedOutputStream, int) throws java.io.IOException;
     ctor public PipedInputStream();
     ctor public PipedInputStream(int);
-    method public synchronized int available() throws java.io.IOException;
     method public void connect(java.io.PipedOutputStream) throws java.io.IOException;
-    method public synchronized int read() throws java.io.IOException;
-    method public synchronized int read(byte[], int, int) throws java.io.IOException;
-    method protected synchronized void receive(int) throws java.io.IOException;
+    method public int read() throws java.io.IOException;
+    method protected void receive(int) throws java.io.IOException;
     field protected static final int PIPE_SIZE = 1024; // 0x400
     field protected byte[] buffer;
     field protected int in;
@@ -58524,8 +58402,7 @@
   public class PipedOutputStream extends java.io.OutputStream {
     ctor public PipedOutputStream(java.io.PipedInputStream) throws java.io.IOException;
     ctor public PipedOutputStream();
-    method public synchronized void connect(java.io.PipedInputStream) throws java.io.IOException;
-    method public synchronized void flush() throws java.io.IOException;
+    method public void connect(java.io.PipedInputStream) throws java.io.IOException;
     method public void write(int) throws java.io.IOException;
   }
 
@@ -58536,37 +58413,35 @@
     ctor public PipedReader(int);
     method public void close() throws java.io.IOException;
     method public void connect(java.io.PipedWriter) throws java.io.IOException;
-    method public synchronized int read() throws java.io.IOException;
-    method public synchronized int read(char[], int, int) throws java.io.IOException;
-    method public synchronized boolean ready() throws java.io.IOException;
+    method public int read(char[], int, int) throws java.io.IOException;
   }
 
   public class PipedWriter extends java.io.Writer {
     ctor public PipedWriter(java.io.PipedReader) throws java.io.IOException;
     ctor public PipedWriter();
     method public void close() throws java.io.IOException;
-    method public synchronized void connect(java.io.PipedReader) throws java.io.IOException;
-    method public synchronized void flush() throws java.io.IOException;
+    method public void connect(java.io.PipedReader) throws java.io.IOException;
+    method public void flush() throws java.io.IOException;
     method public void write(char[], int, int) throws java.io.IOException;
   }
 
   public class PrintStream extends java.io.FilterOutputStream implements java.lang.Appendable java.io.Closeable {
     ctor public PrintStream(java.io.OutputStream);
     ctor public PrintStream(java.io.OutputStream, boolean);
-    ctor public PrintStream(java.io.OutputStream, boolean, java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public PrintStream(java.lang.String) throws java.io.FileNotFoundException;
-    ctor public PrintStream(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public PrintStream(java.io.OutputStream, boolean, String) throws java.io.UnsupportedEncodingException;
+    ctor public PrintStream(String) throws java.io.FileNotFoundException;
+    ctor public PrintStream(String, String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     ctor public PrintStream(java.io.File) throws java.io.FileNotFoundException;
-    ctor public PrintStream(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
-    method public java.io.PrintStream append(java.lang.CharSequence);
-    method public java.io.PrintStream append(java.lang.CharSequence, int, int);
+    ctor public PrintStream(java.io.File, String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    method public java.io.PrintStream append(CharSequence);
+    method public java.io.PrintStream append(CharSequence, int, int);
     method public java.io.PrintStream append(char);
     method public boolean checkError();
     method protected void clearError();
     method public void close();
     method public void flush();
-    method public java.io.PrintStream format(java.lang.String, java.lang.Object...);
-    method public java.io.PrintStream format(java.util.Locale, java.lang.String, java.lang.Object...);
+    method public java.io.PrintStream format(String, java.lang.Object...);
+    method public java.io.PrintStream format(java.util.Locale, String, java.lang.Object...);
     method public void print(boolean);
     method public void print(char);
     method public void print(int);
@@ -58574,10 +58449,10 @@
     method public void print(float);
     method public void print(double);
     method public void print(char[]);
-    method public void print(java.lang.String);
-    method public void print(java.lang.Object);
-    method public java.io.PrintStream printf(java.lang.String, java.lang.Object...);
-    method public java.io.PrintStream printf(java.util.Locale, java.lang.String, java.lang.Object...);
+    method public void print(String);
+    method public void print(Object);
+    method public java.io.PrintStream printf(String, java.lang.Object...);
+    method public java.io.PrintStream printf(java.util.Locale, String, java.lang.Object...);
     method public void println();
     method public void println(boolean);
     method public void println(char);
@@ -58586,31 +58461,31 @@
     method public void println(float);
     method public void println(double);
     method public void println(char[]);
-    method public void println(java.lang.String);
-    method public void println(java.lang.Object);
+    method public void println(String);
+    method public void println(Object);
     method protected void setError();
     method public void write(int);
     method public void write(byte[], int, int);
   }
 
   public class PrintWriter extends java.io.Writer {
-    ctor public PrintWriter(java.io.Writer);
-    ctor public PrintWriter(java.io.Writer, boolean);
-    ctor public PrintWriter(java.io.OutputStream);
-    ctor public PrintWriter(java.io.OutputStream, boolean);
-    ctor public PrintWriter(java.lang.String) throws java.io.FileNotFoundException;
-    ctor public PrintWriter(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
-    ctor public PrintWriter(java.io.File) throws java.io.FileNotFoundException;
-    ctor public PrintWriter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
-    method public java.io.PrintWriter append(java.lang.CharSequence);
-    method public java.io.PrintWriter append(java.lang.CharSequence, int, int);
-    method public java.io.PrintWriter append(char);
+    ctor public PrintWriter(@NonNull java.io.Writer);
+    ctor public PrintWriter(@NonNull java.io.Writer, boolean);
+    ctor public PrintWriter(@NonNull java.io.OutputStream);
+    ctor public PrintWriter(@NonNull java.io.OutputStream, boolean);
+    ctor public PrintWriter(@NonNull String) throws java.io.FileNotFoundException;
+    ctor public PrintWriter(@NonNull String, @NonNull String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public PrintWriter(@NonNull java.io.File) throws java.io.FileNotFoundException;
+    ctor public PrintWriter(@NonNull java.io.File, @NonNull String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    method @NonNull public java.io.PrintWriter append(@Nullable CharSequence);
+    method @NonNull public java.io.PrintWriter append(@Nullable CharSequence, int, int);
+    method @NonNull public java.io.PrintWriter append(char);
     method public boolean checkError();
     method protected void clearError();
     method public void close();
     method public void flush();
-    method public java.io.PrintWriter format(java.lang.String, java.lang.Object...);
-    method public java.io.PrintWriter format(java.util.Locale, java.lang.String, java.lang.Object...);
+    method @NonNull public java.io.PrintWriter format(@NonNull String, java.lang.Object...);
+    method @NonNull public java.io.PrintWriter format(@Nullable java.util.Locale, @NonNull String, java.lang.Object...);
     method public void print(boolean);
     method public void print(char);
     method public void print(int);
@@ -58618,10 +58493,10 @@
     method public void print(float);
     method public void print(double);
     method public void print(char[]);
-    method public void print(java.lang.String);
-    method public void print(java.lang.Object);
-    method public java.io.PrintWriter printf(java.lang.String, java.lang.Object...);
-    method public java.io.PrintWriter printf(java.util.Locale, java.lang.String, java.lang.Object...);
+    method public void print(@Nullable String);
+    method public void print(@Nullable Object);
+    method @NonNull public java.io.PrintWriter printf(@NonNull String, java.lang.Object...);
+    method @NonNull public java.io.PrintWriter printf(@Nullable java.util.Locale, @NonNull String, java.lang.Object...);
     method public void println();
     method public void println(boolean);
     method public void println(char);
@@ -58630,21 +58505,20 @@
     method public void println(float);
     method public void println(double);
     method public void println(char[]);
-    method public void println(java.lang.String);
-    method public void println(java.lang.Object);
+    method public void println(@Nullable String);
+    method public void println(@Nullable Object);
     method protected void setError();
     method public void write(int);
     method public void write(char[], int, int);
     method public void write(char[]);
-    method public void write(java.lang.String, int, int);
-    method public void write(java.lang.String);
+    method public void write(@NonNull String, int, int);
+    method public void write(@NonNull String);
     field protected java.io.Writer out;
   }
 
   public class PushbackInputStream extends java.io.FilterInputStream {
     ctor public PushbackInputStream(java.io.InputStream, int);
     ctor public PushbackInputStream(java.io.InputStream);
-    method public synchronized void close() throws java.io.IOException;
     method public void unread(int) throws java.io.IOException;
     method public void unread(byte[], int, int) throws java.io.IOException;
     method public void unread(byte[]) throws java.io.IOException;
@@ -58661,8 +58535,8 @@
   }
 
   public class RandomAccessFile implements java.io.Closeable java.io.DataInput java.io.DataOutput {
-    ctor public RandomAccessFile(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
-    ctor public RandomAccessFile(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
+    ctor public RandomAccessFile(String, String) throws java.io.FileNotFoundException;
+    ctor public RandomAccessFile(java.io.File, String) throws java.io.FileNotFoundException;
     method public void close() throws java.io.IOException;
     method public final java.nio.channels.FileChannel getChannel();
     method public final java.io.FileDescriptor getFD() throws java.io.IOException;
@@ -58679,10 +58553,10 @@
     method public final void readFully(byte[]) throws java.io.IOException;
     method public final void readFully(byte[], int, int) throws java.io.IOException;
     method public final int readInt() throws java.io.IOException;
-    method public final java.lang.String readLine() throws java.io.IOException;
+    method public final String readLine() throws java.io.IOException;
     method public final long readLong() throws java.io.IOException;
     method public final short readShort() throws java.io.IOException;
-    method public final java.lang.String readUTF() throws java.io.IOException;
+    method public final String readUTF() throws java.io.IOException;
     method public final int readUnsignedByte() throws java.io.IOException;
     method public final int readUnsignedShort() throws java.io.IOException;
     method public void seek(long) throws java.io.IOException;
@@ -58693,20 +58567,20 @@
     method public void write(byte[], int, int) throws java.io.IOException;
     method public final void writeBoolean(boolean) throws java.io.IOException;
     method public final void writeByte(int) throws java.io.IOException;
-    method public final void writeBytes(java.lang.String) throws java.io.IOException;
+    method public final void writeBytes(String) throws java.io.IOException;
     method public final void writeChar(int) throws java.io.IOException;
-    method public final void writeChars(java.lang.String) throws java.io.IOException;
+    method public final void writeChars(String) throws java.io.IOException;
     method public final void writeDouble(double) throws java.io.IOException;
     method public final void writeFloat(float) throws java.io.IOException;
     method public final void writeInt(int) throws java.io.IOException;
     method public final void writeLong(long) throws java.io.IOException;
     method public final void writeShort(int) throws java.io.IOException;
-    method public final void writeUTF(java.lang.String) throws java.io.IOException;
+    method public final void writeUTF(String) throws java.io.IOException;
   }
 
   public abstract class Reader implements java.io.Closeable java.lang.Readable {
     ctor protected Reader();
-    ctor protected Reader(java.lang.Object);
+    ctor protected Reader(Object);
     method public void mark(int) throws java.io.IOException;
     method public boolean markSupported();
     method public int read(java.nio.CharBuffer) throws java.io.IOException;
@@ -58716,7 +58590,7 @@
     method public boolean ready() throws java.io.IOException;
     method public void reset() throws java.io.IOException;
     method public long skip(long) throws java.io.IOException;
-    field protected java.lang.Object lock;
+    field protected Object lock;
   }
 
   public class SequenceInputStream extends java.io.InputStream {
@@ -58725,21 +58599,21 @@
     method public int read() throws java.io.IOException;
   }
 
-  public abstract interface Serializable {
+  public interface Serializable {
   }
 
   public final class SerializablePermission extends java.security.BasicPermission {
-    ctor public SerializablePermission(java.lang.String);
-    ctor public SerializablePermission(java.lang.String, java.lang.String);
+    ctor public SerializablePermission(String);
+    ctor public SerializablePermission(String, String);
   }
 
   public class StreamCorruptedException extends java.io.ObjectStreamException {
-    ctor public StreamCorruptedException(java.lang.String);
+    ctor public StreamCorruptedException(String);
     ctor public StreamCorruptedException();
   }
 
   public class StreamTokenizer {
-    ctor public deprecated StreamTokenizer(java.io.InputStream);
+    ctor @Deprecated public StreamTokenizer(java.io.InputStream);
     ctor public StreamTokenizer(java.io.Reader);
     method public void commentChar(int);
     method public void eolIsSignificant(boolean);
@@ -58761,24 +58635,24 @@
     field public static final int TT_NUMBER = -2; // 0xfffffffe
     field public static final int TT_WORD = -3; // 0xfffffffd
     field public double nval;
-    field public java.lang.String sval;
+    field public String sval;
     field public int ttype;
   }
 
-  public deprecated class StringBufferInputStream extends java.io.InputStream {
-    ctor public StringBufferInputStream(java.lang.String);
-    method public synchronized int available();
-    method public synchronized int read();
-    method public synchronized int read(byte[], int, int);
-    method public synchronized void reset();
-    method public synchronized long skip(long);
-    field protected java.lang.String buffer;
-    field protected int count;
-    field protected int pos;
+  @Deprecated public class StringBufferInputStream extends java.io.InputStream {
+    ctor @Deprecated public StringBufferInputStream(String);
+    method @Deprecated public int available();
+    method @Deprecated public int read();
+    method @Deprecated public int read(byte[], int, int);
+    method @Deprecated public void reset();
+    method @Deprecated public long skip(long);
+    field @Deprecated protected String buffer;
+    field @Deprecated protected int count;
+    field @Deprecated protected int pos;
   }
 
   public class StringReader extends java.io.Reader {
-    ctor public StringReader(java.lang.String);
+    ctor public StringReader(String);
     method public void close();
     method public int read(char[], int, int) throws java.io.IOException;
   }
@@ -58786,56 +58660,55 @@
   public class StringWriter extends java.io.Writer {
     ctor public StringWriter();
     ctor public StringWriter(int);
-    method public java.io.StringWriter append(java.lang.CharSequence);
-    method public java.io.StringWriter append(java.lang.CharSequence, int, int);
+    method public java.io.StringWriter append(CharSequence);
+    method public java.io.StringWriter append(CharSequence, int, int);
     method public java.io.StringWriter append(char);
     method public void close() throws java.io.IOException;
     method public void flush();
-    method public java.lang.StringBuffer getBuffer();
+    method public StringBuffer getBuffer();
     method public void write(int);
     method public void write(char[], int, int);
-    method public void write(java.lang.String);
-    method public void write(java.lang.String, int, int);
+    method public void write(String);
+    method public void write(String, int, int);
   }
 
   public class SyncFailedException extends java.io.IOException {
-    ctor public SyncFailedException(java.lang.String);
+    ctor public SyncFailedException(String);
   }
 
   public class UTFDataFormatException extends java.io.IOException {
     ctor public UTFDataFormatException();
-    ctor public UTFDataFormatException(java.lang.String);
+    ctor public UTFDataFormatException(String);
   }
 
   public class UncheckedIOException extends java.lang.RuntimeException {
-    ctor public UncheckedIOException(java.lang.String, java.io.IOException);
+    ctor public UncheckedIOException(String, java.io.IOException);
     ctor public UncheckedIOException(java.io.IOException);
     method public java.io.IOException getCause();
   }
 
   public class UnsupportedEncodingException extends java.io.IOException {
     ctor public UnsupportedEncodingException();
-    ctor public UnsupportedEncodingException(java.lang.String);
+    ctor public UnsupportedEncodingException(String);
   }
 
   public class WriteAbortedException extends java.io.ObjectStreamException {
-    ctor public WriteAbortedException(java.lang.String, java.lang.Exception);
-    method public java.lang.Throwable getCause();
-    field public java.lang.Exception detail;
+    ctor public WriteAbortedException(String, Exception);
+    field public Exception detail;
   }
 
   public abstract class Writer implements java.lang.Appendable java.io.Closeable java.io.Flushable {
     ctor protected Writer();
-    ctor protected Writer(java.lang.Object);
-    method public java.io.Writer append(java.lang.CharSequence) throws java.io.IOException;
-    method public java.io.Writer append(java.lang.CharSequence, int, int) throws java.io.IOException;
+    ctor protected Writer(Object);
+    method public java.io.Writer append(CharSequence) throws java.io.IOException;
+    method public java.io.Writer append(CharSequence, int, int) throws java.io.IOException;
     method public java.io.Writer append(char) throws java.io.IOException;
     method public void write(int) throws java.io.IOException;
     method public void write(char[]) throws java.io.IOException;
     method public abstract void write(char[], int, int) throws java.io.IOException;
-    method public void write(java.lang.String) throws java.io.IOException;
-    method public void write(java.lang.String, int, int) throws java.io.IOException;
-    field protected java.lang.Object lock;
+    method public void write(String) throws java.io.IOException;
+    method public void write(String, int, int) throws java.io.IOException;
+    field protected Object lock;
   }
 
 }
@@ -58844,129 +58717,129 @@
 
   public class AbstractMethodError extends java.lang.IncompatibleClassChangeError {
     ctor public AbstractMethodError();
-    ctor public AbstractMethodError(java.lang.String);
+    ctor public AbstractMethodError(String);
   }
 
-  public abstract interface Appendable {
-    method public abstract java.lang.Appendable append(java.lang.CharSequence) throws java.io.IOException;
-    method public abstract java.lang.Appendable append(java.lang.CharSequence, int, int) throws java.io.IOException;
-    method public abstract java.lang.Appendable append(char) throws java.io.IOException;
+  public interface Appendable {
+    method @NonNull public Appendable append(@Nullable CharSequence) throws java.io.IOException;
+    method @NonNull public Appendable append(@Nullable CharSequence, int, int) throws java.io.IOException;
+    method @NonNull public Appendable append(char) throws java.io.IOException;
   }
 
   public class ArithmeticException extends java.lang.RuntimeException {
     ctor public ArithmeticException();
-    ctor public ArithmeticException(java.lang.String);
+    ctor public ArithmeticException(String);
   }
 
   public class ArrayIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
     ctor public ArrayIndexOutOfBoundsException();
     ctor public ArrayIndexOutOfBoundsException(int);
-    ctor public ArrayIndexOutOfBoundsException(java.lang.String);
+    ctor public ArrayIndexOutOfBoundsException(String);
   }
 
   public class ArrayStoreException extends java.lang.RuntimeException {
     ctor public ArrayStoreException();
-    ctor public ArrayStoreException(java.lang.String);
+    ctor public ArrayStoreException(String);
   }
 
   public class AssertionError extends java.lang.Error {
     ctor public AssertionError();
-    ctor public AssertionError(java.lang.Object);
+    ctor public AssertionError(Object);
     ctor public AssertionError(boolean);
     ctor public AssertionError(char);
     ctor public AssertionError(int);
     ctor public AssertionError(long);
     ctor public AssertionError(float);
     ctor public AssertionError(double);
-    ctor public AssertionError(java.lang.String, java.lang.Throwable);
+    ctor public AssertionError(String, Throwable);
   }
 
-  public abstract interface AutoCloseable {
-    method public abstract void close() throws java.lang.Exception;
+  public interface AutoCloseable {
+    method public void close() throws java.lang.Exception;
   }
 
-  public final class Boolean implements java.lang.Comparable java.io.Serializable {
+  public final class Boolean implements java.lang.Comparable<java.lang.Boolean> java.io.Serializable {
     ctor public Boolean(boolean);
-    ctor public Boolean(java.lang.String);
+    ctor public Boolean(@Nullable String);
     method public boolean booleanValue();
     method public static int compare(boolean, boolean);
-    method public int compareTo(java.lang.Boolean);
-    method public static boolean getBoolean(java.lang.String);
+    method public int compareTo(@NonNull Boolean);
+    method public static boolean getBoolean(@NonNull String);
     method public static int hashCode(boolean);
     method public static boolean logicalAnd(boolean, boolean);
     method public static boolean logicalOr(boolean, boolean);
     method public static boolean logicalXor(boolean, boolean);
-    method public static boolean parseBoolean(java.lang.String);
-    method public static java.lang.String toString(boolean);
-    method public static java.lang.Boolean valueOf(boolean);
-    method public static java.lang.Boolean valueOf(java.lang.String);
-    field public static final java.lang.Boolean FALSE;
-    field public static final java.lang.Boolean TRUE;
-    field public static final java.lang.Class<java.lang.Boolean> TYPE;
+    method public static boolean parseBoolean(@Nullable String);
+    method @NonNull public static String toString(boolean);
+    method @NonNull public static Boolean valueOf(boolean);
+    method @NonNull public static Boolean valueOf(@Nullable String);
+    field public static final Boolean FALSE;
+    field public static final Boolean TRUE;
+    field public static final Class<java.lang.Boolean> TYPE;
   }
 
   public class BootstrapMethodError extends java.lang.LinkageError {
     ctor public BootstrapMethodError();
-    ctor public BootstrapMethodError(java.lang.String);
-    ctor public BootstrapMethodError(java.lang.String, java.lang.Throwable);
-    ctor public BootstrapMethodError(java.lang.Throwable);
+    ctor public BootstrapMethodError(String);
+    ctor public BootstrapMethodError(String, Throwable);
+    ctor public BootstrapMethodError(Throwable);
   }
 
-  public final class Byte extends java.lang.Number implements java.lang.Comparable {
+  public final class Byte extends java.lang.Number implements java.lang.Comparable<java.lang.Byte> {
     ctor public Byte(byte);
-    ctor public Byte(java.lang.String) throws java.lang.NumberFormatException;
+    ctor public Byte(@NonNull String) throws java.lang.NumberFormatException;
     method public static int compare(byte, byte);
-    method public int compareTo(java.lang.Byte);
-    method public static java.lang.Byte decode(java.lang.String) throws java.lang.NumberFormatException;
+    method public int compareTo(@NonNull Byte);
+    method @NonNull public static Byte decode(@NonNull String) throws java.lang.NumberFormatException;
     method public double doubleValue();
     method public float floatValue();
     method public static int hashCode(byte);
     method public int intValue();
     method public long longValue();
-    method public static byte parseByte(java.lang.String, int) throws java.lang.NumberFormatException;
-    method public static byte parseByte(java.lang.String) throws java.lang.NumberFormatException;
-    method public static java.lang.String toString(byte);
+    method public static byte parseByte(@NonNull String, int) throws java.lang.NumberFormatException;
+    method public static byte parseByte(@NonNull String) throws java.lang.NumberFormatException;
+    method @NonNull public static String toString(byte);
     method public static int toUnsignedInt(byte);
     method public static long toUnsignedLong(byte);
-    method public static java.lang.Byte valueOf(byte);
-    method public static java.lang.Byte valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
-    method public static java.lang.Byte valueOf(java.lang.String) throws java.lang.NumberFormatException;
+    method @NonNull public static Byte valueOf(byte);
+    method @NonNull public static Byte valueOf(@NonNull String, int) throws java.lang.NumberFormatException;
+    method @NonNull public static Byte valueOf(@NonNull String) throws java.lang.NumberFormatException;
     field public static final int BYTES = 1; // 0x1
     field public static final byte MAX_VALUE = 127; // 0x7f
     field public static final byte MIN_VALUE = -128; // 0xffffff80
     field public static final int SIZE = 8; // 0x8
-    field public static final java.lang.Class<java.lang.Byte> TYPE;
+    field public static final Class<java.lang.Byte> TYPE;
   }
 
-  public abstract interface CharSequence {
-    method public abstract char charAt(int);
-    method public default java.util.stream.IntStream chars();
-    method public default java.util.stream.IntStream codePoints();
-    method public abstract int length();
-    method public abstract java.lang.CharSequence subSequence(int, int);
-    method public abstract java.lang.String toString();
+  public interface CharSequence {
+    method public char charAt(int);
+    method @NonNull public default java.util.stream.IntStream chars();
+    method @NonNull public default java.util.stream.IntStream codePoints();
+    method public int length();
+    method @NonNull public CharSequence subSequence(int, int);
+    method @NonNull public String toString();
   }
 
-  public final class Character implements java.lang.Comparable java.io.Serializable {
+  public final class Character implements java.lang.Comparable<java.lang.Character> java.io.Serializable {
     ctor public Character(char);
     method public static int charCount(int);
     method public char charValue();
-    method public static int codePointAt(java.lang.CharSequence, int);
+    method public static int codePointAt(@NonNull CharSequence, int);
     method public static int codePointAt(char[], int);
     method public static int codePointAt(char[], int, int);
-    method public static int codePointBefore(java.lang.CharSequence, int);
+    method public static int codePointBefore(@NonNull CharSequence, int);
     method public static int codePointBefore(char[], int);
     method public static int codePointBefore(char[], int, int);
-    method public static int codePointCount(java.lang.CharSequence, int, int);
+    method public static int codePointCount(@NonNull CharSequence, int, int);
     method public static int codePointCount(char[], int, int);
     method public static int compare(char, char);
-    method public int compareTo(java.lang.Character);
+    method public int compareTo(@NonNull Character);
     method public static int digit(char, int);
     method public static int digit(int, int);
     method public static char forDigit(int, int);
     method public static byte getDirectionality(char);
     method public static byte getDirectionality(int);
-    method public static java.lang.String getName(int);
+    method @Nullable public static String getName(int);
     method public static int getNumericValue(char);
     method public static int getNumericValue(int);
     method public static int getType(char);
@@ -58989,8 +58862,8 @@
     method public static boolean isJavaIdentifierPart(int);
     method public static boolean isJavaIdentifierStart(char);
     method public static boolean isJavaIdentifierStart(int);
-    method public static deprecated boolean isJavaLetter(char);
-    method public static deprecated boolean isJavaLetterOrDigit(char);
+    method @Deprecated public static boolean isJavaLetter(char);
+    method @Deprecated public static boolean isJavaLetterOrDigit(char);
     method public static boolean isLetter(char);
     method public static boolean isLetter(int);
     method public static boolean isLetterOrDigit(char);
@@ -59000,7 +58873,7 @@
     method public static boolean isLowerCase(int);
     method public static boolean isMirrored(char);
     method public static boolean isMirrored(int);
-    method public static deprecated boolean isSpace(char);
+    method @Deprecated public static boolean isSpace(char);
     method public static boolean isSpaceChar(char);
     method public static boolean isSpaceChar(int);
     method public static boolean isSupplementaryCodePoint(int);
@@ -59018,7 +58891,7 @@
     method public static boolean isWhitespace(char);
     method public static boolean isWhitespace(int);
     method public static char lowSurrogate(int);
-    method public static int offsetByCodePoints(java.lang.CharSequence, int, int);
+    method public static int offsetByCodePoints(@NonNull CharSequence, int, int);
     method public static int offsetByCodePoints(char[], int, int, int, int);
     method public static char reverseBytes(char);
     method public static int toChars(int, char[], int);
@@ -59026,12 +58899,12 @@
     method public static int toCodePoint(char, char);
     method public static char toLowerCase(char);
     method public static int toLowerCase(int);
-    method public static java.lang.String toString(char);
+    method @NonNull public static String toString(char);
     method public static char toTitleCase(char);
     method public static int toTitleCase(int);
     method public static char toUpperCase(char);
     method public static int toUpperCase(int);
-    method public static java.lang.Character valueOf(char);
+    method @NonNull public static Character valueOf(char);
     field public static final int BYTES = 2; // 0x2
     field public static final byte COMBINING_SPACING_MARK = 8; // 0x8
     field public static final byte CONNECTOR_PUNCTUATION = 23; // 0x17
@@ -59095,22 +58968,22 @@
     field public static final byte START_PUNCTUATION = 21; // 0x15
     field public static final byte SURROGATE = 19; // 0x13
     field public static final byte TITLECASE_LETTER = 3; // 0x3
-    field public static final java.lang.Class<java.lang.Character> TYPE;
+    field public static final Class<java.lang.Character> TYPE;
     field public static final byte UNASSIGNED = 0; // 0x0
     field public static final byte UPPERCASE_LETTER = 1; // 0x1
   }
 
   public static class Character.Subset {
-    ctor protected Character.Subset(java.lang.String);
-    method public final boolean equals(java.lang.Object);
+    ctor protected Character.Subset(@NonNull String);
+    method public final boolean equals(@Nullable Object);
     method public final int hashCode();
-    method public final java.lang.String toString();
+    method @NonNull public final String toString();
   }
 
   public static final class Character.UnicodeBlock extends java.lang.Character.Subset {
-    method public static java.lang.Character.UnicodeBlock forName(java.lang.String);
-    method public static java.lang.Character.UnicodeBlock of(char);
-    method public static java.lang.Character.UnicodeBlock of(int);
+    method @NonNull public static java.lang.Character.UnicodeBlock forName(@NonNull String);
+    method @Nullable public static java.lang.Character.UnicodeBlock of(char);
+    method @Nullable public static java.lang.Character.UnicodeBlock of(int);
     field public static final java.lang.Character.UnicodeBlock AEGEAN_NUMBERS;
     field public static final java.lang.Character.UnicodeBlock ALCHEMICAL_SYMBOLS;
     field public static final java.lang.Character.UnicodeBlock ALPHABETIC_PRESENTATION_FORMS;
@@ -59303,7 +59176,7 @@
     field public static final java.lang.Character.UnicodeBlock SUPPLEMENTAL_PUNCTUATION;
     field public static final java.lang.Character.UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_A;
     field public static final java.lang.Character.UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_B;
-    field public static final deprecated java.lang.Character.UnicodeBlock SURROGATES_AREA;
+    field @Deprecated public static final java.lang.Character.UnicodeBlock SURROGATES_AREA;
     field public static final java.lang.Character.UnicodeBlock SYLOTI_NAGRI;
     field public static final java.lang.Character.UnicodeBlock SYRIAC;
     field public static final java.lang.Character.UnicodeBlock TAGALOG;
@@ -59334,11 +59207,9 @@
     field public static final java.lang.Character.UnicodeBlock YI_SYLLABLES;
   }
 
-  public static final class Character.UnicodeScript extends java.lang.Enum {
-    method public static java.lang.Character.UnicodeScript forName(java.lang.String);
-    method public static java.lang.Character.UnicodeScript of(int);
-    method public static java.lang.Character.UnicodeScript valueOf(java.lang.String);
-    method public static final java.lang.Character.UnicodeScript[] values();
+  public enum Character.UnicodeScript {
+    method @NonNull public static java.lang.Character.UnicodeScript forName(@NonNull String);
+    method @NonNull public static java.lang.Character.UnicodeScript of(int);
     enum_constant public static final java.lang.Character.UnicodeScript ARABIC;
     enum_constant public static final java.lang.Character.UnicodeScript ARMENIAN;
     enum_constant public static final java.lang.Character.UnicodeScript AVESTAN;
@@ -59445,152 +59316,151 @@
   }
 
   public final class Class<T> implements java.lang.reflect.AnnotatedElement java.lang.reflect.GenericDeclaration java.io.Serializable java.lang.reflect.Type {
-    method public <U> java.lang.Class<? extends U> asSubclass(java.lang.Class<U>);
-    method public T cast(java.lang.Object);
+    method @NonNull public <U> Class<? extends U> asSubclass(@NonNull Class<U>);
+    method @Nullable public T cast(@Nullable Object);
     method public boolean desiredAssertionStatus();
-    method public static java.lang.Class<?> forName(java.lang.String) throws java.lang.ClassNotFoundException;
-    method public static java.lang.Class<?> forName(java.lang.String, boolean, java.lang.ClassLoader) throws java.lang.ClassNotFoundException;
-    method public <A extends java.lang.annotation.Annotation> A getAnnotation(java.lang.Class<A>);
+    method @NonNull public static Class<?> forName(@NonNull String) throws java.lang.ClassNotFoundException;
+    method @NonNull public static Class<?> forName(@NonNull String, boolean, @Nullable ClassLoader) throws java.lang.ClassNotFoundException;
+    method @Nullable public <A extends java.lang.annotation.Annotation> A getAnnotation(@NonNull Class<A>);
     method public java.lang.annotation.Annotation[] getAnnotations();
-    method public <A extends java.lang.annotation.Annotation> A[] getAnnotationsByType(java.lang.Class<A>);
-    method public java.lang.String getCanonicalName();
-    method public java.lang.ClassLoader getClassLoader();
-    method public java.lang.Class<?>[] getClasses();
-    method public java.lang.Class<?> getComponentType();
-    method public java.lang.reflect.Constructor<T> getConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method @NonNull public <A extends java.lang.annotation.Annotation> A[] getAnnotationsByType(@NonNull Class<A>);
+    method @Nullable public String getCanonicalName();
+    method @Nullable public ClassLoader getClassLoader();
+    method public Class<?>[] getClasses();
+    method @Nullable public Class<?> getComponentType();
+    method @NonNull public java.lang.reflect.Constructor<T> getConstructor(Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
     method public java.lang.reflect.Constructor<?>[] getConstructors() throws java.lang.SecurityException;
-    method public <A extends java.lang.annotation.Annotation> A getDeclaredAnnotation(java.lang.Class<A>);
+    method @Nullable public <A extends java.lang.annotation.Annotation> A getDeclaredAnnotation(@NonNull Class<A>);
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
-    method public java.lang.Class<?>[] getDeclaredClasses();
-    method public java.lang.reflect.Constructor<T> getDeclaredConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method public Class<?>[] getDeclaredClasses();
+    method @NonNull public java.lang.reflect.Constructor<T> getDeclaredConstructor(Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
     method public java.lang.reflect.Constructor<?>[] getDeclaredConstructors() throws java.lang.SecurityException;
-    method public java.lang.reflect.Field getDeclaredField(java.lang.String) throws java.lang.NoSuchFieldException;
+    method @NonNull public java.lang.reflect.Field getDeclaredField(@NonNull String) throws java.lang.NoSuchFieldException;
     method public java.lang.reflect.Field[] getDeclaredFields();
-    method public java.lang.reflect.Method getDeclaredMethod(java.lang.String, java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method @NonNull public java.lang.reflect.Method getDeclaredMethod(@NonNull String, Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
     method public java.lang.reflect.Method[] getDeclaredMethods() throws java.lang.SecurityException;
-    method public java.lang.Class<?> getDeclaringClass();
-    method public java.lang.Class<?> getEnclosingClass();
-    method public java.lang.reflect.Constructor<?> getEnclosingConstructor();
-    method public java.lang.reflect.Method getEnclosingMethod();
+    method @Nullable public Class<?> getDeclaringClass();
+    method @Nullable public Class<?> getEnclosingClass();
+    method @Nullable public java.lang.reflect.Constructor<?> getEnclosingConstructor();
+    method @Nullable public java.lang.reflect.Method getEnclosingMethod();
     method public T[] getEnumConstants();
-    method public java.lang.reflect.Field getField(java.lang.String) throws java.lang.NoSuchFieldException;
+    method @NonNull public java.lang.reflect.Field getField(@NonNull String) throws java.lang.NoSuchFieldException;
     method public java.lang.reflect.Field[] getFields() throws java.lang.SecurityException;
     method public java.lang.reflect.Type[] getGenericInterfaces();
-    method public java.lang.reflect.Type getGenericSuperclass();
-    method public java.lang.Class<?>[] getInterfaces();
-    method public java.lang.reflect.Method getMethod(java.lang.String, java.lang.Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
+    method @Nullable public java.lang.reflect.Type getGenericSuperclass();
+    method public Class<?>[] getInterfaces();
+    method @NonNull public java.lang.reflect.Method getMethod(@NonNull String, Class<?>...) throws java.lang.NoSuchMethodException, java.lang.SecurityException;
     method public java.lang.reflect.Method[] getMethods() throws java.lang.SecurityException;
     method public int getModifiers();
-    method public java.lang.String getName();
-    method public java.lang.Package getPackage();
-    method public java.security.ProtectionDomain getProtectionDomain();
-    method public java.net.URL getResource(java.lang.String);
-    method public java.io.InputStream getResourceAsStream(java.lang.String);
-    method public java.lang.Object[] getSigners();
-    method public java.lang.String getSimpleName();
-    method public java.lang.Class<? super T> getSuperclass();
-    method public synchronized java.lang.reflect.TypeVariable<java.lang.Class<T>>[] getTypeParameters();
+    method @NonNull public String getName();
+    method @Nullable public Package getPackage();
+    method @Nullable public java.security.ProtectionDomain getProtectionDomain();
+    method @Nullable public java.net.URL getResource(@NonNull String);
+    method @Nullable public java.io.InputStream getResourceAsStream(@NonNull String);
+    method public Object[] getSigners();
+    method @NonNull public String getSimpleName();
+    method @Nullable public Class<? super T> getSuperclass();
+    method public java.lang.reflect.TypeVariable<java.lang.Class<T>>[] getTypeParameters();
     method public boolean isAnnotation();
     method public boolean isAnonymousClass();
     method public boolean isArray();
-    method public boolean isAssignableFrom(java.lang.Class<?>);
+    method public boolean isAssignableFrom(@NonNull Class<?>);
     method public boolean isEnum();
-    method public boolean isInstance(java.lang.Object);
+    method public boolean isInstance(@Nullable Object);
     method public boolean isInterface();
     method public boolean isLocalClass();
     method public boolean isMemberClass();
     method public boolean isPrimitive();
     method public boolean isSynthetic();
-    method public T newInstance() throws java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public java.lang.String toGenericString();
+    method @NonNull public T newInstance() throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method @NonNull public String toGenericString();
   }
 
   public class ClassCastException extends java.lang.RuntimeException {
     ctor public ClassCastException();
-    ctor public ClassCastException(java.lang.String);
+    ctor public ClassCastException(String);
   }
 
   public class ClassCircularityError extends java.lang.LinkageError {
     ctor public ClassCircularityError();
-    ctor public ClassCircularityError(java.lang.String);
+    ctor public ClassCircularityError(String);
   }
 
   public class ClassFormatError extends java.lang.LinkageError {
     ctor public ClassFormatError();
-    ctor public ClassFormatError(java.lang.String);
+    ctor public ClassFormatError(String);
   }
 
   public abstract class ClassLoader {
-    ctor protected ClassLoader(java.lang.ClassLoader);
+    ctor protected ClassLoader(ClassLoader);
     ctor protected ClassLoader();
     method public void clearAssertionStatus();
-    method protected final deprecated java.lang.Class<?> defineClass(byte[], int, int) throws java.lang.ClassFormatError;
-    method protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int) throws java.lang.ClassFormatError;
-    method protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int, java.security.ProtectionDomain) throws java.lang.ClassFormatError;
-    method protected final java.lang.Class<?> defineClass(java.lang.String, java.nio.ByteBuffer, java.security.ProtectionDomain) throws java.lang.ClassFormatError;
-    method protected java.lang.Package definePackage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.net.URL) throws java.lang.IllegalArgumentException;
-    method protected java.lang.Class<?> findClass(java.lang.String) throws java.lang.ClassNotFoundException;
-    method protected java.lang.String findLibrary(java.lang.String);
-    method protected final java.lang.Class<?> findLoadedClass(java.lang.String);
-    method protected java.net.URL findResource(java.lang.String);
-    method protected java.util.Enumeration<java.net.URL> findResources(java.lang.String) throws java.io.IOException;
-    method protected final java.lang.Class<?> findSystemClass(java.lang.String) throws java.lang.ClassNotFoundException;
-    method protected java.lang.Package getPackage(java.lang.String);
-    method protected java.lang.Package[] getPackages();
-    method public final java.lang.ClassLoader getParent();
-    method public java.net.URL getResource(java.lang.String);
-    method public java.io.InputStream getResourceAsStream(java.lang.String);
-    method public java.util.Enumeration<java.net.URL> getResources(java.lang.String) throws java.io.IOException;
-    method public static java.lang.ClassLoader getSystemClassLoader();
-    method public static java.net.URL getSystemResource(java.lang.String);
-    method public static java.io.InputStream getSystemResourceAsStream(java.lang.String);
-    method public static java.util.Enumeration<java.net.URL> getSystemResources(java.lang.String) throws java.io.IOException;
-    method public java.lang.Class<?> loadClass(java.lang.String) throws java.lang.ClassNotFoundException;
-    method protected java.lang.Class<?> loadClass(java.lang.String, boolean) throws java.lang.ClassNotFoundException;
+    method @Deprecated protected final Class<?> defineClass(byte[], int, int) throws java.lang.ClassFormatError;
+    method protected final Class<?> defineClass(String, byte[], int, int) throws java.lang.ClassFormatError;
+    method protected final Class<?> defineClass(String, byte[], int, int, java.security.ProtectionDomain) throws java.lang.ClassFormatError;
+    method protected final Class<?> defineClass(String, java.nio.ByteBuffer, java.security.ProtectionDomain) throws java.lang.ClassFormatError;
+    method protected Package definePackage(String, String, String, String, String, String, String, java.net.URL) throws java.lang.IllegalArgumentException;
+    method protected Class<?> findClass(String) throws java.lang.ClassNotFoundException;
+    method protected String findLibrary(String);
+    method protected final Class<?> findLoadedClass(String);
+    method protected java.net.URL findResource(String);
+    method protected java.util.Enumeration<java.net.URL> findResources(String) throws java.io.IOException;
+    method protected final Class<?> findSystemClass(String) throws java.lang.ClassNotFoundException;
+    method protected Package getPackage(String);
+    method protected Package[] getPackages();
+    method public final ClassLoader getParent();
+    method public java.net.URL getResource(String);
+    method public java.io.InputStream getResourceAsStream(String);
+    method public java.util.Enumeration<java.net.URL> getResources(String) throws java.io.IOException;
+    method public static ClassLoader getSystemClassLoader();
+    method public static java.net.URL getSystemResource(String);
+    method public static java.io.InputStream getSystemResourceAsStream(String);
+    method public static java.util.Enumeration<java.net.URL> getSystemResources(String) throws java.io.IOException;
+    method public Class<?> loadClass(String) throws java.lang.ClassNotFoundException;
+    method protected Class<?> loadClass(String, boolean) throws java.lang.ClassNotFoundException;
     method protected static boolean registerAsParallelCapable();
-    method protected final void resolveClass(java.lang.Class<?>);
-    method public void setClassAssertionStatus(java.lang.String, boolean);
+    method protected final void resolveClass(Class<?>);
+    method public void setClassAssertionStatus(String, boolean);
     method public void setDefaultAssertionStatus(boolean);
-    method public void setPackageAssertionStatus(java.lang.String, boolean);
-    method protected final void setSigners(java.lang.Class<?>, java.lang.Object[]);
+    method public void setPackageAssertionStatus(String, boolean);
+    method protected final void setSigners(Class<?>, Object[]);
   }
 
   public class ClassNotFoundException extends java.lang.ReflectiveOperationException {
     ctor public ClassNotFoundException();
-    ctor public ClassNotFoundException(java.lang.String);
-    ctor public ClassNotFoundException(java.lang.String, java.lang.Throwable);
-    method public java.lang.Throwable getCause();
-    method public java.lang.Throwable getException();
+    ctor public ClassNotFoundException(String);
+    ctor public ClassNotFoundException(String, Throwable);
+    method public Throwable getException();
   }
 
   public class CloneNotSupportedException extends java.lang.Exception {
     ctor public CloneNotSupportedException();
-    ctor public CloneNotSupportedException(java.lang.String);
+    ctor public CloneNotSupportedException(String);
   }
 
-  public abstract interface Cloneable {
+  public interface Cloneable {
   }
 
-  public abstract interface Comparable<T> {
-    method public abstract int compareTo(T);
+  public interface Comparable<T> {
+    method public int compareTo(T);
   }
 
   public final class Compiler {
-    method public static java.lang.Object command(java.lang.Object);
-    method public static boolean compileClass(java.lang.Class<?>);
-    method public static boolean compileClasses(java.lang.String);
+    method public static Object command(Object);
+    method public static boolean compileClass(Class<?>);
+    method public static boolean compileClasses(String);
     method public static void disable();
     method public static void enable();
   }
 
-  public abstract class Deprecated implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PACKAGE, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.TYPE}) public @interface Deprecated {
   }
 
-  public final class Double extends java.lang.Number implements java.lang.Comparable {
+  public final class Double extends java.lang.Number implements java.lang.Comparable<java.lang.Double> {
     ctor public Double(double);
-    ctor public Double(java.lang.String) throws java.lang.NumberFormatException;
+    ctor public Double(@NonNull String) throws java.lang.NumberFormatException;
     method public static int compare(double, double);
-    method public int compareTo(java.lang.Double);
+    method public int compareTo(@NonNull Double);
     method public static long doubleToLongBits(double);
     method public static long doubleToRawLongBits(double);
     method public double doubleValue();
@@ -59606,12 +59476,12 @@
     method public long longValue();
     method public static double max(double, double);
     method public static double min(double, double);
-    method public static double parseDouble(java.lang.String) throws java.lang.NumberFormatException;
+    method public static double parseDouble(@NonNull String) throws java.lang.NumberFormatException;
     method public static double sum(double, double);
-    method public static java.lang.String toHexString(double);
-    method public static java.lang.String toString(double);
-    method public static java.lang.Double valueOf(java.lang.String) throws java.lang.NumberFormatException;
-    method public static java.lang.Double valueOf(double);
+    method @NonNull public static String toHexString(double);
+    method @NonNull public static String toString(double);
+    method @NonNull public static Double valueOf(@NonNull String) throws java.lang.NumberFormatException;
+    method @NonNull public static Double valueOf(double);
     field public static final int BYTES = 8; // 0x8
     field public static final int MAX_EXPONENT = 1023; // 0x3ff
     field public static final double MAX_VALUE = 1.7976931348623157E308;
@@ -59622,58 +59492,57 @@
     field public static final double NaN = (0.0/0.0);
     field public static final double POSITIVE_INFINITY = (1.0/0.0);
     field public static final int SIZE = 64; // 0x40
-    field public static final java.lang.Class<java.lang.Double> TYPE;
+    field public static final Class<java.lang.Double> TYPE;
   }
 
-  public abstract class Enum<E extends java.lang.Enum<E>> implements java.lang.Comparable java.io.Serializable {
-    ctor protected Enum(java.lang.String, int);
-    method protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+  public abstract class Enum<E extends java.lang.Enum<E>> implements java.lang.Comparable<E> java.io.Serializable {
+    ctor protected Enum(@NonNull String, int);
+    method @NonNull protected final Object clone() throws java.lang.CloneNotSupportedException;
     method public final int compareTo(E);
-    method public final boolean equals(java.lang.Object);
+    method public final boolean equals(@Nullable Object);
     method protected final void finalize();
-    method public final java.lang.Class<E> getDeclaringClass();
+    method @NonNull public final Class<E> getDeclaringClass();
     method public final int hashCode();
-    method public final java.lang.String name();
+    method @NonNull public final String name();
     method public final int ordinal();
-    method public static <T extends java.lang.Enum<T>> T valueOf(java.lang.Class<T>, java.lang.String);
+    method @NonNull public static <T extends java.lang.Enum<T>> T valueOf(@NonNull Class<T>, @NonNull String);
   }
 
   public class EnumConstantNotPresentException extends java.lang.RuntimeException {
-    ctor public EnumConstantNotPresentException(java.lang.Class<? extends java.lang.Enum>, java.lang.String);
-    method public java.lang.String constantName();
-    method public java.lang.Class<? extends java.lang.Enum> enumType();
+    ctor public EnumConstantNotPresentException(Class<? extends java.lang.Enum>, String);
+    method public String constantName();
+    method public Class<? extends java.lang.Enum> enumType();
   }
 
   public class Error extends java.lang.Throwable {
     ctor public Error();
-    ctor public Error(java.lang.String);
-    ctor public Error(java.lang.String, java.lang.Throwable);
-    ctor public Error(java.lang.Throwable);
-    ctor protected Error(java.lang.String, java.lang.Throwable, boolean, boolean);
+    ctor public Error(String);
+    ctor public Error(String, Throwable);
+    ctor public Error(Throwable);
+    ctor protected Error(String, Throwable, boolean, boolean);
   }
 
   public class Exception extends java.lang.Throwable {
     ctor public Exception();
-    ctor public Exception(java.lang.String);
-    ctor public Exception(java.lang.String, java.lang.Throwable);
-    ctor public Exception(java.lang.Throwable);
-    ctor protected Exception(java.lang.String, java.lang.Throwable, boolean, boolean);
+    ctor public Exception(String);
+    ctor public Exception(String, Throwable);
+    ctor public Exception(Throwable);
+    ctor protected Exception(String, Throwable, boolean, boolean);
   }
 
   public class ExceptionInInitializerError extends java.lang.LinkageError {
     ctor public ExceptionInInitializerError();
-    ctor public ExceptionInInitializerError(java.lang.Throwable);
-    ctor public ExceptionInInitializerError(java.lang.String);
-    method public java.lang.Throwable getCause();
-    method public java.lang.Throwable getException();
+    ctor public ExceptionInInitializerError(Throwable);
+    ctor public ExceptionInInitializerError(String);
+    method public Throwable getException();
   }
 
-  public final class Float extends java.lang.Number implements java.lang.Comparable {
+  public final class Float extends java.lang.Number implements java.lang.Comparable<java.lang.Float> {
     ctor public Float(float);
     ctor public Float(double);
-    ctor public Float(java.lang.String) throws java.lang.NumberFormatException;
+    ctor public Float(@NonNull String) throws java.lang.NumberFormatException;
     method public static int compare(float, float);
-    method public int compareTo(java.lang.Float);
+    method public int compareTo(@NonNull Float);
     method public double doubleValue();
     method public static int floatToIntBits(float);
     method public static int floatToRawIntBits(float);
@@ -59689,12 +59558,12 @@
     method public long longValue();
     method public static float max(float, float);
     method public static float min(float, float);
-    method public static float parseFloat(java.lang.String) throws java.lang.NumberFormatException;
+    method public static float parseFloat(@NonNull String) throws java.lang.NumberFormatException;
     method public static float sum(float, float);
-    method public static java.lang.String toHexString(float);
-    method public static java.lang.String toString(float);
-    method public static java.lang.Float valueOf(java.lang.String) throws java.lang.NumberFormatException;
-    method public static java.lang.Float valueOf(float);
+    method @NonNull public static String toHexString(float);
+    method @NonNull public static String toString(float);
+    method @NonNull public static Float valueOf(@NonNull String) throws java.lang.NumberFormatException;
+    method @NonNull public static Float valueOf(float);
     field public static final int BYTES = 4; // 0x4
     field public static final int MAX_EXPONENT = 127; // 0x7f
     field public static final float MAX_VALUE = 3.4028235E38f;
@@ -59705,85 +59574,85 @@
     field public static final float NaN = (0.0f/0.0f);
     field public static final float POSITIVE_INFINITY = (1.0f/0.0f);
     field public static final int SIZE = 32; // 0x20
-    field public static final java.lang.Class<java.lang.Float> TYPE;
+    field public static final Class<java.lang.Float> TYPE;
   }
 
-  public abstract class FunctionalInterface implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE) public @interface FunctionalInterface {
   }
 
   public class IllegalAccessError extends java.lang.IncompatibleClassChangeError {
     ctor public IllegalAccessError();
-    ctor public IllegalAccessError(java.lang.String);
+    ctor public IllegalAccessError(String);
   }
 
   public class IllegalAccessException extends java.lang.ReflectiveOperationException {
     ctor public IllegalAccessException();
-    ctor public IllegalAccessException(java.lang.String);
+    ctor public IllegalAccessException(String);
   }
 
   public class IllegalArgumentException extends java.lang.RuntimeException {
     ctor public IllegalArgumentException();
-    ctor public IllegalArgumentException(java.lang.String);
-    ctor public IllegalArgumentException(java.lang.String, java.lang.Throwable);
-    ctor public IllegalArgumentException(java.lang.Throwable);
+    ctor public IllegalArgumentException(String);
+    ctor public IllegalArgumentException(String, Throwable);
+    ctor public IllegalArgumentException(Throwable);
   }
 
   public class IllegalMonitorStateException extends java.lang.RuntimeException {
     ctor public IllegalMonitorStateException();
-    ctor public IllegalMonitorStateException(java.lang.String);
+    ctor public IllegalMonitorStateException(String);
   }
 
   public class IllegalStateException extends java.lang.RuntimeException {
     ctor public IllegalStateException();
-    ctor public IllegalStateException(java.lang.String);
-    ctor public IllegalStateException(java.lang.String, java.lang.Throwable);
-    ctor public IllegalStateException(java.lang.Throwable);
+    ctor public IllegalStateException(String);
+    ctor public IllegalStateException(String, Throwable);
+    ctor public IllegalStateException(Throwable);
   }
 
   public class IllegalThreadStateException extends java.lang.IllegalArgumentException {
     ctor public IllegalThreadStateException();
-    ctor public IllegalThreadStateException(java.lang.String);
+    ctor public IllegalThreadStateException(String);
   }
 
   public class IncompatibleClassChangeError extends java.lang.LinkageError {
     ctor public IncompatibleClassChangeError();
-    ctor public IncompatibleClassChangeError(java.lang.String);
+    ctor public IncompatibleClassChangeError(String);
   }
 
   public class IndexOutOfBoundsException extends java.lang.RuntimeException {
     ctor public IndexOutOfBoundsException();
-    ctor public IndexOutOfBoundsException(java.lang.String);
+    ctor public IndexOutOfBoundsException(String);
   }
 
-  public class InheritableThreadLocal<T> extends java.lang.ThreadLocal {
+  public class InheritableThreadLocal<T> extends java.lang.ThreadLocal<T> {
     ctor public InheritableThreadLocal();
     method protected T childValue(T);
   }
 
   public class InstantiationError extends java.lang.IncompatibleClassChangeError {
     ctor public InstantiationError();
-    ctor public InstantiationError(java.lang.String);
+    ctor public InstantiationError(String);
   }
 
   public class InstantiationException extends java.lang.ReflectiveOperationException {
     ctor public InstantiationException();
-    ctor public InstantiationException(java.lang.String);
+    ctor public InstantiationException(String);
   }
 
-  public final class Integer extends java.lang.Number implements java.lang.Comparable {
+  public final class Integer extends java.lang.Number implements java.lang.Comparable<java.lang.Integer> {
     ctor public Integer(int);
-    ctor public Integer(java.lang.String) throws java.lang.NumberFormatException;
+    ctor public Integer(@NonNull String) throws java.lang.NumberFormatException;
     method public static int bitCount(int);
     method public static int compare(int, int);
-    method public int compareTo(java.lang.Integer);
+    method public int compareTo(@NonNull Integer);
     method public static int compareUnsigned(int, int);
-    method public static java.lang.Integer decode(java.lang.String) throws java.lang.NumberFormatException;
+    method @NonNull public static Integer decode(@NonNull String) throws java.lang.NumberFormatException;
     method public static int divideUnsigned(int, int);
     method public double doubleValue();
     method public float floatValue();
-    method public static java.lang.Integer getInteger(java.lang.String);
-    method public static java.lang.Integer getInteger(java.lang.String, int);
-    method public static java.lang.Integer getInteger(java.lang.String, java.lang.Integer);
+    method @Nullable public static Integer getInteger(@NonNull String);
+    method @Nullable public static Integer getInteger(@NonNull String, int);
+    method @Nullable public static Integer getInteger(@NonNull String, @Nullable Integer);
     method public static int hashCode(int);
     method public static int highestOneBit(int);
     method public int intValue();
@@ -59793,10 +59662,10 @@
     method public static int min(int, int);
     method public static int numberOfLeadingZeros(int);
     method public static int numberOfTrailingZeros(int);
-    method public static int parseInt(java.lang.String, int) throws java.lang.NumberFormatException;
-    method public static int parseInt(java.lang.String) throws java.lang.NumberFormatException;
-    method public static int parseUnsignedInt(java.lang.String, int) throws java.lang.NumberFormatException;
-    method public static int parseUnsignedInt(java.lang.String) throws java.lang.NumberFormatException;
+    method public static int parseInt(@NonNull String, int) throws java.lang.NumberFormatException;
+    method public static int parseInt(@NonNull String) throws java.lang.NumberFormatException;
+    method public static int parseUnsignedInt(@NonNull String, int) throws java.lang.NumberFormatException;
+    method public static int parseUnsignedInt(@NonNull String) throws java.lang.NumberFormatException;
     method public static int remainderUnsigned(int, int);
     method public static int reverse(int);
     method public static int reverseBytes(int);
@@ -59804,62 +59673,62 @@
     method public static int rotateRight(int, int);
     method public static int signum(int);
     method public static int sum(int, int);
-    method public static java.lang.String toBinaryString(int);
-    method public static java.lang.String toHexString(int);
-    method public static java.lang.String toOctalString(int);
-    method public static java.lang.String toString(int, int);
-    method public static java.lang.String toString(int);
+    method @NonNull public static String toBinaryString(int);
+    method @NonNull public static String toHexString(int);
+    method @NonNull public static String toOctalString(int);
+    method @NonNull public static String toString(int, int);
+    method @NonNull public static String toString(int);
     method public static long toUnsignedLong(int);
-    method public static java.lang.String toUnsignedString(int, int);
-    method public static java.lang.String toUnsignedString(int);
-    method public static java.lang.Integer valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
-    method public static java.lang.Integer valueOf(java.lang.String) throws java.lang.NumberFormatException;
-    method public static java.lang.Integer valueOf(int);
+    method @NonNull public static String toUnsignedString(int, int);
+    method @NonNull public static String toUnsignedString(int);
+    method @NonNull public static Integer valueOf(@NonNull String, int) throws java.lang.NumberFormatException;
+    method @NonNull public static Integer valueOf(@NonNull String) throws java.lang.NumberFormatException;
+    method @NonNull public static Integer valueOf(int);
     field public static final int BYTES = 4; // 0x4
     field public static final int MAX_VALUE = 2147483647; // 0x7fffffff
     field public static final int MIN_VALUE = -2147483648; // 0x80000000
     field public static final int SIZE = 32; // 0x20
-    field public static final java.lang.Class<java.lang.Integer> TYPE;
+    field public static final Class<java.lang.Integer> TYPE;
   }
 
   public class InternalError extends java.lang.VirtualMachineError {
     ctor public InternalError();
-    ctor public InternalError(java.lang.String);
-    ctor public InternalError(java.lang.String, java.lang.Throwable);
-    ctor public InternalError(java.lang.Throwable);
+    ctor public InternalError(String);
+    ctor public InternalError(String, Throwable);
+    ctor public InternalError(Throwable);
   }
 
   public class InterruptedException extends java.lang.Exception {
     ctor public InterruptedException();
-    ctor public InterruptedException(java.lang.String);
+    ctor public InterruptedException(String);
   }
 
-  public abstract interface Iterable<T> {
-    method public default void forEach(java.util.function.Consumer<? super T>);
-    method public abstract java.util.Iterator<T> iterator();
-    method public default java.util.Spliterator<T> spliterator();
+  public interface Iterable<T> {
+    method public default void forEach(@NonNull java.util.function.Consumer<? super T>);
+    method @NonNull public java.util.Iterator<T> iterator();
+    method @NonNull public default java.util.Spliterator<T> spliterator();
   }
 
   public class LinkageError extends java.lang.Error {
     ctor public LinkageError();
-    ctor public LinkageError(java.lang.String);
-    ctor public LinkageError(java.lang.String, java.lang.Throwable);
+    ctor public LinkageError(String);
+    ctor public LinkageError(String, Throwable);
   }
 
-  public final class Long extends java.lang.Number implements java.lang.Comparable {
+  public final class Long extends java.lang.Number implements java.lang.Comparable<java.lang.Long> {
     ctor public Long(long);
-    ctor public Long(java.lang.String) throws java.lang.NumberFormatException;
+    ctor public Long(@NonNull String) throws java.lang.NumberFormatException;
     method public static int bitCount(long);
     method public static int compare(long, long);
-    method public int compareTo(java.lang.Long);
+    method public int compareTo(@NonNull Long);
     method public static int compareUnsigned(long, long);
-    method public static java.lang.Long decode(java.lang.String) throws java.lang.NumberFormatException;
+    method @NonNull public static Long decode(@NonNull String) throws java.lang.NumberFormatException;
     method public static long divideUnsigned(long, long);
     method public double doubleValue();
     method public float floatValue();
-    method public static java.lang.Long getLong(java.lang.String);
-    method public static java.lang.Long getLong(java.lang.String, long);
-    method public static java.lang.Long getLong(java.lang.String, java.lang.Long);
+    method @Nullable public static Long getLong(@NonNull String);
+    method @Nullable public static Long getLong(@NonNull String, long);
+    method @Nullable public static Long getLong(@NonNull String, @Nullable Long);
     method public static int hashCode(long);
     method public static long highestOneBit(long);
     method public int intValue();
@@ -59869,10 +59738,10 @@
     method public static long min(long, long);
     method public static int numberOfLeadingZeros(long);
     method public static int numberOfTrailingZeros(long);
-    method public static long parseLong(java.lang.String, int) throws java.lang.NumberFormatException;
-    method public static long parseLong(java.lang.String) throws java.lang.NumberFormatException;
-    method public static long parseUnsignedLong(java.lang.String, int) throws java.lang.NumberFormatException;
-    method public static long parseUnsignedLong(java.lang.String) throws java.lang.NumberFormatException;
+    method public static long parseLong(@NonNull String, int) throws java.lang.NumberFormatException;
+    method public static long parseLong(@NonNull String) throws java.lang.NumberFormatException;
+    method public static long parseUnsignedLong(@NonNull String, int) throws java.lang.NumberFormatException;
+    method public static long parseUnsignedLong(@NonNull String) throws java.lang.NumberFormatException;
     method public static long remainderUnsigned(long, long);
     method public static long reverse(long);
     method public static long reverseBytes(long);
@@ -59880,21 +59749,21 @@
     method public static long rotateRight(long, int);
     method public static int signum(long);
     method public static long sum(long, long);
-    method public static java.lang.String toBinaryString(long);
-    method public static java.lang.String toHexString(long);
-    method public static java.lang.String toOctalString(long);
-    method public static java.lang.String toString(long, int);
-    method public static java.lang.String toString(long);
-    method public static java.lang.String toUnsignedString(long, int);
-    method public static java.lang.String toUnsignedString(long);
-    method public static java.lang.Long valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
-    method public static java.lang.Long valueOf(java.lang.String) throws java.lang.NumberFormatException;
-    method public static java.lang.Long valueOf(long);
+    method @NonNull public static String toBinaryString(long);
+    method @NonNull public static String toHexString(long);
+    method @NonNull public static String toOctalString(long);
+    method @NonNull public static String toString(long, int);
+    method @NonNull public static String toString(long);
+    method @NonNull public static String toUnsignedString(long, int);
+    method @NonNull public static String toUnsignedString(long);
+    method @NonNull public static Long valueOf(@NonNull String, int) throws java.lang.NumberFormatException;
+    method @NonNull public static Long valueOf(@NonNull String) throws java.lang.NumberFormatException;
+    method @NonNull public static Long valueOf(long);
     field public static final int BYTES = 8; // 0x8
     field public static final long MAX_VALUE = 9223372036854775807L; // 0x7fffffffffffffffL
     field public static final long MIN_VALUE = -9223372036854775808L; // 0x8000000000000000L
     field public static final int SIZE = 64; // 0x40
-    field public static final java.lang.Class<java.lang.Long> TYPE;
+    field public static final Class<java.lang.Long> TYPE;
   }
 
   public final class Math {
@@ -59977,37 +59846,37 @@
 
   public class NegativeArraySizeException extends java.lang.RuntimeException {
     ctor public NegativeArraySizeException();
-    ctor public NegativeArraySizeException(java.lang.String);
+    ctor public NegativeArraySizeException(String);
   }
 
   public class NoClassDefFoundError extends java.lang.LinkageError {
     ctor public NoClassDefFoundError();
-    ctor public NoClassDefFoundError(java.lang.String);
+    ctor public NoClassDefFoundError(String);
   }
 
   public class NoSuchFieldError extends java.lang.IncompatibleClassChangeError {
     ctor public NoSuchFieldError();
-    ctor public NoSuchFieldError(java.lang.String);
+    ctor public NoSuchFieldError(String);
   }
 
   public class NoSuchFieldException extends java.lang.ReflectiveOperationException {
     ctor public NoSuchFieldException();
-    ctor public NoSuchFieldException(java.lang.String);
+    ctor public NoSuchFieldException(String);
   }
 
   public class NoSuchMethodError extends java.lang.IncompatibleClassChangeError {
     ctor public NoSuchMethodError();
-    ctor public NoSuchMethodError(java.lang.String);
+    ctor public NoSuchMethodError(String);
   }
 
   public class NoSuchMethodException extends java.lang.ReflectiveOperationException {
     ctor public NoSuchMethodException();
-    ctor public NoSuchMethodException(java.lang.String);
+    ctor public NoSuchMethodException(String);
   }
 
   public class NullPointerException extends java.lang.RuntimeException {
     ctor public NullPointerException();
-    ctor public NullPointerException(java.lang.String);
+    ctor public NullPointerException(String);
   }
 
   public abstract class Number implements java.io.Serializable {
@@ -60022,19 +59891,19 @@
 
   public class NumberFormatException extends java.lang.IllegalArgumentException {
     ctor public NumberFormatException();
-    ctor public NumberFormatException(java.lang.String);
+    ctor public NumberFormatException(String);
   }
 
   public class Object {
     ctor public Object();
-    method protected java.lang.Object clone() throws java.lang.CloneNotSupportedException;
-    method public boolean equals(java.lang.Object);
+    method @NonNull protected Object clone() throws java.lang.CloneNotSupportedException;
+    method public boolean equals(@Nullable Object);
     method protected void finalize() throws java.lang.Throwable;
-    method public final java.lang.Class<?> getClass();
+    method @NonNull public final Class<?> getClass();
     method public int hashCode();
     method public final void notify();
     method public final void notifyAll();
-    method public java.lang.String toString();
+    method @NonNull public String toString();
     method public final void wait(long) throws java.lang.InterruptedException;
     method public final void wait(long, int) throws java.lang.InterruptedException;
     method public final void wait() throws java.lang.InterruptedException;
@@ -60042,29 +59911,29 @@
 
   public class OutOfMemoryError extends java.lang.VirtualMachineError {
     ctor public OutOfMemoryError();
-    ctor public OutOfMemoryError(java.lang.String);
+    ctor public OutOfMemoryError(String);
   }
 
-  public abstract class Override implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public @interface Override {
   }
 
   public class Package implements java.lang.reflect.AnnotatedElement {
-    method public <A extends java.lang.annotation.Annotation> A getAnnotation(java.lang.Class<A>);
+    method public <A extends java.lang.annotation.Annotation> A getAnnotation(Class<A>);
     method public java.lang.annotation.Annotation[] getAnnotations();
-    method public <A extends java.lang.annotation.Annotation> A[] getAnnotationsByType(java.lang.Class<A>);
-    method public <A extends java.lang.annotation.Annotation> A getDeclaredAnnotation(java.lang.Class<A>);
+    method public <A extends java.lang.annotation.Annotation> A[] getAnnotationsByType(Class<A>);
+    method public <A extends java.lang.annotation.Annotation> A getDeclaredAnnotation(Class<A>);
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
-    method public <A extends java.lang.annotation.Annotation> A[] getDeclaredAnnotationsByType(java.lang.Class<A>);
-    method public java.lang.String getImplementationTitle();
-    method public java.lang.String getImplementationVendor();
-    method public java.lang.String getImplementationVersion();
-    method public java.lang.String getName();
-    method public static java.lang.Package getPackage(java.lang.String);
-    method public static java.lang.Package[] getPackages();
-    method public java.lang.String getSpecificationTitle();
-    method public java.lang.String getSpecificationVendor();
-    method public java.lang.String getSpecificationVersion();
-    method public boolean isCompatibleWith(java.lang.String) throws java.lang.NumberFormatException;
+    method public <A extends java.lang.annotation.Annotation> A[] getDeclaredAnnotationsByType(Class<A>);
+    method public String getImplementationTitle();
+    method public String getImplementationVendor();
+    method public String getImplementationVersion();
+    method public String getName();
+    method public static Package getPackage(String);
+    method public static Package[] getPackages();
+    method public String getSpecificationTitle();
+    method public String getSpecificationVendor();
+    method public String getSpecificationVersion();
+    method public boolean isCompatibleWith(String) throws java.lang.NumberFormatException;
     method public boolean isSealed();
     method public boolean isSealed(java.net.URL);
   }
@@ -60072,7 +59941,7 @@
   public abstract class Process {
     ctor public Process();
     method public abstract void destroy();
-    method public java.lang.Process destroyForcibly();
+    method public Process destroyForcibly();
     method public abstract int exitValue();
     method public abstract java.io.InputStream getErrorStream();
     method public abstract java.io.InputStream getInputStream();
@@ -60085,28 +59954,28 @@
   public final class ProcessBuilder {
     ctor public ProcessBuilder(java.util.List<java.lang.String>);
     ctor public ProcessBuilder(java.lang.String...);
-    method public java.lang.ProcessBuilder command(java.util.List<java.lang.String>);
-    method public java.lang.ProcessBuilder command(java.lang.String...);
+    method public ProcessBuilder command(java.util.List<java.lang.String>);
+    method public ProcessBuilder command(java.lang.String...);
     method public java.util.List<java.lang.String> command();
     method public java.io.File directory();
-    method public java.lang.ProcessBuilder directory(java.io.File);
-    method public java.util.Map<java.lang.String, java.lang.String> environment();
-    method public java.lang.ProcessBuilder inheritIO();
-    method public java.lang.ProcessBuilder redirectError(java.lang.ProcessBuilder.Redirect);
-    method public java.lang.ProcessBuilder redirectError(java.io.File);
+    method public ProcessBuilder directory(java.io.File);
+    method public java.util.Map<java.lang.String,java.lang.String> environment();
+    method public ProcessBuilder inheritIO();
+    method public ProcessBuilder redirectError(java.lang.ProcessBuilder.Redirect);
+    method public ProcessBuilder redirectError(java.io.File);
     method public java.lang.ProcessBuilder.Redirect redirectError();
     method public boolean redirectErrorStream();
-    method public java.lang.ProcessBuilder redirectErrorStream(boolean);
-    method public java.lang.ProcessBuilder redirectInput(java.lang.ProcessBuilder.Redirect);
-    method public java.lang.ProcessBuilder redirectInput(java.io.File);
+    method public ProcessBuilder redirectErrorStream(boolean);
+    method public ProcessBuilder redirectInput(java.lang.ProcessBuilder.Redirect);
+    method public ProcessBuilder redirectInput(java.io.File);
     method public java.lang.ProcessBuilder.Redirect redirectInput();
-    method public java.lang.ProcessBuilder redirectOutput(java.lang.ProcessBuilder.Redirect);
-    method public java.lang.ProcessBuilder redirectOutput(java.io.File);
+    method public ProcessBuilder redirectOutput(java.lang.ProcessBuilder.Redirect);
+    method public ProcessBuilder redirectOutput(java.io.File);
     method public java.lang.ProcessBuilder.Redirect redirectOutput();
-    method public java.lang.Process start() throws java.io.IOException;
+    method public Process start() throws java.io.IOException;
   }
 
-  public static abstract class ProcessBuilder.Redirect {
+  public abstract static class ProcessBuilder.Redirect {
     method public static java.lang.ProcessBuilder.Redirect appendTo(java.io.File);
     method public java.io.File file();
     method public static java.lang.ProcessBuilder.Redirect from(java.io.File);
@@ -60116,9 +59985,7 @@
     field public static final java.lang.ProcessBuilder.Redirect PIPE;
   }
 
-  public static final class ProcessBuilder.Redirect.Type extends java.lang.Enum {
-    method public static java.lang.ProcessBuilder.Redirect.Type valueOf(java.lang.String);
-    method public static final java.lang.ProcessBuilder.Redirect.Type[] values();
+  public enum ProcessBuilder.Redirect.Type {
     enum_constant public static final java.lang.ProcessBuilder.Redirect.Type APPEND;
     enum_constant public static final java.lang.ProcessBuilder.Redirect.Type INHERIT;
     enum_constant public static final java.lang.ProcessBuilder.Redirect.Type PIPE;
@@ -60126,43 +59993,43 @@
     enum_constant public static final java.lang.ProcessBuilder.Redirect.Type WRITE;
   }
 
-  public abstract interface Readable {
-    method public abstract int read(java.nio.CharBuffer) throws java.io.IOException;
+  public interface Readable {
+    method public int read(java.nio.CharBuffer) throws java.io.IOException;
   }
 
   public class ReflectiveOperationException extends java.lang.Exception {
     ctor public ReflectiveOperationException();
-    ctor public ReflectiveOperationException(java.lang.String);
-    ctor public ReflectiveOperationException(java.lang.String, java.lang.Throwable);
-    ctor public ReflectiveOperationException(java.lang.Throwable);
+    ctor public ReflectiveOperationException(String);
+    ctor public ReflectiveOperationException(String, Throwable);
+    ctor public ReflectiveOperationException(Throwable);
   }
 
-  public abstract interface Runnable {
-    method public abstract void run();
+  @java.lang.FunctionalInterface public interface Runnable {
+    method public void run();
   }
 
   public class Runtime {
-    method public void addShutdownHook(java.lang.Thread);
+    method public void addShutdownHook(Thread);
     method public int availableProcessors();
-    method public java.lang.Process exec(java.lang.String) throws java.io.IOException;
-    method public java.lang.Process exec(java.lang.String, java.lang.String[]) throws java.io.IOException;
-    method public java.lang.Process exec(java.lang.String, java.lang.String[], java.io.File) throws java.io.IOException;
-    method public java.lang.Process exec(java.lang.String[]) throws java.io.IOException;
-    method public java.lang.Process exec(java.lang.String[], java.lang.String[]) throws java.io.IOException;
-    method public java.lang.Process exec(java.lang.String[], java.lang.String[], java.io.File) throws java.io.IOException;
+    method public Process exec(String) throws java.io.IOException;
+    method public Process exec(String, String[]) throws java.io.IOException;
+    method public Process exec(String, String[], java.io.File) throws java.io.IOException;
+    method public Process exec(String[]) throws java.io.IOException;
+    method public Process exec(String[], String[]) throws java.io.IOException;
+    method public Process exec(String[], String[], java.io.File) throws java.io.IOException;
     method public void exit(int);
     method public long freeMemory();
     method public void gc();
-    method public deprecated java.io.InputStream getLocalizedInputStream(java.io.InputStream);
-    method public deprecated java.io.OutputStream getLocalizedOutputStream(java.io.OutputStream);
-    method public static java.lang.Runtime getRuntime();
+    method @Deprecated public java.io.InputStream getLocalizedInputStream(java.io.InputStream);
+    method @Deprecated public java.io.OutputStream getLocalizedOutputStream(java.io.OutputStream);
+    method public static Runtime getRuntime();
     method public void halt(int);
-    method public void load(java.lang.String);
-    method public void loadLibrary(java.lang.String);
+    method public void load(String);
+    method public void loadLibrary(String);
     method public long maxMemory();
-    method public boolean removeShutdownHook(java.lang.Thread);
+    method public boolean removeShutdownHook(Thread);
     method public void runFinalization();
-    method public static deprecated void runFinalizersOnExit(boolean);
+    method @Deprecated public static void runFinalizersOnExit(boolean);
     method public long totalMemory();
     method public void traceInstructions(boolean);
     method public void traceMethodCalls(boolean);
@@ -60170,111 +60037,111 @@
 
   public class RuntimeException extends java.lang.Exception {
     ctor public RuntimeException();
-    ctor public RuntimeException(java.lang.String);
-    ctor public RuntimeException(java.lang.String, java.lang.Throwable);
-    ctor public RuntimeException(java.lang.Throwable);
-    ctor protected RuntimeException(java.lang.String, java.lang.Throwable, boolean, boolean);
+    ctor public RuntimeException(String);
+    ctor public RuntimeException(String, Throwable);
+    ctor public RuntimeException(Throwable);
+    ctor protected RuntimeException(String, Throwable, boolean, boolean);
   }
 
   public final class RuntimePermission extends java.security.BasicPermission {
-    ctor public RuntimePermission(java.lang.String);
-    ctor public RuntimePermission(java.lang.String, java.lang.String);
+    ctor public RuntimePermission(String);
+    ctor public RuntimePermission(String, String);
   }
 
-  public abstract class SafeVarargs implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.METHOD}) public @interface SafeVarargs {
   }
 
   public class SecurityException extends java.lang.RuntimeException {
     ctor public SecurityException();
-    ctor public SecurityException(java.lang.String);
-    ctor public SecurityException(java.lang.String, java.lang.Throwable);
-    ctor public SecurityException(java.lang.Throwable);
+    ctor public SecurityException(String);
+    ctor public SecurityException(String, Throwable);
+    ctor public SecurityException(Throwable);
   }
 
   public class SecurityManager {
     ctor public SecurityManager();
-    method public void checkAccept(java.lang.String, int);
-    method public void checkAccess(java.lang.Thread);
-    method public void checkAccess(java.lang.ThreadGroup);
+    method public void checkAccept(String, int);
+    method public void checkAccess(Thread);
+    method public void checkAccess(ThreadGroup);
     method public void checkAwtEventQueueAccess();
-    method public void checkConnect(java.lang.String, int);
-    method public void checkConnect(java.lang.String, int, java.lang.Object);
+    method public void checkConnect(String, int);
+    method public void checkConnect(String, int, Object);
     method public void checkCreateClassLoader();
-    method public void checkDelete(java.lang.String);
-    method public void checkExec(java.lang.String);
+    method public void checkDelete(String);
+    method public void checkExec(String);
     method public void checkExit(int);
-    method public void checkLink(java.lang.String);
+    method public void checkLink(String);
     method public void checkListen(int);
-    method public void checkMemberAccess(java.lang.Class<?>, int);
+    method public void checkMemberAccess(Class<?>, int);
     method public void checkMulticast(java.net.InetAddress);
-    method public deprecated void checkMulticast(java.net.InetAddress, byte);
-    method public void checkPackageAccess(java.lang.String);
-    method public void checkPackageDefinition(java.lang.String);
+    method @Deprecated public void checkMulticast(java.net.InetAddress, byte);
+    method public void checkPackageAccess(String);
+    method public void checkPackageDefinition(String);
     method public void checkPermission(java.security.Permission);
-    method public void checkPermission(java.security.Permission, java.lang.Object);
+    method public void checkPermission(java.security.Permission, Object);
     method public void checkPrintJobAccess();
     method public void checkPropertiesAccess();
-    method public void checkPropertyAccess(java.lang.String);
+    method public void checkPropertyAccess(String);
     method public void checkRead(java.io.FileDescriptor);
-    method public void checkRead(java.lang.String);
-    method public void checkRead(java.lang.String, java.lang.Object);
-    method public void checkSecurityAccess(java.lang.String);
+    method public void checkRead(String);
+    method public void checkRead(String, Object);
+    method public void checkSecurityAccess(String);
     method public void checkSetFactory();
     method public void checkSystemClipboardAccess();
-    method public boolean checkTopLevelWindow(java.lang.Object);
+    method public boolean checkTopLevelWindow(Object);
     method public void checkWrite(java.io.FileDescriptor);
-    method public void checkWrite(java.lang.String);
-    method protected deprecated int classDepth(java.lang.String);
-    method protected deprecated int classLoaderDepth();
-    method protected deprecated java.lang.ClassLoader currentClassLoader();
-    method protected deprecated java.lang.Class<?> currentLoadedClass();
-    method protected java.lang.Class[] getClassContext();
-    method public deprecated boolean getInCheck();
-    method public java.lang.Object getSecurityContext();
-    method public java.lang.ThreadGroup getThreadGroup();
-    method protected deprecated boolean inClass(java.lang.String);
-    method protected deprecated boolean inClassLoader();
-    field protected deprecated boolean inCheck;
+    method public void checkWrite(String);
+    method @Deprecated protected int classDepth(String);
+    method @Deprecated protected int classLoaderDepth();
+    method @Deprecated protected ClassLoader currentClassLoader();
+    method @Deprecated protected Class<?> currentLoadedClass();
+    method protected Class[] getClassContext();
+    method @Deprecated public boolean getInCheck();
+    method public Object getSecurityContext();
+    method public ThreadGroup getThreadGroup();
+    method @Deprecated protected boolean inClass(String);
+    method @Deprecated protected boolean inClassLoader();
+    field @Deprecated protected boolean inCheck;
   }
 
-  public final class Short extends java.lang.Number implements java.lang.Comparable {
+  public final class Short extends java.lang.Number implements java.lang.Comparable<java.lang.Short> {
     ctor public Short(short);
-    ctor public Short(java.lang.String) throws java.lang.NumberFormatException;
+    ctor public Short(String) throws java.lang.NumberFormatException;
     method public static int compare(short, short);
-    method public int compareTo(java.lang.Short);
-    method public static java.lang.Short decode(java.lang.String) throws java.lang.NumberFormatException;
+    method public int compareTo(Short);
+    method public static Short decode(String) throws java.lang.NumberFormatException;
     method public double doubleValue();
     method public float floatValue();
     method public static int hashCode(short);
     method public int intValue();
     method public long longValue();
-    method public static short parseShort(java.lang.String, int) throws java.lang.NumberFormatException;
-    method public static short parseShort(java.lang.String) throws java.lang.NumberFormatException;
+    method public static short parseShort(String, int) throws java.lang.NumberFormatException;
+    method public static short parseShort(String) throws java.lang.NumberFormatException;
     method public static short reverseBytes(short);
-    method public static java.lang.String toString(short);
+    method public static String toString(short);
     method public static int toUnsignedInt(short);
     method public static long toUnsignedLong(short);
-    method public static java.lang.Short valueOf(java.lang.String, int) throws java.lang.NumberFormatException;
-    method public static java.lang.Short valueOf(java.lang.String) throws java.lang.NumberFormatException;
-    method public static java.lang.Short valueOf(short);
+    method public static Short valueOf(String, int) throws java.lang.NumberFormatException;
+    method public static Short valueOf(String) throws java.lang.NumberFormatException;
+    method public static Short valueOf(short);
     field public static final int BYTES = 2; // 0x2
     field public static final short MAX_VALUE = 32767; // 0x7fff
     field public static final short MIN_VALUE = -32768; // 0xffff8000
     field public static final int SIZE = 16; // 0x10
-    field public static final java.lang.Class<java.lang.Short> TYPE;
+    field public static final Class<java.lang.Short> TYPE;
   }
 
   public class StackOverflowError extends java.lang.VirtualMachineError {
     ctor public StackOverflowError();
-    ctor public StackOverflowError(java.lang.String);
+    ctor public StackOverflowError(String);
   }
 
   public final class StackTraceElement implements java.io.Serializable {
-    ctor public StackTraceElement(java.lang.String, java.lang.String, java.lang.String, int);
-    method public java.lang.String getClassName();
-    method public java.lang.String getFileName();
+    ctor public StackTraceElement(String, String, String, int);
+    method public String getClassName();
+    method public String getFileName();
     method public int getLineNumber();
-    method public java.lang.String getMethodName();
+    method public String getMethodName();
     method public boolean isNativeMethod();
   }
 
@@ -60350,224 +60217,239 @@
     field public static final double PI = 3.141592653589793;
   }
 
-  public final class String implements java.lang.CharSequence java.lang.Comparable java.io.Serializable {
+  public final class String implements java.lang.CharSequence java.lang.Comparable<java.lang.String> java.io.Serializable {
     ctor public String();
-    ctor public String(java.lang.String);
+    ctor public String(@NonNull String);
     ctor public String(char[]);
     ctor public String(char[], int, int);
     ctor public String(int[], int, int);
-    ctor public deprecated String(byte[], int, int, int);
-    ctor public deprecated String(byte[], int);
-    ctor public String(byte[], int, int, java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public String(byte[], int, int, java.nio.charset.Charset);
-    ctor public String(byte[], java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public String(byte[], java.nio.charset.Charset);
+    ctor @Deprecated public String(byte[], int, int, int);
+    ctor @Deprecated public String(byte[], int);
+    ctor public String(byte[], int, int, @NonNull String) throws java.io.UnsupportedEncodingException;
+    ctor public String(byte[], int, int, @NonNull java.nio.charset.Charset);
+    ctor public String(byte[], @NonNull String) throws java.io.UnsupportedEncodingException;
+    ctor public String(byte[], @NonNull java.nio.charset.Charset);
     ctor public String(byte[], int, int);
     ctor public String(byte[]);
-    ctor public String(java.lang.StringBuffer);
-    ctor public String(java.lang.StringBuilder);
+    ctor public String(@NonNull StringBuffer);
+    ctor public String(@NonNull StringBuilder);
     method public char charAt(int);
     method public int codePointAt(int);
     method public int codePointBefore(int);
     method public int codePointCount(int, int);
-    method public int compareTo(java.lang.String);
-    method public int compareToIgnoreCase(java.lang.String);
-    method public java.lang.String concat(java.lang.String);
-    method public boolean contains(java.lang.CharSequence);
-    method public boolean contentEquals(java.lang.StringBuffer);
-    method public boolean contentEquals(java.lang.CharSequence);
-    method public static java.lang.String copyValueOf(char[], int, int);
-    method public static java.lang.String copyValueOf(char[]);
-    method public boolean endsWith(java.lang.String);
-    method public boolean equalsIgnoreCase(java.lang.String);
-    method public static java.lang.String format(java.lang.String, java.lang.Object...);
-    method public static java.lang.String format(java.util.Locale, java.lang.String, java.lang.Object...);
-    method public deprecated void getBytes(int, int, byte[], int);
-    method public byte[] getBytes(java.lang.String) throws java.io.UnsupportedEncodingException;
-    method public byte[] getBytes(java.nio.charset.Charset);
+    method public int compareTo(@NonNull String);
+    method public int compareToIgnoreCase(@NonNull String);
+    method @NonNull public String concat(@NonNull String);
+    method public boolean contains(@NonNull CharSequence);
+    method public boolean contentEquals(@NonNull StringBuffer);
+    method public boolean contentEquals(@NonNull CharSequence);
+    method @NonNull public static String copyValueOf(char[], int, int);
+    method @NonNull public static String copyValueOf(char[]);
+    method public boolean endsWith(@NonNull String);
+    method public boolean equalsIgnoreCase(@Nullable String);
+    method @NonNull public static String format(@NonNull String, java.lang.Object...);
+    method @NonNull public static String format(@NonNull java.util.Locale, @NonNull String, java.lang.Object...);
+    method @Deprecated public void getBytes(int, int, byte[], int);
+    method public byte[] getBytes(@NonNull String) throws java.io.UnsupportedEncodingException;
+    method public byte[] getBytes(@NonNull java.nio.charset.Charset);
     method public byte[] getBytes();
     method public void getChars(int, int, char[], int);
     method public int indexOf(int);
     method public int indexOf(int, int);
-    method public int indexOf(java.lang.String);
-    method public int indexOf(java.lang.String, int);
-    method public java.lang.String intern();
+    method public int indexOf(@NonNull String);
+    method public int indexOf(@NonNull String, int);
+    method @NonNull public String intern();
     method public boolean isEmpty();
-    method public static java.lang.String join(java.lang.CharSequence, java.lang.CharSequence...);
-    method public static java.lang.String join(java.lang.CharSequence, java.lang.Iterable<? extends java.lang.CharSequence>);
+    method @NonNull public static String join(@NonNull CharSequence, java.lang.CharSequence...);
+    method @NonNull public static String join(@NonNull CharSequence, @NonNull Iterable<? extends java.lang.CharSequence>);
     method public int lastIndexOf(int);
     method public int lastIndexOf(int, int);
-    method public int lastIndexOf(java.lang.String);
-    method public int lastIndexOf(java.lang.String, int);
+    method public int lastIndexOf(@NonNull String);
+    method public int lastIndexOf(@NonNull String, int);
     method public int length();
-    method public boolean matches(java.lang.String);
+    method public boolean matches(@NonNull String);
     method public int offsetByCodePoints(int, int);
-    method public boolean regionMatches(int, java.lang.String, int, int);
-    method public boolean regionMatches(boolean, int, java.lang.String, int, int);
-    method public java.lang.String replace(char, char);
-    method public java.lang.String replace(java.lang.CharSequence, java.lang.CharSequence);
-    method public java.lang.String replaceAll(java.lang.String, java.lang.String);
-    method public java.lang.String replaceFirst(java.lang.String, java.lang.String);
-    method public java.lang.String[] split(java.lang.String, int);
-    method public java.lang.String[] split(java.lang.String);
-    method public boolean startsWith(java.lang.String, int);
-    method public boolean startsWith(java.lang.String);
-    method public java.lang.CharSequence subSequence(int, int);
-    method public java.lang.String substring(int);
-    method public java.lang.String substring(int, int);
+    method public boolean regionMatches(int, @NonNull String, int, int);
+    method public boolean regionMatches(boolean, int, @NonNull String, int, int);
+    method @NonNull public String replace(char, char);
+    method @NonNull public String replace(@NonNull CharSequence, @NonNull CharSequence);
+    method @NonNull public String replaceAll(@NonNull String, @NonNull String);
+    method @NonNull public String replaceFirst(@NonNull String, @NonNull String);
+    method public String[] split(@NonNull String, int);
+    method public String[] split(@NonNull String);
+    method public boolean startsWith(@NonNull String, int);
+    method public boolean startsWith(@NonNull String);
+    method @NonNull public CharSequence subSequence(int, int);
+    method @NonNull public String substring(int);
+    method @NonNull public String substring(int, int);
     method public char[] toCharArray();
-    method public java.lang.String toLowerCase(java.util.Locale);
-    method public java.lang.String toLowerCase();
-    method public java.lang.String toUpperCase(java.util.Locale);
-    method public java.lang.String toUpperCase();
-    method public java.lang.String trim();
-    method public static java.lang.String valueOf(java.lang.Object);
-    method public static java.lang.String valueOf(char[]);
-    method public static java.lang.String valueOf(char[], int, int);
-    method public static java.lang.String valueOf(boolean);
-    method public static java.lang.String valueOf(char);
-    method public static java.lang.String valueOf(int);
-    method public static java.lang.String valueOf(long);
-    method public static java.lang.String valueOf(float);
-    method public static java.lang.String valueOf(double);
+    method @NonNull public String toLowerCase(@NonNull java.util.Locale);
+    method @NonNull public String toLowerCase();
+    method @NonNull public String toUpperCase(@NonNull java.util.Locale);
+    method @NonNull public String toUpperCase();
+    method @NonNull public String trim();
+    method @NonNull public static String valueOf(@Nullable Object);
+    method @NonNull public static String valueOf(char[]);
+    method @NonNull public static String valueOf(char[], int, int);
+    method @NonNull public static String valueOf(boolean);
+    method @NonNull public static String valueOf(char);
+    method @NonNull public static String valueOf(int);
+    method @NonNull public static String valueOf(long);
+    method @NonNull public static String valueOf(float);
+    method @NonNull public static String valueOf(double);
     field public static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;
   }
 
   public final class StringBuffer implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
     ctor public StringBuffer();
     ctor public StringBuffer(int);
-    ctor public StringBuffer(java.lang.String);
-    ctor public StringBuffer(java.lang.CharSequence);
-    method public synchronized java.lang.StringBuffer append(java.lang.Object);
-    method public synchronized java.lang.StringBuffer append(java.lang.String);
-    method public synchronized java.lang.StringBuffer append(java.lang.StringBuffer);
-    method public synchronized java.lang.StringBuffer append(java.lang.CharSequence);
-    method public synchronized java.lang.StringBuffer append(java.lang.CharSequence, int, int);
-    method public synchronized java.lang.StringBuffer append(char[]);
-    method public synchronized java.lang.StringBuffer append(char[], int, int);
-    method public synchronized java.lang.StringBuffer append(boolean);
-    method public synchronized java.lang.StringBuffer append(char);
-    method public synchronized java.lang.StringBuffer append(int);
-    method public synchronized java.lang.StringBuffer append(long);
-    method public synchronized java.lang.StringBuffer append(float);
-    method public synchronized java.lang.StringBuffer append(double);
-    method public synchronized java.lang.StringBuffer appendCodePoint(int);
-    method public synchronized int capacity();
-    method public synchronized char charAt(int);
-    method public synchronized int codePointAt(int);
-    method public synchronized int codePointBefore(int);
-    method public synchronized int codePointCount(int, int);
-    method public synchronized java.lang.StringBuffer delete(int, int);
-    method public synchronized java.lang.StringBuffer deleteCharAt(int);
-    method public synchronized void ensureCapacity(int);
-    method public synchronized void getChars(int, int, char[], int);
-    method public int indexOf(java.lang.String);
-    method public synchronized int indexOf(java.lang.String, int);
-    method public synchronized java.lang.StringBuffer insert(int, char[], int, int);
-    method public synchronized java.lang.StringBuffer insert(int, java.lang.Object);
-    method public synchronized java.lang.StringBuffer insert(int, java.lang.String);
-    method public synchronized java.lang.StringBuffer insert(int, char[]);
-    method public java.lang.StringBuffer insert(int, java.lang.CharSequence);
-    method public synchronized java.lang.StringBuffer insert(int, java.lang.CharSequence, int, int);
-    method public java.lang.StringBuffer insert(int, boolean);
-    method public synchronized java.lang.StringBuffer insert(int, char);
-    method public java.lang.StringBuffer insert(int, int);
-    method public java.lang.StringBuffer insert(int, long);
-    method public java.lang.StringBuffer insert(int, float);
-    method public java.lang.StringBuffer insert(int, double);
-    method public int lastIndexOf(java.lang.String);
-    method public synchronized int lastIndexOf(java.lang.String, int);
-    method public synchronized int length();
-    method public synchronized int offsetByCodePoints(int, int);
-    method public synchronized java.lang.StringBuffer replace(int, int, java.lang.String);
-    method public synchronized java.lang.StringBuffer reverse();
-    method public synchronized void setCharAt(int, char);
-    method public synchronized void setLength(int);
-    method public synchronized java.lang.CharSequence subSequence(int, int);
-    method public synchronized java.lang.String substring(int);
-    method public synchronized java.lang.String substring(int, int);
-    method public synchronized java.lang.String toString();
-    method public synchronized void trimToSize();
+    ctor public StringBuffer(@NonNull String);
+    ctor public StringBuffer(@NonNull CharSequence);
+    method @NonNull public StringBuffer append(@Nullable Object);
+    method @NonNull public StringBuffer append(@Nullable String);
+    method @NonNull public StringBuffer append(@Nullable StringBuffer);
+    method @NonNull public StringBuffer append(@Nullable CharSequence);
+    method @NonNull public StringBuffer append(@Nullable CharSequence, int, int);
+    method @NonNull public StringBuffer append(char[]);
+    method @NonNull public StringBuffer append(char[], int, int);
+    method @NonNull public StringBuffer append(boolean);
+    method @NonNull public StringBuffer append(char);
+    method @NonNull public StringBuffer append(int);
+    method @NonNull public StringBuffer append(long);
+    method @NonNull public StringBuffer append(float);
+    method @NonNull public StringBuffer append(double);
+    method @NonNull public StringBuffer appendCodePoint(int);
+    method public int capacity();
+    method public char charAt(int);
+    method public int codePointAt(int);
+    method public int codePointBefore(int);
+    method public int codePointCount(int, int);
+    method @NonNull public StringBuffer delete(int, int);
+    method @NonNull public StringBuffer deleteCharAt(int);
+    method public void ensureCapacity(int);
+    method public void getChars(int, int, char[], int);
+    method public int indexOf(@NonNull String);
+    method public int indexOf(@NonNull String, int);
+    method @NonNull public StringBuffer insert(int, char[], int, int);
+    method @NonNull public StringBuffer insert(int, @Nullable Object);
+    method @NonNull public StringBuffer insert(int, @Nullable String);
+    method @NonNull public StringBuffer insert(int, char[]);
+    method @NonNull public StringBuffer insert(int, @Nullable CharSequence);
+    method @NonNull public StringBuffer insert(int, @Nullable CharSequence, int, int);
+    method @NonNull public StringBuffer insert(int, boolean);
+    method @NonNull public StringBuffer insert(int, char);
+    method @NonNull public StringBuffer insert(int, int);
+    method @NonNull public StringBuffer insert(int, long);
+    method @NonNull public StringBuffer insert(int, float);
+    method @NonNull public StringBuffer insert(int, double);
+    method public int lastIndexOf(@NonNull String);
+    method public int lastIndexOf(@NonNull String, int);
+    method public int length();
+    method public int offsetByCodePoints(int, int);
+    method @NonNull public StringBuffer replace(int, int, @NonNull String);
+    method @NonNull public StringBuffer reverse();
+    method public void setCharAt(int, char);
+    method public void setLength(int);
+    method @NonNull public CharSequence subSequence(int, int);
+    method @NonNull public String substring(int);
+    method @NonNull public String substring(int, int);
+    method public void trimToSize();
   }
 
   public final class StringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
     ctor public StringBuilder();
     ctor public StringBuilder(int);
-    ctor public StringBuilder(java.lang.String);
-    ctor public StringBuilder(java.lang.CharSequence);
-    method public java.lang.StringBuilder append(java.lang.Object);
-    method public java.lang.StringBuilder append(java.lang.String);
-    method public java.lang.StringBuilder append(java.lang.StringBuffer);
-    method public java.lang.StringBuilder append(java.lang.CharSequence);
-    method public java.lang.StringBuilder append(java.lang.CharSequence, int, int);
-    method public java.lang.StringBuilder append(char[]);
-    method public java.lang.StringBuilder append(char[], int, int);
-    method public java.lang.StringBuilder append(boolean);
-    method public java.lang.StringBuilder append(char);
-    method public java.lang.StringBuilder append(int);
-    method public java.lang.StringBuilder append(long);
-    method public java.lang.StringBuilder append(float);
-    method public java.lang.StringBuilder append(double);
-    method public java.lang.StringBuilder appendCodePoint(int);
-    method public java.lang.StringBuilder delete(int, int);
-    method public java.lang.StringBuilder deleteCharAt(int);
-    method public int indexOf(java.lang.String);
-    method public int indexOf(java.lang.String, int);
-    method public java.lang.StringBuilder insert(int, char[], int, int);
-    method public java.lang.StringBuilder insert(int, java.lang.Object);
-    method public java.lang.StringBuilder insert(int, java.lang.String);
-    method public java.lang.StringBuilder insert(int, char[]);
-    method public java.lang.StringBuilder insert(int, java.lang.CharSequence);
-    method public java.lang.StringBuilder insert(int, java.lang.CharSequence, int, int);
-    method public java.lang.StringBuilder insert(int, boolean);
-    method public java.lang.StringBuilder insert(int, char);
-    method public java.lang.StringBuilder insert(int, int);
-    method public java.lang.StringBuilder insert(int, long);
-    method public java.lang.StringBuilder insert(int, float);
-    method public java.lang.StringBuilder insert(int, double);
-    method public int lastIndexOf(java.lang.String);
-    method public int lastIndexOf(java.lang.String, int);
-    method public java.lang.StringBuilder replace(int, int, java.lang.String);
-    method public java.lang.StringBuilder reverse();
+    ctor public StringBuilder(@NonNull String);
+    ctor public StringBuilder(@NonNull CharSequence);
+    method @NonNull public StringBuilder append(@Nullable Object);
+    method @NonNull public StringBuilder append(@Nullable String);
+    method @NonNull public StringBuilder append(@Nullable StringBuffer);
+    method @NonNull public StringBuilder append(@Nullable CharSequence);
+    method @NonNull public StringBuilder append(@Nullable CharSequence, int, int);
+    method @NonNull public StringBuilder append(char[]);
+    method @NonNull public StringBuilder append(char[], int, int);
+    method @NonNull public StringBuilder append(boolean);
+    method @NonNull public StringBuilder append(char);
+    method @NonNull public StringBuilder append(int);
+    method @NonNull public StringBuilder append(long);
+    method @NonNull public StringBuilder append(float);
+    method @NonNull public StringBuilder append(double);
+    method @NonNull public StringBuilder appendCodePoint(int);
+    method public int capacity();
+    method public char charAt(int);
+    method public int codePointAt(int);
+    method public int codePointBefore(int);
+    method public int codePointCount(int, int);
+    method @NonNull public StringBuilder delete(int, int);
+    method @NonNull public StringBuilder deleteCharAt(int);
+    method public void ensureCapacity(int);
+    method public void getChars(int, int, char[], int);
+    method public int indexOf(@NonNull String);
+    method public int indexOf(@NonNull String, int);
+    method @NonNull public StringBuilder insert(int, char[], int, int);
+    method @NonNull public StringBuilder insert(int, @Nullable Object);
+    method @NonNull public StringBuilder insert(int, @Nullable String);
+    method @NonNull public StringBuilder insert(int, char[]);
+    method @NonNull public StringBuilder insert(int, @Nullable CharSequence);
+    method @NonNull public StringBuilder insert(int, @Nullable CharSequence, int, int);
+    method @NonNull public StringBuilder insert(int, boolean);
+    method @NonNull public StringBuilder insert(int, char);
+    method @NonNull public StringBuilder insert(int, int);
+    method @NonNull public StringBuilder insert(int, long);
+    method @NonNull public StringBuilder insert(int, float);
+    method @NonNull public StringBuilder insert(int, double);
+    method public int lastIndexOf(@NonNull String);
+    method public int lastIndexOf(@NonNull String, int);
+    method public int length();
+    method public int offsetByCodePoints(int, int);
+    method @NonNull public StringBuilder replace(int, int, @NonNull String);
+    method @NonNull public StringBuilder reverse();
+    method public void setCharAt(int, char);
+    method public void setLength(int);
+    method public CharSequence subSequence(int, int);
+    method public String substring(int);
+    method public String substring(int, int);
+    method public void trimToSize();
   }
 
   public class StringIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
     ctor public StringIndexOutOfBoundsException();
-    ctor public StringIndexOutOfBoundsException(java.lang.String);
+    ctor public StringIndexOutOfBoundsException(String);
     ctor public StringIndexOutOfBoundsException(int);
   }
 
-  public abstract class SuppressWarnings implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.LOCAL_VARIABLE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public @interface SuppressWarnings {
+    method public abstract String[] value();
   }
 
   public final class System {
-    method public static void arraycopy(java.lang.Object, int, java.lang.Object, int, int);
-    method public static java.lang.String clearProperty(java.lang.String);
-    method public static java.io.Console console();
+    method public static void arraycopy(@NonNull Object, int, @NonNull Object, int, int);
+    method @Nullable public static String clearProperty(@NonNull String);
+    method @Nullable public static java.io.Console console();
     method public static long currentTimeMillis();
     method public static void exit(int);
     method public static void gc();
-    method public static java.util.Properties getProperties();
-    method public static java.lang.String getProperty(java.lang.String);
-    method public static java.lang.String getProperty(java.lang.String, java.lang.String);
-    method public static java.lang.SecurityManager getSecurityManager();
-    method public static java.lang.String getenv(java.lang.String);
-    method public static java.util.Map<java.lang.String, java.lang.String> getenv();
-    method public static int identityHashCode(java.lang.Object);
-    method public static java.nio.channels.Channel inheritedChannel() throws java.io.IOException;
-    method public static java.lang.String lineSeparator();
-    method public static void load(java.lang.String);
-    method public static void loadLibrary(java.lang.String);
-    method public static java.lang.String mapLibraryName(java.lang.String);
+    method @NonNull public static java.util.Properties getProperties();
+    method @Nullable public static String getProperty(@NonNull String);
+    method @Nullable public static String getProperty(@NonNull String, @Nullable String);
+    method @Nullable public static SecurityManager getSecurityManager();
+    method @Nullable public static String getenv(@NonNull String);
+    method @NonNull public static java.util.Map<java.lang.String,java.lang.String> getenv();
+    method public static int identityHashCode(@Nullable Object);
+    method @Nullable public static java.nio.channels.Channel inheritedChannel() throws java.io.IOException;
+    method @NonNull public static String lineSeparator();
+    method public static void load(@NonNull String);
+    method public static void loadLibrary(@NonNull String);
+    method @NonNull public static String mapLibraryName(@NonNull String);
     method public static long nanoTime();
     method public static void runFinalization();
-    method public static deprecated void runFinalizersOnExit(boolean);
-    method public static void setErr(java.io.PrintStream);
-    method public static void setIn(java.io.InputStream);
-    method public static void setOut(java.io.PrintStream);
-    method public static void setProperties(java.util.Properties);
-    method public static java.lang.String setProperty(java.lang.String, java.lang.String);
-    method public static void setSecurityManager(java.lang.SecurityManager);
+    method @Deprecated public static void runFinalizersOnExit(boolean);
+    method public static void setErr(@Nullable java.io.PrintStream);
+    method public static void setIn(@Nullable java.io.InputStream);
+    method public static void setOut(@Nullable java.io.PrintStream);
+    method public static void setProperties(@Nullable java.util.Properties);
+    method @Nullable public static String setProperty(@NonNull String, @Nullable String);
+    method public static void setSecurityManager(@Nullable SecurityManager);
     field public static final java.io.PrintStream err;
     field public static final java.io.InputStream in;
     field public static final java.io.PrintStream out;
@@ -60575,31 +60457,31 @@
 
   public class Thread implements java.lang.Runnable {
     ctor public Thread();
-    ctor public Thread(java.lang.Runnable);
-    ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable);
-    ctor public Thread(java.lang.String);
-    ctor public Thread(java.lang.ThreadGroup, java.lang.String);
-    ctor public Thread(java.lang.Runnable, java.lang.String);
-    ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String);
-    ctor public Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String, long);
+    ctor public Thread(@Nullable Runnable);
+    ctor public Thread(@Nullable ThreadGroup, @Nullable Runnable);
+    ctor public Thread(@NonNull String);
+    ctor public Thread(@Nullable ThreadGroup, @NonNull String);
+    ctor public Thread(@Nullable Runnable, @NonNull String);
+    ctor public Thread(@Nullable ThreadGroup, @Nullable Runnable, @NonNull String);
+    ctor public Thread(@Nullable ThreadGroup, @Nullable Runnable, @NonNull String, long);
     method public static int activeCount();
     method public final void checkAccess();
-    method public deprecated int countStackFrames();
-    method public static java.lang.Thread currentThread();
-    method public deprecated void destroy();
+    method @Deprecated public int countStackFrames();
+    method @NonNull public static Thread currentThread();
+    method @Deprecated public void destroy();
     method public static void dumpStack();
-    method public static int enumerate(java.lang.Thread[]);
-    method public static java.util.Map<java.lang.Thread, java.lang.StackTraceElement[]> getAllStackTraces();
-    method public java.lang.ClassLoader getContextClassLoader();
-    method public static java.lang.Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler();
+    method public static int enumerate(Thread[]);
+    method @NonNull public static java.util.Map<java.lang.Thread,java.lang.StackTraceElement[]> getAllStackTraces();
+    method @Nullable public ClassLoader getContextClassLoader();
+    method @Nullable public static java.lang.Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler();
     method public long getId();
-    method public final java.lang.String getName();
+    method @NonNull public final String getName();
     method public final int getPriority();
-    method public java.lang.StackTraceElement[] getStackTrace();
-    method public java.lang.Thread.State getState();
-    method public final java.lang.ThreadGroup getThreadGroup();
-    method public java.lang.Thread.UncaughtExceptionHandler getUncaughtExceptionHandler();
-    method public static boolean holdsLock(java.lang.Object);
+    method public StackTraceElement[] getStackTrace();
+    method @NonNull public java.lang.Thread.State getState();
+    method @Nullable public final ThreadGroup getThreadGroup();
+    method @Nullable public java.lang.Thread.UncaughtExceptionHandler getUncaughtExceptionHandler();
+    method public static boolean holdsLock(@NonNull Object);
     method public void interrupt();
     method public static boolean interrupted();
     method public final boolean isAlive();
@@ -60608,29 +60490,27 @@
     method public final void join(long) throws java.lang.InterruptedException;
     method public final void join(long, int) throws java.lang.InterruptedException;
     method public final void join() throws java.lang.InterruptedException;
-    method public final deprecated void resume();
+    method @Deprecated public final void resume();
     method public void run();
-    method public void setContextClassLoader(java.lang.ClassLoader);
+    method public void setContextClassLoader(@Nullable ClassLoader);
     method public final void setDaemon(boolean);
-    method public static void setDefaultUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler);
-    method public final synchronized void setName(java.lang.String);
+    method public static void setDefaultUncaughtExceptionHandler(@Nullable java.lang.Thread.UncaughtExceptionHandler);
+    method public final void setName(@NonNull String);
     method public final void setPriority(int);
-    method public void setUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler);
+    method public void setUncaughtExceptionHandler(@Nullable java.lang.Thread.UncaughtExceptionHandler);
     method public static void sleep(long) throws java.lang.InterruptedException;
     method public static void sleep(long, int) throws java.lang.InterruptedException;
-    method public synchronized void start();
-    method public final deprecated void stop();
-    method public final deprecated synchronized void stop(java.lang.Throwable);
-    method public final deprecated void suspend();
+    method public void start();
+    method @Deprecated public final void stop();
+    method @Deprecated public final void stop(@Nullable Throwable);
+    method @Deprecated public final void suspend();
     method public static void yield();
     field public static final int MAX_PRIORITY = 10; // 0xa
     field public static final int MIN_PRIORITY = 1; // 0x1
     field public static final int NORM_PRIORITY = 5; // 0x5
   }
 
-  public static final class Thread.State extends java.lang.Enum {
-    method public static java.lang.Thread.State valueOf(java.lang.String);
-    method public static final java.lang.Thread.State[] values();
+  public enum Thread.State {
     enum_constant public static final java.lang.Thread.State BLOCKED;
     enum_constant public static final java.lang.Thread.State NEW;
     enum_constant public static final java.lang.Thread.State RUNNABLE;
@@ -60639,8 +60519,8 @@
     enum_constant public static final java.lang.Thread.State WAITING;
   }
 
-  public static abstract interface Thread.UncaughtExceptionHandler {
-    method public abstract void uncaughtException(java.lang.Thread, java.lang.Throwable);
+  @java.lang.FunctionalInterface public static interface Thread.UncaughtExceptionHandler {
+    method public void uncaughtException(@NonNull Thread, @NonNull Throwable);
   }
 
   public class ThreadDeath extends java.lang.Error {
@@ -60648,134 +60528,132 @@
   }
 
   public class ThreadGroup implements java.lang.Thread.UncaughtExceptionHandler {
-    ctor public ThreadGroup(java.lang.String);
-    ctor public ThreadGroup(java.lang.ThreadGroup, java.lang.String);
+    ctor public ThreadGroup(String);
+    ctor public ThreadGroup(ThreadGroup, String);
     method public int activeCount();
     method public int activeGroupCount();
-    method public deprecated boolean allowThreadSuspension(boolean);
+    method @Deprecated public boolean allowThreadSuspension(boolean);
     method public final void checkAccess();
     method public final void destroy();
-    method public int enumerate(java.lang.Thread[]);
-    method public int enumerate(java.lang.Thread[], boolean);
-    method public int enumerate(java.lang.ThreadGroup[]);
-    method public int enumerate(java.lang.ThreadGroup[], boolean);
+    method public int enumerate(Thread[]);
+    method public int enumerate(Thread[], boolean);
+    method public int enumerate(ThreadGroup[]);
+    method public int enumerate(ThreadGroup[], boolean);
     method public final int getMaxPriority();
-    method public final java.lang.String getName();
-    method public final java.lang.ThreadGroup getParent();
+    method public final String getName();
+    method public final ThreadGroup getParent();
     method public final void interrupt();
     method public final boolean isDaemon();
-    method public synchronized boolean isDestroyed();
+    method public boolean isDestroyed();
     method public void list();
-    method public final boolean parentOf(java.lang.ThreadGroup);
-    method public final deprecated void resume();
+    method public final boolean parentOf(ThreadGroup);
+    method @Deprecated public final void resume();
     method public final void setDaemon(boolean);
     method public final void setMaxPriority(int);
-    method public final deprecated void stop();
-    method public final deprecated void suspend();
-    method public void uncaughtException(java.lang.Thread, java.lang.Throwable);
+    method @Deprecated public final void stop();
+    method @Deprecated public final void suspend();
+    method public void uncaughtException(Thread, Throwable);
   }
 
   public class ThreadLocal<T> {
     ctor public ThreadLocal();
-    method public T get();
-    method protected T initialValue();
+    method @Nullable public T get();
+    method @Nullable protected T initialValue();
     method public void remove();
     method public void set(T);
-    method public static <S> java.lang.ThreadLocal<S> withInitial(java.util.function.Supplier<? extends S>);
+    method @NonNull public static <S> ThreadLocal<S> withInitial(@NonNull java.util.function.Supplier<? extends S>);
   }
 
   public class Throwable implements java.io.Serializable {
     ctor public Throwable();
-    ctor public Throwable(java.lang.String);
-    ctor public Throwable(java.lang.String, java.lang.Throwable);
-    ctor public Throwable(java.lang.Throwable);
-    ctor protected Throwable(java.lang.String, java.lang.Throwable, boolean, boolean);
-    method public final synchronized void addSuppressed(java.lang.Throwable);
-    method public synchronized java.lang.Throwable fillInStackTrace();
-    method public synchronized java.lang.Throwable getCause();
-    method public java.lang.String getLocalizedMessage();
-    method public java.lang.String getMessage();
-    method public java.lang.StackTraceElement[] getStackTrace();
-    method public final synchronized java.lang.Throwable[] getSuppressed();
-    method public synchronized java.lang.Throwable initCause(java.lang.Throwable);
+    ctor public Throwable(@Nullable String);
+    ctor public Throwable(@Nullable String, @Nullable Throwable);
+    ctor public Throwable(@Nullable Throwable);
+    ctor protected Throwable(@Nullable String, @Nullable Throwable, boolean, boolean);
+    method public final void addSuppressed(@NonNull Throwable);
+    method @NonNull public Throwable fillInStackTrace();
+    method @Nullable public Throwable getCause();
+    method @Nullable public String getLocalizedMessage();
+    method @Nullable public String getMessage();
+    method public StackTraceElement[] getStackTrace();
+    method public final Throwable[] getSuppressed();
+    method @NonNull public Throwable initCause(@Nullable Throwable);
     method public void printStackTrace();
-    method public void printStackTrace(java.io.PrintStream);
-    method public void printStackTrace(java.io.PrintWriter);
-    method public void setStackTrace(java.lang.StackTraceElement[]);
+    method public void printStackTrace(@NonNull java.io.PrintStream);
+    method public void printStackTrace(@NonNull java.io.PrintWriter);
+    method public void setStackTrace(StackTraceElement[]);
   }
 
   public class TypeNotPresentException extends java.lang.RuntimeException {
-    ctor public TypeNotPresentException(java.lang.String, java.lang.Throwable);
-    method public java.lang.String typeName();
+    ctor public TypeNotPresentException(String, Throwable);
+    method public String typeName();
   }
 
   public class UnknownError extends java.lang.VirtualMachineError {
     ctor public UnknownError();
-    ctor public UnknownError(java.lang.String);
+    ctor public UnknownError(String);
   }
 
   public class UnsatisfiedLinkError extends java.lang.LinkageError {
     ctor public UnsatisfiedLinkError();
-    ctor public UnsatisfiedLinkError(java.lang.String);
+    ctor public UnsatisfiedLinkError(String);
   }
 
   public class UnsupportedClassVersionError extends java.lang.ClassFormatError {
     ctor public UnsupportedClassVersionError();
-    ctor public UnsupportedClassVersionError(java.lang.String);
+    ctor public UnsupportedClassVersionError(String);
   }
 
   public class UnsupportedOperationException extends java.lang.RuntimeException {
     ctor public UnsupportedOperationException();
-    ctor public UnsupportedOperationException(java.lang.String);
-    ctor public UnsupportedOperationException(java.lang.String, java.lang.Throwable);
-    ctor public UnsupportedOperationException(java.lang.Throwable);
+    ctor public UnsupportedOperationException(String);
+    ctor public UnsupportedOperationException(String, Throwable);
+    ctor public UnsupportedOperationException(Throwable);
   }
 
   public class VerifyError extends java.lang.LinkageError {
     ctor public VerifyError();
-    ctor public VerifyError(java.lang.String);
+    ctor public VerifyError(String);
   }
 
   public abstract class VirtualMachineError extends java.lang.Error {
     ctor public VirtualMachineError();
-    ctor public VirtualMachineError(java.lang.String);
-    ctor public VirtualMachineError(java.lang.String, java.lang.Throwable);
-    ctor public VirtualMachineError(java.lang.Throwable);
+    ctor public VirtualMachineError(String);
+    ctor public VirtualMachineError(String, Throwable);
+    ctor public VirtualMachineError(Throwable);
   }
 
   public final class Void {
-    field public static final java.lang.Class<java.lang.Void> TYPE;
+    field public static final Class<java.lang.Void> TYPE;
   }
 
 }
 
 package java.lang.annotation {
 
-  public abstract interface Annotation {
-    method public abstract java.lang.Class<? extends java.lang.annotation.Annotation> annotationType();
-    method public abstract boolean equals(java.lang.Object);
-    method public abstract int hashCode();
-    method public abstract java.lang.String toString();
+  public interface Annotation {
+    method public Class<? extends java.lang.annotation.Annotation> annotationType();
+    method public boolean equals(Object);
+    method public int hashCode();
+    method public String toString();
   }
 
   public class AnnotationFormatError extends java.lang.Error {
-    ctor public AnnotationFormatError(java.lang.String);
-    ctor public AnnotationFormatError(java.lang.String, java.lang.Throwable);
-    ctor public AnnotationFormatError(java.lang.Throwable);
+    ctor public AnnotationFormatError(String);
+    ctor public AnnotationFormatError(String, Throwable);
+    ctor public AnnotationFormatError(Throwable);
   }
 
   public class AnnotationTypeMismatchException extends java.lang.RuntimeException {
-    ctor public AnnotationTypeMismatchException(java.lang.reflect.Method, java.lang.String);
+    ctor public AnnotationTypeMismatchException(java.lang.reflect.Method, String);
     method public java.lang.reflect.Method element();
-    method public java.lang.String foundType();
+    method public String foundType();
   }
 
-  public abstract class Documented implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.ANNOTATION_TYPE) public @interface Documented {
   }
 
-  public final class ElementType extends java.lang.Enum {
-    method public static java.lang.annotation.ElementType valueOf(java.lang.String);
-    method public static final java.lang.annotation.ElementType[] values();
+  public enum ElementType {
     enum_constant public static final java.lang.annotation.ElementType ANNOTATION_TYPE;
     enum_constant public static final java.lang.annotation.ElementType CONSTRUCTOR;
     enum_constant public static final java.lang.annotation.ElementType FIELD;
@@ -60789,32 +60667,33 @@
   }
 
   public class IncompleteAnnotationException extends java.lang.RuntimeException {
-    ctor public IncompleteAnnotationException(java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.String);
-    method public java.lang.Class<? extends java.lang.annotation.Annotation> annotationType();
-    method public java.lang.String elementName();
+    ctor public IncompleteAnnotationException(Class<? extends java.lang.annotation.Annotation>, String);
+    method public Class<? extends java.lang.annotation.Annotation> annotationType();
+    method public String elementName();
   }
 
-  public abstract class Inherited implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.ANNOTATION_TYPE) public @interface Inherited {
   }
 
-  public abstract class Native implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.FIELD) public @interface Native {
   }
 
-  public abstract class Repeatable implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.ANNOTATION_TYPE) public @interface Repeatable {
+    method public abstract Class<? extends java.lang.annotation.Annotation> value();
   }
 
-  public abstract class Retention implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.ANNOTATION_TYPE) public @interface Retention {
+    method public abstract java.lang.annotation.RetentionPolicy value();
   }
 
-  public final class RetentionPolicy extends java.lang.Enum {
-    method public static java.lang.annotation.RetentionPolicy valueOf(java.lang.String);
-    method public static final java.lang.annotation.RetentionPolicy[] values();
+  public enum RetentionPolicy {
     enum_constant public static final java.lang.annotation.RetentionPolicy CLASS;
     enum_constant public static final java.lang.annotation.RetentionPolicy RUNTIME;
     enum_constant public static final java.lang.annotation.RetentionPolicy SOURCE;
   }
 
-  public abstract class Target implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.ANNOTATION_TYPE) public @interface Target {
+    method public abstract java.lang.annotation.ElementType[] value();
   }
 
 }
@@ -60838,40 +60717,40 @@
 
   public class LambdaConversionException extends java.lang.Exception {
     ctor public LambdaConversionException();
-    ctor public LambdaConversionException(java.lang.String);
-    ctor public LambdaConversionException(java.lang.String, java.lang.Throwable);
-    ctor public LambdaConversionException(java.lang.Throwable);
-    ctor public LambdaConversionException(java.lang.String, java.lang.Throwable, boolean, boolean);
+    ctor public LambdaConversionException(String);
+    ctor public LambdaConversionException(String, Throwable);
+    ctor public LambdaConversionException(Throwable);
+    ctor public LambdaConversionException(String, Throwable, boolean, boolean);
   }
 
   public abstract class MethodHandle {
-    method public java.lang.invoke.MethodHandle asCollector(java.lang.Class<?>, int);
+    method public java.lang.invoke.MethodHandle asCollector(Class<?>, int);
     method public java.lang.invoke.MethodHandle asFixedArity();
-    method public java.lang.invoke.MethodHandle asSpreader(java.lang.Class<?>, int);
+    method public java.lang.invoke.MethodHandle asSpreader(Class<?>, int);
     method public java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType);
-    method public java.lang.invoke.MethodHandle asVarargsCollector(java.lang.Class<?>);
-    method public java.lang.invoke.MethodHandle bindTo(java.lang.Object);
-    method public final java.lang.Object invoke(java.lang.Object...) throws java.lang.Throwable;
-    method public final java.lang.Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
-    method public java.lang.Object invokeWithArguments(java.lang.Object...) throws java.lang.Throwable;
-    method public java.lang.Object invokeWithArguments(java.util.List<?>) throws java.lang.Throwable;
+    method public java.lang.invoke.MethodHandle asVarargsCollector(Class<?>);
+    method public java.lang.invoke.MethodHandle bindTo(Object);
+    method public final Object invoke(java.lang.Object...) throws java.lang.Throwable;
+    method public final Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
+    method public Object invokeWithArguments(java.lang.Object...) throws java.lang.Throwable;
+    method public Object invokeWithArguments(java.util.List<?>) throws java.lang.Throwable;
     method public boolean isVarargsCollector();
     method public java.lang.invoke.MethodType type();
   }
 
-  public abstract interface MethodHandleInfo {
-    method public abstract java.lang.Class<?> getDeclaringClass();
-    method public abstract java.lang.invoke.MethodType getMethodType();
-    method public abstract int getModifiers();
-    method public abstract java.lang.String getName();
-    method public abstract int getReferenceKind();
+  public interface MethodHandleInfo {
+    method public Class<?> getDeclaringClass();
+    method public java.lang.invoke.MethodType getMethodType();
+    method public int getModifiers();
+    method public String getName();
+    method public int getReferenceKind();
     method public default boolean isVarArgs();
     method public static boolean refKindIsField(int);
     method public static boolean refKindIsValid(int);
-    method public static java.lang.String refKindName(int);
-    method public static java.lang.String referenceKindToString(int);
-    method public abstract <T extends java.lang.reflect.Member> T reflectAs(java.lang.Class<T>, java.lang.invoke.MethodHandles.Lookup);
-    method public static java.lang.String toString(int, java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
+    method public static String refKindName(int);
+    method public static String referenceKindToString(int);
+    method public <T extends java.lang.reflect.Member> T reflectAs(Class<T>, java.lang.invoke.MethodHandles.Lookup);
+    method public static String toString(int, Class<?>, String, java.lang.invoke.MethodType);
     field public static final int REF_getField = 1; // 0x1
     field public static final int REF_getStatic = 2; // 0x2
     field public static final int REF_invokeInterface = 9; // 0x9
@@ -60884,49 +60763,49 @@
   }
 
   public class MethodHandles {
-    method public static java.lang.invoke.MethodHandle arrayElementGetter(java.lang.Class<?>) throws java.lang.IllegalArgumentException;
-    method public static java.lang.invoke.MethodHandle arrayElementSetter(java.lang.Class<?>) throws java.lang.IllegalArgumentException;
-    method public static java.lang.invoke.MethodHandle catchException(java.lang.invoke.MethodHandle, java.lang.Class<? extends java.lang.Throwable>, java.lang.invoke.MethodHandle);
+    method public static java.lang.invoke.MethodHandle arrayElementGetter(Class<?>) throws java.lang.IllegalArgumentException;
+    method public static java.lang.invoke.MethodHandle arrayElementSetter(Class<?>) throws java.lang.IllegalArgumentException;
+    method public static java.lang.invoke.MethodHandle catchException(java.lang.invoke.MethodHandle, Class<? extends java.lang.Throwable>, java.lang.invoke.MethodHandle);
     method public static java.lang.invoke.MethodHandle collectArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
-    method public static java.lang.invoke.MethodHandle constant(java.lang.Class<?>, java.lang.Object);
+    method public static java.lang.invoke.MethodHandle constant(Class<?>, Object);
     method public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>);
-    method public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class<?>...);
+    method public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, Class<?>...);
     method public static java.lang.invoke.MethodHandle exactInvoker(java.lang.invoke.MethodType);
     method public static java.lang.invoke.MethodHandle explicitCastArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
     method public static java.lang.invoke.MethodHandle filterArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle...);
     method public static java.lang.invoke.MethodHandle filterReturnValue(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
     method public static java.lang.invoke.MethodHandle foldArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
     method public static java.lang.invoke.MethodHandle guardWithTest(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
-    method public static java.lang.invoke.MethodHandle identity(java.lang.Class<?>);
+    method public static java.lang.invoke.MethodHandle identity(Class<?>);
     method public static java.lang.invoke.MethodHandle insertArguments(java.lang.invoke.MethodHandle, int, java.lang.Object...);
     method public static java.lang.invoke.MethodHandle invoker(java.lang.invoke.MethodType);
     method public static java.lang.invoke.MethodHandles.Lookup lookup();
     method public static java.lang.invoke.MethodHandle permuteArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, int...);
     method public static java.lang.invoke.MethodHandles.Lookup publicLookup();
-    method public static <T extends java.lang.reflect.Member> T reflectAs(java.lang.Class<T>, java.lang.invoke.MethodHandle);
+    method public static <T extends java.lang.reflect.Member> T reflectAs(Class<T>, java.lang.invoke.MethodHandle);
     method public static java.lang.invoke.MethodHandle spreadInvoker(java.lang.invoke.MethodType, int);
-    method public static java.lang.invoke.MethodHandle throwException(java.lang.Class<?>, java.lang.Class<? extends java.lang.Throwable>);
+    method public static java.lang.invoke.MethodHandle throwException(Class<?>, Class<? extends java.lang.Throwable>);
   }
 
   public static final class MethodHandles.Lookup {
-    method public java.lang.invoke.MethodHandle bind(java.lang.Object, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
-    method public java.lang.invoke.MethodHandle findConstructor(java.lang.Class<?>, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
-    method public java.lang.invoke.MethodHandle findGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
-    method public java.lang.invoke.MethodHandle findSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
-    method public java.lang.invoke.MethodHandle findSpecial(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
-    method public java.lang.invoke.MethodHandle findStatic(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
-    method public java.lang.invoke.MethodHandle findStaticGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
-    method public java.lang.invoke.MethodHandle findStaticSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
-    method public java.lang.invoke.MethodHandle findVirtual(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
-    method public java.lang.invoke.MethodHandles.Lookup in(java.lang.Class<?>);
-    method public java.lang.Class<?> lookupClass();
+    method public java.lang.invoke.MethodHandle bind(Object, String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+    method public java.lang.invoke.MethodHandle findConstructor(Class<?>, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+    method public java.lang.invoke.MethodHandle findGetter(Class<?>, String, Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+    method public java.lang.invoke.MethodHandle findSetter(Class<?>, String, Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+    method public java.lang.invoke.MethodHandle findSpecial(Class<?>, String, java.lang.invoke.MethodType, Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+    method public java.lang.invoke.MethodHandle findStatic(Class<?>, String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+    method public java.lang.invoke.MethodHandle findStaticGetter(Class<?>, String, Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+    method public java.lang.invoke.MethodHandle findStaticSetter(Class<?>, String, Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+    method public java.lang.invoke.MethodHandle findVirtual(Class<?>, String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+    method public java.lang.invoke.MethodHandles.Lookup in(Class<?>);
+    method public Class<?> lookupClass();
     method public int lookupModes();
     method public java.lang.invoke.MethodHandleInfo revealDirect(java.lang.invoke.MethodHandle);
     method public java.lang.invoke.MethodHandle unreflect(java.lang.reflect.Method) throws java.lang.IllegalAccessException;
     method public java.lang.invoke.MethodHandle unreflectConstructor(java.lang.reflect.Constructor<?>) throws java.lang.IllegalAccessException;
     method public java.lang.invoke.MethodHandle unreflectGetter(java.lang.reflect.Field) throws java.lang.IllegalAccessException;
     method public java.lang.invoke.MethodHandle unreflectSetter(java.lang.reflect.Field) throws java.lang.IllegalAccessException;
-    method public java.lang.invoke.MethodHandle unreflectSpecial(java.lang.reflect.Method, java.lang.Class<?>) throws java.lang.IllegalAccessException;
+    method public java.lang.invoke.MethodHandle unreflectSpecial(java.lang.reflect.Method, Class<?>) throws java.lang.IllegalAccessException;
     field public static final int PACKAGE = 8; // 0x8
     field public static final int PRIVATE = 2; // 0x2
     field public static final int PROTECTED = 4; // 0x4
@@ -60934,32 +60813,32 @@
   }
 
   public final class MethodType implements java.io.Serializable {
-    method public java.lang.invoke.MethodType appendParameterTypes(java.lang.Class<?>...);
+    method public java.lang.invoke.MethodType appendParameterTypes(Class<?>...);
     method public java.lang.invoke.MethodType appendParameterTypes(java.util.List<java.lang.Class<?>>);
-    method public java.lang.invoke.MethodType changeParameterType(int, java.lang.Class<?>);
-    method public java.lang.invoke.MethodType changeReturnType(java.lang.Class<?>);
+    method public java.lang.invoke.MethodType changeParameterType(int, Class<?>);
+    method public java.lang.invoke.MethodType changeReturnType(Class<?>);
     method public java.lang.invoke.MethodType dropParameterTypes(int, int);
     method public java.lang.invoke.MethodType erase();
-    method public static java.lang.invoke.MethodType fromMethodDescriptorString(java.lang.String, java.lang.ClassLoader) throws java.lang.IllegalArgumentException, java.lang.TypeNotPresentException;
+    method public static java.lang.invoke.MethodType fromMethodDescriptorString(String, ClassLoader) throws java.lang.IllegalArgumentException, java.lang.TypeNotPresentException;
     method public java.lang.invoke.MethodType generic();
     method public static java.lang.invoke.MethodType genericMethodType(int, boolean);
     method public static java.lang.invoke.MethodType genericMethodType(int);
     method public boolean hasPrimitives();
     method public boolean hasWrappers();
-    method public java.lang.invoke.MethodType insertParameterTypes(int, java.lang.Class<?>...);
+    method public java.lang.invoke.MethodType insertParameterTypes(int, Class<?>...);
     method public java.lang.invoke.MethodType insertParameterTypes(int, java.util.List<java.lang.Class<?>>);
-    method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>[]);
-    method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.util.List<java.lang.Class<?>>);
-    method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>, java.lang.Class<?>...);
-    method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>);
-    method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>);
-    method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.invoke.MethodType);
-    method public java.lang.Class<?>[] parameterArray();
+    method public static java.lang.invoke.MethodType methodType(Class<?>, Class<?>[]);
+    method public static java.lang.invoke.MethodType methodType(Class<?>, java.util.List<java.lang.Class<?>>);
+    method public static java.lang.invoke.MethodType methodType(Class<?>, Class<?>, Class<?>...);
+    method public static java.lang.invoke.MethodType methodType(Class<?>);
+    method public static java.lang.invoke.MethodType methodType(Class<?>, Class<?>);
+    method public static java.lang.invoke.MethodType methodType(Class<?>, java.lang.invoke.MethodType);
+    method public Class<?>[] parameterArray();
     method public int parameterCount();
     method public java.util.List<java.lang.Class<?>> parameterList();
-    method public java.lang.Class<?> parameterType(int);
-    method public java.lang.Class<?> returnType();
-    method public java.lang.String toMethodDescriptorString();
+    method public Class<?> parameterType(int);
+    method public Class<?> returnType();
+    method public String toMethodDescriptorString();
     method public java.lang.invoke.MethodType unwrap();
     method public java.lang.invoke.MethodType wrap();
   }
@@ -60982,14 +60861,14 @@
 
   public class WrongMethodTypeException extends java.lang.RuntimeException {
     ctor public WrongMethodTypeException();
-    ctor public WrongMethodTypeException(java.lang.String);
+    ctor public WrongMethodTypeException(String);
   }
 
 }
 
 package java.lang.ref {
 
-  public class PhantomReference<T> extends java.lang.ref.Reference {
+  public class PhantomReference<T> extends java.lang.ref.Reference<T> {
     ctor public PhantomReference(T, java.lang.ref.ReferenceQueue<? super T>);
   }
 
@@ -60998,7 +60877,7 @@
     method public boolean enqueue();
     method public T get();
     method public boolean isEnqueued();
-    method public static void reachabilityFence(java.lang.Object);
+    method public static void reachabilityFence(Object);
   }
 
   public class ReferenceQueue<T> {
@@ -61008,12 +60887,12 @@
     method public java.lang.ref.Reference<? extends T> remove() throws java.lang.InterruptedException;
   }
 
-  public class SoftReference<T> extends java.lang.ref.Reference {
+  public class SoftReference<T> extends java.lang.ref.Reference<T> {
     ctor public SoftReference(T);
     ctor public SoftReference(T, java.lang.ref.ReferenceQueue<? super T>);
   }
 
-  public class WeakReference<T> extends java.lang.ref.Reference {
+  public class WeakReference<T> extends java.lang.ref.Reference<T> {
     ctor public WeakReference(T);
     ctor public WeakReference(T, java.lang.ref.ReferenceQueue<? super T>);
   }
@@ -61024,7 +60903,7 @@
 
   public class AccessibleObject implements java.lang.reflect.AnnotatedElement {
     ctor protected AccessibleObject();
-    method public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T>);
+    method @Nullable public <T extends java.lang.annotation.Annotation> T getAnnotation(@NonNull Class<T>);
     method public java.lang.annotation.Annotation[] getAnnotations();
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public boolean isAccessible();
@@ -61032,118 +60911,117 @@
     method public void setAccessible(boolean) throws java.lang.SecurityException;
   }
 
-  public abstract interface AnnotatedElement {
-    method public abstract <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T>);
-    method public abstract java.lang.annotation.Annotation[] getAnnotations();
-    method public default <T extends java.lang.annotation.Annotation> T[] getAnnotationsByType(java.lang.Class<T>);
-    method public default <T extends java.lang.annotation.Annotation> T getDeclaredAnnotation(java.lang.Class<T>);
-    method public abstract java.lang.annotation.Annotation[] getDeclaredAnnotations();
-    method public default <T extends java.lang.annotation.Annotation> T[] getDeclaredAnnotationsByType(java.lang.Class<T>);
-    method public default boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>);
+  public interface AnnotatedElement {
+    method @Nullable public <T extends java.lang.annotation.Annotation> T getAnnotation(@NonNull Class<T>);
+    method public java.lang.annotation.Annotation[] getAnnotations();
+    method public default <T extends java.lang.annotation.Annotation> T[] getAnnotationsByType(@NonNull Class<T>);
+    method @Nullable public default <T extends java.lang.annotation.Annotation> T getDeclaredAnnotation(@NonNull Class<T>);
+    method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
+    method public default <T extends java.lang.annotation.Annotation> T[] getDeclaredAnnotationsByType(@NonNull Class<T>);
+    method public default boolean isAnnotationPresent(@NonNull Class<? extends java.lang.annotation.Annotation>);
   }
 
   public final class Array {
-    method public static java.lang.Object get(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static boolean getBoolean(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static byte getByte(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static char getChar(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static double getDouble(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static float getFloat(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static int getInt(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static int getLength(java.lang.Object);
-    method public static long getLong(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static short getShort(java.lang.Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static java.lang.Object newInstance(java.lang.Class<?>, int) throws java.lang.NegativeArraySizeException;
-    method public static java.lang.Object newInstance(java.lang.Class<?>, int...) throws java.lang.IllegalArgumentException, java.lang.NegativeArraySizeException;
-    method public static void set(java.lang.Object, int, java.lang.Object) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static void setBoolean(java.lang.Object, int, boolean);
-    method public static void setByte(java.lang.Object, int, byte) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static void setChar(java.lang.Object, int, char) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static void setDouble(java.lang.Object, int, double) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static void setFloat(java.lang.Object, int, float) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static void setInt(java.lang.Object, int, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static void setLong(java.lang.Object, int, long) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
-    method public static void setShort(java.lang.Object, int, short) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method @Nullable public static Object get(@NonNull Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static boolean getBoolean(@NonNull Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static byte getByte(@NonNull Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static char getChar(@NonNull Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static double getDouble(@NonNull Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static float getFloat(@NonNull Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static int getInt(@NonNull Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static int getLength(@NonNull Object);
+    method public static long getLong(@NonNull Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static short getShort(@NonNull Object, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method @NonNull public static Object newInstance(@NonNull Class<?>, int) throws java.lang.NegativeArraySizeException;
+    method @NonNull public static Object newInstance(@NonNull Class<?>, int...) throws java.lang.IllegalArgumentException, java.lang.NegativeArraySizeException;
+    method public static void set(@NonNull Object, int, @Nullable Object) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static void setBoolean(@NonNull Object, int, boolean);
+    method public static void setByte(@NonNull Object, int, byte) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static void setChar(@NonNull Object, int, char) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static void setDouble(@NonNull Object, int, double) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static void setFloat(@NonNull Object, int, float) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static void setInt(@NonNull Object, int, int) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static void setLong(@NonNull Object, int, long) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
+    method public static void setShort(@NonNull Object, int, short) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException;
   }
 
   public final class Constructor<T> extends java.lang.reflect.Executable {
-    method public java.lang.Class<T> getDeclaringClass();
-    method public java.lang.Class<?>[] getExceptionTypes();
+    method @NonNull public Class<T> getDeclaringClass();
+    method public Class<?>[] getExceptionTypes();
     method public int getModifiers();
-    method public java.lang.String getName();
+    method @NonNull public String getName();
     method public java.lang.annotation.Annotation[][] getParameterAnnotations();
-    method public java.lang.Class<?>[] getParameterTypes();
+    method public Class<?>[] getParameterTypes();
     method public java.lang.reflect.TypeVariable<java.lang.reflect.Constructor<T>>[] getTypeParameters();
-    method public T newInstance(java.lang.Object...) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException;
-    method public java.lang.String toGenericString();
+    method @NonNull public T newInstance(java.lang.Object...) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException;
+    method @NonNull public String toGenericString();
   }
 
   public abstract class Executable extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
-    method public abstract java.lang.Class<?>[] getExceptionTypes();
+    method public abstract Class<?>[] getExceptionTypes();
     method public java.lang.reflect.Type[] getGenericExceptionTypes();
     method public java.lang.reflect.Type[] getGenericParameterTypes();
     method public abstract java.lang.annotation.Annotation[][] getParameterAnnotations();
     method public int getParameterCount();
-    method public abstract java.lang.Class<?>[] getParameterTypes();
+    method public abstract Class<?>[] getParameterTypes();
     method public java.lang.reflect.Parameter[] getParameters();
-    method public final boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>);
+    method public final boolean isAnnotationPresent(@NonNull Class<? extends java.lang.annotation.Annotation>);
     method public boolean isSynthetic();
     method public boolean isVarArgs();
-    method public abstract java.lang.String toGenericString();
+    method @NonNull public abstract String toGenericString();
   }
 
   public final class Field extends java.lang.reflect.AccessibleObject implements java.lang.reflect.Member {
-    method public java.lang.Object get(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public boolean getBoolean(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public byte getByte(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public char getChar(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public java.lang.Class<?> getDeclaringClass();
-    method public double getDouble(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public float getFloat(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public java.lang.reflect.Type getGenericType();
-    method public int getInt(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public long getLong(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method @Nullable public Object get(@Nullable Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public boolean getBoolean(@Nullable Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public byte getByte(@Nullable Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public char getChar(@Nullable Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method @NonNull public Class<?> getDeclaringClass();
+    method public double getDouble(@Nullable Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public float getFloat(@Nullable Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method @NonNull public java.lang.reflect.Type getGenericType();
+    method public int getInt(@Nullable Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public long getLong(@Nullable Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
     method public int getModifiers();
-    method public java.lang.String getName();
-    method public short getShort(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public java.lang.Class<?> getType();
+    method @NonNull public String getName();
+    method public short getShort(@Nullable Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method @NonNull public Class<?> getType();
     method public boolean isEnumConstant();
     method public boolean isSynthetic();
-    method public void set(java.lang.Object, java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public void setBoolean(java.lang.Object, boolean) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public void setByte(java.lang.Object, byte) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public void setChar(java.lang.Object, char) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public void setDouble(java.lang.Object, double) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public void setFloat(java.lang.Object, float) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public void setInt(java.lang.Object, int) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public void setLong(java.lang.Object, long) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public void setShort(java.lang.Object, short) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
-    method public java.lang.String toGenericString();
+    method public void set(@Nullable Object, @Nullable Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public void setBoolean(@Nullable Object, boolean) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public void setByte(@Nullable Object, byte) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public void setChar(@Nullable Object, char) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public void setDouble(@Nullable Object, double) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public void setFloat(@Nullable Object, float) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public void setInt(@Nullable Object, int) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public void setLong(@Nullable Object, long) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method public void setShort(@Nullable Object, short) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException;
+    method @NonNull public String toGenericString();
   }
 
-  public abstract interface GenericArrayType implements java.lang.reflect.Type {
-    method public abstract java.lang.reflect.Type getGenericComponentType();
+  public interface GenericArrayType extends java.lang.reflect.Type {
+    method @NonNull public java.lang.reflect.Type getGenericComponentType();
   }
 
-  public abstract interface GenericDeclaration implements java.lang.reflect.AnnotatedElement {
-    method public abstract java.lang.reflect.TypeVariable<?>[] getTypeParameters();
+  public interface GenericDeclaration extends java.lang.reflect.AnnotatedElement {
+    method @NonNull public java.lang.reflect.TypeVariable<?>[] getTypeParameters();
   }
 
   public class GenericSignatureFormatError extends java.lang.ClassFormatError {
     ctor public GenericSignatureFormatError();
-    ctor public GenericSignatureFormatError(java.lang.String);
+    ctor public GenericSignatureFormatError(String);
   }
 
-  public abstract interface InvocationHandler {
-    method public abstract java.lang.Object invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) throws java.lang.Throwable;
+  public interface InvocationHandler {
+    method public Object invoke(Object, java.lang.reflect.Method, Object[]) throws java.lang.Throwable;
   }
 
   public class InvocationTargetException extends java.lang.ReflectiveOperationException {
     ctor protected InvocationTargetException();
-    ctor public InvocationTargetException(java.lang.Throwable);
-    ctor public InvocationTargetException(java.lang.Throwable, java.lang.String);
-    method public java.lang.Throwable getCause();
-    method public java.lang.Throwable getTargetException();
+    ctor public InvocationTargetException(Throwable);
+    ctor public InvocationTargetException(Throwable, String);
+    method public Throwable getTargetException();
   }
 
   public class MalformedParameterizedTypeException extends java.lang.RuntimeException {
@@ -61152,33 +61030,33 @@
 
   public class MalformedParametersException extends java.lang.RuntimeException {
     ctor public MalformedParametersException();
-    ctor public MalformedParametersException(java.lang.String);
+    ctor public MalformedParametersException(String);
   }
 
-  public abstract interface Member {
-    method public abstract java.lang.Class<?> getDeclaringClass();
-    method public abstract int getModifiers();
-    method public abstract java.lang.String getName();
-    method public abstract boolean isSynthetic();
+  public interface Member {
+    method @NonNull public Class<?> getDeclaringClass();
+    method public int getModifiers();
+    method @NonNull public String getName();
+    method public boolean isSynthetic();
     field public static final int DECLARED = 1; // 0x1
     field public static final int PUBLIC = 0; // 0x0
   }
 
   public final class Method extends java.lang.reflect.Executable {
-    method public java.lang.Class<?> getDeclaringClass();
-    method public java.lang.Object getDefaultValue();
-    method public java.lang.Class<?>[] getExceptionTypes();
-    method public java.lang.reflect.Type getGenericReturnType();
+    method @NonNull public Class<?> getDeclaringClass();
+    method @Nullable public Object getDefaultValue();
+    method @NonNull public Class<?>[] getExceptionTypes();
+    method @NonNull public java.lang.reflect.Type getGenericReturnType();
     method public int getModifiers();
-    method public java.lang.String getName();
-    method public java.lang.annotation.Annotation[][] getParameterAnnotations();
-    method public java.lang.Class<?>[] getParameterTypes();
-    method public java.lang.Class<?> getReturnType();
-    method public java.lang.reflect.TypeVariable<java.lang.reflect.Method>[] getTypeParameters();
-    method public java.lang.Object invoke(java.lang.Object, java.lang.Object...) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException;
+    method @NonNull public String getName();
+    method @NonNull public java.lang.annotation.Annotation[][] getParameterAnnotations();
+    method @NonNull public Class<?>[] getParameterTypes();
+    method @NonNull public Class<?> getReturnType();
+    method @NonNull public java.lang.reflect.TypeVariable<java.lang.reflect.Method>[] getTypeParameters();
+    method @Nullable public Object invoke(@Nullable Object, java.lang.Object...) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException;
     method public boolean isBridge();
     method public boolean isDefault();
-    method public java.lang.String toGenericString();
+    method @NonNull public String toGenericString();
   }
 
   public class Modifier {
@@ -61201,7 +61079,7 @@
     method public static boolean isVolatile(int);
     method public static int methodModifiers();
     method public static int parameterModifiers();
-    method public static java.lang.String toString(int);
+    method public static String toString(int);
     field public static final int ABSTRACT = 1024; // 0x400
     field public static final int FINAL = 16; // 0x10
     field public static final int INTERFACE = 512; // 0x200
@@ -61217,73 +61095,72 @@
   }
 
   public final class Parameter implements java.lang.reflect.AnnotatedElement {
-    method public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T>);
+    method @Nullable public <T extends java.lang.annotation.Annotation> T getAnnotation(@NonNull Class<T>);
     method public java.lang.annotation.Annotation[] getAnnotations();
     method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
-    method public java.lang.reflect.Executable getDeclaringExecutable();
+    method @NonNull public java.lang.reflect.Executable getDeclaringExecutable();
     method public int getModifiers();
-    method public java.lang.String getName();
-    method public java.lang.reflect.Type getParameterizedType();
-    method public java.lang.Class<?> getType();
+    method @NonNull public String getName();
+    method @NonNull public java.lang.reflect.Type getParameterizedType();
+    method @NonNull public Class<?> getType();
     method public boolean isImplicit();
     method public boolean isNamePresent();
     method public boolean isSynthetic();
     method public boolean isVarArgs();
   }
 
-  public abstract interface ParameterizedType implements java.lang.reflect.Type {
-    method public abstract java.lang.reflect.Type[] getActualTypeArguments();
-    method public abstract java.lang.reflect.Type getOwnerType();
-    method public abstract java.lang.reflect.Type getRawType();
+  public interface ParameterizedType extends java.lang.reflect.Type {
+    method public java.lang.reflect.Type[] getActualTypeArguments();
+    method @Nullable public java.lang.reflect.Type getOwnerType();
+    method @NonNull public java.lang.reflect.Type getRawType();
   }
 
   public class Proxy implements java.io.Serializable {
-    ctor protected Proxy(java.lang.reflect.InvocationHandler);
-    method public static java.lang.reflect.InvocationHandler getInvocationHandler(java.lang.Object) throws java.lang.IllegalArgumentException;
-    method public static java.lang.Class<?> getProxyClass(java.lang.ClassLoader, java.lang.Class<?>...) throws java.lang.IllegalArgumentException;
-    method public static boolean isProxyClass(java.lang.Class<?>);
-    method public static java.lang.Object newProxyInstance(java.lang.ClassLoader, java.lang.Class<?>[], java.lang.reflect.InvocationHandler) throws java.lang.IllegalArgumentException;
+    ctor protected Proxy(@NonNull java.lang.reflect.InvocationHandler);
+    method @NonNull public static java.lang.reflect.InvocationHandler getInvocationHandler(@NonNull Object) throws java.lang.IllegalArgumentException;
+    method @NonNull public static Class<?> getProxyClass(@Nullable ClassLoader, Class<?>...) throws java.lang.IllegalArgumentException;
+    method public static boolean isProxyClass(@NonNull Class<?>);
+    method @NonNull public static Object newProxyInstance(@Nullable ClassLoader, Class<?>[], @NonNull java.lang.reflect.InvocationHandler) throws java.lang.IllegalArgumentException;
     field protected java.lang.reflect.InvocationHandler h;
   }
 
   public final class ReflectPermission extends java.security.BasicPermission {
-    ctor public ReflectPermission(java.lang.String);
-    ctor public ReflectPermission(java.lang.String, java.lang.String);
+    ctor public ReflectPermission(String);
+    ctor public ReflectPermission(String, String);
   }
 
-  public abstract interface Type {
-    method public default java.lang.String getTypeName();
+  public interface Type {
+    method @NonNull public default String getTypeName();
   }
 
-  public abstract interface TypeVariable<D extends java.lang.reflect.GenericDeclaration> implements java.lang.reflect.Type {
-    method public abstract java.lang.reflect.Type[] getBounds();
-    method public abstract D getGenericDeclaration();
-    method public abstract java.lang.String getName();
+  public interface TypeVariable<D extends java.lang.reflect.GenericDeclaration> extends java.lang.reflect.Type {
+    method public java.lang.reflect.Type[] getBounds();
+    method @NonNull public D getGenericDeclaration();
+    method @NonNull public String getName();
   }
 
   public class UndeclaredThrowableException extends java.lang.RuntimeException {
-    ctor public UndeclaredThrowableException(java.lang.Throwable);
-    ctor public UndeclaredThrowableException(java.lang.Throwable, java.lang.String);
-    method public java.lang.Throwable getCause();
-    method public java.lang.Throwable getUndeclaredThrowable();
+    ctor public UndeclaredThrowableException(Throwable);
+    ctor public UndeclaredThrowableException(Throwable, String);
+    method public Throwable getUndeclaredThrowable();
   }
 
-  public abstract interface WildcardType implements java.lang.reflect.Type {
-    method public abstract java.lang.reflect.Type[] getLowerBounds();
-    method public abstract java.lang.reflect.Type[] getUpperBounds();
+  public interface WildcardType extends java.lang.reflect.Type {
+    method public java.lang.reflect.Type[] getLowerBounds();
+    method public java.lang.reflect.Type[] getUpperBounds();
   }
 
 }
 
 package java.math {
 
-  public class BigDecimal extends java.lang.Number implements java.lang.Comparable java.io.Serializable {
+  public class BigDecimal extends java.lang.Number implements java.lang.Comparable<java.math.BigDecimal> java.io.Serializable {
     ctor public BigDecimal(char[], int, int);
     ctor public BigDecimal(char[], int, int, java.math.MathContext);
     ctor public BigDecimal(char[]);
     ctor public BigDecimal(char[], java.math.MathContext);
-    ctor public BigDecimal(java.lang.String);
-    ctor public BigDecimal(java.lang.String, java.math.MathContext);
+    ctor public BigDecimal(String);
+    ctor public BigDecimal(String, java.math.MathContext);
     ctor public BigDecimal(double);
     ctor public BigDecimal(double, java.math.MathContext);
     ctor public BigDecimal(java.math.BigInteger);
@@ -61344,8 +61221,8 @@
     method public java.math.BigDecimal subtract(java.math.BigDecimal, java.math.MathContext);
     method public java.math.BigInteger toBigInteger();
     method public java.math.BigInteger toBigIntegerExact();
-    method public java.lang.String toEngineeringString();
-    method public java.lang.String toPlainString();
+    method public String toEngineeringString();
+    method public String toPlainString();
     method public java.math.BigDecimal ulp();
     method public java.math.BigInteger unscaledValue();
     method public static java.math.BigDecimal valueOf(long, int);
@@ -61364,63 +61241,63 @@
     field public static final java.math.BigDecimal ZERO;
   }
 
-  public class BigInteger extends java.lang.Number implements java.lang.Comparable java.io.Serializable {
-    ctor public BigInteger(int, java.util.Random);
-    ctor public BigInteger(int, int, java.util.Random);
-    ctor public BigInteger(java.lang.String);
-    ctor public BigInteger(java.lang.String, int);
+  public class BigInteger extends java.lang.Number implements java.lang.Comparable<java.math.BigInteger> java.io.Serializable {
+    ctor public BigInteger(int, @NonNull java.util.Random);
+    ctor public BigInteger(int, int, @NonNull java.util.Random);
+    ctor public BigInteger(@NonNull String);
+    ctor public BigInteger(@NonNull String, int);
     ctor public BigInteger(int, byte[]);
     ctor public BigInteger(byte[]);
-    method public java.math.BigInteger abs();
-    method public java.math.BigInteger add(java.math.BigInteger);
-    method public java.math.BigInteger and(java.math.BigInteger);
-    method public java.math.BigInteger andNot(java.math.BigInteger);
+    method @NonNull public java.math.BigInteger abs();
+    method @NonNull public java.math.BigInteger add(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger and(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger andNot(@NonNull java.math.BigInteger);
     method public int bitCount();
     method public int bitLength();
-    method public java.math.BigInteger clearBit(int);
-    method public int compareTo(java.math.BigInteger);
-    method public java.math.BigInteger divide(java.math.BigInteger);
-    method public java.math.BigInteger[] divideAndRemainder(java.math.BigInteger);
+    method @NonNull public java.math.BigInteger clearBit(int);
+    method public int compareTo(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger divide(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger[] divideAndRemainder(@NonNull java.math.BigInteger);
     method public double doubleValue();
-    method public java.math.BigInteger flipBit(int);
+    method @NonNull public java.math.BigInteger flipBit(int);
     method public float floatValue();
-    method public java.math.BigInteger gcd(java.math.BigInteger);
+    method @NonNull public java.math.BigInteger gcd(@NonNull java.math.BigInteger);
     method public int getLowestSetBit();
     method public int intValue();
     method public boolean isProbablePrime(int);
     method public long longValue();
-    method public java.math.BigInteger max(java.math.BigInteger);
-    method public java.math.BigInteger min(java.math.BigInteger);
-    method public java.math.BigInteger mod(java.math.BigInteger);
-    method public java.math.BigInteger modInverse(java.math.BigInteger);
-    method public java.math.BigInteger modPow(java.math.BigInteger, java.math.BigInteger);
-    method public java.math.BigInteger multiply(java.math.BigInteger);
-    method public java.math.BigInteger negate();
-    method public java.math.BigInteger nextProbablePrime();
-    method public java.math.BigInteger not();
-    method public java.math.BigInteger or(java.math.BigInteger);
-    method public java.math.BigInteger pow(int);
-    method public static java.math.BigInteger probablePrime(int, java.util.Random);
-    method public java.math.BigInteger remainder(java.math.BigInteger);
-    method public java.math.BigInteger setBit(int);
-    method public java.math.BigInteger shiftLeft(int);
-    method public java.math.BigInteger shiftRight(int);
+    method @NonNull public java.math.BigInteger max(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger min(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger mod(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger modInverse(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger modPow(@NonNull java.math.BigInteger, @NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger multiply(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger negate();
+    method @NonNull public java.math.BigInteger nextProbablePrime();
+    method @NonNull public java.math.BigInteger not();
+    method @NonNull public java.math.BigInteger or(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger pow(int);
+    method @NonNull public static java.math.BigInteger probablePrime(int, @NonNull java.util.Random);
+    method @NonNull public java.math.BigInteger remainder(@NonNull java.math.BigInteger);
+    method @NonNull public java.math.BigInteger setBit(int);
+    method @NonNull public java.math.BigInteger shiftLeft(int);
+    method @NonNull public java.math.BigInteger shiftRight(int);
     method public int signum();
-    method public java.math.BigInteger subtract(java.math.BigInteger);
+    method @NonNull public java.math.BigInteger subtract(@NonNull java.math.BigInteger);
     method public boolean testBit(int);
     method public byte[] toByteArray();
-    method public java.lang.String toString(int);
-    method public static java.math.BigInteger valueOf(long);
-    method public java.math.BigInteger xor(java.math.BigInteger);
-    field public static final java.math.BigInteger ONE;
-    field public static final java.math.BigInteger TEN;
-    field public static final java.math.BigInteger ZERO;
+    method @NonNull public String toString(int);
+    method @NonNull public static java.math.BigInteger valueOf(long);
+    method @NonNull public java.math.BigInteger xor(@NonNull java.math.BigInteger);
+    field @NonNull public static final java.math.BigInteger ONE;
+    field @NonNull public static final java.math.BigInteger TEN;
+    field @NonNull public static final java.math.BigInteger ZERO;
   }
 
   public final class MathContext implements java.io.Serializable {
     ctor public MathContext(int);
     ctor public MathContext(int, java.math.RoundingMode);
-    ctor public MathContext(java.lang.String);
+    ctor public MathContext(String);
     method public int getPrecision();
     method public java.math.RoundingMode getRoundingMode();
     field public static final java.math.MathContext DECIMAL128;
@@ -61429,10 +61306,8 @@
     field public static final java.math.MathContext UNLIMITED;
   }
 
-  public final class RoundingMode extends java.lang.Enum {
-    method public static java.math.RoundingMode valueOf(java.lang.String);
+  public enum RoundingMode {
     method public static java.math.RoundingMode valueOf(int);
-    method public static final java.math.RoundingMode[] values();
     enum_constant public static final java.math.RoundingMode CEILING;
     enum_constant public static final java.math.RoundingMode DOWN;
     enum_constant public static final java.math.RoundingMode FLOOR;
@@ -61450,29 +61325,27 @@
   public abstract class Authenticator {
     ctor public Authenticator();
     method protected java.net.PasswordAuthentication getPasswordAuthentication();
-    method protected final java.lang.String getRequestingHost();
+    method protected final String getRequestingHost();
     method protected final int getRequestingPort();
-    method protected final java.lang.String getRequestingPrompt();
-    method protected final java.lang.String getRequestingProtocol();
-    method protected final java.lang.String getRequestingScheme();
+    method protected final String getRequestingPrompt();
+    method protected final String getRequestingProtocol();
+    method protected final String getRequestingScheme();
     method protected final java.net.InetAddress getRequestingSite();
     method protected java.net.URL getRequestingURL();
     method protected java.net.Authenticator.RequestorType getRequestorType();
-    method public static java.net.PasswordAuthentication requestPasswordAuthentication(java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String);
-    method public static java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String);
-    method public static java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String, java.net.URL, java.net.Authenticator.RequestorType);
-    method public static synchronized void setDefault(java.net.Authenticator);
+    method public static java.net.PasswordAuthentication requestPasswordAuthentication(java.net.InetAddress, int, String, String, String);
+    method public static java.net.PasswordAuthentication requestPasswordAuthentication(String, java.net.InetAddress, int, String, String, String);
+    method public static java.net.PasswordAuthentication requestPasswordAuthentication(String, java.net.InetAddress, int, String, String, String, java.net.URL, java.net.Authenticator.RequestorType);
+    method public static void setDefault(java.net.Authenticator);
   }
 
-  public static final class Authenticator.RequestorType extends java.lang.Enum {
-    method public static java.net.Authenticator.RequestorType valueOf(java.lang.String);
-    method public static final java.net.Authenticator.RequestorType[] values();
+  public enum Authenticator.RequestorType {
     enum_constant public static final java.net.Authenticator.RequestorType PROXY;
     enum_constant public static final java.net.Authenticator.RequestorType SERVER;
   }
 
   public class BindException extends java.net.SocketException {
-    ctor public BindException(java.lang.String);
+    ctor public BindException(String);
     ctor public BindException();
   }
 
@@ -61485,55 +61358,55 @@
   public abstract class CacheResponse {
     ctor public CacheResponse();
     method public abstract java.io.InputStream getBody() throws java.io.IOException;
-    method public abstract java.util.Map<java.lang.String, java.util.List<java.lang.String>> getHeaders() throws java.io.IOException;
+    method public abstract java.util.Map<java.lang.String,java.util.List<java.lang.String>> getHeaders() throws java.io.IOException;
   }
 
   public class ConnectException extends java.net.SocketException {
-    ctor public ConnectException(java.lang.String);
+    ctor public ConnectException(String);
     ctor public ConnectException();
   }
 
   public abstract class ContentHandler {
     ctor public ContentHandler();
-    method public abstract java.lang.Object getContent(java.net.URLConnection) throws java.io.IOException;
-    method public java.lang.Object getContent(java.net.URLConnection, java.lang.Class[]) throws java.io.IOException;
+    method public abstract Object getContent(java.net.URLConnection) throws java.io.IOException;
+    method public Object getContent(java.net.URLConnection, Class[]) throws java.io.IOException;
   }
 
-  public abstract interface ContentHandlerFactory {
-    method public abstract java.net.ContentHandler createContentHandler(java.lang.String);
+  public interface ContentHandlerFactory {
+    method public java.net.ContentHandler createContentHandler(String);
   }
 
   public abstract class CookieHandler {
     ctor public CookieHandler();
-    method public abstract java.util.Map<java.lang.String, java.util.List<java.lang.String>> get(java.net.URI, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
-    method public static synchronized java.net.CookieHandler getDefault();
-    method public abstract void put(java.net.URI, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
-    method public static synchronized void setDefault(java.net.CookieHandler);
+    method public abstract java.util.Map<java.lang.String,java.util.List<java.lang.String>> get(java.net.URI, java.util.Map<java.lang.String,java.util.List<java.lang.String>>) throws java.io.IOException;
+    method public static java.net.CookieHandler getDefault();
+    method public abstract void put(java.net.URI, java.util.Map<java.lang.String,java.util.List<java.lang.String>>) throws java.io.IOException;
+    method public static void setDefault(java.net.CookieHandler);
   }
 
   public class CookieManager extends java.net.CookieHandler {
     ctor public CookieManager();
     ctor public CookieManager(java.net.CookieStore, java.net.CookiePolicy);
-    method public java.util.Map<java.lang.String, java.util.List<java.lang.String>> get(java.net.URI, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
+    method public java.util.Map<java.lang.String,java.util.List<java.lang.String>> get(java.net.URI, java.util.Map<java.lang.String,java.util.List<java.lang.String>>) throws java.io.IOException;
     method public java.net.CookieStore getCookieStore();
-    method public void put(java.net.URI, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
+    method public void put(java.net.URI, java.util.Map<java.lang.String,java.util.List<java.lang.String>>) throws java.io.IOException;
     method public void setCookiePolicy(java.net.CookiePolicy);
   }
 
-  public abstract interface CookiePolicy {
-    method public abstract boolean shouldAccept(java.net.URI, java.net.HttpCookie);
+  public interface CookiePolicy {
+    method public boolean shouldAccept(java.net.URI, java.net.HttpCookie);
     field public static final java.net.CookiePolicy ACCEPT_ALL;
     field public static final java.net.CookiePolicy ACCEPT_NONE;
     field public static final java.net.CookiePolicy ACCEPT_ORIGINAL_SERVER;
   }
 
-  public abstract interface CookieStore {
-    method public abstract void add(java.net.URI, java.net.HttpCookie);
-    method public abstract java.util.List<java.net.HttpCookie> get(java.net.URI);
-    method public abstract java.util.List<java.net.HttpCookie> getCookies();
-    method public abstract java.util.List<java.net.URI> getURIs();
-    method public abstract boolean remove(java.net.URI, java.net.HttpCookie);
-    method public abstract boolean removeAll();
+  public interface CookieStore {
+    method public void add(java.net.URI, java.net.HttpCookie);
+    method public java.util.List<java.net.HttpCookie> get(java.net.URI);
+    method public java.util.List<java.net.HttpCookie> getCookies();
+    method public java.util.List<java.net.URI> getURIs();
+    method public boolean remove(java.net.URI, java.net.HttpCookie);
+    method public boolean removeAll();
   }
 
   public final class DatagramPacket {
@@ -61543,18 +61416,18 @@
     ctor public DatagramPacket(byte[], int, int, java.net.SocketAddress);
     ctor public DatagramPacket(byte[], int, java.net.InetAddress, int);
     ctor public DatagramPacket(byte[], int, java.net.SocketAddress);
-    method public synchronized java.net.InetAddress getAddress();
-    method public synchronized byte[] getData();
-    method public synchronized int getLength();
-    method public synchronized int getOffset();
-    method public synchronized int getPort();
-    method public synchronized java.net.SocketAddress getSocketAddress();
-    method public synchronized void setAddress(java.net.InetAddress);
-    method public synchronized void setData(byte[], int, int);
-    method public synchronized void setData(byte[]);
-    method public synchronized void setLength(int);
-    method public synchronized void setPort(int);
-    method public synchronized void setSocketAddress(java.net.SocketAddress);
+    method public java.net.InetAddress getAddress();
+    method public byte[] getData();
+    method public int getLength();
+    method public int getOffset();
+    method public int getPort();
+    method public java.net.SocketAddress getSocketAddress();
+    method public void setAddress(java.net.InetAddress);
+    method public void setData(byte[], int, int);
+    method public void setData(byte[]);
+    method public void setLength(int);
+    method public void setPort(int);
+    method public void setSocketAddress(java.net.SocketAddress);
   }
 
   public class DatagramSocket implements java.io.Closeable {
@@ -61563,36 +61436,36 @@
     ctor public DatagramSocket(java.net.SocketAddress) throws java.net.SocketException;
     ctor public DatagramSocket(int) throws java.net.SocketException;
     ctor public DatagramSocket(int, java.net.InetAddress) throws java.net.SocketException;
-    method public synchronized void bind(java.net.SocketAddress) throws java.net.SocketException;
+    method public void bind(java.net.SocketAddress) throws java.net.SocketException;
     method public void close();
     method public void connect(java.net.InetAddress, int);
     method public void connect(java.net.SocketAddress) throws java.net.SocketException;
     method public void disconnect();
-    method public synchronized boolean getBroadcast() throws java.net.SocketException;
+    method public boolean getBroadcast() throws java.net.SocketException;
     method public java.nio.channels.DatagramChannel getChannel();
     method public java.net.InetAddress getInetAddress();
     method public java.net.InetAddress getLocalAddress();
     method public int getLocalPort();
     method public java.net.SocketAddress getLocalSocketAddress();
     method public int getPort();
-    method public synchronized int getReceiveBufferSize() throws java.net.SocketException;
+    method public int getReceiveBufferSize() throws java.net.SocketException;
     method public java.net.SocketAddress getRemoteSocketAddress();
-    method public synchronized boolean getReuseAddress() throws java.net.SocketException;
-    method public synchronized int getSendBufferSize() throws java.net.SocketException;
-    method public synchronized int getSoTimeout() throws java.net.SocketException;
-    method public synchronized int getTrafficClass() throws java.net.SocketException;
+    method public boolean getReuseAddress() throws java.net.SocketException;
+    method public int getSendBufferSize() throws java.net.SocketException;
+    method public int getSoTimeout() throws java.net.SocketException;
+    method public int getTrafficClass() throws java.net.SocketException;
     method public boolean isBound();
     method public boolean isClosed();
     method public boolean isConnected();
-    method public synchronized void receive(java.net.DatagramPacket) throws java.io.IOException;
+    method public void receive(java.net.DatagramPacket) throws java.io.IOException;
     method public void send(java.net.DatagramPacket) throws java.io.IOException;
-    method public synchronized void setBroadcast(boolean) throws java.net.SocketException;
-    method public static synchronized void setDatagramSocketImplFactory(java.net.DatagramSocketImplFactory) throws java.io.IOException;
-    method public synchronized void setReceiveBufferSize(int) throws java.net.SocketException;
-    method public synchronized void setReuseAddress(boolean) throws java.net.SocketException;
-    method public synchronized void setSendBufferSize(int) throws java.net.SocketException;
-    method public synchronized void setSoTimeout(int) throws java.net.SocketException;
-    method public synchronized void setTrafficClass(int) throws java.net.SocketException;
+    method public void setBroadcast(boolean) throws java.net.SocketException;
+    method public static void setDatagramSocketImplFactory(java.net.DatagramSocketImplFactory) throws java.io.IOException;
+    method public void setReceiveBufferSize(int) throws java.net.SocketException;
+    method public void setReuseAddress(boolean) throws java.net.SocketException;
+    method public void setSendBufferSize(int) throws java.net.SocketException;
+    method public void setSoTimeout(int) throws java.net.SocketException;
+    method public void setTrafficClass(int) throws java.net.SocketException;
   }
 
   public abstract class DatagramSocketImpl implements java.net.SocketOptions {
@@ -61604,7 +61477,7 @@
     method protected void disconnect();
     method protected java.io.FileDescriptor getFileDescriptor();
     method protected int getLocalPort();
-    method protected abstract deprecated byte getTTL() throws java.io.IOException;
+    method @Deprecated protected abstract byte getTTL() throws java.io.IOException;
     method protected abstract int getTimeToLive() throws java.io.IOException;
     method protected abstract void join(java.net.InetAddress) throws java.io.IOException;
     method protected abstract void joinGroup(java.net.SocketAddress, java.net.NetworkInterface) throws java.io.IOException;
@@ -61614,56 +61487,56 @@
     method protected abstract int peekData(java.net.DatagramPacket) throws java.io.IOException;
     method protected abstract void receive(java.net.DatagramPacket) throws java.io.IOException;
     method protected abstract void send(java.net.DatagramPacket) throws java.io.IOException;
-    method protected abstract deprecated void setTTL(byte) throws java.io.IOException;
+    method @Deprecated protected abstract void setTTL(byte) throws java.io.IOException;
     method protected abstract void setTimeToLive(int) throws java.io.IOException;
     field protected java.io.FileDescriptor fd;
     field protected int localPort;
   }
 
-  public abstract interface DatagramSocketImplFactory {
-    method public abstract java.net.DatagramSocketImpl createDatagramSocketImpl();
+  public interface DatagramSocketImplFactory {
+    method public java.net.DatagramSocketImpl createDatagramSocketImpl();
   }
 
-  public abstract interface FileNameMap {
-    method public abstract java.lang.String getContentTypeFor(java.lang.String);
+  public interface FileNameMap {
+    method public String getContentTypeFor(String);
   }
 
   public final class HttpCookie implements java.lang.Cloneable {
-    ctor public HttpCookie(java.lang.String, java.lang.String);
-    method public java.lang.Object clone();
-    method public static boolean domainMatches(java.lang.String, java.lang.String);
-    method public java.lang.String getComment();
-    method public java.lang.String getCommentURL();
+    ctor public HttpCookie(String, String);
+    method public Object clone();
+    method public static boolean domainMatches(String, String);
+    method public String getComment();
+    method public String getCommentURL();
     method public boolean getDiscard();
-    method public java.lang.String getDomain();
+    method public String getDomain();
     method public long getMaxAge();
-    method public java.lang.String getName();
-    method public java.lang.String getPath();
-    method public java.lang.String getPortlist();
+    method public String getName();
+    method public String getPath();
+    method public String getPortlist();
     method public boolean getSecure();
-    method public java.lang.String getValue();
+    method public String getValue();
     method public int getVersion();
     method public boolean hasExpired();
     method public boolean isHttpOnly();
-    method public static java.util.List<java.net.HttpCookie> parse(java.lang.String);
-    method public void setComment(java.lang.String);
-    method public void setCommentURL(java.lang.String);
+    method public static java.util.List<java.net.HttpCookie> parse(String);
+    method public void setComment(String);
+    method public void setCommentURL(String);
     method public void setDiscard(boolean);
-    method public void setDomain(java.lang.String);
+    method public void setDomain(String);
     method public void setHttpOnly(boolean);
     method public void setMaxAge(long);
-    method public void setPath(java.lang.String);
-    method public void setPortlist(java.lang.String);
+    method public void setPath(String);
+    method public void setPortlist(String);
     method public void setSecure(boolean);
-    method public void setValue(java.lang.String);
+    method public void setValue(String);
     method public void setVersion(int);
   }
 
   public class HttpRetryException extends java.io.IOException {
-    ctor public HttpRetryException(java.lang.String, int);
-    ctor public HttpRetryException(java.lang.String, int, java.lang.String);
-    method public java.lang.String getLocation();
-    method public java.lang.String getReason();
+    ctor public HttpRetryException(String, int);
+    ctor public HttpRetryException(String, int, String);
+    method public String getLocation();
+    method public String getReason();
     method public int responseCode();
   }
 
@@ -61673,15 +61546,15 @@
     method public java.io.InputStream getErrorStream();
     method public static boolean getFollowRedirects();
     method public boolean getInstanceFollowRedirects();
-    method public java.lang.String getRequestMethod();
+    method public String getRequestMethod();
     method public int getResponseCode() throws java.io.IOException;
-    method public java.lang.String getResponseMessage() throws java.io.IOException;
+    method public String getResponseMessage() throws java.io.IOException;
     method public void setChunkedStreamingMode(int);
     method public void setFixedLengthStreamingMode(int);
     method public void setFixedLengthStreamingMode(long);
     method public static void setFollowRedirects(boolean);
     method public void setInstanceFollowRedirects(boolean);
-    method public void setRequestMethod(java.lang.String) throws java.net.ProtocolException;
+    method public void setRequestMethod(String) throws java.net.ProtocolException;
     method public abstract boolean usingProxy();
     field public static final int HTTP_ACCEPTED = 202; // 0xca
     field public static final int HTTP_BAD_GATEWAY = 502; // 0x1f6
@@ -61713,7 +61586,7 @@
     field public static final int HTTP_REQ_TOO_LONG = 414; // 0x19e
     field public static final int HTTP_RESET = 205; // 0xcd
     field public static final int HTTP_SEE_OTHER = 303; // 0x12f
-    field public static final deprecated int HTTP_SERVER_ERROR = 500; // 0x1f4
+    field @Deprecated public static final int HTTP_SERVER_ERROR = 500; // 0x1f4
     field public static final int HTTP_UNAUTHORIZED = 401; // 0x191
     field public static final int HTTP_UNAVAILABLE = 503; // 0x1f7
     field public static final int HTTP_UNSUPPORTED_TYPE = 415; // 0x19f
@@ -61723,16 +61596,16 @@
     field protected int fixedContentLength;
     field protected long fixedContentLengthLong;
     field protected boolean instanceFollowRedirects;
-    field protected java.lang.String method;
+    field protected String method;
     field protected int responseCode;
-    field protected java.lang.String responseMessage;
+    field protected String responseMessage;
   }
 
   public final class IDN {
-    method public static java.lang.String toASCII(java.lang.String, int);
-    method public static java.lang.String toASCII(java.lang.String);
-    method public static java.lang.String toUnicode(java.lang.String, int);
-    method public static java.lang.String toUnicode(java.lang.String);
+    method public static String toASCII(String, int);
+    method public static String toASCII(String);
+    method public static String toUnicode(String, int);
+    method public static String toUnicode(String);
     field public static final int ALLOW_UNASSIGNED = 1; // 0x1
     field public static final int USE_STD3_ASCII_RULES = 2; // 0x2
   }
@@ -61741,8 +61614,8 @@
   }
 
   public final class Inet6Address extends java.net.InetAddress {
-    method public static java.net.Inet6Address getByAddress(java.lang.String, byte[], java.net.NetworkInterface) throws java.net.UnknownHostException;
-    method public static java.net.Inet6Address getByAddress(java.lang.String, byte[], int) throws java.net.UnknownHostException;
+    method public static java.net.Inet6Address getByAddress(String, byte[], java.net.NetworkInterface) throws java.net.UnknownHostException;
+    method public static java.net.Inet6Address getByAddress(String, byte[], int) throws java.net.UnknownHostException;
     method public int getScopeId();
     method public java.net.NetworkInterface getScopedInterface();
     method public boolean isIPv4CompatibleAddress();
@@ -61750,13 +61623,13 @@
 
   public class InetAddress implements java.io.Serializable {
     method public byte[] getAddress();
-    method public static java.net.InetAddress[] getAllByName(java.lang.String) throws java.net.UnknownHostException;
-    method public static java.net.InetAddress getByAddress(java.lang.String, byte[]) throws java.net.UnknownHostException;
+    method public static java.net.InetAddress[] getAllByName(String) throws java.net.UnknownHostException;
+    method public static java.net.InetAddress getByAddress(String, byte[]) throws java.net.UnknownHostException;
     method public static java.net.InetAddress getByAddress(byte[]) throws java.net.UnknownHostException;
-    method public static java.net.InetAddress getByName(java.lang.String) throws java.net.UnknownHostException;
-    method public java.lang.String getCanonicalHostName();
-    method public java.lang.String getHostAddress();
-    method public java.lang.String getHostName();
+    method public static java.net.InetAddress getByName(String) throws java.net.UnknownHostException;
+    method public String getCanonicalHostName();
+    method public String getHostAddress();
+    method public String getHostName();
     method public static java.net.InetAddress getLocalHost() throws java.net.UnknownHostException;
     method public static java.net.InetAddress getLoopbackAddress();
     method public boolean isAnyLocalAddress();
@@ -61776,12 +61649,12 @@
   public class InetSocketAddress extends java.net.SocketAddress {
     ctor public InetSocketAddress(int);
     ctor public InetSocketAddress(java.net.InetAddress, int);
-    ctor public InetSocketAddress(java.lang.String, int);
-    method public static java.net.InetSocketAddress createUnresolved(java.lang.String, int);
-    method public final boolean equals(java.lang.Object);
+    ctor public InetSocketAddress(String, int);
+    method public static java.net.InetSocketAddress createUnresolved(String, int);
+    method public final boolean equals(Object);
     method public final java.net.InetAddress getAddress();
-    method public final java.lang.String getHostName();
-    method public final java.lang.String getHostString();
+    method public final String getHostName();
+    method public final String getHostString();
     method public final int getPort();
     method public final int hashCode();
     method public final boolean isUnresolved();
@@ -61797,7 +61670,7 @@
     ctor protected JarURLConnection(java.net.URL) throws java.net.MalformedURLException;
     method public java.util.jar.Attributes getAttributes() throws java.io.IOException;
     method public java.security.cert.Certificate[] getCertificates() throws java.io.IOException;
-    method public java.lang.String getEntryName();
+    method public String getEntryName();
     method public java.util.jar.JarEntry getJarEntry() throws java.io.IOException;
     method public abstract java.util.jar.JarFile getJarFile() throws java.io.IOException;
     method public java.net.URL getJarFileURL();
@@ -61808,7 +61681,7 @@
 
   public class MalformedURLException extends java.io.IOException {
     ctor public MalformedURLException();
-    ctor public MalformedURLException(java.lang.String);
+    ctor public MalformedURLException(String);
   }
 
   public class MulticastSocket extends java.net.DatagramSocket {
@@ -61818,36 +61691,36 @@
     method public java.net.InetAddress getInterface() throws java.net.SocketException;
     method public boolean getLoopbackMode() throws java.net.SocketException;
     method public java.net.NetworkInterface getNetworkInterface() throws java.net.SocketException;
-    method public deprecated byte getTTL() throws java.io.IOException;
+    method @Deprecated public byte getTTL() throws java.io.IOException;
     method public int getTimeToLive() throws java.io.IOException;
     method public void joinGroup(java.net.InetAddress) throws java.io.IOException;
     method public void joinGroup(java.net.SocketAddress, java.net.NetworkInterface) throws java.io.IOException;
     method public void leaveGroup(java.net.InetAddress) throws java.io.IOException;
     method public void leaveGroup(java.net.SocketAddress, java.net.NetworkInterface) throws java.io.IOException;
-    method public deprecated void send(java.net.DatagramPacket, byte) throws java.io.IOException;
+    method @Deprecated public void send(java.net.DatagramPacket, byte) throws java.io.IOException;
     method public void setInterface(java.net.InetAddress) throws java.net.SocketException;
     method public void setLoopbackMode(boolean) throws java.net.SocketException;
     method public void setNetworkInterface(java.net.NetworkInterface) throws java.net.SocketException;
-    method public deprecated void setTTL(byte) throws java.io.IOException;
+    method @Deprecated public void setTTL(byte) throws java.io.IOException;
     method public void setTimeToLive(int) throws java.io.IOException;
   }
 
   public final class NetPermission extends java.security.BasicPermission {
-    ctor public NetPermission(java.lang.String);
-    ctor public NetPermission(java.lang.String, java.lang.String);
+    ctor public NetPermission(String);
+    ctor public NetPermission(String, String);
   }
 
   public final class NetworkInterface {
     method public static java.net.NetworkInterface getByIndex(int) throws java.net.SocketException;
     method public static java.net.NetworkInterface getByInetAddress(java.net.InetAddress) throws java.net.SocketException;
-    method public static java.net.NetworkInterface getByName(java.lang.String) throws java.net.SocketException;
-    method public java.lang.String getDisplayName();
+    method public static java.net.NetworkInterface getByName(String) throws java.net.SocketException;
+    method public String getDisplayName();
     method public byte[] getHardwareAddress() throws java.net.SocketException;
     method public int getIndex();
     method public java.util.Enumeration<java.net.InetAddress> getInetAddresses();
     method public java.util.List<java.net.InterfaceAddress> getInterfaceAddresses();
     method public int getMTU() throws java.net.SocketException;
-    method public java.lang.String getName();
+    method public String getName();
     method public static java.util.Enumeration<java.net.NetworkInterface> getNetworkInterfaces() throws java.net.SocketException;
     method public java.net.NetworkInterface getParent();
     method public java.util.Enumeration<java.net.NetworkInterface> getSubInterfaces();
@@ -61859,42 +61732,40 @@
   }
 
   public class NoRouteToHostException extends java.net.SocketException {
-    ctor public NoRouteToHostException(java.lang.String);
+    ctor public NoRouteToHostException(String);
     ctor public NoRouteToHostException();
   }
 
   public final class PasswordAuthentication {
-    ctor public PasswordAuthentication(java.lang.String, char[]);
+    ctor public PasswordAuthentication(String, char[]);
     method public char[] getPassword();
-    method public java.lang.String getUserName();
+    method public String getUserName();
   }
 
   public class PortUnreachableException extends java.net.SocketException {
-    ctor public PortUnreachableException(java.lang.String);
+    ctor public PortUnreachableException(String);
     ctor public PortUnreachableException();
   }
 
   public class ProtocolException extends java.io.IOException {
-    ctor public ProtocolException(java.lang.String);
+    ctor public ProtocolException(String);
     ctor public ProtocolException();
   }
 
-  public abstract interface ProtocolFamily {
-    method public abstract java.lang.String name();
+  public interface ProtocolFamily {
+    method public String name();
   }
 
   public class Proxy {
     ctor public Proxy(java.net.Proxy.Type, java.net.SocketAddress);
     method public java.net.SocketAddress address();
-    method public final boolean equals(java.lang.Object);
+    method public final boolean equals(Object);
     method public final int hashCode();
     method public java.net.Proxy.Type type();
     field public static final java.net.Proxy NO_PROXY;
   }
 
-  public static final class Proxy.Type extends java.lang.Enum {
-    method public static java.net.Proxy.Type valueOf(java.lang.String);
-    method public static final java.net.Proxy.Type[] values();
+  public enum Proxy.Type {
     enum_constant public static final java.net.Proxy.Type DIRECT;
     enum_constant public static final java.net.Proxy.Type HTTP;
     enum_constant public static final java.net.Proxy.Type SOCKS;
@@ -61910,15 +61781,15 @@
 
   public abstract class ResponseCache {
     ctor public ResponseCache();
-    method public abstract java.net.CacheResponse get(java.net.URI, java.lang.String, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
-    method public static synchronized java.net.ResponseCache getDefault();
+    method public abstract java.net.CacheResponse get(java.net.URI, String, java.util.Map<java.lang.String,java.util.List<java.lang.String>>) throws java.io.IOException;
+    method public static java.net.ResponseCache getDefault();
     method public abstract java.net.CacheRequest put(java.net.URI, java.net.URLConnection) throws java.io.IOException;
-    method public static synchronized void setDefault(java.net.ResponseCache);
+    method public static void setDefault(java.net.ResponseCache);
   }
 
   public abstract class SecureCacheResponse extends java.net.CacheResponse {
     ctor public SecureCacheResponse();
-    method public abstract java.lang.String getCipherSuite();
+    method public abstract String getCipherSuite();
     method public abstract java.util.List<java.security.cert.Certificate> getLocalCertificateChain();
     method public abstract java.security.Principal getLocalPrincipal();
     method public abstract java.security.Principal getPeerPrincipal() throws javax.net.ssl.SSLPeerUnverifiedException;
@@ -61938,31 +61809,31 @@
     method public java.net.InetAddress getInetAddress();
     method public int getLocalPort();
     method public java.net.SocketAddress getLocalSocketAddress();
-    method public synchronized int getReceiveBufferSize() throws java.net.SocketException;
+    method public int getReceiveBufferSize() throws java.net.SocketException;
     method public boolean getReuseAddress() throws java.net.SocketException;
-    method public synchronized int getSoTimeout() throws java.io.IOException;
+    method public int getSoTimeout() throws java.io.IOException;
     method protected final void implAccept(java.net.Socket) throws java.io.IOException;
     method public boolean isBound();
     method public boolean isClosed();
     method public void setPerformancePreferences(int, int, int);
-    method public synchronized void setReceiveBufferSize(int) throws java.net.SocketException;
+    method public void setReceiveBufferSize(int) throws java.net.SocketException;
     method public void setReuseAddress(boolean) throws java.net.SocketException;
-    method public synchronized void setSoTimeout(int) throws java.net.SocketException;
-    method public static synchronized void setSocketFactory(java.net.SocketImplFactory) throws java.io.IOException;
+    method public void setSoTimeout(int) throws java.net.SocketException;
+    method public static void setSocketFactory(java.net.SocketImplFactory) throws java.io.IOException;
   }
 
   public class Socket implements java.io.Closeable {
     ctor public Socket();
     ctor public Socket(java.net.Proxy);
     ctor protected Socket(java.net.SocketImpl) throws java.net.SocketException;
-    ctor public Socket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
+    ctor public Socket(String, int) throws java.io.IOException, java.net.UnknownHostException;
     ctor public Socket(java.net.InetAddress, int) throws java.io.IOException;
-    ctor public Socket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException;
+    ctor public Socket(String, int, java.net.InetAddress, int) throws java.io.IOException;
     ctor public Socket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
-    ctor public deprecated Socket(java.lang.String, int, boolean) throws java.io.IOException;
-    ctor public deprecated Socket(java.net.InetAddress, int, boolean) throws java.io.IOException;
+    ctor @Deprecated public Socket(String, int, boolean) throws java.io.IOException;
+    ctor @Deprecated public Socket(java.net.InetAddress, int, boolean) throws java.io.IOException;
     method public void bind(java.net.SocketAddress) throws java.io.IOException;
-    method public synchronized void close() throws java.io.IOException;
+    method public void close() throws java.io.IOException;
     method public void connect(java.net.SocketAddress) throws java.io.IOException;
     method public void connect(java.net.SocketAddress, int) throws java.io.IOException;
     method public java.nio.channels.SocketChannel getChannel();
@@ -61975,12 +61846,12 @@
     method public boolean getOOBInline() throws java.net.SocketException;
     method public java.io.OutputStream getOutputStream() throws java.io.IOException;
     method public int getPort();
-    method public synchronized int getReceiveBufferSize() throws java.net.SocketException;
+    method public int getReceiveBufferSize() throws java.net.SocketException;
     method public java.net.SocketAddress getRemoteSocketAddress();
     method public boolean getReuseAddress() throws java.net.SocketException;
-    method public synchronized int getSendBufferSize() throws java.net.SocketException;
+    method public int getSendBufferSize() throws java.net.SocketException;
     method public int getSoLinger() throws java.net.SocketException;
-    method public synchronized int getSoTimeout() throws java.net.SocketException;
+    method public int getSoTimeout() throws java.net.SocketException;
     method public boolean getTcpNoDelay() throws java.net.SocketException;
     method public int getTrafficClass() throws java.net.SocketException;
     method public boolean isBound();
@@ -61992,12 +61863,12 @@
     method public void setKeepAlive(boolean) throws java.net.SocketException;
     method public void setOOBInline(boolean) throws java.net.SocketException;
     method public void setPerformancePreferences(int, int, int);
-    method public synchronized void setReceiveBufferSize(int) throws java.net.SocketException;
+    method public void setReceiveBufferSize(int) throws java.net.SocketException;
     method public void setReuseAddress(boolean) throws java.net.SocketException;
-    method public synchronized void setSendBufferSize(int) throws java.net.SocketException;
+    method public void setSendBufferSize(int) throws java.net.SocketException;
     method public void setSoLinger(boolean, int) throws java.net.SocketException;
-    method public synchronized void setSoTimeout(int) throws java.net.SocketException;
-    method public static synchronized void setSocketImplFactory(java.net.SocketImplFactory) throws java.io.IOException;
+    method public void setSoTimeout(int) throws java.net.SocketException;
+    method public static void setSocketImplFactory(java.net.SocketImplFactory) throws java.io.IOException;
     method public void setTcpNoDelay(boolean) throws java.net.SocketException;
     method public void setTrafficClass(int) throws java.net.SocketException;
     method public void shutdownInput() throws java.io.IOException;
@@ -62009,7 +61880,7 @@
   }
 
   public class SocketException extends java.io.IOException {
-    ctor public SocketException(java.lang.String);
+    ctor public SocketException(String);
     ctor public SocketException();
   }
 
@@ -62019,7 +61890,7 @@
     method protected abstract int available() throws java.io.IOException;
     method protected abstract void bind(java.net.InetAddress, int) throws java.io.IOException;
     method protected abstract void close() throws java.io.IOException;
-    method protected abstract void connect(java.lang.String, int) throws java.io.IOException;
+    method protected abstract void connect(String, int) throws java.io.IOException;
     method protected abstract void connect(java.net.InetAddress, int) throws java.io.IOException;
     method protected abstract void connect(java.net.SocketAddress, int) throws java.io.IOException;
     method protected abstract void create(boolean) throws java.io.IOException;
@@ -62041,18 +61912,18 @@
     field protected int port;
   }
 
-  public abstract interface SocketImplFactory {
-    method public abstract java.net.SocketImpl createSocketImpl();
+  public interface SocketImplFactory {
+    method public java.net.SocketImpl createSocketImpl();
   }
 
-  public abstract interface SocketOption<T> {
-    method public abstract java.lang.String name();
-    method public abstract java.lang.Class<T> type();
+  public interface SocketOption<T> {
+    method public String name();
+    method public Class<T> type();
   }
 
-  public abstract interface SocketOptions {
-    method public abstract java.lang.Object getOption(int) throws java.net.SocketException;
-    method public abstract void setOption(int, java.lang.Object) throws java.net.SocketException;
+  public interface SocketOptions {
+    method public Object getOption(int) throws java.net.SocketException;
+    method public void setOption(int, Object) throws java.net.SocketException;
     field public static final int IP_MULTICAST_IF = 16; // 0x10
     field public static final int IP_MULTICAST_IF2 = 31; // 0x1f
     field public static final int IP_MULTICAST_LOOP = 18; // 0x12
@@ -62070,19 +61941,17 @@
   }
 
   public final class SocketPermission extends java.security.Permission implements java.io.Serializable {
-    ctor public SocketPermission(java.lang.String, java.lang.String);
-    method public java.lang.String getActions();
+    ctor public SocketPermission(String, String);
+    method public String getActions();
     method public boolean implies(java.security.Permission);
   }
 
   public class SocketTimeoutException extends java.io.InterruptedIOException {
-    ctor public SocketTimeoutException(java.lang.String);
+    ctor public SocketTimeoutException(String);
     ctor public SocketTimeoutException();
   }
 
-  public final class StandardProtocolFamily extends java.lang.Enum implements java.net.ProtocolFamily {
-    method public static java.net.StandardProtocolFamily valueOf(java.lang.String);
-    method public static final java.net.StandardProtocolFamily[] values();
+  public enum StandardProtocolFamily implements java.net.ProtocolFamily {
     enum_constant public static final java.net.StandardProtocolFamily INET;
     enum_constant public static final java.net.StandardProtocolFamily INET6;
   }
@@ -62101,142 +61970,141 @@
     field public static final java.net.SocketOption<java.lang.Boolean> TCP_NODELAY;
   }
 
-  public final class URI implements java.lang.Comparable java.io.Serializable {
-    ctor public URI(java.lang.String) throws java.net.URISyntaxException;
-    ctor public URI(java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
-    ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
-    ctor public URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
-    ctor public URI(java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
+  public final class URI implements java.lang.Comparable<java.net.URI> java.io.Serializable {
+    ctor public URI(String) throws java.net.URISyntaxException;
+    ctor public URI(String, String, String, int, String, String, String) throws java.net.URISyntaxException;
+    ctor public URI(String, String, String, String, String) throws java.net.URISyntaxException;
+    ctor public URI(String, String, String, String) throws java.net.URISyntaxException;
+    ctor public URI(String, String, String) throws java.net.URISyntaxException;
     method public int compareTo(java.net.URI);
-    method public static java.net.URI create(java.lang.String);
-    method public java.lang.String getAuthority();
-    method public java.lang.String getFragment();
-    method public java.lang.String getHost();
-    method public java.lang.String getPath();
+    method public static java.net.URI create(String);
+    method public String getAuthority();
+    method public String getFragment();
+    method public String getHost();
+    method public String getPath();
     method public int getPort();
-    method public java.lang.String getQuery();
-    method public java.lang.String getRawAuthority();
-    method public java.lang.String getRawFragment();
-    method public java.lang.String getRawPath();
-    method public java.lang.String getRawQuery();
-    method public java.lang.String getRawSchemeSpecificPart();
-    method public java.lang.String getRawUserInfo();
-    method public java.lang.String getScheme();
-    method public java.lang.String getSchemeSpecificPart();
-    method public java.lang.String getUserInfo();
+    method public String getQuery();
+    method public String getRawAuthority();
+    method public String getRawFragment();
+    method public String getRawPath();
+    method public String getRawQuery();
+    method public String getRawSchemeSpecificPart();
+    method public String getRawUserInfo();
+    method public String getScheme();
+    method public String getSchemeSpecificPart();
+    method public String getUserInfo();
     method public boolean isAbsolute();
     method public boolean isOpaque();
     method public java.net.URI normalize();
     method public java.net.URI parseServerAuthority() throws java.net.URISyntaxException;
     method public java.net.URI relativize(java.net.URI);
     method public java.net.URI resolve(java.net.URI);
-    method public java.net.URI resolve(java.lang.String);
-    method public java.lang.String toASCIIString();
+    method public java.net.URI resolve(String);
+    method public String toASCIIString();
     method public java.net.URL toURL() throws java.net.MalformedURLException;
   }
 
   public class URISyntaxException extends java.lang.Exception {
-    ctor public URISyntaxException(java.lang.String, java.lang.String, int);
-    ctor public URISyntaxException(java.lang.String, java.lang.String);
+    ctor public URISyntaxException(String, String, int);
+    ctor public URISyntaxException(String, String);
     method public int getIndex();
-    method public java.lang.String getInput();
-    method public java.lang.String getReason();
+    method public String getInput();
+    method public String getReason();
   }
 
   public final class URL implements java.io.Serializable {
-    ctor public URL(java.lang.String, java.lang.String, int, java.lang.String) throws java.net.MalformedURLException;
-    ctor public URL(java.lang.String, java.lang.String, java.lang.String) throws java.net.MalformedURLException;
-    ctor public URL(java.lang.String, java.lang.String, int, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
-    ctor public URL(java.lang.String) throws java.net.MalformedURLException;
-    ctor public URL(java.net.URL, java.lang.String) throws java.net.MalformedURLException;
-    ctor public URL(java.net.URL, java.lang.String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
-    method public java.lang.String getAuthority();
-    method public java.lang.Object getContent() throws java.io.IOException;
-    method public java.lang.Object getContent(java.lang.Class[]) throws java.io.IOException;
+    ctor public URL(String, String, int, String) throws java.net.MalformedURLException;
+    ctor public URL(String, String, String) throws java.net.MalformedURLException;
+    ctor public URL(String, String, int, String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
+    ctor public URL(String) throws java.net.MalformedURLException;
+    ctor public URL(java.net.URL, String) throws java.net.MalformedURLException;
+    ctor public URL(java.net.URL, String, java.net.URLStreamHandler) throws java.net.MalformedURLException;
+    method public String getAuthority();
+    method public Object getContent() throws java.io.IOException;
+    method public Object getContent(Class[]) throws java.io.IOException;
     method public int getDefaultPort();
-    method public java.lang.String getFile();
-    method public java.lang.String getHost();
-    method public java.lang.String getPath();
+    method public String getFile();
+    method public String getHost();
+    method public String getPath();
     method public int getPort();
-    method public java.lang.String getProtocol();
-    method public java.lang.String getQuery();
-    method public java.lang.String getRef();
-    method public java.lang.String getUserInfo();
-    method public synchronized int hashCode();
+    method public String getProtocol();
+    method public String getQuery();
+    method public String getRef();
+    method public String getUserInfo();
     method public java.net.URLConnection openConnection() throws java.io.IOException;
     method public java.net.URLConnection openConnection(java.net.Proxy) throws java.io.IOException;
     method public java.io.InputStream openStream() throws java.io.IOException;
     method public boolean sameFile(java.net.URL);
     method public static void setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory);
-    method public java.lang.String toExternalForm();
+    method public String toExternalForm();
     method public java.net.URI toURI() throws java.net.URISyntaxException;
   }
 
   public class URLClassLoader extends java.security.SecureClassLoader implements java.io.Closeable {
-    ctor public URLClassLoader(java.net.URL[], java.lang.ClassLoader);
+    ctor public URLClassLoader(java.net.URL[], ClassLoader);
     ctor public URLClassLoader(java.net.URL[]);
-    ctor public URLClassLoader(java.net.URL[], java.lang.ClassLoader, java.net.URLStreamHandlerFactory);
+    ctor public URLClassLoader(java.net.URL[], ClassLoader, java.net.URLStreamHandlerFactory);
     method protected void addURL(java.net.URL);
     method public void close() throws java.io.IOException;
-    method protected java.lang.Package definePackage(java.lang.String, java.util.jar.Manifest, java.net.URL) throws java.lang.IllegalArgumentException;
-    method public java.net.URL findResource(java.lang.String);
-    method public java.util.Enumeration<java.net.URL> findResources(java.lang.String) throws java.io.IOException;
+    method protected Package definePackage(String, java.util.jar.Manifest, java.net.URL) throws java.lang.IllegalArgumentException;
+    method public java.net.URL findResource(String);
+    method public java.util.Enumeration<java.net.URL> findResources(String) throws java.io.IOException;
     method public java.net.URL[] getURLs();
-    method public static java.net.URLClassLoader newInstance(java.net.URL[], java.lang.ClassLoader);
+    method public static java.net.URLClassLoader newInstance(java.net.URL[], ClassLoader);
     method public static java.net.URLClassLoader newInstance(java.net.URL[]);
   }
 
   public abstract class URLConnection {
     ctor protected URLConnection(java.net.URL);
-    method public void addRequestProperty(java.lang.String, java.lang.String);
+    method public void addRequestProperty(String, String);
     method public abstract void connect() throws java.io.IOException;
     method public boolean getAllowUserInteraction();
     method public int getConnectTimeout();
-    method public java.lang.Object getContent() throws java.io.IOException;
-    method public java.lang.Object getContent(java.lang.Class[]) throws java.io.IOException;
-    method public java.lang.String getContentEncoding();
+    method public Object getContent() throws java.io.IOException;
+    method public Object getContent(Class[]) throws java.io.IOException;
+    method public String getContentEncoding();
     method public int getContentLength();
     method public long getContentLengthLong();
-    method public java.lang.String getContentType();
+    method public String getContentType();
     method public long getDate();
     method public static boolean getDefaultAllowUserInteraction();
-    method public static deprecated java.lang.String getDefaultRequestProperty(java.lang.String);
+    method @Deprecated public static String getDefaultRequestProperty(String);
     method public boolean getDefaultUseCaches();
     method public boolean getDoInput();
     method public boolean getDoOutput();
     method public long getExpiration();
-    method public static synchronized java.net.FileNameMap getFileNameMap();
-    method public java.lang.String getHeaderField(java.lang.String);
-    method public java.lang.String getHeaderField(int);
-    method public long getHeaderFieldDate(java.lang.String, long);
-    method public int getHeaderFieldInt(java.lang.String, int);
-    method public java.lang.String getHeaderFieldKey(int);
-    method public long getHeaderFieldLong(java.lang.String, long);
-    method public java.util.Map<java.lang.String, java.util.List<java.lang.String>> getHeaderFields();
+    method public static java.net.FileNameMap getFileNameMap();
+    method public String getHeaderField(String);
+    method public String getHeaderField(int);
+    method public long getHeaderFieldDate(String, long);
+    method public int getHeaderFieldInt(String, int);
+    method public String getHeaderFieldKey(int);
+    method public long getHeaderFieldLong(String, long);
+    method public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getHeaderFields();
     method public long getIfModifiedSince();
     method public java.io.InputStream getInputStream() throws java.io.IOException;
     method public long getLastModified();
     method public java.io.OutputStream getOutputStream() throws java.io.IOException;
     method public java.security.Permission getPermission() throws java.io.IOException;
     method public int getReadTimeout();
-    method public java.util.Map<java.lang.String, java.util.List<java.lang.String>> getRequestProperties();
-    method public java.lang.String getRequestProperty(java.lang.String);
+    method public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getRequestProperties();
+    method public String getRequestProperty(String);
     method public java.net.URL getURL();
     method public boolean getUseCaches();
-    method public static java.lang.String guessContentTypeFromName(java.lang.String);
-    method public static java.lang.String guessContentTypeFromStream(java.io.InputStream) throws java.io.IOException;
+    method public static String guessContentTypeFromName(String);
+    method public static String guessContentTypeFromStream(java.io.InputStream) throws java.io.IOException;
     method public void setAllowUserInteraction(boolean);
     method public void setConnectTimeout(int);
-    method public static synchronized void setContentHandlerFactory(java.net.ContentHandlerFactory);
+    method public static void setContentHandlerFactory(java.net.ContentHandlerFactory);
     method public static void setDefaultAllowUserInteraction(boolean);
-    method public static deprecated void setDefaultRequestProperty(java.lang.String, java.lang.String);
+    method @Deprecated public static void setDefaultRequestProperty(String, String);
     method public void setDefaultUseCaches(boolean);
     method public void setDoInput(boolean);
     method public void setDoOutput(boolean);
     method public static void setFileNameMap(java.net.FileNameMap);
     method public void setIfModifiedSince(long);
     method public void setReadTimeout(int);
-    method public void setRequestProperty(java.lang.String, java.lang.String);
+    method public void setRequestProperty(String, String);
     method public void setUseCaches(boolean);
     field protected boolean allowUserInteraction;
     field protected boolean connected;
@@ -62249,43 +62117,43 @@
 
   public class URLDecoder {
     ctor public URLDecoder();
-    method public static deprecated java.lang.String decode(java.lang.String);
-    method public static java.lang.String decode(java.lang.String, java.lang.String) throws java.io.UnsupportedEncodingException;
+    method @Deprecated public static String decode(String);
+    method public static String decode(String, String) throws java.io.UnsupportedEncodingException;
   }
 
   public class URLEncoder {
-    method public static deprecated java.lang.String encode(java.lang.String);
-    method public static java.lang.String encode(java.lang.String, java.lang.String) throws java.io.UnsupportedEncodingException;
+    method @Deprecated public static String encode(String);
+    method public static String encode(String, String) throws java.io.UnsupportedEncodingException;
   }
 
   public abstract class URLStreamHandler {
     ctor public URLStreamHandler();
     method protected boolean equals(java.net.URL, java.net.URL);
     method protected int getDefaultPort();
-    method protected synchronized java.net.InetAddress getHostAddress(java.net.URL);
+    method protected java.net.InetAddress getHostAddress(java.net.URL);
     method protected int hashCode(java.net.URL);
     method protected boolean hostsEqual(java.net.URL, java.net.URL);
     method protected abstract java.net.URLConnection openConnection(java.net.URL) throws java.io.IOException;
     method protected java.net.URLConnection openConnection(java.net.URL, java.net.Proxy) throws java.io.IOException;
-    method protected void parseURL(java.net.URL, java.lang.String, int, int);
+    method protected void parseURL(java.net.URL, String, int, int);
     method protected boolean sameFile(java.net.URL, java.net.URL);
-    method protected void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method protected deprecated void setURL(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String);
-    method protected java.lang.String toExternalForm(java.net.URL);
+    method protected void setURL(java.net.URL, String, String, int, String, String, String, String, String);
+    method @Deprecated protected void setURL(java.net.URL, String, String, int, String, String);
+    method protected String toExternalForm(java.net.URL);
   }
 
-  public abstract interface URLStreamHandlerFactory {
-    method public abstract java.net.URLStreamHandler createURLStreamHandler(java.lang.String);
+  public interface URLStreamHandlerFactory {
+    method public java.net.URLStreamHandler createURLStreamHandler(String);
   }
 
   public class UnknownHostException extends java.io.IOException {
-    ctor public UnknownHostException(java.lang.String);
+    ctor public UnknownHostException(String);
     ctor public UnknownHostException();
   }
 
   public class UnknownServiceException extends java.io.IOException {
     ctor public UnknownServiceException();
-    ctor public UnknownServiceException(java.lang.String);
+    ctor public UnknownServiceException(String);
   }
 
 }
@@ -62293,7 +62161,7 @@
 package java.nio {
 
   public abstract class Buffer {
-    method public abstract java.lang.Object array();
+    method public abstract Object array();
     method public abstract int arrayOffset();
     method public final int capacity();
     method public final java.nio.Buffer clear();
@@ -62320,25 +62188,25 @@
     ctor public BufferUnderflowException();
   }
 
-  public abstract class ByteBuffer extends java.nio.Buffer implements java.lang.Comparable {
-    method public static java.nio.ByteBuffer allocate(int);
-    method public static java.nio.ByteBuffer allocateDirect(int);
+  public abstract class ByteBuffer extends java.nio.Buffer implements java.lang.Comparable<java.nio.ByteBuffer> {
+    method @NonNull public static java.nio.ByteBuffer allocate(int);
+    method @NonNull public static java.nio.ByteBuffer allocateDirect(int);
     method public final byte[] array();
     method public final int arrayOffset();
-    method public abstract java.nio.CharBuffer asCharBuffer();
-    method public abstract java.nio.DoubleBuffer asDoubleBuffer();
-    method public abstract java.nio.FloatBuffer asFloatBuffer();
-    method public abstract java.nio.IntBuffer asIntBuffer();
-    method public abstract java.nio.LongBuffer asLongBuffer();
-    method public abstract java.nio.ByteBuffer asReadOnlyBuffer();
-    method public abstract java.nio.ShortBuffer asShortBuffer();
-    method public abstract java.nio.ByteBuffer compact();
-    method public int compareTo(java.nio.ByteBuffer);
-    method public abstract java.nio.ByteBuffer duplicate();
+    method @NonNull public abstract java.nio.CharBuffer asCharBuffer();
+    method @NonNull public abstract java.nio.DoubleBuffer asDoubleBuffer();
+    method @NonNull public abstract java.nio.FloatBuffer asFloatBuffer();
+    method @NonNull public abstract java.nio.IntBuffer asIntBuffer();
+    method @NonNull public abstract java.nio.LongBuffer asLongBuffer();
+    method @NonNull public abstract java.nio.ByteBuffer asReadOnlyBuffer();
+    method @NonNull public abstract java.nio.ShortBuffer asShortBuffer();
+    method @NonNull public abstract java.nio.ByteBuffer compact();
+    method public int compareTo(@NonNull java.nio.ByteBuffer);
+    method @NonNull public abstract java.nio.ByteBuffer duplicate();
     method public abstract byte get();
     method public abstract byte get(int);
-    method public java.nio.ByteBuffer get(byte[], int, int);
-    method public java.nio.ByteBuffer get(byte[]);
+    method @NonNull public java.nio.ByteBuffer get(byte[], int, int);
+    method @NonNull public java.nio.ByteBuffer get(byte[]);
     method public abstract char getChar();
     method public abstract char getChar(int);
     method public abstract double getDouble();
@@ -62352,28 +62220,28 @@
     method public abstract short getShort();
     method public abstract short getShort(int);
     method public final boolean hasArray();
-    method public final java.nio.ByteOrder order();
-    method public final java.nio.ByteBuffer order(java.nio.ByteOrder);
-    method public abstract java.nio.ByteBuffer put(byte);
-    method public abstract java.nio.ByteBuffer put(int, byte);
-    method public java.nio.ByteBuffer put(java.nio.ByteBuffer);
-    method public java.nio.ByteBuffer put(byte[], int, int);
-    method public final java.nio.ByteBuffer put(byte[]);
-    method public abstract java.nio.ByteBuffer putChar(char);
-    method public abstract java.nio.ByteBuffer putChar(int, char);
-    method public abstract java.nio.ByteBuffer putDouble(double);
-    method public abstract java.nio.ByteBuffer putDouble(int, double);
-    method public abstract java.nio.ByteBuffer putFloat(float);
-    method public abstract java.nio.ByteBuffer putFloat(int, float);
-    method public abstract java.nio.ByteBuffer putInt(int);
-    method public abstract java.nio.ByteBuffer putInt(int, int);
-    method public abstract java.nio.ByteBuffer putLong(long);
-    method public abstract java.nio.ByteBuffer putLong(int, long);
-    method public abstract java.nio.ByteBuffer putShort(short);
-    method public abstract java.nio.ByteBuffer putShort(int, short);
-    method public abstract java.nio.ByteBuffer slice();
-    method public static java.nio.ByteBuffer wrap(byte[], int, int);
-    method public static java.nio.ByteBuffer wrap(byte[]);
+    method @NonNull public final java.nio.ByteOrder order();
+    method @NonNull public final java.nio.ByteBuffer order(@NonNull java.nio.ByteOrder);
+    method @NonNull public abstract java.nio.ByteBuffer put(byte);
+    method @NonNull public abstract java.nio.ByteBuffer put(int, byte);
+    method @NonNull public java.nio.ByteBuffer put(@NonNull java.nio.ByteBuffer);
+    method @NonNull public java.nio.ByteBuffer put(byte[], int, int);
+    method @NonNull public final java.nio.ByteBuffer put(byte[]);
+    method @NonNull public abstract java.nio.ByteBuffer putChar(char);
+    method @NonNull public abstract java.nio.ByteBuffer putChar(int, char);
+    method @NonNull public abstract java.nio.ByteBuffer putDouble(double);
+    method @NonNull public abstract java.nio.ByteBuffer putDouble(int, double);
+    method @NonNull public abstract java.nio.ByteBuffer putFloat(float);
+    method @NonNull public abstract java.nio.ByteBuffer putFloat(int, float);
+    method @NonNull public abstract java.nio.ByteBuffer putInt(int);
+    method @NonNull public abstract java.nio.ByteBuffer putInt(int, int);
+    method @NonNull public abstract java.nio.ByteBuffer putLong(long);
+    method @NonNull public abstract java.nio.ByteBuffer putLong(int, long);
+    method @NonNull public abstract java.nio.ByteBuffer putShort(short);
+    method @NonNull public abstract java.nio.ByteBuffer putShort(int, short);
+    method @NonNull public abstract java.nio.ByteBuffer slice();
+    method @NonNull public static java.nio.ByteBuffer wrap(byte[], int, int);
+    method @NonNull public static java.nio.ByteBuffer wrap(byte[]);
   }
 
   public final class ByteOrder {
@@ -62382,10 +62250,10 @@
     field public static final java.nio.ByteOrder LITTLE_ENDIAN;
   }
 
-  public abstract class CharBuffer extends java.nio.Buffer implements java.lang.Appendable java.lang.CharSequence java.lang.Comparable java.lang.Readable {
+  public abstract class CharBuffer extends java.nio.Buffer implements java.lang.Appendable java.lang.CharSequence java.lang.Comparable<java.nio.CharBuffer> java.lang.Readable {
     method public static java.nio.CharBuffer allocate(int);
-    method public java.nio.CharBuffer append(java.lang.CharSequence);
-    method public java.nio.CharBuffer append(java.lang.CharSequence, int, int);
+    method public java.nio.CharBuffer append(CharSequence);
+    method public java.nio.CharBuffer append(CharSequence, int, int);
     method public java.nio.CharBuffer append(char);
     method public final char[] array();
     method public final int arrayOffset();
@@ -62406,18 +62274,18 @@
     method public java.nio.CharBuffer put(java.nio.CharBuffer);
     method public java.nio.CharBuffer put(char[], int, int);
     method public final java.nio.CharBuffer put(char[]);
-    method public java.nio.CharBuffer put(java.lang.String, int, int);
-    method public final java.nio.CharBuffer put(java.lang.String);
+    method public java.nio.CharBuffer put(String, int, int);
+    method public final java.nio.CharBuffer put(String);
     method public int read(java.nio.CharBuffer) throws java.io.IOException;
     method public abstract java.nio.CharBuffer slice();
     method public abstract java.nio.CharBuffer subSequence(int, int);
     method public static java.nio.CharBuffer wrap(char[], int, int);
     method public static java.nio.CharBuffer wrap(char[]);
-    method public static java.nio.CharBuffer wrap(java.lang.CharSequence, int, int);
-    method public static java.nio.CharBuffer wrap(java.lang.CharSequence);
+    method public static java.nio.CharBuffer wrap(CharSequence, int, int);
+    method public static java.nio.CharBuffer wrap(CharSequence);
   }
 
-  public abstract class DoubleBuffer extends java.nio.Buffer implements java.lang.Comparable {
+  public abstract class DoubleBuffer extends java.nio.Buffer implements java.lang.Comparable<java.nio.DoubleBuffer> {
     method public static java.nio.DoubleBuffer allocate(int);
     method public final double[] array();
     method public final int arrayOffset();
@@ -62441,7 +62309,7 @@
     method public static java.nio.DoubleBuffer wrap(double[]);
   }
 
-  public abstract class FloatBuffer extends java.nio.Buffer implements java.lang.Comparable {
+  public abstract class FloatBuffer extends java.nio.Buffer implements java.lang.Comparable<java.nio.FloatBuffer> {
     method public static java.nio.FloatBuffer allocate(int);
     method public final float[] array();
     method public final int arrayOffset();
@@ -62465,7 +62333,7 @@
     method public static java.nio.FloatBuffer wrap(float[]);
   }
 
-  public abstract class IntBuffer extends java.nio.Buffer implements java.lang.Comparable {
+  public abstract class IntBuffer extends java.nio.Buffer implements java.lang.Comparable<java.nio.IntBuffer> {
     method public static java.nio.IntBuffer allocate(int);
     method public final int[] array();
     method public final int arrayOffset();
@@ -62493,7 +62361,7 @@
     ctor public InvalidMarkException();
   }
 
-  public abstract class LongBuffer extends java.nio.Buffer implements java.lang.Comparable {
+  public abstract class LongBuffer extends java.nio.Buffer implements java.lang.Comparable<java.nio.LongBuffer> {
     method public static java.nio.LongBuffer allocate(int);
     method public final long[] array();
     method public final int arrayOffset();
@@ -62527,7 +62395,7 @@
     ctor public ReadOnlyBufferException();
   }
 
-  public abstract class ShortBuffer extends java.nio.Buffer implements java.lang.Comparable {
+  public abstract class ShortBuffer extends java.nio.Buffer implements java.lang.Comparable<java.nio.ShortBuffer> {
     method public static java.nio.ShortBuffer allocate(int);
     method public final short[] array();
     method public final int arrayOffset();
@@ -62567,14 +62435,14 @@
     ctor public AlreadyConnectedException();
   }
 
-  public abstract interface AsynchronousByteChannel implements java.nio.channels.AsynchronousChannel {
-    method public abstract <A> void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
-    method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
-    method public abstract <A> void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
-    method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
+  public interface AsynchronousByteChannel extends java.nio.channels.AsynchronousChannel {
+    method public <A> void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer,? super A>);
+    method public java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
+    method public <A> void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer,? super A>);
+    method public java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
   }
 
-  public abstract interface AsynchronousChannel implements java.nio.channels.Channel {
+  public interface AsynchronousChannel extends java.nio.channels.Channel {
   }
 
   public abstract class AsynchronousChannelGroup {
@@ -62597,25 +62465,25 @@
   public abstract class AsynchronousFileChannel implements java.nio.channels.AsynchronousChannel {
     ctor protected AsynchronousFileChannel();
     method public abstract void force(boolean) throws java.io.IOException;
-    method public abstract <A> void lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
-    method public final <A> void lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
+    method public abstract <A> void lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock,? super A>);
+    method public final <A> void lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock,? super A>);
     method public abstract java.util.concurrent.Future<java.nio.channels.FileLock> lock(long, long, boolean);
     method public final java.util.concurrent.Future<java.nio.channels.FileLock> lock();
     method public static java.nio.channels.AsynchronousFileChannel open(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.util.concurrent.ExecutorService, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
     method public static java.nio.channels.AsynchronousFileChannel open(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
-    method public abstract <A> void read(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract <A> void read(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer,? super A>);
     method public abstract java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer, long);
     method public abstract long size() throws java.io.IOException;
     method public abstract java.nio.channels.AsynchronousFileChannel truncate(long) throws java.io.IOException;
     method public abstract java.nio.channels.FileLock tryLock(long, long, boolean) throws java.io.IOException;
     method public final java.nio.channels.FileLock tryLock() throws java.io.IOException;
-    method public abstract <A> void write(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
+    method public abstract <A> void write(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer,? super A>);
     method public abstract java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer, long);
   }
 
   public abstract class AsynchronousServerSocketChannel implements java.nio.channels.AsynchronousChannel java.nio.channels.NetworkChannel {
     ctor protected AsynchronousServerSocketChannel(java.nio.channels.spi.AsynchronousChannelProvider);
-    method public abstract <A> void accept(A, java.nio.channels.CompletionHandler<java.nio.channels.AsynchronousSocketChannel, ? super A>);
+    method public abstract <A> void accept(A, java.nio.channels.CompletionHandler<java.nio.channels.AsynchronousSocketChannel,? super A>);
     method public abstract java.util.concurrent.Future<java.nio.channels.AsynchronousSocketChannel> accept();
     method public final java.nio.channels.AsynchronousServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
     method public abstract java.nio.channels.AsynchronousServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException;
@@ -62628,32 +62496,32 @@
   public abstract class AsynchronousSocketChannel implements java.nio.channels.AsynchronousByteChannel java.nio.channels.NetworkChannel {
     ctor protected AsynchronousSocketChannel(java.nio.channels.spi.AsynchronousChannelProvider);
     method public abstract java.nio.channels.AsynchronousSocketChannel bind(java.net.SocketAddress) throws java.io.IOException;
-    method public abstract <A> void connect(java.net.SocketAddress, A, java.nio.channels.CompletionHandler<java.lang.Void, ? super A>);
+    method public abstract <A> void connect(java.net.SocketAddress, A, java.nio.channels.CompletionHandler<java.lang.Void,? super A>);
     method public abstract java.util.concurrent.Future<java.lang.Void> connect(java.net.SocketAddress);
     method public abstract java.net.SocketAddress getRemoteAddress() throws java.io.IOException;
     method public static java.nio.channels.AsynchronousSocketChannel open(java.nio.channels.AsynchronousChannelGroup) throws java.io.IOException;
     method public static java.nio.channels.AsynchronousSocketChannel open() throws java.io.IOException;
     method public final java.nio.channels.spi.AsynchronousChannelProvider provider();
-    method public abstract <A> void read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
-    method public final <A> void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
-    method public abstract <A> void read(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
+    method public abstract <A> void read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer,? super A>);
+    method public final <A> void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer,? super A>);
+    method public abstract <A> void read(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long,? super A>);
     method public abstract <T> java.nio.channels.AsynchronousSocketChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
     method public abstract java.nio.channels.AsynchronousSocketChannel shutdownInput() throws java.io.IOException;
     method public abstract java.nio.channels.AsynchronousSocketChannel shutdownOutput() throws java.io.IOException;
-    method public abstract <A> void write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
-    method public final <A> void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
-    method public abstract <A> void write(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
+    method public abstract <A> void write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer,? super A>);
+    method public final <A> void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer,? super A>);
+    method public abstract <A> void write(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long,? super A>);
   }
 
-  public abstract interface ByteChannel implements java.nio.channels.ReadableByteChannel java.nio.channels.WritableByteChannel {
+  public interface ByteChannel extends java.nio.channels.ReadableByteChannel java.nio.channels.WritableByteChannel {
   }
 
   public class CancelledKeyException extends java.lang.IllegalStateException {
     ctor public CancelledKeyException();
   }
 
-  public abstract interface Channel implements java.io.Closeable {
-    method public abstract boolean isOpen();
+  public interface Channel extends java.io.Closeable {
+    method public boolean isOpen();
   }
 
   public final class Channels {
@@ -62664,9 +62532,9 @@
     method public static java.io.OutputStream newOutputStream(java.nio.channels.WritableByteChannel);
     method public static java.io.OutputStream newOutputStream(java.nio.channels.AsynchronousByteChannel);
     method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, java.nio.charset.CharsetDecoder, int);
-    method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, java.lang.String);
+    method public static java.io.Reader newReader(java.nio.channels.ReadableByteChannel, String);
     method public static java.io.Writer newWriter(java.nio.channels.WritableByteChannel, java.nio.charset.CharsetEncoder, int);
-    method public static java.io.Writer newWriter(java.nio.channels.WritableByteChannel, java.lang.String);
+    method public static java.io.Writer newWriter(java.nio.channels.WritableByteChannel, String);
   }
 
   public class ClosedByInterruptException extends java.nio.channels.AsynchronousCloseException {
@@ -62681,9 +62549,9 @@
     ctor public ClosedSelectorException();
   }
 
-  public abstract interface CompletionHandler<V, A> {
-    method public abstract void completed(V, A);
-    method public abstract void failed(java.lang.Throwable, A);
+  public interface CompletionHandler<V, A> {
+    method public void completed(V, A);
+    method public void failed(Throwable, A);
   }
 
   public class ConnectionPendingException extends java.lang.IllegalStateException {
@@ -62746,16 +62614,16 @@
     method public final long position();
     method public abstract void release() throws java.io.IOException;
     method public final long size();
-    method public final java.lang.String toString();
+    method public final String toString();
   }
 
   public class FileLockInterruptionException extends java.io.IOException {
     ctor public FileLockInterruptionException();
   }
 
-  public abstract interface GatheringByteChannel implements java.nio.channels.WritableByteChannel {
-    method public abstract long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
-    method public abstract long write(java.nio.ByteBuffer[]) throws java.io.IOException;
+  public interface GatheringByteChannel extends java.nio.channels.WritableByteChannel {
+    method public long write(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+    method public long write(java.nio.ByteBuffer[]) throws java.io.IOException;
   }
 
   public class IllegalBlockingModeException extends java.lang.IllegalStateException {
@@ -62774,7 +62642,7 @@
     ctor public InterruptedByTimeoutException();
   }
 
-  public abstract interface InterruptibleChannel implements java.nio.channels.Channel {
+  public interface InterruptibleChannel extends java.nio.channels.Channel {
   }
 
   public abstract class MembershipKey {
@@ -62789,17 +62657,17 @@
     method public abstract java.nio.channels.MembershipKey unblock(java.net.InetAddress);
   }
 
-  public abstract interface MulticastChannel implements java.nio.channels.NetworkChannel {
-    method public abstract java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface) throws java.io.IOException;
-    method public abstract java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface, java.net.InetAddress) throws java.io.IOException;
+  public interface MulticastChannel extends java.nio.channels.NetworkChannel {
+    method public java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface) throws java.io.IOException;
+    method public java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface, java.net.InetAddress) throws java.io.IOException;
   }
 
-  public abstract interface NetworkChannel implements java.nio.channels.Channel {
-    method public abstract java.nio.channels.NetworkChannel bind(java.net.SocketAddress) throws java.io.IOException;
-    method public abstract java.net.SocketAddress getLocalAddress() throws java.io.IOException;
-    method public abstract <T> T getOption(java.net.SocketOption<T>) throws java.io.IOException;
-    method public abstract <T> java.nio.channels.NetworkChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
-    method public abstract java.util.Set<java.net.SocketOption<?>> supportedOptions();
+  public interface NetworkChannel extends java.nio.channels.Channel {
+    method public java.nio.channels.NetworkChannel bind(java.net.SocketAddress) throws java.io.IOException;
+    method public java.net.SocketAddress getLocalAddress() throws java.io.IOException;
+    method public <T> T getOption(java.net.SocketOption<T>) throws java.io.IOException;
+    method public <T> java.nio.channels.NetworkChannel setOption(java.net.SocketOption<T>, T) throws java.io.IOException;
+    method public java.util.Set<java.net.SocketOption<?>> supportedOptions();
   }
 
   public class NoConnectionPendingException extends java.lang.IllegalStateException {
@@ -62833,12 +62701,12 @@
     method public abstract java.nio.channels.Pipe.SourceChannel source();
   }
 
-  public static abstract class Pipe.SinkChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.GatheringByteChannel java.nio.channels.WritableByteChannel {
+  public abstract static class Pipe.SinkChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.GatheringByteChannel java.nio.channels.WritableByteChannel {
     ctor protected Pipe.SinkChannel(java.nio.channels.spi.SelectorProvider);
     method public final int validOps();
   }
 
-  public static abstract class Pipe.SourceChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ReadableByteChannel java.nio.channels.ScatteringByteChannel {
+  public abstract static class Pipe.SourceChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.ReadableByteChannel java.nio.channels.ScatteringByteChannel {
     ctor protected Pipe.SourceChannel(java.nio.channels.spi.SelectorProvider);
     method public final int validOps();
   }
@@ -62847,39 +62715,39 @@
     ctor public ReadPendingException();
   }
 
-  public abstract interface ReadableByteChannel implements java.nio.channels.Channel {
-    method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException;
+  public interface ReadableByteChannel extends java.nio.channels.Channel {
+    method public int read(java.nio.ByteBuffer) throws java.io.IOException;
   }
 
-  public abstract interface ScatteringByteChannel implements java.nio.channels.ReadableByteChannel {
-    method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
-    method public abstract long read(java.nio.ByteBuffer[]) throws java.io.IOException;
+  public interface ScatteringByteChannel extends java.nio.channels.ReadableByteChannel {
+    method public long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException;
+    method public long read(java.nio.ByteBuffer[]) throws java.io.IOException;
   }
 
-  public abstract interface SeekableByteChannel implements java.nio.channels.ByteChannel {
-    method public abstract long position() throws java.io.IOException;
-    method public abstract java.nio.channels.SeekableByteChannel position(long) throws java.io.IOException;
-    method public abstract long size() throws java.io.IOException;
-    method public abstract java.nio.channels.SeekableByteChannel truncate(long) throws java.io.IOException;
+  public interface SeekableByteChannel extends java.nio.channels.ByteChannel {
+    method public long position() throws java.io.IOException;
+    method public java.nio.channels.SeekableByteChannel position(long) throws java.io.IOException;
+    method public long size() throws java.io.IOException;
+    method public java.nio.channels.SeekableByteChannel truncate(long) throws java.io.IOException;
   }
 
   public abstract class SelectableChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.Channel {
     ctor protected SelectableChannel();
-    method public abstract java.lang.Object blockingLock();
+    method public abstract Object blockingLock();
     method public abstract java.nio.channels.SelectableChannel configureBlocking(boolean) throws java.io.IOException;
     method public abstract boolean isBlocking();
     method public abstract boolean isRegistered();
     method public abstract java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
     method public abstract java.nio.channels.spi.SelectorProvider provider();
-    method public abstract java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, java.lang.Object) throws java.nio.channels.ClosedChannelException;
+    method public abstract java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, Object) throws java.nio.channels.ClosedChannelException;
     method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int) throws java.nio.channels.ClosedChannelException;
     method public abstract int validOps();
   }
 
   public abstract class SelectionKey {
     ctor protected SelectionKey();
-    method public final java.lang.Object attach(java.lang.Object);
-    method public final java.lang.Object attachment();
+    method public final Object attach(Object);
+    method public final Object attachment();
     method public abstract void cancel();
     method public abstract java.nio.channels.SelectableChannel channel();
     method public abstract int interestOps();
@@ -62952,8 +62820,8 @@
     ctor public UnsupportedAddressTypeException();
   }
 
-  public abstract interface WritableByteChannel implements java.nio.channels.Channel {
-    method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException;
+  public interface WritableByteChannel extends java.nio.channels.Channel {
+    method public int write(java.nio.ByteBuffer) throws java.io.IOException;
   }
 
   public class WritePendingException extends java.lang.IllegalStateException {
@@ -62975,7 +62843,7 @@
 
   public abstract class AbstractSelectableChannel extends java.nio.channels.SelectableChannel {
     ctor protected AbstractSelectableChannel(java.nio.channels.spi.SelectorProvider);
-    method public final java.lang.Object blockingLock();
+    method public final Object blockingLock();
     method public final java.nio.channels.SelectableChannel configureBlocking(boolean) throws java.io.IOException;
     method protected final void implCloseChannel() throws java.io.IOException;
     method protected abstract void implCloseSelectableChannel() throws java.io.IOException;
@@ -62984,7 +62852,7 @@
     method public final boolean isRegistered();
     method public final java.nio.channels.SelectionKey keyFor(java.nio.channels.Selector);
     method public final java.nio.channels.spi.SelectorProvider provider();
-    method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, java.lang.Object) throws java.nio.channels.ClosedChannelException;
+    method public final java.nio.channels.SelectionKey register(java.nio.channels.Selector, int, Object) throws java.nio.channels.ClosedChannelException;
   }
 
   public abstract class AbstractSelectionKey extends java.nio.channels.SelectionKey {
@@ -63003,7 +62871,7 @@
     method protected abstract void implCloseSelector() throws java.io.IOException;
     method public final boolean isOpen();
     method public final java.nio.channels.spi.SelectorProvider provider();
-    method protected abstract java.nio.channels.SelectionKey register(java.nio.channels.spi.AbstractSelectableChannel, int, java.lang.Object);
+    method protected abstract java.nio.channels.SelectionKey register(java.nio.channels.spi.AbstractSelectableChannel, int, Object);
   }
 
   public abstract class AsynchronousChannelProvider {
@@ -63035,28 +62903,28 @@
     ctor public CharacterCodingException();
   }
 
-  public abstract class Charset implements java.lang.Comparable {
-    ctor protected Charset(java.lang.String, java.lang.String[]);
+  public abstract class Charset implements java.lang.Comparable<java.nio.charset.Charset> {
+    ctor protected Charset(String, String[]);
     method public final java.util.Set<java.lang.String> aliases();
-    method public static java.util.SortedMap<java.lang.String, java.nio.charset.Charset> availableCharsets();
+    method public static java.util.SortedMap<java.lang.String,java.nio.charset.Charset> availableCharsets();
     method public boolean canEncode();
     method public final int compareTo(java.nio.charset.Charset);
     method public abstract boolean contains(java.nio.charset.Charset);
     method public final java.nio.CharBuffer decode(java.nio.ByteBuffer);
     method public static java.nio.charset.Charset defaultCharset();
-    method public java.lang.String displayName();
-    method public java.lang.String displayName(java.util.Locale);
+    method public String displayName();
+    method public String displayName(java.util.Locale);
     method public final java.nio.ByteBuffer encode(java.nio.CharBuffer);
-    method public final java.nio.ByteBuffer encode(java.lang.String);
-    method public final boolean equals(java.lang.Object);
-    method public static java.nio.charset.Charset forName(java.lang.String);
+    method public final java.nio.ByteBuffer encode(String);
+    method public final boolean equals(Object);
+    method public static java.nio.charset.Charset forName(String);
     method public final int hashCode();
     method public final boolean isRegistered();
-    method public static boolean isSupported(java.lang.String);
-    method public final java.lang.String name();
+    method public static boolean isSupported(String);
+    method public final String name();
     method public abstract java.nio.charset.CharsetDecoder newDecoder();
     method public abstract java.nio.charset.CharsetEncoder newEncoder();
-    method public final java.lang.String toString();
+    method public final String toString();
   }
 
   public abstract class CharsetDecoder {
@@ -63071,7 +62939,7 @@
     method protected java.nio.charset.CoderResult implFlush(java.nio.CharBuffer);
     method protected void implOnMalformedInput(java.nio.charset.CodingErrorAction);
     method protected void implOnUnmappableCharacter(java.nio.charset.CodingErrorAction);
-    method protected void implReplaceWith(java.lang.String);
+    method protected void implReplaceWith(String);
     method protected void implReset();
     method public boolean isAutoDetecting();
     method public boolean isCharsetDetected();
@@ -63079,8 +62947,8 @@
     method public final float maxCharsPerByte();
     method public final java.nio.charset.CharsetDecoder onMalformedInput(java.nio.charset.CodingErrorAction);
     method public final java.nio.charset.CharsetDecoder onUnmappableCharacter(java.nio.charset.CodingErrorAction);
-    method public final java.nio.charset.CharsetDecoder replaceWith(java.lang.String);
-    method public final java.lang.String replacement();
+    method public final java.nio.charset.CharsetDecoder replaceWith(String);
+    method public final String replacement();
     method public final java.nio.charset.CharsetDecoder reset();
     method public java.nio.charset.CodingErrorAction unmappableCharacterAction();
   }
@@ -63090,7 +62958,7 @@
     ctor protected CharsetEncoder(java.nio.charset.Charset, float, float);
     method public final float averageBytesPerChar();
     method public boolean canEncode(char);
-    method public boolean canEncode(java.lang.CharSequence);
+    method public boolean canEncode(CharSequence);
     method public final java.nio.charset.Charset charset();
     method public final java.nio.charset.CoderResult encode(java.nio.CharBuffer, java.nio.ByteBuffer, boolean);
     method public final java.nio.ByteBuffer encode(java.nio.CharBuffer) throws java.nio.charset.CharacterCodingException;
@@ -63113,7 +62981,7 @@
   }
 
   public class CoderMalfunctionError extends java.lang.Error {
-    ctor public CoderMalfunctionError(java.lang.Exception);
+    ctor public CoderMalfunctionError(Exception);
   }
 
   public class CoderResult {
@@ -63137,8 +63005,8 @@
   }
 
   public class IllegalCharsetNameException extends java.lang.IllegalArgumentException {
-    ctor public IllegalCharsetNameException(java.lang.String);
-    method public java.lang.String getCharsetName();
+    ctor public IllegalCharsetNameException(String);
+    method public String getCharsetName();
   }
 
   public class MalformedInputException extends java.nio.charset.CharacterCodingException {
@@ -63161,8 +63029,8 @@
   }
 
   public class UnsupportedCharsetException extends java.lang.IllegalArgumentException {
-    ctor public UnsupportedCharsetException(java.lang.String);
-    method public java.lang.String getCharsetName();
+    ctor public UnsupportedCharsetException(String);
+    method public String getCharsetName();
   }
 
 }
@@ -63171,7 +63039,7 @@
 
   public abstract class CharsetProvider {
     ctor protected CharsetProvider();
-    method public abstract java.nio.charset.Charset charsetForName(java.lang.String);
+    method public abstract java.nio.charset.Charset charsetForName(String);
     method public abstract java.util.Iterator<java.nio.charset.Charset> charsets();
   }
 
@@ -63180,20 +63048,18 @@
 package java.nio.file {
 
   public class AccessDeniedException extends java.nio.file.FileSystemException {
-    ctor public AccessDeniedException(java.lang.String);
-    ctor public AccessDeniedException(java.lang.String, java.lang.String, java.lang.String);
+    ctor public AccessDeniedException(String);
+    ctor public AccessDeniedException(String, String, String);
   }
 
-  public final class AccessMode extends java.lang.Enum {
-    method public static java.nio.file.AccessMode valueOf(java.lang.String);
-    method public static final java.nio.file.AccessMode[] values();
+  public enum AccessMode {
     enum_constant public static final java.nio.file.AccessMode EXECUTE;
     enum_constant public static final java.nio.file.AccessMode READ;
     enum_constant public static final java.nio.file.AccessMode WRITE;
   }
 
   public class AtomicMoveNotSupportedException extends java.nio.file.FileSystemException {
-    ctor public AtomicMoveNotSupportedException(java.lang.String, java.lang.String, java.lang.String);
+    ctor public AtomicMoveNotSupportedException(String, String, String);
   }
 
   public class ClosedDirectoryStreamException extends java.lang.IllegalStateException {
@@ -63208,7 +63074,7 @@
     ctor public ClosedWatchServiceException();
   }
 
-  public abstract interface CopyOption {
+  public interface CopyOption {
   }
 
   public final class DirectoryIteratorException extends java.util.ConcurrentModificationException {
@@ -63217,42 +63083,42 @@
   }
 
   public class DirectoryNotEmptyException extends java.nio.file.FileSystemException {
-    ctor public DirectoryNotEmptyException(java.lang.String);
+    ctor public DirectoryNotEmptyException(String);
   }
 
-  public abstract interface DirectoryStream<T> implements java.io.Closeable java.lang.Iterable {
+  public interface DirectoryStream<T> extends java.io.Closeable java.lang.Iterable<T> {
   }
 
-  public static abstract interface DirectoryStream.Filter<T> {
-    method public abstract boolean accept(T) throws java.io.IOException;
+  @java.lang.FunctionalInterface public static interface DirectoryStream.Filter<T> {
+    method public boolean accept(T) throws java.io.IOException;
   }
 
   public class FileAlreadyExistsException extends java.nio.file.FileSystemException {
-    ctor public FileAlreadyExistsException(java.lang.String);
-    ctor public FileAlreadyExistsException(java.lang.String, java.lang.String, java.lang.String);
+    ctor public FileAlreadyExistsException(String);
+    ctor public FileAlreadyExistsException(String, String, String);
   }
 
   public abstract class FileStore {
     ctor protected FileStore();
-    method public abstract java.lang.Object getAttribute(java.lang.String) throws java.io.IOException;
-    method public abstract <V extends java.nio.file.attribute.FileStoreAttributeView> V getFileStoreAttributeView(java.lang.Class<V>);
+    method public abstract Object getAttribute(String) throws java.io.IOException;
+    method public abstract <V extends java.nio.file.attribute.FileStoreAttributeView> V getFileStoreAttributeView(Class<V>);
     method public abstract long getTotalSpace() throws java.io.IOException;
     method public abstract long getUnallocatedSpace() throws java.io.IOException;
     method public abstract long getUsableSpace() throws java.io.IOException;
     method public abstract boolean isReadOnly();
-    method public abstract java.lang.String name();
-    method public abstract boolean supportsFileAttributeView(java.lang.Class<? extends java.nio.file.attribute.FileAttributeView>);
-    method public abstract boolean supportsFileAttributeView(java.lang.String);
-    method public abstract java.lang.String type();
+    method public abstract String name();
+    method public abstract boolean supportsFileAttributeView(Class<? extends java.nio.file.attribute.FileAttributeView>);
+    method public abstract boolean supportsFileAttributeView(String);
+    method public abstract String type();
   }
 
   public abstract class FileSystem implements java.io.Closeable {
     ctor protected FileSystem();
-    method public abstract java.lang.Iterable<java.nio.file.FileStore> getFileStores();
-    method public abstract java.nio.file.Path getPath(java.lang.String, java.lang.String...);
-    method public abstract java.nio.file.PathMatcher getPathMatcher(java.lang.String);
-    method public abstract java.lang.Iterable<java.nio.file.Path> getRootDirectories();
-    method public abstract java.lang.String getSeparator();
+    method public abstract Iterable<java.nio.file.FileStore> getFileStores();
+    method public abstract java.nio.file.Path getPath(String, java.lang.String...);
+    method public abstract java.nio.file.PathMatcher getPathMatcher(String);
+    method public abstract Iterable<java.nio.file.Path> getRootDirectories();
+    method public abstract String getSeparator();
     method public abstract java.nio.file.attribute.UserPrincipalLookupService getUserPrincipalLookupService();
     method public abstract boolean isOpen();
     method public abstract boolean isReadOnly();
@@ -63263,54 +63129,50 @@
 
   public class FileSystemAlreadyExistsException extends java.lang.RuntimeException {
     ctor public FileSystemAlreadyExistsException();
-    ctor public FileSystemAlreadyExistsException(java.lang.String);
+    ctor public FileSystemAlreadyExistsException(String);
   }
 
   public class FileSystemException extends java.io.IOException {
-    ctor public FileSystemException(java.lang.String);
-    ctor public FileSystemException(java.lang.String, java.lang.String, java.lang.String);
-    method public java.lang.String getFile();
-    method public java.lang.String getOtherFile();
-    method public java.lang.String getReason();
+    ctor public FileSystemException(String);
+    ctor public FileSystemException(String, String, String);
+    method public String getFile();
+    method public String getOtherFile();
+    method public String getReason();
   }
 
   public class FileSystemLoopException extends java.nio.file.FileSystemException {
-    ctor public FileSystemLoopException(java.lang.String);
+    ctor public FileSystemLoopException(String);
   }
 
   public class FileSystemNotFoundException extends java.lang.RuntimeException {
     ctor public FileSystemNotFoundException();
-    ctor public FileSystemNotFoundException(java.lang.String);
+    ctor public FileSystemNotFoundException(String);
   }
 
   public final class FileSystems {
     method public static java.nio.file.FileSystem getDefault();
     method public static java.nio.file.FileSystem getFileSystem(java.net.URI);
-    method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
-    method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>, java.lang.ClassLoader) throws java.io.IOException;
-    method public static java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.lang.ClassLoader) throws java.io.IOException;
+    method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String,?>) throws java.io.IOException;
+    method public static java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String,?>, ClassLoader) throws java.io.IOException;
+    method public static java.nio.file.FileSystem newFileSystem(java.nio.file.Path, ClassLoader) throws java.io.IOException;
   }
 
-  public final class FileVisitOption extends java.lang.Enum {
-    method public static java.nio.file.FileVisitOption valueOf(java.lang.String);
-    method public static final java.nio.file.FileVisitOption[] values();
+  public enum FileVisitOption {
     enum_constant public static final java.nio.file.FileVisitOption FOLLOW_LINKS;
   }
 
-  public final class FileVisitResult extends java.lang.Enum {
-    method public static java.nio.file.FileVisitResult valueOf(java.lang.String);
-    method public static final java.nio.file.FileVisitResult[] values();
+  public enum FileVisitResult {
     enum_constant public static final java.nio.file.FileVisitResult CONTINUE;
     enum_constant public static final java.nio.file.FileVisitResult SKIP_SIBLINGS;
     enum_constant public static final java.nio.file.FileVisitResult SKIP_SUBTREE;
     enum_constant public static final java.nio.file.FileVisitResult TERMINATE;
   }
 
-  public abstract interface FileVisitor<T> {
-    method public abstract java.nio.file.FileVisitResult postVisitDirectory(T, java.io.IOException) throws java.io.IOException;
-    method public abstract java.nio.file.FileVisitResult preVisitDirectory(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
-    method public abstract java.nio.file.FileVisitResult visitFile(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
-    method public abstract java.nio.file.FileVisitResult visitFileFailed(T, java.io.IOException) throws java.io.IOException;
+  public interface FileVisitor<T> {
+    method public java.nio.file.FileVisitResult postVisitDirectory(T, java.io.IOException) throws java.io.IOException;
+    method public java.nio.file.FileVisitResult preVisitDirectory(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
+    method public java.nio.file.FileVisitResult visitFile(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
+    method public java.nio.file.FileVisitResult visitFileFailed(T, java.io.IOException) throws java.io.IOException;
   }
 
   public final class Files {
@@ -63322,16 +63184,16 @@
     method public static java.nio.file.Path createFile(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
     method public static java.nio.file.Path createLink(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
     method public static java.nio.file.Path createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
-    method public static java.nio.file.Path createTempDirectory(java.nio.file.Path, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
-    method public static java.nio.file.Path createTempDirectory(java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
-    method public static java.nio.file.Path createTempFile(java.nio.file.Path, java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
-    method public static java.nio.file.Path createTempFile(java.lang.String, java.lang.String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempDirectory(java.nio.file.Path, String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempDirectory(String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempFile(java.nio.file.Path, String, String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public static java.nio.file.Path createTempFile(String, String, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
     method public static void delete(java.nio.file.Path) throws java.io.IOException;
     method public static boolean deleteIfExists(java.nio.file.Path) throws java.io.IOException;
     method public static boolean exists(java.nio.file.Path, java.nio.file.LinkOption...);
-    method public static java.util.stream.Stream<java.nio.file.Path> find(java.nio.file.Path, int, java.util.function.BiPredicate<java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes>, java.nio.file.FileVisitOption...) throws java.io.IOException;
-    method public static java.lang.Object getAttribute(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
-    method public static <V extends java.nio.file.attribute.FileAttributeView> V getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...);
+    method public static java.util.stream.Stream<java.nio.file.Path> find(java.nio.file.Path, int, java.util.function.BiPredicate<java.nio.file.Path,java.nio.file.attribute.BasicFileAttributes>, java.nio.file.FileVisitOption...) throws java.io.IOException;
+    method public static Object getAttribute(java.nio.file.Path, String, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static <V extends java.nio.file.attribute.FileAttributeView> V getFileAttributeView(java.nio.file.Path, Class<V>, java.nio.file.LinkOption...);
     method public static java.nio.file.FileStore getFileStore(java.nio.file.Path) throws java.io.IOException;
     method public static java.nio.file.attribute.FileTime getLastModifiedTime(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
     method public static java.nio.file.attribute.UserPrincipal getOwner(java.nio.file.Path, java.nio.file.LinkOption...) throws java.io.IOException;
@@ -63355,19 +63217,19 @@
     method public static java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
     method public static java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
     method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path) throws java.io.IOException;
-    method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.lang.String) throws java.io.IOException;
+    method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, String) throws java.io.IOException;
     method public static java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter<? super java.nio.file.Path>) throws java.io.IOException;
     method public static java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
     method public static java.io.OutputStream newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
     method public static boolean notExists(java.nio.file.Path, java.nio.file.LinkOption...);
-    method public static java.lang.String probeContentType(java.nio.file.Path) throws java.io.IOException;
+    method public static String probeContentType(java.nio.file.Path) throws java.io.IOException;
     method public static byte[] readAllBytes(java.nio.file.Path) throws java.io.IOException;
     method public static java.util.List<java.lang.String> readAllLines(java.nio.file.Path, java.nio.charset.Charset) throws java.io.IOException;
     method public static java.util.List<java.lang.String> readAllLines(java.nio.file.Path) throws java.io.IOException;
-    method public static <A extends java.nio.file.attribute.BasicFileAttributes> A readAttributes(java.nio.file.Path, java.lang.Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
-    method public static java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static <A extends java.nio.file.attribute.BasicFileAttributes> A readAttributes(java.nio.file.Path, Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.util.Map<java.lang.String,java.lang.Object> readAttributes(java.nio.file.Path, String, java.nio.file.LinkOption...) throws java.io.IOException;
     method public static java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException;
-    method public static java.nio.file.Path setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public static java.nio.file.Path setAttribute(java.nio.file.Path, String, Object, java.nio.file.LinkOption...) throws java.io.IOException;
     method public static java.nio.file.Path setLastModifiedTime(java.nio.file.Path, java.nio.file.attribute.FileTime) throws java.io.IOException;
     method public static java.nio.file.Path setOwner(java.nio.file.Path, java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
     method public static java.nio.file.Path setPosixFilePermissions(java.nio.file.Path, java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
@@ -63377,110 +63239,108 @@
     method public static java.nio.file.Path walkFileTree(java.nio.file.Path, java.util.Set<java.nio.file.FileVisitOption>, int, java.nio.file.FileVisitor<? super java.nio.file.Path>) throws java.io.IOException;
     method public static java.nio.file.Path walkFileTree(java.nio.file.Path, java.nio.file.FileVisitor<? super java.nio.file.Path>) throws java.io.IOException;
     method public static java.nio.file.Path write(java.nio.file.Path, byte[], java.nio.file.OpenOption...) throws java.io.IOException;
-    method public static java.nio.file.Path write(java.nio.file.Path, java.lang.Iterable<? extends java.lang.CharSequence>, java.nio.charset.Charset, java.nio.file.OpenOption...) throws java.io.IOException;
-    method public static java.nio.file.Path write(java.nio.file.Path, java.lang.Iterable<? extends java.lang.CharSequence>, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static java.nio.file.Path write(java.nio.file.Path, Iterable<? extends java.lang.CharSequence>, java.nio.charset.Charset, java.nio.file.OpenOption...) throws java.io.IOException;
+    method public static java.nio.file.Path write(java.nio.file.Path, Iterable<? extends java.lang.CharSequence>, java.nio.file.OpenOption...) throws java.io.IOException;
   }
 
   public class InvalidPathException extends java.lang.IllegalArgumentException {
-    ctor public InvalidPathException(java.lang.String, java.lang.String, int);
-    ctor public InvalidPathException(java.lang.String, java.lang.String);
+    ctor public InvalidPathException(String, String, int);
+    ctor public InvalidPathException(String, String);
     method public int getIndex();
-    method public java.lang.String getInput();
-    method public java.lang.String getReason();
+    method public String getInput();
+    method public String getReason();
   }
 
-  public final class LinkOption extends java.lang.Enum implements java.nio.file.CopyOption java.nio.file.OpenOption {
-    method public static java.nio.file.LinkOption valueOf(java.lang.String);
-    method public static final java.nio.file.LinkOption[] values();
+  public enum LinkOption implements java.nio.file.CopyOption java.nio.file.OpenOption {
     enum_constant public static final java.nio.file.LinkOption NOFOLLOW_LINKS;
   }
 
   public final class LinkPermission extends java.security.BasicPermission {
-    ctor public LinkPermission(java.lang.String);
-    ctor public LinkPermission(java.lang.String, java.lang.String);
+    ctor public LinkPermission(String);
+    ctor public LinkPermission(String, String);
   }
 
   public class NoSuchFileException extends java.nio.file.FileSystemException {
-    ctor public NoSuchFileException(java.lang.String);
-    ctor public NoSuchFileException(java.lang.String, java.lang.String, java.lang.String);
+    ctor public NoSuchFileException(String);
+    ctor public NoSuchFileException(String, String, String);
   }
 
   public class NotDirectoryException extends java.nio.file.FileSystemException {
-    ctor public NotDirectoryException(java.lang.String);
+    ctor public NotDirectoryException(String);
   }
 
   public class NotLinkException extends java.nio.file.FileSystemException {
-    ctor public NotLinkException(java.lang.String);
-    ctor public NotLinkException(java.lang.String, java.lang.String, java.lang.String);
+    ctor public NotLinkException(String);
+    ctor public NotLinkException(String, String, String);
   }
 
-  public abstract interface OpenOption {
+  public interface OpenOption {
   }
 
-  public abstract interface Path implements java.lang.Comparable java.lang.Iterable java.nio.file.Watchable {
-    method public abstract int compareTo(java.nio.file.Path);
-    method public abstract boolean endsWith(java.nio.file.Path);
-    method public abstract boolean endsWith(java.lang.String);
-    method public abstract boolean equals(java.lang.Object);
-    method public abstract java.nio.file.Path getFileName();
-    method public abstract java.nio.file.FileSystem getFileSystem();
-    method public abstract java.nio.file.Path getName(int);
-    method public abstract int getNameCount();
-    method public abstract java.nio.file.Path getParent();
-    method public abstract java.nio.file.Path getRoot();
-    method public abstract int hashCode();
-    method public abstract boolean isAbsolute();
-    method public abstract java.util.Iterator<java.nio.file.Path> iterator();
-    method public abstract java.nio.file.Path normalize();
-    method public abstract java.nio.file.Path relativize(java.nio.file.Path);
-    method public abstract java.nio.file.Path resolve(java.nio.file.Path);
-    method public abstract java.nio.file.Path resolve(java.lang.String);
-    method public abstract java.nio.file.Path resolveSibling(java.nio.file.Path);
-    method public abstract java.nio.file.Path resolveSibling(java.lang.String);
-    method public abstract boolean startsWith(java.nio.file.Path);
-    method public abstract boolean startsWith(java.lang.String);
-    method public abstract java.nio.file.Path subpath(int, int);
-    method public abstract java.nio.file.Path toAbsolutePath();
-    method public abstract java.io.File toFile();
-    method public abstract java.nio.file.Path toRealPath(java.nio.file.LinkOption...) throws java.io.IOException;
-    method public abstract java.lang.String toString();
-    method public abstract java.net.URI toUri();
+  public interface Path extends java.lang.Comparable<java.nio.file.Path> java.lang.Iterable<java.nio.file.Path> java.nio.file.Watchable {
+    method public int compareTo(java.nio.file.Path);
+    method public boolean endsWith(java.nio.file.Path);
+    method public boolean endsWith(String);
+    method public boolean equals(Object);
+    method public java.nio.file.Path getFileName();
+    method public java.nio.file.FileSystem getFileSystem();
+    method public java.nio.file.Path getName(int);
+    method public int getNameCount();
+    method public java.nio.file.Path getParent();
+    method public java.nio.file.Path getRoot();
+    method public int hashCode();
+    method public boolean isAbsolute();
+    method public java.util.Iterator<java.nio.file.Path> iterator();
+    method public java.nio.file.Path normalize();
+    method public java.nio.file.Path relativize(java.nio.file.Path);
+    method public java.nio.file.Path resolve(java.nio.file.Path);
+    method public java.nio.file.Path resolve(String);
+    method public java.nio.file.Path resolveSibling(java.nio.file.Path);
+    method public java.nio.file.Path resolveSibling(String);
+    method public boolean startsWith(java.nio.file.Path);
+    method public boolean startsWith(String);
+    method public java.nio.file.Path subpath(int, int);
+    method public java.nio.file.Path toAbsolutePath();
+    method public java.io.File toFile();
+    method public java.nio.file.Path toRealPath(java.nio.file.LinkOption...) throws java.io.IOException;
+    method public String toString();
+    method public java.net.URI toUri();
   }
 
-  public abstract interface PathMatcher {
-    method public abstract boolean matches(java.nio.file.Path);
+  @java.lang.FunctionalInterface public interface PathMatcher {
+    method public boolean matches(java.nio.file.Path);
   }
 
   public final class Paths {
-    method public static java.nio.file.Path get(java.lang.String, java.lang.String...);
+    method public static java.nio.file.Path get(String, java.lang.String...);
     method public static java.nio.file.Path get(java.net.URI);
   }
 
   public class ProviderMismatchException extends java.lang.IllegalArgumentException {
     ctor public ProviderMismatchException();
-    ctor public ProviderMismatchException(java.lang.String);
+    ctor public ProviderMismatchException(String);
   }
 
   public class ProviderNotFoundException extends java.lang.RuntimeException {
     ctor public ProviderNotFoundException();
-    ctor public ProviderNotFoundException(java.lang.String);
+    ctor public ProviderNotFoundException(String);
   }
 
   public class ReadOnlyFileSystemException extends java.lang.UnsupportedOperationException {
     ctor public ReadOnlyFileSystemException();
   }
 
-  public abstract interface SecureDirectoryStream<T> implements java.nio.file.DirectoryStream {
-    method public abstract void deleteDirectory(T) throws java.io.IOException;
-    method public abstract void deleteFile(T) throws java.io.IOException;
-    method public abstract <V extends java.nio.file.attribute.FileAttributeView> V getFileAttributeView(java.lang.Class<V>);
-    method public abstract <V extends java.nio.file.attribute.FileAttributeView> V getFileAttributeView(T, java.lang.Class<V>, java.nio.file.LinkOption...);
-    method public abstract void move(T, java.nio.file.SecureDirectoryStream<T>, T) throws java.io.IOException;
-    method public abstract java.nio.channels.SeekableByteChannel newByteChannel(T, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
-    method public abstract java.nio.file.SecureDirectoryStream<T> newDirectoryStream(T, java.nio.file.LinkOption...) throws java.io.IOException;
+  public interface SecureDirectoryStream<T> extends java.nio.file.DirectoryStream<T> {
+    method public void deleteDirectory(T) throws java.io.IOException;
+    method public void deleteFile(T) throws java.io.IOException;
+    method public <V extends java.nio.file.attribute.FileAttributeView> V getFileAttributeView(Class<V>);
+    method public <V extends java.nio.file.attribute.FileAttributeView> V getFileAttributeView(T, Class<V>, java.nio.file.LinkOption...);
+    method public void move(T, java.nio.file.SecureDirectoryStream<T>, T) throws java.io.IOException;
+    method public java.nio.channels.SeekableByteChannel newByteChannel(T, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
+    method public java.nio.file.SecureDirectoryStream<T> newDirectoryStream(T, java.nio.file.LinkOption...) throws java.io.IOException;
   }
 
-  public class SimpleFileVisitor<T> implements java.nio.file.FileVisitor {
+  public class SimpleFileVisitor<T> implements java.nio.file.FileVisitor<T> {
     ctor protected SimpleFileVisitor();
     method public java.nio.file.FileVisitResult postVisitDirectory(T, java.io.IOException) throws java.io.IOException;
     method public java.nio.file.FileVisitResult preVisitDirectory(T, java.nio.file.attribute.BasicFileAttributes) throws java.io.IOException;
@@ -63488,17 +63348,13 @@
     method public java.nio.file.FileVisitResult visitFileFailed(T, java.io.IOException) throws java.io.IOException;
   }
 
-  public final class StandardCopyOption extends java.lang.Enum implements java.nio.file.CopyOption {
-    method public static java.nio.file.StandardCopyOption valueOf(java.lang.String);
-    method public static final java.nio.file.StandardCopyOption[] values();
+  public enum StandardCopyOption implements java.nio.file.CopyOption {
     enum_constant public static final java.nio.file.StandardCopyOption ATOMIC_MOVE;
     enum_constant public static final java.nio.file.StandardCopyOption COPY_ATTRIBUTES;
     enum_constant public static final java.nio.file.StandardCopyOption REPLACE_EXISTING;
   }
 
-  public final class StandardOpenOption extends java.lang.Enum implements java.nio.file.OpenOption {
-    method public static java.nio.file.StandardOpenOption valueOf(java.lang.String);
-    method public static final java.nio.file.StandardOpenOption[] values();
+  public enum StandardOpenOption implements java.nio.file.OpenOption {
     enum_constant public static final java.nio.file.StandardOpenOption APPEND;
     enum_constant public static final java.nio.file.StandardOpenOption CREATE;
     enum_constant public static final java.nio.file.StandardOpenOption CREATE_NEW;
@@ -63518,38 +63374,38 @@
     field public static final java.nio.file.WatchEvent.Kind<java.lang.Object> OVERFLOW;
   }
 
-  public abstract interface WatchEvent<T> {
-    method public abstract T context();
-    method public abstract int count();
-    method public abstract java.nio.file.WatchEvent.Kind<T> kind();
+  public interface WatchEvent<T> {
+    method public T context();
+    method public int count();
+    method public java.nio.file.WatchEvent.Kind<T> kind();
   }
 
-  public static abstract interface WatchEvent.Kind<T> {
-    method public abstract java.lang.String name();
-    method public abstract java.lang.Class<T> type();
+  public static interface WatchEvent.Kind<T> {
+    method public String name();
+    method public Class<T> type();
   }
 
-  public static abstract interface WatchEvent.Modifier {
-    method public abstract java.lang.String name();
+  public static interface WatchEvent.Modifier {
+    method public String name();
   }
 
-  public abstract interface WatchKey {
-    method public abstract void cancel();
-    method public abstract boolean isValid();
-    method public abstract java.util.List<java.nio.file.WatchEvent<?>> pollEvents();
-    method public abstract boolean reset();
-    method public abstract java.nio.file.Watchable watchable();
+  public interface WatchKey {
+    method public void cancel();
+    method public boolean isValid();
+    method public java.util.List<java.nio.file.WatchEvent<?>> pollEvents();
+    method public boolean reset();
+    method public java.nio.file.Watchable watchable();
   }
 
-  public abstract interface WatchService implements java.io.Closeable {
-    method public abstract java.nio.file.WatchKey poll();
-    method public abstract java.nio.file.WatchKey poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract java.nio.file.WatchKey take() throws java.lang.InterruptedException;
+  public interface WatchService extends java.io.Closeable {
+    method public java.nio.file.WatchKey poll();
+    method public java.nio.file.WatchKey poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public java.nio.file.WatchKey take() throws java.lang.InterruptedException;
   }
 
-  public abstract interface Watchable {
-    method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>[], java.nio.file.WatchEvent.Modifier...) throws java.io.IOException;
-    method public abstract java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>...) throws java.io.IOException;
+  public interface Watchable {
+    method public java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>[], java.nio.file.WatchEvent.Modifier...) throws java.io.IOException;
+    method public java.nio.file.WatchKey register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind<?>...) throws java.io.IOException;
   }
 
 }
@@ -63575,18 +63431,14 @@
     method public java.nio.file.attribute.AclEntry.Builder setType(java.nio.file.attribute.AclEntryType);
   }
 
-  public final class AclEntryFlag extends java.lang.Enum {
-    method public static java.nio.file.attribute.AclEntryFlag valueOf(java.lang.String);
-    method public static final java.nio.file.attribute.AclEntryFlag[] values();
+  public enum AclEntryFlag {
     enum_constant public static final java.nio.file.attribute.AclEntryFlag DIRECTORY_INHERIT;
     enum_constant public static final java.nio.file.attribute.AclEntryFlag FILE_INHERIT;
     enum_constant public static final java.nio.file.attribute.AclEntryFlag INHERIT_ONLY;
     enum_constant public static final java.nio.file.attribute.AclEntryFlag NO_PROPAGATE_INHERIT;
   }
 
-  public final class AclEntryPermission extends java.lang.Enum {
-    method public static java.nio.file.attribute.AclEntryPermission valueOf(java.lang.String);
-    method public static final java.nio.file.attribute.AclEntryPermission[] values();
+  public enum AclEntryPermission {
     enum_constant public static final java.nio.file.attribute.AclEntryPermission APPEND_DATA;
     enum_constant public static final java.nio.file.attribute.AclEntryPermission DELETE;
     enum_constant public static final java.nio.file.attribute.AclEntryPermission DELETE_CHILD;
@@ -63606,73 +63458,71 @@
     field public static final java.nio.file.attribute.AclEntryPermission LIST_DIRECTORY;
   }
 
-  public final class AclEntryType extends java.lang.Enum {
-    method public static java.nio.file.attribute.AclEntryType valueOf(java.lang.String);
-    method public static final java.nio.file.attribute.AclEntryType[] values();
+  public enum AclEntryType {
     enum_constant public static final java.nio.file.attribute.AclEntryType ALARM;
     enum_constant public static final java.nio.file.attribute.AclEntryType ALLOW;
     enum_constant public static final java.nio.file.attribute.AclEntryType AUDIT;
     enum_constant public static final java.nio.file.attribute.AclEntryType DENY;
   }
 
-  public abstract interface AclFileAttributeView implements java.nio.file.attribute.FileOwnerAttributeView {
-    method public abstract java.util.List<java.nio.file.attribute.AclEntry> getAcl() throws java.io.IOException;
-    method public abstract void setAcl(java.util.List<java.nio.file.attribute.AclEntry>) throws java.io.IOException;
+  public interface AclFileAttributeView extends java.nio.file.attribute.FileOwnerAttributeView {
+    method public java.util.List<java.nio.file.attribute.AclEntry> getAcl() throws java.io.IOException;
+    method public void setAcl(java.util.List<java.nio.file.attribute.AclEntry>) throws java.io.IOException;
   }
 
-  public abstract interface AttributeView {
-    method public abstract java.lang.String name();
+  public interface AttributeView {
+    method public String name();
   }
 
-  public abstract interface BasicFileAttributeView implements java.nio.file.attribute.FileAttributeView {
-    method public abstract java.nio.file.attribute.BasicFileAttributes readAttributes() throws java.io.IOException;
-    method public abstract void setTimes(java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime) throws java.io.IOException;
+  public interface BasicFileAttributeView extends java.nio.file.attribute.FileAttributeView {
+    method public java.nio.file.attribute.BasicFileAttributes readAttributes() throws java.io.IOException;
+    method public void setTimes(java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime, java.nio.file.attribute.FileTime) throws java.io.IOException;
   }
 
-  public abstract interface BasicFileAttributes {
-    method public abstract java.nio.file.attribute.FileTime creationTime();
-    method public abstract java.lang.Object fileKey();
-    method public abstract boolean isDirectory();
-    method public abstract boolean isOther();
-    method public abstract boolean isRegularFile();
-    method public abstract boolean isSymbolicLink();
-    method public abstract java.nio.file.attribute.FileTime lastAccessTime();
-    method public abstract java.nio.file.attribute.FileTime lastModifiedTime();
-    method public abstract long size();
+  public interface BasicFileAttributes {
+    method public java.nio.file.attribute.FileTime creationTime();
+    method public Object fileKey();
+    method public boolean isDirectory();
+    method public boolean isOther();
+    method public boolean isRegularFile();
+    method public boolean isSymbolicLink();
+    method public java.nio.file.attribute.FileTime lastAccessTime();
+    method public java.nio.file.attribute.FileTime lastModifiedTime();
+    method public long size();
   }
 
-  public abstract interface DosFileAttributeView implements java.nio.file.attribute.BasicFileAttributeView {
-    method public abstract java.nio.file.attribute.DosFileAttributes readAttributes() throws java.io.IOException;
-    method public abstract void setArchive(boolean) throws java.io.IOException;
-    method public abstract void setHidden(boolean) throws java.io.IOException;
-    method public abstract void setReadOnly(boolean) throws java.io.IOException;
-    method public abstract void setSystem(boolean) throws java.io.IOException;
+  public interface DosFileAttributeView extends java.nio.file.attribute.BasicFileAttributeView {
+    method public java.nio.file.attribute.DosFileAttributes readAttributes() throws java.io.IOException;
+    method public void setArchive(boolean) throws java.io.IOException;
+    method public void setHidden(boolean) throws java.io.IOException;
+    method public void setReadOnly(boolean) throws java.io.IOException;
+    method public void setSystem(boolean) throws java.io.IOException;
   }
 
-  public abstract interface DosFileAttributes implements java.nio.file.attribute.BasicFileAttributes {
-    method public abstract boolean isArchive();
-    method public abstract boolean isHidden();
-    method public abstract boolean isReadOnly();
-    method public abstract boolean isSystem();
+  public interface DosFileAttributes extends java.nio.file.attribute.BasicFileAttributes {
+    method public boolean isArchive();
+    method public boolean isHidden();
+    method public boolean isReadOnly();
+    method public boolean isSystem();
   }
 
-  public abstract interface FileAttribute<T> {
-    method public abstract java.lang.String name();
-    method public abstract T value();
+  public interface FileAttribute<T> {
+    method public String name();
+    method public T value();
   }
 
-  public abstract interface FileAttributeView implements java.nio.file.attribute.AttributeView {
+  public interface FileAttributeView extends java.nio.file.attribute.AttributeView {
   }
 
-  public abstract interface FileOwnerAttributeView implements java.nio.file.attribute.FileAttributeView {
-    method public abstract java.nio.file.attribute.UserPrincipal getOwner() throws java.io.IOException;
-    method public abstract void setOwner(java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
+  public interface FileOwnerAttributeView extends java.nio.file.attribute.FileAttributeView {
+    method public java.nio.file.attribute.UserPrincipal getOwner() throws java.io.IOException;
+    method public void setOwner(java.nio.file.attribute.UserPrincipal) throws java.io.IOException;
   }
 
-  public abstract interface FileStoreAttributeView implements java.nio.file.attribute.AttributeView {
+  public interface FileStoreAttributeView extends java.nio.file.attribute.AttributeView {
   }
 
-  public final class FileTime implements java.lang.Comparable {
+  public final class FileTime implements java.lang.Comparable<java.nio.file.attribute.FileTime> {
     method public int compareTo(java.nio.file.attribute.FileTime);
     method public static java.nio.file.attribute.FileTime from(long, java.util.concurrent.TimeUnit);
     method public static java.nio.file.attribute.FileTime from(java.time.Instant);
@@ -63682,24 +63532,22 @@
     method public long toMillis();
   }
 
-  public abstract interface GroupPrincipal implements java.nio.file.attribute.UserPrincipal {
+  public interface GroupPrincipal extends java.nio.file.attribute.UserPrincipal {
   }
 
-  public abstract interface PosixFileAttributeView implements java.nio.file.attribute.BasicFileAttributeView java.nio.file.attribute.FileOwnerAttributeView {
-    method public abstract java.nio.file.attribute.PosixFileAttributes readAttributes() throws java.io.IOException;
-    method public abstract void setGroup(java.nio.file.attribute.GroupPrincipal) throws java.io.IOException;
-    method public abstract void setPermissions(java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
+  public interface PosixFileAttributeView extends java.nio.file.attribute.BasicFileAttributeView java.nio.file.attribute.FileOwnerAttributeView {
+    method public java.nio.file.attribute.PosixFileAttributes readAttributes() throws java.io.IOException;
+    method public void setGroup(java.nio.file.attribute.GroupPrincipal) throws java.io.IOException;
+    method public void setPermissions(java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
   }
 
-  public abstract interface PosixFileAttributes implements java.nio.file.attribute.BasicFileAttributes {
-    method public abstract java.nio.file.attribute.GroupPrincipal group();
-    method public abstract java.nio.file.attribute.UserPrincipal owner();
-    method public abstract java.util.Set<java.nio.file.attribute.PosixFilePermission> permissions();
+  public interface PosixFileAttributes extends java.nio.file.attribute.BasicFileAttributes {
+    method public java.nio.file.attribute.GroupPrincipal group();
+    method public java.nio.file.attribute.UserPrincipal owner();
+    method public java.util.Set<java.nio.file.attribute.PosixFilePermission> permissions();
   }
 
-  public final class PosixFilePermission extends java.lang.Enum {
-    method public static java.nio.file.attribute.PosixFilePermission valueOf(java.lang.String);
-    method public static final java.nio.file.attribute.PosixFilePermission[] values();
+  public enum PosixFilePermission {
     enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_EXECUTE;
     enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_READ;
     enum_constant public static final java.nio.file.attribute.PosixFilePermission GROUP_WRITE;
@@ -63713,30 +63561,30 @@
 
   public final class PosixFilePermissions {
     method public static java.nio.file.attribute.FileAttribute<java.util.Set<java.nio.file.attribute.PosixFilePermission>> asFileAttribute(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
-    method public static java.util.Set<java.nio.file.attribute.PosixFilePermission> fromString(java.lang.String);
-    method public static java.lang.String toString(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
+    method public static java.util.Set<java.nio.file.attribute.PosixFilePermission> fromString(String);
+    method public static String toString(java.util.Set<java.nio.file.attribute.PosixFilePermission>);
   }
 
-  public abstract interface UserDefinedFileAttributeView implements java.nio.file.attribute.FileAttributeView {
-    method public abstract void delete(java.lang.String) throws java.io.IOException;
-    method public abstract java.util.List<java.lang.String> list() throws java.io.IOException;
-    method public abstract int read(java.lang.String, java.nio.ByteBuffer) throws java.io.IOException;
-    method public abstract int size(java.lang.String) throws java.io.IOException;
-    method public abstract int write(java.lang.String, java.nio.ByteBuffer) throws java.io.IOException;
+  public interface UserDefinedFileAttributeView extends java.nio.file.attribute.FileAttributeView {
+    method public void delete(String) throws java.io.IOException;
+    method public java.util.List<java.lang.String> list() throws java.io.IOException;
+    method public int read(String, java.nio.ByteBuffer) throws java.io.IOException;
+    method public int size(String) throws java.io.IOException;
+    method public int write(String, java.nio.ByteBuffer) throws java.io.IOException;
   }
 
-  public abstract interface UserPrincipal implements java.security.Principal {
+  public interface UserPrincipal extends java.security.Principal {
   }
 
   public abstract class UserPrincipalLookupService {
     ctor protected UserPrincipalLookupService();
-    method public abstract java.nio.file.attribute.GroupPrincipal lookupPrincipalByGroupName(java.lang.String) throws java.io.IOException;
-    method public abstract java.nio.file.attribute.UserPrincipal lookupPrincipalByName(java.lang.String) throws java.io.IOException;
+    method public abstract java.nio.file.attribute.GroupPrincipal lookupPrincipalByGroupName(String) throws java.io.IOException;
+    method public abstract java.nio.file.attribute.UserPrincipal lookupPrincipalByName(String) throws java.io.IOException;
   }
 
   public class UserPrincipalNotFoundException extends java.io.IOException {
-    ctor public UserPrincipalNotFoundException(java.lang.String);
-    method public java.lang.String getName();
+    ctor public UserPrincipalNotFoundException(String);
+    method public String getName();
   }
 
 }
@@ -63752,11 +63600,11 @@
     method public void createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
     method public abstract void delete(java.nio.file.Path) throws java.io.IOException;
     method public boolean deleteIfExists(java.nio.file.Path) throws java.io.IOException;
-    method public abstract <V extends java.nio.file.attribute.FileAttributeView> V getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...);
+    method public abstract <V extends java.nio.file.attribute.FileAttributeView> V getFileAttributeView(java.nio.file.Path, Class<V>, java.nio.file.LinkOption...);
     method public abstract java.nio.file.FileStore getFileStore(java.nio.file.Path) throws java.io.IOException;
     method public abstract java.nio.file.FileSystem getFileSystem(java.net.URI);
     method public abstract java.nio.file.Path getPath(java.net.URI);
-    method public abstract java.lang.String getScheme();
+    method public abstract String getScheme();
     method public static java.util.List<java.nio.file.spi.FileSystemProvider> installedProviders();
     method public abstract boolean isHidden(java.nio.file.Path) throws java.io.IOException;
     method public abstract boolean isSameFile(java.nio.file.Path, java.nio.file.Path) throws java.io.IOException;
@@ -63765,19 +63613,19 @@
     method public abstract java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
     method public abstract java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter<? super java.nio.file.Path>) throws java.io.IOException;
     method public java.nio.channels.FileChannel newFileChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...) throws java.io.IOException;
-    method public abstract java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
-    method public java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.util.Map<java.lang.String, ?>) throws java.io.IOException;
+    method public abstract java.nio.file.FileSystem newFileSystem(java.net.URI, java.util.Map<java.lang.String,?>) throws java.io.IOException;
+    method public java.nio.file.FileSystem newFileSystem(java.nio.file.Path, java.util.Map<java.lang.String,?>) throws java.io.IOException;
     method public java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
     method public java.io.OutputStream newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...) throws java.io.IOException;
-    method public abstract <A extends java.nio.file.attribute.BasicFileAttributes> A readAttributes(java.nio.file.Path, java.lang.Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
-    method public abstract java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public abstract <A extends java.nio.file.attribute.BasicFileAttributes> A readAttributes(java.nio.file.Path, Class<A>, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public abstract java.util.Map<java.lang.String,java.lang.Object> readAttributes(java.nio.file.Path, String, java.nio.file.LinkOption...) throws java.io.IOException;
     method public java.nio.file.Path readSymbolicLink(java.nio.file.Path) throws java.io.IOException;
-    method public abstract void setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption...) throws java.io.IOException;
+    method public abstract void setAttribute(java.nio.file.Path, String, Object, java.nio.file.LinkOption...) throws java.io.IOException;
   }
 
   public abstract class FileTypeDetector {
     ctor protected FileTypeDetector();
-    method public abstract java.lang.String probeContentType(java.nio.file.Path) throws java.io.IOException;
+    method public abstract String probeContentType(java.nio.file.Path) throws java.io.IOException;
   }
 
 }
@@ -63792,8 +63640,8 @@
   }
 
   public class AccessControlException extends java.lang.SecurityException {
-    ctor public AccessControlException(java.lang.String);
-    ctor public AccessControlException(java.lang.String, java.security.Permission);
+    ctor public AccessControlException(String);
+    ctor public AccessControlException(String, java.security.Permission);
     method public java.security.Permission getPermission();
   }
 
@@ -63808,19 +63656,19 @@
     method public static java.security.AccessControlContext getContext();
   }
 
-  public abstract interface AlgorithmConstraints {
-    method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.lang.String, java.security.AlgorithmParameters);
-    method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.security.Key);
-    method public abstract boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.lang.String, java.security.Key, java.security.AlgorithmParameters);
+  public interface AlgorithmConstraints {
+    method public boolean permits(java.util.Set<java.security.CryptoPrimitive>, String, java.security.AlgorithmParameters);
+    method public boolean permits(java.util.Set<java.security.CryptoPrimitive>, java.security.Key);
+    method public boolean permits(java.util.Set<java.security.CryptoPrimitive>, String, java.security.Key, java.security.AlgorithmParameters);
   }
 
   public class AlgorithmParameterGenerator {
-    ctor protected AlgorithmParameterGenerator(java.security.AlgorithmParameterGeneratorSpi, java.security.Provider, java.lang.String);
+    ctor protected AlgorithmParameterGenerator(java.security.AlgorithmParameterGeneratorSpi, java.security.Provider, String);
     method public final java.security.AlgorithmParameters generateParameters();
-    method public final java.lang.String getAlgorithm();
-    method public static java.security.AlgorithmParameterGenerator getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static java.security.AlgorithmParameterGenerator getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.AlgorithmParameterGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public final String getAlgorithm();
+    method public static java.security.AlgorithmParameterGenerator getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static java.security.AlgorithmParameterGenerator getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static java.security.AlgorithmParameterGenerator getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
     method public final void init(int);
     method public final void init(int, java.security.SecureRandom);
@@ -63836,61 +63684,61 @@
   }
 
   public class AlgorithmParameters {
-    ctor protected AlgorithmParameters(java.security.AlgorithmParametersSpi, java.security.Provider, java.lang.String);
-    method public final java.lang.String getAlgorithm();
+    ctor protected AlgorithmParameters(java.security.AlgorithmParametersSpi, java.security.Provider, String);
+    method public final String getAlgorithm();
     method public final byte[] getEncoded() throws java.io.IOException;
-    method public final byte[] getEncoded(java.lang.String) throws java.io.IOException;
-    method public static java.security.AlgorithmParameters getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static java.security.AlgorithmParameters getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.AlgorithmParameters getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
-    method public final <T extends java.security.spec.AlgorithmParameterSpec> T getParameterSpec(java.lang.Class<T>) throws java.security.spec.InvalidParameterSpecException;
+    method public final byte[] getEncoded(String) throws java.io.IOException;
+    method public static java.security.AlgorithmParameters getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static java.security.AlgorithmParameters getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static java.security.AlgorithmParameters getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public final <T extends java.security.spec.AlgorithmParameterSpec> T getParameterSpec(Class<T>) throws java.security.spec.InvalidParameterSpecException;
     method public final java.security.Provider getProvider();
     method public final void init(java.security.spec.AlgorithmParameterSpec) throws java.security.spec.InvalidParameterSpecException;
     method public final void init(byte[]) throws java.io.IOException;
-    method public final void init(byte[], java.lang.String) throws java.io.IOException;
-    method public final java.lang.String toString();
+    method public final void init(byte[], String) throws java.io.IOException;
+    method public final String toString();
   }
 
   public abstract class AlgorithmParametersSpi {
     ctor public AlgorithmParametersSpi();
     method protected abstract byte[] engineGetEncoded() throws java.io.IOException;
-    method protected abstract byte[] engineGetEncoded(java.lang.String) throws java.io.IOException;
-    method protected abstract <T extends java.security.spec.AlgorithmParameterSpec> T engineGetParameterSpec(java.lang.Class<T>) throws java.security.spec.InvalidParameterSpecException;
+    method protected abstract byte[] engineGetEncoded(String) throws java.io.IOException;
+    method protected abstract <T extends java.security.spec.AlgorithmParameterSpec> T engineGetParameterSpec(Class<T>) throws java.security.spec.InvalidParameterSpecException;
     method protected abstract void engineInit(java.security.spec.AlgorithmParameterSpec) throws java.security.spec.InvalidParameterSpecException;
     method protected abstract void engineInit(byte[]) throws java.io.IOException;
-    method protected abstract void engineInit(byte[], java.lang.String) throws java.io.IOException;
-    method protected abstract java.lang.String engineToString();
+    method protected abstract void engineInit(byte[], String) throws java.io.IOException;
+    method protected abstract String engineToString();
   }
 
   public final class AllPermission extends java.security.Permission {
     ctor public AllPermission();
-    ctor public AllPermission(java.lang.String, java.lang.String);
-    method public java.lang.String getActions();
+    ctor public AllPermission(String, String);
+    method public String getActions();
     method public boolean implies(java.security.Permission);
   }
 
   public abstract class AuthProvider extends java.security.Provider {
-    ctor protected AuthProvider(java.lang.String, double, java.lang.String);
+    ctor protected AuthProvider(String, double, String);
     method public abstract void login(javax.security.auth.Subject, javax.security.auth.callback.CallbackHandler) throws javax.security.auth.login.LoginException;
     method public abstract void logout() throws javax.security.auth.login.LoginException;
     method public abstract void setCallbackHandler(javax.security.auth.callback.CallbackHandler);
   }
 
   public abstract class BasicPermission extends java.security.Permission implements java.io.Serializable {
-    ctor public BasicPermission(java.lang.String);
-    ctor public BasicPermission(java.lang.String, java.lang.String);
-    method public java.lang.String getActions();
+    ctor public BasicPermission(String);
+    ctor public BasicPermission(String, String);
+    method public String getActions();
     method public boolean implies(java.security.Permission);
   }
 
-  public abstract deprecated interface Certificate {
-    method public abstract void decode(java.io.InputStream) throws java.io.IOException, java.security.KeyException;
-    method public abstract void encode(java.io.OutputStream) throws java.io.IOException, java.security.KeyException;
-    method public abstract java.lang.String getFormat();
-    method public abstract java.security.Principal getGuarantor();
-    method public abstract java.security.Principal getPrincipal();
-    method public abstract java.security.PublicKey getPublicKey();
-    method public abstract java.lang.String toString(boolean);
+  @Deprecated public interface Certificate {
+    method @Deprecated public void decode(java.io.InputStream) throws java.io.IOException, java.security.KeyException;
+    method @Deprecated public void encode(java.io.OutputStream) throws java.io.IOException, java.security.KeyException;
+    method @Deprecated public String getFormat();
+    method @Deprecated public java.security.Principal getGuarantor();
+    method @Deprecated public java.security.Principal getPrincipal();
+    method @Deprecated public java.security.PublicKey getPublicKey();
+    method @Deprecated public String toString(boolean);
   }
 
   public final class CodeSigner implements java.io.Serializable {
@@ -63908,9 +63756,7 @@
     method public boolean implies(java.security.CodeSource);
   }
 
-  public final class CryptoPrimitive extends java.lang.Enum {
-    method public static java.security.CryptoPrimitive valueOf(java.lang.String);
-    method public static final java.security.CryptoPrimitive[] values();
+  public enum CryptoPrimitive {
     enum_constant public static final java.security.CryptoPrimitive BLOCK_CIPHER;
     enum_constant public static final java.security.CryptoPrimitive KEY_AGREEMENT;
     enum_constant public static final java.security.CryptoPrimitive KEY_ENCAPSULATION;
@@ -63925,9 +63771,9 @@
 
   public class DigestException extends java.security.GeneralSecurityException {
     ctor public DigestException();
-    ctor public DigestException(java.lang.String);
-    ctor public DigestException(java.lang.String, java.lang.Throwable);
-    ctor public DigestException(java.lang.Throwable);
+    ctor public DigestException(String);
+    ctor public DigestException(String, Throwable);
+    ctor public DigestException(Throwable);
   }
 
   public class DigestInputStream extends java.io.FilterInputStream {
@@ -63946,108 +63792,108 @@
     field protected java.security.MessageDigest digest;
   }
 
-  public abstract interface DomainCombiner {
-    method public abstract java.security.ProtectionDomain[] combine(java.security.ProtectionDomain[], java.security.ProtectionDomain[]);
+  public interface DomainCombiner {
+    method public java.security.ProtectionDomain[] combine(java.security.ProtectionDomain[], java.security.ProtectionDomain[]);
   }
 
   public final class DomainLoadStoreParameter implements java.security.KeyStore.LoadStoreParameter {
-    ctor public DomainLoadStoreParameter(java.net.URI, java.util.Map<java.lang.String, java.security.KeyStore.ProtectionParameter>);
+    ctor public DomainLoadStoreParameter(java.net.URI, java.util.Map<java.lang.String,java.security.KeyStore.ProtectionParameter>);
     method public java.net.URI getConfiguration();
     method public java.security.KeyStore.ProtectionParameter getProtectionParameter();
-    method public java.util.Map<java.lang.String, java.security.KeyStore.ProtectionParameter> getProtectionParams();
+    method public java.util.Map<java.lang.String,java.security.KeyStore.ProtectionParameter> getProtectionParams();
   }
 
   public class GeneralSecurityException extends java.lang.Exception {
     ctor public GeneralSecurityException();
-    ctor public GeneralSecurityException(java.lang.String);
-    ctor public GeneralSecurityException(java.lang.String, java.lang.Throwable);
-    ctor public GeneralSecurityException(java.lang.Throwable);
+    ctor public GeneralSecurityException(String);
+    ctor public GeneralSecurityException(String, Throwable);
+    ctor public GeneralSecurityException(Throwable);
   }
 
-  public abstract interface Guard {
-    method public abstract void checkGuard(java.lang.Object) throws java.lang.SecurityException;
+  public interface Guard {
+    method public void checkGuard(Object) throws java.lang.SecurityException;
   }
 
   public class GuardedObject implements java.io.Serializable {
-    ctor public GuardedObject(java.lang.Object, java.security.Guard);
-    method public java.lang.Object getObject() throws java.lang.SecurityException;
+    ctor public GuardedObject(Object, java.security.Guard);
+    method public Object getObject() throws java.lang.SecurityException;
   }
 
-  public abstract deprecated class Identity implements java.security.Principal java.io.Serializable {
-    ctor protected Identity();
-    ctor public Identity(java.lang.String, java.security.IdentityScope) throws java.security.KeyManagementException;
-    ctor public Identity(java.lang.String);
-    method public void addCertificate(java.security.Certificate) throws java.security.KeyManagementException;
-    method public java.security.Certificate[] certificates();
-    method public final boolean equals(java.lang.Object);
-    method public java.lang.String getInfo();
-    method public final java.lang.String getName();
-    method public java.security.PublicKey getPublicKey();
-    method public final java.security.IdentityScope getScope();
-    method protected boolean identityEquals(java.security.Identity);
-    method public void removeCertificate(java.security.Certificate) throws java.security.KeyManagementException;
-    method public void setInfo(java.lang.String);
-    method public void setPublicKey(java.security.PublicKey) throws java.security.KeyManagementException;
-    method public java.lang.String toString(boolean);
+  @Deprecated public abstract class Identity implements java.security.Principal java.io.Serializable {
+    ctor @Deprecated protected Identity();
+    ctor @Deprecated public Identity(String, java.security.IdentityScope) throws java.security.KeyManagementException;
+    ctor @Deprecated public Identity(String);
+    method @Deprecated public void addCertificate(java.security.Certificate) throws java.security.KeyManagementException;
+    method @Deprecated public java.security.Certificate[] certificates();
+    method @Deprecated public final boolean equals(Object);
+    method @Deprecated public String getInfo();
+    method @Deprecated public final String getName();
+    method @Deprecated public java.security.PublicKey getPublicKey();
+    method @Deprecated public final java.security.IdentityScope getScope();
+    method @Deprecated protected boolean identityEquals(java.security.Identity);
+    method @Deprecated public void removeCertificate(java.security.Certificate) throws java.security.KeyManagementException;
+    method @Deprecated public void setInfo(String);
+    method @Deprecated public void setPublicKey(java.security.PublicKey) throws java.security.KeyManagementException;
+    method @Deprecated public String toString(boolean);
   }
 
-  public abstract deprecated class IdentityScope extends java.security.Identity {
-    ctor protected IdentityScope();
-    ctor public IdentityScope(java.lang.String);
-    ctor public IdentityScope(java.lang.String, java.security.IdentityScope) throws java.security.KeyManagementException;
-    method public abstract void addIdentity(java.security.Identity) throws java.security.KeyManagementException;
-    method public abstract java.security.Identity getIdentity(java.lang.String);
-    method public java.security.Identity getIdentity(java.security.Principal);
-    method public abstract java.security.Identity getIdentity(java.security.PublicKey);
-    method public static java.security.IdentityScope getSystemScope();
-    method public abstract java.util.Enumeration<java.security.Identity> identities();
-    method public abstract void removeIdentity(java.security.Identity) throws java.security.KeyManagementException;
-    method protected static void setSystemScope(java.security.IdentityScope);
-    method public abstract int size();
+  @Deprecated public abstract class IdentityScope extends java.security.Identity {
+    ctor @Deprecated protected IdentityScope();
+    ctor @Deprecated public IdentityScope(String);
+    ctor @Deprecated public IdentityScope(String, java.security.IdentityScope) throws java.security.KeyManagementException;
+    method @Deprecated public abstract void addIdentity(java.security.Identity) throws java.security.KeyManagementException;
+    method @Deprecated public abstract java.security.Identity getIdentity(String);
+    method @Deprecated public java.security.Identity getIdentity(java.security.Principal);
+    method @Deprecated public abstract java.security.Identity getIdentity(java.security.PublicKey);
+    method @Deprecated public static java.security.IdentityScope getSystemScope();
+    method @Deprecated public abstract java.util.Enumeration<java.security.Identity> identities();
+    method @Deprecated public abstract void removeIdentity(java.security.Identity) throws java.security.KeyManagementException;
+    method @Deprecated protected static void setSystemScope(java.security.IdentityScope);
+    method @Deprecated public abstract int size();
   }
 
   public class InvalidAlgorithmParameterException extends java.security.GeneralSecurityException {
     ctor public InvalidAlgorithmParameterException();
-    ctor public InvalidAlgorithmParameterException(java.lang.String);
-    ctor public InvalidAlgorithmParameterException(java.lang.String, java.lang.Throwable);
-    ctor public InvalidAlgorithmParameterException(java.lang.Throwable);
+    ctor public InvalidAlgorithmParameterException(String);
+    ctor public InvalidAlgorithmParameterException(String, Throwable);
+    ctor public InvalidAlgorithmParameterException(Throwable);
   }
 
   public class InvalidKeyException extends java.security.KeyException {
     ctor public InvalidKeyException();
-    ctor public InvalidKeyException(java.lang.String);
-    ctor public InvalidKeyException(java.lang.String, java.lang.Throwable);
-    ctor public InvalidKeyException(java.lang.Throwable);
+    ctor public InvalidKeyException(String);
+    ctor public InvalidKeyException(String, Throwable);
+    ctor public InvalidKeyException(Throwable);
   }
 
   public class InvalidParameterException extends java.lang.IllegalArgumentException {
     ctor public InvalidParameterException();
-    ctor public InvalidParameterException(java.lang.String);
+    ctor public InvalidParameterException(String);
   }
 
-  public abstract interface Key implements java.io.Serializable {
-    method public abstract java.lang.String getAlgorithm();
-    method public abstract byte[] getEncoded();
-    method public abstract java.lang.String getFormat();
+  public interface Key extends java.io.Serializable {
+    method public String getAlgorithm();
+    method public byte[] getEncoded();
+    method public String getFormat();
     field public static final long serialVersionUID = 6603384152749567654L; // 0x5ba3eee69414eea6L
   }
 
   public class KeyException extends java.security.GeneralSecurityException {
     ctor public KeyException();
-    ctor public KeyException(java.lang.String);
-    ctor public KeyException(java.lang.String, java.lang.Throwable);
-    ctor public KeyException(java.lang.Throwable);
+    ctor public KeyException(String);
+    ctor public KeyException(String, Throwable);
+    ctor public KeyException(Throwable);
   }
 
   public class KeyFactory {
-    ctor protected KeyFactory(java.security.KeyFactorySpi, java.security.Provider, java.lang.String);
+    ctor protected KeyFactory(java.security.KeyFactorySpi, java.security.Provider, String);
     method public final java.security.PrivateKey generatePrivate(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException;
     method public final java.security.PublicKey generatePublic(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException;
-    method public final java.lang.String getAlgorithm();
-    method public static java.security.KeyFactory getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static java.security.KeyFactory getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.KeyFactory getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
-    method public final <T extends java.security.spec.KeySpec> T getKeySpec(java.security.Key, java.lang.Class<T>) throws java.security.spec.InvalidKeySpecException;
+    method public final String getAlgorithm();
+    method public static java.security.KeyFactory getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static java.security.KeyFactory getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static java.security.KeyFactory getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public final <T extends java.security.spec.KeySpec> T getKeySpec(java.security.Key, Class<T>) throws java.security.spec.InvalidKeySpecException;
     method public final java.security.Provider getProvider();
     method public final java.security.Key translateKey(java.security.Key) throws java.security.InvalidKeyException;
   }
@@ -64056,15 +63902,15 @@
     ctor public KeyFactorySpi();
     method protected abstract java.security.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException;
     method protected abstract java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException;
-    method protected abstract <T extends java.security.spec.KeySpec> T engineGetKeySpec(java.security.Key, java.lang.Class<T>) throws java.security.spec.InvalidKeySpecException;
+    method protected abstract <T extends java.security.spec.KeySpec> T engineGetKeySpec(java.security.Key, Class<T>) throws java.security.spec.InvalidKeySpecException;
     method protected abstract java.security.Key engineTranslateKey(java.security.Key) throws java.security.InvalidKeyException;
   }
 
   public class KeyManagementException extends java.security.KeyException {
     ctor public KeyManagementException();
-    ctor public KeyManagementException(java.lang.String);
-    ctor public KeyManagementException(java.lang.String, java.lang.Throwable);
-    ctor public KeyManagementException(java.lang.Throwable);
+    ctor public KeyManagementException(String);
+    ctor public KeyManagementException(String, Throwable);
+    ctor public KeyManagementException(Throwable);
   }
 
   public final class KeyPair implements java.io.Serializable {
@@ -64074,13 +63920,13 @@
   }
 
   public abstract class KeyPairGenerator extends java.security.KeyPairGeneratorSpi {
-    ctor protected KeyPairGenerator(java.lang.String);
+    ctor protected KeyPairGenerator(String);
     method public final java.security.KeyPair genKeyPair();
     method public java.security.KeyPair generateKeyPair();
-    method public java.lang.String getAlgorithm();
-    method public static java.security.KeyPairGenerator getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static java.security.KeyPairGenerator getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.KeyPairGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public String getAlgorithm();
+    method public static java.security.KeyPairGenerator getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static java.security.KeyPairGenerator getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static java.security.KeyPairGenerator getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
     method public void initialize(int);
     method public void initialize(int, java.security.SecureRandom);
@@ -64095,56 +63941,54 @@
   }
 
   public class KeyRep implements java.io.Serializable {
-    ctor public KeyRep(java.security.KeyRep.Type, java.lang.String, java.lang.String, byte[]);
-    method protected java.lang.Object readResolve() throws java.io.ObjectStreamException;
+    ctor public KeyRep(java.security.KeyRep.Type, String, String, byte[]);
+    method protected Object readResolve() throws java.io.ObjectStreamException;
   }
 
-  public static final class KeyRep.Type extends java.lang.Enum {
-    method public static java.security.KeyRep.Type valueOf(java.lang.String);
-    method public static final java.security.KeyRep.Type[] values();
+  public enum KeyRep.Type {
     enum_constant public static final java.security.KeyRep.Type PRIVATE;
     enum_constant public static final java.security.KeyRep.Type PUBLIC;
     enum_constant public static final java.security.KeyRep.Type SECRET;
   }
 
   public class KeyStore {
-    ctor protected KeyStore(java.security.KeyStoreSpi, java.security.Provider, java.lang.String);
+    ctor protected KeyStore(java.security.KeyStoreSpi, java.security.Provider, String);
     method public final java.util.Enumeration<java.lang.String> aliases() throws java.security.KeyStoreException;
-    method public final boolean containsAlias(java.lang.String) throws java.security.KeyStoreException;
-    method public final void deleteEntry(java.lang.String) throws java.security.KeyStoreException;
-    method public final boolean entryInstanceOf(java.lang.String, java.lang.Class<? extends java.security.KeyStore.Entry>) throws java.security.KeyStoreException;
-    method public final java.security.cert.Certificate getCertificate(java.lang.String) throws java.security.KeyStoreException;
-    method public final java.lang.String getCertificateAlias(java.security.cert.Certificate) throws java.security.KeyStoreException;
-    method public final java.security.cert.Certificate[] getCertificateChain(java.lang.String) throws java.security.KeyStoreException;
-    method public final java.util.Date getCreationDate(java.lang.String) throws java.security.KeyStoreException;
-    method public static final java.lang.String getDefaultType();
-    method public final java.security.KeyStore.Entry getEntry(java.lang.String, java.security.KeyStore.ProtectionParameter) throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableEntryException;
-    method public static java.security.KeyStore getInstance(java.lang.String) throws java.security.KeyStoreException;
-    method public static java.security.KeyStore getInstance(java.lang.String, java.lang.String) throws java.security.KeyStoreException, java.security.NoSuchProviderException;
-    method public static java.security.KeyStore getInstance(java.lang.String, java.security.Provider) throws java.security.KeyStoreException;
-    method public final java.security.Key getKey(java.lang.String, char[]) throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
+    method public final boolean containsAlias(String) throws java.security.KeyStoreException;
+    method public final void deleteEntry(String) throws java.security.KeyStoreException;
+    method public final boolean entryInstanceOf(String, Class<? extends java.security.KeyStore.Entry>) throws java.security.KeyStoreException;
+    method public final java.security.cert.Certificate getCertificate(String) throws java.security.KeyStoreException;
+    method public final String getCertificateAlias(java.security.cert.Certificate) throws java.security.KeyStoreException;
+    method public final java.security.cert.Certificate[] getCertificateChain(String) throws java.security.KeyStoreException;
+    method public final java.util.Date getCreationDate(String) throws java.security.KeyStoreException;
+    method public static final String getDefaultType();
+    method public final java.security.KeyStore.Entry getEntry(String, java.security.KeyStore.ProtectionParameter) throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableEntryException;
+    method public static java.security.KeyStore getInstance(String) throws java.security.KeyStoreException;
+    method public static java.security.KeyStore getInstance(String, String) throws java.security.KeyStoreException, java.security.NoSuchProviderException;
+    method public static java.security.KeyStore getInstance(String, java.security.Provider) throws java.security.KeyStoreException;
+    method public final java.security.Key getKey(String, char[]) throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
     method public final java.security.Provider getProvider();
-    method public final java.lang.String getType();
-    method public final boolean isCertificateEntry(java.lang.String) throws java.security.KeyStoreException;
-    method public final boolean isKeyEntry(java.lang.String) throws java.security.KeyStoreException;
+    method public final String getType();
+    method public final boolean isCertificateEntry(String) throws java.security.KeyStoreException;
+    method public final boolean isKeyEntry(String) throws java.security.KeyStoreException;
     method public final void load(java.io.InputStream, char[]) throws java.security.cert.CertificateException, java.io.IOException, java.security.NoSuchAlgorithmException;
     method public final void load(java.security.KeyStore.LoadStoreParameter) throws java.security.cert.CertificateException, java.io.IOException, java.security.NoSuchAlgorithmException;
-    method public final void setCertificateEntry(java.lang.String, java.security.cert.Certificate) throws java.security.KeyStoreException;
-    method public final void setEntry(java.lang.String, java.security.KeyStore.Entry, java.security.KeyStore.ProtectionParameter) throws java.security.KeyStoreException;
-    method public final void setKeyEntry(java.lang.String, java.security.Key, char[], java.security.cert.Certificate[]) throws java.security.KeyStoreException;
-    method public final void setKeyEntry(java.lang.String, byte[], java.security.cert.Certificate[]) throws java.security.KeyStoreException;
+    method public final void setCertificateEntry(String, java.security.cert.Certificate) throws java.security.KeyStoreException;
+    method public final void setEntry(String, java.security.KeyStore.Entry, java.security.KeyStore.ProtectionParameter) throws java.security.KeyStoreException;
+    method public final void setKeyEntry(String, java.security.Key, char[], java.security.cert.Certificate[]) throws java.security.KeyStoreException;
+    method public final void setKeyEntry(String, byte[], java.security.cert.Certificate[]) throws java.security.KeyStoreException;
     method public final int size() throws java.security.KeyStoreException;
     method public final void store(java.io.OutputStream, char[]) throws java.security.cert.CertificateException, java.io.IOException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException;
     method public final void store(java.security.KeyStore.LoadStoreParameter) throws java.security.cert.CertificateException, java.io.IOException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException;
   }
 
-  public static abstract class KeyStore.Builder {
+  public abstract static class KeyStore.Builder {
     ctor protected KeyStore.Builder();
     method public abstract java.security.KeyStore getKeyStore() throws java.security.KeyStoreException;
-    method public abstract java.security.KeyStore.ProtectionParameter getProtectionParameter(java.lang.String) throws java.security.KeyStoreException;
+    method public abstract java.security.KeyStore.ProtectionParameter getProtectionParameter(String) throws java.security.KeyStoreException;
     method public static java.security.KeyStore.Builder newInstance(java.security.KeyStore, java.security.KeyStore.ProtectionParameter);
-    method public static java.security.KeyStore.Builder newInstance(java.lang.String, java.security.Provider, java.io.File, java.security.KeyStore.ProtectionParameter);
-    method public static java.security.KeyStore.Builder newInstance(java.lang.String, java.security.Provider, java.security.KeyStore.ProtectionParameter);
+    method public static java.security.KeyStore.Builder newInstance(String, java.security.Provider, java.io.File, java.security.KeyStore.ProtectionParameter);
+    method public static java.security.KeyStore.Builder newInstance(String, java.security.Provider, java.security.KeyStore.ProtectionParameter);
   }
 
   public static class KeyStore.CallbackHandlerProtection implements java.security.KeyStore.ProtectionParameter {
@@ -64152,27 +63996,25 @@
     method public javax.security.auth.callback.CallbackHandler getCallbackHandler();
   }
 
-  public static abstract interface KeyStore.Entry {
+  public static interface KeyStore.Entry {
     method public default java.util.Set<java.security.KeyStore.Entry.Attribute> getAttributes();
   }
 
-  public static abstract interface KeyStore.Entry.Attribute {
-    method public abstract java.lang.String getName();
-    method public abstract java.lang.String getValue();
+  public static interface KeyStore.Entry.Attribute {
+    method public String getName();
+    method public String getValue();
   }
 
-  public static abstract interface KeyStore.LoadStoreParameter {
-    method public abstract java.security.KeyStore.ProtectionParameter getProtectionParameter();
+  public static interface KeyStore.LoadStoreParameter {
+    method public java.security.KeyStore.ProtectionParameter getProtectionParameter();
   }
 
   public static class KeyStore.PasswordProtection implements javax.security.auth.Destroyable java.security.KeyStore.ProtectionParameter {
     ctor public KeyStore.PasswordProtection(char[]);
-    ctor public KeyStore.PasswordProtection(char[], java.lang.String, java.security.spec.AlgorithmParameterSpec);
-    method public synchronized void destroy() throws javax.security.auth.DestroyFailedException;
-    method public synchronized char[] getPassword();
-    method public java.lang.String getProtectionAlgorithm();
+    ctor public KeyStore.PasswordProtection(char[], String, java.security.spec.AlgorithmParameterSpec);
+    method public char[] getPassword();
+    method public String getProtectionAlgorithm();
     method public java.security.spec.AlgorithmParameterSpec getProtectionParameters();
-    method public synchronized boolean isDestroyed();
   }
 
   public static final class KeyStore.PrivateKeyEntry implements java.security.KeyStore.Entry {
@@ -64183,7 +64025,7 @@
     method public java.security.PrivateKey getPrivateKey();
   }
 
-  public static abstract interface KeyStore.ProtectionParameter {
+  public static interface KeyStore.ProtectionParameter {
   }
 
   public static final class KeyStore.SecretKeyEntry implements java.security.KeyStore.Entry {
@@ -64200,58 +64042,58 @@
 
   public class KeyStoreException extends java.security.GeneralSecurityException {
     ctor public KeyStoreException();
-    ctor public KeyStoreException(java.lang.String);
-    ctor public KeyStoreException(java.lang.String, java.lang.Throwable);
-    ctor public KeyStoreException(java.lang.Throwable);
+    ctor public KeyStoreException(String);
+    ctor public KeyStoreException(String, Throwable);
+    ctor public KeyStoreException(Throwable);
   }
 
   public abstract class KeyStoreSpi {
     ctor public KeyStoreSpi();
     method public abstract java.util.Enumeration<java.lang.String> engineAliases();
-    method public abstract boolean engineContainsAlias(java.lang.String);
-    method public abstract void engineDeleteEntry(java.lang.String) throws java.security.KeyStoreException;
-    method public boolean engineEntryInstanceOf(java.lang.String, java.lang.Class<? extends java.security.KeyStore.Entry>);
-    method public abstract java.security.cert.Certificate engineGetCertificate(java.lang.String);
-    method public abstract java.lang.String engineGetCertificateAlias(java.security.cert.Certificate);
-    method public abstract java.security.cert.Certificate[] engineGetCertificateChain(java.lang.String);
-    method public abstract java.util.Date engineGetCreationDate(java.lang.String);
-    method public java.security.KeyStore.Entry engineGetEntry(java.lang.String, java.security.KeyStore.ProtectionParameter) throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableEntryException;
-    method public abstract java.security.Key engineGetKey(java.lang.String, char[]) throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
-    method public abstract boolean engineIsCertificateEntry(java.lang.String);
-    method public abstract boolean engineIsKeyEntry(java.lang.String);
+    method public abstract boolean engineContainsAlias(String);
+    method public abstract void engineDeleteEntry(String) throws java.security.KeyStoreException;
+    method public boolean engineEntryInstanceOf(String, Class<? extends java.security.KeyStore.Entry>);
+    method public abstract java.security.cert.Certificate engineGetCertificate(String);
+    method public abstract String engineGetCertificateAlias(java.security.cert.Certificate);
+    method public abstract java.security.cert.Certificate[] engineGetCertificateChain(String);
+    method public abstract java.util.Date engineGetCreationDate(String);
+    method public java.security.KeyStore.Entry engineGetEntry(String, java.security.KeyStore.ProtectionParameter) throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableEntryException;
+    method public abstract java.security.Key engineGetKey(String, char[]) throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
+    method public abstract boolean engineIsCertificateEntry(String);
+    method public abstract boolean engineIsKeyEntry(String);
     method public abstract void engineLoad(java.io.InputStream, char[]) throws java.security.cert.CertificateException, java.io.IOException, java.security.NoSuchAlgorithmException;
     method public void engineLoad(java.security.KeyStore.LoadStoreParameter) throws java.security.cert.CertificateException, java.io.IOException, java.security.NoSuchAlgorithmException;
-    method public abstract void engineSetCertificateEntry(java.lang.String, java.security.cert.Certificate) throws java.security.KeyStoreException;
-    method public void engineSetEntry(java.lang.String, java.security.KeyStore.Entry, java.security.KeyStore.ProtectionParameter) throws java.security.KeyStoreException;
-    method public abstract void engineSetKeyEntry(java.lang.String, java.security.Key, char[], java.security.cert.Certificate[]) throws java.security.KeyStoreException;
-    method public abstract void engineSetKeyEntry(java.lang.String, byte[], java.security.cert.Certificate[]) throws java.security.KeyStoreException;
+    method public abstract void engineSetCertificateEntry(String, java.security.cert.Certificate) throws java.security.KeyStoreException;
+    method public void engineSetEntry(String, java.security.KeyStore.Entry, java.security.KeyStore.ProtectionParameter) throws java.security.KeyStoreException;
+    method public abstract void engineSetKeyEntry(String, java.security.Key, char[], java.security.cert.Certificate[]) throws java.security.KeyStoreException;
+    method public abstract void engineSetKeyEntry(String, byte[], java.security.cert.Certificate[]) throws java.security.KeyStoreException;
     method public abstract int engineSize();
     method public abstract void engineStore(java.io.OutputStream, char[]) throws java.security.cert.CertificateException, java.io.IOException, java.security.NoSuchAlgorithmException;
     method public void engineStore(java.security.KeyStore.LoadStoreParameter) throws java.security.cert.CertificateException, java.io.IOException, java.security.NoSuchAlgorithmException;
   }
 
   public abstract class MessageDigest extends java.security.MessageDigestSpi {
-    ctor protected MessageDigest(java.lang.String);
+    ctor protected MessageDigest(@NonNull String);
     method public byte[] digest();
     method public int digest(byte[], int, int) throws java.security.DigestException;
     method public byte[] digest(byte[]);
-    method public final java.lang.String getAlgorithm();
+    method @NonNull public final String getAlgorithm();
     method public final int getDigestLength();
-    method public static java.security.MessageDigest getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static java.security.MessageDigest getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.MessageDigest getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
-    method public final java.security.Provider getProvider();
+    method @NonNull public static java.security.MessageDigest getInstance(@NonNull String) throws java.security.NoSuchAlgorithmException;
+    method @NonNull public static java.security.MessageDigest getInstance(@NonNull String, @NonNull String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method @NonNull public static java.security.MessageDigest getInstance(@NonNull String, @NonNull java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method @NonNull public final java.security.Provider getProvider();
     method public static boolean isEqual(byte[], byte[]);
     method public void reset();
     method public void update(byte);
     method public void update(byte[], int, int);
     method public void update(byte[]);
-    method public final void update(java.nio.ByteBuffer);
+    method public final void update(@NonNull java.nio.ByteBuffer);
   }
 
   public abstract class MessageDigestSpi {
     ctor public MessageDigestSpi();
-    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+    method public Object clone() throws java.lang.CloneNotSupportedException;
     method protected abstract byte[] engineDigest();
     method protected int engineDigest(byte[], int, int) throws java.security.DigestException;
     method protected int engineGetDigestLength();
@@ -64263,29 +64105,29 @@
 
   public class NoSuchAlgorithmException extends java.security.GeneralSecurityException {
     ctor public NoSuchAlgorithmException();
-    ctor public NoSuchAlgorithmException(java.lang.String);
-    ctor public NoSuchAlgorithmException(java.lang.String, java.lang.Throwable);
-    ctor public NoSuchAlgorithmException(java.lang.Throwable);
+    ctor public NoSuchAlgorithmException(String);
+    ctor public NoSuchAlgorithmException(String, Throwable);
+    ctor public NoSuchAlgorithmException(Throwable);
   }
 
   public class NoSuchProviderException extends java.security.GeneralSecurityException {
     ctor public NoSuchProviderException();
-    ctor public NoSuchProviderException(java.lang.String);
+    ctor public NoSuchProviderException(String);
   }
 
   public final class PKCS12Attribute implements java.security.KeyStore.Entry.Attribute {
-    ctor public PKCS12Attribute(java.lang.String, java.lang.String);
+    ctor public PKCS12Attribute(String, String);
     ctor public PKCS12Attribute(byte[]);
     method public byte[] getEncoded();
-    method public java.lang.String getName();
-    method public java.lang.String getValue();
+    method public String getName();
+    method public String getValue();
   }
 
   public abstract class Permission implements java.security.Guard java.io.Serializable {
-    ctor public Permission(java.lang.String);
-    method public void checkGuard(java.lang.Object) throws java.lang.SecurityException;
-    method public abstract java.lang.String getActions();
-    method public final java.lang.String getName();
+    ctor public Permission(String);
+    method public void checkGuard(Object) throws java.lang.SecurityException;
+    method public abstract String getActions();
+    method public final String getName();
     method public abstract boolean implies(java.security.Permission);
     method public java.security.PermissionCollection newPermissionCollection();
   }
@@ -64308,22 +64150,22 @@
 
   public abstract class Policy {
     ctor public Policy();
-    method public static java.security.Policy getInstance(java.lang.String, java.security.Policy.Parameters) throws java.security.NoSuchAlgorithmException;
-    method public static java.security.Policy getInstance(java.lang.String, java.security.Policy.Parameters, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.Policy getInstance(java.lang.String, java.security.Policy.Parameters, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public static java.security.Policy getInstance(String, java.security.Policy.Parameters) throws java.security.NoSuchAlgorithmException;
+    method public static java.security.Policy getInstance(String, java.security.Policy.Parameters, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static java.security.Policy getInstance(String, java.security.Policy.Parameters, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public java.security.Policy.Parameters getParameters();
     method public java.security.PermissionCollection getPermissions(java.security.CodeSource);
     method public java.security.PermissionCollection getPermissions(java.security.ProtectionDomain);
     method public static java.security.Policy getPolicy();
     method public java.security.Provider getProvider();
-    method public java.lang.String getType();
+    method public String getType();
     method public boolean implies(java.security.ProtectionDomain, java.security.Permission);
     method public void refresh();
     method public static void setPolicy(java.security.Policy);
     field public static final java.security.PermissionCollection UNSUPPORTED_EMPTY_COLLECTION;
   }
 
-  public static abstract interface Policy.Parameters {
+  public static interface Policy.Parameters {
   }
 
   public abstract class PolicySpi {
@@ -64334,36 +64176,35 @@
     method protected void engineRefresh();
   }
 
-  public abstract interface Principal {
-    method public abstract boolean equals(java.lang.Object);
-    method public abstract java.lang.String getName();
-    method public abstract int hashCode();
+  public interface Principal {
+    method public boolean equals(Object);
+    method public String getName();
+    method public int hashCode();
     method public default boolean implies(javax.security.auth.Subject);
-    method public abstract java.lang.String toString();
+    method public String toString();
   }
 
-  public abstract interface PrivateKey implements javax.security.auth.Destroyable java.security.Key {
+  public interface PrivateKey extends java.security.Key javax.security.auth.Destroyable {
     field public static final long serialVersionUID = 6034044314589513430L; // 0x53bd3b559a12c6d6L
   }
 
-  public abstract interface PrivilegedAction<T> {
-    method public abstract T run();
+  public interface PrivilegedAction<T> {
+    method public T run();
   }
 
   public class PrivilegedActionException extends java.lang.Exception {
-    ctor public PrivilegedActionException(java.lang.Exception);
-    method public java.lang.Throwable getCause();
-    method public java.lang.Exception getException();
+    ctor public PrivilegedActionException(Exception);
+    method public Exception getException();
   }
 
-  public abstract interface PrivilegedExceptionAction<T> {
-    method public abstract T run() throws java.lang.Exception;
+  public interface PrivilegedExceptionAction<T> {
+    method public T run() throws java.lang.Exception;
   }
 
   public class ProtectionDomain {
     ctor public ProtectionDomain(java.security.CodeSource, java.security.PermissionCollection);
-    ctor public ProtectionDomain(java.security.CodeSource, java.security.PermissionCollection, java.lang.ClassLoader, java.security.Principal[]);
-    method public final java.lang.ClassLoader getClassLoader();
+    ctor public ProtectionDomain(java.security.CodeSource, java.security.PermissionCollection, ClassLoader, java.security.Principal[]);
+    method public final ClassLoader getClassLoader();
     method public final java.security.CodeSource getCodeSource();
     method public final java.security.PermissionCollection getPermissions();
     method public final java.security.Principal[] getPrincipals();
@@ -64371,62 +64212,62 @@
   }
 
   public abstract class Provider extends java.util.Properties {
-    ctor protected Provider(java.lang.String, double, java.lang.String);
-    method public synchronized java.lang.Object compute(java.lang.Object, java.util.function.BiFunction<? super java.lang.Object, ? super java.lang.Object, ? extends java.lang.Object>);
-    method public synchronized java.lang.Object computeIfAbsent(java.lang.Object, java.util.function.Function<? super java.lang.Object, ? extends java.lang.Object>);
-    method public synchronized java.lang.Object computeIfPresent(java.lang.Object, java.util.function.BiFunction<? super java.lang.Object, ? super java.lang.Object, ? extends java.lang.Object>);
+    ctor protected Provider(String, double, String);
+    method public Object compute(Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
+    method public Object computeIfAbsent(Object, java.util.function.Function<? super java.lang.Object,?>);
+    method public Object computeIfPresent(Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
     method public java.util.Enumeration<java.lang.Object> elements();
-    method public synchronized java.util.Set<java.util.Map.Entry<java.lang.Object, java.lang.Object>> entrySet();
-    method public synchronized void forEach(java.util.function.BiConsumer<? super java.lang.Object, ? super java.lang.Object>);
-    method public java.lang.Object get(java.lang.Object);
-    method public java.lang.String getInfo();
-    method public java.lang.String getName();
-    method public synchronized java.lang.Object getOrDefault(java.lang.Object, java.lang.Object);
-    method public synchronized java.security.Provider.Service getService(java.lang.String, java.lang.String);
-    method public synchronized java.util.Set<java.security.Provider.Service> getServices();
+    method public java.util.Set<java.util.Map.Entry<java.lang.Object,java.lang.Object>> entrySet();
+    method public void forEach(java.util.function.BiConsumer<? super java.lang.Object,? super java.lang.Object>);
+    method public Object get(Object);
+    method public String getInfo();
+    method public String getName();
+    method public Object getOrDefault(Object, Object);
+    method public java.security.Provider.Service getService(String, String);
+    method public java.util.Set<java.security.Provider.Service> getServices();
     method public double getVersion();
     method public java.util.Set<java.lang.Object> keySet();
     method public java.util.Enumeration<java.lang.Object> keys();
-    method public synchronized java.lang.Object merge(java.lang.Object, java.lang.Object, java.util.function.BiFunction<? super java.lang.Object, ? super java.lang.Object, ? extends java.lang.Object>);
-    method public synchronized java.lang.Object put(java.lang.Object, java.lang.Object);
-    method public synchronized void putAll(java.util.Map<?, ?>);
-    method public synchronized java.lang.Object putIfAbsent(java.lang.Object, java.lang.Object);
-    method protected synchronized void putService(java.security.Provider.Service);
-    method public synchronized java.lang.Object remove(java.lang.Object);
-    method protected synchronized void removeService(java.security.Provider.Service);
-    method public synchronized boolean replace(java.lang.Object, java.lang.Object, java.lang.Object);
-    method public synchronized java.lang.Object replace(java.lang.Object, java.lang.Object);
-    method public synchronized void replaceAll(java.util.function.BiFunction<? super java.lang.Object, ? super java.lang.Object, ? extends java.lang.Object>);
+    method public Object merge(Object, Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
+    method public Object put(Object, Object);
+    method public void putAll(java.util.Map<?,?>);
+    method public Object putIfAbsent(Object, Object);
+    method protected void putService(java.security.Provider.Service);
+    method public Object remove(Object);
+    method protected void removeService(java.security.Provider.Service);
+    method public boolean replace(Object, Object, Object);
+    method public Object replace(Object, Object);
+    method public void replaceAll(java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
     method public java.util.Collection<java.lang.Object> values();
   }
 
   public static class Provider.Service {
-    ctor public Provider.Service(java.security.Provider, java.lang.String, java.lang.String, java.lang.String, java.util.List<java.lang.String>, java.util.Map<java.lang.String, java.lang.String>);
-    method public final java.lang.String getAlgorithm();
-    method public final java.lang.String getAttribute(java.lang.String);
-    method public final java.lang.String getClassName();
+    ctor public Provider.Service(java.security.Provider, String, String, String, java.util.List<java.lang.String>, java.util.Map<java.lang.String,java.lang.String>);
+    method public final String getAlgorithm();
+    method public final String getAttribute(String);
+    method public final String getClassName();
     method public final java.security.Provider getProvider();
-    method public final java.lang.String getType();
-    method public java.lang.Object newInstance(java.lang.Object) throws java.security.NoSuchAlgorithmException;
-    method public boolean supportsParameter(java.lang.Object);
+    method public final String getType();
+    method public Object newInstance(Object) throws java.security.NoSuchAlgorithmException;
+    method public boolean supportsParameter(Object);
   }
 
   public class ProviderException extends java.lang.RuntimeException {
     ctor public ProviderException();
-    ctor public ProviderException(java.lang.String);
-    ctor public ProviderException(java.lang.String, java.lang.Throwable);
-    ctor public ProviderException(java.lang.Throwable);
+    ctor public ProviderException(String);
+    ctor public ProviderException(String, Throwable);
+    ctor public ProviderException(Throwable);
   }
 
-  public abstract interface PublicKey implements java.security.Key {
+  public interface PublicKey extends java.security.Key {
     field public static final long serialVersionUID = 7187392471159151072L; // 0x63bebf5f40c219e0L
   }
 
   public class SecureClassLoader extends java.lang.ClassLoader {
-    ctor protected SecureClassLoader(java.lang.ClassLoader);
+    ctor protected SecureClassLoader(ClassLoader);
     ctor protected SecureClassLoader();
-    method protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int, java.security.CodeSource);
-    method protected final java.lang.Class<?> defineClass(java.lang.String, java.nio.ByteBuffer, java.security.CodeSource);
+    method protected final Class<?> defineClass(String, byte[], int, int, java.security.CodeSource);
+    method protected final Class<?> defineClass(String, java.nio.ByteBuffer, java.security.CodeSource);
     method protected java.security.PermissionCollection getPermissions(java.security.CodeSource);
   }
 
@@ -64435,17 +64276,15 @@
     ctor public SecureRandom(byte[]);
     ctor protected SecureRandom(java.security.SecureRandomSpi, java.security.Provider);
     method public byte[] generateSeed(int);
-    method public java.lang.String getAlgorithm();
-    method public static java.security.SecureRandom getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static java.security.SecureRandom getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.SecureRandom getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public String getAlgorithm();
+    method public static java.security.SecureRandom getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static java.security.SecureRandom getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static java.security.SecureRandom getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public static java.security.SecureRandom getInstanceStrong() throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
     method public static byte[] getSeed(int);
     method protected final int next(int);
-    method public synchronized void nextBytes(byte[]);
-    method public synchronized void setSeed(byte[]);
-    method public void setSeed(long);
+    method public void setSeed(byte[]);
   }
 
   public abstract class SecureRandomSpi implements java.io.Serializable {
@@ -64457,37 +64296,37 @@
 
   public final class Security {
     method public static int addProvider(java.security.Provider);
-    method public static deprecated java.lang.String getAlgorithmProperty(java.lang.String, java.lang.String);
-    method public static java.util.Set<java.lang.String> getAlgorithms(java.lang.String);
-    method public static java.lang.String getProperty(java.lang.String);
-    method public static java.security.Provider getProvider(java.lang.String);
+    method @Deprecated public static String getAlgorithmProperty(String, String);
+    method public static java.util.Set<java.lang.String> getAlgorithms(String);
+    method public static String getProperty(String);
+    method public static java.security.Provider getProvider(String);
     method public static java.security.Provider[] getProviders();
-    method public static java.security.Provider[] getProviders(java.lang.String);
-    method public static java.security.Provider[] getProviders(java.util.Map<java.lang.String, java.lang.String>);
-    method public static synchronized int insertProviderAt(java.security.Provider, int);
-    method public static synchronized void removeProvider(java.lang.String);
-    method public static void setProperty(java.lang.String, java.lang.String);
+    method public static java.security.Provider[] getProviders(String);
+    method public static java.security.Provider[] getProviders(java.util.Map<java.lang.String,java.lang.String>);
+    method public static int insertProviderAt(java.security.Provider, int);
+    method public static void removeProvider(String);
+    method public static void setProperty(String, String);
   }
 
   public final class SecurityPermission extends java.security.BasicPermission {
-    ctor public SecurityPermission(java.lang.String);
-    ctor public SecurityPermission(java.lang.String, java.lang.String);
+    ctor public SecurityPermission(String);
+    ctor public SecurityPermission(String, String);
   }
 
   public abstract class Signature extends java.security.SignatureSpi {
-    ctor protected Signature(java.lang.String);
-    method public final java.lang.String getAlgorithm();
-    method public static java.security.Signature getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static java.security.Signature getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.Signature getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
-    method public final deprecated java.lang.Object getParameter(java.lang.String) throws java.security.InvalidParameterException;
+    ctor protected Signature(String);
+    method public final String getAlgorithm();
+    method public static java.security.Signature getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static java.security.Signature getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static java.security.Signature getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method @Deprecated public final Object getParameter(String) throws java.security.InvalidParameterException;
     method public final java.security.AlgorithmParameters getParameters();
     method public final java.security.Provider getProvider();
     method public final void initSign(java.security.PrivateKey) throws java.security.InvalidKeyException;
     method public final void initSign(java.security.PrivateKey, java.security.SecureRandom) throws java.security.InvalidKeyException;
     method public final void initVerify(java.security.PublicKey) throws java.security.InvalidKeyException;
     method public final void initVerify(java.security.cert.Certificate) throws java.security.InvalidKeyException;
-    method public final deprecated void setParameter(java.lang.String, java.lang.Object) throws java.security.InvalidParameterException;
+    method @Deprecated public final void setParameter(String, Object) throws java.security.InvalidParameterException;
     method public final void setParameter(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
     method public final byte[] sign() throws java.security.SignatureException;
     method public final int sign(byte[], int, int) throws java.security.SignatureException;
@@ -64505,20 +64344,20 @@
 
   public class SignatureException extends java.security.GeneralSecurityException {
     ctor public SignatureException();
-    ctor public SignatureException(java.lang.String);
-    ctor public SignatureException(java.lang.String, java.lang.Throwable);
-    ctor public SignatureException(java.lang.Throwable);
+    ctor public SignatureException(String);
+    ctor public SignatureException(String, Throwable);
+    ctor public SignatureException(Throwable);
   }
 
   public abstract class SignatureSpi {
     ctor public SignatureSpi();
-    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
-    method protected abstract deprecated java.lang.Object engineGetParameter(java.lang.String) throws java.security.InvalidParameterException;
+    method public Object clone() throws java.lang.CloneNotSupportedException;
+    method @Deprecated protected abstract Object engineGetParameter(String) throws java.security.InvalidParameterException;
     method protected java.security.AlgorithmParameters engineGetParameters();
     method protected abstract void engineInitSign(java.security.PrivateKey) throws java.security.InvalidKeyException;
     method protected void engineInitSign(java.security.PrivateKey, java.security.SecureRandom) throws java.security.InvalidKeyException;
     method protected abstract void engineInitVerify(java.security.PublicKey) throws java.security.InvalidKeyException;
-    method protected abstract deprecated void engineSetParameter(java.lang.String, java.lang.Object) throws java.security.InvalidParameterException;
+    method @Deprecated protected abstract void engineSetParameter(String, Object) throws java.security.InvalidParameterException;
     method protected void engineSetParameter(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
     method protected abstract byte[] engineSign() throws java.security.SignatureException;
     method protected int engineSign(byte[], int, int) throws java.security.SignatureException;
@@ -64532,18 +64371,18 @@
 
   public final class SignedObject implements java.io.Serializable {
     ctor public SignedObject(java.io.Serializable, java.security.PrivateKey, java.security.Signature) throws java.io.IOException, java.security.InvalidKeyException, java.security.SignatureException;
-    method public java.lang.String getAlgorithm();
-    method public java.lang.Object getObject() throws java.lang.ClassNotFoundException, java.io.IOException;
+    method public String getAlgorithm();
+    method public Object getObject() throws java.lang.ClassNotFoundException, java.io.IOException;
     method public byte[] getSignature();
     method public boolean verify(java.security.PublicKey, java.security.Signature) throws java.security.InvalidKeyException, java.security.SignatureException;
   }
 
-  public abstract deprecated class Signer extends java.security.Identity {
-    ctor protected Signer();
-    ctor public Signer(java.lang.String);
-    ctor public Signer(java.lang.String, java.security.IdentityScope) throws java.security.KeyManagementException;
-    method public java.security.PrivateKey getPrivateKey();
-    method public final void setKeyPair(java.security.KeyPair) throws java.security.InvalidParameterException, java.security.KeyException;
+  @Deprecated public abstract class Signer extends java.security.Identity {
+    ctor @Deprecated protected Signer();
+    ctor @Deprecated public Signer(String);
+    ctor @Deprecated public Signer(String, java.security.IdentityScope) throws java.security.KeyManagementException;
+    method @Deprecated public java.security.PrivateKey getPrivateKey();
+    method @Deprecated public final void setKeyPair(java.security.KeyPair) throws java.security.InvalidParameterException, java.security.KeyException;
   }
 
   public final class Timestamp implements java.io.Serializable {
@@ -64554,21 +64393,21 @@
 
   public class UnrecoverableEntryException extends java.security.GeneralSecurityException {
     ctor public UnrecoverableEntryException();
-    ctor public UnrecoverableEntryException(java.lang.String);
+    ctor public UnrecoverableEntryException(String);
   }
 
   public class UnrecoverableKeyException extends java.security.UnrecoverableEntryException {
     ctor public UnrecoverableKeyException();
-    ctor public UnrecoverableKeyException(java.lang.String);
+    ctor public UnrecoverableKeyException(String);
   }
 
   public final class UnresolvedPermission extends java.security.Permission implements java.io.Serializable {
-    ctor public UnresolvedPermission(java.lang.String, java.lang.String, java.lang.String, java.security.cert.Certificate[]);
-    method public java.lang.String getActions();
-    method public java.lang.String getUnresolvedActions();
+    ctor public UnresolvedPermission(String, String, String, java.security.cert.Certificate[]);
+    method public String getActions();
+    method public String getUnresolvedActions();
     method public java.security.cert.Certificate[] getUnresolvedCerts();
-    method public java.lang.String getUnresolvedName();
-    method public java.lang.String getUnresolvedType();
+    method public String getUnresolvedName();
+    method public String getUnresolvedType();
     method public boolean implies(java.security.Permission);
   }
 
@@ -64576,39 +64415,39 @@
 
 package java.security.acl {
 
-  public abstract interface Acl implements java.security.acl.Owner {
-    method public abstract boolean addEntry(java.security.Principal, java.security.acl.AclEntry) throws java.security.acl.NotOwnerException;
-    method public abstract boolean checkPermission(java.security.Principal, java.security.acl.Permission);
-    method public abstract java.util.Enumeration<java.security.acl.AclEntry> entries();
-    method public abstract java.lang.String getName();
-    method public abstract java.util.Enumeration<java.security.acl.Permission> getPermissions(java.security.Principal);
-    method public abstract boolean removeEntry(java.security.Principal, java.security.acl.AclEntry) throws java.security.acl.NotOwnerException;
-    method public abstract void setName(java.security.Principal, java.lang.String) throws java.security.acl.NotOwnerException;
-    method public abstract java.lang.String toString();
+  public interface Acl extends java.security.acl.Owner {
+    method public boolean addEntry(java.security.Principal, java.security.acl.AclEntry) throws java.security.acl.NotOwnerException;
+    method public boolean checkPermission(java.security.Principal, java.security.acl.Permission);
+    method public java.util.Enumeration<java.security.acl.AclEntry> entries();
+    method public String getName();
+    method public java.util.Enumeration<java.security.acl.Permission> getPermissions(java.security.Principal);
+    method public boolean removeEntry(java.security.Principal, java.security.acl.AclEntry) throws java.security.acl.NotOwnerException;
+    method public void setName(java.security.Principal, String) throws java.security.acl.NotOwnerException;
+    method public String toString();
   }
 
-  public abstract interface AclEntry implements java.lang.Cloneable {
-    method public abstract boolean addPermission(java.security.acl.Permission);
-    method public abstract boolean checkPermission(java.security.acl.Permission);
-    method public abstract java.lang.Object clone();
-    method public abstract java.security.Principal getPrincipal();
-    method public abstract boolean isNegative();
-    method public abstract java.util.Enumeration<java.security.acl.Permission> permissions();
-    method public abstract boolean removePermission(java.security.acl.Permission);
-    method public abstract void setNegativePermissions();
-    method public abstract boolean setPrincipal(java.security.Principal);
-    method public abstract java.lang.String toString();
+  public interface AclEntry extends java.lang.Cloneable {
+    method public boolean addPermission(java.security.acl.Permission);
+    method public boolean checkPermission(java.security.acl.Permission);
+    method public Object clone();
+    method public java.security.Principal getPrincipal();
+    method public boolean isNegative();
+    method public java.util.Enumeration<java.security.acl.Permission> permissions();
+    method public boolean removePermission(java.security.acl.Permission);
+    method public void setNegativePermissions();
+    method public boolean setPrincipal(java.security.Principal);
+    method public String toString();
   }
 
   public class AclNotFoundException extends java.lang.Exception {
     ctor public AclNotFoundException();
   }
 
-  public abstract interface Group implements java.security.Principal {
-    method public abstract boolean addMember(java.security.Principal);
-    method public abstract boolean isMember(java.security.Principal);
-    method public abstract java.util.Enumeration<? extends java.security.Principal> members();
-    method public abstract boolean removeMember(java.security.Principal);
+  public interface Group extends java.security.Principal {
+    method public boolean addMember(java.security.Principal);
+    method public boolean isMember(java.security.Principal);
+    method public java.util.Enumeration<? extends java.security.Principal> members();
+    method public boolean removeMember(java.security.Principal);
   }
 
   public class LastOwnerException extends java.lang.Exception {
@@ -64619,13 +64458,13 @@
     ctor public NotOwnerException();
   }
 
-  public abstract interface Owner {
-    method public abstract boolean addOwner(java.security.Principal, java.security.Principal) throws java.security.acl.NotOwnerException;
-    method public abstract boolean deleteOwner(java.security.Principal, java.security.Principal) throws java.security.acl.LastOwnerException, java.security.acl.NotOwnerException;
-    method public abstract boolean isOwner(java.security.Principal);
+  public interface Owner {
+    method public boolean addOwner(java.security.Principal, java.security.Principal) throws java.security.acl.NotOwnerException;
+    method public boolean deleteOwner(java.security.Principal, java.security.Principal) throws java.security.acl.LastOwnerException, java.security.acl.NotOwnerException;
+    method public boolean isOwner(java.security.Principal);
   }
 
-  public abstract interface Permission {
+  public interface Permission {
   }
 
 }
@@ -64633,22 +64472,20 @@
 package java.security.cert {
 
   public abstract class CRL {
-    ctor protected CRL(java.lang.String);
-    method public final java.lang.String getType();
+    ctor protected CRL(String);
+    method public final String getType();
     method public abstract boolean isRevoked(java.security.cert.Certificate);
-    method public abstract java.lang.String toString();
+    method public abstract String toString();
   }
 
   public class CRLException extends java.security.GeneralSecurityException {
     ctor public CRLException();
-    ctor public CRLException(java.lang.String);
-    ctor public CRLException(java.lang.String, java.lang.Throwable);
-    ctor public CRLException(java.lang.Throwable);
+    ctor public CRLException(String);
+    ctor public CRLException(String, Throwable);
+    ctor public CRLException(Throwable);
   }
 
-  public final class CRLReason extends java.lang.Enum {
-    method public static java.security.cert.CRLReason valueOf(java.lang.String);
-    method public static final java.security.cert.CRLReason[] values();
+  public enum CRLReason {
     enum_constant public static final java.security.cert.CRLReason AA_COMPROMISE;
     enum_constant public static final java.security.cert.CRLReason AFFILIATION_CHANGED;
     enum_constant public static final java.security.cert.CRLReason CA_COMPROMISE;
@@ -64662,48 +64499,48 @@
     enum_constant public static final java.security.cert.CRLReason UNUSED;
   }
 
-  public abstract interface CRLSelector implements java.lang.Cloneable {
-    method public abstract java.lang.Object clone();
-    method public abstract boolean match(java.security.cert.CRL);
+  public interface CRLSelector extends java.lang.Cloneable {
+    method public Object clone();
+    method public boolean match(java.security.cert.CRL);
   }
 
   public abstract class CertPath implements java.io.Serializable {
-    ctor protected CertPath(java.lang.String);
+    ctor protected CertPath(String);
     method public abstract java.util.List<? extends java.security.cert.Certificate> getCertificates();
     method public abstract byte[] getEncoded() throws java.security.cert.CertificateEncodingException;
-    method public abstract byte[] getEncoded(java.lang.String) throws java.security.cert.CertificateEncodingException;
+    method public abstract byte[] getEncoded(String) throws java.security.cert.CertificateEncodingException;
     method public abstract java.util.Iterator<java.lang.String> getEncodings();
-    method public java.lang.String getType();
-    method protected java.lang.Object writeReplace() throws java.io.ObjectStreamException;
+    method public String getType();
+    method protected Object writeReplace() throws java.io.ObjectStreamException;
   }
 
   protected static class CertPath.CertPathRep implements java.io.Serializable {
-    ctor protected CertPath.CertPathRep(java.lang.String, byte[]);
-    method protected java.lang.Object readResolve() throws java.io.ObjectStreamException;
+    ctor protected CertPath.CertPathRep(String, byte[]);
+    method protected Object readResolve() throws java.io.ObjectStreamException;
   }
 
   public class CertPathBuilder {
-    ctor protected CertPathBuilder(java.security.cert.CertPathBuilderSpi, java.security.Provider, java.lang.String);
+    ctor protected CertPathBuilder(java.security.cert.CertPathBuilderSpi, java.security.Provider, String);
     method public final java.security.cert.CertPathBuilderResult build(java.security.cert.CertPathParameters) throws java.security.cert.CertPathBuilderException, java.security.InvalidAlgorithmParameterException;
-    method public final java.lang.String getAlgorithm();
-    method public static final java.lang.String getDefaultType();
-    method public static java.security.cert.CertPathBuilder getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static java.security.cert.CertPathBuilder getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.cert.CertPathBuilder getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public final String getAlgorithm();
+    method public static final String getDefaultType();
+    method public static java.security.cert.CertPathBuilder getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static java.security.cert.CertPathBuilder getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static java.security.cert.CertPathBuilder getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
     method public final java.security.cert.CertPathChecker getRevocationChecker();
   }
 
   public class CertPathBuilderException extends java.security.GeneralSecurityException {
     ctor public CertPathBuilderException();
-    ctor public CertPathBuilderException(java.lang.String);
-    ctor public CertPathBuilderException(java.lang.Throwable);
-    ctor public CertPathBuilderException(java.lang.String, java.lang.Throwable);
+    ctor public CertPathBuilderException(String);
+    ctor public CertPathBuilderException(Throwable);
+    ctor public CertPathBuilderException(String, Throwable);
   }
 
-  public abstract interface CertPathBuilderResult implements java.lang.Cloneable {
-    method public abstract java.lang.Object clone();
-    method public abstract java.security.cert.CertPath getCertPath();
+  public interface CertPathBuilderResult extends java.lang.Cloneable {
+    method public Object clone();
+    method public java.security.cert.CertPath getCertPath();
   }
 
   public abstract class CertPathBuilderSpi {
@@ -64712,23 +64549,23 @@
     method public java.security.cert.CertPathChecker engineGetRevocationChecker();
   }
 
-  public abstract interface CertPathChecker {
-    method public abstract void check(java.security.cert.Certificate) throws java.security.cert.CertPathValidatorException;
-    method public abstract void init(boolean) throws java.security.cert.CertPathValidatorException;
-    method public abstract boolean isForwardCheckingSupported();
+  public interface CertPathChecker {
+    method public void check(java.security.cert.Certificate) throws java.security.cert.CertPathValidatorException;
+    method public void init(boolean) throws java.security.cert.CertPathValidatorException;
+    method public boolean isForwardCheckingSupported();
   }
 
-  public abstract interface CertPathParameters implements java.lang.Cloneable {
-    method public abstract java.lang.Object clone();
+  public interface CertPathParameters extends java.lang.Cloneable {
+    method public Object clone();
   }
 
   public class CertPathValidator {
-    ctor protected CertPathValidator(java.security.cert.CertPathValidatorSpi, java.security.Provider, java.lang.String);
-    method public final java.lang.String getAlgorithm();
-    method public static final java.lang.String getDefaultType();
-    method public static java.security.cert.CertPathValidator getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static java.security.cert.CertPathValidator getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.cert.CertPathValidator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    ctor protected CertPathValidator(java.security.cert.CertPathValidatorSpi, java.security.Provider, String);
+    method public final String getAlgorithm();
+    method public static final String getDefaultType();
+    method public static java.security.cert.CertPathValidator getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static java.security.cert.CertPathValidator getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static java.security.cert.CertPathValidator getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
     method public final java.security.cert.CertPathChecker getRevocationChecker();
     method public final java.security.cert.CertPathValidatorResult validate(java.security.cert.CertPath, java.security.cert.CertPathParameters) throws java.security.cert.CertPathValidatorException, java.security.InvalidAlgorithmParameterException;
@@ -64736,19 +64573,17 @@
 
   public class CertPathValidatorException extends java.security.GeneralSecurityException {
     ctor public CertPathValidatorException();
-    ctor public CertPathValidatorException(java.lang.String);
-    ctor public CertPathValidatorException(java.lang.Throwable);
-    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable);
-    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int);
-    ctor public CertPathValidatorException(java.lang.String, java.lang.Throwable, java.security.cert.CertPath, int, java.security.cert.CertPathValidatorException.Reason);
+    ctor public CertPathValidatorException(String);
+    ctor public CertPathValidatorException(Throwable);
+    ctor public CertPathValidatorException(String, Throwable);
+    ctor public CertPathValidatorException(String, Throwable, java.security.cert.CertPath, int);
+    ctor public CertPathValidatorException(String, Throwable, java.security.cert.CertPath, int, java.security.cert.CertPathValidatorException.Reason);
     method public java.security.cert.CertPath getCertPath();
     method public int getIndex();
     method public java.security.cert.CertPathValidatorException.Reason getReason();
   }
 
-  public static final class CertPathValidatorException.BasicReason extends java.lang.Enum implements java.security.cert.CertPathValidatorException.Reason {
-    method public static java.security.cert.CertPathValidatorException.BasicReason valueOf(java.lang.String);
-    method public static final java.security.cert.CertPathValidatorException.BasicReason[] values();
+  public enum CertPathValidatorException.BasicReason implements java.security.cert.CertPathValidatorException.Reason {
     enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason ALGORITHM_CONSTRAINED;
     enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason EXPIRED;
     enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason INVALID_SIGNATURE;
@@ -64758,11 +64593,11 @@
     enum_constant public static final java.security.cert.CertPathValidatorException.BasicReason UNSPECIFIED;
   }
 
-  public static abstract interface CertPathValidatorException.Reason implements java.io.Serializable {
+  public static interface CertPathValidatorException.Reason extends java.io.Serializable {
   }
 
-  public abstract interface CertPathValidatorResult implements java.lang.Cloneable {
-    method public abstract java.lang.Object clone();
+  public interface CertPathValidatorResult extends java.lang.Cloneable {
+    method public Object clone();
   }
 
   public abstract class CertPathValidatorSpi {
@@ -64771,33 +64606,33 @@
     method public abstract java.security.cert.CertPathValidatorResult engineValidate(java.security.cert.CertPath, java.security.cert.CertPathParameters) throws java.security.cert.CertPathValidatorException, java.security.InvalidAlgorithmParameterException;
   }
 
-  public abstract interface CertSelector implements java.lang.Cloneable {
-    method public abstract java.lang.Object clone();
-    method public abstract boolean match(java.security.cert.Certificate);
+  public interface CertSelector extends java.lang.Cloneable {
+    method public Object clone();
+    method public boolean match(java.security.cert.Certificate);
   }
 
   public class CertStore {
-    ctor protected CertStore(java.security.cert.CertStoreSpi, java.security.Provider, java.lang.String, java.security.cert.CertStoreParameters);
+    ctor protected CertStore(java.security.cert.CertStoreSpi, java.security.Provider, String, java.security.cert.CertStoreParameters);
     method public final java.util.Collection<? extends java.security.cert.CRL> getCRLs(java.security.cert.CRLSelector) throws java.security.cert.CertStoreException;
     method public final java.security.cert.CertStoreParameters getCertStoreParameters();
     method public final java.util.Collection<? extends java.security.cert.Certificate> getCertificates(java.security.cert.CertSelector) throws java.security.cert.CertStoreException;
-    method public static final java.lang.String getDefaultType();
-    method public static java.security.cert.CertStore getInstance(java.lang.String, java.security.cert.CertStoreParameters) throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException;
-    method public static java.security.cert.CertStore getInstance(java.lang.String, java.security.cert.CertStoreParameters, java.lang.String) throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static java.security.cert.CertStore getInstance(java.lang.String, java.security.cert.CertStoreParameters, java.security.Provider) throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException;
+    method public static final String getDefaultType();
+    method public static java.security.cert.CertStore getInstance(String, java.security.cert.CertStoreParameters) throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException;
+    method public static java.security.cert.CertStore getInstance(String, java.security.cert.CertStoreParameters, String) throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static java.security.cert.CertStore getInstance(String, java.security.cert.CertStoreParameters, java.security.Provider) throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
-    method public final java.lang.String getType();
+    method public final String getType();
   }
 
   public class CertStoreException extends java.security.GeneralSecurityException {
     ctor public CertStoreException();
-    ctor public CertStoreException(java.lang.String);
-    ctor public CertStoreException(java.lang.Throwable);
-    ctor public CertStoreException(java.lang.String, java.lang.Throwable);
+    ctor public CertStoreException(String);
+    ctor public CertStoreException(Throwable);
+    ctor public CertStoreException(String, Throwable);
   }
 
-  public abstract interface CertStoreParameters implements java.lang.Cloneable {
-    method public abstract java.lang.Object clone();
+  public interface CertStoreParameters extends java.lang.Cloneable {
+    method public Object clone();
   }
 
   public abstract class CertStoreSpi {
@@ -64807,56 +64642,56 @@
   }
 
   public abstract class Certificate implements java.io.Serializable {
-    ctor protected Certificate(java.lang.String);
+    ctor protected Certificate(String);
     method public abstract byte[] getEncoded() throws java.security.cert.CertificateEncodingException;
     method public abstract java.security.PublicKey getPublicKey();
-    method public final java.lang.String getType();
-    method public abstract java.lang.String toString();
+    method public final String getType();
+    method public abstract String toString();
     method public abstract void verify(java.security.PublicKey) throws java.security.cert.CertificateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.SignatureException;
-    method public abstract void verify(java.security.PublicKey, java.lang.String) throws java.security.cert.CertificateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.SignatureException;
+    method public abstract void verify(java.security.PublicKey, String) throws java.security.cert.CertificateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.SignatureException;
     method public void verify(java.security.PublicKey, java.security.Provider) throws java.security.cert.CertificateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.SignatureException;
-    method protected java.lang.Object writeReplace() throws java.io.ObjectStreamException;
+    method protected Object writeReplace() throws java.io.ObjectStreamException;
   }
 
   protected static class Certificate.CertificateRep implements java.io.Serializable {
-    ctor protected Certificate.CertificateRep(java.lang.String, byte[]);
-    method protected java.lang.Object readResolve() throws java.io.ObjectStreamException;
+    ctor protected Certificate.CertificateRep(String, byte[]);
+    method protected Object readResolve() throws java.io.ObjectStreamException;
   }
 
   public class CertificateEncodingException extends java.security.cert.CertificateException {
     ctor public CertificateEncodingException();
-    ctor public CertificateEncodingException(java.lang.String);
-    ctor public CertificateEncodingException(java.lang.String, java.lang.Throwable);
-    ctor public CertificateEncodingException(java.lang.Throwable);
+    ctor public CertificateEncodingException(String);
+    ctor public CertificateEncodingException(String, Throwable);
+    ctor public CertificateEncodingException(Throwable);
   }
 
   public class CertificateException extends java.security.GeneralSecurityException {
     ctor public CertificateException();
-    ctor public CertificateException(java.lang.String);
-    ctor public CertificateException(java.lang.String, java.lang.Throwable);
-    ctor public CertificateException(java.lang.Throwable);
+    ctor public CertificateException(String);
+    ctor public CertificateException(String, Throwable);
+    ctor public CertificateException(Throwable);
   }
 
   public class CertificateExpiredException extends java.security.cert.CertificateException {
     ctor public CertificateExpiredException();
-    ctor public CertificateExpiredException(java.lang.String);
+    ctor public CertificateExpiredException(String);
   }
 
   public class CertificateFactory {
-    ctor protected CertificateFactory(java.security.cert.CertificateFactorySpi, java.security.Provider, java.lang.String);
+    ctor protected CertificateFactory(java.security.cert.CertificateFactorySpi, java.security.Provider, String);
     method public final java.security.cert.CRL generateCRL(java.io.InputStream) throws java.security.cert.CRLException;
     method public final java.util.Collection<? extends java.security.cert.CRL> generateCRLs(java.io.InputStream) throws java.security.cert.CRLException;
     method public final java.security.cert.CertPath generateCertPath(java.io.InputStream) throws java.security.cert.CertificateException;
-    method public final java.security.cert.CertPath generateCertPath(java.io.InputStream, java.lang.String) throws java.security.cert.CertificateException;
+    method public final java.security.cert.CertPath generateCertPath(java.io.InputStream, String) throws java.security.cert.CertificateException;
     method public final java.security.cert.CertPath generateCertPath(java.util.List<? extends java.security.cert.Certificate>) throws java.security.cert.CertificateException;
     method public final java.security.cert.Certificate generateCertificate(java.io.InputStream) throws java.security.cert.CertificateException;
     method public final java.util.Collection<? extends java.security.cert.Certificate> generateCertificates(java.io.InputStream) throws java.security.cert.CertificateException;
     method public final java.util.Iterator<java.lang.String> getCertPathEncodings();
-    method public static final java.security.cert.CertificateFactory getInstance(java.lang.String) throws java.security.cert.CertificateException;
-    method public static final java.security.cert.CertificateFactory getInstance(java.lang.String, java.lang.String) throws java.security.cert.CertificateException, java.security.NoSuchProviderException;
-    method public static final java.security.cert.CertificateFactory getInstance(java.lang.String, java.security.Provider) throws java.security.cert.CertificateException;
+    method public static final java.security.cert.CertificateFactory getInstance(String) throws java.security.cert.CertificateException;
+    method public static final java.security.cert.CertificateFactory getInstance(String, String) throws java.security.cert.CertificateException, java.security.NoSuchProviderException;
+    method public static final java.security.cert.CertificateFactory getInstance(String, java.security.Provider) throws java.security.cert.CertificateException;
     method public final java.security.Provider getProvider();
-    method public final java.lang.String getType();
+    method public final String getType();
   }
 
   public abstract class CertificateFactorySpi {
@@ -64864,7 +64699,7 @@
     method public abstract java.security.cert.CRL engineGenerateCRL(java.io.InputStream) throws java.security.cert.CRLException;
     method public abstract java.util.Collection<? extends java.security.cert.CRL> engineGenerateCRLs(java.io.InputStream) throws java.security.cert.CRLException;
     method public java.security.cert.CertPath engineGenerateCertPath(java.io.InputStream) throws java.security.cert.CertificateException;
-    method public java.security.cert.CertPath engineGenerateCertPath(java.io.InputStream, java.lang.String) throws java.security.cert.CertificateException;
+    method public java.security.cert.CertPath engineGenerateCertPath(java.io.InputStream, String) throws java.security.cert.CertificateException;
     method public java.security.cert.CertPath engineGenerateCertPath(java.util.List<? extends java.security.cert.Certificate>) throws java.security.cert.CertificateException;
     method public abstract java.security.cert.Certificate engineGenerateCertificate(java.io.InputStream) throws java.security.cert.CertificateException;
     method public abstract java.util.Collection<? extends java.security.cert.Certificate> engineGenerateCertificates(java.io.InputStream) throws java.security.cert.CertificateException;
@@ -64873,20 +64708,20 @@
 
   public class CertificateNotYetValidException extends java.security.cert.CertificateException {
     ctor public CertificateNotYetValidException();
-    ctor public CertificateNotYetValidException(java.lang.String);
+    ctor public CertificateNotYetValidException(String);
   }
 
   public class CertificateParsingException extends java.security.cert.CertificateException {
     ctor public CertificateParsingException();
-    ctor public CertificateParsingException(java.lang.String);
-    ctor public CertificateParsingException(java.lang.String, java.lang.Throwable);
-    ctor public CertificateParsingException(java.lang.Throwable);
+    ctor public CertificateParsingException(String);
+    ctor public CertificateParsingException(String, Throwable);
+    ctor public CertificateParsingException(Throwable);
   }
 
   public class CertificateRevokedException extends java.security.cert.CertificateException {
-    ctor public CertificateRevokedException(java.util.Date, java.security.cert.CRLReason, javax.security.auth.x500.X500Principal, java.util.Map<java.lang.String, java.security.cert.Extension>);
+    ctor public CertificateRevokedException(java.util.Date, java.security.cert.CRLReason, javax.security.auth.x500.X500Principal, java.util.Map<java.lang.String,java.security.cert.Extension>);
     method public javax.security.auth.x500.X500Principal getAuthorityName();
-    method public java.util.Map<java.lang.String, java.security.cert.Extension> getExtensions();
+    method public java.util.Map<java.lang.String,java.security.cert.Extension> getExtensions();
     method public java.util.Date getInvalidityDate();
     method public java.util.Date getRevocationDate();
     method public java.security.cert.CRLReason getRevocationReason();
@@ -64895,24 +64730,24 @@
   public class CollectionCertStoreParameters implements java.security.cert.CertStoreParameters {
     ctor public CollectionCertStoreParameters(java.util.Collection<?>);
     ctor public CollectionCertStoreParameters();
-    method public java.lang.Object clone();
+    method public Object clone();
     method public java.util.Collection<?> getCollection();
   }
 
-  public abstract interface Extension {
-    method public abstract void encode(java.io.OutputStream) throws java.io.IOException;
-    method public abstract java.lang.String getId();
-    method public abstract byte[] getValue();
-    method public abstract boolean isCritical();
+  public interface Extension {
+    method public void encode(java.io.OutputStream) throws java.io.IOException;
+    method public String getId();
+    method public byte[] getValue();
+    method public boolean isCritical();
   }
 
   public class LDAPCertStoreParameters implements java.security.cert.CertStoreParameters {
-    ctor public LDAPCertStoreParameters(java.lang.String, int);
-    ctor public LDAPCertStoreParameters(java.lang.String);
+    ctor public LDAPCertStoreParameters(String, int);
+    ctor public LDAPCertStoreParameters(String);
     ctor public LDAPCertStoreParameters();
-    method public java.lang.Object clone();
+    method public Object clone();
     method public int getPort();
-    method public java.lang.String getServerName();
+    method public String getServerName();
   }
 
   public class PKIXBuilderParameters extends java.security.cert.PKIXParameters {
@@ -64931,13 +64766,13 @@
     ctor protected PKIXCertPathChecker();
     method public abstract void check(java.security.cert.Certificate, java.util.Collection<java.lang.String>) throws java.security.cert.CertPathValidatorException;
     method public void check(java.security.cert.Certificate) throws java.security.cert.CertPathValidatorException;
-    method public java.lang.Object clone();
+    method public Object clone();
     method public abstract java.util.Set<java.lang.String> getSupportedExtensions();
   }
 
   public class PKIXCertPathValidatorResult implements java.security.cert.CertPathValidatorResult {
     ctor public PKIXCertPathValidatorResult(java.security.cert.TrustAnchor, java.security.cert.PolicyNode, java.security.PublicKey);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public java.security.cert.PolicyNode getPolicyTree();
     method public java.security.PublicKey getPublicKey();
     method public java.security.cert.TrustAnchor getTrustAnchor();
@@ -64948,13 +64783,13 @@
     ctor public PKIXParameters(java.security.KeyStore) throws java.security.InvalidAlgorithmParameterException, java.security.KeyStoreException;
     method public void addCertPathChecker(java.security.cert.PKIXCertPathChecker);
     method public void addCertStore(java.security.cert.CertStore);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public java.util.List<java.security.cert.PKIXCertPathChecker> getCertPathCheckers();
     method public java.util.List<java.security.cert.CertStore> getCertStores();
     method public java.util.Date getDate();
     method public java.util.Set<java.lang.String> getInitialPolicies();
     method public boolean getPolicyQualifiersRejected();
-    method public java.lang.String getSigProvider();
+    method public String getSigProvider();
     method public java.security.cert.CertSelector getTargetCertConstraints();
     method public java.util.Set<java.security.cert.TrustAnchor> getTrustAnchors();
     method public boolean isAnyPolicyInhibited();
@@ -64970,14 +64805,12 @@
     method public void setPolicyMappingInhibited(boolean);
     method public void setPolicyQualifiersRejected(boolean);
     method public void setRevocationEnabled(boolean);
-    method public void setSigProvider(java.lang.String);
+    method public void setSigProvider(String);
     method public void setTargetCertConstraints(java.security.cert.CertSelector);
     method public void setTrustAnchors(java.util.Set<java.security.cert.TrustAnchor>) throws java.security.InvalidAlgorithmParameterException;
   }
 
-  public final class PKIXReason extends java.lang.Enum implements java.security.cert.CertPathValidatorException.Reason {
-    method public static java.security.cert.PKIXReason valueOf(java.lang.String);
-    method public static final java.security.cert.PKIXReason[] values();
+  public enum PKIXReason implements java.security.cert.CertPathValidatorException.Reason {
     enum_constant public static final java.security.cert.PKIXReason INVALID_KEY_USAGE;
     enum_constant public static final java.security.cert.PKIXReason INVALID_NAME;
     enum_constant public static final java.security.cert.PKIXReason INVALID_POLICY;
@@ -64994,48 +64827,46 @@
     method public java.util.List<java.security.cert.Extension> getOcspExtensions();
     method public java.net.URI getOcspResponder();
     method public java.security.cert.X509Certificate getOcspResponderCert();
-    method public java.util.Map<java.security.cert.X509Certificate, byte[]> getOcspResponses();
+    method public java.util.Map<java.security.cert.X509Certificate,byte[]> getOcspResponses();
     method public java.util.Set<java.security.cert.PKIXRevocationChecker.Option> getOptions();
     method public abstract java.util.List<java.security.cert.CertPathValidatorException> getSoftFailExceptions();
     method public void setOcspExtensions(java.util.List<java.security.cert.Extension>);
     method public void setOcspResponder(java.net.URI);
     method public void setOcspResponderCert(java.security.cert.X509Certificate);
-    method public void setOcspResponses(java.util.Map<java.security.cert.X509Certificate, byte[]>);
+    method public void setOcspResponses(java.util.Map<java.security.cert.X509Certificate,byte[]>);
     method public void setOptions(java.util.Set<java.security.cert.PKIXRevocationChecker.Option>);
   }
 
-  public static final class PKIXRevocationChecker.Option extends java.lang.Enum {
-    method public static java.security.cert.PKIXRevocationChecker.Option valueOf(java.lang.String);
-    method public static final java.security.cert.PKIXRevocationChecker.Option[] values();
+  public enum PKIXRevocationChecker.Option {
     enum_constant public static final java.security.cert.PKIXRevocationChecker.Option NO_FALLBACK;
     enum_constant public static final java.security.cert.PKIXRevocationChecker.Option ONLY_END_ENTITY;
     enum_constant public static final java.security.cert.PKIXRevocationChecker.Option PREFER_CRLS;
     enum_constant public static final java.security.cert.PKIXRevocationChecker.Option SOFT_FAIL;
   }
 
-  public abstract interface PolicyNode {
-    method public abstract java.util.Iterator<? extends java.security.cert.PolicyNode> getChildren();
-    method public abstract int getDepth();
-    method public abstract java.util.Set<java.lang.String> getExpectedPolicies();
-    method public abstract java.security.cert.PolicyNode getParent();
-    method public abstract java.util.Set<? extends java.security.cert.PolicyQualifierInfo> getPolicyQualifiers();
-    method public abstract java.lang.String getValidPolicy();
-    method public abstract boolean isCritical();
+  public interface PolicyNode {
+    method public java.util.Iterator<? extends java.security.cert.PolicyNode> getChildren();
+    method public int getDepth();
+    method public java.util.Set<java.lang.String> getExpectedPolicies();
+    method public java.security.cert.PolicyNode getParent();
+    method public java.util.Set<? extends java.security.cert.PolicyQualifierInfo> getPolicyQualifiers();
+    method public String getValidPolicy();
+    method public boolean isCritical();
   }
 
   public class PolicyQualifierInfo {
     ctor public PolicyQualifierInfo(byte[]) throws java.io.IOException;
     method public final byte[] getEncoded();
     method public final byte[] getPolicyQualifier();
-    method public final java.lang.String getPolicyQualifierId();
+    method public final String getPolicyQualifierId();
   }
 
   public class TrustAnchor {
     ctor public TrustAnchor(java.security.cert.X509Certificate, byte[]);
     ctor public TrustAnchor(javax.security.auth.x500.X500Principal, java.security.PublicKey, byte[]);
-    ctor public TrustAnchor(java.lang.String, java.security.PublicKey, byte[]);
+    ctor public TrustAnchor(String, java.security.PublicKey, byte[]);
     method public final javax.security.auth.x500.X500Principal getCA();
-    method public final java.lang.String getCAName();
+    method public final String getCAName();
     method public final java.security.PublicKey getCAPublicKey();
     method public final byte[] getNameConstraints();
     method public final java.security.cert.X509Certificate getTrustedCert();
@@ -65050,15 +64881,15 @@
     method public abstract java.security.cert.X509CRLEntry getRevokedCertificate(java.math.BigInteger);
     method public java.security.cert.X509CRLEntry getRevokedCertificate(java.security.cert.X509Certificate);
     method public abstract java.util.Set<? extends java.security.cert.X509CRLEntry> getRevokedCertificates();
-    method public abstract java.lang.String getSigAlgName();
-    method public abstract java.lang.String getSigAlgOID();
+    method public abstract String getSigAlgName();
+    method public abstract String getSigAlgOID();
     method public abstract byte[] getSigAlgParams();
     method public abstract byte[] getSignature();
     method public abstract byte[] getTBSCertList() throws java.security.cert.CRLException;
     method public abstract java.util.Date getThisUpdate();
     method public abstract int getVersion();
     method public abstract void verify(java.security.PublicKey) throws java.security.cert.CRLException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.SignatureException;
-    method public abstract void verify(java.security.PublicKey, java.lang.String) throws java.security.cert.CRLException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.SignatureException;
+    method public abstract void verify(java.security.PublicKey, String) throws java.security.cert.CRLException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.SignatureException;
     method public void verify(java.security.PublicKey, java.security.Provider) throws java.security.cert.CRLException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.SignatureException;
   }
 
@@ -65070,15 +64901,15 @@
     method public java.security.cert.CRLReason getRevocationReason();
     method public abstract java.math.BigInteger getSerialNumber();
     method public abstract boolean hasExtensions();
-    method public abstract java.lang.String toString();
+    method public abstract String toString();
   }
 
   public class X509CRLSelector implements java.security.cert.CRLSelector {
     ctor public X509CRLSelector();
     method public void addIssuer(javax.security.auth.x500.X500Principal);
-    method public void addIssuerName(java.lang.String) throws java.io.IOException;
+    method public void addIssuerName(String) throws java.io.IOException;
     method public void addIssuerName(byte[]) throws java.io.IOException;
-    method public java.lang.Object clone();
+    method public Object clone();
     method public java.security.cert.X509Certificate getCertificateChecking();
     method public java.util.Date getDateAndTime();
     method public java.util.Collection<java.lang.Object> getIssuerNames();
@@ -65096,11 +64927,11 @@
 
   public class X509CertSelector implements java.security.cert.CertSelector {
     ctor public X509CertSelector();
-    method public void addPathToName(int, java.lang.String) throws java.io.IOException;
+    method public void addPathToName(int, String) throws java.io.IOException;
     method public void addPathToName(int, byte[]) throws java.io.IOException;
-    method public void addSubjectAlternativeName(int, java.lang.String) throws java.io.IOException;
+    method public void addSubjectAlternativeName(int, String) throws java.io.IOException;
     method public void addSubjectAlternativeName(int, byte[]) throws java.io.IOException;
-    method public java.lang.Object clone();
+    method public Object clone();
     method public byte[] getAuthorityKeyIdentifier();
     method public int getBasicConstraints();
     method public java.security.cert.X509Certificate getCertificate();
@@ -65108,7 +64939,7 @@
     method public java.util.Set<java.lang.String> getExtendedKeyUsage();
     method public javax.security.auth.x500.X500Principal getIssuer();
     method public byte[] getIssuerAsBytes() throws java.io.IOException;
-    method public java.lang.String getIssuerAsString();
+    method public String getIssuerAsString();
     method public boolean[] getKeyUsage();
     method public boolean getMatchAllSubjectAltNames();
     method public byte[] getNameConstraints();
@@ -65119,10 +64950,10 @@
     method public javax.security.auth.x500.X500Principal getSubject();
     method public java.util.Collection<java.util.List<?>> getSubjectAlternativeNames();
     method public byte[] getSubjectAsBytes() throws java.io.IOException;
-    method public java.lang.String getSubjectAsString();
+    method public String getSubjectAsString();
     method public byte[] getSubjectKeyIdentifier();
     method public java.security.PublicKey getSubjectPublicKey();
-    method public java.lang.String getSubjectPublicKeyAlgID();
+    method public String getSubjectPublicKeyAlgID();
     method public boolean match(java.security.cert.Certificate);
     method public void setAuthorityKeyIdentifier(byte[]);
     method public void setBasicConstraints(int);
@@ -65130,7 +64961,7 @@
     method public void setCertificateValid(java.util.Date);
     method public void setExtendedKeyUsage(java.util.Set<java.lang.String>) throws java.io.IOException;
     method public void setIssuer(javax.security.auth.x500.X500Principal);
-    method public void setIssuer(java.lang.String) throws java.io.IOException;
+    method public void setIssuer(String) throws java.io.IOException;
     method public void setIssuer(byte[]) throws java.io.IOException;
     method public void setKeyUsage(boolean[]);
     method public void setMatchAllSubjectAltNames(boolean);
@@ -65140,13 +64971,13 @@
     method public void setPrivateKeyValid(java.util.Date);
     method public void setSerialNumber(java.math.BigInteger);
     method public void setSubject(javax.security.auth.x500.X500Principal);
-    method public void setSubject(java.lang.String) throws java.io.IOException;
+    method public void setSubject(String) throws java.io.IOException;
     method public void setSubject(byte[]) throws java.io.IOException;
     method public void setSubjectAlternativeNames(java.util.Collection<java.util.List<?>>) throws java.io.IOException;
     method public void setSubjectKeyIdentifier(byte[]);
     method public void setSubjectPublicKey(java.security.PublicKey);
     method public void setSubjectPublicKey(byte[]) throws java.io.IOException;
-    method public void setSubjectPublicKeyAlgID(java.lang.String) throws java.io.IOException;
+    method public void setSubjectPublicKeyAlgID(String) throws java.io.IOException;
   }
 
   public abstract class X509Certificate extends java.security.cert.Certificate implements java.security.cert.X509Extension {
@@ -65163,8 +64994,8 @@
     method public abstract java.util.Date getNotAfter();
     method public abstract java.util.Date getNotBefore();
     method public abstract java.math.BigInteger getSerialNumber();
-    method public abstract java.lang.String getSigAlgName();
-    method public abstract java.lang.String getSigAlgOID();
+    method public abstract String getSigAlgName();
+    method public abstract String getSigAlgOID();
     method public abstract byte[] getSigAlgParams();
     method public abstract byte[] getSignature();
     method public java.util.Collection<java.util.List<?>> getSubjectAlternativeNames() throws java.security.cert.CertificateParsingException;
@@ -65175,88 +65006,88 @@
     method public abstract int getVersion();
   }
 
-  public abstract interface X509Extension {
-    method public abstract java.util.Set<java.lang.String> getCriticalExtensionOIDs();
-    method public abstract byte[] getExtensionValue(java.lang.String);
-    method public abstract java.util.Set<java.lang.String> getNonCriticalExtensionOIDs();
-    method public abstract boolean hasUnsupportedCriticalExtension();
+  public interface X509Extension {
+    method public java.util.Set<java.lang.String> getCriticalExtensionOIDs();
+    method public byte[] getExtensionValue(String);
+    method public java.util.Set<java.lang.String> getNonCriticalExtensionOIDs();
+    method public boolean hasUnsupportedCriticalExtension();
   }
 
 }
 
 package java.security.interfaces {
 
-  public abstract interface DSAKey {
-    method public abstract java.security.interfaces.DSAParams getParams();
+  public interface DSAKey {
+    method public java.security.interfaces.DSAParams getParams();
   }
 
-  public abstract interface DSAKeyPairGenerator {
-    method public abstract void initialize(java.security.interfaces.DSAParams, java.security.SecureRandom) throws java.security.InvalidParameterException;
-    method public abstract void initialize(int, boolean, java.security.SecureRandom) throws java.security.InvalidParameterException;
+  public interface DSAKeyPairGenerator {
+    method public void initialize(java.security.interfaces.DSAParams, java.security.SecureRandom) throws java.security.InvalidParameterException;
+    method public void initialize(int, boolean, java.security.SecureRandom) throws java.security.InvalidParameterException;
   }
 
-  public abstract interface DSAParams {
-    method public abstract java.math.BigInteger getG();
-    method public abstract java.math.BigInteger getP();
-    method public abstract java.math.BigInteger getQ();
+  public interface DSAParams {
+    method public java.math.BigInteger getG();
+    method public java.math.BigInteger getP();
+    method public java.math.BigInteger getQ();
   }
 
-  public abstract interface DSAPrivateKey implements java.security.interfaces.DSAKey java.security.PrivateKey {
-    method public abstract java.math.BigInteger getX();
+  public interface DSAPrivateKey extends java.security.interfaces.DSAKey java.security.PrivateKey {
+    method public java.math.BigInteger getX();
     field public static final long serialVersionUID = 7776497482533790279L; // 0x6bebab423b256247L
   }
 
-  public abstract interface DSAPublicKey implements java.security.interfaces.DSAKey java.security.PublicKey {
-    method public abstract java.math.BigInteger getY();
+  public interface DSAPublicKey extends java.security.interfaces.DSAKey java.security.PublicKey {
+    method public java.math.BigInteger getY();
     field public static final long serialVersionUID = 1234526332779022332L; // 0x1121eb28ab28c7fcL
   }
 
-  public abstract interface ECKey {
-    method public abstract java.security.spec.ECParameterSpec getParams();
+  public interface ECKey {
+    method public java.security.spec.ECParameterSpec getParams();
   }
 
-  public abstract interface ECPrivateKey implements java.security.interfaces.ECKey java.security.PrivateKey {
-    method public abstract java.math.BigInteger getS();
+  public interface ECPrivateKey extends java.security.PrivateKey java.security.interfaces.ECKey {
+    method public java.math.BigInteger getS();
     field public static final long serialVersionUID = -7896394956925609184L; // 0x926a5e9fa2435b20L
   }
 
-  public abstract interface ECPublicKey implements java.security.interfaces.ECKey java.security.PublicKey {
-    method public abstract java.security.spec.ECPoint getW();
+  public interface ECPublicKey extends java.security.PublicKey java.security.interfaces.ECKey {
+    method public java.security.spec.ECPoint getW();
     field public static final long serialVersionUID = -3314988629879632826L; // 0xd1fecb679990cc46L
   }
 
-  public abstract interface RSAKey {
-    method public abstract java.math.BigInteger getModulus();
+  public interface RSAKey {
+    method public java.math.BigInteger getModulus();
   }
 
-  public abstract interface RSAMultiPrimePrivateCrtKey implements java.security.interfaces.RSAPrivateKey {
-    method public abstract java.math.BigInteger getCrtCoefficient();
-    method public abstract java.security.spec.RSAOtherPrimeInfo[] getOtherPrimeInfo();
-    method public abstract java.math.BigInteger getPrimeExponentP();
-    method public abstract java.math.BigInteger getPrimeExponentQ();
-    method public abstract java.math.BigInteger getPrimeP();
-    method public abstract java.math.BigInteger getPrimeQ();
-    method public abstract java.math.BigInteger getPublicExponent();
+  public interface RSAMultiPrimePrivateCrtKey extends java.security.interfaces.RSAPrivateKey {
+    method public java.math.BigInteger getCrtCoefficient();
+    method public java.security.spec.RSAOtherPrimeInfo[] getOtherPrimeInfo();
+    method public java.math.BigInteger getPrimeExponentP();
+    method public java.math.BigInteger getPrimeExponentQ();
+    method public java.math.BigInteger getPrimeP();
+    method public java.math.BigInteger getPrimeQ();
+    method public java.math.BigInteger getPublicExponent();
     field public static final long serialVersionUID = 618058533534628008L; // 0x893c8f62dbaf8a8L
   }
 
-  public abstract interface RSAPrivateCrtKey implements java.security.interfaces.RSAPrivateKey {
-    method public abstract java.math.BigInteger getCrtCoefficient();
-    method public abstract java.math.BigInteger getPrimeExponentP();
-    method public abstract java.math.BigInteger getPrimeExponentQ();
-    method public abstract java.math.BigInteger getPrimeP();
-    method public abstract java.math.BigInteger getPrimeQ();
-    method public abstract java.math.BigInteger getPublicExponent();
+  public interface RSAPrivateCrtKey extends java.security.interfaces.RSAPrivateKey {
+    method public java.math.BigInteger getCrtCoefficient();
+    method public java.math.BigInteger getPrimeExponentP();
+    method public java.math.BigInteger getPrimeExponentQ();
+    method public java.math.BigInteger getPrimeP();
+    method public java.math.BigInteger getPrimeQ();
+    method public java.math.BigInteger getPublicExponent();
     field public static final long serialVersionUID = -5682214253527700368L; // 0xb124b83df8d1ec70L
   }
 
-  public abstract interface RSAPrivateKey implements java.security.PrivateKey java.security.interfaces.RSAKey {
-    method public abstract java.math.BigInteger getPrivateExponent();
+  public interface RSAPrivateKey extends java.security.PrivateKey java.security.interfaces.RSAKey {
+    method public java.math.BigInteger getPrivateExponent();
     field public static final long serialVersionUID = 5187144804936595022L; // 0x47fc70b7a8c2364eL
   }
 
-  public abstract interface RSAPublicKey implements java.security.PublicKey java.security.interfaces.RSAKey {
-    method public abstract java.math.BigInteger getPublicExponent();
+  public interface RSAPublicKey extends java.security.PublicKey java.security.interfaces.RSAKey {
+    method public java.math.BigInteger getPublicExponent();
     field public static final long serialVersionUID = -8727434096241101194L; // 0x86e1ecedeceab676L
   }
 
@@ -65264,7 +65095,7 @@
 
 package java.security.spec {
 
-  public abstract interface AlgorithmParameterSpec {
+  public interface AlgorithmParameterSpec {
   }
 
   public class DSAParameterSpec implements java.security.spec.AlgorithmParameterSpec java.security.interfaces.DSAParams {
@@ -65290,8 +65121,8 @@
     method public java.math.BigInteger getY();
   }
 
-  public abstract interface ECField {
-    method public abstract int getFieldSize();
+  public interface ECField {
+    method public int getFieldSize();
   }
 
   public class ECFieldF2m implements java.security.spec.ECField {
@@ -65311,8 +65142,8 @@
   }
 
   public class ECGenParameterSpec implements java.security.spec.AlgorithmParameterSpec {
-    ctor public ECGenParameterSpec(java.lang.String);
-    method public java.lang.String getName();
+    ctor public ECGenParameterSpec(String);
+    method public String getName();
   }
 
   public class ECParameterSpec implements java.security.spec.AlgorithmParameterSpec {
@@ -65354,27 +65185,27 @@
   public abstract class EncodedKeySpec implements java.security.spec.KeySpec {
     ctor public EncodedKeySpec(byte[]);
     method public byte[] getEncoded();
-    method public abstract java.lang.String getFormat();
+    method public abstract String getFormat();
   }
 
   public class InvalidKeySpecException extends java.security.GeneralSecurityException {
     ctor public InvalidKeySpecException();
-    ctor public InvalidKeySpecException(java.lang.String);
-    ctor public InvalidKeySpecException(java.lang.String, java.lang.Throwable);
-    ctor public InvalidKeySpecException(java.lang.Throwable);
+    ctor public InvalidKeySpecException(String);
+    ctor public InvalidKeySpecException(String, Throwable);
+    ctor public InvalidKeySpecException(Throwable);
   }
 
   public class InvalidParameterSpecException extends java.security.GeneralSecurityException {
     ctor public InvalidParameterSpecException();
-    ctor public InvalidParameterSpecException(java.lang.String);
+    ctor public InvalidParameterSpecException(String);
   }
 
-  public abstract interface KeySpec {
+  public interface KeySpec {
   }
 
   public class MGF1ParameterSpec implements java.security.spec.AlgorithmParameterSpec {
-    ctor public MGF1ParameterSpec(java.lang.String);
-    method public java.lang.String getDigestAlgorithm();
+    ctor public MGF1ParameterSpec(String);
+    method public String getDigestAlgorithm();
     field public static final java.security.spec.MGF1ParameterSpec SHA1;
     field public static final java.security.spec.MGF1ParameterSpec SHA224;
     field public static final java.security.spec.MGF1ParameterSpec SHA256;
@@ -65384,14 +65215,14 @@
 
   public class PKCS8EncodedKeySpec extends java.security.spec.EncodedKeySpec {
     ctor public PKCS8EncodedKeySpec(byte[]);
-    method public final java.lang.String getFormat();
+    method public final String getFormat();
   }
 
   public class PSSParameterSpec implements java.security.spec.AlgorithmParameterSpec {
-    ctor public PSSParameterSpec(java.lang.String, java.lang.String, java.security.spec.AlgorithmParameterSpec, int, int);
+    ctor public PSSParameterSpec(String, String, java.security.spec.AlgorithmParameterSpec, int, int);
     ctor public PSSParameterSpec(int);
-    method public java.lang.String getDigestAlgorithm();
-    method public java.lang.String getMGFAlgorithm();
+    method public String getDigestAlgorithm();
+    method public String getMGFAlgorithm();
     method public java.security.spec.AlgorithmParameterSpec getMGFParameters();
     method public int getSaltLength();
     method public int getTrailerField();
@@ -65448,242 +65279,240 @@
 
   public class X509EncodedKeySpec extends java.security.spec.EncodedKeySpec {
     ctor public X509EncodedKeySpec(byte[]);
-    method public final java.lang.String getFormat();
+    method public final String getFormat();
   }
 
 }
 
 package java.sql {
 
-  public abstract interface Array {
-    method public abstract void free() throws java.sql.SQLException;
-    method public abstract java.lang.Object getArray() throws java.sql.SQLException;
-    method public abstract java.lang.Object getArray(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.lang.Object getArray(long, int) throws java.sql.SQLException;
-    method public abstract java.lang.Object getArray(long, int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract int getBaseType() throws java.sql.SQLException;
-    method public abstract java.lang.String getBaseTypeName() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getResultSet() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getResultSet(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getResultSet(long, int) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getResultSet(long, int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
+  public interface Array {
+    method public void free() throws java.sql.SQLException;
+    method public Object getArray() throws java.sql.SQLException;
+    method public Object getArray(java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
+    method public Object getArray(long, int) throws java.sql.SQLException;
+    method public Object getArray(long, int, java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
+    method public int getBaseType() throws java.sql.SQLException;
+    method public String getBaseTypeName() throws java.sql.SQLException;
+    method public java.sql.ResultSet getResultSet() throws java.sql.SQLException;
+    method public java.sql.ResultSet getResultSet(java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
+    method public java.sql.ResultSet getResultSet(long, int) throws java.sql.SQLException;
+    method public java.sql.ResultSet getResultSet(long, int, java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
   }
 
   public class BatchUpdateException extends java.sql.SQLException {
-    ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[]);
-    ctor public BatchUpdateException(java.lang.String, java.lang.String, int[]);
-    ctor public BatchUpdateException(java.lang.String, int[]);
+    ctor public BatchUpdateException(String, String, int, int[]);
+    ctor public BatchUpdateException(String, String, int[]);
+    ctor public BatchUpdateException(String, int[]);
     ctor public BatchUpdateException(int[]);
     ctor public BatchUpdateException();
-    ctor public BatchUpdateException(java.lang.Throwable);
-    ctor public BatchUpdateException(int[], java.lang.Throwable);
-    ctor public BatchUpdateException(java.lang.String, int[], java.lang.Throwable);
-    ctor public BatchUpdateException(java.lang.String, java.lang.String, int[], java.lang.Throwable);
-    ctor public BatchUpdateException(java.lang.String, java.lang.String, int, int[], java.lang.Throwable);
+    ctor public BatchUpdateException(Throwable);
+    ctor public BatchUpdateException(int[], Throwable);
+    ctor public BatchUpdateException(String, int[], Throwable);
+    ctor public BatchUpdateException(String, String, int[], Throwable);
+    ctor public BatchUpdateException(String, String, int, int[], Throwable);
     method public int[] getUpdateCounts();
   }
 
-  public abstract interface Blob {
-    method public abstract void free() throws java.sql.SQLException;
-    method public abstract java.io.InputStream getBinaryStream() throws java.sql.SQLException;
-    method public abstract java.io.InputStream getBinaryStream(long, long) throws java.sql.SQLException;
-    method public abstract byte[] getBytes(long, int) throws java.sql.SQLException;
-    method public abstract long length() throws java.sql.SQLException;
-    method public abstract long position(byte[], long) throws java.sql.SQLException;
-    method public abstract long position(java.sql.Blob, long) throws java.sql.SQLException;
-    method public abstract java.io.OutputStream setBinaryStream(long) throws java.sql.SQLException;
-    method public abstract int setBytes(long, byte[]) throws java.sql.SQLException;
-    method public abstract int setBytes(long, byte[], int, int) throws java.sql.SQLException;
-    method public abstract void truncate(long) throws java.sql.SQLException;
+  public interface Blob {
+    method public void free() throws java.sql.SQLException;
+    method public java.io.InputStream getBinaryStream() throws java.sql.SQLException;
+    method public java.io.InputStream getBinaryStream(long, long) throws java.sql.SQLException;
+    method public byte[] getBytes(long, int) throws java.sql.SQLException;
+    method public long length() throws java.sql.SQLException;
+    method public long position(byte[], long) throws java.sql.SQLException;
+    method public long position(java.sql.Blob, long) throws java.sql.SQLException;
+    method public java.io.OutputStream setBinaryStream(long) throws java.sql.SQLException;
+    method public int setBytes(long, byte[]) throws java.sql.SQLException;
+    method public int setBytes(long, byte[], int, int) throws java.sql.SQLException;
+    method public void truncate(long) throws java.sql.SQLException;
   }
 
-  public abstract interface CallableStatement implements java.sql.PreparedStatement {
-    method public abstract java.sql.Array getArray(int) throws java.sql.SQLException;
-    method public abstract java.sql.Array getArray(java.lang.String) throws java.sql.SQLException;
-    method public abstract deprecated java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Blob getBlob(int) throws java.sql.SQLException;
-    method public abstract java.sql.Blob getBlob(java.lang.String) throws java.sql.SQLException;
-    method public abstract boolean getBoolean(int) throws java.sql.SQLException;
-    method public abstract boolean getBoolean(java.lang.String) throws java.sql.SQLException;
-    method public abstract byte getByte(int) throws java.sql.SQLException;
-    method public abstract byte getByte(java.lang.String) throws java.sql.SQLException;
-    method public abstract byte[] getBytes(int) throws java.sql.SQLException;
-    method public abstract byte[] getBytes(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.io.Reader getCharacterStream(int) throws java.sql.SQLException;
-    method public abstract java.io.Reader getCharacterStream(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Clob getClob(int) throws java.sql.SQLException;
-    method public abstract java.sql.Clob getClob(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Date getDate(int) throws java.sql.SQLException;
-    method public abstract java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract java.sql.Date getDate(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Date getDate(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract double getDouble(int) throws java.sql.SQLException;
-    method public abstract double getDouble(java.lang.String) throws java.sql.SQLException;
-    method public abstract float getFloat(int) throws java.sql.SQLException;
-    method public abstract float getFloat(java.lang.String) throws java.sql.SQLException;
-    method public abstract int getInt(int) throws java.sql.SQLException;
-    method public abstract int getInt(java.lang.String) throws java.sql.SQLException;
-    method public abstract long getLong(int) throws java.sql.SQLException;
-    method public abstract long getLong(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.io.Reader getNCharacterStream(int) throws java.sql.SQLException;
-    method public abstract java.io.Reader getNCharacterStream(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.NClob getNClob(int) throws java.sql.SQLException;
-    method public abstract java.sql.NClob getNClob(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.String getNString(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getNString(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(int) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(java.lang.String, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.sql.Ref getRef(int) throws java.sql.SQLException;
-    method public abstract java.sql.Ref getRef(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.RowId getRowId(int) throws java.sql.SQLException;
-    method public abstract java.sql.RowId getRowId(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.SQLXML getSQLXML(int) throws java.sql.SQLException;
-    method public abstract java.sql.SQLXML getSQLXML(java.lang.String) throws java.sql.SQLException;
-    method public abstract short getShort(int) throws java.sql.SQLException;
-    method public abstract short getShort(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.String getString(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getString(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Time getTime(int) throws java.sql.SQLException;
-    method public abstract java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract java.sql.Time getTime(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Time getTime(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp getTimestamp(int) throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp getTimestamp(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp getTimestamp(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract java.net.URL getURL(int) throws java.sql.SQLException;
-    method public abstract java.net.URL getURL(java.lang.String) throws java.sql.SQLException;
-    method public abstract void registerOutParameter(int, int) throws java.sql.SQLException;
-    method public abstract void registerOutParameter(int, int, int) throws java.sql.SQLException;
-    method public abstract void registerOutParameter(int, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void registerOutParameter(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract void registerOutParameter(java.lang.String, int, int) throws java.sql.SQLException;
-    method public abstract void registerOutParameter(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(java.lang.String, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBigDecimal(java.lang.String, java.math.BigDecimal) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(java.lang.String, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBlob(java.lang.String, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void setBlob(java.lang.String, java.sql.Blob) throws java.sql.SQLException;
-    method public abstract void setBlob(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBoolean(java.lang.String, boolean) throws java.sql.SQLException;
-    method public abstract void setByte(java.lang.String, byte) throws java.sql.SQLException;
-    method public abstract void setBytes(java.lang.String, byte[]) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(java.lang.String, java.io.Reader, int) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setClob(java.lang.String, java.sql.Clob) throws java.sql.SQLException;
-    method public abstract void setClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setDate(java.lang.String, java.sql.Date) throws java.sql.SQLException;
-    method public abstract void setDate(java.lang.String, java.sql.Date, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setDouble(java.lang.String, double) throws java.sql.SQLException;
-    method public abstract void setFloat(java.lang.String, float) throws java.sql.SQLException;
-    method public abstract void setInt(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract void setLong(java.lang.String, long) throws java.sql.SQLException;
-    method public abstract void setNCharacterStream(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setNull(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract void setNull(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object, int, int) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void setRowId(java.lang.String, java.sql.RowId) throws java.sql.SQLException;
-    method public abstract void setSQLXML(java.lang.String, java.sql.SQLXML) throws java.sql.SQLException;
-    method public abstract void setShort(java.lang.String, short) throws java.sql.SQLException;
-    method public abstract void setString(java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setTime(java.lang.String, java.sql.Time) throws java.sql.SQLException;
-    method public abstract void setTime(java.lang.String, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp) throws java.sql.SQLException;
-    method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setURL(java.lang.String, java.net.URL) throws java.sql.SQLException;
-    method public abstract boolean wasNull() throws java.sql.SQLException;
+  public interface CallableStatement extends java.sql.PreparedStatement {
+    method public java.sql.Array getArray(int) throws java.sql.SQLException;
+    method public java.sql.Array getArray(String) throws java.sql.SQLException;
+    method @Deprecated public java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
+    method public java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
+    method public java.math.BigDecimal getBigDecimal(String) throws java.sql.SQLException;
+    method public java.sql.Blob getBlob(int) throws java.sql.SQLException;
+    method public java.sql.Blob getBlob(String) throws java.sql.SQLException;
+    method public boolean getBoolean(int) throws java.sql.SQLException;
+    method public boolean getBoolean(String) throws java.sql.SQLException;
+    method public byte getByte(int) throws java.sql.SQLException;
+    method public byte getByte(String) throws java.sql.SQLException;
+    method public byte[] getBytes(int) throws java.sql.SQLException;
+    method public byte[] getBytes(String) throws java.sql.SQLException;
+    method public java.io.Reader getCharacterStream(int) throws java.sql.SQLException;
+    method public java.io.Reader getCharacterStream(String) throws java.sql.SQLException;
+    method public java.sql.Clob getClob(int) throws java.sql.SQLException;
+    method public java.sql.Clob getClob(String) throws java.sql.SQLException;
+    method public java.sql.Date getDate(int) throws java.sql.SQLException;
+    method public java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
+    method public java.sql.Date getDate(String) throws java.sql.SQLException;
+    method public java.sql.Date getDate(String, java.util.Calendar) throws java.sql.SQLException;
+    method public double getDouble(int) throws java.sql.SQLException;
+    method public double getDouble(String) throws java.sql.SQLException;
+    method public float getFloat(int) throws java.sql.SQLException;
+    method public float getFloat(String) throws java.sql.SQLException;
+    method public int getInt(int) throws java.sql.SQLException;
+    method public int getInt(String) throws java.sql.SQLException;
+    method public long getLong(int) throws java.sql.SQLException;
+    method public long getLong(String) throws java.sql.SQLException;
+    method public java.io.Reader getNCharacterStream(int) throws java.sql.SQLException;
+    method public java.io.Reader getNCharacterStream(String) throws java.sql.SQLException;
+    method public java.sql.NClob getNClob(int) throws java.sql.SQLException;
+    method public java.sql.NClob getNClob(String) throws java.sql.SQLException;
+    method public String getNString(int) throws java.sql.SQLException;
+    method public String getNString(String) throws java.sql.SQLException;
+    method public Object getObject(int) throws java.sql.SQLException;
+    method public Object getObject(int, java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
+    method public Object getObject(String) throws java.sql.SQLException;
+    method public Object getObject(String, java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
+    method public java.sql.Ref getRef(int) throws java.sql.SQLException;
+    method public java.sql.Ref getRef(String) throws java.sql.SQLException;
+    method public java.sql.RowId getRowId(int) throws java.sql.SQLException;
+    method public java.sql.RowId getRowId(String) throws java.sql.SQLException;
+    method public java.sql.SQLXML getSQLXML(int) throws java.sql.SQLException;
+    method public java.sql.SQLXML getSQLXML(String) throws java.sql.SQLException;
+    method public short getShort(int) throws java.sql.SQLException;
+    method public short getShort(String) throws java.sql.SQLException;
+    method public String getString(int) throws java.sql.SQLException;
+    method public String getString(String) throws java.sql.SQLException;
+    method public java.sql.Time getTime(int) throws java.sql.SQLException;
+    method public java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
+    method public java.sql.Time getTime(String) throws java.sql.SQLException;
+    method public java.sql.Time getTime(String, java.util.Calendar) throws java.sql.SQLException;
+    method public java.sql.Timestamp getTimestamp(int) throws java.sql.SQLException;
+    method public java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
+    method public java.sql.Timestamp getTimestamp(String) throws java.sql.SQLException;
+    method public java.sql.Timestamp getTimestamp(String, java.util.Calendar) throws java.sql.SQLException;
+    method public java.net.URL getURL(int) throws java.sql.SQLException;
+    method public java.net.URL getURL(String) throws java.sql.SQLException;
+    method public void registerOutParameter(int, int) throws java.sql.SQLException;
+    method public void registerOutParameter(int, int, int) throws java.sql.SQLException;
+    method public void registerOutParameter(int, int, String) throws java.sql.SQLException;
+    method public void registerOutParameter(String, int) throws java.sql.SQLException;
+    method public void registerOutParameter(String, int, int) throws java.sql.SQLException;
+    method public void registerOutParameter(String, int, String) throws java.sql.SQLException;
+    method public void setAsciiStream(String, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void setAsciiStream(String, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void setAsciiStream(String, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBigDecimal(String, java.math.BigDecimal) throws java.sql.SQLException;
+    method public void setBinaryStream(String, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void setBinaryStream(String, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void setBinaryStream(String, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBlob(String, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void setBlob(String, java.sql.Blob) throws java.sql.SQLException;
+    method public void setBlob(String, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBoolean(String, boolean) throws java.sql.SQLException;
+    method public void setByte(String, byte) throws java.sql.SQLException;
+    method public void setBytes(String, byte[]) throws java.sql.SQLException;
+    method public void setCharacterStream(String, java.io.Reader, int) throws java.sql.SQLException;
+    method public void setCharacterStream(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setCharacterStream(String, java.io.Reader) throws java.sql.SQLException;
+    method public void setClob(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setClob(String, java.sql.Clob) throws java.sql.SQLException;
+    method public void setClob(String, java.io.Reader) throws java.sql.SQLException;
+    method public void setDate(String, java.sql.Date) throws java.sql.SQLException;
+    method public void setDate(String, java.sql.Date, java.util.Calendar) throws java.sql.SQLException;
+    method public void setDouble(String, double) throws java.sql.SQLException;
+    method public void setFloat(String, float) throws java.sql.SQLException;
+    method public void setInt(String, int) throws java.sql.SQLException;
+    method public void setLong(String, long) throws java.sql.SQLException;
+    method public void setNCharacterStream(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setNCharacterStream(String, java.io.Reader) throws java.sql.SQLException;
+    method public void setNClob(String, java.sql.NClob) throws java.sql.SQLException;
+    method public void setNClob(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setNClob(String, java.io.Reader) throws java.sql.SQLException;
+    method public void setNString(String, String) throws java.sql.SQLException;
+    method public void setNull(String, int) throws java.sql.SQLException;
+    method public void setNull(String, int, String) throws java.sql.SQLException;
+    method public void setObject(String, Object, int, int) throws java.sql.SQLException;
+    method public void setObject(String, Object, int) throws java.sql.SQLException;
+    method public void setObject(String, Object) throws java.sql.SQLException;
+    method public void setRowId(String, java.sql.RowId) throws java.sql.SQLException;
+    method public void setSQLXML(String, java.sql.SQLXML) throws java.sql.SQLException;
+    method public void setShort(String, short) throws java.sql.SQLException;
+    method public void setString(String, String) throws java.sql.SQLException;
+    method public void setTime(String, java.sql.Time) throws java.sql.SQLException;
+    method public void setTime(String, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
+    method public void setTimestamp(String, java.sql.Timestamp) throws java.sql.SQLException;
+    method public void setTimestamp(String, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
+    method public void setURL(String, java.net.URL) throws java.sql.SQLException;
+    method public boolean wasNull() throws java.sql.SQLException;
   }
 
-  public final class ClientInfoStatus extends java.lang.Enum {
-    method public static java.sql.ClientInfoStatus valueOf(java.lang.String);
-    method public static final java.sql.ClientInfoStatus[] values();
+  public enum ClientInfoStatus {
     enum_constant public static final java.sql.ClientInfoStatus REASON_UNKNOWN;
     enum_constant public static final java.sql.ClientInfoStatus REASON_UNKNOWN_PROPERTY;
     enum_constant public static final java.sql.ClientInfoStatus REASON_VALUE_INVALID;
     enum_constant public static final java.sql.ClientInfoStatus REASON_VALUE_TRUNCATED;
   }
 
-  public abstract interface Clob {
-    method public abstract void free() throws java.sql.SQLException;
-    method public abstract java.io.InputStream getAsciiStream() throws java.sql.SQLException;
-    method public abstract java.io.Reader getCharacterStream() throws java.sql.SQLException;
-    method public abstract java.io.Reader getCharacterStream(long, long) throws java.sql.SQLException;
-    method public abstract java.lang.String getSubString(long, int) throws java.sql.SQLException;
-    method public abstract long length() throws java.sql.SQLException;
-    method public abstract long position(java.lang.String, long) throws java.sql.SQLException;
-    method public abstract long position(java.sql.Clob, long) throws java.sql.SQLException;
-    method public abstract java.io.OutputStream setAsciiStream(long) throws java.sql.SQLException;
-    method public abstract java.io.Writer setCharacterStream(long) throws java.sql.SQLException;
-    method public abstract int setString(long, java.lang.String) throws java.sql.SQLException;
-    method public abstract int setString(long, java.lang.String, int, int) throws java.sql.SQLException;
-    method public abstract void truncate(long) throws java.sql.SQLException;
+  public interface Clob {
+    method public void free() throws java.sql.SQLException;
+    method public java.io.InputStream getAsciiStream() throws java.sql.SQLException;
+    method public java.io.Reader getCharacterStream() throws java.sql.SQLException;
+    method public java.io.Reader getCharacterStream(long, long) throws java.sql.SQLException;
+    method public String getSubString(long, int) throws java.sql.SQLException;
+    method public long length() throws java.sql.SQLException;
+    method public long position(String, long) throws java.sql.SQLException;
+    method public long position(java.sql.Clob, long) throws java.sql.SQLException;
+    method public java.io.OutputStream setAsciiStream(long) throws java.sql.SQLException;
+    method public java.io.Writer setCharacterStream(long) throws java.sql.SQLException;
+    method public int setString(long, String) throws java.sql.SQLException;
+    method public int setString(long, String, int, int) throws java.sql.SQLException;
+    method public void truncate(long) throws java.sql.SQLException;
   }
 
-  public abstract interface Connection implements java.lang.AutoCloseable java.sql.Wrapper {
-    method public abstract void clearWarnings() throws java.sql.SQLException;
-    method public abstract void close() throws java.sql.SQLException;
-    method public abstract void commit() throws java.sql.SQLException;
-    method public abstract java.sql.Array createArrayOf(java.lang.String, java.lang.Object[]) throws java.sql.SQLException;
-    method public abstract java.sql.Blob createBlob() throws java.sql.SQLException;
-    method public abstract java.sql.Clob createClob() throws java.sql.SQLException;
-    method public abstract java.sql.NClob createNClob() throws java.sql.SQLException;
-    method public abstract java.sql.SQLXML createSQLXML() throws java.sql.SQLException;
-    method public abstract java.sql.Statement createStatement() throws java.sql.SQLException;
-    method public abstract java.sql.Statement createStatement(int, int) throws java.sql.SQLException;
-    method public abstract java.sql.Statement createStatement(int, int, int) throws java.sql.SQLException;
-    method public abstract java.sql.Struct createStruct(java.lang.String, java.lang.Object[]) throws java.sql.SQLException;
-    method public abstract boolean getAutoCommit() throws java.sql.SQLException;
-    method public abstract java.lang.String getCatalog() throws java.sql.SQLException;
-    method public abstract java.lang.String getClientInfo(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.util.Properties getClientInfo() throws java.sql.SQLException;
-    method public abstract int getHoldability() throws java.sql.SQLException;
-    method public abstract java.sql.DatabaseMetaData getMetaData() throws java.sql.SQLException;
-    method public abstract int getTransactionIsolation() throws java.sql.SQLException;
-    method public abstract java.util.Map<java.lang.String, java.lang.Class<?>> getTypeMap() throws java.sql.SQLException;
-    method public abstract java.sql.SQLWarning getWarnings() throws java.sql.SQLException;
-    method public abstract boolean isClosed() throws java.sql.SQLException;
-    method public abstract boolean isReadOnly() throws java.sql.SQLException;
-    method public abstract boolean isValid(int) throws java.sql.SQLException;
-    method public abstract java.lang.String nativeSQL(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.CallableStatement prepareCall(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.CallableStatement prepareCall(java.lang.String, int, int) throws java.sql.SQLException;
-    method public abstract java.sql.CallableStatement prepareCall(java.lang.String, int, int, int) throws java.sql.SQLException;
-    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int, int) throws java.sql.SQLException;
-    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int, int, int) throws java.sql.SQLException;
-    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, int[]) throws java.sql.SQLException;
-    method public abstract java.sql.PreparedStatement prepareStatement(java.lang.String, java.lang.String[]) throws java.sql.SQLException;
-    method public abstract void releaseSavepoint(java.sql.Savepoint) throws java.sql.SQLException;
-    method public abstract void rollback() throws java.sql.SQLException;
-    method public abstract void rollback(java.sql.Savepoint) throws java.sql.SQLException;
-    method public abstract void setAutoCommit(boolean) throws java.sql.SQLException;
-    method public abstract void setCatalog(java.lang.String) throws java.sql.SQLException;
-    method public abstract void setClientInfo(java.lang.String, java.lang.String) throws java.sql.SQLClientInfoException;
-    method public abstract void setClientInfo(java.util.Properties) throws java.sql.SQLClientInfoException;
-    method public abstract void setHoldability(int) throws java.sql.SQLException;
-    method public abstract void setReadOnly(boolean) throws java.sql.SQLException;
-    method public abstract java.sql.Savepoint setSavepoint() throws java.sql.SQLException;
-    method public abstract java.sql.Savepoint setSavepoint(java.lang.String) throws java.sql.SQLException;
-    method public abstract void setTransactionIsolation(int) throws java.sql.SQLException;
-    method public abstract void setTypeMap(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
+  public interface Connection extends java.sql.Wrapper java.lang.AutoCloseable {
+    method public void clearWarnings() throws java.sql.SQLException;
+    method public void close() throws java.sql.SQLException;
+    method public void commit() throws java.sql.SQLException;
+    method public java.sql.Array createArrayOf(String, Object[]) throws java.sql.SQLException;
+    method public java.sql.Blob createBlob() throws java.sql.SQLException;
+    method public java.sql.Clob createClob() throws java.sql.SQLException;
+    method public java.sql.NClob createNClob() throws java.sql.SQLException;
+    method public java.sql.SQLXML createSQLXML() throws java.sql.SQLException;
+    method public java.sql.Statement createStatement() throws java.sql.SQLException;
+    method public java.sql.Statement createStatement(int, int) throws java.sql.SQLException;
+    method public java.sql.Statement createStatement(int, int, int) throws java.sql.SQLException;
+    method public java.sql.Struct createStruct(String, Object[]) throws java.sql.SQLException;
+    method public boolean getAutoCommit() throws java.sql.SQLException;
+    method public String getCatalog() throws java.sql.SQLException;
+    method public String getClientInfo(String) throws java.sql.SQLException;
+    method public java.util.Properties getClientInfo() throws java.sql.SQLException;
+    method public int getHoldability() throws java.sql.SQLException;
+    method public java.sql.DatabaseMetaData getMetaData() throws java.sql.SQLException;
+    method public int getTransactionIsolation() throws java.sql.SQLException;
+    method public java.util.Map<java.lang.String,java.lang.Class<?>> getTypeMap() throws java.sql.SQLException;
+    method public java.sql.SQLWarning getWarnings() throws java.sql.SQLException;
+    method public boolean isClosed() throws java.sql.SQLException;
+    method public boolean isReadOnly() throws java.sql.SQLException;
+    method public boolean isValid(int) throws java.sql.SQLException;
+    method public String nativeSQL(String) throws java.sql.SQLException;
+    method public java.sql.CallableStatement prepareCall(String) throws java.sql.SQLException;
+    method public java.sql.CallableStatement prepareCall(String, int, int) throws java.sql.SQLException;
+    method public java.sql.CallableStatement prepareCall(String, int, int, int) throws java.sql.SQLException;
+    method public java.sql.PreparedStatement prepareStatement(String) throws java.sql.SQLException;
+    method public java.sql.PreparedStatement prepareStatement(String, int, int) throws java.sql.SQLException;
+    method public java.sql.PreparedStatement prepareStatement(String, int, int, int) throws java.sql.SQLException;
+    method public java.sql.PreparedStatement prepareStatement(String, int) throws java.sql.SQLException;
+    method public java.sql.PreparedStatement prepareStatement(String, int[]) throws java.sql.SQLException;
+    method public java.sql.PreparedStatement prepareStatement(String, String[]) throws java.sql.SQLException;
+    method public void releaseSavepoint(java.sql.Savepoint) throws java.sql.SQLException;
+    method public void rollback() throws java.sql.SQLException;
+    method public void rollback(java.sql.Savepoint) throws java.sql.SQLException;
+    method public void setAutoCommit(boolean) throws java.sql.SQLException;
+    method public void setCatalog(String) throws java.sql.SQLException;
+    method public void setClientInfo(String, String) throws java.sql.SQLClientInfoException;
+    method public void setClientInfo(java.util.Properties) throws java.sql.SQLClientInfoException;
+    method public void setHoldability(int) throws java.sql.SQLException;
+    method public void setReadOnly(boolean) throws java.sql.SQLException;
+    method public java.sql.Savepoint setSavepoint() throws java.sql.SQLException;
+    method public java.sql.Savepoint setSavepoint(String) throws java.sql.SQLException;
+    method public void setTransactionIsolation(int) throws java.sql.SQLException;
+    method public void setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
     field public static final int TRANSACTION_NONE = 0; // 0x0
     field public static final int TRANSACTION_READ_COMMITTED = 2; // 0x2
     field public static final int TRANSACTION_READ_UNCOMMITTED = 1; // 0x1
@@ -65693,7 +65522,7 @@
 
   public class DataTruncation extends java.sql.SQLWarning {
     ctor public DataTruncation(int, boolean, boolean, int, int);
-    ctor public DataTruncation(int, boolean, boolean, int, int, java.lang.Throwable);
+    ctor public DataTruncation(int, boolean, boolean, int, int, Throwable);
     method public int getDataSize();
     method public int getIndex();
     method public boolean getParameter();
@@ -65701,179 +65530,179 @@
     method public int getTransferSize();
   }
 
-  public abstract interface DatabaseMetaData implements java.sql.Wrapper {
-    method public abstract boolean allProceduresAreCallable() throws java.sql.SQLException;
-    method public abstract boolean allTablesAreSelectable() throws java.sql.SQLException;
-    method public abstract boolean autoCommitFailureClosesAllResultSets() throws java.sql.SQLException;
-    method public abstract boolean dataDefinitionCausesTransactionCommit() throws java.sql.SQLException;
-    method public abstract boolean dataDefinitionIgnoredInTransactions() throws java.sql.SQLException;
-    method public abstract boolean deletesAreDetected(int) throws java.sql.SQLException;
-    method public abstract boolean doesMaxRowSizeIncludeBlobs() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getAttributes(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getBestRowIdentifier(java.lang.String, java.lang.String, java.lang.String, int, boolean) throws java.sql.SQLException;
-    method public abstract java.lang.String getCatalogSeparator() throws java.sql.SQLException;
-    method public abstract java.lang.String getCatalogTerm() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getCatalogs() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getClientInfoProperties() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getColumnPrivileges(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getColumns(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Connection getConnection() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getCrossReference(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract int getDatabaseMajorVersion() throws java.sql.SQLException;
-    method public abstract int getDatabaseMinorVersion() throws java.sql.SQLException;
-    method public abstract java.lang.String getDatabaseProductName() throws java.sql.SQLException;
-    method public abstract java.lang.String getDatabaseProductVersion() throws java.sql.SQLException;
-    method public abstract int getDefaultTransactionIsolation() throws java.sql.SQLException;
-    method public abstract int getDriverMajorVersion();
-    method public abstract int getDriverMinorVersion();
-    method public abstract java.lang.String getDriverName() throws java.sql.SQLException;
-    method public abstract java.lang.String getDriverVersion() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getExportedKeys(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.String getExtraNameCharacters() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getFunctionColumns(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getFunctions(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.String getIdentifierQuoteString() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getImportedKeys(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getIndexInfo(java.lang.String, java.lang.String, java.lang.String, boolean, boolean) throws java.sql.SQLException;
-    method public abstract int getJDBCMajorVersion() throws java.sql.SQLException;
-    method public abstract int getJDBCMinorVersion() throws java.sql.SQLException;
-    method public abstract int getMaxBinaryLiteralLength() throws java.sql.SQLException;
-    method public abstract int getMaxCatalogNameLength() throws java.sql.SQLException;
-    method public abstract int getMaxCharLiteralLength() throws java.sql.SQLException;
-    method public abstract int getMaxColumnNameLength() throws java.sql.SQLException;
-    method public abstract int getMaxColumnsInGroupBy() throws java.sql.SQLException;
-    method public abstract int getMaxColumnsInIndex() throws java.sql.SQLException;
-    method public abstract int getMaxColumnsInOrderBy() throws java.sql.SQLException;
-    method public abstract int getMaxColumnsInSelect() throws java.sql.SQLException;
-    method public abstract int getMaxColumnsInTable() throws java.sql.SQLException;
-    method public abstract int getMaxConnections() throws java.sql.SQLException;
-    method public abstract int getMaxCursorNameLength() throws java.sql.SQLException;
-    method public abstract int getMaxIndexLength() throws java.sql.SQLException;
-    method public abstract int getMaxProcedureNameLength() throws java.sql.SQLException;
-    method public abstract int getMaxRowSize() throws java.sql.SQLException;
-    method public abstract int getMaxSchemaNameLength() throws java.sql.SQLException;
-    method public abstract int getMaxStatementLength() throws java.sql.SQLException;
-    method public abstract int getMaxStatements() throws java.sql.SQLException;
-    method public abstract int getMaxTableNameLength() throws java.sql.SQLException;
-    method public abstract int getMaxTablesInSelect() throws java.sql.SQLException;
-    method public abstract int getMaxUserNameLength() throws java.sql.SQLException;
-    method public abstract java.lang.String getNumericFunctions() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getPrimaryKeys(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getProcedureColumns(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.String getProcedureTerm() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getProcedures(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract int getResultSetHoldability() throws java.sql.SQLException;
-    method public abstract java.sql.RowIdLifetime getRowIdLifetime() throws java.sql.SQLException;
-    method public abstract java.lang.String getSQLKeywords() throws java.sql.SQLException;
-    method public abstract int getSQLStateType() throws java.sql.SQLException;
-    method public abstract java.lang.String getSchemaTerm() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getSchemas() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getSchemas(java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.String getSearchStringEscape() throws java.sql.SQLException;
-    method public abstract java.lang.String getStringFunctions() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getSuperTables(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getSuperTypes(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.String getSystemFunctions() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getTablePrivileges(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getTableTypes() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getTables(java.lang.String, java.lang.String, java.lang.String, java.lang.String[]) throws java.sql.SQLException;
-    method public abstract java.lang.String getTimeDateFunctions() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getTypeInfo() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getUDTs(java.lang.String, java.lang.String, java.lang.String, int[]) throws java.sql.SQLException;
-    method public abstract java.lang.String getURL() throws java.sql.SQLException;
-    method public abstract java.lang.String getUserName() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getVersionColumns(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract boolean insertsAreDetected(int) throws java.sql.SQLException;
-    method public abstract boolean isCatalogAtStart() throws java.sql.SQLException;
-    method public abstract boolean isReadOnly() throws java.sql.SQLException;
-    method public abstract boolean locatorsUpdateCopy() throws java.sql.SQLException;
-    method public abstract boolean nullPlusNonNullIsNull() throws java.sql.SQLException;
-    method public abstract boolean nullsAreSortedAtEnd() throws java.sql.SQLException;
-    method public abstract boolean nullsAreSortedAtStart() throws java.sql.SQLException;
-    method public abstract boolean nullsAreSortedHigh() throws java.sql.SQLException;
-    method public abstract boolean nullsAreSortedLow() throws java.sql.SQLException;
-    method public abstract boolean othersDeletesAreVisible(int) throws java.sql.SQLException;
-    method public abstract boolean othersInsertsAreVisible(int) throws java.sql.SQLException;
-    method public abstract boolean othersUpdatesAreVisible(int) throws java.sql.SQLException;
-    method public abstract boolean ownDeletesAreVisible(int) throws java.sql.SQLException;
-    method public abstract boolean ownInsertsAreVisible(int) throws java.sql.SQLException;
-    method public abstract boolean ownUpdatesAreVisible(int) throws java.sql.SQLException;
-    method public abstract boolean storesLowerCaseIdentifiers() throws java.sql.SQLException;
-    method public abstract boolean storesLowerCaseQuotedIdentifiers() throws java.sql.SQLException;
-    method public abstract boolean storesMixedCaseIdentifiers() throws java.sql.SQLException;
-    method public abstract boolean storesMixedCaseQuotedIdentifiers() throws java.sql.SQLException;
-    method public abstract boolean storesUpperCaseIdentifiers() throws java.sql.SQLException;
-    method public abstract boolean storesUpperCaseQuotedIdentifiers() throws java.sql.SQLException;
-    method public abstract boolean supportsANSI92EntryLevelSQL() throws java.sql.SQLException;
-    method public abstract boolean supportsANSI92FullSQL() throws java.sql.SQLException;
-    method public abstract boolean supportsANSI92IntermediateSQL() throws java.sql.SQLException;
-    method public abstract boolean supportsAlterTableWithAddColumn() throws java.sql.SQLException;
-    method public abstract boolean supportsAlterTableWithDropColumn() throws java.sql.SQLException;
-    method public abstract boolean supportsBatchUpdates() throws java.sql.SQLException;
-    method public abstract boolean supportsCatalogsInDataManipulation() throws java.sql.SQLException;
-    method public abstract boolean supportsCatalogsInIndexDefinitions() throws java.sql.SQLException;
-    method public abstract boolean supportsCatalogsInPrivilegeDefinitions() throws java.sql.SQLException;
-    method public abstract boolean supportsCatalogsInProcedureCalls() throws java.sql.SQLException;
-    method public abstract boolean supportsCatalogsInTableDefinitions() throws java.sql.SQLException;
-    method public abstract boolean supportsColumnAliasing() throws java.sql.SQLException;
-    method public abstract boolean supportsConvert() throws java.sql.SQLException;
-    method public abstract boolean supportsConvert(int, int) throws java.sql.SQLException;
-    method public abstract boolean supportsCoreSQLGrammar() throws java.sql.SQLException;
-    method public abstract boolean supportsCorrelatedSubqueries() throws java.sql.SQLException;
-    method public abstract boolean supportsDataDefinitionAndDataManipulationTransactions() throws java.sql.SQLException;
-    method public abstract boolean supportsDataManipulationTransactionsOnly() throws java.sql.SQLException;
-    method public abstract boolean supportsDifferentTableCorrelationNames() throws java.sql.SQLException;
-    method public abstract boolean supportsExpressionsInOrderBy() throws java.sql.SQLException;
-    method public abstract boolean supportsExtendedSQLGrammar() throws java.sql.SQLException;
-    method public abstract boolean supportsFullOuterJoins() throws java.sql.SQLException;
-    method public abstract boolean supportsGetGeneratedKeys() throws java.sql.SQLException;
-    method public abstract boolean supportsGroupBy() throws java.sql.SQLException;
-    method public abstract boolean supportsGroupByBeyondSelect() throws java.sql.SQLException;
-    method public abstract boolean supportsGroupByUnrelated() throws java.sql.SQLException;
-    method public abstract boolean supportsIntegrityEnhancementFacility() throws java.sql.SQLException;
-    method public abstract boolean supportsLikeEscapeClause() throws java.sql.SQLException;
-    method public abstract boolean supportsLimitedOuterJoins() throws java.sql.SQLException;
-    method public abstract boolean supportsMinimumSQLGrammar() throws java.sql.SQLException;
-    method public abstract boolean supportsMixedCaseIdentifiers() throws java.sql.SQLException;
-    method public abstract boolean supportsMixedCaseQuotedIdentifiers() throws java.sql.SQLException;
-    method public abstract boolean supportsMultipleOpenResults() throws java.sql.SQLException;
-    method public abstract boolean supportsMultipleResultSets() throws java.sql.SQLException;
-    method public abstract boolean supportsMultipleTransactions() throws java.sql.SQLException;
-    method public abstract boolean supportsNamedParameters() throws java.sql.SQLException;
-    method public abstract boolean supportsNonNullableColumns() throws java.sql.SQLException;
-    method public abstract boolean supportsOpenCursorsAcrossCommit() throws java.sql.SQLException;
-    method public abstract boolean supportsOpenCursorsAcrossRollback() throws java.sql.SQLException;
-    method public abstract boolean supportsOpenStatementsAcrossCommit() throws java.sql.SQLException;
-    method public abstract boolean supportsOpenStatementsAcrossRollback() throws java.sql.SQLException;
-    method public abstract boolean supportsOrderByUnrelated() throws java.sql.SQLException;
-    method public abstract boolean supportsOuterJoins() throws java.sql.SQLException;
-    method public abstract boolean supportsPositionedDelete() throws java.sql.SQLException;
-    method public abstract boolean supportsPositionedUpdate() throws java.sql.SQLException;
-    method public abstract boolean supportsResultSetConcurrency(int, int) throws java.sql.SQLException;
-    method public abstract boolean supportsResultSetHoldability(int) throws java.sql.SQLException;
-    method public abstract boolean supportsResultSetType(int) throws java.sql.SQLException;
-    method public abstract boolean supportsSavepoints() throws java.sql.SQLException;
-    method public abstract boolean supportsSchemasInDataManipulation() throws java.sql.SQLException;
-    method public abstract boolean supportsSchemasInIndexDefinitions() throws java.sql.SQLException;
-    method public abstract boolean supportsSchemasInPrivilegeDefinitions() throws java.sql.SQLException;
-    method public abstract boolean supportsSchemasInProcedureCalls() throws java.sql.SQLException;
-    method public abstract boolean supportsSchemasInTableDefinitions() throws java.sql.SQLException;
-    method public abstract boolean supportsSelectForUpdate() throws java.sql.SQLException;
-    method public abstract boolean supportsStatementPooling() throws java.sql.SQLException;
-    method public abstract boolean supportsStoredFunctionsUsingCallSyntax() throws java.sql.SQLException;
-    method public abstract boolean supportsStoredProcedures() throws java.sql.SQLException;
-    method public abstract boolean supportsSubqueriesInComparisons() throws java.sql.SQLException;
-    method public abstract boolean supportsSubqueriesInExists() throws java.sql.SQLException;
-    method public abstract boolean supportsSubqueriesInIns() throws java.sql.SQLException;
-    method public abstract boolean supportsSubqueriesInQuantifieds() throws java.sql.SQLException;
-    method public abstract boolean supportsTableCorrelationNames() throws java.sql.SQLException;
-    method public abstract boolean supportsTransactionIsolationLevel(int) throws java.sql.SQLException;
-    method public abstract boolean supportsTransactions() throws java.sql.SQLException;
-    method public abstract boolean supportsUnion() throws java.sql.SQLException;
-    method public abstract boolean supportsUnionAll() throws java.sql.SQLException;
-    method public abstract boolean updatesAreDetected(int) throws java.sql.SQLException;
-    method public abstract boolean usesLocalFilePerTable() throws java.sql.SQLException;
-    method public abstract boolean usesLocalFiles() throws java.sql.SQLException;
+  public interface DatabaseMetaData extends java.sql.Wrapper {
+    method public boolean allProceduresAreCallable() throws java.sql.SQLException;
+    method public boolean allTablesAreSelectable() throws java.sql.SQLException;
+    method public boolean autoCommitFailureClosesAllResultSets() throws java.sql.SQLException;
+    method public boolean dataDefinitionCausesTransactionCommit() throws java.sql.SQLException;
+    method public boolean dataDefinitionIgnoredInTransactions() throws java.sql.SQLException;
+    method public boolean deletesAreDetected(int) throws java.sql.SQLException;
+    method public boolean doesMaxRowSizeIncludeBlobs() throws java.sql.SQLException;
+    method public java.sql.ResultSet getAttributes(String, String, String, String) throws java.sql.SQLException;
+    method public java.sql.ResultSet getBestRowIdentifier(String, String, String, int, boolean) throws java.sql.SQLException;
+    method public String getCatalogSeparator() throws java.sql.SQLException;
+    method public String getCatalogTerm() throws java.sql.SQLException;
+    method public java.sql.ResultSet getCatalogs() throws java.sql.SQLException;
+    method public java.sql.ResultSet getClientInfoProperties() throws java.sql.SQLException;
+    method public java.sql.ResultSet getColumnPrivileges(String, String, String, String) throws java.sql.SQLException;
+    method public java.sql.ResultSet getColumns(String, String, String, String) throws java.sql.SQLException;
+    method public java.sql.Connection getConnection() throws java.sql.SQLException;
+    method public java.sql.ResultSet getCrossReference(String, String, String, String, String, String) throws java.sql.SQLException;
+    method public int getDatabaseMajorVersion() throws java.sql.SQLException;
+    method public int getDatabaseMinorVersion() throws java.sql.SQLException;
+    method public String getDatabaseProductName() throws java.sql.SQLException;
+    method public String getDatabaseProductVersion() throws java.sql.SQLException;
+    method public int getDefaultTransactionIsolation() throws java.sql.SQLException;
+    method public int getDriverMajorVersion();
+    method public int getDriverMinorVersion();
+    method public String getDriverName() throws java.sql.SQLException;
+    method public String getDriverVersion() throws java.sql.SQLException;
+    method public java.sql.ResultSet getExportedKeys(String, String, String) throws java.sql.SQLException;
+    method public String getExtraNameCharacters() throws java.sql.SQLException;
+    method public java.sql.ResultSet getFunctionColumns(String, String, String, String) throws java.sql.SQLException;
+    method public java.sql.ResultSet getFunctions(String, String, String) throws java.sql.SQLException;
+    method public String getIdentifierQuoteString() throws java.sql.SQLException;
+    method public java.sql.ResultSet getImportedKeys(String, String, String) throws java.sql.SQLException;
+    method public java.sql.ResultSet getIndexInfo(String, String, String, boolean, boolean) throws java.sql.SQLException;
+    method public int getJDBCMajorVersion() throws java.sql.SQLException;
+    method public int getJDBCMinorVersion() throws java.sql.SQLException;
+    method public int getMaxBinaryLiteralLength() throws java.sql.SQLException;
+    method public int getMaxCatalogNameLength() throws java.sql.SQLException;
+    method public int getMaxCharLiteralLength() throws java.sql.SQLException;
+    method public int getMaxColumnNameLength() throws java.sql.SQLException;
+    method public int getMaxColumnsInGroupBy() throws java.sql.SQLException;
+    method public int getMaxColumnsInIndex() throws java.sql.SQLException;
+    method public int getMaxColumnsInOrderBy() throws java.sql.SQLException;
+    method public int getMaxColumnsInSelect() throws java.sql.SQLException;
+    method public int getMaxColumnsInTable() throws java.sql.SQLException;
+    method public int getMaxConnections() throws java.sql.SQLException;
+    method public int getMaxCursorNameLength() throws java.sql.SQLException;
+    method public int getMaxIndexLength() throws java.sql.SQLException;
+    method public int getMaxProcedureNameLength() throws java.sql.SQLException;
+    method public int getMaxRowSize() throws java.sql.SQLException;
+    method public int getMaxSchemaNameLength() throws java.sql.SQLException;
+    method public int getMaxStatementLength() throws java.sql.SQLException;
+    method public int getMaxStatements() throws java.sql.SQLException;
+    method public int getMaxTableNameLength() throws java.sql.SQLException;
+    method public int getMaxTablesInSelect() throws java.sql.SQLException;
+    method public int getMaxUserNameLength() throws java.sql.SQLException;
+    method public String getNumericFunctions() throws java.sql.SQLException;
+    method public java.sql.ResultSet getPrimaryKeys(String, String, String) throws java.sql.SQLException;
+    method public java.sql.ResultSet getProcedureColumns(String, String, String, String) throws java.sql.SQLException;
+    method public String getProcedureTerm() throws java.sql.SQLException;
+    method public java.sql.ResultSet getProcedures(String, String, String) throws java.sql.SQLException;
+    method public int getResultSetHoldability() throws java.sql.SQLException;
+    method public java.sql.RowIdLifetime getRowIdLifetime() throws java.sql.SQLException;
+    method public String getSQLKeywords() throws java.sql.SQLException;
+    method public int getSQLStateType() throws java.sql.SQLException;
+    method public String getSchemaTerm() throws java.sql.SQLException;
+    method public java.sql.ResultSet getSchemas() throws java.sql.SQLException;
+    method public java.sql.ResultSet getSchemas(String, String) throws java.sql.SQLException;
+    method public String getSearchStringEscape() throws java.sql.SQLException;
+    method public String getStringFunctions() throws java.sql.SQLException;
+    method public java.sql.ResultSet getSuperTables(String, String, String) throws java.sql.SQLException;
+    method public java.sql.ResultSet getSuperTypes(String, String, String) throws java.sql.SQLException;
+    method public String getSystemFunctions() throws java.sql.SQLException;
+    method public java.sql.ResultSet getTablePrivileges(String, String, String) throws java.sql.SQLException;
+    method public java.sql.ResultSet getTableTypes() throws java.sql.SQLException;
+    method public java.sql.ResultSet getTables(String, String, String, String[]) throws java.sql.SQLException;
+    method public String getTimeDateFunctions() throws java.sql.SQLException;
+    method public java.sql.ResultSet getTypeInfo() throws java.sql.SQLException;
+    method public java.sql.ResultSet getUDTs(String, String, String, int[]) throws java.sql.SQLException;
+    method public String getURL() throws java.sql.SQLException;
+    method public String getUserName() throws java.sql.SQLException;
+    method public java.sql.ResultSet getVersionColumns(String, String, String) throws java.sql.SQLException;
+    method public boolean insertsAreDetected(int) throws java.sql.SQLException;
+    method public boolean isCatalogAtStart() throws java.sql.SQLException;
+    method public boolean isReadOnly() throws java.sql.SQLException;
+    method public boolean locatorsUpdateCopy() throws java.sql.SQLException;
+    method public boolean nullPlusNonNullIsNull() throws java.sql.SQLException;
+    method public boolean nullsAreSortedAtEnd() throws java.sql.SQLException;
+    method public boolean nullsAreSortedAtStart() throws java.sql.SQLException;
+    method public boolean nullsAreSortedHigh() throws java.sql.SQLException;
+    method public boolean nullsAreSortedLow() throws java.sql.SQLException;
+    method public boolean othersDeletesAreVisible(int) throws java.sql.SQLException;
+    method public boolean othersInsertsAreVisible(int) throws java.sql.SQLException;
+    method public boolean othersUpdatesAreVisible(int) throws java.sql.SQLException;
+    method public boolean ownDeletesAreVisible(int) throws java.sql.SQLException;
+    method public boolean ownInsertsAreVisible(int) throws java.sql.SQLException;
+    method public boolean ownUpdatesAreVisible(int) throws java.sql.SQLException;
+    method public boolean storesLowerCaseIdentifiers() throws java.sql.SQLException;
+    method public boolean storesLowerCaseQuotedIdentifiers() throws java.sql.SQLException;
+    method public boolean storesMixedCaseIdentifiers() throws java.sql.SQLException;
+    method public boolean storesMixedCaseQuotedIdentifiers() throws java.sql.SQLException;
+    method public boolean storesUpperCaseIdentifiers() throws java.sql.SQLException;
+    method public boolean storesUpperCaseQuotedIdentifiers() throws java.sql.SQLException;
+    method public boolean supportsANSI92EntryLevelSQL() throws java.sql.SQLException;
+    method public boolean supportsANSI92FullSQL() throws java.sql.SQLException;
+    method public boolean supportsANSI92IntermediateSQL() throws java.sql.SQLException;
+    method public boolean supportsAlterTableWithAddColumn() throws java.sql.SQLException;
+    method public boolean supportsAlterTableWithDropColumn() throws java.sql.SQLException;
+    method public boolean supportsBatchUpdates() throws java.sql.SQLException;
+    method public boolean supportsCatalogsInDataManipulation() throws java.sql.SQLException;
+    method public boolean supportsCatalogsInIndexDefinitions() throws java.sql.SQLException;
+    method public boolean supportsCatalogsInPrivilegeDefinitions() throws java.sql.SQLException;
+    method public boolean supportsCatalogsInProcedureCalls() throws java.sql.SQLException;
+    method public boolean supportsCatalogsInTableDefinitions() throws java.sql.SQLException;
+    method public boolean supportsColumnAliasing() throws java.sql.SQLException;
+    method public boolean supportsConvert() throws java.sql.SQLException;
+    method public boolean supportsConvert(int, int) throws java.sql.SQLException;
+    method public boolean supportsCoreSQLGrammar() throws java.sql.SQLException;
+    method public boolean supportsCorrelatedSubqueries() throws java.sql.SQLException;
+    method public boolean supportsDataDefinitionAndDataManipulationTransactions() throws java.sql.SQLException;
+    method public boolean supportsDataManipulationTransactionsOnly() throws java.sql.SQLException;
+    method public boolean supportsDifferentTableCorrelationNames() throws java.sql.SQLException;
+    method public boolean supportsExpressionsInOrderBy() throws java.sql.SQLException;
+    method public boolean supportsExtendedSQLGrammar() throws java.sql.SQLException;
+    method public boolean supportsFullOuterJoins() throws java.sql.SQLException;
+    method public boolean supportsGetGeneratedKeys() throws java.sql.SQLException;
+    method public boolean supportsGroupBy() throws java.sql.SQLException;
+    method public boolean supportsGroupByBeyondSelect() throws java.sql.SQLException;
+    method public boolean supportsGroupByUnrelated() throws java.sql.SQLException;
+    method public boolean supportsIntegrityEnhancementFacility() throws java.sql.SQLException;
+    method public boolean supportsLikeEscapeClause() throws java.sql.SQLException;
+    method public boolean supportsLimitedOuterJoins() throws java.sql.SQLException;
+    method public boolean supportsMinimumSQLGrammar() throws java.sql.SQLException;
+    method public boolean supportsMixedCaseIdentifiers() throws java.sql.SQLException;
+    method public boolean supportsMixedCaseQuotedIdentifiers() throws java.sql.SQLException;
+    method public boolean supportsMultipleOpenResults() throws java.sql.SQLException;
+    method public boolean supportsMultipleResultSets() throws java.sql.SQLException;
+    method public boolean supportsMultipleTransactions() throws java.sql.SQLException;
+    method public boolean supportsNamedParameters() throws java.sql.SQLException;
+    method public boolean supportsNonNullableColumns() throws java.sql.SQLException;
+    method public boolean supportsOpenCursorsAcrossCommit() throws java.sql.SQLException;
+    method public boolean supportsOpenCursorsAcrossRollback() throws java.sql.SQLException;
+    method public boolean supportsOpenStatementsAcrossCommit() throws java.sql.SQLException;
+    method public boolean supportsOpenStatementsAcrossRollback() throws java.sql.SQLException;
+    method public boolean supportsOrderByUnrelated() throws java.sql.SQLException;
+    method public boolean supportsOuterJoins() throws java.sql.SQLException;
+    method public boolean supportsPositionedDelete() throws java.sql.SQLException;
+    method public boolean supportsPositionedUpdate() throws java.sql.SQLException;
+    method public boolean supportsResultSetConcurrency(int, int) throws java.sql.SQLException;
+    method public boolean supportsResultSetHoldability(int) throws java.sql.SQLException;
+    method public boolean supportsResultSetType(int) throws java.sql.SQLException;
+    method public boolean supportsSavepoints() throws java.sql.SQLException;
+    method public boolean supportsSchemasInDataManipulation() throws java.sql.SQLException;
+    method public boolean supportsSchemasInIndexDefinitions() throws java.sql.SQLException;
+    method public boolean supportsSchemasInPrivilegeDefinitions() throws java.sql.SQLException;
+    method public boolean supportsSchemasInProcedureCalls() throws java.sql.SQLException;
+    method public boolean supportsSchemasInTableDefinitions() throws java.sql.SQLException;
+    method public boolean supportsSelectForUpdate() throws java.sql.SQLException;
+    method public boolean supportsStatementPooling() throws java.sql.SQLException;
+    method public boolean supportsStoredFunctionsUsingCallSyntax() throws java.sql.SQLException;
+    method public boolean supportsStoredProcedures() throws java.sql.SQLException;
+    method public boolean supportsSubqueriesInComparisons() throws java.sql.SQLException;
+    method public boolean supportsSubqueriesInExists() throws java.sql.SQLException;
+    method public boolean supportsSubqueriesInIns() throws java.sql.SQLException;
+    method public boolean supportsSubqueriesInQuantifieds() throws java.sql.SQLException;
+    method public boolean supportsTableCorrelationNames() throws java.sql.SQLException;
+    method public boolean supportsTransactionIsolationLevel(int) throws java.sql.SQLException;
+    method public boolean supportsTransactions() throws java.sql.SQLException;
+    method public boolean supportsUnion() throws java.sql.SQLException;
+    method public boolean supportsUnionAll() throws java.sql.SQLException;
+    method public boolean updatesAreDetected(int) throws java.sql.SQLException;
+    method public boolean usesLocalFilePerTable() throws java.sql.SQLException;
+    method public boolean usesLocalFiles() throws java.sql.SQLException;
     field public static final short attributeNoNulls = 0; // 0x0
     field public static final short attributeNullable = 1; // 0x1
     field public static final short attributeNullableUnknown = 2; // 0x2
@@ -65938,59 +65767,59 @@
   }
 
   public class Date extends java.util.Date {
-    ctor public deprecated Date(int, int, int);
+    ctor @Deprecated public Date(int, int, int);
     ctor public Date(long);
-    method public static java.sql.Date valueOf(java.lang.String);
+    method public static java.sql.Date valueOf(String);
   }
 
-  public abstract interface Driver {
-    method public abstract boolean acceptsURL(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Connection connect(java.lang.String, java.util.Properties) throws java.sql.SQLException;
-    method public abstract int getMajorVersion();
-    method public abstract int getMinorVersion();
-    method public abstract java.sql.DriverPropertyInfo[] getPropertyInfo(java.lang.String, java.util.Properties) throws java.sql.SQLException;
-    method public abstract boolean jdbcCompliant();
+  public interface Driver {
+    method public boolean acceptsURL(String) throws java.sql.SQLException;
+    method public java.sql.Connection connect(String, java.util.Properties) throws java.sql.SQLException;
+    method public int getMajorVersion();
+    method public int getMinorVersion();
+    method public java.sql.DriverPropertyInfo[] getPropertyInfo(String, java.util.Properties) throws java.sql.SQLException;
+    method public boolean jdbcCompliant();
   }
 
   public class DriverManager {
-    method public static synchronized void deregisterDriver(java.sql.Driver) throws java.sql.SQLException;
-    method public static java.sql.Connection getConnection(java.lang.String, java.util.Properties) throws java.sql.SQLException;
-    method public static java.sql.Connection getConnection(java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public static java.sql.Connection getConnection(java.lang.String) throws java.sql.SQLException;
-    method public static java.sql.Driver getDriver(java.lang.String) throws java.sql.SQLException;
+    method public static void deregisterDriver(java.sql.Driver) throws java.sql.SQLException;
+    method public static java.sql.Connection getConnection(String, java.util.Properties) throws java.sql.SQLException;
+    method public static java.sql.Connection getConnection(String, String, String) throws java.sql.SQLException;
+    method public static java.sql.Connection getConnection(String) throws java.sql.SQLException;
+    method public static java.sql.Driver getDriver(String) throws java.sql.SQLException;
     method public static java.util.Enumeration<java.sql.Driver> getDrivers();
-    method public static deprecated java.io.PrintStream getLogStream();
+    method @Deprecated public static java.io.PrintStream getLogStream();
     method public static java.io.PrintWriter getLogWriter();
     method public static int getLoginTimeout();
-    method public static void println(java.lang.String);
-    method public static synchronized void registerDriver(java.sql.Driver) throws java.sql.SQLException;
-    method public static deprecated void setLogStream(java.io.PrintStream);
+    method public static void println(String);
+    method public static void registerDriver(java.sql.Driver) throws java.sql.SQLException;
+    method @Deprecated public static void setLogStream(java.io.PrintStream);
     method public static void setLogWriter(java.io.PrintWriter);
     method public static void setLoginTimeout(int);
   }
 
   public class DriverPropertyInfo {
-    ctor public DriverPropertyInfo(java.lang.String, java.lang.String);
-    field public java.lang.String[] choices;
-    field public java.lang.String description;
-    field public java.lang.String name;
+    ctor public DriverPropertyInfo(String, String);
+    field public String[] choices;
+    field public String description;
+    field public String name;
     field public boolean required;
-    field public java.lang.String value;
+    field public String value;
   }
 
-  public abstract interface NClob implements java.sql.Clob {
+  public interface NClob extends java.sql.Clob {
   }
 
-  public abstract interface ParameterMetaData implements java.sql.Wrapper {
-    method public abstract java.lang.String getParameterClassName(int) throws java.sql.SQLException;
-    method public abstract int getParameterCount() throws java.sql.SQLException;
-    method public abstract int getParameterMode(int) throws java.sql.SQLException;
-    method public abstract int getParameterType(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getParameterTypeName(int) throws java.sql.SQLException;
-    method public abstract int getPrecision(int) throws java.sql.SQLException;
-    method public abstract int getScale(int) throws java.sql.SQLException;
-    method public abstract int isNullable(int) throws java.sql.SQLException;
-    method public abstract boolean isSigned(int) throws java.sql.SQLException;
+  public interface ParameterMetaData extends java.sql.Wrapper {
+    method public String getParameterClassName(int) throws java.sql.SQLException;
+    method public int getParameterCount() throws java.sql.SQLException;
+    method public int getParameterMode(int) throws java.sql.SQLException;
+    method public int getParameterType(int) throws java.sql.SQLException;
+    method public String getParameterTypeName(int) throws java.sql.SQLException;
+    method public int getPrecision(int) throws java.sql.SQLException;
+    method public int getScale(int) throws java.sql.SQLException;
+    method public int isNullable(int) throws java.sql.SQLException;
+    method public boolean isSigned(int) throws java.sql.SQLException;
     field public static final int parameterModeIn = 1; // 0x1
     field public static final int parameterModeInOut = 2; // 0x2
     field public static final int parameterModeOut = 4; // 0x4
@@ -66000,259 +65829,259 @@
     field public static final int parameterNullableUnknown = 2; // 0x2
   }
 
-  public abstract interface PreparedStatement implements java.sql.Statement {
-    method public abstract void addBatch() throws java.sql.SQLException;
-    method public abstract void clearParameters() throws java.sql.SQLException;
-    method public abstract boolean execute() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet executeQuery() throws java.sql.SQLException;
-    method public abstract int executeUpdate() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException;
-    method public abstract java.sql.ParameterMetaData getParameterMetaData() throws java.sql.SQLException;
-    method public abstract void setArray(int, java.sql.Array) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(int, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(int, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(int, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBigDecimal(int, java.math.BigDecimal) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(int, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(int, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(int, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBlob(int, java.sql.Blob) throws java.sql.SQLException;
-    method public abstract void setBlob(int, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void setBlob(int, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBoolean(int, boolean) throws java.sql.SQLException;
-    method public abstract void setByte(int, byte) throws java.sql.SQLException;
-    method public abstract void setBytes(int, byte[]) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(int, java.io.Reader, int) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setClob(int, java.sql.Clob) throws java.sql.SQLException;
-    method public abstract void setClob(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setClob(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setDate(int, java.sql.Date) throws java.sql.SQLException;
-    method public abstract void setDate(int, java.sql.Date, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setDouble(int, double) throws java.sql.SQLException;
-    method public abstract void setFloat(int, float) throws java.sql.SQLException;
-    method public abstract void setInt(int, int) throws java.sql.SQLException;
-    method public abstract void setLong(int, long) throws java.sql.SQLException;
-    method public abstract void setNCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNClob(int, java.sql.NClob) throws java.sql.SQLException;
-    method public abstract void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNClob(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNString(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setNull(int, int) throws java.sql.SQLException;
-    method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object, int, int) throws java.sql.SQLException;
-    method public abstract void setRef(int, java.sql.Ref) throws java.sql.SQLException;
-    method public abstract void setRowId(int, java.sql.RowId) throws java.sql.SQLException;
-    method public abstract void setSQLXML(int, java.sql.SQLXML) throws java.sql.SQLException;
-    method public abstract void setShort(int, short) throws java.sql.SQLException;
-    method public abstract void setString(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setTime(int, java.sql.Time) throws java.sql.SQLException;
-    method public abstract void setTime(int, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setTimestamp(int, java.sql.Timestamp) throws java.sql.SQLException;
-    method public abstract void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setURL(int, java.net.URL) throws java.sql.SQLException;
-    method public abstract deprecated void setUnicodeStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+  public interface PreparedStatement extends java.sql.Statement {
+    method public void addBatch() throws java.sql.SQLException;
+    method public void clearParameters() throws java.sql.SQLException;
+    method public boolean execute() throws java.sql.SQLException;
+    method public java.sql.ResultSet executeQuery() throws java.sql.SQLException;
+    method public int executeUpdate() throws java.sql.SQLException;
+    method public java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException;
+    method public java.sql.ParameterMetaData getParameterMetaData() throws java.sql.SQLException;
+    method public void setArray(int, java.sql.Array) throws java.sql.SQLException;
+    method public void setAsciiStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void setAsciiStream(int, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void setAsciiStream(int, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBigDecimal(int, java.math.BigDecimal) throws java.sql.SQLException;
+    method public void setBinaryStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void setBinaryStream(int, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void setBinaryStream(int, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBlob(int, java.sql.Blob) throws java.sql.SQLException;
+    method public void setBlob(int, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void setBlob(int, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBoolean(int, boolean) throws java.sql.SQLException;
+    method public void setByte(int, byte) throws java.sql.SQLException;
+    method public void setBytes(int, byte[]) throws java.sql.SQLException;
+    method public void setCharacterStream(int, java.io.Reader, int) throws java.sql.SQLException;
+    method public void setCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
+    method public void setClob(int, java.sql.Clob) throws java.sql.SQLException;
+    method public void setClob(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setClob(int, java.io.Reader) throws java.sql.SQLException;
+    method public void setDate(int, java.sql.Date) throws java.sql.SQLException;
+    method public void setDate(int, java.sql.Date, java.util.Calendar) throws java.sql.SQLException;
+    method public void setDouble(int, double) throws java.sql.SQLException;
+    method public void setFloat(int, float) throws java.sql.SQLException;
+    method public void setInt(int, int) throws java.sql.SQLException;
+    method public void setLong(int, long) throws java.sql.SQLException;
+    method public void setNCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setNCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
+    method public void setNClob(int, java.sql.NClob) throws java.sql.SQLException;
+    method public void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setNClob(int, java.io.Reader) throws java.sql.SQLException;
+    method public void setNString(int, String) throws java.sql.SQLException;
+    method public void setNull(int, int) throws java.sql.SQLException;
+    method public void setNull(int, int, String) throws java.sql.SQLException;
+    method public void setObject(int, Object, int) throws java.sql.SQLException;
+    method public void setObject(int, Object) throws java.sql.SQLException;
+    method public void setObject(int, Object, int, int) throws java.sql.SQLException;
+    method public void setRef(int, java.sql.Ref) throws java.sql.SQLException;
+    method public void setRowId(int, java.sql.RowId) throws java.sql.SQLException;
+    method public void setSQLXML(int, java.sql.SQLXML) throws java.sql.SQLException;
+    method public void setShort(int, short) throws java.sql.SQLException;
+    method public void setString(int, String) throws java.sql.SQLException;
+    method public void setTime(int, java.sql.Time) throws java.sql.SQLException;
+    method public void setTime(int, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
+    method public void setTimestamp(int, java.sql.Timestamp) throws java.sql.SQLException;
+    method public void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
+    method public void setURL(int, java.net.URL) throws java.sql.SQLException;
+    method @Deprecated public void setUnicodeStream(int, java.io.InputStream, int) throws java.sql.SQLException;
   }
 
-  public abstract interface Ref {
-    method public abstract java.lang.String getBaseTypeName() throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject() throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.Object) throws java.sql.SQLException;
+  public interface Ref {
+    method public String getBaseTypeName() throws java.sql.SQLException;
+    method public Object getObject(java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
+    method public Object getObject() throws java.sql.SQLException;
+    method public void setObject(Object) throws java.sql.SQLException;
   }
 
-  public abstract interface ResultSet implements java.lang.AutoCloseable java.sql.Wrapper {
-    method public abstract boolean absolute(int) throws java.sql.SQLException;
-    method public abstract void afterLast() throws java.sql.SQLException;
-    method public abstract void beforeFirst() throws java.sql.SQLException;
-    method public abstract void cancelRowUpdates() throws java.sql.SQLException;
-    method public abstract void clearWarnings() throws java.sql.SQLException;
-    method public abstract void close() throws java.sql.SQLException;
-    method public abstract void deleteRow() throws java.sql.SQLException;
-    method public abstract int findColumn(java.lang.String) throws java.sql.SQLException;
-    method public abstract boolean first() throws java.sql.SQLException;
-    method public abstract java.sql.Array getArray(int) throws java.sql.SQLException;
-    method public abstract java.sql.Array getArray(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.io.InputStream getAsciiStream(int) throws java.sql.SQLException;
-    method public abstract java.io.InputStream getAsciiStream(java.lang.String) throws java.sql.SQLException;
-    method public abstract deprecated java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
-    method public abstract deprecated java.math.BigDecimal getBigDecimal(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal getBigDecimal(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.io.InputStream getBinaryStream(int) throws java.sql.SQLException;
-    method public abstract java.io.InputStream getBinaryStream(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Blob getBlob(int) throws java.sql.SQLException;
-    method public abstract java.sql.Blob getBlob(java.lang.String) throws java.sql.SQLException;
-    method public abstract boolean getBoolean(int) throws java.sql.SQLException;
-    method public abstract boolean getBoolean(java.lang.String) throws java.sql.SQLException;
-    method public abstract byte getByte(int) throws java.sql.SQLException;
-    method public abstract byte getByte(java.lang.String) throws java.sql.SQLException;
-    method public abstract byte[] getBytes(int) throws java.sql.SQLException;
-    method public abstract byte[] getBytes(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.io.Reader getCharacterStream(int) throws java.sql.SQLException;
-    method public abstract java.io.Reader getCharacterStream(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Clob getClob(int) throws java.sql.SQLException;
-    method public abstract java.sql.Clob getClob(java.lang.String) throws java.sql.SQLException;
-    method public abstract int getConcurrency() throws java.sql.SQLException;
-    method public abstract java.lang.String getCursorName() throws java.sql.SQLException;
-    method public abstract java.sql.Date getDate(int) throws java.sql.SQLException;
-    method public abstract java.sql.Date getDate(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract java.sql.Date getDate(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract double getDouble(int) throws java.sql.SQLException;
-    method public abstract double getDouble(java.lang.String) throws java.sql.SQLException;
-    method public abstract int getFetchDirection() throws java.sql.SQLException;
-    method public abstract int getFetchSize() throws java.sql.SQLException;
-    method public abstract float getFloat(int) throws java.sql.SQLException;
-    method public abstract float getFloat(java.lang.String) throws java.sql.SQLException;
-    method public abstract int getHoldability() throws java.sql.SQLException;
-    method public abstract int getInt(int) throws java.sql.SQLException;
-    method public abstract int getInt(java.lang.String) throws java.sql.SQLException;
-    method public abstract long getLong(int) throws java.sql.SQLException;
-    method public abstract long getLong(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException;
-    method public abstract java.io.Reader getNCharacterStream(int) throws java.sql.SQLException;
-    method public abstract java.io.Reader getNCharacterStream(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.NClob getNClob(int) throws java.sql.SQLException;
-    method public abstract java.sql.NClob getNClob(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.String getNString(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getNString(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(int) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(int, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.lang.Object getObject(java.lang.String, java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.sql.Ref getRef(int) throws java.sql.SQLException;
-    method public abstract java.sql.Ref getRef(java.lang.String) throws java.sql.SQLException;
-    method public abstract int getRow() throws java.sql.SQLException;
-    method public abstract java.sql.RowId getRowId(int) throws java.sql.SQLException;
-    method public abstract java.sql.RowId getRowId(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.SQLXML getSQLXML(int) throws java.sql.SQLException;
-    method public abstract java.sql.SQLXML getSQLXML(java.lang.String) throws java.sql.SQLException;
-    method public abstract short getShort(int) throws java.sql.SQLException;
-    method public abstract short getShort(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Statement getStatement() throws java.sql.SQLException;
-    method public abstract java.lang.String getString(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getString(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Time getTime(int) throws java.sql.SQLException;
-    method public abstract java.sql.Time getTime(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract java.sql.Time getTime(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp getTimestamp(int) throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp getTimestamp(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp getTimestamp(java.lang.String, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract int getType() throws java.sql.SQLException;
-    method public abstract java.net.URL getURL(int) throws java.sql.SQLException;
-    method public abstract java.net.URL getURL(java.lang.String) throws java.sql.SQLException;
-    method public abstract deprecated java.io.InputStream getUnicodeStream(int) throws java.sql.SQLException;
-    method public abstract deprecated java.io.InputStream getUnicodeStream(java.lang.String) throws java.sql.SQLException;
-    method public abstract java.sql.SQLWarning getWarnings() throws java.sql.SQLException;
-    method public abstract void insertRow() throws java.sql.SQLException;
-    method public abstract boolean isAfterLast() throws java.sql.SQLException;
-    method public abstract boolean isBeforeFirst() throws java.sql.SQLException;
-    method public abstract boolean isClosed() throws java.sql.SQLException;
-    method public abstract boolean isFirst() throws java.sql.SQLException;
-    method public abstract boolean isLast() throws java.sql.SQLException;
-    method public abstract boolean last() throws java.sql.SQLException;
-    method public abstract void moveToCurrentRow() throws java.sql.SQLException;
-    method public abstract void moveToInsertRow() throws java.sql.SQLException;
-    method public abstract boolean next() throws java.sql.SQLException;
-    method public abstract boolean previous() throws java.sql.SQLException;
-    method public abstract void refreshRow() throws java.sql.SQLException;
-    method public abstract boolean relative(int) throws java.sql.SQLException;
-    method public abstract boolean rowDeleted() throws java.sql.SQLException;
-    method public abstract boolean rowInserted() throws java.sql.SQLException;
-    method public abstract boolean rowUpdated() throws java.sql.SQLException;
-    method public abstract void setFetchDirection(int) throws java.sql.SQLException;
-    method public abstract void setFetchSize(int) throws java.sql.SQLException;
-    method public abstract void updateArray(int, java.sql.Array) throws java.sql.SQLException;
-    method public abstract void updateArray(java.lang.String, java.sql.Array) throws java.sql.SQLException;
-    method public abstract void updateAsciiStream(int, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void updateAsciiStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void updateAsciiStream(int, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void updateAsciiStream(java.lang.String, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void updateAsciiStream(int, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void updateAsciiStream(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void updateBigDecimal(int, java.math.BigDecimal) throws java.sql.SQLException;
-    method public abstract void updateBigDecimal(java.lang.String, java.math.BigDecimal) throws java.sql.SQLException;
-    method public abstract void updateBinaryStream(int, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void updateBinaryStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void updateBinaryStream(int, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void updateBinaryStream(java.lang.String, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void updateBinaryStream(int, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void updateBinaryStream(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void updateBlob(int, java.sql.Blob) throws java.sql.SQLException;
-    method public abstract void updateBlob(java.lang.String, java.sql.Blob) throws java.sql.SQLException;
-    method public abstract void updateBlob(int, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void updateBlob(java.lang.String, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void updateBlob(int, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void updateBlob(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void updateBoolean(int, boolean) throws java.sql.SQLException;
-    method public abstract void updateBoolean(java.lang.String, boolean) throws java.sql.SQLException;
-    method public abstract void updateByte(int, byte) throws java.sql.SQLException;
-    method public abstract void updateByte(java.lang.String, byte) throws java.sql.SQLException;
-    method public abstract void updateBytes(int, byte[]) throws java.sql.SQLException;
-    method public abstract void updateBytes(java.lang.String, byte[]) throws java.sql.SQLException;
-    method public abstract void updateCharacterStream(int, java.io.Reader, int) throws java.sql.SQLException;
-    method public abstract void updateCharacterStream(java.lang.String, java.io.Reader, int) throws java.sql.SQLException;
-    method public abstract void updateCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void updateCharacterStream(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void updateCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void updateCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void updateClob(int, java.sql.Clob) throws java.sql.SQLException;
-    method public abstract void updateClob(java.lang.String, java.sql.Clob) throws java.sql.SQLException;
-    method public abstract void updateClob(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void updateClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void updateClob(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void updateClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void updateDate(int, java.sql.Date) throws java.sql.SQLException;
-    method public abstract void updateDate(java.lang.String, java.sql.Date) throws java.sql.SQLException;
-    method public abstract void updateDouble(int, double) throws java.sql.SQLException;
-    method public abstract void updateDouble(java.lang.String, double) throws java.sql.SQLException;
-    method public abstract void updateFloat(int, float) throws java.sql.SQLException;
-    method public abstract void updateFloat(java.lang.String, float) throws java.sql.SQLException;
-    method public abstract void updateInt(int, int) throws java.sql.SQLException;
-    method public abstract void updateInt(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract void updateLong(int, long) throws java.sql.SQLException;
-    method public abstract void updateLong(java.lang.String, long) throws java.sql.SQLException;
-    method public abstract void updateNCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void updateNCharacterStream(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void updateNCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void updateNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void updateNClob(int, java.sql.NClob) throws java.sql.SQLException;
-    method public abstract void updateNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
-    method public abstract void updateNClob(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void updateNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void updateNClob(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void updateNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void updateNString(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void updateNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract void updateNull(int) throws java.sql.SQLException;
-    method public abstract void updateNull(java.lang.String) throws java.sql.SQLException;
-    method public abstract void updateObject(int, java.lang.Object, int) throws java.sql.SQLException;
-    method public abstract void updateObject(int, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void updateObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
-    method public abstract void updateObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void updateRef(int, java.sql.Ref) throws java.sql.SQLException;
-    method public abstract void updateRef(java.lang.String, java.sql.Ref) throws java.sql.SQLException;
-    method public abstract void updateRow() throws java.sql.SQLException;
-    method public abstract void updateRowId(int, java.sql.RowId) throws java.sql.SQLException;
-    method public abstract void updateRowId(java.lang.String, java.sql.RowId) throws java.sql.SQLException;
-    method public abstract void updateSQLXML(int, java.sql.SQLXML) throws java.sql.SQLException;
-    method public abstract void updateSQLXML(java.lang.String, java.sql.SQLXML) throws java.sql.SQLException;
-    method public abstract void updateShort(int, short) throws java.sql.SQLException;
-    method public abstract void updateShort(java.lang.String, short) throws java.sql.SQLException;
-    method public abstract void updateString(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void updateString(java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract void updateTime(int, java.sql.Time) throws java.sql.SQLException;
-    method public abstract void updateTime(java.lang.String, java.sql.Time) throws java.sql.SQLException;
-    method public abstract void updateTimestamp(int, java.sql.Timestamp) throws java.sql.SQLException;
-    method public abstract void updateTimestamp(java.lang.String, java.sql.Timestamp) throws java.sql.SQLException;
-    method public abstract boolean wasNull() throws java.sql.SQLException;
+  public interface ResultSet extends java.sql.Wrapper java.lang.AutoCloseable {
+    method public boolean absolute(int) throws java.sql.SQLException;
+    method public void afterLast() throws java.sql.SQLException;
+    method public void beforeFirst() throws java.sql.SQLException;
+    method public void cancelRowUpdates() throws java.sql.SQLException;
+    method public void clearWarnings() throws java.sql.SQLException;
+    method public void close() throws java.sql.SQLException;
+    method public void deleteRow() throws java.sql.SQLException;
+    method public int findColumn(String) throws java.sql.SQLException;
+    method public boolean first() throws java.sql.SQLException;
+    method public java.sql.Array getArray(int) throws java.sql.SQLException;
+    method public java.sql.Array getArray(String) throws java.sql.SQLException;
+    method public java.io.InputStream getAsciiStream(int) throws java.sql.SQLException;
+    method public java.io.InputStream getAsciiStream(String) throws java.sql.SQLException;
+    method @Deprecated public java.math.BigDecimal getBigDecimal(int, int) throws java.sql.SQLException;
+    method @Deprecated public java.math.BigDecimal getBigDecimal(String, int) throws java.sql.SQLException;
+    method public java.math.BigDecimal getBigDecimal(int) throws java.sql.SQLException;
+    method public java.math.BigDecimal getBigDecimal(String) throws java.sql.SQLException;
+    method public java.io.InputStream getBinaryStream(int) throws java.sql.SQLException;
+    method public java.io.InputStream getBinaryStream(String) throws java.sql.SQLException;
+    method public java.sql.Blob getBlob(int) throws java.sql.SQLException;
+    method public java.sql.Blob getBlob(String) throws java.sql.SQLException;
+    method public boolean getBoolean(int) throws java.sql.SQLException;
+    method public boolean getBoolean(String) throws java.sql.SQLException;
+    method public byte getByte(int) throws java.sql.SQLException;
+    method public byte getByte(String) throws java.sql.SQLException;
+    method public byte[] getBytes(int) throws java.sql.SQLException;
+    method public byte[] getBytes(String) throws java.sql.SQLException;
+    method public java.io.Reader getCharacterStream(int) throws java.sql.SQLException;
+    method public java.io.Reader getCharacterStream(String) throws java.sql.SQLException;
+    method public java.sql.Clob getClob(int) throws java.sql.SQLException;
+    method public java.sql.Clob getClob(String) throws java.sql.SQLException;
+    method public int getConcurrency() throws java.sql.SQLException;
+    method public String getCursorName() throws java.sql.SQLException;
+    method public java.sql.Date getDate(int) throws java.sql.SQLException;
+    method public java.sql.Date getDate(String) throws java.sql.SQLException;
+    method public java.sql.Date getDate(int, java.util.Calendar) throws java.sql.SQLException;
+    method public java.sql.Date getDate(String, java.util.Calendar) throws java.sql.SQLException;
+    method public double getDouble(int) throws java.sql.SQLException;
+    method public double getDouble(String) throws java.sql.SQLException;
+    method public int getFetchDirection() throws java.sql.SQLException;
+    method public int getFetchSize() throws java.sql.SQLException;
+    method public float getFloat(int) throws java.sql.SQLException;
+    method public float getFloat(String) throws java.sql.SQLException;
+    method public int getHoldability() throws java.sql.SQLException;
+    method public int getInt(int) throws java.sql.SQLException;
+    method public int getInt(String) throws java.sql.SQLException;
+    method public long getLong(int) throws java.sql.SQLException;
+    method public long getLong(String) throws java.sql.SQLException;
+    method public java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException;
+    method public java.io.Reader getNCharacterStream(int) throws java.sql.SQLException;
+    method public java.io.Reader getNCharacterStream(String) throws java.sql.SQLException;
+    method public java.sql.NClob getNClob(int) throws java.sql.SQLException;
+    method public java.sql.NClob getNClob(String) throws java.sql.SQLException;
+    method public String getNString(int) throws java.sql.SQLException;
+    method public String getNString(String) throws java.sql.SQLException;
+    method public Object getObject(int) throws java.sql.SQLException;
+    method public Object getObject(String) throws java.sql.SQLException;
+    method public Object getObject(int, java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
+    method public Object getObject(String, java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
+    method public java.sql.Ref getRef(int) throws java.sql.SQLException;
+    method public java.sql.Ref getRef(String) throws java.sql.SQLException;
+    method public int getRow() throws java.sql.SQLException;
+    method public java.sql.RowId getRowId(int) throws java.sql.SQLException;
+    method public java.sql.RowId getRowId(String) throws java.sql.SQLException;
+    method public java.sql.SQLXML getSQLXML(int) throws java.sql.SQLException;
+    method public java.sql.SQLXML getSQLXML(String) throws java.sql.SQLException;
+    method public short getShort(int) throws java.sql.SQLException;
+    method public short getShort(String) throws java.sql.SQLException;
+    method public java.sql.Statement getStatement() throws java.sql.SQLException;
+    method public String getString(int) throws java.sql.SQLException;
+    method public String getString(String) throws java.sql.SQLException;
+    method public java.sql.Time getTime(int) throws java.sql.SQLException;
+    method public java.sql.Time getTime(String) throws java.sql.SQLException;
+    method public java.sql.Time getTime(int, java.util.Calendar) throws java.sql.SQLException;
+    method public java.sql.Time getTime(String, java.util.Calendar) throws java.sql.SQLException;
+    method public java.sql.Timestamp getTimestamp(int) throws java.sql.SQLException;
+    method public java.sql.Timestamp getTimestamp(String) throws java.sql.SQLException;
+    method public java.sql.Timestamp getTimestamp(int, java.util.Calendar) throws java.sql.SQLException;
+    method public java.sql.Timestamp getTimestamp(String, java.util.Calendar) throws java.sql.SQLException;
+    method public int getType() throws java.sql.SQLException;
+    method public java.net.URL getURL(int) throws java.sql.SQLException;
+    method public java.net.URL getURL(String) throws java.sql.SQLException;
+    method @Deprecated public java.io.InputStream getUnicodeStream(int) throws java.sql.SQLException;
+    method @Deprecated public java.io.InputStream getUnicodeStream(String) throws java.sql.SQLException;
+    method public java.sql.SQLWarning getWarnings() throws java.sql.SQLException;
+    method public void insertRow() throws java.sql.SQLException;
+    method public boolean isAfterLast() throws java.sql.SQLException;
+    method public boolean isBeforeFirst() throws java.sql.SQLException;
+    method public boolean isClosed() throws java.sql.SQLException;
+    method public boolean isFirst() throws java.sql.SQLException;
+    method public boolean isLast() throws java.sql.SQLException;
+    method public boolean last() throws java.sql.SQLException;
+    method public void moveToCurrentRow() throws java.sql.SQLException;
+    method public void moveToInsertRow() throws java.sql.SQLException;
+    method public boolean next() throws java.sql.SQLException;
+    method public boolean previous() throws java.sql.SQLException;
+    method public void refreshRow() throws java.sql.SQLException;
+    method public boolean relative(int) throws java.sql.SQLException;
+    method public boolean rowDeleted() throws java.sql.SQLException;
+    method public boolean rowInserted() throws java.sql.SQLException;
+    method public boolean rowUpdated() throws java.sql.SQLException;
+    method public void setFetchDirection(int) throws java.sql.SQLException;
+    method public void setFetchSize(int) throws java.sql.SQLException;
+    method public void updateArray(int, java.sql.Array) throws java.sql.SQLException;
+    method public void updateArray(String, java.sql.Array) throws java.sql.SQLException;
+    method public void updateAsciiStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void updateAsciiStream(String, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void updateAsciiStream(int, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void updateAsciiStream(String, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void updateAsciiStream(int, java.io.InputStream) throws java.sql.SQLException;
+    method public void updateAsciiStream(String, java.io.InputStream) throws java.sql.SQLException;
+    method public void updateBigDecimal(int, java.math.BigDecimal) throws java.sql.SQLException;
+    method public void updateBigDecimal(String, java.math.BigDecimal) throws java.sql.SQLException;
+    method public void updateBinaryStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void updateBinaryStream(String, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void updateBinaryStream(int, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void updateBinaryStream(String, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void updateBinaryStream(int, java.io.InputStream) throws java.sql.SQLException;
+    method public void updateBinaryStream(String, java.io.InputStream) throws java.sql.SQLException;
+    method public void updateBlob(int, java.sql.Blob) throws java.sql.SQLException;
+    method public void updateBlob(String, java.sql.Blob) throws java.sql.SQLException;
+    method public void updateBlob(int, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void updateBlob(String, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void updateBlob(int, java.io.InputStream) throws java.sql.SQLException;
+    method public void updateBlob(String, java.io.InputStream) throws java.sql.SQLException;
+    method public void updateBoolean(int, boolean) throws java.sql.SQLException;
+    method public void updateBoolean(String, boolean) throws java.sql.SQLException;
+    method public void updateByte(int, byte) throws java.sql.SQLException;
+    method public void updateByte(String, byte) throws java.sql.SQLException;
+    method public void updateBytes(int, byte[]) throws java.sql.SQLException;
+    method public void updateBytes(String, byte[]) throws java.sql.SQLException;
+    method public void updateCharacterStream(int, java.io.Reader, int) throws java.sql.SQLException;
+    method public void updateCharacterStream(String, java.io.Reader, int) throws java.sql.SQLException;
+    method public void updateCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void updateCharacterStream(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void updateCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
+    method public void updateCharacterStream(String, java.io.Reader) throws java.sql.SQLException;
+    method public void updateClob(int, java.sql.Clob) throws java.sql.SQLException;
+    method public void updateClob(String, java.sql.Clob) throws java.sql.SQLException;
+    method public void updateClob(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void updateClob(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void updateClob(int, java.io.Reader) throws java.sql.SQLException;
+    method public void updateClob(String, java.io.Reader) throws java.sql.SQLException;
+    method public void updateDate(int, java.sql.Date) throws java.sql.SQLException;
+    method public void updateDate(String, java.sql.Date) throws java.sql.SQLException;
+    method public void updateDouble(int, double) throws java.sql.SQLException;
+    method public void updateDouble(String, double) throws java.sql.SQLException;
+    method public void updateFloat(int, float) throws java.sql.SQLException;
+    method public void updateFloat(String, float) throws java.sql.SQLException;
+    method public void updateInt(int, int) throws java.sql.SQLException;
+    method public void updateInt(String, int) throws java.sql.SQLException;
+    method public void updateLong(int, long) throws java.sql.SQLException;
+    method public void updateLong(String, long) throws java.sql.SQLException;
+    method public void updateNCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void updateNCharacterStream(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void updateNCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
+    method public void updateNCharacterStream(String, java.io.Reader) throws java.sql.SQLException;
+    method public void updateNClob(int, java.sql.NClob) throws java.sql.SQLException;
+    method public void updateNClob(String, java.sql.NClob) throws java.sql.SQLException;
+    method public void updateNClob(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void updateNClob(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void updateNClob(int, java.io.Reader) throws java.sql.SQLException;
+    method public void updateNClob(String, java.io.Reader) throws java.sql.SQLException;
+    method public void updateNString(int, String) throws java.sql.SQLException;
+    method public void updateNString(String, String) throws java.sql.SQLException;
+    method public void updateNull(int) throws java.sql.SQLException;
+    method public void updateNull(String) throws java.sql.SQLException;
+    method public void updateObject(int, Object, int) throws java.sql.SQLException;
+    method public void updateObject(int, Object) throws java.sql.SQLException;
+    method public void updateObject(String, Object, int) throws java.sql.SQLException;
+    method public void updateObject(String, Object) throws java.sql.SQLException;
+    method public void updateRef(int, java.sql.Ref) throws java.sql.SQLException;
+    method public void updateRef(String, java.sql.Ref) throws java.sql.SQLException;
+    method public void updateRow() throws java.sql.SQLException;
+    method public void updateRowId(int, java.sql.RowId) throws java.sql.SQLException;
+    method public void updateRowId(String, java.sql.RowId) throws java.sql.SQLException;
+    method public void updateSQLXML(int, java.sql.SQLXML) throws java.sql.SQLException;
+    method public void updateSQLXML(String, java.sql.SQLXML) throws java.sql.SQLException;
+    method public void updateShort(int, short) throws java.sql.SQLException;
+    method public void updateShort(String, short) throws java.sql.SQLException;
+    method public void updateString(int, String) throws java.sql.SQLException;
+    method public void updateString(String, String) throws java.sql.SQLException;
+    method public void updateTime(int, java.sql.Time) throws java.sql.SQLException;
+    method public void updateTime(String, java.sql.Time) throws java.sql.SQLException;
+    method public void updateTimestamp(int, java.sql.Timestamp) throws java.sql.SQLException;
+    method public void updateTimestamp(String, java.sql.Timestamp) throws java.sql.SQLException;
+    method public boolean wasNull() throws java.sql.SQLException;
     field public static final int CLOSE_CURSORS_AT_COMMIT = 2; // 0x2
     field public static final int CONCUR_READ_ONLY = 1007; // 0x3ef
     field public static final int CONCUR_UPDATABLE = 1008; // 0x3f0
@@ -66265,43 +66094,41 @@
     field public static final int TYPE_SCROLL_SENSITIVE = 1005; // 0x3ed
   }
 
-  public abstract interface ResultSetMetaData implements java.sql.Wrapper {
-    method public abstract java.lang.String getCatalogName(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getColumnClassName(int) throws java.sql.SQLException;
-    method public abstract int getColumnCount() throws java.sql.SQLException;
-    method public abstract int getColumnDisplaySize(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getColumnLabel(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getColumnName(int) throws java.sql.SQLException;
-    method public abstract int getColumnType(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getColumnTypeName(int) throws java.sql.SQLException;
-    method public abstract int getPrecision(int) throws java.sql.SQLException;
-    method public abstract int getScale(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getSchemaName(int) throws java.sql.SQLException;
-    method public abstract java.lang.String getTableName(int) throws java.sql.SQLException;
-    method public abstract boolean isAutoIncrement(int) throws java.sql.SQLException;
-    method public abstract boolean isCaseSensitive(int) throws java.sql.SQLException;
-    method public abstract boolean isCurrency(int) throws java.sql.SQLException;
-    method public abstract boolean isDefinitelyWritable(int) throws java.sql.SQLException;
-    method public abstract int isNullable(int) throws java.sql.SQLException;
-    method public abstract boolean isReadOnly(int) throws java.sql.SQLException;
-    method public abstract boolean isSearchable(int) throws java.sql.SQLException;
-    method public abstract boolean isSigned(int) throws java.sql.SQLException;
-    method public abstract boolean isWritable(int) throws java.sql.SQLException;
+  public interface ResultSetMetaData extends java.sql.Wrapper {
+    method public String getCatalogName(int) throws java.sql.SQLException;
+    method public String getColumnClassName(int) throws java.sql.SQLException;
+    method public int getColumnCount() throws java.sql.SQLException;
+    method public int getColumnDisplaySize(int) throws java.sql.SQLException;
+    method public String getColumnLabel(int) throws java.sql.SQLException;
+    method public String getColumnName(int) throws java.sql.SQLException;
+    method public int getColumnType(int) throws java.sql.SQLException;
+    method public String getColumnTypeName(int) throws java.sql.SQLException;
+    method public int getPrecision(int) throws java.sql.SQLException;
+    method public int getScale(int) throws java.sql.SQLException;
+    method public String getSchemaName(int) throws java.sql.SQLException;
+    method public String getTableName(int) throws java.sql.SQLException;
+    method public boolean isAutoIncrement(int) throws java.sql.SQLException;
+    method public boolean isCaseSensitive(int) throws java.sql.SQLException;
+    method public boolean isCurrency(int) throws java.sql.SQLException;
+    method public boolean isDefinitelyWritable(int) throws java.sql.SQLException;
+    method public int isNullable(int) throws java.sql.SQLException;
+    method public boolean isReadOnly(int) throws java.sql.SQLException;
+    method public boolean isSearchable(int) throws java.sql.SQLException;
+    method public boolean isSigned(int) throws java.sql.SQLException;
+    method public boolean isWritable(int) throws java.sql.SQLException;
     field public static final int columnNoNulls = 0; // 0x0
     field public static final int columnNullable = 1; // 0x1
     field public static final int columnNullableUnknown = 2; // 0x2
   }
 
-  public abstract interface RowId {
-    method public abstract boolean equals(java.lang.Object);
-    method public abstract byte[] getBytes();
-    method public abstract int hashCode();
-    method public abstract java.lang.String toString();
+  public interface RowId {
+    method public boolean equals(Object);
+    method public byte[] getBytes();
+    method public int hashCode();
+    method public String toString();
   }
 
-  public final class RowIdLifetime extends java.lang.Enum {
-    method public static java.sql.RowIdLifetime valueOf(java.lang.String);
-    method public static final java.sql.RowIdLifetime[] values();
+  public enum RowIdLifetime {
     enum_constant public static final java.sql.RowIdLifetime ROWID_UNSUPPORTED;
     enum_constant public static final java.sql.RowIdLifetime ROWID_VALID_FOREVER;
     enum_constant public static final java.sql.RowIdLifetime ROWID_VALID_OTHER;
@@ -66311,307 +66138,307 @@
 
   public class SQLClientInfoException extends java.sql.SQLException {
     ctor public SQLClientInfoException();
-    ctor public SQLClientInfoException(java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
-    ctor public SQLClientInfoException(java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
-    ctor public SQLClientInfoException(java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
-    ctor public SQLClientInfoException(java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
-    ctor public SQLClientInfoException(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
-    ctor public SQLClientInfoException(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
-    ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>);
-    ctor public SQLClientInfoException(java.lang.String, java.lang.String, int, java.util.Map<java.lang.String, java.sql.ClientInfoStatus>, java.lang.Throwable);
-    method public java.util.Map<java.lang.String, java.sql.ClientInfoStatus> getFailedProperties();
+    ctor public SQLClientInfoException(java.util.Map<java.lang.String,java.sql.ClientInfoStatus>);
+    ctor public SQLClientInfoException(java.util.Map<java.lang.String,java.sql.ClientInfoStatus>, Throwable);
+    ctor public SQLClientInfoException(String, java.util.Map<java.lang.String,java.sql.ClientInfoStatus>);
+    ctor public SQLClientInfoException(String, java.util.Map<java.lang.String,java.sql.ClientInfoStatus>, Throwable);
+    ctor public SQLClientInfoException(String, String, java.util.Map<java.lang.String,java.sql.ClientInfoStatus>);
+    ctor public SQLClientInfoException(String, String, java.util.Map<java.lang.String,java.sql.ClientInfoStatus>, Throwable);
+    ctor public SQLClientInfoException(String, String, int, java.util.Map<java.lang.String,java.sql.ClientInfoStatus>);
+    ctor public SQLClientInfoException(String, String, int, java.util.Map<java.lang.String,java.sql.ClientInfoStatus>, Throwable);
+    method public java.util.Map<java.lang.String,java.sql.ClientInfoStatus> getFailedProperties();
   }
 
-  public abstract interface SQLData {
-    method public abstract java.lang.String getSQLTypeName() throws java.sql.SQLException;
-    method public abstract void readSQL(java.sql.SQLInput, java.lang.String) throws java.sql.SQLException;
-    method public abstract void writeSQL(java.sql.SQLOutput) throws java.sql.SQLException;
+  public interface SQLData {
+    method public String getSQLTypeName() throws java.sql.SQLException;
+    method public void readSQL(java.sql.SQLInput, String) throws java.sql.SQLException;
+    method public void writeSQL(java.sql.SQLOutput) throws java.sql.SQLException;
   }
 
   public class SQLDataException extends java.sql.SQLNonTransientException {
     ctor public SQLDataException();
-    ctor public SQLDataException(java.lang.String);
-    ctor public SQLDataException(java.lang.String, java.lang.String);
-    ctor public SQLDataException(java.lang.String, java.lang.String, int);
-    ctor public SQLDataException(java.lang.Throwable);
-    ctor public SQLDataException(java.lang.String, java.lang.Throwable);
-    ctor public SQLDataException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLDataException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLDataException(String);
+    ctor public SQLDataException(String, String);
+    ctor public SQLDataException(String, String, int);
+    ctor public SQLDataException(Throwable);
+    ctor public SQLDataException(String, Throwable);
+    ctor public SQLDataException(String, String, Throwable);
+    ctor public SQLDataException(String, String, int, Throwable);
   }
 
-  public class SQLException extends java.lang.Exception implements java.lang.Iterable {
-    ctor public SQLException(java.lang.String, java.lang.String, int);
-    ctor public SQLException(java.lang.String, java.lang.String);
-    ctor public SQLException(java.lang.String);
+  public class SQLException extends java.lang.Exception implements java.lang.Iterable<java.lang.Throwable> {
+    ctor public SQLException(String, String, int);
+    ctor public SQLException(String, String);
+    ctor public SQLException(String);
     ctor public SQLException();
-    ctor public SQLException(java.lang.Throwable);
-    ctor public SQLException(java.lang.String, java.lang.Throwable);
-    ctor public SQLException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLException(Throwable);
+    ctor public SQLException(String, Throwable);
+    ctor public SQLException(String, String, Throwable);
+    ctor public SQLException(String, String, int, Throwable);
     method public int getErrorCode();
     method public java.sql.SQLException getNextException();
-    method public java.lang.String getSQLState();
+    method public String getSQLState();
     method public java.util.Iterator<java.lang.Throwable> iterator();
     method public void setNextException(java.sql.SQLException);
   }
 
   public class SQLFeatureNotSupportedException extends java.sql.SQLNonTransientException {
     ctor public SQLFeatureNotSupportedException();
-    ctor public SQLFeatureNotSupportedException(java.lang.String);
-    ctor public SQLFeatureNotSupportedException(java.lang.String, java.lang.String);
-    ctor public SQLFeatureNotSupportedException(java.lang.String, java.lang.String, int);
-    ctor public SQLFeatureNotSupportedException(java.lang.Throwable);
-    ctor public SQLFeatureNotSupportedException(java.lang.String, java.lang.Throwable);
-    ctor public SQLFeatureNotSupportedException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLFeatureNotSupportedException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLFeatureNotSupportedException(String);
+    ctor public SQLFeatureNotSupportedException(String, String);
+    ctor public SQLFeatureNotSupportedException(String, String, int);
+    ctor public SQLFeatureNotSupportedException(Throwable);
+    ctor public SQLFeatureNotSupportedException(String, Throwable);
+    ctor public SQLFeatureNotSupportedException(String, String, Throwable);
+    ctor public SQLFeatureNotSupportedException(String, String, int, Throwable);
   }
 
-  public abstract interface SQLInput {
-    method public abstract java.sql.Array readArray() throws java.sql.SQLException;
-    method public abstract java.io.InputStream readAsciiStream() throws java.sql.SQLException;
-    method public abstract java.math.BigDecimal readBigDecimal() throws java.sql.SQLException;
-    method public abstract java.io.InputStream readBinaryStream() throws java.sql.SQLException;
-    method public abstract java.sql.Blob readBlob() throws java.sql.SQLException;
-    method public abstract boolean readBoolean() throws java.sql.SQLException;
-    method public abstract byte readByte() throws java.sql.SQLException;
-    method public abstract byte[] readBytes() throws java.sql.SQLException;
-    method public abstract java.io.Reader readCharacterStream() throws java.sql.SQLException;
-    method public abstract java.sql.Clob readClob() throws java.sql.SQLException;
-    method public abstract java.sql.Date readDate() throws java.sql.SQLException;
-    method public abstract double readDouble() throws java.sql.SQLException;
-    method public abstract float readFloat() throws java.sql.SQLException;
-    method public abstract int readInt() throws java.sql.SQLException;
-    method public abstract long readLong() throws java.sql.SQLException;
-    method public abstract java.sql.NClob readNClob() throws java.sql.SQLException;
-    method public abstract java.lang.String readNString() throws java.sql.SQLException;
-    method public abstract java.lang.Object readObject() throws java.sql.SQLException;
-    method public abstract java.sql.Ref readRef() throws java.sql.SQLException;
-    method public abstract java.sql.RowId readRowId() throws java.sql.SQLException;
-    method public abstract java.sql.SQLXML readSQLXML() throws java.sql.SQLException;
-    method public abstract short readShort() throws java.sql.SQLException;
-    method public abstract java.lang.String readString() throws java.sql.SQLException;
-    method public abstract java.sql.Time readTime() throws java.sql.SQLException;
-    method public abstract java.sql.Timestamp readTimestamp() throws java.sql.SQLException;
-    method public abstract java.net.URL readURL() throws java.sql.SQLException;
-    method public abstract boolean wasNull() throws java.sql.SQLException;
+  public interface SQLInput {
+    method public java.sql.Array readArray() throws java.sql.SQLException;
+    method public java.io.InputStream readAsciiStream() throws java.sql.SQLException;
+    method public java.math.BigDecimal readBigDecimal() throws java.sql.SQLException;
+    method public java.io.InputStream readBinaryStream() throws java.sql.SQLException;
+    method public java.sql.Blob readBlob() throws java.sql.SQLException;
+    method public boolean readBoolean() throws java.sql.SQLException;
+    method public byte readByte() throws java.sql.SQLException;
+    method public byte[] readBytes() throws java.sql.SQLException;
+    method public java.io.Reader readCharacterStream() throws java.sql.SQLException;
+    method public java.sql.Clob readClob() throws java.sql.SQLException;
+    method public java.sql.Date readDate() throws java.sql.SQLException;
+    method public double readDouble() throws java.sql.SQLException;
+    method public float readFloat() throws java.sql.SQLException;
+    method public int readInt() throws java.sql.SQLException;
+    method public long readLong() throws java.sql.SQLException;
+    method public java.sql.NClob readNClob() throws java.sql.SQLException;
+    method public String readNString() throws java.sql.SQLException;
+    method public Object readObject() throws java.sql.SQLException;
+    method public java.sql.Ref readRef() throws java.sql.SQLException;
+    method public java.sql.RowId readRowId() throws java.sql.SQLException;
+    method public java.sql.SQLXML readSQLXML() throws java.sql.SQLException;
+    method public short readShort() throws java.sql.SQLException;
+    method public String readString() throws java.sql.SQLException;
+    method public java.sql.Time readTime() throws java.sql.SQLException;
+    method public java.sql.Timestamp readTimestamp() throws java.sql.SQLException;
+    method public java.net.URL readURL() throws java.sql.SQLException;
+    method public boolean wasNull() throws java.sql.SQLException;
   }
 
   public class SQLIntegrityConstraintViolationException extends java.sql.SQLNonTransientException {
     ctor public SQLIntegrityConstraintViolationException();
-    ctor public SQLIntegrityConstraintViolationException(java.lang.String);
-    ctor public SQLIntegrityConstraintViolationException(java.lang.String, java.lang.String);
-    ctor public SQLIntegrityConstraintViolationException(java.lang.String, java.lang.String, int);
-    ctor public SQLIntegrityConstraintViolationException(java.lang.Throwable);
-    ctor public SQLIntegrityConstraintViolationException(java.lang.String, java.lang.Throwable);
-    ctor public SQLIntegrityConstraintViolationException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLIntegrityConstraintViolationException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLIntegrityConstraintViolationException(String);
+    ctor public SQLIntegrityConstraintViolationException(String, String);
+    ctor public SQLIntegrityConstraintViolationException(String, String, int);
+    ctor public SQLIntegrityConstraintViolationException(Throwable);
+    ctor public SQLIntegrityConstraintViolationException(String, Throwable);
+    ctor public SQLIntegrityConstraintViolationException(String, String, Throwable);
+    ctor public SQLIntegrityConstraintViolationException(String, String, int, Throwable);
   }
 
   public class SQLInvalidAuthorizationSpecException extends java.sql.SQLNonTransientException {
     ctor public SQLInvalidAuthorizationSpecException();
-    ctor public SQLInvalidAuthorizationSpecException(java.lang.String);
-    ctor public SQLInvalidAuthorizationSpecException(java.lang.String, java.lang.String);
-    ctor public SQLInvalidAuthorizationSpecException(java.lang.String, java.lang.String, int);
-    ctor public SQLInvalidAuthorizationSpecException(java.lang.Throwable);
-    ctor public SQLInvalidAuthorizationSpecException(java.lang.String, java.lang.Throwable);
-    ctor public SQLInvalidAuthorizationSpecException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLInvalidAuthorizationSpecException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLInvalidAuthorizationSpecException(String);
+    ctor public SQLInvalidAuthorizationSpecException(String, String);
+    ctor public SQLInvalidAuthorizationSpecException(String, String, int);
+    ctor public SQLInvalidAuthorizationSpecException(Throwable);
+    ctor public SQLInvalidAuthorizationSpecException(String, Throwable);
+    ctor public SQLInvalidAuthorizationSpecException(String, String, Throwable);
+    ctor public SQLInvalidAuthorizationSpecException(String, String, int, Throwable);
   }
 
   public class SQLNonTransientConnectionException extends java.sql.SQLNonTransientException {
     ctor public SQLNonTransientConnectionException();
-    ctor public SQLNonTransientConnectionException(java.lang.String);
-    ctor public SQLNonTransientConnectionException(java.lang.String, java.lang.String);
-    ctor public SQLNonTransientConnectionException(java.lang.String, java.lang.String, int);
-    ctor public SQLNonTransientConnectionException(java.lang.Throwable);
-    ctor public SQLNonTransientConnectionException(java.lang.String, java.lang.Throwable);
-    ctor public SQLNonTransientConnectionException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLNonTransientConnectionException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLNonTransientConnectionException(String);
+    ctor public SQLNonTransientConnectionException(String, String);
+    ctor public SQLNonTransientConnectionException(String, String, int);
+    ctor public SQLNonTransientConnectionException(Throwable);
+    ctor public SQLNonTransientConnectionException(String, Throwable);
+    ctor public SQLNonTransientConnectionException(String, String, Throwable);
+    ctor public SQLNonTransientConnectionException(String, String, int, Throwable);
   }
 
   public class SQLNonTransientException extends java.sql.SQLException {
     ctor public SQLNonTransientException();
-    ctor public SQLNonTransientException(java.lang.String);
-    ctor public SQLNonTransientException(java.lang.String, java.lang.String);
-    ctor public SQLNonTransientException(java.lang.String, java.lang.String, int);
-    ctor public SQLNonTransientException(java.lang.Throwable);
-    ctor public SQLNonTransientException(java.lang.String, java.lang.Throwable);
-    ctor public SQLNonTransientException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLNonTransientException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLNonTransientException(String);
+    ctor public SQLNonTransientException(String, String);
+    ctor public SQLNonTransientException(String, String, int);
+    ctor public SQLNonTransientException(Throwable);
+    ctor public SQLNonTransientException(String, Throwable);
+    ctor public SQLNonTransientException(String, String, Throwable);
+    ctor public SQLNonTransientException(String, String, int, Throwable);
   }
 
-  public abstract interface SQLOutput {
-    method public abstract void writeArray(java.sql.Array) throws java.sql.SQLException;
-    method public abstract void writeAsciiStream(java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void writeBigDecimal(java.math.BigDecimal) throws java.sql.SQLException;
-    method public abstract void writeBinaryStream(java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void writeBlob(java.sql.Blob) throws java.sql.SQLException;
-    method public abstract void writeBoolean(boolean) throws java.sql.SQLException;
-    method public abstract void writeByte(byte) throws java.sql.SQLException;
-    method public abstract void writeBytes(byte[]) throws java.sql.SQLException;
-    method public abstract void writeCharacterStream(java.io.Reader) throws java.sql.SQLException;
-    method public abstract void writeClob(java.sql.Clob) throws java.sql.SQLException;
-    method public abstract void writeDate(java.sql.Date) throws java.sql.SQLException;
-    method public abstract void writeDouble(double) throws java.sql.SQLException;
-    method public abstract void writeFloat(float) throws java.sql.SQLException;
-    method public abstract void writeInt(int) throws java.sql.SQLException;
-    method public abstract void writeLong(long) throws java.sql.SQLException;
-    method public abstract void writeNClob(java.sql.NClob) throws java.sql.SQLException;
-    method public abstract void writeNString(java.lang.String) throws java.sql.SQLException;
-    method public abstract void writeObject(java.sql.SQLData) throws java.sql.SQLException;
-    method public abstract void writeRef(java.sql.Ref) throws java.sql.SQLException;
-    method public abstract void writeRowId(java.sql.RowId) throws java.sql.SQLException;
-    method public abstract void writeSQLXML(java.sql.SQLXML) throws java.sql.SQLException;
-    method public abstract void writeShort(short) throws java.sql.SQLException;
-    method public abstract void writeString(java.lang.String) throws java.sql.SQLException;
-    method public abstract void writeStruct(java.sql.Struct) throws java.sql.SQLException;
-    method public abstract void writeTime(java.sql.Time) throws java.sql.SQLException;
-    method public abstract void writeTimestamp(java.sql.Timestamp) throws java.sql.SQLException;
-    method public abstract void writeURL(java.net.URL) throws java.sql.SQLException;
+  public interface SQLOutput {
+    method public void writeArray(java.sql.Array) throws java.sql.SQLException;
+    method public void writeAsciiStream(java.io.InputStream) throws java.sql.SQLException;
+    method public void writeBigDecimal(java.math.BigDecimal) throws java.sql.SQLException;
+    method public void writeBinaryStream(java.io.InputStream) throws java.sql.SQLException;
+    method public void writeBlob(java.sql.Blob) throws java.sql.SQLException;
+    method public void writeBoolean(boolean) throws java.sql.SQLException;
+    method public void writeByte(byte) throws java.sql.SQLException;
+    method public void writeBytes(byte[]) throws java.sql.SQLException;
+    method public void writeCharacterStream(java.io.Reader) throws java.sql.SQLException;
+    method public void writeClob(java.sql.Clob) throws java.sql.SQLException;
+    method public void writeDate(java.sql.Date) throws java.sql.SQLException;
+    method public void writeDouble(double) throws java.sql.SQLException;
+    method public void writeFloat(float) throws java.sql.SQLException;
+    method public void writeInt(int) throws java.sql.SQLException;
+    method public void writeLong(long) throws java.sql.SQLException;
+    method public void writeNClob(java.sql.NClob) throws java.sql.SQLException;
+    method public void writeNString(String) throws java.sql.SQLException;
+    method public void writeObject(java.sql.SQLData) throws java.sql.SQLException;
+    method public void writeRef(java.sql.Ref) throws java.sql.SQLException;
+    method public void writeRowId(java.sql.RowId) throws java.sql.SQLException;
+    method public void writeSQLXML(java.sql.SQLXML) throws java.sql.SQLException;
+    method public void writeShort(short) throws java.sql.SQLException;
+    method public void writeString(String) throws java.sql.SQLException;
+    method public void writeStruct(java.sql.Struct) throws java.sql.SQLException;
+    method public void writeTime(java.sql.Time) throws java.sql.SQLException;
+    method public void writeTimestamp(java.sql.Timestamp) throws java.sql.SQLException;
+    method public void writeURL(java.net.URL) throws java.sql.SQLException;
   }
 
   public final class SQLPermission extends java.security.BasicPermission {
-    ctor public SQLPermission(java.lang.String);
-    ctor public SQLPermission(java.lang.String, java.lang.String);
+    ctor public SQLPermission(String);
+    ctor public SQLPermission(String, String);
   }
 
   public class SQLRecoverableException extends java.sql.SQLException {
     ctor public SQLRecoverableException();
-    ctor public SQLRecoverableException(java.lang.String);
-    ctor public SQLRecoverableException(java.lang.String, java.lang.String);
-    ctor public SQLRecoverableException(java.lang.String, java.lang.String, int);
-    ctor public SQLRecoverableException(java.lang.Throwable);
-    ctor public SQLRecoverableException(java.lang.String, java.lang.Throwable);
-    ctor public SQLRecoverableException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLRecoverableException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLRecoverableException(String);
+    ctor public SQLRecoverableException(String, String);
+    ctor public SQLRecoverableException(String, String, int);
+    ctor public SQLRecoverableException(Throwable);
+    ctor public SQLRecoverableException(String, Throwable);
+    ctor public SQLRecoverableException(String, String, Throwable);
+    ctor public SQLRecoverableException(String, String, int, Throwable);
   }
 
   public class SQLSyntaxErrorException extends java.sql.SQLNonTransientException {
     ctor public SQLSyntaxErrorException();
-    ctor public SQLSyntaxErrorException(java.lang.String);
-    ctor public SQLSyntaxErrorException(java.lang.String, java.lang.String);
-    ctor public SQLSyntaxErrorException(java.lang.String, java.lang.String, int);
-    ctor public SQLSyntaxErrorException(java.lang.Throwable);
-    ctor public SQLSyntaxErrorException(java.lang.String, java.lang.Throwable);
-    ctor public SQLSyntaxErrorException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLSyntaxErrorException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLSyntaxErrorException(String);
+    ctor public SQLSyntaxErrorException(String, String);
+    ctor public SQLSyntaxErrorException(String, String, int);
+    ctor public SQLSyntaxErrorException(Throwable);
+    ctor public SQLSyntaxErrorException(String, Throwable);
+    ctor public SQLSyntaxErrorException(String, String, Throwable);
+    ctor public SQLSyntaxErrorException(String, String, int, Throwable);
   }
 
   public class SQLTimeoutException extends java.sql.SQLTransientException {
     ctor public SQLTimeoutException();
-    ctor public SQLTimeoutException(java.lang.String);
-    ctor public SQLTimeoutException(java.lang.String, java.lang.String);
-    ctor public SQLTimeoutException(java.lang.String, java.lang.String, int);
-    ctor public SQLTimeoutException(java.lang.Throwable);
-    ctor public SQLTimeoutException(java.lang.String, java.lang.Throwable);
-    ctor public SQLTimeoutException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLTimeoutException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLTimeoutException(String);
+    ctor public SQLTimeoutException(String, String);
+    ctor public SQLTimeoutException(String, String, int);
+    ctor public SQLTimeoutException(Throwable);
+    ctor public SQLTimeoutException(String, Throwable);
+    ctor public SQLTimeoutException(String, String, Throwable);
+    ctor public SQLTimeoutException(String, String, int, Throwable);
   }
 
   public class SQLTransactionRollbackException extends java.sql.SQLTransientException {
     ctor public SQLTransactionRollbackException();
-    ctor public SQLTransactionRollbackException(java.lang.String);
-    ctor public SQLTransactionRollbackException(java.lang.String, java.lang.String);
-    ctor public SQLTransactionRollbackException(java.lang.String, java.lang.String, int);
-    ctor public SQLTransactionRollbackException(java.lang.Throwable);
-    ctor public SQLTransactionRollbackException(java.lang.String, java.lang.Throwable);
-    ctor public SQLTransactionRollbackException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLTransactionRollbackException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLTransactionRollbackException(String);
+    ctor public SQLTransactionRollbackException(String, String);
+    ctor public SQLTransactionRollbackException(String, String, int);
+    ctor public SQLTransactionRollbackException(Throwable);
+    ctor public SQLTransactionRollbackException(String, Throwable);
+    ctor public SQLTransactionRollbackException(String, String, Throwable);
+    ctor public SQLTransactionRollbackException(String, String, int, Throwable);
   }
 
   public class SQLTransientConnectionException extends java.sql.SQLTransientException {
     ctor public SQLTransientConnectionException();
-    ctor public SQLTransientConnectionException(java.lang.String);
-    ctor public SQLTransientConnectionException(java.lang.String, java.lang.String);
-    ctor public SQLTransientConnectionException(java.lang.String, java.lang.String, int);
-    ctor public SQLTransientConnectionException(java.lang.Throwable);
-    ctor public SQLTransientConnectionException(java.lang.String, java.lang.Throwable);
-    ctor public SQLTransientConnectionException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLTransientConnectionException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLTransientConnectionException(String);
+    ctor public SQLTransientConnectionException(String, String);
+    ctor public SQLTransientConnectionException(String, String, int);
+    ctor public SQLTransientConnectionException(Throwable);
+    ctor public SQLTransientConnectionException(String, Throwable);
+    ctor public SQLTransientConnectionException(String, String, Throwable);
+    ctor public SQLTransientConnectionException(String, String, int, Throwable);
   }
 
   public class SQLTransientException extends java.sql.SQLException {
     ctor public SQLTransientException();
-    ctor public SQLTransientException(java.lang.String);
-    ctor public SQLTransientException(java.lang.String, java.lang.String);
-    ctor public SQLTransientException(java.lang.String, java.lang.String, int);
-    ctor public SQLTransientException(java.lang.Throwable);
-    ctor public SQLTransientException(java.lang.String, java.lang.Throwable);
-    ctor public SQLTransientException(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLTransientException(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLTransientException(String);
+    ctor public SQLTransientException(String, String);
+    ctor public SQLTransientException(String, String, int);
+    ctor public SQLTransientException(Throwable);
+    ctor public SQLTransientException(String, Throwable);
+    ctor public SQLTransientException(String, String, Throwable);
+    ctor public SQLTransientException(String, String, int, Throwable);
   }
 
   public class SQLWarning extends java.sql.SQLException {
-    ctor public SQLWarning(java.lang.String, java.lang.String, int);
-    ctor public SQLWarning(java.lang.String, java.lang.String);
-    ctor public SQLWarning(java.lang.String);
+    ctor public SQLWarning(String, String, int);
+    ctor public SQLWarning(String, String);
+    ctor public SQLWarning(String);
     ctor public SQLWarning();
-    ctor public SQLWarning(java.lang.Throwable);
-    ctor public SQLWarning(java.lang.String, java.lang.Throwable);
-    ctor public SQLWarning(java.lang.String, java.lang.String, java.lang.Throwable);
-    ctor public SQLWarning(java.lang.String, java.lang.String, int, java.lang.Throwable);
+    ctor public SQLWarning(Throwable);
+    ctor public SQLWarning(String, Throwable);
+    ctor public SQLWarning(String, String, Throwable);
+    ctor public SQLWarning(String, String, int, Throwable);
     method public java.sql.SQLWarning getNextWarning();
     method public void setNextWarning(java.sql.SQLWarning);
   }
 
-  public abstract interface SQLXML {
-    method public abstract void free() throws java.sql.SQLException;
-    method public abstract java.io.InputStream getBinaryStream() throws java.sql.SQLException;
-    method public abstract java.io.Reader getCharacterStream() throws java.sql.SQLException;
-    method public abstract <T extends javax.xml.transform.Source> T getSource(java.lang.Class<T>) throws java.sql.SQLException;
-    method public abstract java.lang.String getString() throws java.sql.SQLException;
-    method public abstract java.io.OutputStream setBinaryStream() throws java.sql.SQLException;
-    method public abstract java.io.Writer setCharacterStream() throws java.sql.SQLException;
-    method public abstract <T extends javax.xml.transform.Result> T setResult(java.lang.Class<T>) throws java.sql.SQLException;
-    method public abstract void setString(java.lang.String) throws java.sql.SQLException;
+  public interface SQLXML {
+    method public void free() throws java.sql.SQLException;
+    method public java.io.InputStream getBinaryStream() throws java.sql.SQLException;
+    method public java.io.Reader getCharacterStream() throws java.sql.SQLException;
+    method public <T extends javax.xml.transform.Source> T getSource(Class<T>) throws java.sql.SQLException;
+    method public String getString() throws java.sql.SQLException;
+    method public java.io.OutputStream setBinaryStream() throws java.sql.SQLException;
+    method public java.io.Writer setCharacterStream() throws java.sql.SQLException;
+    method public <T extends javax.xml.transform.Result> T setResult(Class<T>) throws java.sql.SQLException;
+    method public void setString(String) throws java.sql.SQLException;
   }
 
-  public abstract interface Savepoint {
-    method public abstract int getSavepointId() throws java.sql.SQLException;
-    method public abstract java.lang.String getSavepointName() throws java.sql.SQLException;
+  public interface Savepoint {
+    method public int getSavepointId() throws java.sql.SQLException;
+    method public String getSavepointName() throws java.sql.SQLException;
   }
 
-  public abstract interface Statement implements java.lang.AutoCloseable java.sql.Wrapper {
-    method public abstract void addBatch(java.lang.String) throws java.sql.SQLException;
-    method public abstract void cancel() throws java.sql.SQLException;
-    method public abstract void clearBatch() throws java.sql.SQLException;
-    method public abstract void clearWarnings() throws java.sql.SQLException;
-    method public abstract void close() throws java.sql.SQLException;
-    method public abstract boolean execute(java.lang.String) throws java.sql.SQLException;
-    method public abstract boolean execute(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract boolean execute(java.lang.String, int[]) throws java.sql.SQLException;
-    method public abstract boolean execute(java.lang.String, java.lang.String[]) throws java.sql.SQLException;
-    method public abstract int[] executeBatch() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet executeQuery(java.lang.String) throws java.sql.SQLException;
-    method public abstract int executeUpdate(java.lang.String) throws java.sql.SQLException;
-    method public abstract int executeUpdate(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract int executeUpdate(java.lang.String, int[]) throws java.sql.SQLException;
-    method public abstract int executeUpdate(java.lang.String, java.lang.String[]) throws java.sql.SQLException;
-    method public abstract java.sql.Connection getConnection() throws java.sql.SQLException;
-    method public abstract int getFetchDirection() throws java.sql.SQLException;
-    method public abstract int getFetchSize() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getGeneratedKeys() throws java.sql.SQLException;
-    method public abstract int getMaxFieldSize() throws java.sql.SQLException;
-    method public abstract int getMaxRows() throws java.sql.SQLException;
-    method public abstract boolean getMoreResults() throws java.sql.SQLException;
-    method public abstract boolean getMoreResults(int) throws java.sql.SQLException;
-    method public abstract int getQueryTimeout() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getResultSet() throws java.sql.SQLException;
-    method public abstract int getResultSetConcurrency() throws java.sql.SQLException;
-    method public abstract int getResultSetHoldability() throws java.sql.SQLException;
-    method public abstract int getResultSetType() throws java.sql.SQLException;
-    method public abstract int getUpdateCount() throws java.sql.SQLException;
-    method public abstract java.sql.SQLWarning getWarnings() throws java.sql.SQLException;
-    method public abstract boolean isClosed() throws java.sql.SQLException;
-    method public abstract boolean isPoolable() throws java.sql.SQLException;
-    method public abstract void setCursorName(java.lang.String) throws java.sql.SQLException;
-    method public abstract void setEscapeProcessing(boolean) throws java.sql.SQLException;
-    method public abstract void setFetchDirection(int) throws java.sql.SQLException;
-    method public abstract void setFetchSize(int) throws java.sql.SQLException;
-    method public abstract void setMaxFieldSize(int) throws java.sql.SQLException;
-    method public abstract void setMaxRows(int) throws java.sql.SQLException;
-    method public abstract void setPoolable(boolean) throws java.sql.SQLException;
-    method public abstract void setQueryTimeout(int) throws java.sql.SQLException;
+  public interface Statement extends java.sql.Wrapper java.lang.AutoCloseable {
+    method public void addBatch(String) throws java.sql.SQLException;
+    method public void cancel() throws java.sql.SQLException;
+    method public void clearBatch() throws java.sql.SQLException;
+    method public void clearWarnings() throws java.sql.SQLException;
+    method public void close() throws java.sql.SQLException;
+    method public boolean execute(String) throws java.sql.SQLException;
+    method public boolean execute(String, int) throws java.sql.SQLException;
+    method public boolean execute(String, int[]) throws java.sql.SQLException;
+    method public boolean execute(String, String[]) throws java.sql.SQLException;
+    method public int[] executeBatch() throws java.sql.SQLException;
+    method public java.sql.ResultSet executeQuery(String) throws java.sql.SQLException;
+    method public int executeUpdate(String) throws java.sql.SQLException;
+    method public int executeUpdate(String, int) throws java.sql.SQLException;
+    method public int executeUpdate(String, int[]) throws java.sql.SQLException;
+    method public int executeUpdate(String, String[]) throws java.sql.SQLException;
+    method public java.sql.Connection getConnection() throws java.sql.SQLException;
+    method public int getFetchDirection() throws java.sql.SQLException;
+    method public int getFetchSize() throws java.sql.SQLException;
+    method public java.sql.ResultSet getGeneratedKeys() throws java.sql.SQLException;
+    method public int getMaxFieldSize() throws java.sql.SQLException;
+    method public int getMaxRows() throws java.sql.SQLException;
+    method public boolean getMoreResults() throws java.sql.SQLException;
+    method public boolean getMoreResults(int) throws java.sql.SQLException;
+    method public int getQueryTimeout() throws java.sql.SQLException;
+    method public java.sql.ResultSet getResultSet() throws java.sql.SQLException;
+    method public int getResultSetConcurrency() throws java.sql.SQLException;
+    method public int getResultSetHoldability() throws java.sql.SQLException;
+    method public int getResultSetType() throws java.sql.SQLException;
+    method public int getUpdateCount() throws java.sql.SQLException;
+    method public java.sql.SQLWarning getWarnings() throws java.sql.SQLException;
+    method public boolean isClosed() throws java.sql.SQLException;
+    method public boolean isPoolable() throws java.sql.SQLException;
+    method public void setCursorName(String) throws java.sql.SQLException;
+    method public void setEscapeProcessing(boolean) throws java.sql.SQLException;
+    method public void setFetchDirection(int) throws java.sql.SQLException;
+    method public void setFetchSize(int) throws java.sql.SQLException;
+    method public void setMaxFieldSize(int) throws java.sql.SQLException;
+    method public void setMaxRows(int) throws java.sql.SQLException;
+    method public void setPoolable(boolean) throws java.sql.SQLException;
+    method public void setQueryTimeout(int) throws java.sql.SQLException;
     field public static final int CLOSE_ALL_RESULTS = 3; // 0x3
     field public static final int CLOSE_CURRENT_RESULT = 1; // 0x1
     field public static final int EXECUTE_FAILED = -3; // 0xfffffffd
@@ -66621,20 +66448,20 @@
     field public static final int SUCCESS_NO_INFO = -2; // 0xfffffffe
   }
 
-  public abstract interface Struct {
-    method public abstract java.lang.Object[] getAttributes() throws java.sql.SQLException;
-    method public abstract java.lang.Object[] getAttributes(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract java.lang.String getSQLTypeName() throws java.sql.SQLException;
+  public interface Struct {
+    method public Object[] getAttributes() throws java.sql.SQLException;
+    method public Object[] getAttributes(java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
+    method public String getSQLTypeName() throws java.sql.SQLException;
   }
 
   public class Time extends java.util.Date {
-    ctor public deprecated Time(int, int, int);
+    ctor @Deprecated public Time(int, int, int);
     ctor public Time(long);
-    method public static java.sql.Time valueOf(java.lang.String);
+    method public static java.sql.Time valueOf(String);
   }
 
   public class Timestamp extends java.util.Date {
-    ctor public deprecated Timestamp(int, int, int, int, int, int, int);
+    ctor @Deprecated public Timestamp(int, int, int, int, int, int, int);
     ctor public Timestamp(long);
     method public boolean after(java.sql.Timestamp);
     method public boolean before(java.sql.Timestamp);
@@ -66642,7 +66469,7 @@
     method public boolean equals(java.sql.Timestamp);
     method public int getNanos();
     method public void setNanos(int);
-    method public static java.sql.Timestamp valueOf(java.lang.String);
+    method public static java.sql.Timestamp valueOf(String);
   }
 
   public class Types {
@@ -66684,9 +66511,9 @@
     field public static final int VARCHAR = 12; // 0xc
   }
 
-  public abstract interface Wrapper {
-    method public abstract boolean isWrapperFor(java.lang.Class<?>) throws java.sql.SQLException;
-    method public abstract <T> T unwrap(java.lang.Class<T>) throws java.sql.SQLException;
+  public interface Wrapper {
+    method public boolean isWrapperFor(Class<?>) throws java.sql.SQLException;
+    method public <T> T unwrap(Class<T>) throws java.sql.SQLException;
   }
 
 }
@@ -66694,49 +66521,49 @@
 package java.text {
 
   public class Annotation {
-    ctor public Annotation(java.lang.Object);
-    method public java.lang.Object getValue();
+    ctor public Annotation(Object);
+    method public Object getValue();
   }
 
-  public abstract interface AttributedCharacterIterator implements java.text.CharacterIterator {
-    method public abstract java.util.Set<java.text.AttributedCharacterIterator.Attribute> getAllAttributeKeys();
-    method public abstract java.lang.Object getAttribute(java.text.AttributedCharacterIterator.Attribute);
-    method public abstract java.util.Map<java.text.AttributedCharacterIterator.Attribute, java.lang.Object> getAttributes();
-    method public abstract int getRunLimit();
-    method public abstract int getRunLimit(java.text.AttributedCharacterIterator.Attribute);
-    method public abstract int getRunLimit(java.util.Set<? extends java.text.AttributedCharacterIterator.Attribute>);
-    method public abstract int getRunStart();
-    method public abstract int getRunStart(java.text.AttributedCharacterIterator.Attribute);
-    method public abstract int getRunStart(java.util.Set<? extends java.text.AttributedCharacterIterator.Attribute>);
+  public interface AttributedCharacterIterator extends java.text.CharacterIterator {
+    method public java.util.Set<java.text.AttributedCharacterIterator.Attribute> getAllAttributeKeys();
+    method public Object getAttribute(java.text.AttributedCharacterIterator.Attribute);
+    method public java.util.Map<java.text.AttributedCharacterIterator.Attribute,java.lang.Object> getAttributes();
+    method public int getRunLimit();
+    method public int getRunLimit(java.text.AttributedCharacterIterator.Attribute);
+    method public int getRunLimit(java.util.Set<? extends java.text.AttributedCharacterIterator.Attribute>);
+    method public int getRunStart();
+    method public int getRunStart(java.text.AttributedCharacterIterator.Attribute);
+    method public int getRunStart(java.util.Set<? extends java.text.AttributedCharacterIterator.Attribute>);
   }
 
   public static class AttributedCharacterIterator.Attribute implements java.io.Serializable {
-    ctor protected AttributedCharacterIterator.Attribute(java.lang.String);
-    method public final boolean equals(java.lang.Object);
-    method protected java.lang.String getName();
+    ctor protected AttributedCharacterIterator.Attribute(String);
+    method public final boolean equals(Object);
+    method protected String getName();
     method public final int hashCode();
-    method protected java.lang.Object readResolve() throws java.io.InvalidObjectException;
+    method protected Object readResolve() throws java.io.InvalidObjectException;
     field public static final java.text.AttributedCharacterIterator.Attribute INPUT_METHOD_SEGMENT;
     field public static final java.text.AttributedCharacterIterator.Attribute LANGUAGE;
     field public static final java.text.AttributedCharacterIterator.Attribute READING;
   }
 
   public class AttributedString {
-    ctor public AttributedString(java.lang.String);
-    ctor public AttributedString(java.lang.String, java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>);
+    ctor public AttributedString(String);
+    ctor public AttributedString(String, java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute,?>);
     ctor public AttributedString(java.text.AttributedCharacterIterator);
     ctor public AttributedString(java.text.AttributedCharacterIterator, int, int);
     ctor public AttributedString(java.text.AttributedCharacterIterator, int, int, java.text.AttributedCharacterIterator.Attribute[]);
-    method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, java.lang.Object);
-    method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, java.lang.Object, int, int);
-    method public void addAttributes(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>, int, int);
+    method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, Object);
+    method public void addAttribute(java.text.AttributedCharacterIterator.Attribute, Object, int, int);
+    method public void addAttributes(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute,?>, int, int);
     method public java.text.AttributedCharacterIterator getIterator();
     method public java.text.AttributedCharacterIterator getIterator(java.text.AttributedCharacterIterator.Attribute[]);
     method public java.text.AttributedCharacterIterator getIterator(java.text.AttributedCharacterIterator.Attribute[], int, int);
   }
 
   public final class Bidi {
-    ctor public Bidi(java.lang.String, int);
+    ctor public Bidi(String, int);
     ctor public Bidi(java.text.AttributedCharacterIterator);
     ctor public Bidi(char[], int, byte[], int, int, int);
     method public boolean baseIsLeftToRight();
@@ -66751,7 +66578,7 @@
     method public boolean isLeftToRight();
     method public boolean isMixed();
     method public boolean isRightToLeft();
-    method public static void reorderVisually(byte[], int, java.lang.Object[], int, int);
+    method public static void reorderVisually(byte[], int, Object[], int, int);
     method public static boolean requiresBidi(char[], int, int);
     field public static final int DIRECTION_DEFAULT_LEFT_TO_RIGHT = -2; // 0xfffffffe
     field public static final int DIRECTION_DEFAULT_RIGHT_TO_LEFT = -1; // 0xffffffff
@@ -66761,11 +66588,11 @@
 
   public abstract class BreakIterator implements java.lang.Cloneable {
     ctor protected BreakIterator();
-    method public java.lang.Object clone();
+    method public Object clone();
     method public abstract int current();
     method public abstract int first();
     method public abstract int following(int);
-    method public static synchronized java.util.Locale[] getAvailableLocales();
+    method public static java.util.Locale[] getAvailableLocales();
     method public static java.text.BreakIterator getCharacterInstance();
     method public static java.text.BreakIterator getCharacterInstance(java.util.Locale);
     method public static java.text.BreakIterator getLineInstance();
@@ -66781,39 +66608,39 @@
     method public abstract int next();
     method public int preceding(int);
     method public abstract int previous();
-    method public void setText(java.lang.String);
+    method public void setText(String);
     method public abstract void setText(java.text.CharacterIterator);
     field public static final int DONE = -1; // 0xffffffff
   }
 
-  public abstract interface CharacterIterator implements java.lang.Cloneable {
-    method public abstract java.lang.Object clone();
-    method public abstract char current();
-    method public abstract char first();
-    method public abstract int getBeginIndex();
-    method public abstract int getEndIndex();
-    method public abstract int getIndex();
-    method public abstract char last();
-    method public abstract char next();
-    method public abstract char previous();
-    method public abstract char setIndex(int);
+  public interface CharacterIterator extends java.lang.Cloneable {
+    method public Object clone();
+    method public char current();
+    method public char first();
+    method public int getBeginIndex();
+    method public int getEndIndex();
+    method public int getIndex();
+    method public char last();
+    method public char next();
+    method public char previous();
+    method public char setIndex(int);
     field public static final char DONE = 65535; // 0xffff '\uffff'
   }
 
   public class ChoiceFormat extends java.text.NumberFormat {
-    ctor public ChoiceFormat(java.lang.String);
-    ctor public ChoiceFormat(double[], java.lang.String[]);
-    method public void applyPattern(java.lang.String);
-    method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.Object[] getFormats();
+    ctor public ChoiceFormat(String);
+    ctor public ChoiceFormat(double[], String[]);
+    method public void applyPattern(String);
+    method public StringBuffer format(long, StringBuffer, java.text.FieldPosition);
+    method public StringBuffer format(double, StringBuffer, java.text.FieldPosition);
+    method public Object[] getFormats();
     method public double[] getLimits();
     method public static final double nextDouble(double);
     method public static double nextDouble(double, boolean);
-    method public java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+    method public Number parse(String, java.text.ParsePosition);
     method public static final double previousDouble(double);
-    method public void setChoices(double[], java.lang.String[]);
-    method public java.lang.String toPattern();
+    method public void setChoices(double[], String[]);
+    method public String toPattern();
   }
 
   public final class CollationElementIterator {
@@ -66825,34 +66652,34 @@
     method public void reset();
     method public static short secondaryOrder(int);
     method public void setOffset(int);
-    method public void setText(java.lang.String);
+    method public void setText(String);
     method public void setText(java.text.CharacterIterator);
     method public static short tertiaryOrder(int);
     field public static final int NULLORDER = -1; // 0xffffffff
   }
 
-  public abstract class CollationKey implements java.lang.Comparable {
-    ctor protected CollationKey(java.lang.String);
+  public abstract class CollationKey implements java.lang.Comparable<java.text.CollationKey> {
+    ctor protected CollationKey(String);
     method public abstract int compareTo(java.text.CollationKey);
-    method public java.lang.String getSourceString();
+    method public String getSourceString();
     method public abstract byte[] toByteArray();
   }
 
-  public abstract class Collator implements java.lang.Cloneable java.util.Comparator {
+  public abstract class Collator implements java.lang.Cloneable java.util.Comparator<java.lang.Object> {
     ctor protected Collator();
-    method public java.lang.Object clone();
-    method public abstract int compare(java.lang.String, java.lang.String);
-    method public int compare(java.lang.Object, java.lang.Object);
-    method public boolean equals(java.lang.String, java.lang.String);
-    method public static synchronized java.util.Locale[] getAvailableLocales();
-    method public abstract java.text.CollationKey getCollationKey(java.lang.String);
-    method public synchronized int getDecomposition();
-    method public static synchronized java.text.Collator getInstance();
-    method public static synchronized java.text.Collator getInstance(java.util.Locale);
-    method public synchronized int getStrength();
+    method public Object clone();
+    method public abstract int compare(String, String);
+    method public int compare(Object, Object);
+    method public boolean equals(String, String);
+    method public static java.util.Locale[] getAvailableLocales();
+    method public abstract java.text.CollationKey getCollationKey(String);
+    method public int getDecomposition();
+    method public static java.text.Collator getInstance();
+    method public static java.text.Collator getInstance(java.util.Locale);
+    method public int getStrength();
     method public abstract int hashCode();
-    method public synchronized void setDecomposition(int);
-    method public synchronized void setStrength(int);
+    method public void setDecomposition(int);
+    method public void setStrength(int);
     field public static final int CANONICAL_DECOMPOSITION = 1; // 0x1
     field public static final int FULL_DECOMPOSITION = 2; // 0x2
     field public static final int IDENTICAL = 3; // 0x3
@@ -66864,31 +66691,31 @@
 
   public abstract class DateFormat extends java.text.Format {
     ctor protected DateFormat();
-    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public abstract java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.String format(java.util.Date);
+    method @NonNull public final StringBuffer format(@NonNull Object, @NonNull StringBuffer, @NonNull java.text.FieldPosition);
+    method @NonNull public abstract StringBuffer format(@NonNull java.util.Date, @NonNull StringBuffer, @NonNull java.text.FieldPosition);
+    method @NonNull public final String format(@NonNull java.util.Date);
     method public static java.util.Locale[] getAvailableLocales();
-    method public java.util.Calendar getCalendar();
-    method public static final java.text.DateFormat getDateInstance();
-    method public static final java.text.DateFormat getDateInstance(int);
-    method public static final java.text.DateFormat getDateInstance(int, java.util.Locale);
-    method public static final java.text.DateFormat getDateTimeInstance();
-    method public static final java.text.DateFormat getDateTimeInstance(int, int);
-    method public static final java.text.DateFormat getDateTimeInstance(int, int, java.util.Locale);
-    method public static final java.text.DateFormat getInstance();
-    method public java.text.NumberFormat getNumberFormat();
-    method public static final java.text.DateFormat getTimeInstance();
-    method public static final java.text.DateFormat getTimeInstance(int);
-    method public static final java.text.DateFormat getTimeInstance(int, java.util.Locale);
-    method public java.util.TimeZone getTimeZone();
+    method @NonNull public java.util.Calendar getCalendar();
+    method @NonNull public static final java.text.DateFormat getDateInstance();
+    method @NonNull public static final java.text.DateFormat getDateInstance(int);
+    method @NonNull public static final java.text.DateFormat getDateInstance(int, @NonNull java.util.Locale);
+    method @NonNull public static final java.text.DateFormat getDateTimeInstance();
+    method @NonNull public static final java.text.DateFormat getDateTimeInstance(int, int);
+    method @NonNull public static final java.text.DateFormat getDateTimeInstance(int, int, @NonNull java.util.Locale);
+    method @NonNull public static final java.text.DateFormat getInstance();
+    method @NonNull public java.text.NumberFormat getNumberFormat();
+    method @NonNull public static final java.text.DateFormat getTimeInstance();
+    method @NonNull public static final java.text.DateFormat getTimeInstance(int);
+    method @NonNull public static final java.text.DateFormat getTimeInstance(int, @NonNull java.util.Locale);
+    method @NonNull public java.util.TimeZone getTimeZone();
     method public boolean isLenient();
-    method public java.util.Date parse(java.lang.String) throws java.text.ParseException;
-    method public abstract java.util.Date parse(java.lang.String, java.text.ParsePosition);
-    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
-    method public void setCalendar(java.util.Calendar);
+    method @Nullable public java.util.Date parse(@NonNull String) throws java.text.ParseException;
+    method @Nullable public abstract java.util.Date parse(@NonNull String, @NonNull java.text.ParsePosition);
+    method @Nullable public Object parseObject(@NonNull String, @NonNull java.text.ParsePosition);
+    method public void setCalendar(@NonNull java.util.Calendar);
     method public void setLenient(boolean);
-    method public void setNumberFormat(java.text.NumberFormat);
-    method public void setTimeZone(java.util.TimeZone);
+    method public void setNumberFormat(@NonNull java.text.NumberFormat);
+    method public void setTimeZone(@NonNull java.util.TimeZone);
     field public static final int AM_PM_FIELD = 14; // 0xe
     field public static final int DATE_FIELD = 3; // 0x3
     field public static final int DAY_OF_WEEK_FIELD = 9; // 0x9
@@ -66912,124 +66739,124 @@
     field public static final int WEEK_OF_MONTH_FIELD = 13; // 0xd
     field public static final int WEEK_OF_YEAR_FIELD = 12; // 0xc
     field public static final int YEAR_FIELD = 1; // 0x1
-    field protected java.util.Calendar calendar;
-    field protected java.text.NumberFormat numberFormat;
+    field @NonNull protected java.util.Calendar calendar;
+    field @NonNull protected java.text.NumberFormat numberFormat;
   }
 
   public static class DateFormat.Field extends java.text.Format.Field {
-    ctor protected DateFormat.Field(java.lang.String, int);
+    ctor protected DateFormat.Field(@NonNull String, int);
     method public int getCalendarField();
-    method public static java.text.DateFormat.Field ofCalendarField(int);
-    field public static final java.text.DateFormat.Field AM_PM;
-    field public static final java.text.DateFormat.Field DAY_OF_MONTH;
-    field public static final java.text.DateFormat.Field DAY_OF_WEEK;
-    field public static final java.text.DateFormat.Field DAY_OF_WEEK_IN_MONTH;
-    field public static final java.text.DateFormat.Field DAY_OF_YEAR;
-    field public static final java.text.DateFormat.Field ERA;
-    field public static final java.text.DateFormat.Field HOUR0;
-    field public static final java.text.DateFormat.Field HOUR1;
-    field public static final java.text.DateFormat.Field HOUR_OF_DAY0;
-    field public static final java.text.DateFormat.Field HOUR_OF_DAY1;
-    field public static final java.text.DateFormat.Field MILLISECOND;
-    field public static final java.text.DateFormat.Field MINUTE;
-    field public static final java.text.DateFormat.Field MONTH;
-    field public static final java.text.DateFormat.Field SECOND;
-    field public static final java.text.DateFormat.Field TIME_ZONE;
-    field public static final java.text.DateFormat.Field WEEK_OF_MONTH;
-    field public static final java.text.DateFormat.Field WEEK_OF_YEAR;
-    field public static final java.text.DateFormat.Field YEAR;
+    method @NonNull public static java.text.DateFormat.Field ofCalendarField(int);
+    field @NonNull public static final java.text.DateFormat.Field AM_PM;
+    field @NonNull public static final java.text.DateFormat.Field DAY_OF_MONTH;
+    field @NonNull public static final java.text.DateFormat.Field DAY_OF_WEEK;
+    field @NonNull public static final java.text.DateFormat.Field DAY_OF_WEEK_IN_MONTH;
+    field @NonNull public static final java.text.DateFormat.Field DAY_OF_YEAR;
+    field @NonNull public static final java.text.DateFormat.Field ERA;
+    field @NonNull public static final java.text.DateFormat.Field HOUR0;
+    field @NonNull public static final java.text.DateFormat.Field HOUR1;
+    field @NonNull public static final java.text.DateFormat.Field HOUR_OF_DAY0;
+    field @NonNull public static final java.text.DateFormat.Field HOUR_OF_DAY1;
+    field @NonNull public static final java.text.DateFormat.Field MILLISECOND;
+    field @NonNull public static final java.text.DateFormat.Field MINUTE;
+    field @NonNull public static final java.text.DateFormat.Field MONTH;
+    field @NonNull public static final java.text.DateFormat.Field SECOND;
+    field @NonNull public static final java.text.DateFormat.Field TIME_ZONE;
+    field @NonNull public static final java.text.DateFormat.Field WEEK_OF_MONTH;
+    field @NonNull public static final java.text.DateFormat.Field WEEK_OF_YEAR;
+    field @NonNull public static final java.text.DateFormat.Field YEAR;
   }
 
   public class DateFormatSymbols implements java.lang.Cloneable java.io.Serializable {
     ctor public DateFormatSymbols();
     ctor public DateFormatSymbols(java.util.Locale);
-    method public java.lang.Object clone();
-    method public java.lang.String[] getAmPmStrings();
+    method public Object clone();
+    method public String[] getAmPmStrings();
     method public static java.util.Locale[] getAvailableLocales();
-    method public java.lang.String[] getEras();
+    method public String[] getEras();
     method public static final java.text.DateFormatSymbols getInstance();
     method public static final java.text.DateFormatSymbols getInstance(java.util.Locale);
-    method public java.lang.String getLocalPatternChars();
-    method public java.lang.String[] getMonths();
-    method public java.lang.String[] getShortMonths();
-    method public java.lang.String[] getShortWeekdays();
-    method public java.lang.String[] getWeekdays();
-    method public java.lang.String[][] getZoneStrings();
-    method public void setAmPmStrings(java.lang.String[]);
-    method public void setEras(java.lang.String[]);
-    method public void setLocalPatternChars(java.lang.String);
-    method public void setMonths(java.lang.String[]);
-    method public void setShortMonths(java.lang.String[]);
-    method public void setShortWeekdays(java.lang.String[]);
-    method public void setWeekdays(java.lang.String[]);
-    method public void setZoneStrings(java.lang.String[][]);
+    method public String getLocalPatternChars();
+    method public String[] getMonths();
+    method public String[] getShortMonths();
+    method public String[] getShortWeekdays();
+    method public String[] getWeekdays();
+    method public String[][] getZoneStrings();
+    method public void setAmPmStrings(String[]);
+    method public void setEras(String[]);
+    method public void setLocalPatternChars(String);
+    method public void setMonths(String[]);
+    method public void setShortMonths(String[]);
+    method public void setShortWeekdays(String[]);
+    method public void setWeekdays(String[]);
+    method public void setZoneStrings(String[][]);
   }
 
   public class DecimalFormat extends java.text.NumberFormat {
     ctor public DecimalFormat();
-    ctor public DecimalFormat(java.lang.String);
-    ctor public DecimalFormat(java.lang.String, java.text.DecimalFormatSymbols);
-    method public void applyLocalizedPattern(java.lang.String);
-    method public void applyPattern(java.lang.String);
-    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
+    ctor public DecimalFormat(String);
+    ctor public DecimalFormat(String, java.text.DecimalFormatSymbols);
+    method public void applyLocalizedPattern(String);
+    method public void applyPattern(String);
+    method public final StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
+    method public StringBuffer format(double, StringBuffer, java.text.FieldPosition);
+    method public StringBuffer format(long, StringBuffer, java.text.FieldPosition);
     method public java.text.DecimalFormatSymbols getDecimalFormatSymbols();
     method public int getGroupingSize();
     method public int getMultiplier();
-    method public java.lang.String getNegativePrefix();
-    method public java.lang.String getNegativeSuffix();
-    method public java.lang.String getPositivePrefix();
-    method public java.lang.String getPositiveSuffix();
+    method public String getNegativePrefix();
+    method public String getNegativeSuffix();
+    method public String getPositivePrefix();
+    method public String getPositiveSuffix();
     method public boolean isDecimalSeparatorAlwaysShown();
     method public boolean isParseBigDecimal();
-    method public java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+    method public Number parse(String, java.text.ParsePosition);
     method public void setDecimalFormatSymbols(java.text.DecimalFormatSymbols);
     method public void setDecimalSeparatorAlwaysShown(boolean);
     method public void setGroupingSize(int);
     method public void setMultiplier(int);
-    method public void setNegativePrefix(java.lang.String);
-    method public void setNegativeSuffix(java.lang.String);
+    method public void setNegativePrefix(String);
+    method public void setNegativeSuffix(String);
     method public void setParseBigDecimal(boolean);
-    method public void setPositivePrefix(java.lang.String);
-    method public void setPositiveSuffix(java.lang.String);
-    method public java.lang.String toLocalizedPattern();
-    method public java.lang.String toPattern();
+    method public void setPositivePrefix(String);
+    method public void setPositiveSuffix(String);
+    method public String toLocalizedPattern();
+    method public String toPattern();
   }
 
   public class DecimalFormatSymbols implements java.lang.Cloneable java.io.Serializable {
     ctor public DecimalFormatSymbols();
     ctor public DecimalFormatSymbols(java.util.Locale);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public static java.util.Locale[] getAvailableLocales();
     method public java.util.Currency getCurrency();
-    method public java.lang.String getCurrencySymbol();
+    method public String getCurrencySymbol();
     method public char getDecimalSeparator();
     method public char getDigit();
-    method public java.lang.String getExponentSeparator();
+    method public String getExponentSeparator();
     method public char getGroupingSeparator();
-    method public java.lang.String getInfinity();
+    method public String getInfinity();
     method public static final java.text.DecimalFormatSymbols getInstance();
     method public static final java.text.DecimalFormatSymbols getInstance(java.util.Locale);
-    method public java.lang.String getInternationalCurrencySymbol();
+    method public String getInternationalCurrencySymbol();
     method public char getMinusSign();
     method public char getMonetaryDecimalSeparator();
-    method public java.lang.String getNaN();
+    method public String getNaN();
     method public char getPatternSeparator();
     method public char getPerMill();
     method public char getPercent();
     method public char getZeroDigit();
     method public void setCurrency(java.util.Currency);
-    method public void setCurrencySymbol(java.lang.String);
+    method public void setCurrencySymbol(String);
     method public void setDecimalSeparator(char);
     method public void setDigit(char);
-    method public void setExponentSeparator(java.lang.String);
+    method public void setExponentSeparator(String);
     method public void setGroupingSeparator(char);
-    method public void setInfinity(java.lang.String);
-    method public void setInternationalCurrencySymbol(java.lang.String);
+    method public void setInfinity(String);
+    method public void setInternationalCurrencySymbol(String);
     method public void setMinusSign(char);
     method public void setMonetaryDecimalSeparator(char);
-    method public void setNaN(java.lang.String);
+    method public void setNaN(String);
     method public void setPatternSeparator(char);
     method public void setPerMill(char);
     method public void setPercent(char);
@@ -67050,52 +66877,50 @@
 
   public abstract class Format implements java.lang.Cloneable java.io.Serializable {
     ctor protected Format();
-    method public java.lang.Object clone();
-    method public final java.lang.String format(java.lang.Object);
-    method public abstract java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public java.text.AttributedCharacterIterator formatToCharacterIterator(java.lang.Object);
-    method public abstract java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
-    method public java.lang.Object parseObject(java.lang.String) throws java.text.ParseException;
+    method public Object clone();
+    method public final String format(Object);
+    method public abstract StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
+    method public java.text.AttributedCharacterIterator formatToCharacterIterator(Object);
+    method public abstract Object parseObject(String, java.text.ParsePosition);
+    method public Object parseObject(String) throws java.text.ParseException;
   }
 
   public static class Format.Field extends java.text.AttributedCharacterIterator.Attribute {
-    ctor protected Format.Field(java.lang.String);
+    ctor protected Format.Field(String);
   }
 
   public class MessageFormat extends java.text.Format {
-    ctor public MessageFormat(java.lang.String);
-    ctor public MessageFormat(java.lang.String, java.util.Locale);
-    method public void applyPattern(java.lang.String);
-    method public final java.lang.StringBuffer format(java.lang.Object[], java.lang.StringBuffer, java.text.FieldPosition);
-    method public static java.lang.String format(java.lang.String, java.lang.Object...);
-    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    ctor public MessageFormat(String);
+    ctor public MessageFormat(String, java.util.Locale);
+    method public void applyPattern(String);
+    method public final StringBuffer format(Object[], StringBuffer, java.text.FieldPosition);
+    method public static String format(String, java.lang.Object...);
+    method public final StringBuffer format(Object, StringBuffer, java.text.FieldPosition);
     method public java.text.Format[] getFormats();
     method public java.text.Format[] getFormatsByArgumentIndex();
     method public java.util.Locale getLocale();
-    method public java.lang.Object[] parse(java.lang.String, java.text.ParsePosition);
-    method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
-    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public Object[] parse(String, java.text.ParsePosition);
+    method public Object[] parse(String) throws java.text.ParseException;
+    method public Object parseObject(String, java.text.ParsePosition);
     method public void setFormat(int, java.text.Format);
     method public void setFormatByArgumentIndex(int, java.text.Format);
     method public void setFormats(java.text.Format[]);
     method public void setFormatsByArgumentIndex(java.text.Format[]);
     method public void setLocale(java.util.Locale);
-    method public java.lang.String toPattern();
+    method public String toPattern();
   }
 
   public static class MessageFormat.Field extends java.text.Format.Field {
-    ctor protected MessageFormat.Field(java.lang.String);
+    ctor protected MessageFormat.Field(String);
     field public static final java.text.MessageFormat.Field ARGUMENT;
   }
 
   public final class Normalizer {
-    method public static boolean isNormalized(java.lang.CharSequence, java.text.Normalizer.Form);
-    method public static java.lang.String normalize(java.lang.CharSequence, java.text.Normalizer.Form);
+    method public static boolean isNormalized(CharSequence, java.text.Normalizer.Form);
+    method public static String normalize(CharSequence, java.text.Normalizer.Form);
   }
 
-  public static final class Normalizer.Form extends java.lang.Enum {
-    method public static java.text.Normalizer.Form valueOf(java.lang.String);
-    method public static final java.text.Normalizer.Form[] values();
+  public enum Normalizer.Form {
     enum_constant public static final java.text.Normalizer.Form NFC;
     enum_constant public static final java.text.Normalizer.Form NFD;
     enum_constant public static final java.text.Normalizer.Form NFKC;
@@ -67104,62 +66929,62 @@
 
   public abstract class NumberFormat extends java.text.Format {
     ctor protected NumberFormat();
-    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
-    method public final java.lang.String format(double);
-    method public final java.lang.String format(long);
-    method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
-    method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
+    method @NonNull public StringBuffer format(@NonNull Object, @NonNull StringBuffer, @NonNull java.text.FieldPosition);
+    method @NonNull public final String format(double);
+    method @NonNull public final String format(long);
+    method @NonNull public abstract StringBuffer format(double, @NonNull StringBuffer, @NonNull java.text.FieldPosition);
+    method @NonNull public abstract StringBuffer format(long, @NonNull StringBuffer, @NonNull java.text.FieldPosition);
     method public static java.util.Locale[] getAvailableLocales();
-    method public java.util.Currency getCurrency();
-    method public static final java.text.NumberFormat getCurrencyInstance();
-    method public static java.text.NumberFormat getCurrencyInstance(java.util.Locale);
-    method public static final java.text.NumberFormat getInstance();
-    method public static java.text.NumberFormat getInstance(java.util.Locale);
-    method public static final java.text.NumberFormat getIntegerInstance();
-    method public static java.text.NumberFormat getIntegerInstance(java.util.Locale);
+    method @Nullable public java.util.Currency getCurrency();
+    method @NonNull public static final java.text.NumberFormat getCurrencyInstance();
+    method @NonNull public static java.text.NumberFormat getCurrencyInstance(@NonNull java.util.Locale);
+    method @NonNull public static final java.text.NumberFormat getInstance();
+    method @NonNull public static java.text.NumberFormat getInstance(@NonNull java.util.Locale);
+    method @NonNull public static final java.text.NumberFormat getIntegerInstance();
+    method @NonNull public static java.text.NumberFormat getIntegerInstance(@NonNull java.util.Locale);
     method public int getMaximumFractionDigits();
     method public int getMaximumIntegerDigits();
     method public int getMinimumFractionDigits();
     method public int getMinimumIntegerDigits();
-    method public static final java.text.NumberFormat getNumberInstance();
-    method public static java.text.NumberFormat getNumberInstance(java.util.Locale);
-    method public static final java.text.NumberFormat getPercentInstance();
-    method public static java.text.NumberFormat getPercentInstance(java.util.Locale);
-    method public java.math.RoundingMode getRoundingMode();
+    method @NonNull public static final java.text.NumberFormat getNumberInstance();
+    method @NonNull public static java.text.NumberFormat getNumberInstance(@NonNull java.util.Locale);
+    method @NonNull public static final java.text.NumberFormat getPercentInstance();
+    method @NonNull public static java.text.NumberFormat getPercentInstance(@NonNull java.util.Locale);
+    method @NonNull public java.math.RoundingMode getRoundingMode();
     method public boolean isGroupingUsed();
     method public boolean isParseIntegerOnly();
-    method public abstract java.lang.Number parse(java.lang.String, java.text.ParsePosition);
-    method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
-    method public final java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
-    method public void setCurrency(java.util.Currency);
+    method @Nullable public abstract Number parse(@NonNull String, @NonNull java.text.ParsePosition);
+    method @Nullable public Number parse(@NonNull String) throws java.text.ParseException;
+    method @Nullable public final Object parseObject(@NonNull String, @NonNull java.text.ParsePosition);
+    method public void setCurrency(@NonNull java.util.Currency);
     method public void setGroupingUsed(boolean);
     method public void setMaximumFractionDigits(int);
     method public void setMaximumIntegerDigits(int);
     method public void setMinimumFractionDigits(int);
     method public void setMinimumIntegerDigits(int);
     method public void setParseIntegerOnly(boolean);
-    method public void setRoundingMode(java.math.RoundingMode);
+    method public void setRoundingMode(@Nullable java.math.RoundingMode);
     field public static final int FRACTION_FIELD = 1; // 0x1
     field public static final int INTEGER_FIELD = 0; // 0x0
   }
 
   public static class NumberFormat.Field extends java.text.Format.Field {
-    ctor protected NumberFormat.Field(java.lang.String);
-    field public static final java.text.NumberFormat.Field CURRENCY;
-    field public static final java.text.NumberFormat.Field DECIMAL_SEPARATOR;
-    field public static final java.text.NumberFormat.Field EXPONENT;
-    field public static final java.text.NumberFormat.Field EXPONENT_SIGN;
-    field public static final java.text.NumberFormat.Field EXPONENT_SYMBOL;
-    field public static final java.text.NumberFormat.Field FRACTION;
-    field public static final java.text.NumberFormat.Field GROUPING_SEPARATOR;
-    field public static final java.text.NumberFormat.Field INTEGER;
-    field public static final java.text.NumberFormat.Field PERCENT;
-    field public static final java.text.NumberFormat.Field PERMILLE;
-    field public static final java.text.NumberFormat.Field SIGN;
+    ctor protected NumberFormat.Field(@NonNull String);
+    field @NonNull public static final java.text.NumberFormat.Field CURRENCY;
+    field @NonNull public static final java.text.NumberFormat.Field DECIMAL_SEPARATOR;
+    field @NonNull public static final java.text.NumberFormat.Field EXPONENT;
+    field @NonNull public static final java.text.NumberFormat.Field EXPONENT_SIGN;
+    field @NonNull public static final java.text.NumberFormat.Field EXPONENT_SYMBOL;
+    field @NonNull public static final java.text.NumberFormat.Field FRACTION;
+    field @NonNull public static final java.text.NumberFormat.Field GROUPING_SEPARATOR;
+    field @NonNull public static final java.text.NumberFormat.Field INTEGER;
+    field @NonNull public static final java.text.NumberFormat.Field PERCENT;
+    field @NonNull public static final java.text.NumberFormat.Field PERMILLE;
+    field @NonNull public static final java.text.NumberFormat.Field SIGN;
   }
 
   public class ParseException extends java.lang.Exception {
-    ctor public ParseException(java.lang.String, int);
+    ctor public ParseException(String, int);
     method public int getErrorOffset();
   }
 
@@ -67172,36 +66997,36 @@
   }
 
   public class RuleBasedCollator extends java.text.Collator {
-    ctor public RuleBasedCollator(java.lang.String) throws java.text.ParseException;
-    method public synchronized int compare(java.lang.String, java.lang.String);
-    method public java.text.CollationElementIterator getCollationElementIterator(java.lang.String);
+    ctor public RuleBasedCollator(String) throws java.text.ParseException;
+    method public int compare(String, String);
+    method public java.text.CollationElementIterator getCollationElementIterator(String);
     method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
-    method public synchronized java.text.CollationKey getCollationKey(java.lang.String);
-    method public java.lang.String getRules();
+    method public java.text.CollationKey getCollationKey(String);
+    method public String getRules();
   }
 
   public class SimpleDateFormat extends java.text.DateFormat {
     ctor public SimpleDateFormat();
-    ctor public SimpleDateFormat(java.lang.String);
-    ctor public SimpleDateFormat(java.lang.String, java.util.Locale);
-    ctor public SimpleDateFormat(java.lang.String, java.text.DateFormatSymbols);
-    method public void applyLocalizedPattern(java.lang.String);
-    method public void applyPattern(java.lang.String);
-    method public java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
+    ctor public SimpleDateFormat(String);
+    ctor public SimpleDateFormat(String, java.util.Locale);
+    ctor public SimpleDateFormat(String, java.text.DateFormatSymbols);
+    method public void applyLocalizedPattern(String);
+    method public void applyPattern(String);
+    method public StringBuffer format(java.util.Date, StringBuffer, java.text.FieldPosition);
     method public java.util.Date get2DigitYearStart();
     method public java.text.DateFormatSymbols getDateFormatSymbols();
-    method public java.util.Date parse(java.lang.String, java.text.ParsePosition);
+    method public java.util.Date parse(String, java.text.ParsePosition);
     method public void set2DigitYearStart(java.util.Date);
     method public void setDateFormatSymbols(java.text.DateFormatSymbols);
-    method public java.lang.String toLocalizedPattern();
-    method public java.lang.String toPattern();
+    method public String toLocalizedPattern();
+    method public String toPattern();
   }
 
   public final class StringCharacterIterator implements java.text.CharacterIterator {
-    ctor public StringCharacterIterator(java.lang.String);
-    ctor public StringCharacterIterator(java.lang.String, int);
-    ctor public StringCharacterIterator(java.lang.String, int, int, int);
-    method public java.lang.Object clone();
+    ctor public StringCharacterIterator(String);
+    ctor public StringCharacterIterator(String, int);
+    ctor public StringCharacterIterator(String, int, int, int);
+    method public Object clone();
     method public char current();
     method public char first();
     method public int getBeginIndex();
@@ -67211,7 +67036,7 @@
     method public char next();
     method public char previous();
     method public char setIndex(int);
-    method public void setText(java.lang.String);
+    method public void setText(String);
   }
 
 }
@@ -67235,22 +67060,20 @@
   }
 
   public class DateTimeException extends java.lang.RuntimeException {
-    ctor public DateTimeException(java.lang.String);
-    ctor public DateTimeException(java.lang.String, java.lang.Throwable);
+    ctor public DateTimeException(String);
+    ctor public DateTimeException(String, Throwable);
   }
 
-  public final class DayOfWeek extends java.lang.Enum implements java.time.temporal.TemporalAccessor java.time.temporal.TemporalAdjuster {
+  public enum DayOfWeek implements java.time.temporal.TemporalAccessor java.time.temporal.TemporalAdjuster {
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public static java.time.DayOfWeek from(java.time.temporal.TemporalAccessor);
-    method public java.lang.String getDisplayName(java.time.format.TextStyle, java.util.Locale);
+    method public String getDisplayName(java.time.format.TextStyle, java.util.Locale);
     method public long getLong(java.time.temporal.TemporalField);
     method public int getValue();
     method public boolean isSupported(java.time.temporal.TemporalField);
     method public java.time.DayOfWeek minus(long);
     method public static java.time.DayOfWeek of(int);
     method public java.time.DayOfWeek plus(long);
-    method public static java.time.DayOfWeek valueOf(java.lang.String);
-    method public static final java.time.DayOfWeek[] values();
     enum_constant public static final java.time.DayOfWeek FRIDAY;
     enum_constant public static final java.time.DayOfWeek MONDAY;
     enum_constant public static final java.time.DayOfWeek SATURDAY;
@@ -67260,7 +67083,7 @@
     enum_constant public static final java.time.DayOfWeek WEDNESDAY;
   }
 
-  public final class Duration implements java.lang.Comparable java.io.Serializable java.time.temporal.TemporalAmount {
+  public final class Duration implements java.lang.Comparable<java.time.Duration> java.io.Serializable java.time.temporal.TemporalAmount {
     method public java.time.Duration abs();
     method public java.time.temporal.Temporal addTo(java.time.temporal.Temporal);
     method public static java.time.Duration between(java.time.temporal.Temporal, java.time.temporal.Temporal);
@@ -67291,7 +67114,7 @@
     method public static java.time.Duration ofNanos(long);
     method public static java.time.Duration ofSeconds(long);
     method public static java.time.Duration ofSeconds(long, long);
-    method public static java.time.Duration parse(java.lang.CharSequence);
+    method public static java.time.Duration parse(CharSequence);
     method public java.time.Duration plus(java.time.Duration);
     method public java.time.Duration plus(long, java.time.temporal.TemporalUnit);
     method public java.time.Duration plusDays(long);
@@ -67311,7 +67134,7 @@
     field public static final java.time.Duration ZERO;
   }
 
-  public final class Instant implements java.lang.Comparable java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+  public final class Instant implements java.lang.Comparable<java.time.Instant> java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public java.time.OffsetDateTime atOffset(java.time.ZoneOffset);
     method public java.time.ZonedDateTime atZone(java.time.ZoneId);
@@ -67334,7 +67157,7 @@
     method public static java.time.Instant ofEpochMilli(long);
     method public static java.time.Instant ofEpochSecond(long);
     method public static java.time.Instant ofEpochSecond(long, long);
-    method public static java.time.Instant parse(java.lang.CharSequence);
+    method public static java.time.Instant parse(CharSequence);
     method public java.time.Instant plus(java.time.temporal.TemporalAmount);
     method public java.time.Instant plus(long, java.time.temporal.TemporalUnit);
     method public java.time.Instant plusMillis(long);
@@ -67381,8 +67204,8 @@
     method public static java.time.LocalDate of(int, int, int);
     method public static java.time.LocalDate ofEpochDay(long);
     method public static java.time.LocalDate ofYearDay(int, int);
-    method public static java.time.LocalDate parse(java.lang.CharSequence);
-    method public static java.time.LocalDate parse(java.lang.CharSequence, java.time.format.DateTimeFormatter);
+    method public static java.time.LocalDate parse(CharSequence);
+    method public static java.time.LocalDate parse(CharSequence, java.time.format.DateTimeFormatter);
     method public java.time.LocalDate plus(java.time.temporal.TemporalAmount);
     method public java.time.LocalDate plus(long, java.time.temporal.TemporalUnit);
     method public java.time.LocalDate plusDays(long);
@@ -67401,7 +67224,7 @@
     field public static final java.time.LocalDate MIN;
   }
 
-  public final class LocalDateTime implements java.time.chrono.ChronoLocalDateTime java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+  public final class LocalDateTime implements java.time.chrono.ChronoLocalDateTime<java.time.LocalDate> java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
     method public java.time.OffsetDateTime atOffset(java.time.ZoneOffset);
     method public java.time.ZonedDateTime atZone(java.time.ZoneId);
     method public static java.time.LocalDateTime from(java.time.temporal.TemporalAccessor);
@@ -67439,8 +67262,8 @@
     method public static java.time.LocalDateTime of(java.time.LocalDate, java.time.LocalTime);
     method public static java.time.LocalDateTime ofEpochSecond(long, int, java.time.ZoneOffset);
     method public static java.time.LocalDateTime ofInstant(java.time.Instant, java.time.ZoneId);
-    method public static java.time.LocalDateTime parse(java.lang.CharSequence);
-    method public static java.time.LocalDateTime parse(java.lang.CharSequence, java.time.format.DateTimeFormatter);
+    method public static java.time.LocalDateTime parse(CharSequence);
+    method public static java.time.LocalDateTime parse(CharSequence, java.time.format.DateTimeFormatter);
     method public java.time.LocalDateTime plus(java.time.temporal.TemporalAmount);
     method public java.time.LocalDateTime plus(long, java.time.temporal.TemporalUnit);
     method public java.time.LocalDateTime plusDays(long);
@@ -67469,12 +67292,12 @@
     field public static final java.time.LocalDateTime MIN;
   }
 
-  public final class LocalTime implements java.lang.Comparable java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+  public final class LocalTime implements java.lang.Comparable<java.time.LocalTime> java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public java.time.LocalDateTime atDate(java.time.LocalDate);
     method public java.time.OffsetTime atOffset(java.time.ZoneOffset);
     method public int compareTo(java.time.LocalTime);
-    method public java.lang.String format(java.time.format.DateTimeFormatter);
+    method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.LocalTime from(java.time.temporal.TemporalAccessor);
     method public int getHour();
     method public long getLong(java.time.temporal.TemporalField);
@@ -67499,8 +67322,8 @@
     method public static java.time.LocalTime of(int, int, int, int);
     method public static java.time.LocalTime ofNanoOfDay(long);
     method public static java.time.LocalTime ofSecondOfDay(long);
-    method public static java.time.LocalTime parse(java.lang.CharSequence);
-    method public static java.time.LocalTime parse(java.lang.CharSequence, java.time.format.DateTimeFormatter);
+    method public static java.time.LocalTime parse(CharSequence);
+    method public static java.time.LocalTime parse(CharSequence, java.time.format.DateTimeFormatter);
     method public java.time.LocalTime plus(java.time.temporal.TemporalAmount);
     method public java.time.LocalTime plus(long, java.time.temporal.TemporalUnit);
     method public java.time.LocalTime plusHours(long);
@@ -67523,12 +67346,12 @@
     field public static final java.time.LocalTime NOON;
   }
 
-  public final class Month extends java.lang.Enum implements java.time.temporal.TemporalAccessor java.time.temporal.TemporalAdjuster {
+  public enum Month implements java.time.temporal.TemporalAccessor java.time.temporal.TemporalAdjuster {
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public int firstDayOfYear(boolean);
     method public java.time.Month firstMonthOfQuarter();
     method public static java.time.Month from(java.time.temporal.TemporalAccessor);
-    method public java.lang.String getDisplayName(java.time.format.TextStyle, java.util.Locale);
+    method public String getDisplayName(java.time.format.TextStyle, java.util.Locale);
     method public long getLong(java.time.temporal.TemporalField);
     method public int getValue();
     method public boolean isSupported(java.time.temporal.TemporalField);
@@ -67538,8 +67361,6 @@
     method public java.time.Month minus(long);
     method public static java.time.Month of(int);
     method public java.time.Month plus(long);
-    method public static java.time.Month valueOf(java.lang.String);
-    method public static final java.time.Month[] values();
     enum_constant public static final java.time.Month APRIL;
     enum_constant public static final java.time.Month AUGUST;
     enum_constant public static final java.time.Month DECEMBER;
@@ -67554,11 +67375,11 @@
     enum_constant public static final java.time.Month SEPTEMBER;
   }
 
-  public final class MonthDay implements java.lang.Comparable java.io.Serializable java.time.temporal.TemporalAccessor java.time.temporal.TemporalAdjuster {
+  public final class MonthDay implements java.lang.Comparable<java.time.MonthDay> java.io.Serializable java.time.temporal.TemporalAccessor java.time.temporal.TemporalAdjuster {
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public java.time.LocalDate atYear(int);
     method public int compareTo(java.time.MonthDay);
-    method public java.lang.String format(java.time.format.DateTimeFormatter);
+    method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.MonthDay from(java.time.temporal.TemporalAccessor);
     method public int getDayOfMonth();
     method public long getLong(java.time.temporal.TemporalField);
@@ -67573,19 +67394,19 @@
     method public static java.time.MonthDay now(java.time.Clock);
     method public static java.time.MonthDay of(java.time.Month, int);
     method public static java.time.MonthDay of(int, int);
-    method public static java.time.MonthDay parse(java.lang.CharSequence);
-    method public static java.time.MonthDay parse(java.lang.CharSequence, java.time.format.DateTimeFormatter);
+    method public static java.time.MonthDay parse(CharSequence);
+    method public static java.time.MonthDay parse(CharSequence, java.time.format.DateTimeFormatter);
     method public java.time.MonthDay with(java.time.Month);
     method public java.time.MonthDay withDayOfMonth(int);
     method public java.time.MonthDay withMonth(int);
   }
 
-  public final class OffsetDateTime implements java.lang.Comparable java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+  public final class OffsetDateTime implements java.lang.Comparable<java.time.OffsetDateTime> java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public java.time.ZonedDateTime atZoneSameInstant(java.time.ZoneId);
     method public java.time.ZonedDateTime atZoneSimilarLocal(java.time.ZoneId);
     method public int compareTo(java.time.OffsetDateTime);
-    method public java.lang.String format(java.time.format.DateTimeFormatter);
+    method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.OffsetDateTime from(java.time.temporal.TemporalAccessor);
     method public int getDayOfMonth();
     method public java.time.DayOfWeek getDayOfWeek();
@@ -67621,8 +67442,8 @@
     method public static java.time.OffsetDateTime of(java.time.LocalDateTime, java.time.ZoneOffset);
     method public static java.time.OffsetDateTime of(int, int, int, int, int, int, int, java.time.ZoneOffset);
     method public static java.time.OffsetDateTime ofInstant(java.time.Instant, java.time.ZoneId);
-    method public static java.time.OffsetDateTime parse(java.lang.CharSequence);
-    method public static java.time.OffsetDateTime parse(java.lang.CharSequence, java.time.format.DateTimeFormatter);
+    method public static java.time.OffsetDateTime parse(CharSequence);
+    method public static java.time.OffsetDateTime parse(CharSequence, java.time.format.DateTimeFormatter);
     method public java.time.OffsetDateTime plus(java.time.temporal.TemporalAmount);
     method public java.time.OffsetDateTime plus(long, java.time.temporal.TemporalUnit);
     method public java.time.OffsetDateTime plusDays(long);
@@ -67659,11 +67480,11 @@
     field public static final java.time.OffsetDateTime MIN;
   }
 
-  public final class OffsetTime implements java.lang.Comparable java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+  public final class OffsetTime implements java.lang.Comparable<java.time.OffsetTime> java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public java.time.OffsetDateTime atDate(java.time.LocalDate);
     method public int compareTo(java.time.OffsetTime);
-    method public java.lang.String format(java.time.format.DateTimeFormatter);
+    method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.OffsetTime from(java.time.temporal.TemporalAccessor);
     method public int getHour();
     method public long getLong(java.time.temporal.TemporalField);
@@ -67688,8 +67509,8 @@
     method public static java.time.OffsetTime of(java.time.LocalTime, java.time.ZoneOffset);
     method public static java.time.OffsetTime of(int, int, int, int, java.time.ZoneOffset);
     method public static java.time.OffsetTime ofInstant(java.time.Instant, java.time.ZoneId);
-    method public static java.time.OffsetTime parse(java.lang.CharSequence);
-    method public static java.time.OffsetTime parse(java.lang.CharSequence, java.time.format.DateTimeFormatter);
+    method public static java.time.OffsetTime parse(CharSequence);
+    method public static java.time.OffsetTime parse(CharSequence, java.time.format.DateTimeFormatter);
     method public java.time.OffsetTime plus(java.time.temporal.TemporalAmount);
     method public java.time.OffsetTime plus(long, java.time.temporal.TemporalUnit);
     method public java.time.OffsetTime plusHours(long);
@@ -67733,7 +67554,7 @@
     method public static java.time.Period ofMonths(int);
     method public static java.time.Period ofWeeks(int);
     method public static java.time.Period ofYears(int);
-    method public static java.time.Period parse(java.lang.CharSequence);
+    method public static java.time.Period parse(CharSequence);
     method public java.time.Period plus(java.time.temporal.TemporalAmount);
     method public java.time.Period plusDays(long);
     method public java.time.Period plusMonths(long);
@@ -67746,14 +67567,14 @@
     field public static final java.time.Period ZERO;
   }
 
-  public final class Year implements java.lang.Comparable java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+  public final class Year implements java.lang.Comparable<java.time.Year> java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public java.time.LocalDate atDay(int);
     method public java.time.YearMonth atMonth(java.time.Month);
     method public java.time.YearMonth atMonth(int);
     method public java.time.LocalDate atMonthDay(java.time.MonthDay);
     method public int compareTo(java.time.Year);
-    method public java.lang.String format(java.time.format.DateTimeFormatter);
+    method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.Year from(java.time.temporal.TemporalAccessor);
     method public long getLong(java.time.temporal.TemporalField);
     method public int getValue();
@@ -67772,8 +67593,8 @@
     method public static java.time.Year now(java.time.ZoneId);
     method public static java.time.Year now(java.time.Clock);
     method public static java.time.Year of(int);
-    method public static java.time.Year parse(java.lang.CharSequence);
-    method public static java.time.Year parse(java.lang.CharSequence, java.time.format.DateTimeFormatter);
+    method public static java.time.Year parse(CharSequence);
+    method public static java.time.Year parse(CharSequence, java.time.format.DateTimeFormatter);
     method public java.time.Year plus(java.time.temporal.TemporalAmount);
     method public java.time.Year plus(long, java.time.temporal.TemporalUnit);
     method public java.time.Year plusYears(long);
@@ -67784,12 +67605,12 @@
     field public static final int MIN_VALUE = -999999999; // 0xc4653601
   }
 
-  public final class YearMonth implements java.lang.Comparable java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+  public final class YearMonth implements java.lang.Comparable<java.time.YearMonth> java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public java.time.LocalDate atDay(int);
     method public java.time.LocalDate atEndOfMonth();
     method public int compareTo(java.time.YearMonth);
-    method public java.lang.String format(java.time.format.DateTimeFormatter);
+    method public String format(java.time.format.DateTimeFormatter);
     method public static java.time.YearMonth from(java.time.temporal.TemporalAccessor);
     method public long getLong(java.time.temporal.TemporalField);
     method public java.time.Month getMonth();
@@ -67812,8 +67633,8 @@
     method public static java.time.YearMonth now(java.time.Clock);
     method public static java.time.YearMonth of(int, java.time.Month);
     method public static java.time.YearMonth of(int, int);
-    method public static java.time.YearMonth parse(java.lang.CharSequence);
-    method public static java.time.YearMonth parse(java.lang.CharSequence, java.time.format.DateTimeFormatter);
+    method public static java.time.YearMonth parse(CharSequence);
+    method public static java.time.YearMonth parse(CharSequence, java.time.format.DateTimeFormatter);
     method public java.time.YearMonth plus(java.time.temporal.TemporalAmount);
     method public java.time.YearMonth plus(long, java.time.temporal.TemporalUnit);
     method public java.time.YearMonth plusMonths(long);
@@ -67828,27 +67649,27 @@
   public abstract class ZoneId implements java.io.Serializable {
     method public static java.time.ZoneId from(java.time.temporal.TemporalAccessor);
     method public static java.util.Set<java.lang.String> getAvailableZoneIds();
-    method public java.lang.String getDisplayName(java.time.format.TextStyle, java.util.Locale);
-    method public abstract java.lang.String getId();
+    method public String getDisplayName(java.time.format.TextStyle, java.util.Locale);
+    method public abstract String getId();
     method public abstract java.time.zone.ZoneRules getRules();
     method public java.time.ZoneId normalized();
-    method public static java.time.ZoneId of(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
-    method public static java.time.ZoneId of(java.lang.String);
-    method public static java.time.ZoneId ofOffset(java.lang.String, java.time.ZoneOffset);
+    method public static java.time.ZoneId of(String, java.util.Map<java.lang.String,java.lang.String>);
+    method public static java.time.ZoneId of(String);
+    method public static java.time.ZoneId ofOffset(String, java.time.ZoneOffset);
     method public static java.time.ZoneId systemDefault();
-    field public static final java.util.Map<java.lang.String, java.lang.String> SHORT_IDS;
+    field public static final java.util.Map<java.lang.String,java.lang.String> SHORT_IDS;
   }
 
-  public final class ZoneOffset extends java.time.ZoneId implements java.lang.Comparable java.io.Serializable java.time.temporal.TemporalAccessor java.time.temporal.TemporalAdjuster {
+  public final class ZoneOffset extends java.time.ZoneId implements java.lang.Comparable<java.time.ZoneOffset> java.io.Serializable java.time.temporal.TemporalAccessor java.time.temporal.TemporalAdjuster {
     method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public int compareTo(java.time.ZoneOffset);
     method public static java.time.ZoneOffset from(java.time.temporal.TemporalAccessor);
-    method public java.lang.String getId();
+    method public String getId();
     method public long getLong(java.time.temporal.TemporalField);
     method public java.time.zone.ZoneRules getRules();
     method public int getTotalSeconds();
     method public boolean isSupported(java.time.temporal.TemporalField);
-    method public static java.time.ZoneOffset of(java.lang.String);
+    method public static java.time.ZoneOffset of(String);
     method public static java.time.ZoneOffset ofHours(int);
     method public static java.time.ZoneOffset ofHoursMinutes(int, int);
     method public static java.time.ZoneOffset ofHoursMinutesSeconds(int, int, int);
@@ -67858,7 +67679,7 @@
     field public static final java.time.ZoneOffset UTC;
   }
 
-  public final class ZonedDateTime implements java.time.chrono.ChronoZonedDateTime java.io.Serializable java.time.temporal.Temporal {
+  public final class ZonedDateTime implements java.time.chrono.ChronoZonedDateTime<java.time.LocalDate> java.io.Serializable java.time.temporal.Temporal {
     method public static java.time.ZonedDateTime from(java.time.temporal.TemporalAccessor);
     method public int getDayOfMonth();
     method public java.time.DayOfWeek getDayOfWeek();
@@ -67893,8 +67714,8 @@
     method public static java.time.ZonedDateTime ofInstant(java.time.LocalDateTime, java.time.ZoneOffset, java.time.ZoneId);
     method public static java.time.ZonedDateTime ofLocal(java.time.LocalDateTime, java.time.ZoneId, java.time.ZoneOffset);
     method public static java.time.ZonedDateTime ofStrict(java.time.LocalDateTime, java.time.ZoneOffset, java.time.ZoneId);
-    method public static java.time.ZonedDateTime parse(java.lang.CharSequence);
-    method public static java.time.ZonedDateTime parse(java.lang.CharSequence, java.time.format.DateTimeFormatter);
+    method public static java.time.ZonedDateTime parse(CharSequence);
+    method public static java.time.ZonedDateTime parse(CharSequence, java.time.format.DateTimeFormatter);
     method public java.time.ZonedDateTime plus(java.time.temporal.TemporalAmount);
     method public java.time.ZonedDateTime plus(long, java.time.temporal.TemporalUnit);
     method public java.time.ZonedDateTime plusDays(long);
@@ -67934,26 +67755,26 @@
   public abstract class AbstractChronology implements java.time.chrono.Chronology {
     ctor protected AbstractChronology();
     method public int compareTo(java.time.chrono.Chronology);
-    method public java.time.chrono.ChronoLocalDate resolveDate(java.util.Map<java.time.temporal.TemporalField, java.lang.Long>, java.time.format.ResolverStyle);
+    method public java.time.chrono.ChronoLocalDate resolveDate(java.util.Map<java.time.temporal.TemporalField,java.lang.Long>, java.time.format.ResolverStyle);
   }
 
-  public abstract interface ChronoLocalDate implements java.lang.Comparable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+  public interface ChronoLocalDate extends java.time.temporal.Temporal java.lang.Comparable<java.time.chrono.ChronoLocalDate> java.time.temporal.TemporalAdjuster {
     method public default java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
     method public default java.time.chrono.ChronoLocalDateTime<?> atTime(java.time.LocalTime);
     method public default int compareTo(java.time.chrono.ChronoLocalDate);
-    method public abstract boolean equals(java.lang.Object);
-    method public default java.lang.String format(java.time.format.DateTimeFormatter);
+    method public boolean equals(Object);
+    method public default String format(java.time.format.DateTimeFormatter);
     method public static java.time.chrono.ChronoLocalDate from(java.time.temporal.TemporalAccessor);
-    method public abstract java.time.chrono.Chronology getChronology();
+    method public java.time.chrono.Chronology getChronology();
     method public default java.time.chrono.Era getEra();
-    method public abstract int hashCode();
+    method public int hashCode();
     method public default boolean isAfter(java.time.chrono.ChronoLocalDate);
     method public default boolean isBefore(java.time.chrono.ChronoLocalDate);
     method public default boolean isEqual(java.time.chrono.ChronoLocalDate);
     method public default boolean isLeapYear();
     method public default boolean isSupported(java.time.temporal.TemporalField);
     method public default boolean isSupported(java.time.temporal.TemporalUnit);
-    method public abstract int lengthOfMonth();
+    method public int lengthOfMonth();
     method public default int lengthOfYear();
     method public default java.time.chrono.ChronoLocalDate minus(java.time.temporal.TemporalAmount);
     method public default java.time.chrono.ChronoLocalDate minus(long, java.time.temporal.TemporalUnit);
@@ -67961,21 +67782,21 @@
     method public default java.time.chrono.ChronoLocalDate plus(long, java.time.temporal.TemporalUnit);
     method public static java.util.Comparator<java.time.chrono.ChronoLocalDate> timeLineOrder();
     method public default long toEpochDay();
-    method public abstract java.lang.String toString();
-    method public abstract java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
+    method public String toString();
+    method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public default java.time.chrono.ChronoLocalDate with(java.time.temporal.TemporalAdjuster);
     method public default java.time.chrono.ChronoLocalDate with(java.time.temporal.TemporalField, long);
   }
 
-  public abstract interface ChronoLocalDateTime<D extends java.time.chrono.ChronoLocalDate> implements java.lang.Comparable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
+  public interface ChronoLocalDateTime<D extends java.time.chrono.ChronoLocalDate> extends java.time.temporal.Temporal java.lang.Comparable<java.time.chrono.ChronoLocalDateTime<?>> java.time.temporal.TemporalAdjuster {
     method public default java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
-    method public abstract java.time.chrono.ChronoZonedDateTime<D> atZone(java.time.ZoneId);
+    method public java.time.chrono.ChronoZonedDateTime<D> atZone(java.time.ZoneId);
     method public default int compareTo(java.time.chrono.ChronoLocalDateTime<?>);
-    method public abstract boolean equals(java.lang.Object);
-    method public default java.lang.String format(java.time.format.DateTimeFormatter);
+    method public boolean equals(Object);
+    method public default String format(java.time.format.DateTimeFormatter);
     method public static java.time.chrono.ChronoLocalDateTime<?> from(java.time.temporal.TemporalAccessor);
     method public default java.time.chrono.Chronology getChronology();
-    method public abstract int hashCode();
+    method public int hashCode();
     method public default boolean isAfter(java.time.chrono.ChronoLocalDateTime<?>);
     method public default boolean isBefore(java.time.chrono.ChronoLocalDateTime<?>);
     method public default boolean isEqual(java.time.chrono.ChronoLocalDateTime<?>);
@@ -67983,42 +67804,42 @@
     method public default java.time.chrono.ChronoLocalDateTime<D> minus(java.time.temporal.TemporalAmount);
     method public default java.time.chrono.ChronoLocalDateTime<D> minus(long, java.time.temporal.TemporalUnit);
     method public default java.time.chrono.ChronoLocalDateTime<D> plus(java.time.temporal.TemporalAmount);
-    method public abstract java.time.chrono.ChronoLocalDateTime<D> plus(long, java.time.temporal.TemporalUnit);
+    method public java.time.chrono.ChronoLocalDateTime<D> plus(long, java.time.temporal.TemporalUnit);
     method public static java.util.Comparator<java.time.chrono.ChronoLocalDateTime<?>> timeLineOrder();
     method public default long toEpochSecond(java.time.ZoneOffset);
     method public default java.time.Instant toInstant(java.time.ZoneOffset);
-    method public abstract D toLocalDate();
-    method public abstract java.time.LocalTime toLocalTime();
-    method public abstract java.lang.String toString();
+    method public D toLocalDate();
+    method public java.time.LocalTime toLocalTime();
+    method public String toString();
     method public default java.time.chrono.ChronoLocalDateTime<D> with(java.time.temporal.TemporalAdjuster);
-    method public abstract java.time.chrono.ChronoLocalDateTime<D> with(java.time.temporal.TemporalField, long);
+    method public java.time.chrono.ChronoLocalDateTime<D> with(java.time.temporal.TemporalField, long);
   }
 
-  public abstract interface ChronoPeriod implements java.time.temporal.TemporalAmount {
+  public interface ChronoPeriod extends java.time.temporal.TemporalAmount {
     method public static java.time.chrono.ChronoPeriod between(java.time.chrono.ChronoLocalDate, java.time.chrono.ChronoLocalDate);
-    method public abstract boolean equals(java.lang.Object);
-    method public abstract java.time.chrono.Chronology getChronology();
-    method public abstract int hashCode();
+    method public boolean equals(Object);
+    method public java.time.chrono.Chronology getChronology();
+    method public int hashCode();
     method public default boolean isNegative();
     method public default boolean isZero();
-    method public abstract java.time.chrono.ChronoPeriod minus(java.time.temporal.TemporalAmount);
-    method public abstract java.time.chrono.ChronoPeriod multipliedBy(int);
+    method public java.time.chrono.ChronoPeriod minus(java.time.temporal.TemporalAmount);
+    method public java.time.chrono.ChronoPeriod multipliedBy(int);
     method public default java.time.chrono.ChronoPeriod negated();
-    method public abstract java.time.chrono.ChronoPeriod normalized();
-    method public abstract java.time.chrono.ChronoPeriod plus(java.time.temporal.TemporalAmount);
-    method public abstract java.lang.String toString();
+    method public java.time.chrono.ChronoPeriod normalized();
+    method public java.time.chrono.ChronoPeriod plus(java.time.temporal.TemporalAmount);
+    method public String toString();
   }
 
-  public abstract interface ChronoZonedDateTime<D extends java.time.chrono.ChronoLocalDate> implements java.lang.Comparable java.time.temporal.Temporal {
+  public interface ChronoZonedDateTime<D extends java.time.chrono.ChronoLocalDate> extends java.time.temporal.Temporal java.lang.Comparable<java.time.chrono.ChronoZonedDateTime<?>> {
     method public default int compareTo(java.time.chrono.ChronoZonedDateTime<?>);
-    method public abstract boolean equals(java.lang.Object);
-    method public default java.lang.String format(java.time.format.DateTimeFormatter);
+    method public boolean equals(Object);
+    method public default String format(java.time.format.DateTimeFormatter);
     method public static java.time.chrono.ChronoZonedDateTime<?> from(java.time.temporal.TemporalAccessor);
     method public default java.time.chrono.Chronology getChronology();
     method public default long getLong(java.time.temporal.TemporalField);
-    method public abstract java.time.ZoneOffset getOffset();
-    method public abstract java.time.ZoneId getZone();
-    method public abstract int hashCode();
+    method public java.time.ZoneOffset getOffset();
+    method public java.time.ZoneId getZone();
+    method public int hashCode();
     method public default boolean isAfter(java.time.chrono.ChronoZonedDateTime<?>);
     method public default boolean isBefore(java.time.chrono.ChronoZonedDateTime<?>);
     method public default boolean isEqual(java.time.chrono.ChronoZonedDateTime<?>);
@@ -68026,60 +67847,60 @@
     method public default java.time.chrono.ChronoZonedDateTime<D> minus(java.time.temporal.TemporalAmount);
     method public default java.time.chrono.ChronoZonedDateTime<D> minus(long, java.time.temporal.TemporalUnit);
     method public default java.time.chrono.ChronoZonedDateTime<D> plus(java.time.temporal.TemporalAmount);
-    method public abstract java.time.chrono.ChronoZonedDateTime<D> plus(long, java.time.temporal.TemporalUnit);
+    method public java.time.chrono.ChronoZonedDateTime<D> plus(long, java.time.temporal.TemporalUnit);
     method public static java.util.Comparator<java.time.chrono.ChronoZonedDateTime<?>> timeLineOrder();
     method public default long toEpochSecond();
     method public default java.time.Instant toInstant();
     method public default D toLocalDate();
-    method public abstract java.time.chrono.ChronoLocalDateTime<D> toLocalDateTime();
+    method public java.time.chrono.ChronoLocalDateTime<D> toLocalDateTime();
     method public default java.time.LocalTime toLocalTime();
-    method public abstract java.lang.String toString();
+    method public String toString();
     method public default java.time.chrono.ChronoZonedDateTime<D> with(java.time.temporal.TemporalAdjuster);
-    method public abstract java.time.chrono.ChronoZonedDateTime<D> with(java.time.temporal.TemporalField, long);
-    method public abstract java.time.chrono.ChronoZonedDateTime<D> withEarlierOffsetAtOverlap();
-    method public abstract java.time.chrono.ChronoZonedDateTime<D> withLaterOffsetAtOverlap();
-    method public abstract java.time.chrono.ChronoZonedDateTime<D> withZoneSameInstant(java.time.ZoneId);
-    method public abstract java.time.chrono.ChronoZonedDateTime<D> withZoneSameLocal(java.time.ZoneId);
+    method public java.time.chrono.ChronoZonedDateTime<D> with(java.time.temporal.TemporalField, long);
+    method public java.time.chrono.ChronoZonedDateTime<D> withEarlierOffsetAtOverlap();
+    method public java.time.chrono.ChronoZonedDateTime<D> withLaterOffsetAtOverlap();
+    method public java.time.chrono.ChronoZonedDateTime<D> withZoneSameInstant(java.time.ZoneId);
+    method public java.time.chrono.ChronoZonedDateTime<D> withZoneSameLocal(java.time.ZoneId);
   }
 
-  public abstract interface Chronology implements java.lang.Comparable {
-    method public abstract int compareTo(java.time.chrono.Chronology);
+  public interface Chronology extends java.lang.Comparable<java.time.chrono.Chronology> {
+    method public int compareTo(java.time.chrono.Chronology);
     method public default java.time.chrono.ChronoLocalDate date(java.time.chrono.Era, int, int, int);
-    method public abstract java.time.chrono.ChronoLocalDate date(int, int, int);
-    method public abstract java.time.chrono.ChronoLocalDate date(java.time.temporal.TemporalAccessor);
-    method public abstract java.time.chrono.ChronoLocalDate dateEpochDay(long);
+    method public java.time.chrono.ChronoLocalDate date(int, int, int);
+    method public java.time.chrono.ChronoLocalDate date(java.time.temporal.TemporalAccessor);
+    method public java.time.chrono.ChronoLocalDate dateEpochDay(long);
     method public default java.time.chrono.ChronoLocalDate dateNow();
     method public default java.time.chrono.ChronoLocalDate dateNow(java.time.ZoneId);
     method public default java.time.chrono.ChronoLocalDate dateNow(java.time.Clock);
     method public default java.time.chrono.ChronoLocalDate dateYearDay(java.time.chrono.Era, int, int);
-    method public abstract java.time.chrono.ChronoLocalDate dateYearDay(int, int);
-    method public abstract boolean equals(java.lang.Object);
-    method public abstract java.time.chrono.Era eraOf(int);
-    method public abstract java.util.List<java.time.chrono.Era> eras();
+    method public java.time.chrono.ChronoLocalDate dateYearDay(int, int);
+    method public boolean equals(Object);
+    method public java.time.chrono.Era eraOf(int);
+    method public java.util.List<java.time.chrono.Era> eras();
     method public static java.time.chrono.Chronology from(java.time.temporal.TemporalAccessor);
     method public static java.util.Set<java.time.chrono.Chronology> getAvailableChronologies();
-    method public abstract java.lang.String getCalendarType();
-    method public default java.lang.String getDisplayName(java.time.format.TextStyle, java.util.Locale);
-    method public abstract java.lang.String getId();
-    method public abstract int hashCode();
-    method public abstract boolean isLeapYear(long);
+    method public String getCalendarType();
+    method public default String getDisplayName(java.time.format.TextStyle, java.util.Locale);
+    method public String getId();
+    method public int hashCode();
+    method public boolean isLeapYear(long);
     method public default java.time.chrono.ChronoLocalDateTime<? extends java.time.chrono.ChronoLocalDate> localDateTime(java.time.temporal.TemporalAccessor);
-    method public static java.time.chrono.Chronology of(java.lang.String);
+    method public static java.time.chrono.Chronology of(String);
     method public static java.time.chrono.Chronology ofLocale(java.util.Locale);
     method public default java.time.chrono.ChronoPeriod period(int, int, int);
-    method public abstract int prolepticYear(java.time.chrono.Era, int);
-    method public abstract java.time.temporal.ValueRange range(java.time.temporal.ChronoField);
-    method public abstract java.time.chrono.ChronoLocalDate resolveDate(java.util.Map<java.time.temporal.TemporalField, java.lang.Long>, java.time.format.ResolverStyle);
-    method public abstract java.lang.String toString();
+    method public int prolepticYear(java.time.chrono.Era, int);
+    method public java.time.temporal.ValueRange range(java.time.temporal.ChronoField);
+    method public java.time.chrono.ChronoLocalDate resolveDate(java.util.Map<java.time.temporal.TemporalField,java.lang.Long>, java.time.format.ResolverStyle);
+    method public String toString();
     method public default java.time.chrono.ChronoZonedDateTime<? extends java.time.chrono.ChronoLocalDate> zonedDateTime(java.time.temporal.TemporalAccessor);
     method public default java.time.chrono.ChronoZonedDateTime<? extends java.time.chrono.ChronoLocalDate> zonedDateTime(java.time.Instant, java.time.ZoneId);
   }
 
-  public abstract interface Era implements java.time.temporal.TemporalAccessor java.time.temporal.TemporalAdjuster {
+  public interface Era extends java.time.temporal.TemporalAccessor java.time.temporal.TemporalAdjuster {
     method public default java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
-    method public default java.lang.String getDisplayName(java.time.format.TextStyle, java.util.Locale);
+    method public default String getDisplayName(java.time.format.TextStyle, java.util.Locale);
     method public default long getLong(java.time.temporal.TemporalField);
-    method public abstract int getValue();
+    method public int getValue();
     method public default boolean isSupported(java.time.temporal.TemporalField);
   }
 
@@ -68095,13 +67916,13 @@
     method public java.time.chrono.HijrahDate dateYearDay(int, int);
     method public java.time.chrono.HijrahEra eraOf(int);
     method public java.util.List<java.time.chrono.Era> eras();
-    method public java.lang.String getCalendarType();
-    method public java.lang.String getId();
+    method public String getCalendarType();
+    method public String getId();
     method public boolean isLeapYear(long);
     method public java.time.chrono.ChronoLocalDateTime<java.time.chrono.HijrahDate> localDateTime(java.time.temporal.TemporalAccessor);
     method public int prolepticYear(java.time.chrono.Era, int);
     method public java.time.temporal.ValueRange range(java.time.temporal.ChronoField);
-    method public java.time.chrono.HijrahDate resolveDate(java.util.Map<java.time.temporal.TemporalField, java.lang.Long>, java.time.format.ResolverStyle);
+    method public java.time.chrono.HijrahDate resolveDate(java.util.Map<java.time.temporal.TemporalField,java.lang.Long>, java.time.format.ResolverStyle);
     method public java.time.chrono.ChronoZonedDateTime<java.time.chrono.HijrahDate> zonedDateTime(java.time.temporal.TemporalAccessor);
     method public java.time.chrono.ChronoZonedDateTime<java.time.chrono.HijrahDate> zonedDateTime(java.time.Instant, java.time.ZoneId);
     field public static final java.time.chrono.HijrahChronology INSTANCE;
@@ -68123,16 +67944,15 @@
     method public java.time.chrono.HijrahDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.HijrahDate plus(long, java.time.temporal.TemporalUnit);
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
+    method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.HijrahDate with(java.time.temporal.TemporalField, long);
     method public java.time.chrono.HijrahDate with(java.time.temporal.TemporalAdjuster);
     method public java.time.chrono.HijrahDate withVariant(java.time.chrono.HijrahChronology);
   }
 
-  public final class HijrahEra extends java.lang.Enum implements java.time.chrono.Era {
+  public enum HijrahEra implements java.time.chrono.Era {
     method public int getValue();
     method public static java.time.chrono.HijrahEra of(int);
-    method public static java.time.chrono.HijrahEra valueOf(java.lang.String);
-    method public static final java.time.chrono.HijrahEra[] values();
     enum_constant public static final java.time.chrono.HijrahEra AH;
   }
 
@@ -68148,24 +67968,22 @@
     method public java.time.LocalDate dateYearDay(int, int);
     method public java.time.chrono.IsoEra eraOf(int);
     method public java.util.List<java.time.chrono.Era> eras();
-    method public java.lang.String getCalendarType();
-    method public java.lang.String getId();
+    method public String getCalendarType();
+    method public String getId();
     method public boolean isLeapYear(long);
     method public java.time.LocalDateTime localDateTime(java.time.temporal.TemporalAccessor);
     method public java.time.Period period(int, int, int);
     method public int prolepticYear(java.time.chrono.Era, int);
     method public java.time.temporal.ValueRange range(java.time.temporal.ChronoField);
-    method public java.time.LocalDate resolveDate(java.util.Map<java.time.temporal.TemporalField, java.lang.Long>, java.time.format.ResolverStyle);
+    method public java.time.LocalDate resolveDate(java.util.Map<java.time.temporal.TemporalField,java.lang.Long>, java.time.format.ResolverStyle);
     method public java.time.ZonedDateTime zonedDateTime(java.time.temporal.TemporalAccessor);
     method public java.time.ZonedDateTime zonedDateTime(java.time.Instant, java.time.ZoneId);
     field public static final java.time.chrono.IsoChronology INSTANCE;
   }
 
-  public final class IsoEra extends java.lang.Enum implements java.time.chrono.Era {
+  public enum IsoEra implements java.time.chrono.Era {
     method public int getValue();
     method public static java.time.chrono.IsoEra of(int);
-    method public static java.time.chrono.IsoEra valueOf(java.lang.String);
-    method public static final java.time.chrono.IsoEra[] values();
     enum_constant public static final java.time.chrono.IsoEra BCE;
     enum_constant public static final java.time.chrono.IsoEra CE;
   }
@@ -68182,13 +68000,13 @@
     method public java.time.chrono.JapaneseDate dateYearDay(int, int);
     method public java.time.chrono.JapaneseEra eraOf(int);
     method public java.util.List<java.time.chrono.Era> eras();
-    method public java.lang.String getCalendarType();
-    method public java.lang.String getId();
+    method public String getCalendarType();
+    method public String getId();
     method public boolean isLeapYear(long);
     method public java.time.chrono.ChronoLocalDateTime<java.time.chrono.JapaneseDate> localDateTime(java.time.temporal.TemporalAccessor);
     method public int prolepticYear(java.time.chrono.Era, int);
     method public java.time.temporal.ValueRange range(java.time.temporal.ChronoField);
-    method public java.time.chrono.JapaneseDate resolveDate(java.util.Map<java.time.temporal.TemporalField, java.lang.Long>, java.time.format.ResolverStyle);
+    method public java.time.chrono.JapaneseDate resolveDate(java.util.Map<java.time.temporal.TemporalField,java.lang.Long>, java.time.format.ResolverStyle);
     method public java.time.chrono.ChronoZonedDateTime<java.time.chrono.JapaneseDate> zonedDateTime(java.time.temporal.TemporalAccessor);
     method public java.time.chrono.ChronoZonedDateTime<java.time.chrono.JapaneseDate> zonedDateTime(java.time.Instant, java.time.ZoneId);
     field public static final java.time.chrono.JapaneseChronology INSTANCE;
@@ -68211,6 +68029,7 @@
     method public java.time.chrono.JapaneseDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.JapaneseDate plus(long, java.time.temporal.TemporalUnit);
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
+    method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.JapaneseDate with(java.time.temporal.TemporalField, long);
     method public java.time.chrono.JapaneseDate with(java.time.temporal.TemporalAdjuster);
   }
@@ -68218,7 +68037,7 @@
   public final class JapaneseEra implements java.time.chrono.Era java.io.Serializable {
     method public int getValue();
     method public static java.time.chrono.JapaneseEra of(int);
-    method public static java.time.chrono.JapaneseEra valueOf(java.lang.String);
+    method public static java.time.chrono.JapaneseEra valueOf(String);
     method public static java.time.chrono.JapaneseEra[] values();
     field public static final java.time.chrono.JapaneseEra HEISEI;
     field public static final java.time.chrono.JapaneseEra MEIJI;
@@ -68238,13 +68057,13 @@
     method public java.time.chrono.MinguoDate dateYearDay(int, int);
     method public java.time.chrono.MinguoEra eraOf(int);
     method public java.util.List<java.time.chrono.Era> eras();
-    method public java.lang.String getCalendarType();
-    method public java.lang.String getId();
+    method public String getCalendarType();
+    method public String getId();
     method public boolean isLeapYear(long);
     method public java.time.chrono.ChronoLocalDateTime<java.time.chrono.MinguoDate> localDateTime(java.time.temporal.TemporalAccessor);
     method public int prolepticYear(java.time.chrono.Era, int);
     method public java.time.temporal.ValueRange range(java.time.temporal.ChronoField);
-    method public java.time.chrono.MinguoDate resolveDate(java.util.Map<java.time.temporal.TemporalField, java.lang.Long>, java.time.format.ResolverStyle);
+    method public java.time.chrono.MinguoDate resolveDate(java.util.Map<java.time.temporal.TemporalField,java.lang.Long>, java.time.format.ResolverStyle);
     method public java.time.chrono.ChronoZonedDateTime<java.time.chrono.MinguoDate> zonedDateTime(java.time.temporal.TemporalAccessor);
     method public java.time.chrono.ChronoZonedDateTime<java.time.chrono.MinguoDate> zonedDateTime(java.time.Instant, java.time.ZoneId);
     field public static final java.time.chrono.MinguoChronology INSTANCE;
@@ -68266,15 +68085,14 @@
     method public java.time.chrono.MinguoDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.MinguoDate plus(long, java.time.temporal.TemporalUnit);
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
+    method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.MinguoDate with(java.time.temporal.TemporalField, long);
     method public java.time.chrono.MinguoDate with(java.time.temporal.TemporalAdjuster);
   }
 
-  public final class MinguoEra extends java.lang.Enum implements java.time.chrono.Era {
+  public enum MinguoEra implements java.time.chrono.Era {
     method public int getValue();
     method public static java.time.chrono.MinguoEra of(int);
-    method public static java.time.chrono.MinguoEra valueOf(java.lang.String);
-    method public static final java.time.chrono.MinguoEra[] values();
     enum_constant public static final java.time.chrono.MinguoEra BEFORE_ROC;
     enum_constant public static final java.time.chrono.MinguoEra ROC;
   }
@@ -68291,13 +68109,13 @@
     method public java.time.chrono.ThaiBuddhistDate dateYearDay(int, int);
     method public java.time.chrono.ThaiBuddhistEra eraOf(int);
     method public java.util.List<java.time.chrono.Era> eras();
-    method public java.lang.String getCalendarType();
-    method public java.lang.String getId();
+    method public String getCalendarType();
+    method public String getId();
     method public boolean isLeapYear(long);
     method public java.time.chrono.ChronoLocalDateTime<java.time.chrono.ThaiBuddhistDate> localDateTime(java.time.temporal.TemporalAccessor);
     method public int prolepticYear(java.time.chrono.Era, int);
     method public java.time.temporal.ValueRange range(java.time.temporal.ChronoField);
-    method public java.time.chrono.ThaiBuddhistDate resolveDate(java.util.Map<java.time.temporal.TemporalField, java.lang.Long>, java.time.format.ResolverStyle);
+    method public java.time.chrono.ThaiBuddhistDate resolveDate(java.util.Map<java.time.temporal.TemporalField,java.lang.Long>, java.time.format.ResolverStyle);
     method public java.time.chrono.ChronoZonedDateTime<java.time.chrono.ThaiBuddhistDate> zonedDateTime(java.time.temporal.TemporalAccessor);
     method public java.time.chrono.ChronoZonedDateTime<java.time.chrono.ThaiBuddhistDate> zonedDateTime(java.time.Instant, java.time.ZoneId);
     field public static final java.time.chrono.ThaiBuddhistChronology INSTANCE;
@@ -68319,15 +68137,14 @@
     method public java.time.chrono.ThaiBuddhistDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.ThaiBuddhistDate plus(long, java.time.temporal.TemporalUnit);
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
+    method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.ThaiBuddhistDate with(java.time.temporal.TemporalField, long);
     method public java.time.chrono.ThaiBuddhistDate with(java.time.temporal.TemporalAdjuster);
   }
 
-  public final class ThaiBuddhistEra extends java.lang.Enum implements java.time.chrono.Era {
+  public enum ThaiBuddhistEra implements java.time.chrono.Era {
     method public int getValue();
     method public static java.time.chrono.ThaiBuddhistEra of(int);
-    method public static java.time.chrono.ThaiBuddhistEra valueOf(java.lang.String);
-    method public static final java.time.chrono.ThaiBuddhistEra[] values();
     enum_constant public static final java.time.chrono.ThaiBuddhistEra BE;
     enum_constant public static final java.time.chrono.ThaiBuddhistEra BEFORE_BE;
   }
@@ -68337,8 +68154,8 @@
 package java.time.format {
 
   public final class DateTimeFormatter {
-    method public java.lang.String format(java.time.temporal.TemporalAccessor);
-    method public void formatTo(java.time.temporal.TemporalAccessor, java.lang.Appendable);
+    method public String format(java.time.temporal.TemporalAccessor);
+    method public void formatTo(java.time.temporal.TemporalAccessor, Appendable);
     method public java.time.chrono.Chronology getChronology();
     method public java.time.format.DecimalStyle getDecimalStyle();
     method public java.util.Locale getLocale();
@@ -68349,13 +68166,13 @@
     method public static java.time.format.DateTimeFormatter ofLocalizedDateTime(java.time.format.FormatStyle);
     method public static java.time.format.DateTimeFormatter ofLocalizedDateTime(java.time.format.FormatStyle, java.time.format.FormatStyle);
     method public static java.time.format.DateTimeFormatter ofLocalizedTime(java.time.format.FormatStyle);
-    method public static java.time.format.DateTimeFormatter ofPattern(java.lang.String);
-    method public static java.time.format.DateTimeFormatter ofPattern(java.lang.String, java.util.Locale);
-    method public java.time.temporal.TemporalAccessor parse(java.lang.CharSequence);
-    method public java.time.temporal.TemporalAccessor parse(java.lang.CharSequence, java.text.ParsePosition);
-    method public <T> T parse(java.lang.CharSequence, java.time.temporal.TemporalQuery<T>);
-    method public java.time.temporal.TemporalAccessor parseBest(java.lang.CharSequence, java.time.temporal.TemporalQuery<?>...);
-    method public java.time.temporal.TemporalAccessor parseUnresolved(java.lang.CharSequence, java.text.ParsePosition);
+    method public static java.time.format.DateTimeFormatter ofPattern(String);
+    method public static java.time.format.DateTimeFormatter ofPattern(String, java.util.Locale);
+    method public java.time.temporal.TemporalAccessor parse(CharSequence);
+    method public java.time.temporal.TemporalAccessor parse(CharSequence, java.text.ParsePosition);
+    method public <T> T parse(CharSequence, java.time.temporal.TemporalQuery<T>);
+    method public java.time.temporal.TemporalAccessor parseBest(CharSequence, java.time.temporal.TemporalQuery<?>...);
+    method public java.time.temporal.TemporalAccessor parseUnresolved(CharSequence, java.text.ParsePosition);
     method public static java.time.temporal.TemporalQuery<java.time.Period> parsedExcessDays();
     method public static java.time.temporal.TemporalQuery<java.lang.Boolean> parsedLeapSecond();
     method public java.text.Format toFormat();
@@ -68393,16 +68210,16 @@
     method public java.time.format.DateTimeFormatterBuilder appendInstant();
     method public java.time.format.DateTimeFormatterBuilder appendInstant(int);
     method public java.time.format.DateTimeFormatterBuilder appendLiteral(char);
-    method public java.time.format.DateTimeFormatterBuilder appendLiteral(java.lang.String);
+    method public java.time.format.DateTimeFormatterBuilder appendLiteral(String);
     method public java.time.format.DateTimeFormatterBuilder appendLocalized(java.time.format.FormatStyle, java.time.format.FormatStyle);
     method public java.time.format.DateTimeFormatterBuilder appendLocalizedOffset(java.time.format.TextStyle);
-    method public java.time.format.DateTimeFormatterBuilder appendOffset(java.lang.String, java.lang.String);
+    method public java.time.format.DateTimeFormatterBuilder appendOffset(String, String);
     method public java.time.format.DateTimeFormatterBuilder appendOffsetId();
     method public java.time.format.DateTimeFormatterBuilder appendOptional(java.time.format.DateTimeFormatter);
-    method public java.time.format.DateTimeFormatterBuilder appendPattern(java.lang.String);
+    method public java.time.format.DateTimeFormatterBuilder appendPattern(String);
     method public java.time.format.DateTimeFormatterBuilder appendText(java.time.temporal.TemporalField);
     method public java.time.format.DateTimeFormatterBuilder appendText(java.time.temporal.TemporalField, java.time.format.TextStyle);
-    method public java.time.format.DateTimeFormatterBuilder appendText(java.time.temporal.TemporalField, java.util.Map<java.lang.Long, java.lang.String>);
+    method public java.time.format.DateTimeFormatterBuilder appendText(java.time.temporal.TemporalField, java.util.Map<java.lang.Long,java.lang.String>);
     method public java.time.format.DateTimeFormatterBuilder appendValue(java.time.temporal.TemporalField);
     method public java.time.format.DateTimeFormatterBuilder appendValue(java.time.temporal.TemporalField, int);
     method public java.time.format.DateTimeFormatterBuilder appendValue(java.time.temporal.TemporalField, int, int, java.time.format.SignStyle);
@@ -68413,7 +68230,7 @@
     method public java.time.format.DateTimeFormatterBuilder appendZoneRegionId();
     method public java.time.format.DateTimeFormatterBuilder appendZoneText(java.time.format.TextStyle);
     method public java.time.format.DateTimeFormatterBuilder appendZoneText(java.time.format.TextStyle, java.util.Set<java.time.ZoneId>);
-    method public static java.lang.String getLocalizedDateTimePattern(java.time.format.FormatStyle, java.time.format.FormatStyle, java.time.chrono.Chronology, java.util.Locale);
+    method public static String getLocalizedDateTimePattern(java.time.format.FormatStyle, java.time.format.FormatStyle, java.time.chrono.Chronology, java.util.Locale);
     method public java.time.format.DateTimeFormatterBuilder optionalEnd();
     method public java.time.format.DateTimeFormatterBuilder optionalStart();
     method public java.time.format.DateTimeFormatterBuilder padNext(int);
@@ -68428,10 +68245,10 @@
   }
 
   public class DateTimeParseException extends java.time.DateTimeException {
-    ctor public DateTimeParseException(java.lang.String, java.lang.CharSequence, int);
-    ctor public DateTimeParseException(java.lang.String, java.lang.CharSequence, int, java.lang.Throwable);
+    ctor public DateTimeParseException(String, CharSequence, int);
+    ctor public DateTimeParseException(String, CharSequence, int, Throwable);
     method public int getErrorIndex();
-    method public java.lang.String getParsedString();
+    method public String getParsedString();
   }
 
   public final class DecimalStyle {
@@ -68449,26 +68266,20 @@
     field public static final java.time.format.DecimalStyle STANDARD;
   }
 
-  public final class FormatStyle extends java.lang.Enum {
-    method public static java.time.format.FormatStyle valueOf(java.lang.String);
-    method public static final java.time.format.FormatStyle[] values();
+  public enum FormatStyle {
     enum_constant public static final java.time.format.FormatStyle FULL;
     enum_constant public static final java.time.format.FormatStyle LONG;
     enum_constant public static final java.time.format.FormatStyle MEDIUM;
     enum_constant public static final java.time.format.FormatStyle SHORT;
   }
 
-  public final class ResolverStyle extends java.lang.Enum {
-    method public static java.time.format.ResolverStyle valueOf(java.lang.String);
-    method public static final java.time.format.ResolverStyle[] values();
+  public enum ResolverStyle {
     enum_constant public static final java.time.format.ResolverStyle LENIENT;
     enum_constant public static final java.time.format.ResolverStyle SMART;
     enum_constant public static final java.time.format.ResolverStyle STRICT;
   }
 
-  public final class SignStyle extends java.lang.Enum {
-    method public static java.time.format.SignStyle valueOf(java.lang.String);
-    method public static final java.time.format.SignStyle[] values();
+  public enum SignStyle {
     enum_constant public static final java.time.format.SignStyle ALWAYS;
     enum_constant public static final java.time.format.SignStyle EXCEEDS_PAD;
     enum_constant public static final java.time.format.SignStyle NEVER;
@@ -68476,12 +68287,10 @@
     enum_constant public static final java.time.format.SignStyle NOT_NEGATIVE;
   }
 
-  public final class TextStyle extends java.lang.Enum {
+  public enum TextStyle {
     method public java.time.format.TextStyle asNormal();
     method public java.time.format.TextStyle asStandalone();
     method public boolean isStandalone();
-    method public static java.time.format.TextStyle valueOf(java.lang.String);
-    method public static final java.time.format.TextStyle[] values();
     enum_constant public static final java.time.format.TextStyle FULL;
     enum_constant public static final java.time.format.TextStyle FULL_STANDALONE;
     enum_constant public static final java.time.format.TextStyle NARROW;
@@ -68494,7 +68303,7 @@
 
 package java.time.temporal {
 
-  public final class ChronoField extends java.lang.Enum implements java.time.temporal.TemporalField {
+  public enum ChronoField implements java.time.temporal.TemporalField {
     method public <R extends java.time.temporal.Temporal> R adjustInto(R, long);
     method public int checkValidIntValue(long);
     method public long checkValidValue(long);
@@ -68506,8 +68315,6 @@
     method public boolean isTimeBased();
     method public java.time.temporal.ValueRange range();
     method public java.time.temporal.ValueRange rangeRefinedBy(java.time.temporal.TemporalAccessor);
-    method public static java.time.temporal.ChronoField valueOf(java.lang.String);
-    method public static final java.time.temporal.ChronoField[] values();
     enum_constant public static final java.time.temporal.ChronoField ALIGNED_DAY_OF_WEEK_IN_MONTH;
     enum_constant public static final java.time.temporal.ChronoField ALIGNED_DAY_OF_WEEK_IN_YEAR;
     enum_constant public static final java.time.temporal.ChronoField ALIGNED_WEEK_OF_MONTH;
@@ -68540,15 +68347,13 @@
     enum_constant public static final java.time.temporal.ChronoField YEAR_OF_ERA;
   }
 
-  public final class ChronoUnit extends java.lang.Enum implements java.time.temporal.TemporalUnit {
+  public enum ChronoUnit implements java.time.temporal.TemporalUnit {
     method public <R extends java.time.temporal.Temporal> R addTo(R, long);
     method public long between(java.time.temporal.Temporal, java.time.temporal.Temporal);
     method public java.time.Duration getDuration();
     method public boolean isDateBased();
     method public boolean isDurationEstimated();
     method public boolean isTimeBased();
-    method public static java.time.temporal.ChronoUnit valueOf(java.lang.String);
-    method public static final java.time.temporal.ChronoUnit[] values();
     enum_constant public static final java.time.temporal.ChronoUnit CENTURIES;
     enum_constant public static final java.time.temporal.ChronoUnit DAYS;
     enum_constant public static final java.time.temporal.ChronoUnit DECADES;
@@ -68582,27 +68387,27 @@
     field public static final java.time.temporal.TemporalField RATA_DIE;
   }
 
-  public abstract interface Temporal implements java.time.temporal.TemporalAccessor {
-    method public abstract boolean isSupported(java.time.temporal.TemporalUnit);
+  public interface Temporal extends java.time.temporal.TemporalAccessor {
+    method public boolean isSupported(java.time.temporal.TemporalUnit);
     method public default java.time.temporal.Temporal minus(java.time.temporal.TemporalAmount);
     method public default java.time.temporal.Temporal minus(long, java.time.temporal.TemporalUnit);
     method public default java.time.temporal.Temporal plus(java.time.temporal.TemporalAmount);
-    method public abstract java.time.temporal.Temporal plus(long, java.time.temporal.TemporalUnit);
-    method public abstract long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
+    method public java.time.temporal.Temporal plus(long, java.time.temporal.TemporalUnit);
+    method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public default java.time.temporal.Temporal with(java.time.temporal.TemporalAdjuster);
-    method public abstract java.time.temporal.Temporal with(java.time.temporal.TemporalField, long);
+    method public java.time.temporal.Temporal with(java.time.temporal.TemporalField, long);
   }
 
-  public abstract interface TemporalAccessor {
+  public interface TemporalAccessor {
     method public default int get(java.time.temporal.TemporalField);
-    method public abstract long getLong(java.time.temporal.TemporalField);
-    method public abstract boolean isSupported(java.time.temporal.TemporalField);
+    method public long getLong(java.time.temporal.TemporalField);
+    method public boolean isSupported(java.time.temporal.TemporalField);
     method public default <R> R query(java.time.temporal.TemporalQuery<R>);
     method public default java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
   }
 
-  public abstract interface TemporalAdjuster {
-    method public abstract java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
+  @java.lang.FunctionalInterface public interface TemporalAdjuster {
+    method public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
   }
 
   public final class TemporalAdjusters {
@@ -68622,26 +68427,26 @@
     method public static java.time.temporal.TemporalAdjuster previousOrSame(java.time.DayOfWeek);
   }
 
-  public abstract interface TemporalAmount {
-    method public abstract java.time.temporal.Temporal addTo(java.time.temporal.Temporal);
-    method public abstract long get(java.time.temporal.TemporalUnit);
-    method public abstract java.util.List<java.time.temporal.TemporalUnit> getUnits();
-    method public abstract java.time.temporal.Temporal subtractFrom(java.time.temporal.Temporal);
+  public interface TemporalAmount {
+    method public java.time.temporal.Temporal addTo(java.time.temporal.Temporal);
+    method public long get(java.time.temporal.TemporalUnit);
+    method public java.util.List<java.time.temporal.TemporalUnit> getUnits();
+    method public java.time.temporal.Temporal subtractFrom(java.time.temporal.Temporal);
   }
 
-  public abstract interface TemporalField {
-    method public abstract <R extends java.time.temporal.Temporal> R adjustInto(R, long);
-    method public abstract java.time.temporal.TemporalUnit getBaseUnit();
-    method public default java.lang.String getDisplayName(java.util.Locale);
-    method public abstract long getFrom(java.time.temporal.TemporalAccessor);
-    method public abstract java.time.temporal.TemporalUnit getRangeUnit();
-    method public abstract boolean isDateBased();
-    method public abstract boolean isSupportedBy(java.time.temporal.TemporalAccessor);
-    method public abstract boolean isTimeBased();
-    method public abstract java.time.temporal.ValueRange range();
-    method public abstract java.time.temporal.ValueRange rangeRefinedBy(java.time.temporal.TemporalAccessor);
-    method public default java.time.temporal.TemporalAccessor resolve(java.util.Map<java.time.temporal.TemporalField, java.lang.Long>, java.time.temporal.TemporalAccessor, java.time.format.ResolverStyle);
-    method public abstract java.lang.String toString();
+  public interface TemporalField {
+    method public <R extends java.time.temporal.Temporal> R adjustInto(R, long);
+    method public java.time.temporal.TemporalUnit getBaseUnit();
+    method public default String getDisplayName(java.util.Locale);
+    method public long getFrom(java.time.temporal.TemporalAccessor);
+    method public java.time.temporal.TemporalUnit getRangeUnit();
+    method public boolean isDateBased();
+    method public boolean isSupportedBy(java.time.temporal.TemporalAccessor);
+    method public boolean isTimeBased();
+    method public java.time.temporal.ValueRange range();
+    method public java.time.temporal.ValueRange rangeRefinedBy(java.time.temporal.TemporalAccessor);
+    method public default java.time.temporal.TemporalAccessor resolve(java.util.Map<java.time.temporal.TemporalField,java.lang.Long>, java.time.temporal.TemporalAccessor, java.time.format.ResolverStyle);
+    method public String toString();
   }
 
   public final class TemporalQueries {
@@ -68654,24 +68459,24 @@
     method public static java.time.temporal.TemporalQuery<java.time.ZoneId> zoneId();
   }
 
-  public abstract interface TemporalQuery<R> {
-    method public abstract R queryFrom(java.time.temporal.TemporalAccessor);
+  @java.lang.FunctionalInterface public interface TemporalQuery<R> {
+    method public R queryFrom(java.time.temporal.TemporalAccessor);
   }
 
-  public abstract interface TemporalUnit {
-    method public abstract <R extends java.time.temporal.Temporal> R addTo(R, long);
-    method public abstract long between(java.time.temporal.Temporal, java.time.temporal.Temporal);
-    method public abstract java.time.Duration getDuration();
-    method public abstract boolean isDateBased();
-    method public abstract boolean isDurationEstimated();
+  public interface TemporalUnit {
+    method public <R extends java.time.temporal.Temporal> R addTo(R, long);
+    method public long between(java.time.temporal.Temporal, java.time.temporal.Temporal);
+    method public java.time.Duration getDuration();
+    method public boolean isDateBased();
+    method public boolean isDurationEstimated();
     method public default boolean isSupportedBy(java.time.temporal.Temporal);
-    method public abstract boolean isTimeBased();
-    method public abstract java.lang.String toString();
+    method public boolean isTimeBased();
+    method public String toString();
   }
 
   public class UnsupportedTemporalTypeException extends java.time.DateTimeException {
-    ctor public UnsupportedTemporalTypeException(java.lang.String);
-    ctor public UnsupportedTemporalTypeException(java.lang.String, java.lang.Throwable);
+    ctor public UnsupportedTemporalTypeException(String);
+    ctor public UnsupportedTemporalTypeException(String, Throwable);
   }
 
   public final class ValueRange implements java.io.Serializable {
@@ -68709,7 +68514,7 @@
 
 package java.time.zone {
 
-  public final class ZoneOffsetTransition implements java.lang.Comparable java.io.Serializable {
+  public final class ZoneOffsetTransition implements java.lang.Comparable<java.time.zone.ZoneOffsetTransition> java.io.Serializable {
     method public int compareTo(java.time.zone.ZoneOffsetTransition);
     method public java.time.LocalDateTime getDateTimeAfter();
     method public java.time.LocalDateTime getDateTimeBefore();
@@ -68738,10 +68543,8 @@
     method public static java.time.zone.ZoneOffsetTransitionRule of(java.time.Month, int, java.time.DayOfWeek, java.time.LocalTime, boolean, java.time.zone.ZoneOffsetTransitionRule.TimeDefinition, java.time.ZoneOffset, java.time.ZoneOffset, java.time.ZoneOffset);
   }
 
-  public static final class ZoneOffsetTransitionRule.TimeDefinition extends java.lang.Enum {
+  public enum ZoneOffsetTransitionRule.TimeDefinition {
     method public java.time.LocalDateTime createDateTime(java.time.LocalDateTime, java.time.ZoneOffset, java.time.ZoneOffset);
-    method public static java.time.zone.ZoneOffsetTransitionRule.TimeDefinition valueOf(java.lang.String);
-    method public static final java.time.zone.ZoneOffsetTransitionRule.TimeDefinition[] values();
     enum_constant public static final java.time.zone.ZoneOffsetTransitionRule.TimeDefinition STANDARD;
     enum_constant public static final java.time.zone.ZoneOffsetTransitionRule.TimeDefinition UTC;
     enum_constant public static final java.time.zone.ZoneOffsetTransitionRule.TimeDefinition WALL;
@@ -68766,136 +68569,136 @@
   }
 
   public class ZoneRulesException extends java.time.DateTimeException {
-    ctor public ZoneRulesException(java.lang.String);
-    ctor public ZoneRulesException(java.lang.String, java.lang.Throwable);
+    ctor public ZoneRulesException(String);
+    ctor public ZoneRulesException(String, Throwable);
   }
 
 }
 
 package java.util {
 
-  public abstract class AbstractCollection<E> implements java.util.Collection {
+  public abstract class AbstractCollection<E> implements java.util.Collection<E> {
     ctor protected AbstractCollection();
     method public boolean add(E);
-    method public boolean addAll(java.util.Collection<? extends E>);
+    method public boolean addAll(@NonNull java.util.Collection<? extends E>);
     method public void clear();
-    method public boolean contains(java.lang.Object);
-    method public boolean containsAll(java.util.Collection<?>);
+    method public boolean contains(@Nullable Object);
+    method public boolean containsAll(@NonNull java.util.Collection<?>);
     method public boolean isEmpty();
-    method public boolean remove(java.lang.Object);
-    method public boolean removeAll(java.util.Collection<?>);
-    method public boolean retainAll(java.util.Collection<?>);
-    method public java.lang.Object[] toArray();
+    method public boolean remove(@Nullable Object);
+    method public boolean removeAll(@NonNull java.util.Collection<?>);
+    method public boolean retainAll(@NonNull java.util.Collection<?>);
+    method public Object[] toArray();
     method public <T> T[] toArray(T[]);
   }
 
-  public abstract class AbstractList<E> extends java.util.AbstractCollection implements java.util.List {
+  public abstract class AbstractList<E> extends java.util.AbstractCollection<E> implements java.util.List<E> {
     ctor protected AbstractList();
     method public void add(int, E);
-    method public boolean addAll(int, java.util.Collection<? extends E>);
-    method public int indexOf(java.lang.Object);
-    method public java.util.Iterator<E> iterator();
-    method public int lastIndexOf(java.lang.Object);
-    method public java.util.ListIterator<E> listIterator();
-    method public java.util.ListIterator<E> listIterator(int);
+    method public boolean addAll(int, @NonNull java.util.Collection<? extends E>);
+    method public int indexOf(@Nullable Object);
+    method @NonNull public java.util.Iterator<E> iterator();
+    method public int lastIndexOf(@Nullable Object);
+    method @NonNull public java.util.ListIterator<E> listIterator();
+    method @NonNull public java.util.ListIterator<E> listIterator(int);
     method public E remove(int);
     method protected void removeRange(int, int);
     method public E set(int, E);
-    method public java.util.List<E> subList(int, int);
+    method @NonNull public java.util.List<E> subList(int, int);
     field protected transient int modCount;
   }
 
-  public abstract class AbstractMap<K, V> implements java.util.Map {
+  public abstract class AbstractMap<K, V> implements java.util.Map<K,V> {
     ctor protected AbstractMap();
     method public void clear();
-    method public boolean containsKey(java.lang.Object);
-    method public boolean containsValue(java.lang.Object);
-    method public V get(java.lang.Object);
+    method public boolean containsKey(@Nullable Object);
+    method public boolean containsValue(@Nullable Object);
+    method @Nullable public V get(@Nullable Object);
     method public boolean isEmpty();
-    method public java.util.Set<K> keySet();
-    method public V put(K, V);
-    method public void putAll(java.util.Map<? extends K, ? extends V>);
-    method public V remove(java.lang.Object);
+    method @NonNull public java.util.Set<K> keySet();
+    method @Nullable public V put(K, V);
+    method public void putAll(@NonNull java.util.Map<? extends K,? extends V>);
+    method @Nullable public V remove(@Nullable Object);
     method public int size();
-    method public java.util.Collection<V> values();
+    method @NonNull public java.util.Collection<V> values();
   }
 
-  public static class AbstractMap.SimpleEntry<K, V> implements java.util.Map.Entry java.io.Serializable {
+  public static class AbstractMap.SimpleEntry<K, V> implements java.util.Map.Entry<K,V> java.io.Serializable {
     ctor public AbstractMap.SimpleEntry(K, V);
-    ctor public AbstractMap.SimpleEntry(java.util.Map.Entry<? extends K, ? extends V>);
+    ctor public AbstractMap.SimpleEntry(@NonNull java.util.Map.Entry<? extends K,? extends V>);
     method public K getKey();
     method public V getValue();
     method public V setValue(V);
   }
 
-  public static class AbstractMap.SimpleImmutableEntry<K, V> implements java.util.Map.Entry java.io.Serializable {
+  public static class AbstractMap.SimpleImmutableEntry<K, V> implements java.util.Map.Entry<K,V> java.io.Serializable {
     ctor public AbstractMap.SimpleImmutableEntry(K, V);
-    ctor public AbstractMap.SimpleImmutableEntry(java.util.Map.Entry<? extends K, ? extends V>);
+    ctor public AbstractMap.SimpleImmutableEntry(@NonNull java.util.Map.Entry<? extends K,? extends V>);
     method public K getKey();
     method public V getValue();
     method public V setValue(V);
   }
 
-  public abstract class AbstractQueue<E> extends java.util.AbstractCollection implements java.util.Queue {
+  public abstract class AbstractQueue<E> extends java.util.AbstractCollection<E> implements java.util.Queue<E> {
     ctor protected AbstractQueue();
     method public E element();
     method public E remove();
   }
 
-  public abstract class AbstractSequentialList<E> extends java.util.AbstractList {
+  public abstract class AbstractSequentialList<E> extends java.util.AbstractList<E> {
     ctor protected AbstractSequentialList();
     method public E get(int);
   }
 
-  public abstract class AbstractSet<E> extends java.util.AbstractCollection implements java.util.Set {
+  public abstract class AbstractSet<E> extends java.util.AbstractCollection<E> implements java.util.Set<E> {
     ctor protected AbstractSet();
   }
 
-  public class ArrayDeque<E> extends java.util.AbstractCollection implements java.lang.Cloneable java.util.Deque java.io.Serializable {
+  public class ArrayDeque<E> extends java.util.AbstractCollection<E> implements java.lang.Cloneable java.util.Deque<E> java.io.Serializable {
     ctor public ArrayDeque();
     ctor public ArrayDeque(int);
-    ctor public ArrayDeque(java.util.Collection<? extends E>);
+    ctor public ArrayDeque(@NonNull java.util.Collection<? extends E>);
     method public void addFirst(E);
     method public void addLast(E);
-    method public java.util.ArrayDeque<E> clone();
-    method public java.util.Iterator<E> descendingIterator();
+    method @NonNull public java.util.ArrayDeque<E> clone();
+    method @NonNull public java.util.Iterator<E> descendingIterator();
     method public E element();
     method public E getFirst();
     method public E getLast();
-    method public java.util.Iterator<E> iterator();
+    method @NonNull public java.util.Iterator<E> iterator();
     method public boolean offer(E);
     method public boolean offerFirst(E);
     method public boolean offerLast(E);
-    method public E peek();
-    method public E peekFirst();
-    method public E peekLast();
-    method public E poll();
-    method public E pollFirst();
-    method public E pollLast();
+    method @Nullable public E peek();
+    method @Nullable public E peekFirst();
+    method @Nullable public E peekLast();
+    method @Nullable public E poll();
+    method @Nullable public E pollFirst();
+    method @Nullable public E pollLast();
     method public E pop();
     method public void push(E);
     method public E remove();
     method public E removeFirst();
-    method public boolean removeFirstOccurrence(java.lang.Object);
+    method public boolean removeFirstOccurrence(@Nullable Object);
     method public E removeLast();
-    method public boolean removeLastOccurrence(java.lang.Object);
+    method public boolean removeLastOccurrence(@Nullable Object);
     method public int size();
   }
 
-  public class ArrayList<E> extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
+  public class ArrayList<E> extends java.util.AbstractList<E> implements java.lang.Cloneable java.util.List<E> java.util.RandomAccess java.io.Serializable {
     ctor public ArrayList(int);
     ctor public ArrayList();
-    ctor public ArrayList(java.util.Collection<? extends E>);
-    method public java.lang.Object clone();
+    ctor public ArrayList(@NonNull java.util.Collection<? extends E>);
+    method @NonNull public Object clone();
     method public void ensureCapacity(int);
-    method public void forEach(java.util.function.Consumer<? super E>);
+    method public void forEach(@NonNull java.util.function.Consumer<? super E>);
     method public E get(int);
     method public int size();
     method public void trimToSize();
   }
 
   public class Arrays {
-    method public static <T> java.util.List<T> asList(T...);
+    method @NonNull @java.lang.SafeVarargs public static <T> java.util.List<T> asList(T...);
     method public static int binarySearch(long[], long);
     method public static int binarySearch(long[], int, int, long);
     method public static int binarySearch(int[], int);
@@ -68910,12 +68713,12 @@
     method public static int binarySearch(double[], int, int, double);
     method public static int binarySearch(float[], float);
     method public static int binarySearch(float[], int, int, float);
-    method public static int binarySearch(java.lang.Object[], java.lang.Object);
-    method public static int binarySearch(java.lang.Object[], int, int, java.lang.Object);
-    method public static <T> int binarySearch(T[], T, java.util.Comparator<? super T>);
-    method public static <T> int binarySearch(T[], int, int, T, java.util.Comparator<? super T>);
+    method public static int binarySearch(Object[], @NonNull Object);
+    method public static int binarySearch(Object[], int, int, @NonNull Object);
+    method public static <T> int binarySearch(T[], T, @Nullable java.util.Comparator<? super T>);
+    method public static <T> int binarySearch(T[], int, int, T, @Nullable java.util.Comparator<? super T>);
     method public static <T> T[] copyOf(T[], int);
-    method public static <T, U> T[] copyOf(U[], int, java.lang.Class<? extends T[]>);
+    method public static <T, U> T[] copyOf(U[], int, @NonNull Class<? extends T[]>);
     method public static byte[] copyOf(byte[], int);
     method public static short[] copyOf(short[], int);
     method public static int[] copyOf(int[], int);
@@ -68925,7 +68728,7 @@
     method public static double[] copyOf(double[], int);
     method public static boolean[] copyOf(boolean[], int);
     method public static <T> T[] copyOfRange(T[], int, int);
-    method public static <T, U> T[] copyOfRange(U[], int, int, java.lang.Class<? extends T[]>);
+    method public static <T, U> T[] copyOfRange(U[], int, int, @NonNull Class<? extends T[]>);
     method public static byte[] copyOfRange(byte[], int, int);
     method public static short[] copyOfRange(short[], int, int);
     method public static int[] copyOfRange(int[], int, int);
@@ -68934,9 +68737,9 @@
     method public static float[] copyOfRange(float[], int, int);
     method public static double[] copyOfRange(double[], int, int);
     method public static boolean[] copyOfRange(boolean[], int, int);
-    method public static boolean deepEquals(java.lang.Object[], java.lang.Object[]);
-    method public static int deepHashCode(java.lang.Object[]);
-    method public static java.lang.String deepToString(java.lang.Object[]);
+    method public static boolean deepEquals(Object[], Object[]);
+    method public static int deepHashCode(Object[]);
+    method @NonNull public static String deepToString(Object[]);
     method public static boolean equals(long[], long[]);
     method public static boolean equals(int[], int[]);
     method public static boolean equals(short[], short[]);
@@ -68945,7 +68748,7 @@
     method public static boolean equals(boolean[], boolean[]);
     method public static boolean equals(double[], double[]);
     method public static boolean equals(float[], float[]);
-    method public static boolean equals(java.lang.Object[], java.lang.Object[]);
+    method public static boolean equals(Object[], Object[]);
     method public static void fill(long[], long);
     method public static void fill(long[], int, int, long);
     method public static void fill(int[], int);
@@ -68962,8 +68765,8 @@
     method public static void fill(double[], int, int, double);
     method public static void fill(float[], float);
     method public static void fill(float[], int, int, float);
-    method public static void fill(java.lang.Object[], java.lang.Object);
-    method public static void fill(java.lang.Object[], int, int, java.lang.Object);
+    method public static void fill(Object[], @Nullable Object);
+    method public static void fill(Object[], int, int, @Nullable Object);
     method public static int hashCode(long[]);
     method public static int hashCode(int[]);
     method public static int hashCode(short[]);
@@ -68972,19 +68775,19 @@
     method public static int hashCode(boolean[]);
     method public static int hashCode(float[]);
     method public static int hashCode(double[]);
-    method public static int hashCode(java.lang.Object[]);
-    method public static <T> void parallelPrefix(T[], java.util.function.BinaryOperator<T>);
-    method public static <T> void parallelPrefix(T[], int, int, java.util.function.BinaryOperator<T>);
-    method public static void parallelPrefix(long[], java.util.function.LongBinaryOperator);
-    method public static void parallelPrefix(long[], int, int, java.util.function.LongBinaryOperator);
-    method public static void parallelPrefix(double[], java.util.function.DoubleBinaryOperator);
-    method public static void parallelPrefix(double[], int, int, java.util.function.DoubleBinaryOperator);
-    method public static void parallelPrefix(int[], java.util.function.IntBinaryOperator);
-    method public static void parallelPrefix(int[], int, int, java.util.function.IntBinaryOperator);
-    method public static <T> void parallelSetAll(T[], java.util.function.IntFunction<? extends T>);
-    method public static void parallelSetAll(int[], java.util.function.IntUnaryOperator);
-    method public static void parallelSetAll(long[], java.util.function.IntToLongFunction);
-    method public static void parallelSetAll(double[], java.util.function.IntToDoubleFunction);
+    method public static int hashCode(Object[]);
+    method public static <T> void parallelPrefix(T[], @NonNull java.util.function.BinaryOperator<T>);
+    method public static <T> void parallelPrefix(T[], int, int, @NonNull java.util.function.BinaryOperator<T>);
+    method public static void parallelPrefix(long[], @NonNull java.util.function.LongBinaryOperator);
+    method public static void parallelPrefix(long[], int, int, @NonNull java.util.function.LongBinaryOperator);
+    method public static void parallelPrefix(double[], @NonNull java.util.function.DoubleBinaryOperator);
+    method public static void parallelPrefix(double[], int, int, @NonNull java.util.function.DoubleBinaryOperator);
+    method public static void parallelPrefix(int[], @NonNull java.util.function.IntBinaryOperator);
+    method public static void parallelPrefix(int[], int, int, @NonNull java.util.function.IntBinaryOperator);
+    method public static <T> void parallelSetAll(T[], @NonNull java.util.function.IntFunction<? extends T>);
+    method public static void parallelSetAll(int[], @NonNull java.util.function.IntUnaryOperator);
+    method public static void parallelSetAll(long[], @NonNull java.util.function.IntToLongFunction);
+    method public static void parallelSetAll(double[], @NonNull java.util.function.IntToDoubleFunction);
     method public static void parallelSort(byte[]);
     method public static void parallelSort(byte[], int, int);
     method public static void parallelSort(char[]);
@@ -69001,12 +68804,12 @@
     method public static void parallelSort(double[], int, int);
     method public static <T extends java.lang.Comparable<? super T>> void parallelSort(T[]);
     method public static <T extends java.lang.Comparable<? super T>> void parallelSort(T[], int, int);
-    method public static <T> void parallelSort(T[], java.util.Comparator<? super T>);
-    method public static <T> void parallelSort(T[], int, int, java.util.Comparator<? super T>);
-    method public static <T> void setAll(T[], java.util.function.IntFunction<? extends T>);
-    method public static void setAll(int[], java.util.function.IntUnaryOperator);
-    method public static void setAll(long[], java.util.function.IntToLongFunction);
-    method public static void setAll(double[], java.util.function.IntToDoubleFunction);
+    method public static <T> void parallelSort(T[], @Nullable java.util.Comparator<? super T>);
+    method public static <T> void parallelSort(T[], int, int, @Nullable java.util.Comparator<? super T>);
+    method public static <T> void setAll(T[], @NonNull java.util.function.IntFunction<? extends T>);
+    method public static void setAll(int[], @NonNull java.util.function.IntUnaryOperator);
+    method public static void setAll(long[], @NonNull java.util.function.IntToLongFunction);
+    method public static void setAll(double[], @NonNull java.util.function.IntToDoubleFunction);
     method public static void sort(int[]);
     method public static void sort(int[], int, int);
     method public static void sort(long[]);
@@ -69021,35 +68824,35 @@
     method public static void sort(float[], int, int);
     method public static void sort(double[]);
     method public static void sort(double[], int, int);
-    method public static void sort(java.lang.Object[]);
-    method public static void sort(java.lang.Object[], int, int);
-    method public static <T> void sort(T[], java.util.Comparator<? super T>);
-    method public static <T> void sort(T[], int, int, java.util.Comparator<? super T>);
-    method public static <T> java.util.Spliterator<T> spliterator(T[]);
-    method public static <T> java.util.Spliterator<T> spliterator(T[], int, int);
-    method public static java.util.Spliterator.OfInt spliterator(int[]);
-    method public static java.util.Spliterator.OfInt spliterator(int[], int, int);
-    method public static java.util.Spliterator.OfLong spliterator(long[]);
-    method public static java.util.Spliterator.OfLong spliterator(long[], int, int);
-    method public static java.util.Spliterator.OfDouble spliterator(double[]);
-    method public static java.util.Spliterator.OfDouble spliterator(double[], int, int);
-    method public static <T> java.util.stream.Stream<T> stream(T[]);
-    method public static <T> java.util.stream.Stream<T> stream(T[], int, int);
-    method public static java.util.stream.IntStream stream(int[]);
-    method public static java.util.stream.IntStream stream(int[], int, int);
-    method public static java.util.stream.LongStream stream(long[]);
-    method public static java.util.stream.LongStream stream(long[], int, int);
-    method public static java.util.stream.DoubleStream stream(double[]);
-    method public static java.util.stream.DoubleStream stream(double[], int, int);
-    method public static java.lang.String toString(long[]);
-    method public static java.lang.String toString(int[]);
-    method public static java.lang.String toString(short[]);
-    method public static java.lang.String toString(char[]);
-    method public static java.lang.String toString(byte[]);
-    method public static java.lang.String toString(boolean[]);
-    method public static java.lang.String toString(float[]);
-    method public static java.lang.String toString(double[]);
-    method public static java.lang.String toString(java.lang.Object[]);
+    method public static void sort(Object[]);
+    method public static void sort(Object[], int, int);
+    method public static <T> void sort(T[], @Nullable java.util.Comparator<? super T>);
+    method public static <T> void sort(T[], int, int, @Nullable java.util.Comparator<? super T>);
+    method @NonNull public static <T> java.util.Spliterator<T> spliterator(T[]);
+    method @NonNull public static <T> java.util.Spliterator<T> spliterator(T[], int, int);
+    method @NonNull public static java.util.Spliterator.OfInt spliterator(int[]);
+    method @NonNull public static java.util.Spliterator.OfInt spliterator(int[], int, int);
+    method @NonNull public static java.util.Spliterator.OfLong spliterator(long[]);
+    method @NonNull public static java.util.Spliterator.OfLong spliterator(long[], int, int);
+    method @NonNull public static java.util.Spliterator.OfDouble spliterator(double[]);
+    method @NonNull public static java.util.Spliterator.OfDouble spliterator(double[], int, int);
+    method @NonNull public static <T> java.util.stream.Stream<T> stream(T[]);
+    method @NonNull public static <T> java.util.stream.Stream<T> stream(T[], int, int);
+    method @NonNull public static java.util.stream.IntStream stream(int[]);
+    method @NonNull public static java.util.stream.IntStream stream(int[], int, int);
+    method @NonNull public static java.util.stream.LongStream stream(long[]);
+    method @NonNull public static java.util.stream.LongStream stream(long[], int, int);
+    method @NonNull public static java.util.stream.DoubleStream stream(double[]);
+    method @NonNull public static java.util.stream.DoubleStream stream(double[], int, int);
+    method @NonNull public static String toString(long[]);
+    method @NonNull public static String toString(int[]);
+    method @NonNull public static String toString(short[]);
+    method @NonNull public static String toString(char[]);
+    method @NonNull public static String toString(byte[]);
+    method @NonNull public static String toString(boolean[]);
+    method @NonNull public static String toString(float[]);
+    method @NonNull public static String toString(double[]);
+    method @NonNull public static String toString(Object[]);
   }
 
   public class Base64 {
@@ -69064,7 +68867,7 @@
 
   public static class Base64.Decoder {
     method public byte[] decode(byte[]);
-    method public byte[] decode(java.lang.String);
+    method public byte[] decode(String);
     method public int decode(byte[], byte[]);
     method public java.nio.ByteBuffer decode(java.nio.ByteBuffer);
     method public java.io.InputStream wrap(java.io.InputStream);
@@ -69074,7 +68877,7 @@
     method public byte[] encode(byte[]);
     method public int encode(byte[], byte[]);
     method public java.nio.ByteBuffer encode(java.nio.ByteBuffer);
-    method public java.lang.String encodeToString(byte[]);
+    method public String encodeToString(byte[]);
     method public java.util.Base64.Encoder withoutPadding();
     method public java.io.OutputStream wrap(java.io.OutputStream);
   }
@@ -69088,7 +68891,7 @@
     method public void clear(int);
     method public void clear(int, int);
     method public void clear();
-    method public java.lang.Object clone();
+    method public Object clone();
     method public void flip(int);
     method public void flip(int, int);
     method public boolean get(int);
@@ -69116,40 +68919,40 @@
     method public void xor(java.util.BitSet);
   }
 
-  public abstract class Calendar implements java.lang.Cloneable java.lang.Comparable java.io.Serializable {
+  public abstract class Calendar implements java.lang.Cloneable java.lang.Comparable<java.util.Calendar> java.io.Serializable {
     ctor protected Calendar();
-    ctor protected Calendar(java.util.TimeZone, java.util.Locale);
+    ctor protected Calendar(@NonNull java.util.TimeZone, @NonNull java.util.Locale);
     method public abstract void add(int, int);
-    method public boolean after(java.lang.Object);
-    method public boolean before(java.lang.Object);
+    method public boolean after(@Nullable Object);
+    method public boolean before(@Nullable Object);
     method public final void clear();
     method public final void clear(int);
-    method public java.lang.Object clone();
-    method public int compareTo(java.util.Calendar);
+    method @NonNull public Object clone();
+    method public int compareTo(@NonNull java.util.Calendar);
     method protected void complete();
     method protected abstract void computeFields();
     method protected abstract void computeTime();
     method public int get(int);
     method public int getActualMaximum(int);
     method public int getActualMinimum(int);
-    method public static java.util.Set<java.lang.String> getAvailableCalendarTypes();
-    method public static synchronized java.util.Locale[] getAvailableLocales();
-    method public java.lang.String getCalendarType();
-    method public java.lang.String getDisplayName(int, int, java.util.Locale);
-    method public java.util.Map<java.lang.String, java.lang.Integer> getDisplayNames(int, int, java.util.Locale);
+    method @NonNull public static java.util.Set<java.lang.String> getAvailableCalendarTypes();
+    method public static java.util.Locale[] getAvailableLocales();
+    method @NonNull public String getCalendarType();
+    method @Nullable public String getDisplayName(int, int, @NonNull java.util.Locale);
+    method @Nullable public java.util.Map<java.lang.String,java.lang.Integer> getDisplayNames(int, int, @NonNull java.util.Locale);
     method public int getFirstDayOfWeek();
     method public abstract int getGreatestMinimum(int);
-    method public static java.util.Calendar getInstance();
-    method public static java.util.Calendar getInstance(java.util.TimeZone);
-    method public static java.util.Calendar getInstance(java.util.Locale);
-    method public static java.util.Calendar getInstance(java.util.TimeZone, java.util.Locale);
+    method @NonNull public static java.util.Calendar getInstance();
+    method @NonNull public static java.util.Calendar getInstance(@NonNull java.util.TimeZone);
+    method @NonNull public static java.util.Calendar getInstance(@NonNull java.util.Locale);
+    method @NonNull public static java.util.Calendar getInstance(@NonNull java.util.TimeZone, @NonNull java.util.Locale);
     method public abstract int getLeastMaximum(int);
     method public abstract int getMaximum(int);
     method public int getMinimalDaysInFirstWeek();
     method public abstract int getMinimum(int);
-    method public final java.util.Date getTime();
+    method @NonNull public final java.util.Date getTime();
     method public long getTimeInMillis();
-    method public java.util.TimeZone getTimeZone();
+    method @NonNull public java.util.TimeZone getTimeZone();
     method public int getWeekYear();
     method public int getWeeksInWeekYear();
     method protected final int internalGet(int);
@@ -69165,11 +68968,11 @@
     method public void setFirstDayOfWeek(int);
     method public void setLenient(boolean);
     method public void setMinimalDaysInFirstWeek(int);
-    method public final void setTime(java.util.Date);
+    method public final void setTime(@NonNull java.util.Date);
     method public void setTimeInMillis(long);
-    method public void setTimeZone(java.util.TimeZone);
+    method public void setTimeZone(@NonNull java.util.TimeZone);
     method public void setWeekDate(int, int, int);
-    method public final java.time.Instant toInstant();
+    method @NonNull public final java.time.Instant toInstant();
     field public static final int ALL_STYLES = 0; // 0x0
     field public static final int AM = 0; // 0x0
     field public static final int AM_PM = 9; // 0x9
@@ -69229,132 +69032,132 @@
 
   public static class Calendar.Builder {
     ctor public Calendar.Builder();
-    method public java.util.Calendar build();
-    method public java.util.Calendar.Builder set(int, int);
-    method public java.util.Calendar.Builder setCalendarType(java.lang.String);
-    method public java.util.Calendar.Builder setDate(int, int, int);
-    method public java.util.Calendar.Builder setFields(int...);
-    method public java.util.Calendar.Builder setInstant(long);
-    method public java.util.Calendar.Builder setInstant(java.util.Date);
-    method public java.util.Calendar.Builder setLenient(boolean);
-    method public java.util.Calendar.Builder setLocale(java.util.Locale);
-    method public java.util.Calendar.Builder setTimeOfDay(int, int, int);
-    method public java.util.Calendar.Builder setTimeOfDay(int, int, int, int);
-    method public java.util.Calendar.Builder setTimeZone(java.util.TimeZone);
-    method public java.util.Calendar.Builder setWeekDate(int, int, int);
-    method public java.util.Calendar.Builder setWeekDefinition(int, int);
+    method @NonNull public java.util.Calendar build();
+    method @NonNull public java.util.Calendar.Builder set(int, int);
+    method @NonNull public java.util.Calendar.Builder setCalendarType(@NonNull String);
+    method @NonNull public java.util.Calendar.Builder setDate(int, int, int);
+    method @NonNull public java.util.Calendar.Builder setFields(int...);
+    method @NonNull public java.util.Calendar.Builder setInstant(long);
+    method @NonNull public java.util.Calendar.Builder setInstant(@NonNull java.util.Date);
+    method @NonNull public java.util.Calendar.Builder setLenient(boolean);
+    method @NonNull public java.util.Calendar.Builder setLocale(@NonNull java.util.Locale);
+    method @NonNull public java.util.Calendar.Builder setTimeOfDay(int, int, int);
+    method @NonNull public java.util.Calendar.Builder setTimeOfDay(int, int, int, int);
+    method @NonNull public java.util.Calendar.Builder setTimeZone(@NonNull java.util.TimeZone);
+    method @NonNull public java.util.Calendar.Builder setWeekDate(int, int, int);
+    method @NonNull public java.util.Calendar.Builder setWeekDefinition(int, int);
   }
 
-  public abstract interface Collection<E> implements java.lang.Iterable {
-    method public abstract boolean add(E);
-    method public abstract boolean addAll(java.util.Collection<? extends E>);
-    method public abstract void clear();
-    method public abstract boolean contains(java.lang.Object);
-    method public abstract boolean containsAll(java.util.Collection<?>);
-    method public abstract boolean equals(java.lang.Object);
-    method public abstract int hashCode();
-    method public abstract boolean isEmpty();
-    method public abstract java.util.Iterator<E> iterator();
-    method public default java.util.stream.Stream<E> parallelStream();
-    method public abstract boolean remove(java.lang.Object);
-    method public abstract boolean removeAll(java.util.Collection<?>);
-    method public default boolean removeIf(java.util.function.Predicate<? super E>);
-    method public abstract boolean retainAll(java.util.Collection<?>);
-    method public abstract int size();
-    method public default java.util.Spliterator<E> spliterator();
-    method public default java.util.stream.Stream<E> stream();
-    method public abstract java.lang.Object[] toArray();
-    method public abstract <T> T[] toArray(T[]);
+  public interface Collection<E> extends java.lang.Iterable<E> {
+    method public boolean add(E);
+    method public boolean addAll(@NonNull java.util.Collection<? extends E>);
+    method public void clear();
+    method public boolean contains(@Nullable Object);
+    method public boolean containsAll(@NonNull java.util.Collection<?>);
+    method public boolean equals(@Nullable Object);
+    method public int hashCode();
+    method public boolean isEmpty();
+    method @NonNull public java.util.Iterator<E> iterator();
+    method @NonNull public default java.util.stream.Stream<E> parallelStream();
+    method public boolean remove(@Nullable Object);
+    method public boolean removeAll(@NonNull java.util.Collection<?>);
+    method public default boolean removeIf(@NonNull java.util.function.Predicate<? super E>);
+    method public boolean retainAll(@NonNull java.util.Collection<?>);
+    method public int size();
+    method @NonNull public default java.util.Spliterator<E> spliterator();
+    method @NonNull public default java.util.stream.Stream<E> stream();
+    method public Object[] toArray();
+    method public <T> T[] toArray(T[]);
   }
 
   public class Collections {
-    method public static <T> boolean addAll(java.util.Collection<? super T>, T...);
-    method public static <T> java.util.Queue<T> asLifoQueue(java.util.Deque<T>);
-    method public static <T> int binarySearch(java.util.List<? extends java.lang.Comparable<? super T>>, T);
-    method public static <T> int binarySearch(java.util.List<? extends T>, T, java.util.Comparator<? super T>);
-    method public static <E> java.util.Collection<E> checkedCollection(java.util.Collection<E>, java.lang.Class<E>);
-    method public static <E> java.util.List<E> checkedList(java.util.List<E>, java.lang.Class<E>);
-    method public static <K, V> java.util.Map<K, V> checkedMap(java.util.Map<K, V>, java.lang.Class<K>, java.lang.Class<V>);
-    method public static <K, V> java.util.NavigableMap<K, V> checkedNavigableMap(java.util.NavigableMap<K, V>, java.lang.Class<K>, java.lang.Class<V>);
-    method public static <E> java.util.NavigableSet<E> checkedNavigableSet(java.util.NavigableSet<E>, java.lang.Class<E>);
-    method public static <E> java.util.Queue<E> checkedQueue(java.util.Queue<E>, java.lang.Class<E>);
-    method public static <E> java.util.Set<E> checkedSet(java.util.Set<E>, java.lang.Class<E>);
-    method public static <K, V> java.util.SortedMap<K, V> checkedSortedMap(java.util.SortedMap<K, V>, java.lang.Class<K>, java.lang.Class<V>);
-    method public static <E> java.util.SortedSet<E> checkedSortedSet(java.util.SortedSet<E>, java.lang.Class<E>);
-    method public static <T> void copy(java.util.List<? super T>, java.util.List<? extends T>);
-    method public static boolean disjoint(java.util.Collection<?>, java.util.Collection<?>);
-    method public static <T> java.util.Enumeration<T> emptyEnumeration();
-    method public static <T> java.util.Iterator<T> emptyIterator();
-    method public static final <T> java.util.List<T> emptyList();
-    method public static <T> java.util.ListIterator<T> emptyListIterator();
-    method public static final <K, V> java.util.Map<K, V> emptyMap();
-    method public static final <K, V> java.util.NavigableMap<K, V> emptyNavigableMap();
-    method public static <E> java.util.NavigableSet<E> emptyNavigableSet();
-    method public static final <T> java.util.Set<T> emptySet();
-    method public static final <K, V> java.util.SortedMap<K, V> emptySortedMap();
-    method public static <E> java.util.SortedSet<E> emptySortedSet();
-    method public static <T> java.util.Enumeration<T> enumeration(java.util.Collection<T>);
-    method public static <T> void fill(java.util.List<? super T>, T);
-    method public static int frequency(java.util.Collection<?>, java.lang.Object);
-    method public static int indexOfSubList(java.util.List<?>, java.util.List<?>);
-    method public static int lastIndexOfSubList(java.util.List<?>, java.util.List<?>);
-    method public static <T> java.util.ArrayList<T> list(java.util.Enumeration<T>);
-    method public static <T extends java.lang.Object & java.lang.Comparable<? super T>> T max(java.util.Collection<? extends T>);
-    method public static <T> T max(java.util.Collection<? extends T>, java.util.Comparator<? super T>);
-    method public static <T extends java.lang.Object & java.lang.Comparable<? super T>> T min(java.util.Collection<? extends T>);
-    method public static <T> T min(java.util.Collection<? extends T>, java.util.Comparator<? super T>);
-    method public static <T> java.util.List<T> nCopies(int, T);
-    method public static <E> java.util.Set<E> newSetFromMap(java.util.Map<E, java.lang.Boolean>);
-    method public static <T> boolean replaceAll(java.util.List<T>, T, T);
-    method public static void reverse(java.util.List<?>);
-    method public static <T> java.util.Comparator<T> reverseOrder();
-    method public static <T> java.util.Comparator<T> reverseOrder(java.util.Comparator<T>);
-    method public static void rotate(java.util.List<?>, int);
-    method public static void shuffle(java.util.List<?>);
-    method public static void shuffle(java.util.List<?>, java.util.Random);
-    method public static <T> java.util.Set<T> singleton(T);
-    method public static <T> java.util.List<T> singletonList(T);
-    method public static <K, V> java.util.Map<K, V> singletonMap(K, V);
-    method public static <T extends java.lang.Comparable<? super T>> void sort(java.util.List<T>);
-    method public static <T> void sort(java.util.List<T>, java.util.Comparator<? super T>);
-    method public static void swap(java.util.List<?>, int, int);
-    method public static <T> java.util.Collection<T> synchronizedCollection(java.util.Collection<T>);
-    method public static <T> java.util.List<T> synchronizedList(java.util.List<T>);
-    method public static <K, V> java.util.Map<K, V> synchronizedMap(java.util.Map<K, V>);
-    method public static <K, V> java.util.NavigableMap<K, V> synchronizedNavigableMap(java.util.NavigableMap<K, V>);
-    method public static <T> java.util.NavigableSet<T> synchronizedNavigableSet(java.util.NavigableSet<T>);
-    method public static <T> java.util.Set<T> synchronizedSet(java.util.Set<T>);
-    method public static <K, V> java.util.SortedMap<K, V> synchronizedSortedMap(java.util.SortedMap<K, V>);
-    method public static <T> java.util.SortedSet<T> synchronizedSortedSet(java.util.SortedSet<T>);
-    method public static <T> java.util.Collection<T> unmodifiableCollection(java.util.Collection<? extends T>);
-    method public static <T> java.util.List<T> unmodifiableList(java.util.List<? extends T>);
-    method public static <K, V> java.util.Map<K, V> unmodifiableMap(java.util.Map<? extends K, ? extends V>);
-    method public static <K, V> java.util.NavigableMap<K, V> unmodifiableNavigableMap(java.util.NavigableMap<K, ? extends V>);
-    method public static <T> java.util.NavigableSet<T> unmodifiableNavigableSet(java.util.NavigableSet<T>);
-    method public static <T> java.util.Set<T> unmodifiableSet(java.util.Set<? extends T>);
-    method public static <K, V> java.util.SortedMap<K, V> unmodifiableSortedMap(java.util.SortedMap<K, ? extends V>);
-    method public static <T> java.util.SortedSet<T> unmodifiableSortedSet(java.util.SortedSet<T>);
-    field public static final java.util.List EMPTY_LIST;
-    field public static final java.util.Map EMPTY_MAP;
-    field public static final java.util.Set EMPTY_SET;
+    method @java.lang.SafeVarargs public static <T> boolean addAll(@NonNull java.util.Collection<? super T>, T...);
+    method @NonNull public static <T> java.util.Queue<T> asLifoQueue(@NonNull java.util.Deque<T>);
+    method public static <T> int binarySearch(@NonNull java.util.List<? extends java.lang.Comparable<? super T>>, @NonNull T);
+    method public static <T> int binarySearch(@NonNull java.util.List<? extends T>, T, @Nullable java.util.Comparator<? super T>);
+    method @NonNull public static <E> java.util.Collection<E> checkedCollection(@NonNull java.util.Collection<E>, @NonNull Class<E>);
+    method @NonNull public static <E> java.util.List<E> checkedList(@NonNull java.util.List<E>, @NonNull Class<E>);
+    method @NonNull public static <K, V> java.util.Map<K,V> checkedMap(@NonNull java.util.Map<K,V>, @NonNull Class<K>, @NonNull Class<V>);
+    method @NonNull public static <K, V> java.util.NavigableMap<K,V> checkedNavigableMap(@NonNull java.util.NavigableMap<K,V>, @NonNull Class<K>, @NonNull Class<V>);
+    method @NonNull public static <E> java.util.NavigableSet<E> checkedNavigableSet(@NonNull java.util.NavigableSet<E>, @NonNull Class<E>);
+    method @NonNull public static <E> java.util.Queue<E> checkedQueue(@NonNull java.util.Queue<E>, @NonNull Class<E>);
+    method @NonNull public static <E> java.util.Set<E> checkedSet(@NonNull java.util.Set<E>, @NonNull Class<E>);
+    method @NonNull public static <K, V> java.util.SortedMap<K,V> checkedSortedMap(@NonNull java.util.SortedMap<K,V>, @NonNull Class<K>, @NonNull Class<V>);
+    method @NonNull public static <E> java.util.SortedSet<E> checkedSortedSet(@NonNull java.util.SortedSet<E>, @NonNull Class<E>);
+    method public static <T> void copy(@NonNull java.util.List<? super T>, @NonNull java.util.List<? extends T>);
+    method public static boolean disjoint(@NonNull java.util.Collection<?>, @NonNull java.util.Collection<?>);
+    method @NonNull public static <T> java.util.Enumeration<T> emptyEnumeration();
+    method @NonNull public static <T> java.util.Iterator<T> emptyIterator();
+    method @NonNull public static final <T> java.util.List<T> emptyList();
+    method @NonNull public static <T> java.util.ListIterator<T> emptyListIterator();
+    method @NonNull public static final <K, V> java.util.Map<K,V> emptyMap();
+    method @NonNull public static final <K, V> java.util.NavigableMap<K,V> emptyNavigableMap();
+    method @NonNull public static <E> java.util.NavigableSet<E> emptyNavigableSet();
+    method @NonNull public static final <T> java.util.Set<T> emptySet();
+    method @NonNull public static final <K, V> java.util.SortedMap<K,V> emptySortedMap();
+    method @NonNull public static <E> java.util.SortedSet<E> emptySortedSet();
+    method @NonNull public static <T> java.util.Enumeration<T> enumeration(@NonNull java.util.Collection<T>);
+    method public static <T> void fill(@NonNull java.util.List<? super T>, T);
+    method public static int frequency(@NonNull java.util.Collection<?>, @Nullable Object);
+    method public static int indexOfSubList(@NonNull java.util.List<?>, @NonNull java.util.List<?>);
+    method public static int lastIndexOfSubList(@NonNull java.util.List<?>, @NonNull java.util.List<?>);
+    method @NonNull public static <T> java.util.ArrayList<T> list(@NonNull java.util.Enumeration<T>);
+    method @NonNull public static <T extends java.lang.Object & java.lang.Comparable<? super T>> T max(@NonNull java.util.Collection<? extends T>);
+    method public static <T> T max(@NonNull java.util.Collection<? extends T>, @Nullable java.util.Comparator<? super T>);
+    method @NonNull public static <T extends java.lang.Object & java.lang.Comparable<? super T>> T min(@NonNull java.util.Collection<? extends T>);
+    method public static <T> T min(@NonNull java.util.Collection<? extends T>, @Nullable java.util.Comparator<? super T>);
+    method @NonNull public static <T> java.util.List<T> nCopies(int, T);
+    method @NonNull public static <E> java.util.Set<E> newSetFromMap(@NonNull java.util.Map<E,java.lang.Boolean>);
+    method public static <T> boolean replaceAll(@NonNull java.util.List<T>, T, T);
+    method public static void reverse(@NonNull java.util.List<?>);
+    method @NonNull public static <T> java.util.Comparator<T> reverseOrder();
+    method @NonNull public static <T> java.util.Comparator<T> reverseOrder(@Nullable java.util.Comparator<T>);
+    method public static void rotate(@NonNull java.util.List<?>, int);
+    method public static void shuffle(@NonNull java.util.List<?>);
+    method public static void shuffle(@NonNull java.util.List<?>, @NonNull java.util.Random);
+    method @NonNull public static <T> java.util.Set<T> singleton(T);
+    method @NonNull public static <T> java.util.List<T> singletonList(T);
+    method @NonNull public static <K, V> java.util.Map<K,V> singletonMap(K, V);
+    method public static <T extends java.lang.Comparable<? super T>> void sort(@NonNull java.util.List<T>);
+    method public static <T> void sort(@NonNull java.util.List<T>, @Nullable java.util.Comparator<? super T>);
+    method public static void swap(@NonNull java.util.List<?>, int, int);
+    method @NonNull public static <T> java.util.Collection<T> synchronizedCollection(@NonNull java.util.Collection<T>);
+    method @NonNull public static <T> java.util.List<T> synchronizedList(@NonNull java.util.List<T>);
+    method @NonNull public static <K, V> java.util.Map<K,V> synchronizedMap(@NonNull java.util.Map<K,V>);
+    method @NonNull public static <K, V> java.util.NavigableMap<K,V> synchronizedNavigableMap(@NonNull java.util.NavigableMap<K,V>);
+    method @NonNull public static <T> java.util.NavigableSet<T> synchronizedNavigableSet(@NonNull java.util.NavigableSet<T>);
+    method @NonNull public static <T> java.util.Set<T> synchronizedSet(@NonNull java.util.Set<T>);
+    method @NonNull public static <K, V> java.util.SortedMap<K,V> synchronizedSortedMap(@NonNull java.util.SortedMap<K,V>);
+    method @NonNull public static <T> java.util.SortedSet<T> synchronizedSortedSet(@NonNull java.util.SortedSet<T>);
+    method @NonNull public static <T> java.util.Collection<T> unmodifiableCollection(@NonNull java.util.Collection<? extends T>);
+    method @NonNull public static <T> java.util.List<T> unmodifiableList(@NonNull java.util.List<? extends T>);
+    method @NonNull public static <K, V> java.util.Map<K,V> unmodifiableMap(@NonNull java.util.Map<? extends K,? extends V>);
+    method @NonNull public static <K, V> java.util.NavigableMap<K,V> unmodifiableNavigableMap(@NonNull java.util.NavigableMap<K,? extends V>);
+    method @NonNull public static <T> java.util.NavigableSet<T> unmodifiableNavigableSet(@NonNull java.util.NavigableSet<T>);
+    method @NonNull public static <T> java.util.Set<T> unmodifiableSet(@NonNull java.util.Set<? extends T>);
+    method @NonNull public static <K, V> java.util.SortedMap<K,V> unmodifiableSortedMap(@NonNull java.util.SortedMap<K,? extends V>);
+    method @NonNull public static <T> java.util.SortedSet<T> unmodifiableSortedSet(@NonNull java.util.SortedSet<T>);
+    field @NonNull public static final java.util.List EMPTY_LIST;
+    field @NonNull public static final java.util.Map EMPTY_MAP;
+    field @NonNull public static final java.util.Set EMPTY_SET;
   }
 
-  public abstract interface Comparator<T> {
-    method public abstract int compare(T, T);
-    method public static <T, U> java.util.Comparator<T> comparing(java.util.function.Function<? super T, ? extends U>, java.util.Comparator<? super U>);
-    method public static <T, U extends java.lang.Comparable<? super U>> java.util.Comparator<T> comparing(java.util.function.Function<? super T, ? extends U>);
+  @java.lang.FunctionalInterface public interface Comparator<T> {
+    method public int compare(T, T);
+    method public static <T, U> java.util.Comparator<T> comparing(java.util.function.Function<? super T,? extends U>, java.util.Comparator<? super U>);
+    method public static <T, U extends java.lang.Comparable<? super U>> java.util.Comparator<T> comparing(java.util.function.Function<? super T,? extends U>);
     method public static <T> java.util.Comparator<T> comparingDouble(java.util.function.ToDoubleFunction<? super T>);
     method public static <T> java.util.Comparator<T> comparingInt(java.util.function.ToIntFunction<? super T>);
     method public static <T> java.util.Comparator<T> comparingLong(java.util.function.ToLongFunction<? super T>);
-    method public abstract boolean equals(java.lang.Object);
+    method public boolean equals(Object);
     method public static <T extends java.lang.Comparable<? super T>> java.util.Comparator<T> naturalOrder();
     method public static <T> java.util.Comparator<T> nullsFirst(java.util.Comparator<? super T>);
     method public static <T> java.util.Comparator<T> nullsLast(java.util.Comparator<? super T>);
     method public static <T extends java.lang.Comparable<? super T>> java.util.Comparator<T> reverseOrder();
     method public default java.util.Comparator<T> reversed();
     method public default java.util.Comparator<T> thenComparing(java.util.Comparator<? super T>);
-    method public default <U> java.util.Comparator<T> thenComparing(java.util.function.Function<? super T, ? extends U>, java.util.Comparator<? super U>);
-    method public default <U extends java.lang.Comparable<? super U>> java.util.Comparator<T> thenComparing(java.util.function.Function<? super T, ? extends U>);
+    method public default <U> java.util.Comparator<T> thenComparing(java.util.function.Function<? super T,? extends U>, java.util.Comparator<? super U>);
+    method public default <U extends java.lang.Comparable<? super U>> java.util.Comparator<T> thenComparing(java.util.function.Function<? super T,? extends U>);
     method public default java.util.Comparator<T> thenComparingDouble(java.util.function.ToDoubleFunction<? super T>);
     method public default java.util.Comparator<T> thenComparingInt(java.util.function.ToIntFunction<? super T>);
     method public default java.util.Comparator<T> thenComparingLong(java.util.function.ToLongFunction<? super T>);
@@ -69362,87 +69165,87 @@
 
   public class ConcurrentModificationException extends java.lang.RuntimeException {
     ctor public ConcurrentModificationException();
-    ctor public ConcurrentModificationException(java.lang.String);
-    ctor public ConcurrentModificationException(java.lang.Throwable);
-    ctor public ConcurrentModificationException(java.lang.String, java.lang.Throwable);
+    ctor public ConcurrentModificationException(String);
+    ctor public ConcurrentModificationException(Throwable);
+    ctor public ConcurrentModificationException(String, Throwable);
   }
 
   public final class Currency implements java.io.Serializable {
     method public static java.util.Set<java.util.Currency> getAvailableCurrencies();
-    method public java.lang.String getCurrencyCode();
+    method public String getCurrencyCode();
     method public int getDefaultFractionDigits();
-    method public java.lang.String getDisplayName();
-    method public java.lang.String getDisplayName(java.util.Locale);
-    method public static java.util.Currency getInstance(java.lang.String);
+    method public String getDisplayName();
+    method public String getDisplayName(java.util.Locale);
+    method public static java.util.Currency getInstance(String);
     method public static java.util.Currency getInstance(java.util.Locale);
     method public int getNumericCode();
-    method public java.lang.String getSymbol();
-    method public java.lang.String getSymbol(java.util.Locale);
+    method public String getSymbol();
+    method public String getSymbol(java.util.Locale);
   }
 
-  public class Date implements java.lang.Cloneable java.lang.Comparable java.io.Serializable {
+  public class Date implements java.lang.Cloneable java.lang.Comparable<java.util.Date> java.io.Serializable {
     ctor public Date();
     ctor public Date(long);
-    ctor public deprecated Date(int, int, int);
-    ctor public deprecated Date(int, int, int, int, int);
-    ctor public deprecated Date(int, int, int, int, int, int);
-    ctor public deprecated Date(java.lang.String);
-    method public static deprecated long UTC(int, int, int, int, int, int);
+    ctor @Deprecated public Date(int, int, int);
+    ctor @Deprecated public Date(int, int, int, int, int);
+    ctor @Deprecated public Date(int, int, int, int, int, int);
+    ctor @Deprecated public Date(String);
+    method @Deprecated public static long UTC(int, int, int, int, int, int);
     method public boolean after(java.util.Date);
     method public boolean before(java.util.Date);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public int compareTo(java.util.Date);
     method public static java.util.Date from(java.time.Instant);
-    method public deprecated int getDate();
-    method public deprecated int getDay();
-    method public deprecated int getHours();
-    method public deprecated int getMinutes();
-    method public deprecated int getMonth();
-    method public deprecated int getSeconds();
+    method @Deprecated public int getDate();
+    method @Deprecated public int getDay();
+    method @Deprecated public int getHours();
+    method @Deprecated public int getMinutes();
+    method @Deprecated public int getMonth();
+    method @Deprecated public int getSeconds();
     method public long getTime();
-    method public deprecated int getTimezoneOffset();
-    method public deprecated int getYear();
-    method public static deprecated long parse(java.lang.String);
-    method public deprecated void setDate(int);
-    method public deprecated void setHours(int);
-    method public deprecated void setMinutes(int);
-    method public deprecated void setMonth(int);
-    method public deprecated void setSeconds(int);
+    method @Deprecated public int getTimezoneOffset();
+    method @Deprecated public int getYear();
+    method @Deprecated public static long parse(String);
+    method @Deprecated public void setDate(int);
+    method @Deprecated public void setHours(int);
+    method @Deprecated public void setMinutes(int);
+    method @Deprecated public void setMonth(int);
+    method @Deprecated public void setSeconds(int);
     method public void setTime(long);
-    method public deprecated void setYear(int);
-    method public deprecated java.lang.String toGMTString();
+    method @Deprecated public void setYear(int);
+    method @Deprecated public String toGMTString();
     method public java.time.Instant toInstant();
-    method public deprecated java.lang.String toLocaleString();
+    method @Deprecated public String toLocaleString();
   }
 
-  public abstract interface Deque<E> implements java.util.Queue {
-    method public abstract void addFirst(E);
-    method public abstract void addLast(E);
-    method public abstract java.util.Iterator<E> descendingIterator();
-    method public abstract E getFirst();
-    method public abstract E getLast();
-    method public abstract boolean offerFirst(E);
-    method public abstract boolean offerLast(E);
-    method public abstract E peekFirst();
-    method public abstract E peekLast();
-    method public abstract E pollFirst();
-    method public abstract E pollLast();
-    method public abstract E pop();
-    method public abstract void push(E);
-    method public abstract E removeFirst();
-    method public abstract boolean removeFirstOccurrence(java.lang.Object);
-    method public abstract E removeLast();
-    method public abstract boolean removeLastOccurrence(java.lang.Object);
+  public interface Deque<E> extends java.util.Queue<E> {
+    method public void addFirst(E);
+    method public void addLast(E);
+    method @NonNull public java.util.Iterator<E> descendingIterator();
+    method public E getFirst();
+    method public E getLast();
+    method public boolean offerFirst(E);
+    method public boolean offerLast(E);
+    method @Nullable public E peekFirst();
+    method @Nullable public E peekLast();
+    method @Nullable public E pollFirst();
+    method @Nullable public E pollLast();
+    method public E pop();
+    method public void push(E);
+    method public E removeFirst();
+    method public boolean removeFirstOccurrence(@Nullable Object);
+    method public E removeLast();
+    method public boolean removeLastOccurrence(@Nullable Object);
   }
 
   public abstract class Dictionary<K, V> {
     ctor public Dictionary();
     method public abstract java.util.Enumeration<V> elements();
-    method public abstract V get(java.lang.Object);
+    method public abstract V get(Object);
     method public abstract boolean isEmpty();
     method public abstract java.util.Enumeration<K> keys();
     method public abstract V put(K, V);
-    method public abstract V remove(java.lang.Object);
+    method public abstract V remove(Object);
     method public abstract int size();
   }
 
@@ -69458,44 +69261,44 @@
   }
 
   public class DuplicateFormatFlagsException extends java.util.IllegalFormatException {
-    ctor public DuplicateFormatFlagsException(java.lang.String);
-    method public java.lang.String getFlags();
+    ctor public DuplicateFormatFlagsException(String);
+    method public String getFlags();
   }
 
   public class EmptyStackException extends java.lang.RuntimeException {
     ctor public EmptyStackException();
   }
 
-  public class EnumMap<K extends java.lang.Enum<K>, V> extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable {
-    ctor public EnumMap(java.lang.Class<K>);
-    ctor public EnumMap(java.util.EnumMap<K, ? extends V>);
-    ctor public EnumMap(java.util.Map<K, ? extends V>);
-    method public java.util.EnumMap<K, V> clone();
-    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
+  public class EnumMap<K extends java.lang.Enum<K>, V> extends java.util.AbstractMap<K,V> implements java.lang.Cloneable java.io.Serializable {
+    ctor public EnumMap(Class<K>);
+    ctor public EnumMap(java.util.EnumMap<K,? extends V>);
+    ctor public EnumMap(java.util.Map<K,? extends V>);
+    method public java.util.EnumMap<K,V> clone();
+    method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
   }
 
-  public abstract class EnumSet<E extends java.lang.Enum<E>> extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable {
-    method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> allOf(java.lang.Class<E>);
+  public abstract class EnumSet<E extends java.lang.Enum<E>> extends java.util.AbstractSet<E> implements java.lang.Cloneable java.io.Serializable {
+    method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> allOf(Class<E>);
     method public java.util.EnumSet<E> clone();
     method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> complementOf(java.util.EnumSet<E>);
     method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> copyOf(java.util.EnumSet<E>);
     method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> copyOf(java.util.Collection<E>);
-    method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> noneOf(java.lang.Class<E>);
+    method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> noneOf(Class<E>);
     method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> of(E);
     method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> of(E, E);
     method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> of(E, E, E);
     method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> of(E, E, E, E);
     method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> of(E, E, E, E, E);
-    method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> of(E, E...);
+    method @java.lang.SafeVarargs public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> of(E, E...);
     method public static <E extends java.lang.Enum<E>> java.util.EnumSet<E> range(E, E);
   }
 
-  public abstract interface Enumeration<E> {
-    method public abstract boolean hasMoreElements();
-    method public abstract E nextElement();
+  public interface Enumeration<E> {
+    method public boolean hasMoreElements();
+    method public E nextElement();
   }
 
-  public abstract interface EventListener {
+  public interface EventListener {
   }
 
   public abstract class EventListenerProxy<T extends java.util.EventListener> implements java.util.EventListener {
@@ -69504,19 +69307,19 @@
   }
 
   public class EventObject implements java.io.Serializable {
-    ctor public EventObject(java.lang.Object);
-    method public java.lang.Object getSource();
-    field protected transient java.lang.Object source;
+    ctor public EventObject(Object);
+    method public Object getSource();
+    field protected transient Object source;
   }
 
   public class FormatFlagsConversionMismatchException extends java.util.IllegalFormatException {
-    ctor public FormatFlagsConversionMismatchException(java.lang.String, char);
+    ctor public FormatFlagsConversionMismatchException(String, char);
     method public char getConversion();
-    method public java.lang.String getFlags();
+    method public String getFlags();
   }
 
-  public abstract interface Formattable {
-    method public abstract void formatTo(java.util.Formatter, int, int, int);
+  public interface Formattable {
+    method public void formatTo(java.util.Formatter, int, int, int);
   }
 
   public class FormattableFlags {
@@ -69527,31 +69330,29 @@
 
   public final class Formatter implements java.io.Closeable java.io.Flushable {
     ctor public Formatter();
-    ctor public Formatter(java.lang.Appendable);
+    ctor public Formatter(Appendable);
     ctor public Formatter(java.util.Locale);
-    ctor public Formatter(java.lang.Appendable, java.util.Locale);
-    ctor public Formatter(java.lang.String) throws java.io.FileNotFoundException;
-    ctor public Formatter(java.lang.String, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
-    ctor public Formatter(java.lang.String, java.lang.String, java.util.Locale) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public Formatter(Appendable, java.util.Locale);
+    ctor public Formatter(String) throws java.io.FileNotFoundException;
+    ctor public Formatter(String, String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public Formatter(String, String, java.util.Locale) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     ctor public Formatter(java.io.File) throws java.io.FileNotFoundException;
-    ctor public Formatter(java.io.File, java.lang.String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
-    ctor public Formatter(java.io.File, java.lang.String, java.util.Locale) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public Formatter(java.io.File, String) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
+    ctor public Formatter(java.io.File, String, java.util.Locale) throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException;
     ctor public Formatter(java.io.PrintStream);
     ctor public Formatter(java.io.OutputStream);
-    ctor public Formatter(java.io.OutputStream, java.lang.String) throws java.io.UnsupportedEncodingException;
-    ctor public Formatter(java.io.OutputStream, java.lang.String, java.util.Locale) throws java.io.UnsupportedEncodingException;
+    ctor public Formatter(java.io.OutputStream, String) throws java.io.UnsupportedEncodingException;
+    ctor public Formatter(java.io.OutputStream, String, java.util.Locale) throws java.io.UnsupportedEncodingException;
     method public void close();
     method public void flush();
-    method public java.util.Formatter format(java.lang.String, java.lang.Object...);
-    method public java.util.Formatter format(java.util.Locale, java.lang.String, java.lang.Object...);
+    method public java.util.Formatter format(String, java.lang.Object...);
+    method public java.util.Formatter format(java.util.Locale, String, java.lang.Object...);
     method public java.io.IOException ioException();
     method public java.util.Locale locale();
-    method public java.lang.Appendable out();
+    method public Appendable out();
   }
 
-  public static final class Formatter.BigDecimalLayoutForm extends java.lang.Enum {
-    method public static java.util.Formatter.BigDecimalLayoutForm valueOf(java.lang.String);
-    method public static final java.util.Formatter.BigDecimalLayoutForm[] values();
+  public enum Formatter.BigDecimalLayoutForm {
     enum_constant public static final java.util.Formatter.BigDecimalLayoutForm DECIMAL_FLOAT;
     enum_constant public static final java.util.Formatter.BigDecimalLayoutForm SCIENTIFIC;
   }
@@ -69586,69 +69387,55 @@
     field public static final int BC = 0; // 0x0
   }
 
-  public class HashMap<K, V> extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
+  public class HashMap<K, V> extends java.util.AbstractMap<K,V> implements java.lang.Cloneable java.util.Map<K,V> java.io.Serializable {
     ctor public HashMap(int, float);
     ctor public HashMap(int);
     ctor public HashMap();
-    ctor public HashMap(java.util.Map<? extends K, ? extends V>);
-    method public java.lang.Object clone();
-    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
+    ctor public HashMap(@NonNull java.util.Map<? extends K,? extends V>);
+    method @NonNull public Object clone();
+    method @NonNull public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
   }
 
-  public class HashSet<E> extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set {
+  public class HashSet<E> extends java.util.AbstractSet<E> implements java.lang.Cloneable java.io.Serializable java.util.Set<E> {
     ctor public HashSet();
-    ctor public HashSet(java.util.Collection<? extends E>);
+    ctor public HashSet(@NonNull java.util.Collection<? extends E>);
     ctor public HashSet(int, float);
     ctor public HashSet(int);
-    method public java.lang.Object clone();
-    method public java.util.Iterator<E> iterator();
+    method @NonNull public Object clone();
+    method @NonNull public java.util.Iterator<E> iterator();
     method public int size();
   }
 
-  public class Hashtable<K, V> extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable {
+  public class Hashtable<K, V> extends java.util.Dictionary<K,V> implements java.lang.Cloneable java.util.Map<K,V> java.io.Serializable {
     ctor public Hashtable(int, float);
     ctor public Hashtable(int);
     ctor public Hashtable();
-    ctor public Hashtable(java.util.Map<? extends K, ? extends V>);
-    method public synchronized void clear();
-    method public synchronized java.lang.Object clone();
-    method public synchronized V compute(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>);
-    method public synchronized V computeIfAbsent(K, java.util.function.Function<? super K, ? extends V>);
-    method public synchronized V computeIfPresent(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>);
-    method public synchronized boolean contains(java.lang.Object);
-    method public synchronized boolean containsKey(java.lang.Object);
-    method public boolean containsValue(java.lang.Object);
-    method public synchronized java.util.Enumeration<V> elements();
-    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
-    method public synchronized boolean equals(java.lang.Object);
-    method public synchronized void forEach(java.util.function.BiConsumer<? super K, ? super V>);
-    method public synchronized V get(java.lang.Object);
-    method public synchronized V getOrDefault(java.lang.Object, V);
-    method public synchronized int hashCode();
-    method public synchronized boolean isEmpty();
+    ctor public Hashtable(java.util.Map<? extends K,? extends V>);
+    method public void clear();
+    method public Object clone();
+    method public boolean contains(Object);
+    method public boolean containsKey(Object);
+    method public boolean containsValue(Object);
+    method public java.util.Enumeration<V> elements();
+    method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public V get(Object);
+    method public boolean isEmpty();
     method public java.util.Set<K> keySet();
-    method public synchronized java.util.Enumeration<K> keys();
-    method public synchronized V merge(K, V, java.util.function.BiFunction<? super V, ? super V, ? extends V>);
-    method public synchronized V put(K, V);
-    method public synchronized void putAll(java.util.Map<? extends K, ? extends V>);
-    method public synchronized V putIfAbsent(K, V);
+    method public java.util.Enumeration<K> keys();
+    method public V put(K, V);
+    method public void putAll(java.util.Map<? extends K,? extends V>);
     method protected void rehash();
-    method public synchronized V remove(java.lang.Object);
-    method public synchronized boolean remove(java.lang.Object, java.lang.Object);
-    method public synchronized boolean replace(K, V, V);
-    method public synchronized V replace(K, V);
-    method public synchronized void replaceAll(java.util.function.BiFunction<? super K, ? super V, ? extends V>);
-    method public synchronized int size();
-    method public synchronized java.lang.String toString();
+    method public V remove(Object);
+    method public int size();
     method public java.util.Collection<V> values();
   }
 
-  public class IdentityHashMap<K, V> extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable {
+  public class IdentityHashMap<K, V> extends java.util.AbstractMap<K,V> implements java.lang.Cloneable java.util.Map<K,V> java.io.Serializable {
     ctor public IdentityHashMap();
     ctor public IdentityHashMap(int);
-    ctor public IdentityHashMap(java.util.Map<? extends K, ? extends V>);
-    method public java.lang.Object clone();
-    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
+    ctor public IdentityHashMap(java.util.Map<? extends K,? extends V>);
+    method public Object clone();
+    method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
   }
 
   public class IllegalFormatCodePointException extends java.util.IllegalFormatException {
@@ -69657,8 +69444,8 @@
   }
 
   public class IllegalFormatConversionException extends java.util.IllegalFormatException {
-    ctor public IllegalFormatConversionException(char, java.lang.Class<?>);
-    method public java.lang.Class<?> getArgumentClass();
+    ctor public IllegalFormatConversionException(char, Class<?>);
+    method public Class<?> getArgumentClass();
     method public char getConversion();
   }
 
@@ -69666,8 +69453,8 @@
   }
 
   public class IllegalFormatFlagsException extends java.util.IllegalFormatException {
-    ctor public IllegalFormatFlagsException(java.lang.String);
-    method public java.lang.String getFlags();
+    ctor public IllegalFormatFlagsException(String);
+    method public String getFlags();
   }
 
   public class IllegalFormatPrecisionException extends java.util.IllegalFormatException {
@@ -69682,14 +69469,14 @@
 
   public class IllformedLocaleException extends java.lang.RuntimeException {
     ctor public IllformedLocaleException();
-    ctor public IllformedLocaleException(java.lang.String);
-    ctor public IllformedLocaleException(java.lang.String, int);
+    ctor public IllformedLocaleException(String);
+    ctor public IllformedLocaleException(String, int);
     method public int getErrorIndex();
   }
 
   public class InputMismatchException extends java.util.NoSuchElementException {
     ctor public InputMismatchException();
-    ctor public InputMismatchException(java.lang.String);
+    ctor public InputMismatchException(String);
   }
 
   public class IntSummaryStatistics implements java.util.function.IntConsumer {
@@ -69704,190 +69491,186 @@
   }
 
   public class InvalidPropertiesFormatException extends java.io.IOException {
-    ctor public InvalidPropertiesFormatException(java.lang.Throwable);
-    ctor public InvalidPropertiesFormatException(java.lang.String);
+    ctor public InvalidPropertiesFormatException(Throwable);
+    ctor public InvalidPropertiesFormatException(String);
   }
 
-  public abstract interface Iterator<E> {
-    method public default void forEachRemaining(java.util.function.Consumer<? super E>);
-    method public abstract boolean hasNext();
-    method public abstract E next();
+  public interface Iterator<E> {
+    method public default void forEachRemaining(@NonNull java.util.function.Consumer<? super E>);
+    method public boolean hasNext();
+    method public E next();
     method public default void remove();
   }
 
-  public class LinkedHashMap<K, V> extends java.util.HashMap implements java.util.Map {
+  public class LinkedHashMap<K, V> extends java.util.HashMap<K,V> implements java.util.Map<K,V> {
     ctor public LinkedHashMap(int, float);
     ctor public LinkedHashMap(int);
     ctor public LinkedHashMap();
-    ctor public LinkedHashMap(java.util.Map<? extends K, ? extends V>);
+    ctor public LinkedHashMap(java.util.Map<? extends K,? extends V>);
     ctor public LinkedHashMap(int, float, boolean);
-    method protected boolean removeEldestEntry(java.util.Map.Entry<K, V>);
+    method protected boolean removeEldestEntry(java.util.Map.Entry<K,V>);
   }
 
-  public class LinkedHashSet<E> extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set {
+  public class LinkedHashSet<E> extends java.util.HashSet<E> implements java.lang.Cloneable java.io.Serializable java.util.Set<E> {
     ctor public LinkedHashSet(int, float);
     ctor public LinkedHashSet(int);
     ctor public LinkedHashSet();
     ctor public LinkedHashSet(java.util.Collection<? extends E>);
   }
 
-  public class LinkedList<E> extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable {
+  public class LinkedList<E> extends java.util.AbstractSequentialList<E> implements java.lang.Cloneable java.util.Deque<E> java.util.List<E> java.io.Serializable {
     ctor public LinkedList();
-    ctor public LinkedList(java.util.Collection<? extends E>);
+    ctor public LinkedList(@NonNull java.util.Collection<? extends E>);
     method public void addFirst(E);
     method public void addLast(E);
-    method public java.lang.Object clone();
-    method public java.util.Iterator<E> descendingIterator();
+    method @NonNull public Object clone();
+    method @NonNull public java.util.Iterator<E> descendingIterator();
     method public E element();
     method public E getFirst();
     method public E getLast();
     method public boolean offer(E);
     method public boolean offerFirst(E);
     method public boolean offerLast(E);
-    method public E peek();
-    method public E peekFirst();
-    method public E peekLast();
-    method public E poll();
-    method public E pollFirst();
-    method public E pollLast();
+    method @Nullable public E peek();
+    method @Nullable public E peekFirst();
+    method @Nullable public E peekLast();
+    method @Nullable public E poll();
+    method @Nullable public E pollFirst();
+    method @Nullable public E pollLast();
     method public E pop();
     method public void push(E);
     method public E remove();
     method public E removeFirst();
-    method public boolean removeFirstOccurrence(java.lang.Object);
+    method public boolean removeFirstOccurrence(@Nullable Object);
     method public E removeLast();
-    method public boolean removeLastOccurrence(java.lang.Object);
+    method public boolean removeLastOccurrence(@Nullable Object);
     method public int size();
   }
 
-  public abstract interface List<E> implements java.util.Collection {
-    method public abstract void add(int, E);
-    method public abstract boolean addAll(int, java.util.Collection<? extends E>);
-    method public abstract E get(int);
-    method public abstract int indexOf(java.lang.Object);
-    method public abstract int lastIndexOf(java.lang.Object);
-    method public abstract java.util.ListIterator<E> listIterator();
-    method public abstract java.util.ListIterator<E> listIterator(int);
-    method public abstract E remove(int);
-    method public default void replaceAll(java.util.function.UnaryOperator<E>);
-    method public abstract E set(int, E);
-    method public default void sort(java.util.Comparator<? super E>);
-    method public abstract java.util.List<E> subList(int, int);
+  public interface List<E> extends java.util.Collection<E> {
+    method public void add(int, E);
+    method public boolean addAll(int, @NonNull java.util.Collection<? extends E>);
+    method public E get(int);
+    method public int indexOf(@Nullable Object);
+    method public int lastIndexOf(@Nullable Object);
+    method @NonNull public java.util.ListIterator<E> listIterator();
+    method @NonNull public java.util.ListIterator<E> listIterator(int);
+    method public E remove(int);
+    method public default void replaceAll(@NonNull java.util.function.UnaryOperator<E>);
+    method public E set(int, E);
+    method public default void sort(@Nullable java.util.Comparator<? super E>);
+    method @NonNull public java.util.List<E> subList(int, int);
   }
 
-  public abstract interface ListIterator<E> implements java.util.Iterator {
-    method public abstract void add(E);
-    method public abstract boolean hasPrevious();
-    method public abstract int nextIndex();
-    method public abstract E previous();
-    method public abstract int previousIndex();
-    method public abstract void remove();
-    method public abstract void set(E);
+  public interface ListIterator<E> extends java.util.Iterator<E> {
+    method public void add(E);
+    method public boolean hasPrevious();
+    method public int nextIndex();
+    method public E previous();
+    method public int previousIndex();
+    method public void remove();
+    method public void set(E);
   }
 
   public abstract class ListResourceBundle extends java.util.ResourceBundle {
     ctor public ListResourceBundle();
-    method protected abstract java.lang.Object[][] getContents();
+    method protected abstract Object[][] getContents();
     method public java.util.Enumeration<java.lang.String> getKeys();
-    method public final java.lang.Object handleGetObject(java.lang.String);
+    method public final Object handleGetObject(String);
   }
 
   public final class Locale implements java.lang.Cloneable java.io.Serializable {
-    ctor public Locale(java.lang.String, java.lang.String, java.lang.String);
-    ctor public Locale(java.lang.String, java.lang.String);
-    ctor public Locale(java.lang.String);
-    method public java.lang.Object clone();
-    method public static java.util.List<java.util.Locale> filter(java.util.List<java.util.Locale.LanguageRange>, java.util.Collection<java.util.Locale>, java.util.Locale.FilteringMode);
-    method public static java.util.List<java.util.Locale> filter(java.util.List<java.util.Locale.LanguageRange>, java.util.Collection<java.util.Locale>);
-    method public static java.util.List<java.lang.String> filterTags(java.util.List<java.util.Locale.LanguageRange>, java.util.Collection<java.lang.String>, java.util.Locale.FilteringMode);
-    method public static java.util.List<java.lang.String> filterTags(java.util.List<java.util.Locale.LanguageRange>, java.util.Collection<java.lang.String>);
-    method public static java.util.Locale forLanguageTag(java.lang.String);
+    ctor public Locale(@NonNull String, @NonNull String, @NonNull String);
+    ctor public Locale(@NonNull String, @NonNull String);
+    ctor public Locale(@NonNull String);
+    method @NonNull public Object clone();
+    method @NonNull public static java.util.List<java.util.Locale> filter(@NonNull java.util.List<java.util.Locale.LanguageRange>, @NonNull java.util.Collection<java.util.Locale>, @NonNull java.util.Locale.FilteringMode);
+    method @NonNull public static java.util.List<java.util.Locale> filter(@NonNull java.util.List<java.util.Locale.LanguageRange>, @NonNull java.util.Collection<java.util.Locale>);
+    method @NonNull public static java.util.List<java.lang.String> filterTags(@NonNull java.util.List<java.util.Locale.LanguageRange>, @NonNull java.util.Collection<java.lang.String>, @NonNull java.util.Locale.FilteringMode);
+    method @NonNull public static java.util.List<java.lang.String> filterTags(@NonNull java.util.List<java.util.Locale.LanguageRange>, @NonNull java.util.Collection<java.lang.String>);
+    method @NonNull public static java.util.Locale forLanguageTag(@NonNull String);
     method public static java.util.Locale[] getAvailableLocales();
-    method public java.lang.String getCountry();
-    method public static java.util.Locale getDefault();
-    method public static java.util.Locale getDefault(java.util.Locale.Category);
-    method public java.lang.String getDisplayCountry();
-    method public java.lang.String getDisplayCountry(java.util.Locale);
-    method public java.lang.String getDisplayLanguage();
-    method public java.lang.String getDisplayLanguage(java.util.Locale);
-    method public java.lang.String getDisplayName();
-    method public java.lang.String getDisplayName(java.util.Locale);
-    method public java.lang.String getDisplayScript();
-    method public java.lang.String getDisplayScript(java.util.Locale);
-    method public java.lang.String getDisplayVariant();
-    method public java.lang.String getDisplayVariant(java.util.Locale);
-    method public java.lang.String getExtension(char);
-    method public java.util.Set<java.lang.Character> getExtensionKeys();
-    method public java.lang.String getISO3Country() throws java.util.MissingResourceException;
-    method public java.lang.String getISO3Language() throws java.util.MissingResourceException;
-    method public static java.lang.String[] getISOCountries();
-    method public static java.lang.String[] getISOLanguages();
-    method public java.lang.String getLanguage();
-    method public java.lang.String getScript();
-    method public java.util.Set<java.lang.String> getUnicodeLocaleAttributes();
-    method public java.util.Set<java.lang.String> getUnicodeLocaleKeys();
-    method public java.lang.String getUnicodeLocaleType(java.lang.String);
-    method public java.lang.String getVariant();
+    method @NonNull public String getCountry();
+    method @NonNull public static java.util.Locale getDefault();
+    method @NonNull public static java.util.Locale getDefault(@NonNull java.util.Locale.Category);
+    method @NonNull public String getDisplayCountry();
+    method @NonNull public String getDisplayCountry(@NonNull java.util.Locale);
+    method @NonNull public String getDisplayLanguage();
+    method @NonNull public String getDisplayLanguage(@NonNull java.util.Locale);
+    method @NonNull public String getDisplayName();
+    method @NonNull public String getDisplayName(@NonNull java.util.Locale);
+    method @NonNull public String getDisplayScript();
+    method @NonNull public String getDisplayScript(@NonNull java.util.Locale);
+    method @NonNull public String getDisplayVariant();
+    method @NonNull public String getDisplayVariant(@NonNull java.util.Locale);
+    method @Nullable public String getExtension(char);
+    method @NonNull public java.util.Set<java.lang.Character> getExtensionKeys();
+    method @NonNull public String getISO3Country() throws java.util.MissingResourceException;
+    method @NonNull public String getISO3Language() throws java.util.MissingResourceException;
+    method public static String[] getISOCountries();
+    method public static String[] getISOLanguages();
+    method @NonNull public String getLanguage();
+    method @NonNull public String getScript();
+    method @NonNull public java.util.Set<java.lang.String> getUnicodeLocaleAttributes();
+    method @NonNull public java.util.Set<java.lang.String> getUnicodeLocaleKeys();
+    method @Nullable public String getUnicodeLocaleType(@NonNull String);
+    method @NonNull public String getVariant();
     method public boolean hasExtensions();
-    method public static java.util.Locale lookup(java.util.List<java.util.Locale.LanguageRange>, java.util.Collection<java.util.Locale>);
-    method public static java.lang.String lookupTag(java.util.List<java.util.Locale.LanguageRange>, java.util.Collection<java.lang.String>);
-    method public static synchronized void setDefault(java.util.Locale);
-    method public static synchronized void setDefault(java.util.Locale.Category, java.util.Locale);
-    method public java.util.Locale stripExtensions();
-    method public java.lang.String toLanguageTag();
-    field public static final java.util.Locale CANADA;
-    field public static final java.util.Locale CANADA_FRENCH;
-    field public static final java.util.Locale CHINA;
-    field public static final java.util.Locale CHINESE;
-    field public static final java.util.Locale ENGLISH;
-    field public static final java.util.Locale FRANCE;
-    field public static final java.util.Locale FRENCH;
-    field public static final java.util.Locale GERMAN;
-    field public static final java.util.Locale GERMANY;
-    field public static final java.util.Locale ITALIAN;
-    field public static final java.util.Locale ITALY;
-    field public static final java.util.Locale JAPAN;
-    field public static final java.util.Locale JAPANESE;
-    field public static final java.util.Locale KOREA;
-    field public static final java.util.Locale KOREAN;
-    field public static final java.util.Locale PRC;
+    method @Nullable public static java.util.Locale lookup(@NonNull java.util.List<java.util.Locale.LanguageRange>, @NonNull java.util.Collection<java.util.Locale>);
+    method @Nullable public static String lookupTag(@NonNull java.util.List<java.util.Locale.LanguageRange>, @NonNull java.util.Collection<java.lang.String>);
+    method public static void setDefault(@NonNull java.util.Locale);
+    method public static void setDefault(@NonNull java.util.Locale.Category, @NonNull java.util.Locale);
+    method @NonNull public java.util.Locale stripExtensions();
+    method @NonNull public String toLanguageTag();
+    field @NonNull public static final java.util.Locale CANADA;
+    field @NonNull public static final java.util.Locale CANADA_FRENCH;
+    field @NonNull public static final java.util.Locale CHINA;
+    field @NonNull public static final java.util.Locale CHINESE;
+    field @NonNull public static final java.util.Locale ENGLISH;
+    field @NonNull public static final java.util.Locale FRANCE;
+    field @NonNull public static final java.util.Locale FRENCH;
+    field @NonNull public static final java.util.Locale GERMAN;
+    field @NonNull public static final java.util.Locale GERMANY;
+    field @NonNull public static final java.util.Locale ITALIAN;
+    field @NonNull public static final java.util.Locale ITALY;
+    field @NonNull public static final java.util.Locale JAPAN;
+    field @NonNull public static final java.util.Locale JAPANESE;
+    field @NonNull public static final java.util.Locale KOREA;
+    field @NonNull public static final java.util.Locale KOREAN;
+    field @NonNull public static final java.util.Locale PRC;
     field public static final char PRIVATE_USE_EXTENSION = 120; // 0x0078 'x'
-    field public static final java.util.Locale ROOT;
-    field public static final java.util.Locale SIMPLIFIED_CHINESE;
-    field public static final java.util.Locale TAIWAN;
-    field public static final java.util.Locale TRADITIONAL_CHINESE;
-    field public static final java.util.Locale UK;
+    field @NonNull public static final java.util.Locale ROOT;
+    field @NonNull public static final java.util.Locale SIMPLIFIED_CHINESE;
+    field @NonNull public static final java.util.Locale TAIWAN;
+    field @NonNull public static final java.util.Locale TRADITIONAL_CHINESE;
+    field @NonNull public static final java.util.Locale UK;
     field public static final char UNICODE_LOCALE_EXTENSION = 117; // 0x0075 'u'
-    field public static final java.util.Locale US;
+    field @NonNull public static final java.util.Locale US;
   }
 
   public static final class Locale.Builder {
     ctor public Locale.Builder();
-    method public java.util.Locale.Builder addUnicodeLocaleAttribute(java.lang.String);
-    method public java.util.Locale build();
-    method public java.util.Locale.Builder clear();
-    method public java.util.Locale.Builder clearExtensions();
-    method public java.util.Locale.Builder removeUnicodeLocaleAttribute(java.lang.String);
-    method public java.util.Locale.Builder setExtension(char, java.lang.String);
-    method public java.util.Locale.Builder setLanguage(java.lang.String);
-    method public java.util.Locale.Builder setLanguageTag(java.lang.String);
-    method public java.util.Locale.Builder setLocale(java.util.Locale);
-    method public java.util.Locale.Builder setRegion(java.lang.String);
-    method public java.util.Locale.Builder setScript(java.lang.String);
-    method public java.util.Locale.Builder setUnicodeLocaleKeyword(java.lang.String, java.lang.String);
-    method public java.util.Locale.Builder setVariant(java.lang.String);
+    method @NonNull public java.util.Locale.Builder addUnicodeLocaleAttribute(@NonNull String);
+    method @NonNull public java.util.Locale build();
+    method @NonNull public java.util.Locale.Builder clear();
+    method @NonNull public java.util.Locale.Builder clearExtensions();
+    method @NonNull public java.util.Locale.Builder removeUnicodeLocaleAttribute(@NonNull String);
+    method @NonNull public java.util.Locale.Builder setExtension(char, @Nullable String);
+    method @NonNull public java.util.Locale.Builder setLanguage(@Nullable String);
+    method @NonNull public java.util.Locale.Builder setLanguageTag(@NonNull String);
+    method @NonNull public java.util.Locale.Builder setLocale(@NonNull java.util.Locale);
+    method @NonNull public java.util.Locale.Builder setRegion(@Nullable String);
+    method @NonNull public java.util.Locale.Builder setScript(@Nullable String);
+    method @NonNull public java.util.Locale.Builder setUnicodeLocaleKeyword(@NonNull String, @Nullable String);
+    method @NonNull public java.util.Locale.Builder setVariant(@Nullable String);
   }
 
-  public static final class Locale.Category extends java.lang.Enum {
-    method public static java.util.Locale.Category valueOf(java.lang.String);
-    method public static final java.util.Locale.Category[] values();
+  public enum Locale.Category {
     enum_constant public static final java.util.Locale.Category DISPLAY;
     enum_constant public static final java.util.Locale.Category FORMAT;
   }
 
-  public static final class Locale.FilteringMode extends java.lang.Enum {
-    method public static java.util.Locale.FilteringMode valueOf(java.lang.String);
-    method public static final java.util.Locale.FilteringMode[] values();
+  public enum Locale.FilteringMode {
     enum_constant public static final java.util.Locale.FilteringMode AUTOSELECT_FILTERING;
     enum_constant public static final java.util.Locale.FilteringMode EXTENDED_FILTERING;
     enum_constant public static final java.util.Locale.FilteringMode IGNORE_EXTENDED_RANGES;
@@ -69896,13 +69679,13 @@
   }
 
   public static final class Locale.LanguageRange {
-    ctor public Locale.LanguageRange(java.lang.String);
-    ctor public Locale.LanguageRange(java.lang.String, double);
-    method public java.lang.String getRange();
+    ctor public Locale.LanguageRange(@NonNull String);
+    ctor public Locale.LanguageRange(@NonNull String, double);
+    method @NonNull public String getRange();
     method public double getWeight();
-    method public static java.util.List<java.util.Locale.LanguageRange> mapEquivalents(java.util.List<java.util.Locale.LanguageRange>, java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
-    method public static java.util.List<java.util.Locale.LanguageRange> parse(java.lang.String);
-    method public static java.util.List<java.util.Locale.LanguageRange> parse(java.lang.String, java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
+    method @NonNull public static java.util.List<java.util.Locale.LanguageRange> mapEquivalents(@NonNull java.util.List<java.util.Locale.LanguageRange>, @NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>);
+    method @NonNull public static java.util.List<java.util.Locale.LanguageRange> parse(@NonNull String);
+    method @NonNull public static java.util.List<java.util.Locale.LanguageRange> parse(@NonNull String, @NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>);
     field public static final double MAX_WEIGHT = 1.0;
     field public static final double MIN_WEIGHT = 0.0;
   }
@@ -69919,147 +69702,147 @@
     method public final long getSum();
   }
 
-  public abstract interface Map<K, V> {
-    method public abstract void clear();
-    method public default V compute(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>);
-    method public default V computeIfAbsent(K, java.util.function.Function<? super K, ? extends V>);
-    method public default V computeIfPresent(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>);
-    method public abstract boolean containsKey(java.lang.Object);
-    method public abstract boolean containsValue(java.lang.Object);
-    method public abstract java.util.Set<java.util.Map.Entry<K, V>> entrySet();
-    method public abstract boolean equals(java.lang.Object);
-    method public default void forEach(java.util.function.BiConsumer<? super K, ? super V>);
-    method public abstract V get(java.lang.Object);
-    method public default V getOrDefault(java.lang.Object, V);
-    method public abstract int hashCode();
-    method public abstract boolean isEmpty();
-    method public abstract java.util.Set<K> keySet();
-    method public default V merge(K, V, java.util.function.BiFunction<? super V, ? super V, ? extends V>);
-    method public abstract V put(K, V);
-    method public abstract void putAll(java.util.Map<? extends K, ? extends V>);
-    method public default V putIfAbsent(K, V);
-    method public abstract V remove(java.lang.Object);
-    method public default boolean remove(java.lang.Object, java.lang.Object);
-    method public default boolean replace(K, V, V);
-    method public default V replace(K, V);
-    method public default void replaceAll(java.util.function.BiFunction<? super K, ? super V, ? extends V>);
-    method public abstract int size();
-    method public abstract java.util.Collection<V> values();
+  public interface Map<K, V> {
+    method public void clear();
+    method @Nullable public default V compute(K, @NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
+    method @Nullable public default V computeIfAbsent(K, @NonNull java.util.function.Function<? super K,? extends V>);
+    method @Nullable public default V computeIfPresent(K, @NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
+    method public boolean containsKey(@Nullable Object);
+    method public boolean containsValue(@Nullable Object);
+    method @NonNull public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public boolean equals(@Nullable Object);
+    method public default void forEach(@NonNull java.util.function.BiConsumer<? super K,? super V>);
+    method @Nullable public V get(@Nullable Object);
+    method @Nullable public default V getOrDefault(@Nullable Object, @Nullable V);
+    method public int hashCode();
+    method public boolean isEmpty();
+    method @NonNull public java.util.Set<K> keySet();
+    method @Nullable public default V merge(K, @NonNull V, @NonNull java.util.function.BiFunction<? super V,? super V,? extends V>);
+    method @Nullable public V put(K, V);
+    method public void putAll(@NonNull java.util.Map<? extends K,? extends V>);
+    method @Nullable public default V putIfAbsent(K, V);
+    method @Nullable public V remove(@Nullable Object);
+    method public default boolean remove(@Nullable Object, @Nullable Object);
+    method public default boolean replace(K, @Nullable V, V);
+    method @Nullable public default V replace(K, V);
+    method public default void replaceAll(@NonNull java.util.function.BiFunction<? super K,? super V,? extends V>);
+    method public int size();
+    method @NonNull public java.util.Collection<V> values();
   }
 
-  public static abstract interface Map.Entry<K, V> {
-    method public static <K extends java.lang.Comparable<? super K>, V> java.util.Comparator<java.util.Map.Entry<K, V>> comparingByKey();
-    method public static <K, V> java.util.Comparator<java.util.Map.Entry<K, V>> comparingByKey(java.util.Comparator<? super K>);
-    method public static <K, V extends java.lang.Comparable<? super V>> java.util.Comparator<java.util.Map.Entry<K, V>> comparingByValue();
-    method public static <K, V> java.util.Comparator<java.util.Map.Entry<K, V>> comparingByValue(java.util.Comparator<? super V>);
-    method public abstract boolean equals(java.lang.Object);
-    method public abstract K getKey();
-    method public abstract V getValue();
-    method public abstract int hashCode();
-    method public abstract V setValue(V);
+  public static interface Map.Entry<K, V> {
+    method @NonNull public static <K extends java.lang.Comparable<? super K>, V> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByKey();
+    method @NonNull public static <K, V> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByKey(@NonNull java.util.Comparator<? super K>);
+    method @NonNull public static <K, V extends java.lang.Comparable<? super V>> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByValue();
+    method @NonNull public static <K, V> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByValue(@NonNull java.util.Comparator<? super V>);
+    method public boolean equals(@Nullable Object);
+    method public K getKey();
+    method public V getValue();
+    method public int hashCode();
+    method public V setValue(V);
   }
 
   public class MissingFormatArgumentException extends java.util.IllegalFormatException {
-    ctor public MissingFormatArgumentException(java.lang.String);
-    method public java.lang.String getFormatSpecifier();
+    ctor public MissingFormatArgumentException(String);
+    method public String getFormatSpecifier();
   }
 
   public class MissingFormatWidthException extends java.util.IllegalFormatException {
-    ctor public MissingFormatWidthException(java.lang.String);
-    method public java.lang.String getFormatSpecifier();
+    ctor public MissingFormatWidthException(String);
+    method public String getFormatSpecifier();
   }
 
   public class MissingResourceException extends java.lang.RuntimeException {
-    ctor public MissingResourceException(java.lang.String, java.lang.String, java.lang.String);
-    method public java.lang.String getClassName();
-    method public java.lang.String getKey();
+    ctor public MissingResourceException(String, String, String);
+    method public String getClassName();
+    method public String getKey();
   }
 
-  public abstract interface NavigableMap<K, V> implements java.util.SortedMap {
-    method public abstract java.util.Map.Entry<K, V> ceilingEntry(K);
-    method public abstract K ceilingKey(K);
-    method public abstract java.util.NavigableSet<K> descendingKeySet();
-    method public abstract java.util.NavigableMap<K, V> descendingMap();
-    method public abstract java.util.Map.Entry<K, V> firstEntry();
-    method public abstract java.util.Map.Entry<K, V> floorEntry(K);
-    method public abstract K floorKey(K);
-    method public abstract java.util.NavigableMap<K, V> headMap(K, boolean);
-    method public abstract java.util.Map.Entry<K, V> higherEntry(K);
-    method public abstract K higherKey(K);
-    method public abstract java.util.Map.Entry<K, V> lastEntry();
-    method public abstract java.util.Map.Entry<K, V> lowerEntry(K);
-    method public abstract K lowerKey(K);
-    method public abstract java.util.NavigableSet<K> navigableKeySet();
-    method public abstract java.util.Map.Entry<K, V> pollFirstEntry();
-    method public abstract java.util.Map.Entry<K, V> pollLastEntry();
-    method public abstract java.util.NavigableMap<K, V> subMap(K, boolean, K, boolean);
-    method public abstract java.util.NavigableMap<K, V> tailMap(K, boolean);
+  public interface NavigableMap<K, V> extends java.util.SortedMap<K,V> {
+    method @Nullable public java.util.Map.Entry<K,V> ceilingEntry(K);
+    method @Nullable public K ceilingKey(K);
+    method @NonNull public java.util.NavigableSet<K> descendingKeySet();
+    method @NonNull public java.util.NavigableMap<K,V> descendingMap();
+    method @Nullable public java.util.Map.Entry<K,V> firstEntry();
+    method @Nullable public java.util.Map.Entry<K,V> floorEntry(K);
+    method @Nullable public K floorKey(K);
+    method @NonNull public java.util.NavigableMap<K,V> headMap(K, boolean);
+    method @Nullable public java.util.Map.Entry<K,V> higherEntry(K);
+    method @Nullable public K higherKey(K);
+    method @Nullable public java.util.Map.Entry<K,V> lastEntry();
+    method @Nullable public java.util.Map.Entry<K,V> lowerEntry(K);
+    method @Nullable public K lowerKey(K);
+    method @NonNull public java.util.NavigableSet<K> navigableKeySet();
+    method @Nullable public java.util.Map.Entry<K,V> pollFirstEntry();
+    method @Nullable public java.util.Map.Entry<K,V> pollLastEntry();
+    method @NonNull public java.util.NavigableMap<K,V> subMap(K, boolean, K, boolean);
+    method @NonNull public java.util.NavigableMap<K,V> tailMap(K, boolean);
   }
 
-  public abstract interface NavigableSet<E> implements java.util.SortedSet {
-    method public abstract E ceiling(E);
-    method public abstract java.util.Iterator<E> descendingIterator();
-    method public abstract java.util.NavigableSet<E> descendingSet();
-    method public abstract E floor(E);
-    method public abstract java.util.NavigableSet<E> headSet(E, boolean);
-    method public abstract E higher(E);
-    method public abstract E lower(E);
-    method public abstract E pollFirst();
-    method public abstract E pollLast();
-    method public abstract java.util.NavigableSet<E> subSet(E, boolean, E, boolean);
-    method public abstract java.util.NavigableSet<E> tailSet(E, boolean);
+  public interface NavigableSet<E> extends java.util.SortedSet<E> {
+    method public E ceiling(E);
+    method public java.util.Iterator<E> descendingIterator();
+    method public java.util.NavigableSet<E> descendingSet();
+    method public E floor(E);
+    method public java.util.NavigableSet<E> headSet(E, boolean);
+    method public E higher(E);
+    method public E lower(E);
+    method public E pollFirst();
+    method public E pollLast();
+    method public java.util.NavigableSet<E> subSet(E, boolean, E, boolean);
+    method public java.util.NavigableSet<E> tailSet(E, boolean);
   }
 
   public class NoSuchElementException extends java.lang.RuntimeException {
     ctor public NoSuchElementException();
-    ctor public NoSuchElementException(java.lang.String);
+    ctor public NoSuchElementException(String);
   }
 
   public final class Objects {
-    method public static <T> int compare(T, T, java.util.Comparator<? super T>);
-    method public static boolean deepEquals(java.lang.Object, java.lang.Object);
-    method public static boolean equals(java.lang.Object, java.lang.Object);
+    method public static <T> int compare(T, T, @NonNull java.util.Comparator<? super T>);
+    method public static boolean deepEquals(@Nullable Object, @Nullable Object);
+    method public static boolean equals(@Nullable Object, @Nullable Object);
     method public static int hash(java.lang.Object...);
-    method public static int hashCode(java.lang.Object);
-    method public static boolean isNull(java.lang.Object);
-    method public static boolean nonNull(java.lang.Object);
-    method public static <T> T requireNonNull(T);
-    method public static <T> T requireNonNull(T, java.lang.String);
-    method public static <T> T requireNonNull(T, java.util.function.Supplier<java.lang.String>);
-    method public static java.lang.String toString(java.lang.Object);
-    method public static java.lang.String toString(java.lang.Object, java.lang.String);
+    method public static int hashCode(@Nullable Object);
+    method public static boolean isNull(@Nullable Object);
+    method public static boolean nonNull(@Nullable Object);
+    method @NonNull public static <T> T requireNonNull(@Nullable T);
+    method @NonNull public static <T> T requireNonNull(@Nullable T, @NonNull String);
+    method @NonNull public static <T> T requireNonNull(@Nullable T, @NonNull java.util.function.Supplier<java.lang.String>);
+    method @NonNull public static String toString(@Nullable Object);
+    method @NonNull public static String toString(@Nullable Object, @NonNull String);
   }
 
   public class Observable {
     ctor public Observable();
-    method public synchronized void addObserver(java.util.Observer);
-    method protected synchronized void clearChanged();
-    method public synchronized int countObservers();
-    method public synchronized void deleteObserver(java.util.Observer);
-    method public synchronized void deleteObservers();
-    method public synchronized boolean hasChanged();
+    method public void addObserver(java.util.Observer);
+    method protected void clearChanged();
+    method public int countObservers();
+    method public void deleteObserver(java.util.Observer);
+    method public void deleteObservers();
+    method public boolean hasChanged();
     method public void notifyObservers();
-    method public void notifyObservers(java.lang.Object);
-    method protected synchronized void setChanged();
+    method public void notifyObservers(Object);
+    method protected void setChanged();
   }
 
-  public abstract interface Observer {
-    method public abstract void update(java.util.Observable, java.lang.Object);
+  public interface Observer {
+    method public void update(java.util.Observable, Object);
   }
 
   public final class Optional<T> {
     method public static <T> java.util.Optional<T> empty();
     method public java.util.Optional<T> filter(java.util.function.Predicate<? super T>);
-    method public <U> java.util.Optional<U> flatMap(java.util.function.Function<? super T, java.util.Optional<U>>);
+    method public <U> java.util.Optional<U> flatMap(java.util.function.Function<? super T,java.util.Optional<U>>);
     method public T get();
     method public void ifPresent(java.util.function.Consumer<? super T>);
     method public boolean isPresent();
-    method public <U> java.util.Optional<U> map(java.util.function.Function<? super T, ? extends U>);
+    method public <U> java.util.Optional<U> map(java.util.function.Function<? super T,? extends U>);
     method public static <T> java.util.Optional<T> of(T);
     method public static <T> java.util.Optional<T> ofNullable(T);
     method public T orElse(T);
     method public T orElseGet(java.util.function.Supplier<? extends T>);
-    method public <X extends java.lang.Throwable> T orElseThrow(java.util.function.Supplier<? extends X>) throws java.lang.Throwable;
+    method public <X extends java.lang.Throwable> T orElseThrow(java.util.function.Supplier<? extends X>) throws X;
   }
 
   public final class OptionalDouble {
@@ -70070,7 +69853,7 @@
     method public static java.util.OptionalDouble of(double);
     method public double orElse(double);
     method public double orElseGet(java.util.function.DoubleSupplier);
-    method public <X extends java.lang.Throwable> double orElseThrow(java.util.function.Supplier<X>) throws java.lang.Throwable;
+    method public <X extends java.lang.Throwable> double orElseThrow(java.util.function.Supplier<X>) throws X;
   }
 
   public final class OptionalInt {
@@ -70081,7 +69864,7 @@
     method public static java.util.OptionalInt of(int);
     method public int orElse(int);
     method public int orElseGet(java.util.function.IntSupplier);
-    method public <X extends java.lang.Throwable> int orElseThrow(java.util.function.Supplier<X>) throws java.lang.Throwable;
+    method public <X extends java.lang.Throwable> int orElseThrow(java.util.function.Supplier<X>) throws X;
   }
 
   public final class OptionalLong {
@@ -70092,35 +69875,35 @@
     method public static java.util.OptionalLong of(long);
     method public long orElse(long);
     method public long orElseGet(java.util.function.LongSupplier);
-    method public <X extends java.lang.Throwable> long orElseThrow(java.util.function.Supplier<X>) throws java.lang.Throwable;
+    method public <X extends java.lang.Throwable> long orElseThrow(java.util.function.Supplier<X>) throws X;
   }
 
-  public abstract interface PrimitiveIterator<T, T_CONS> implements java.util.Iterator {
-    method public abstract void forEachRemaining(T_CONS);
+  public interface PrimitiveIterator<T, T_CONS> extends java.util.Iterator<T> {
+    method public void forEachRemaining(T_CONS);
   }
 
-  public static abstract interface PrimitiveIterator.OfDouble implements java.util.PrimitiveIterator {
+  public static interface PrimitiveIterator.OfDouble extends java.util.PrimitiveIterator<java.lang.Double,java.util.function.DoubleConsumer> {
     method public default void forEachRemaining(java.util.function.DoubleConsumer);
     method public default void forEachRemaining(java.util.function.Consumer<? super java.lang.Double>);
-    method public default java.lang.Double next();
-    method public abstract double nextDouble();
+    method public default Double next();
+    method public double nextDouble();
   }
 
-  public static abstract interface PrimitiveIterator.OfInt implements java.util.PrimitiveIterator {
+  public static interface PrimitiveIterator.OfInt extends java.util.PrimitiveIterator<java.lang.Integer,java.util.function.IntConsumer> {
     method public default void forEachRemaining(java.util.function.IntConsumer);
     method public default void forEachRemaining(java.util.function.Consumer<? super java.lang.Integer>);
-    method public default java.lang.Integer next();
-    method public abstract int nextInt();
+    method public default Integer next();
+    method public int nextInt();
   }
 
-  public static abstract interface PrimitiveIterator.OfLong implements java.util.PrimitiveIterator {
+  public static interface PrimitiveIterator.OfLong extends java.util.PrimitiveIterator<java.lang.Long,java.util.function.LongConsumer> {
     method public default void forEachRemaining(java.util.function.LongConsumer);
     method public default void forEachRemaining(java.util.function.Consumer<? super java.lang.Long>);
-    method public default java.lang.Long next();
-    method public abstract long nextLong();
+    method public default Long next();
+    method public long nextLong();
   }
 
-  public class PriorityQueue<E> extends java.util.AbstractQueue implements java.io.Serializable {
+  public class PriorityQueue<E> extends java.util.AbstractQueue<E> implements java.io.Serializable {
     ctor public PriorityQueue();
     ctor public PriorityQueue(int);
     ctor public PriorityQueue(java.util.Comparator<? super E>);
@@ -70137,44 +69920,44 @@
     method public final java.util.Spliterator<E> spliterator();
   }
 
-  public class Properties extends java.util.Hashtable {
+  public class Properties extends java.util.Hashtable<java.lang.Object,java.lang.Object> {
     ctor public Properties();
     ctor public Properties(java.util.Properties);
-    method public java.lang.String getProperty(java.lang.String);
-    method public java.lang.String getProperty(java.lang.String, java.lang.String);
+    method public String getProperty(String);
+    method public String getProperty(String, String);
     method public void list(java.io.PrintStream);
     method public void list(java.io.PrintWriter);
-    method public synchronized void load(java.io.Reader) throws java.io.IOException;
-    method public synchronized void load(java.io.InputStream) throws java.io.IOException;
-    method public synchronized void loadFromXML(java.io.InputStream) throws java.io.IOException, java.util.InvalidPropertiesFormatException;
+    method public void load(java.io.Reader) throws java.io.IOException;
+    method public void load(java.io.InputStream) throws java.io.IOException;
+    method public void loadFromXML(java.io.InputStream) throws java.io.IOException, java.util.InvalidPropertiesFormatException;
     method public java.util.Enumeration<?> propertyNames();
-    method public deprecated void save(java.io.OutputStream, java.lang.String);
-    method public synchronized java.lang.Object setProperty(java.lang.String, java.lang.String);
-    method public void store(java.io.Writer, java.lang.String) throws java.io.IOException;
-    method public void store(java.io.OutputStream, java.lang.String) throws java.io.IOException;
-    method public void storeToXML(java.io.OutputStream, java.lang.String) throws java.io.IOException;
-    method public void storeToXML(java.io.OutputStream, java.lang.String, java.lang.String) throws java.io.IOException;
+    method @Deprecated public void save(java.io.OutputStream, String);
+    method public Object setProperty(String, String);
+    method public void store(java.io.Writer, String) throws java.io.IOException;
+    method public void store(java.io.OutputStream, String) throws java.io.IOException;
+    method public void storeToXML(java.io.OutputStream, String) throws java.io.IOException;
+    method public void storeToXML(java.io.OutputStream, String, String) throws java.io.IOException;
     method public java.util.Set<java.lang.String> stringPropertyNames();
     field protected java.util.Properties defaults;
   }
 
   public final class PropertyPermission extends java.security.BasicPermission {
-    ctor public PropertyPermission(java.lang.String, java.lang.String);
+    ctor public PropertyPermission(String, String);
   }
 
   public class PropertyResourceBundle extends java.util.ResourceBundle {
     ctor public PropertyResourceBundle(java.io.InputStream) throws java.io.IOException;
     ctor public PropertyResourceBundle(java.io.Reader) throws java.io.IOException;
     method public java.util.Enumeration<java.lang.String> getKeys();
-    method public java.lang.Object handleGetObject(java.lang.String);
+    method public Object handleGetObject(String);
   }
 
-  public abstract interface Queue<E> implements java.util.Collection {
-    method public abstract E element();
-    method public abstract boolean offer(E);
-    method public abstract E peek();
-    method public abstract E poll();
-    method public abstract E remove();
+  public interface Queue<E> extends java.util.Collection<E> {
+    method public E element();
+    method public boolean offer(E);
+    method @Nullable public E peek();
+    method @Nullable public E poll();
+    method public E remove();
   }
 
   public class Random implements java.io.Serializable {
@@ -70197,34 +69980,34 @@
     method public void nextBytes(byte[]);
     method public double nextDouble();
     method public float nextFloat();
-    method public synchronized double nextGaussian();
+    method public double nextGaussian();
     method public int nextInt();
     method public int nextInt(int);
     method public long nextLong();
-    method public synchronized void setSeed(long);
+    method public void setSeed(long);
   }
 
-  public abstract interface RandomAccess {
+  public interface RandomAccess {
   }
 
   public abstract class ResourceBundle {
     ctor public ResourceBundle();
     method public static final void clearCache();
-    method public static final void clearCache(java.lang.ClassLoader);
-    method public boolean containsKey(java.lang.String);
-    method public java.lang.String getBaseBundleName();
-    method public static final java.util.ResourceBundle getBundle(java.lang.String);
-    method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.ResourceBundle.Control);
-    method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale);
-    method public static final java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.util.ResourceBundle.Control);
-    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader);
-    method public static java.util.ResourceBundle getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader, java.util.ResourceBundle.Control);
+    method public static final void clearCache(ClassLoader);
+    method public boolean containsKey(String);
+    method public String getBaseBundleName();
+    method public static final java.util.ResourceBundle getBundle(String);
+    method public static final java.util.ResourceBundle getBundle(String, java.util.ResourceBundle.Control);
+    method public static final java.util.ResourceBundle getBundle(String, java.util.Locale);
+    method public static final java.util.ResourceBundle getBundle(String, java.util.Locale, java.util.ResourceBundle.Control);
+    method public static java.util.ResourceBundle getBundle(String, java.util.Locale, ClassLoader);
+    method public static java.util.ResourceBundle getBundle(String, java.util.Locale, ClassLoader, java.util.ResourceBundle.Control);
     method public abstract java.util.Enumeration<java.lang.String> getKeys();
     method public java.util.Locale getLocale();
-    method public final java.lang.Object getObject(java.lang.String);
-    method public final java.lang.String getString(java.lang.String);
-    method public final java.lang.String[] getStringArray(java.lang.String);
-    method protected abstract java.lang.Object handleGetObject(java.lang.String);
+    method public final Object getObject(String);
+    method public final String getString(String);
+    method public final String[] getStringArray(String);
+    method protected abstract Object handleGetObject(String);
     method protected java.util.Set<java.lang.String> handleKeySet();
     method public java.util.Set<java.lang.String> keySet();
     method protected void setParent(java.util.ResourceBundle);
@@ -70233,16 +70016,16 @@
 
   public static class ResourceBundle.Control {
     ctor protected ResourceBundle.Control();
-    method public java.util.List<java.util.Locale> getCandidateLocales(java.lang.String, java.util.Locale);
+    method public java.util.List<java.util.Locale> getCandidateLocales(String, java.util.Locale);
     method public static final java.util.ResourceBundle.Control getControl(java.util.List<java.lang.String>);
-    method public java.util.Locale getFallbackLocale(java.lang.String, java.util.Locale);
-    method public java.util.List<java.lang.String> getFormats(java.lang.String);
+    method public java.util.Locale getFallbackLocale(String, java.util.Locale);
+    method public java.util.List<java.lang.String> getFormats(String);
     method public static final java.util.ResourceBundle.Control getNoFallbackControl(java.util.List<java.lang.String>);
-    method public long getTimeToLive(java.lang.String, java.util.Locale);
-    method public boolean needsReload(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, java.util.ResourceBundle, long);
-    method public java.util.ResourceBundle newBundle(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, boolean) throws java.io.IOException, java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public java.lang.String toBundleName(java.lang.String, java.util.Locale);
-    method public final java.lang.String toResourceName(java.lang.String, java.lang.String);
+    method public long getTimeToLive(String, java.util.Locale);
+    method public boolean needsReload(String, java.util.Locale, String, ClassLoader, java.util.ResourceBundle, long);
+    method public java.util.ResourceBundle newBundle(String, java.util.Locale, String, ClassLoader, boolean) throws java.io.IOException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public String toBundleName(String, java.util.Locale);
+    method public final String toResourceName(String, String);
     field public static final java.util.List<java.lang.String> FORMAT_CLASS;
     field public static final java.util.List<java.lang.String> FORMAT_DEFAULT;
     field public static final java.util.List<java.lang.String> FORMAT_PROPERTIES;
@@ -70250,25 +70033,25 @@
     field public static final long TTL_NO_EXPIRATION_CONTROL = -2L; // 0xfffffffffffffffeL
   }
 
-  public final class Scanner implements java.io.Closeable java.util.Iterator {
-    ctor public Scanner(java.lang.Readable);
+  public final class Scanner implements java.io.Closeable java.util.Iterator<java.lang.String> {
+    ctor public Scanner(Readable);
     ctor public Scanner(java.io.InputStream);
-    ctor public Scanner(java.io.InputStream, java.lang.String);
+    ctor public Scanner(java.io.InputStream, String);
     ctor public Scanner(java.io.File) throws java.io.FileNotFoundException;
-    ctor public Scanner(java.io.File, java.lang.String) throws java.io.FileNotFoundException;
+    ctor public Scanner(java.io.File, String) throws java.io.FileNotFoundException;
     ctor public Scanner(java.nio.file.Path) throws java.io.IOException;
-    ctor public Scanner(java.nio.file.Path, java.lang.String) throws java.io.IOException;
-    ctor public Scanner(java.lang.String);
+    ctor public Scanner(java.nio.file.Path, String) throws java.io.IOException;
+    ctor public Scanner(String);
     ctor public Scanner(java.nio.channels.ReadableByteChannel);
-    ctor public Scanner(java.nio.channels.ReadableByteChannel, java.lang.String);
+    ctor public Scanner(java.nio.channels.ReadableByteChannel, String);
     method public void close();
     method public java.util.regex.Pattern delimiter();
-    method public java.lang.String findInLine(java.lang.String);
-    method public java.lang.String findInLine(java.util.regex.Pattern);
-    method public java.lang.String findWithinHorizon(java.lang.String, int);
-    method public java.lang.String findWithinHorizon(java.util.regex.Pattern, int);
+    method public String findInLine(String);
+    method public String findInLine(java.util.regex.Pattern);
+    method public String findWithinHorizon(String, int);
+    method public String findWithinHorizon(java.util.regex.Pattern, int);
     method public boolean hasNext();
-    method public boolean hasNext(java.lang.String);
+    method public boolean hasNext(String);
     method public boolean hasNext(java.util.regex.Pattern);
     method public boolean hasNextBigDecimal();
     method public boolean hasNextBigInteger();
@@ -70288,9 +70071,9 @@
     method public java.io.IOException ioException();
     method public java.util.Locale locale();
     method public java.util.regex.MatchResult match();
-    method public java.lang.String next();
-    method public java.lang.String next(java.lang.String);
-    method public java.lang.String next(java.util.regex.Pattern);
+    method public String next();
+    method public String next(String);
+    method public String next(java.util.regex.Pattern);
     method public java.math.BigDecimal nextBigDecimal();
     method public java.math.BigInteger nextBigInteger();
     method public java.math.BigInteger nextBigInteger(int);
@@ -70301,7 +70084,7 @@
     method public float nextFloat();
     method public int nextInt();
     method public int nextInt(int);
-    method public java.lang.String nextLine();
+    method public String nextLine();
     method public long nextLong();
     method public long nextLong(int);
     method public short nextShort();
@@ -70309,37 +70092,36 @@
     method public int radix();
     method public java.util.Scanner reset();
     method public java.util.Scanner skip(java.util.regex.Pattern);
-    method public java.util.Scanner skip(java.lang.String);
+    method public java.util.Scanner skip(String);
     method public java.util.Scanner useDelimiter(java.util.regex.Pattern);
-    method public java.util.Scanner useDelimiter(java.lang.String);
+    method public java.util.Scanner useDelimiter(String);
     method public java.util.Scanner useLocale(java.util.Locale);
     method public java.util.Scanner useRadix(int);
   }
 
   public class ServiceConfigurationError extends java.lang.Error {
-    ctor public ServiceConfigurationError(java.lang.String);
-    ctor public ServiceConfigurationError(java.lang.String, java.lang.Throwable);
+    ctor public ServiceConfigurationError(String);
+    ctor public ServiceConfigurationError(String, Throwable);
   }
 
-  public final class ServiceLoader<S> implements java.lang.Iterable {
+  public final class ServiceLoader<S> implements java.lang.Iterable<S> {
     method public java.util.Iterator<S> iterator();
-    method public static <S> java.util.ServiceLoader<S> load(java.lang.Class<S>, java.lang.ClassLoader);
-    method public static <S> java.util.ServiceLoader<S> load(java.lang.Class<S>);
-    method public static <S> java.util.ServiceLoader<S> loadInstalled(java.lang.Class<S>);
+    method public static <S> java.util.ServiceLoader<S> load(Class<S>, ClassLoader);
+    method public static <S> java.util.ServiceLoader<S> load(Class<S>);
+    method public static <S> java.util.ServiceLoader<S> loadInstalled(Class<S>);
     method public void reload();
   }
 
-  public abstract interface Set<E> implements java.util.Collection {
+  public interface Set<E> extends java.util.Collection<E> {
   }
 
   public class SimpleTimeZone extends java.util.TimeZone {
-    ctor public SimpleTimeZone(int, java.lang.String);
-    ctor public SimpleTimeZone(int, java.lang.String, int, int, int, int, int, int, int, int);
-    ctor public SimpleTimeZone(int, java.lang.String, int, int, int, int, int, int, int, int, int);
-    ctor public SimpleTimeZone(int, java.lang.String, int, int, int, int, int, int, int, int, int, int, int);
+    ctor public SimpleTimeZone(int, String);
+    ctor public SimpleTimeZone(int, String, int, int, int, int, int, int, int, int);
+    ctor public SimpleTimeZone(int, String, int, int, int, int, int, int, int, int, int);
+    ctor public SimpleTimeZone(int, String, int, int, int, int, int, int, int, int, int, int, int);
     method public int getOffset(int, int, int, int, int, int);
     method public int getRawOffset();
-    method public synchronized int hashCode();
     method public boolean inDaylightTime(java.util.Date);
     method public void setDSTSavings(int);
     method public void setEndRule(int, int, int, int);
@@ -70356,33 +70138,33 @@
     field public static final int WALL_TIME = 0; // 0x0
   }
 
-  public abstract interface SortedMap<K, V> implements java.util.Map {
-    method public abstract java.util.Comparator<? super K> comparator();
-    method public abstract K firstKey();
-    method public abstract java.util.SortedMap<K, V> headMap(K);
-    method public abstract K lastKey();
-    method public abstract java.util.SortedMap<K, V> subMap(K, K);
-    method public abstract java.util.SortedMap<K, V> tailMap(K);
+  public interface SortedMap<K, V> extends java.util.Map<K,V> {
+    method @Nullable public java.util.Comparator<? super K> comparator();
+    method public K firstKey();
+    method @NonNull public java.util.SortedMap<K,V> headMap(K);
+    method public K lastKey();
+    method @NonNull public java.util.SortedMap<K,V> subMap(K, K);
+    method @NonNull public java.util.SortedMap<K,V> tailMap(K);
   }
 
-  public abstract interface SortedSet<E> implements java.util.Set {
-    method public abstract java.util.Comparator<? super E> comparator();
-    method public abstract E first();
-    method public abstract java.util.SortedSet<E> headSet(E);
-    method public abstract E last();
-    method public abstract java.util.SortedSet<E> subSet(E, E);
-    method public abstract java.util.SortedSet<E> tailSet(E);
+  public interface SortedSet<E> extends java.util.Set<E> {
+    method public java.util.Comparator<? super E> comparator();
+    method public E first();
+    method public java.util.SortedSet<E> headSet(E);
+    method public E last();
+    method public java.util.SortedSet<E> subSet(E, E);
+    method public java.util.SortedSet<E> tailSet(E);
   }
 
-  public abstract interface Spliterator<T> {
-    method public abstract int characteristics();
-    method public abstract long estimateSize();
+  public interface Spliterator<T> {
+    method public int characteristics();
+    method public long estimateSize();
     method public default void forEachRemaining(java.util.function.Consumer<? super T>);
     method public default java.util.Comparator<? super T> getComparator();
     method public default long getExactSizeIfKnown();
     method public default boolean hasCharacteristics(int);
-    method public abstract boolean tryAdvance(java.util.function.Consumer<? super T>);
-    method public abstract java.util.Spliterator<T> trySplit();
+    method public boolean tryAdvance(java.util.function.Consumer<? super T>);
+    method public java.util.Spliterator<T> trySplit();
     field public static final int CONCURRENT = 4096; // 0x1000
     field public static final int DISTINCT = 1; // 0x1
     field public static final int IMMUTABLE = 1024; // 0x400
@@ -70393,34 +70175,34 @@
     field public static final int SUBSIZED = 16384; // 0x4000
   }
 
-  public static abstract interface Spliterator.OfDouble implements java.util.Spliterator.OfPrimitive {
+  public static interface Spliterator.OfDouble extends java.util.Spliterator.OfPrimitive<java.lang.Double,java.util.function.DoubleConsumer,java.util.Spliterator.OfDouble> {
     method public default void forEachRemaining(java.util.function.DoubleConsumer);
     method public default void forEachRemaining(java.util.function.Consumer<? super java.lang.Double>);
-    method public abstract boolean tryAdvance(java.util.function.DoubleConsumer);
+    method public boolean tryAdvance(java.util.function.DoubleConsumer);
     method public default boolean tryAdvance(java.util.function.Consumer<? super java.lang.Double>);
-    method public abstract java.util.Spliterator.OfDouble trySplit();
+    method public java.util.Spliterator.OfDouble trySplit();
   }
 
-  public static abstract interface Spliterator.OfInt implements java.util.Spliterator.OfPrimitive {
+  public static interface Spliterator.OfInt extends java.util.Spliterator.OfPrimitive<java.lang.Integer,java.util.function.IntConsumer,java.util.Spliterator.OfInt> {
     method public default void forEachRemaining(java.util.function.IntConsumer);
     method public default void forEachRemaining(java.util.function.Consumer<? super java.lang.Integer>);
-    method public abstract boolean tryAdvance(java.util.function.IntConsumer);
+    method public boolean tryAdvance(java.util.function.IntConsumer);
     method public default boolean tryAdvance(java.util.function.Consumer<? super java.lang.Integer>);
-    method public abstract java.util.Spliterator.OfInt trySplit();
+    method public java.util.Spliterator.OfInt trySplit();
   }
 
-  public static abstract interface Spliterator.OfLong implements java.util.Spliterator.OfPrimitive {
+  public static interface Spliterator.OfLong extends java.util.Spliterator.OfPrimitive<java.lang.Long,java.util.function.LongConsumer,java.util.Spliterator.OfLong> {
     method public default void forEachRemaining(java.util.function.LongConsumer);
     method public default void forEachRemaining(java.util.function.Consumer<? super java.lang.Long>);
-    method public abstract boolean tryAdvance(java.util.function.LongConsumer);
+    method public boolean tryAdvance(java.util.function.LongConsumer);
     method public default boolean tryAdvance(java.util.function.Consumer<? super java.lang.Long>);
-    method public abstract java.util.Spliterator.OfLong trySplit();
+    method public java.util.Spliterator.OfLong trySplit();
   }
 
-  public static abstract interface Spliterator.OfPrimitive<T, T_CONS, T_SPLITR extends java.util.Spliterator.OfPrimitive<T, T_CONS, T_SPLITR>> implements java.util.Spliterator {
+  public static interface Spliterator.OfPrimitive<T, T_CONS, T_SPLITR extends java.util.Spliterator.OfPrimitive<T, T_CONS, T_SPLITR>> extends java.util.Spliterator<T> {
     method public default void forEachRemaining(T_CONS);
-    method public abstract boolean tryAdvance(T_CONS);
-    method public abstract T_SPLITR trySplit();
+    method public boolean tryAdvance(T_CONS);
+    method public T_SPLITR trySplit();
   }
 
   public final class Spliterators {
@@ -70432,8 +70214,8 @@
     method public static java.util.PrimitiveIterator.OfInt iterator(java.util.Spliterator.OfInt);
     method public static java.util.PrimitiveIterator.OfLong iterator(java.util.Spliterator.OfLong);
     method public static java.util.PrimitiveIterator.OfDouble iterator(java.util.Spliterator.OfDouble);
-    method public static <T> java.util.Spliterator<T> spliterator(java.lang.Object[], int);
-    method public static <T> java.util.Spliterator<T> spliterator(java.lang.Object[], int, int, int);
+    method public static <T> java.util.Spliterator<T> spliterator(Object[], int);
+    method public static <T> java.util.Spliterator<T> spliterator(Object[], int, int, int);
     method public static java.util.Spliterator.OfInt spliterator(int[], int);
     method public static java.util.Spliterator.OfInt spliterator(int[], int, int, int);
     method public static java.util.Spliterator.OfLong spliterator(long[], int);
@@ -70451,28 +70233,28 @@
     method public static java.util.Spliterator.OfDouble spliteratorUnknownSize(java.util.PrimitiveIterator.OfDouble, int);
   }
 
-  public static abstract class Spliterators.AbstractDoubleSpliterator implements java.util.Spliterator.OfDouble {
+  public abstract static class Spliterators.AbstractDoubleSpliterator implements java.util.Spliterator.OfDouble {
     ctor protected Spliterators.AbstractDoubleSpliterator(long, int);
     method public int characteristics();
     method public long estimateSize();
     method public java.util.Spliterator.OfDouble trySplit();
   }
 
-  public static abstract class Spliterators.AbstractIntSpliterator implements java.util.Spliterator.OfInt {
+  public abstract static class Spliterators.AbstractIntSpliterator implements java.util.Spliterator.OfInt {
     ctor protected Spliterators.AbstractIntSpliterator(long, int);
     method public int characteristics();
     method public long estimateSize();
     method public java.util.Spliterator.OfInt trySplit();
   }
 
-  public static abstract class Spliterators.AbstractLongSpliterator implements java.util.Spliterator.OfLong {
+  public abstract static class Spliterators.AbstractLongSpliterator implements java.util.Spliterator.OfLong {
     ctor protected Spliterators.AbstractLongSpliterator(long, int);
     method public int characteristics();
     method public long estimateSize();
     method public java.util.Spliterator.OfLong trySplit();
   }
 
-  public static abstract class Spliterators.AbstractSpliterator<T> implements java.util.Spliterator {
+  public abstract static class Spliterators.AbstractSpliterator<T> implements java.util.Spliterator<T> {
     ctor protected Spliterators.AbstractSpliterator(long, int);
     method public int characteristics();
     method public long estimateSize();
@@ -70507,58 +70289,58 @@
     method public java.util.SplittableRandom split();
   }
 
-  public class Stack<E> extends java.util.Vector {
+  public class Stack<E> extends java.util.Vector<E> {
     ctor public Stack();
     method public boolean empty();
-    method public synchronized E peek();
-    method public synchronized E pop();
+    method public E peek();
+    method public E pop();
     method public E push(E);
-    method public synchronized int search(java.lang.Object);
+    method public int search(Object);
   }
 
   public final class StringJoiner {
-    ctor public StringJoiner(java.lang.CharSequence);
-    ctor public StringJoiner(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence);
-    method public java.util.StringJoiner add(java.lang.CharSequence);
+    ctor public StringJoiner(CharSequence);
+    ctor public StringJoiner(CharSequence, CharSequence, CharSequence);
+    method public java.util.StringJoiner add(CharSequence);
     method public int length();
     method public java.util.StringJoiner merge(java.util.StringJoiner);
-    method public java.util.StringJoiner setEmptyValue(java.lang.CharSequence);
+    method public java.util.StringJoiner setEmptyValue(CharSequence);
   }
 
-  public class StringTokenizer implements java.util.Enumeration {
-    ctor public StringTokenizer(java.lang.String, java.lang.String, boolean);
-    ctor public StringTokenizer(java.lang.String, java.lang.String);
-    ctor public StringTokenizer(java.lang.String);
+  public class StringTokenizer implements java.util.Enumeration<java.lang.Object> {
+    ctor public StringTokenizer(String, String, boolean);
+    ctor public StringTokenizer(String, String);
+    ctor public StringTokenizer(String);
     method public int countTokens();
     method public boolean hasMoreElements();
     method public boolean hasMoreTokens();
-    method public java.lang.Object nextElement();
-    method public java.lang.String nextToken();
-    method public java.lang.String nextToken(java.lang.String);
+    method public Object nextElement();
+    method public String nextToken();
+    method public String nextToken(String);
   }
 
   public abstract class TimeZone implements java.lang.Cloneable java.io.Serializable {
     ctor public TimeZone();
-    method public java.lang.Object clone();
-    method public static synchronized java.lang.String[] getAvailableIDs(int);
-    method public static synchronized java.lang.String[] getAvailableIDs();
+    method public Object clone();
+    method public static String[] getAvailableIDs(int);
+    method public static String[] getAvailableIDs();
     method public int getDSTSavings();
     method public static java.util.TimeZone getDefault();
-    method public final java.lang.String getDisplayName();
-    method public final java.lang.String getDisplayName(java.util.Locale);
-    method public final java.lang.String getDisplayName(boolean, int);
-    method public java.lang.String getDisplayName(boolean, int, java.util.Locale);
-    method public java.lang.String getID();
+    method public final String getDisplayName();
+    method public final String getDisplayName(java.util.Locale);
+    method public final String getDisplayName(boolean, int);
+    method public String getDisplayName(boolean, int, java.util.Locale);
+    method public String getID();
     method public abstract int getOffset(int, int, int, int, int, int);
     method public int getOffset(long);
     method public abstract int getRawOffset();
-    method public static synchronized java.util.TimeZone getTimeZone(java.lang.String);
+    method public static java.util.TimeZone getTimeZone(String);
     method public static java.util.TimeZone getTimeZone(java.time.ZoneId);
     method public boolean hasSameRules(java.util.TimeZone);
     method public abstract boolean inDaylightTime(java.util.Date);
     method public boolean observesDaylightTime();
-    method public static synchronized void setDefault(java.util.TimeZone);
-    method public void setID(java.lang.String);
+    method public static void setDefault(java.util.TimeZone);
+    method public void setID(String);
     method public abstract void setRawOffset(int);
     method public java.time.ZoneId toZoneId();
     method public abstract boolean useDaylightTime();
@@ -70569,8 +70351,8 @@
   public class Timer {
     ctor public Timer();
     ctor public Timer(boolean);
-    ctor public Timer(java.lang.String);
-    ctor public Timer(java.lang.String, boolean);
+    ctor public Timer(String);
+    ctor public Timer(String, boolean);
     method public void cancel();
     method public int purge();
     method public void schedule(java.util.TimerTask, long);
@@ -70589,49 +70371,49 @@
 
   public class TooManyListenersException extends java.lang.Exception {
     ctor public TooManyListenersException();
-    ctor public TooManyListenersException(java.lang.String);
+    ctor public TooManyListenersException(String);
   }
 
-  public class TreeMap<K, V> extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable {
+  public class TreeMap<K, V> extends java.util.AbstractMap<K,V> implements java.lang.Cloneable java.util.NavigableMap<K,V> java.io.Serializable {
     ctor public TreeMap();
-    ctor public TreeMap(java.util.Comparator<? super K>);
-    ctor public TreeMap(java.util.Map<? extends K, ? extends V>);
-    ctor public TreeMap(java.util.SortedMap<K, ? extends V>);
-    method public java.util.Map.Entry<K, V> ceilingEntry(K);
-    method public K ceilingKey(K);
-    method public java.lang.Object clone();
-    method public java.util.Comparator<? super K> comparator();
-    method public java.util.NavigableSet<K> descendingKeySet();
-    method public java.util.NavigableMap<K, V> descendingMap();
-    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
-    method public java.util.Map.Entry<K, V> firstEntry();
+    ctor public TreeMap(@Nullable java.util.Comparator<? super K>);
+    ctor public TreeMap(@NonNull java.util.Map<? extends K,? extends V>);
+    ctor public TreeMap(@NonNull java.util.SortedMap<K,? extends V>);
+    method @Nullable public java.util.Map.Entry<K,V> ceilingEntry(K);
+    method @Nullable public K ceilingKey(K);
+    method @NonNull public Object clone();
+    method @Nullable public java.util.Comparator<? super K> comparator();
+    method @NonNull public java.util.NavigableSet<K> descendingKeySet();
+    method @NonNull public java.util.NavigableMap<K,V> descendingMap();
+    method @NonNull public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method @Nullable public java.util.Map.Entry<K,V> firstEntry();
     method public K firstKey();
-    method public java.util.Map.Entry<K, V> floorEntry(K);
-    method public K floorKey(K);
-    method public java.util.NavigableMap<K, V> headMap(K, boolean);
-    method public java.util.SortedMap<K, V> headMap(K);
-    method public java.util.Map.Entry<K, V> higherEntry(K);
-    method public K higherKey(K);
-    method public java.util.Map.Entry<K, V> lastEntry();
+    method @Nullable public java.util.Map.Entry<K,V> floorEntry(K);
+    method @Nullable public K floorKey(K);
+    method @NonNull public java.util.NavigableMap<K,V> headMap(K, boolean);
+    method @NonNull public java.util.SortedMap<K,V> headMap(K);
+    method @Nullable public java.util.Map.Entry<K,V> higherEntry(K);
+    method @Nullable public K higherKey(K);
+    method @Nullable public java.util.Map.Entry<K,V> lastEntry();
     method public K lastKey();
-    method public java.util.Map.Entry<K, V> lowerEntry(K);
-    method public K lowerKey(K);
-    method public java.util.NavigableSet<K> navigableKeySet();
-    method public java.util.Map.Entry<K, V> pollFirstEntry();
-    method public java.util.Map.Entry<K, V> pollLastEntry();
-    method public java.util.NavigableMap<K, V> subMap(K, boolean, K, boolean);
-    method public java.util.SortedMap<K, V> subMap(K, K);
-    method public java.util.NavigableMap<K, V> tailMap(K, boolean);
-    method public java.util.SortedMap<K, V> tailMap(K);
+    method @Nullable public java.util.Map.Entry<K,V> lowerEntry(K);
+    method @Nullable public K lowerKey(K);
+    method @NonNull public java.util.NavigableSet<K> navigableKeySet();
+    method @Nullable public java.util.Map.Entry<K,V> pollFirstEntry();
+    method @Nullable public java.util.Map.Entry<K,V> pollLastEntry();
+    method @NonNull public java.util.NavigableMap<K,V> subMap(K, boolean, K, boolean);
+    method @NonNull public java.util.SortedMap<K,V> subMap(K, K);
+    method @NonNull public java.util.NavigableMap<K,V> tailMap(K, boolean);
+    method @NonNull public java.util.SortedMap<K,V> tailMap(K);
   }
 
-  public class TreeSet<E> extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable {
+  public class TreeSet<E> extends java.util.AbstractSet<E> implements java.lang.Cloneable java.util.NavigableSet<E> java.io.Serializable {
     ctor public TreeSet();
     ctor public TreeSet(java.util.Comparator<? super E>);
     ctor public TreeSet(java.util.Collection<? extends E>);
     ctor public TreeSet(java.util.SortedSet<E>);
     method public E ceiling(E);
-    method public java.lang.Object clone();
+    method public Object clone();
     method public java.util.Comparator<? super E> comparator();
     method public java.util.Iterator<E> descendingIterator();
     method public java.util.NavigableSet<E> descendingSet();
@@ -70652,11 +70434,11 @@
     method public java.util.SortedSet<E> tailSet(E);
   }
 
-  public final class UUID implements java.lang.Comparable java.io.Serializable {
+  public final class UUID implements java.lang.Comparable<java.util.UUID> java.io.Serializable {
     ctor public UUID(long, long);
     method public int clockSequence();
     method public int compareTo(java.util.UUID);
-    method public static java.util.UUID fromString(java.lang.String);
+    method public static java.util.UUID fromString(String);
     method public long getLeastSignificantBits();
     method public long getMostSignificantBits();
     method public static java.util.UUID nameUUIDFromBytes(byte[]);
@@ -70668,75 +70450,52 @@
   }
 
   public class UnknownFormatConversionException extends java.util.IllegalFormatException {
-    ctor public UnknownFormatConversionException(java.lang.String);
-    method public java.lang.String getConversion();
+    ctor public UnknownFormatConversionException(String);
+    method public String getConversion();
   }
 
   public class UnknownFormatFlagsException extends java.util.IllegalFormatException {
-    ctor public UnknownFormatFlagsException(java.lang.String);
-    method public java.lang.String getFlags();
+    ctor public UnknownFormatFlagsException(String);
+    method public String getFlags();
   }
 
-  public class Vector<E> extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
+  public class Vector<E> extends java.util.AbstractList<E> implements java.lang.Cloneable java.util.List<E> java.util.RandomAccess java.io.Serializable {
     ctor public Vector(int, int);
     ctor public Vector(int);
     ctor public Vector();
-    ctor public Vector(java.util.Collection<? extends E>);
-    method public synchronized boolean add(E);
-    method public synchronized boolean addAll(java.util.Collection<? extends E>);
-    method public synchronized boolean addAll(int, java.util.Collection<? extends E>);
-    method public synchronized void addElement(E);
-    method public synchronized int capacity();
-    method public synchronized java.lang.Object clone();
-    method public synchronized boolean containsAll(java.util.Collection<?>);
-    method public synchronized void copyInto(java.lang.Object[]);
-    method public synchronized E elementAt(int);
-    method public java.util.Enumeration<E> elements();
-    method public synchronized void ensureCapacity(int);
-    method public synchronized boolean equals(java.lang.Object);
-    method public synchronized E firstElement();
-    method public synchronized void forEach(java.util.function.Consumer<? super E>);
-    method public synchronized E get(int);
-    method public synchronized int hashCode();
-    method public synchronized int indexOf(java.lang.Object, int);
-    method public synchronized void insertElementAt(E, int);
-    method public synchronized boolean isEmpty();
-    method public synchronized java.util.Iterator<E> iterator();
-    method public synchronized E lastElement();
-    method public synchronized int lastIndexOf(java.lang.Object);
-    method public synchronized int lastIndexOf(java.lang.Object, int);
-    method public synchronized java.util.ListIterator<E> listIterator(int);
-    method public synchronized java.util.ListIterator<E> listIterator();
-    method public synchronized E remove(int);
-    method public synchronized boolean removeAll(java.util.Collection<?>);
-    method public synchronized void removeAllElements();
-    method public synchronized boolean removeElement(java.lang.Object);
-    method public synchronized void removeElementAt(int);
-    method public synchronized boolean removeIf(java.util.function.Predicate<? super E>);
-    method protected synchronized void removeRange(int, int);
-    method public synchronized void replaceAll(java.util.function.UnaryOperator<E>);
-    method public synchronized boolean retainAll(java.util.Collection<?>);
-    method public synchronized E set(int, E);
-    method public synchronized void setElementAt(E, int);
-    method public synchronized void setSize(int);
-    method public synchronized int size();
-    method public synchronized void sort(java.util.Comparator<? super E>);
-    method public synchronized java.util.List<E> subList(int, int);
-    method public synchronized java.lang.Object[] toArray();
-    method public synchronized <T> T[] toArray(T[]);
-    method public synchronized java.lang.String toString();
-    method public synchronized void trimToSize();
+    ctor public Vector(@NonNull java.util.Collection<? extends E>);
+    method public void addElement(E);
+    method public int capacity();
+    method @NonNull public Object clone();
+    method public void copyInto(Object[]);
+    method public E elementAt(int);
+    method @NonNull public java.util.Enumeration<E> elements();
+    method public void ensureCapacity(int);
+    method public E firstElement();
+    method public void forEach(@NonNull java.util.function.Consumer<? super E>);
+    method public E get(int);
+    method public int indexOf(@Nullable Object, int);
+    method public void insertElementAt(E, int);
+    method public E lastElement();
+    method public int lastIndexOf(@Nullable Object, int);
+    method public void removeAllElements();
+    method public boolean removeElement(@Nullable Object);
+    method public void removeElementAt(int);
+    method public void setElementAt(E, int);
+    method public void setSize(int);
+    method public int size();
+    method public void trimToSize();
     field protected int capacityIncrement;
     field protected int elementCount;
-    field protected java.lang.Object[] elementData;
+    field protected Object[] elementData;
   }
 
-  public class WeakHashMap<K, V> extends java.util.AbstractMap implements java.util.Map {
+  public class WeakHashMap<K, V> extends java.util.AbstractMap<K,V> implements java.util.Map<K,V> {
     ctor public WeakHashMap(int, float);
     ctor public WeakHashMap(int);
     ctor public WeakHashMap();
-    ctor public WeakHashMap(java.util.Map<? extends K, ? extends V>);
-    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
+    ctor public WeakHashMap(@NonNull java.util.Map<? extends K,? extends V>);
+    method @NonNull public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
   }
 
 }
@@ -70749,14 +70508,14 @@
     method public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
     method public <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
     method public <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
-    method protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor(java.lang.Runnable, T);
+    method protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor(Runnable, T);
     method protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor(java.util.concurrent.Callable<T>);
-    method public java.util.concurrent.Future<?> submit(java.lang.Runnable);
-    method public <T> java.util.concurrent.Future<T> submit(java.lang.Runnable, T);
+    method public java.util.concurrent.Future<?> submit(Runnable);
+    method public <T> java.util.concurrent.Future<T> submit(Runnable, T);
     method public <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T>);
   }
 
-  public class ArrayBlockingQueue<E> extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable {
+  public class ArrayBlockingQueue<E> extends java.util.AbstractQueue<E> implements java.util.concurrent.BlockingQueue<E> java.io.Serializable {
     ctor public ArrayBlockingQueue(int);
     ctor public ArrayBlockingQueue(int, boolean);
     ctor public ArrayBlockingQueue(int, boolean, java.util.Collection<? extends E>);
@@ -70774,221 +70533,231 @@
     method public E take() throws java.lang.InterruptedException;
   }
 
-  public abstract interface BlockingDeque<E> implements java.util.concurrent.BlockingQueue java.util.Deque {
-    method public abstract boolean offerFirst(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract boolean offerLast(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract E pollFirst(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract E pollLast(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract void putFirst(E) throws java.lang.InterruptedException;
-    method public abstract void putLast(E) throws java.lang.InterruptedException;
-    method public abstract E takeFirst() throws java.lang.InterruptedException;
-    method public abstract E takeLast() throws java.lang.InterruptedException;
+  public interface BlockingDeque<E> extends java.util.concurrent.BlockingQueue<E> java.util.Deque<E> {
+    method public boolean offerFirst(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public boolean offerLast(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public E pollFirst(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public E pollLast(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public void putFirst(E) throws java.lang.InterruptedException;
+    method public void putLast(E) throws java.lang.InterruptedException;
+    method public E takeFirst() throws java.lang.InterruptedException;
+    method public E takeLast() throws java.lang.InterruptedException;
   }
 
-  public abstract interface BlockingQueue<E> implements java.util.Queue {
-    method public abstract int drainTo(java.util.Collection<? super E>);
-    method public abstract int drainTo(java.util.Collection<? super E>, int);
-    method public abstract boolean offer(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract E poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract void put(E) throws java.lang.InterruptedException;
-    method public abstract int remainingCapacity();
-    method public abstract E take() throws java.lang.InterruptedException;
+  public interface BlockingQueue<E> extends java.util.Queue<E> {
+    method public int drainTo(java.util.Collection<? super E>);
+    method public int drainTo(java.util.Collection<? super E>, int);
+    method public boolean offer(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public E poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public void put(E) throws java.lang.InterruptedException;
+    method public int remainingCapacity();
+    method public E take() throws java.lang.InterruptedException;
   }
 
   public class BrokenBarrierException extends java.lang.Exception {
     ctor public BrokenBarrierException();
-    ctor public BrokenBarrierException(java.lang.String);
+    ctor public BrokenBarrierException(String);
   }
 
-  public abstract interface Callable<V> {
-    method public abstract V call() throws java.lang.Exception;
+  @java.lang.FunctionalInterface public interface Callable<V> {
+    method public V call() throws java.lang.Exception;
   }
 
   public class CancellationException extends java.lang.IllegalStateException {
     ctor public CancellationException();
-    ctor public CancellationException(java.lang.String);
+    ctor public CancellationException(String);
   }
 
-  public class CompletableFuture<T> implements java.util.concurrent.CompletionStage java.util.concurrent.Future {
+  public class CompletableFuture<T> implements java.util.concurrent.CompletionStage<T> java.util.concurrent.Future<T> {
     ctor public CompletableFuture();
     method public java.util.concurrent.CompletableFuture<java.lang.Void> acceptEither(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Consumer<? super T>);
     method public java.util.concurrent.CompletableFuture<java.lang.Void> acceptEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Consumer<? super T>);
     method public java.util.concurrent.CompletableFuture<java.lang.Void> acceptEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Consumer<? super T>, java.util.concurrent.Executor);
     method public static java.util.concurrent.CompletableFuture<java.lang.Void> allOf(java.util.concurrent.CompletableFuture<?>...);
     method public static java.util.concurrent.CompletableFuture<java.lang.Object> anyOf(java.util.concurrent.CompletableFuture<?>...);
-    method public <U> java.util.concurrent.CompletableFuture<U> applyToEither(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T, U>);
-    method public <U> java.util.concurrent.CompletableFuture<U> applyToEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T, U>);
-    method public <U> java.util.concurrent.CompletableFuture<U> applyToEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T, U>, java.util.concurrent.Executor);
+    method public <U> java.util.concurrent.CompletableFuture<U> applyToEither(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T,U>);
+    method public <U> java.util.concurrent.CompletableFuture<U> applyToEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T,U>);
+    method public <U> java.util.concurrent.CompletableFuture<U> applyToEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T,U>, java.util.concurrent.Executor);
     method public boolean cancel(boolean);
     method public boolean complete(T);
-    method public boolean completeExceptionally(java.lang.Throwable);
+    method public boolean completeExceptionally(Throwable);
     method public static <U> java.util.concurrent.CompletableFuture<U> completedFuture(U);
-    method public java.util.concurrent.CompletableFuture<T> exceptionally(java.util.function.Function<java.lang.Throwable, ? extends T>);
+    method public java.util.concurrent.CompletableFuture<T> exceptionally(java.util.function.Function<java.lang.Throwable,? extends T>);
     method public T get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
     method public T get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
     method public T getNow(T);
     method public int getNumberOfDependents();
-    method public <U> java.util.concurrent.CompletableFuture<U> handle(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>);
-    method public <U> java.util.concurrent.CompletableFuture<U> handleAsync(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>);
-    method public <U> java.util.concurrent.CompletableFuture<U> handleAsync(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>, java.util.concurrent.Executor);
+    method public <U> java.util.concurrent.CompletableFuture<U> handle(java.util.function.BiFunction<? super T,java.lang.Throwable,? extends U>);
+    method public <U> java.util.concurrent.CompletableFuture<U> handleAsync(java.util.function.BiFunction<? super T,java.lang.Throwable,? extends U>);
+    method public <U> java.util.concurrent.CompletableFuture<U> handleAsync(java.util.function.BiFunction<? super T,java.lang.Throwable,? extends U>, java.util.concurrent.Executor);
     method public boolean isCancelled();
     method public boolean isCompletedExceptionally();
     method public boolean isDone();
     method public T join();
-    method public void obtrudeException(java.lang.Throwable);
+    method public void obtrudeException(Throwable);
     method public void obtrudeValue(T);
-    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterBoth(java.util.concurrent.CompletionStage<?>, java.lang.Runnable);
-    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterBothAsync(java.util.concurrent.CompletionStage<?>, java.lang.Runnable);
-    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterBothAsync(java.util.concurrent.CompletionStage<?>, java.lang.Runnable, java.util.concurrent.Executor);
-    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterEither(java.util.concurrent.CompletionStage<?>, java.lang.Runnable);
-    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterEitherAsync(java.util.concurrent.CompletionStage<?>, java.lang.Runnable);
-    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterEitherAsync(java.util.concurrent.CompletionStage<?>, java.lang.Runnable, java.util.concurrent.Executor);
-    method public static java.util.concurrent.CompletableFuture<java.lang.Void> runAsync(java.lang.Runnable);
-    method public static java.util.concurrent.CompletableFuture<java.lang.Void> runAsync(java.lang.Runnable, java.util.concurrent.Executor);
+    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterBoth(java.util.concurrent.CompletionStage<?>, Runnable);
+    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterBothAsync(java.util.concurrent.CompletionStage<?>, Runnable);
+    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterBothAsync(java.util.concurrent.CompletionStage<?>, Runnable, java.util.concurrent.Executor);
+    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterEither(java.util.concurrent.CompletionStage<?>, Runnable);
+    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterEitherAsync(java.util.concurrent.CompletionStage<?>, Runnable);
+    method public java.util.concurrent.CompletableFuture<java.lang.Void> runAfterEitherAsync(java.util.concurrent.CompletionStage<?>, Runnable, java.util.concurrent.Executor);
+    method public static java.util.concurrent.CompletableFuture<java.lang.Void> runAsync(Runnable);
+    method public static java.util.concurrent.CompletableFuture<java.lang.Void> runAsync(Runnable, java.util.concurrent.Executor);
     method public static <U> java.util.concurrent.CompletableFuture<U> supplyAsync(java.util.function.Supplier<U>);
     method public static <U> java.util.concurrent.CompletableFuture<U> supplyAsync(java.util.function.Supplier<U>, java.util.concurrent.Executor);
     method public java.util.concurrent.CompletableFuture<java.lang.Void> thenAccept(java.util.function.Consumer<? super T>);
     method public java.util.concurrent.CompletableFuture<java.lang.Void> thenAcceptAsync(java.util.function.Consumer<? super T>);
     method public java.util.concurrent.CompletableFuture<java.lang.Void> thenAcceptAsync(java.util.function.Consumer<? super T>, java.util.concurrent.Executor);
-    method public <U> java.util.concurrent.CompletableFuture<java.lang.Void> thenAcceptBoth(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T, ? super U>);
-    method public <U> java.util.concurrent.CompletableFuture<java.lang.Void> thenAcceptBothAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T, ? super U>);
-    method public <U> java.util.concurrent.CompletableFuture<java.lang.Void> thenAcceptBothAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T, ? super U>, java.util.concurrent.Executor);
-    method public <U> java.util.concurrent.CompletableFuture<U> thenApply(java.util.function.Function<? super T, ? extends U>);
-    method public <U> java.util.concurrent.CompletableFuture<U> thenApplyAsync(java.util.function.Function<? super T, ? extends U>);
-    method public <U> java.util.concurrent.CompletableFuture<U> thenApplyAsync(java.util.function.Function<? super T, ? extends U>, java.util.concurrent.Executor);
-    method public <U, V> java.util.concurrent.CompletableFuture<V> thenCombine(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T, ? super U, ? extends V>);
-    method public <U, V> java.util.concurrent.CompletableFuture<V> thenCombineAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T, ? super U, ? extends V>);
-    method public <U, V> java.util.concurrent.CompletableFuture<V> thenCombineAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T, ? super U, ? extends V>, java.util.concurrent.Executor);
-    method public <U> java.util.concurrent.CompletableFuture<U> thenCompose(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>);
-    method public <U> java.util.concurrent.CompletableFuture<U> thenComposeAsync(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>);
-    method public <U> java.util.concurrent.CompletableFuture<U> thenComposeAsync(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>, java.util.concurrent.Executor);
-    method public java.util.concurrent.CompletableFuture<java.lang.Void> thenRun(java.lang.Runnable);
-    method public java.util.concurrent.CompletableFuture<java.lang.Void> thenRunAsync(java.lang.Runnable);
-    method public java.util.concurrent.CompletableFuture<java.lang.Void> thenRunAsync(java.lang.Runnable, java.util.concurrent.Executor);
+    method public <U> java.util.concurrent.CompletableFuture<java.lang.Void> thenAcceptBoth(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T,? super U>);
+    method public <U> java.util.concurrent.CompletableFuture<java.lang.Void> thenAcceptBothAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T,? super U>);
+    method public <U> java.util.concurrent.CompletableFuture<java.lang.Void> thenAcceptBothAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T,? super U>, java.util.concurrent.Executor);
+    method public <U> java.util.concurrent.CompletableFuture<U> thenApply(java.util.function.Function<? super T,? extends U>);
+    method public <U> java.util.concurrent.CompletableFuture<U> thenApplyAsync(java.util.function.Function<? super T,? extends U>);
+    method public <U> java.util.concurrent.CompletableFuture<U> thenApplyAsync(java.util.function.Function<? super T,? extends U>, java.util.concurrent.Executor);
+    method public <U, V> java.util.concurrent.CompletableFuture<V> thenCombine(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T,? super U,? extends V>);
+    method public <U, V> java.util.concurrent.CompletableFuture<V> thenCombineAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T,? super U,? extends V>);
+    method public <U, V> java.util.concurrent.CompletableFuture<V> thenCombineAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T,? super U,? extends V>, java.util.concurrent.Executor);
+    method public <U> java.util.concurrent.CompletableFuture<U> thenCompose(java.util.function.Function<? super T,? extends java.util.concurrent.CompletionStage<U>>);
+    method public <U> java.util.concurrent.CompletableFuture<U> thenComposeAsync(java.util.function.Function<? super T,? extends java.util.concurrent.CompletionStage<U>>);
+    method public <U> java.util.concurrent.CompletableFuture<U> thenComposeAsync(java.util.function.Function<? super T,? extends java.util.concurrent.CompletionStage<U>>, java.util.concurrent.Executor);
+    method public java.util.concurrent.CompletableFuture<java.lang.Void> thenRun(Runnable);
+    method public java.util.concurrent.CompletableFuture<java.lang.Void> thenRunAsync(Runnable);
+    method public java.util.concurrent.CompletableFuture<java.lang.Void> thenRunAsync(Runnable, java.util.concurrent.Executor);
     method public java.util.concurrent.CompletableFuture<T> toCompletableFuture();
-    method public java.util.concurrent.CompletableFuture<T> whenComplete(java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>);
-    method public java.util.concurrent.CompletableFuture<T> whenCompleteAsync(java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>);
-    method public java.util.concurrent.CompletableFuture<T> whenCompleteAsync(java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>, java.util.concurrent.Executor);
+    method public java.util.concurrent.CompletableFuture<T> whenComplete(java.util.function.BiConsumer<? super T,? super java.lang.Throwable>);
+    method public java.util.concurrent.CompletableFuture<T> whenCompleteAsync(java.util.function.BiConsumer<? super T,? super java.lang.Throwable>);
+    method public java.util.concurrent.CompletableFuture<T> whenCompleteAsync(java.util.function.BiConsumer<? super T,? super java.lang.Throwable>, java.util.concurrent.Executor);
   }
 
-  public static abstract interface CompletableFuture.AsynchronousCompletionTask {
+  public static interface CompletableFuture.AsynchronousCompletionTask {
   }
 
   public class CompletionException extends java.lang.RuntimeException {
     ctor protected CompletionException();
-    ctor protected CompletionException(java.lang.String);
-    ctor public CompletionException(java.lang.String, java.lang.Throwable);
-    ctor public CompletionException(java.lang.Throwable);
+    ctor protected CompletionException(String);
+    ctor public CompletionException(String, Throwable);
+    ctor public CompletionException(Throwable);
   }
 
-  public abstract interface CompletionService<V> {
-    method public abstract java.util.concurrent.Future<V> poll();
-    method public abstract java.util.concurrent.Future<V> poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract java.util.concurrent.Future<V> submit(java.util.concurrent.Callable<V>);
-    method public abstract java.util.concurrent.Future<V> submit(java.lang.Runnable, V);
-    method public abstract java.util.concurrent.Future<V> take() throws java.lang.InterruptedException;
+  public interface CompletionService<V> {
+    method public java.util.concurrent.Future<V> poll();
+    method public java.util.concurrent.Future<V> poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public java.util.concurrent.Future<V> submit(java.util.concurrent.Callable<V>);
+    method public java.util.concurrent.Future<V> submit(Runnable, V);
+    method public java.util.concurrent.Future<V> take() throws java.lang.InterruptedException;
   }
 
-  public abstract interface CompletionStage<T> {
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> acceptEither(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Consumer<? super T>);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> acceptEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Consumer<? super T>);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> acceptEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Consumer<? super T>, java.util.concurrent.Executor);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> applyToEither(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T, U>);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> applyToEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T, U>);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> applyToEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T, U>, java.util.concurrent.Executor);
-    method public abstract java.util.concurrent.CompletionStage<T> exceptionally(java.util.function.Function<java.lang.Throwable, ? extends T>);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> handle(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> handleAsync(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> handleAsync(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>, java.util.concurrent.Executor);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> runAfterBoth(java.util.concurrent.CompletionStage<?>, java.lang.Runnable);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> runAfterBothAsync(java.util.concurrent.CompletionStage<?>, java.lang.Runnable);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> runAfterBothAsync(java.util.concurrent.CompletionStage<?>, java.lang.Runnable, java.util.concurrent.Executor);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> runAfterEither(java.util.concurrent.CompletionStage<?>, java.lang.Runnable);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> runAfterEitherAsync(java.util.concurrent.CompletionStage<?>, java.lang.Runnable);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> runAfterEitherAsync(java.util.concurrent.CompletionStage<?>, java.lang.Runnable, java.util.concurrent.Executor);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> thenAccept(java.util.function.Consumer<? super T>);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> thenAcceptAsync(java.util.function.Consumer<? super T>);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> thenAcceptAsync(java.util.function.Consumer<? super T>, java.util.concurrent.Executor);
-    method public abstract <U> java.util.concurrent.CompletionStage<java.lang.Void> thenAcceptBoth(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T, ? super U>);
-    method public abstract <U> java.util.concurrent.CompletionStage<java.lang.Void> thenAcceptBothAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T, ? super U>);
-    method public abstract <U> java.util.concurrent.CompletionStage<java.lang.Void> thenAcceptBothAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T, ? super U>, java.util.concurrent.Executor);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> thenApply(java.util.function.Function<? super T, ? extends U>);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> thenApplyAsync(java.util.function.Function<? super T, ? extends U>);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> thenApplyAsync(java.util.function.Function<? super T, ? extends U>, java.util.concurrent.Executor);
-    method public abstract <U, V> java.util.concurrent.CompletionStage<V> thenCombine(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T, ? super U, ? extends V>);
-    method public abstract <U, V> java.util.concurrent.CompletionStage<V> thenCombineAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T, ? super U, ? extends V>);
-    method public abstract <U, V> java.util.concurrent.CompletionStage<V> thenCombineAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T, ? super U, ? extends V>, java.util.concurrent.Executor);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> thenCompose(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> thenComposeAsync(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>);
-    method public abstract <U> java.util.concurrent.CompletionStage<U> thenComposeAsync(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>, java.util.concurrent.Executor);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> thenRun(java.lang.Runnable);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> thenRunAsync(java.lang.Runnable);
-    method public abstract java.util.concurrent.CompletionStage<java.lang.Void> thenRunAsync(java.lang.Runnable, java.util.concurrent.Executor);
-    method public abstract java.util.concurrent.CompletableFuture<T> toCompletableFuture();
-    method public abstract java.util.concurrent.CompletionStage<T> whenComplete(java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>);
-    method public abstract java.util.concurrent.CompletionStage<T> whenCompleteAsync(java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>);
-    method public abstract java.util.concurrent.CompletionStage<T> whenCompleteAsync(java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>, java.util.concurrent.Executor);
+  public interface CompletionStage<T> {
+    method public java.util.concurrent.CompletionStage<java.lang.Void> acceptEither(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Consumer<? super T>);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> acceptEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Consumer<? super T>);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> acceptEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Consumer<? super T>, java.util.concurrent.Executor);
+    method public <U> java.util.concurrent.CompletionStage<U> applyToEither(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T,U>);
+    method public <U> java.util.concurrent.CompletionStage<U> applyToEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T,U>);
+    method public <U> java.util.concurrent.CompletionStage<U> applyToEitherAsync(java.util.concurrent.CompletionStage<? extends T>, java.util.function.Function<? super T,U>, java.util.concurrent.Executor);
+    method public java.util.concurrent.CompletionStage<T> exceptionally(java.util.function.Function<java.lang.Throwable,? extends T>);
+    method public <U> java.util.concurrent.CompletionStage<U> handle(java.util.function.BiFunction<? super T,java.lang.Throwable,? extends U>);
+    method public <U> java.util.concurrent.CompletionStage<U> handleAsync(java.util.function.BiFunction<? super T,java.lang.Throwable,? extends U>);
+    method public <U> java.util.concurrent.CompletionStage<U> handleAsync(java.util.function.BiFunction<? super T,java.lang.Throwable,? extends U>, java.util.concurrent.Executor);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> runAfterBoth(java.util.concurrent.CompletionStage<?>, Runnable);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> runAfterBothAsync(java.util.concurrent.CompletionStage<?>, Runnable);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> runAfterBothAsync(java.util.concurrent.CompletionStage<?>, Runnable, java.util.concurrent.Executor);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> runAfterEither(java.util.concurrent.CompletionStage<?>, Runnable);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> runAfterEitherAsync(java.util.concurrent.CompletionStage<?>, Runnable);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> runAfterEitherAsync(java.util.concurrent.CompletionStage<?>, Runnable, java.util.concurrent.Executor);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> thenAccept(java.util.function.Consumer<? super T>);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> thenAcceptAsync(java.util.function.Consumer<? super T>);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> thenAcceptAsync(java.util.function.Consumer<? super T>, java.util.concurrent.Executor);
+    method public <U> java.util.concurrent.CompletionStage<java.lang.Void> thenAcceptBoth(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T,? super U>);
+    method public <U> java.util.concurrent.CompletionStage<java.lang.Void> thenAcceptBothAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T,? super U>);
+    method public <U> java.util.concurrent.CompletionStage<java.lang.Void> thenAcceptBothAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiConsumer<? super T,? super U>, java.util.concurrent.Executor);
+    method public <U> java.util.concurrent.CompletionStage<U> thenApply(java.util.function.Function<? super T,? extends U>);
+    method public <U> java.util.concurrent.CompletionStage<U> thenApplyAsync(java.util.function.Function<? super T,? extends U>);
+    method public <U> java.util.concurrent.CompletionStage<U> thenApplyAsync(java.util.function.Function<? super T,? extends U>, java.util.concurrent.Executor);
+    method public <U, V> java.util.concurrent.CompletionStage<V> thenCombine(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T,? super U,? extends V>);
+    method public <U, V> java.util.concurrent.CompletionStage<V> thenCombineAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T,? super U,? extends V>);
+    method public <U, V> java.util.concurrent.CompletionStage<V> thenCombineAsync(java.util.concurrent.CompletionStage<? extends U>, java.util.function.BiFunction<? super T,? super U,? extends V>, java.util.concurrent.Executor);
+    method public <U> java.util.concurrent.CompletionStage<U> thenCompose(java.util.function.Function<? super T,? extends java.util.concurrent.CompletionStage<U>>);
+    method public <U> java.util.concurrent.CompletionStage<U> thenComposeAsync(java.util.function.Function<? super T,? extends java.util.concurrent.CompletionStage<U>>);
+    method public <U> java.util.concurrent.CompletionStage<U> thenComposeAsync(java.util.function.Function<? super T,? extends java.util.concurrent.CompletionStage<U>>, java.util.concurrent.Executor);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> thenRun(Runnable);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> thenRunAsync(Runnable);
+    method public java.util.concurrent.CompletionStage<java.lang.Void> thenRunAsync(Runnable, java.util.concurrent.Executor);
+    method public java.util.concurrent.CompletableFuture<T> toCompletableFuture();
+    method public java.util.concurrent.CompletionStage<T> whenComplete(java.util.function.BiConsumer<? super T,? super java.lang.Throwable>);
+    method public java.util.concurrent.CompletionStage<T> whenCompleteAsync(java.util.function.BiConsumer<? super T,? super java.lang.Throwable>);
+    method public java.util.concurrent.CompletionStage<T> whenCompleteAsync(java.util.function.BiConsumer<? super T,? super java.lang.Throwable>, java.util.concurrent.Executor);
   }
 
-  public class ConcurrentHashMap<K, V> extends java.util.AbstractMap implements java.util.concurrent.ConcurrentMap java.io.Serializable {
+  public class ConcurrentHashMap<K, V> extends java.util.AbstractMap<K,V> implements java.util.concurrent.ConcurrentMap<K,V> java.io.Serializable {
     ctor public ConcurrentHashMap();
     ctor public ConcurrentHashMap(int);
-    ctor public ConcurrentHashMap(java.util.Map<? extends K, ? extends V>);
+    ctor public ConcurrentHashMap(@NonNull java.util.Map<? extends K,? extends V>);
     ctor public ConcurrentHashMap(int, float);
     ctor public ConcurrentHashMap(int, float, int);
-    method public boolean contains(java.lang.Object);
-    method public java.util.Enumeration<V> elements();
-    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
-    method public void forEach(long, java.util.function.BiConsumer<? super K, ? super V>);
-    method public <U> void forEach(long, java.util.function.BiFunction<? super K, ? super V, ? extends U>, java.util.function.Consumer<? super U>);
-    method public void forEachEntry(long, java.util.function.Consumer<? super java.util.Map.Entry<K, V>>);
-    method public <U> void forEachEntry(long, java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U>, java.util.function.Consumer<? super U>);
-    method public void forEachKey(long, java.util.function.Consumer<? super K>);
-    method public <U> void forEachKey(long, java.util.function.Function<? super K, ? extends U>, java.util.function.Consumer<? super U>);
-    method public void forEachValue(long, java.util.function.Consumer<? super V>);
-    method public <U> void forEachValue(long, java.util.function.Function<? super V, ? extends U>, java.util.function.Consumer<? super U>);
-    method public java.util.concurrent.ConcurrentHashMap.KeySetView<K, V> keySet(V);
-    method public java.util.Enumeration<K> keys();
+    method public boolean contains(@NonNull Object);
+    method @NonNull public java.util.Enumeration<V> elements();
+    method @NonNull public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public void forEach(long, @NonNull java.util.function.BiConsumer<? super K,? super V>);
+    method public <U> void forEach(long, @NonNull java.util.function.BiFunction<? super K,? super V,? extends U>, @NonNull java.util.function.Consumer<? super U>);
+    method public void forEachEntry(long, @NonNull java.util.function.Consumer<? super java.util.Map.Entry<K,V>>);
+    method public <U> void forEachEntry(long, @NonNull java.util.function.Function<java.util.Map.Entry<K,V>,? extends U>, @NonNull java.util.function.Consumer<? super U>);
+    method public void forEachKey(long, @NonNull java.util.function.Consumer<? super K>);
+    method public <U> void forEachKey(long, @NonNull java.util.function.Function<? super K,? extends U>, @NonNull java.util.function.Consumer<? super U>);
+    method public void forEachValue(long, @NonNull java.util.function.Consumer<? super V>);
+    method public <U> void forEachValue(long, @NonNull java.util.function.Function<? super V,? extends U>, @NonNull java.util.function.Consumer<? super U>);
+    method @NonNull public java.util.concurrent.ConcurrentHashMap.KeySetView<K,V> keySet(@NonNull V);
+    method @NonNull public java.util.Enumeration<K> keys();
     method public long mappingCount();
-    method public static <K> java.util.concurrent.ConcurrentHashMap.KeySetView<K, java.lang.Boolean> newKeySet();
-    method public static <K> java.util.concurrent.ConcurrentHashMap.KeySetView<K, java.lang.Boolean> newKeySet(int);
-    method public <U> U reduce(long, java.util.function.BiFunction<? super K, ? super V, ? extends U>, java.util.function.BiFunction<? super U, ? super U, ? extends U>);
-    method public java.util.Map.Entry<K, V> reduceEntries(long, java.util.function.BiFunction<java.util.Map.Entry<K, V>, java.util.Map.Entry<K, V>, ? extends java.util.Map.Entry<K, V>>);
-    method public <U> U reduceEntries(long, java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U>, java.util.function.BiFunction<? super U, ? super U, ? extends U>);
-    method public double reduceEntriesToDouble(long, java.util.function.ToDoubleFunction<java.util.Map.Entry<K, V>>, double, java.util.function.DoubleBinaryOperator);
-    method public int reduceEntriesToInt(long, java.util.function.ToIntFunction<java.util.Map.Entry<K, V>>, int, java.util.function.IntBinaryOperator);
-    method public long reduceEntriesToLong(long, java.util.function.ToLongFunction<java.util.Map.Entry<K, V>>, long, java.util.function.LongBinaryOperator);
-    method public K reduceKeys(long, java.util.function.BiFunction<? super K, ? super K, ? extends K>);
-    method public <U> U reduceKeys(long, java.util.function.Function<? super K, ? extends U>, java.util.function.BiFunction<? super U, ? super U, ? extends U>);
-    method public double reduceKeysToDouble(long, java.util.function.ToDoubleFunction<? super K>, double, java.util.function.DoubleBinaryOperator);
-    method public int reduceKeysToInt(long, java.util.function.ToIntFunction<? super K>, int, java.util.function.IntBinaryOperator);
-    method public long reduceKeysToLong(long, java.util.function.ToLongFunction<? super K>, long, java.util.function.LongBinaryOperator);
-    method public double reduceToDouble(long, java.util.function.ToDoubleBiFunction<? super K, ? super V>, double, java.util.function.DoubleBinaryOperator);
-    method public int reduceToInt(long, java.util.function.ToIntBiFunction<? super K, ? super V>, int, java.util.function.IntBinaryOperator);
-    method public long reduceToLong(long, java.util.function.ToLongBiFunction<? super K, ? super V>, long, java.util.function.LongBinaryOperator);
-    method public V reduceValues(long, java.util.function.BiFunction<? super V, ? super V, ? extends V>);
-    method public <U> U reduceValues(long, java.util.function.Function<? super V, ? extends U>, java.util.function.BiFunction<? super U, ? super U, ? extends U>);
-    method public double reduceValuesToDouble(long, java.util.function.ToDoubleFunction<? super V>, double, java.util.function.DoubleBinaryOperator);
-    method public int reduceValuesToInt(long, java.util.function.ToIntFunction<? super V>, int, java.util.function.IntBinaryOperator);
-    method public long reduceValuesToLong(long, java.util.function.ToLongFunction<? super V>, long, java.util.function.LongBinaryOperator);
-    method public <U> U search(long, java.util.function.BiFunction<? super K, ? super V, ? extends U>);
-    method public <U> U searchEntries(long, java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U>);
-    method public <U> U searchKeys(long, java.util.function.Function<? super K, ? extends U>);
-    method public <U> U searchValues(long, java.util.function.Function<? super V, ? extends U>);
+    method @NonNull public static <K> java.util.concurrent.ConcurrentHashMap.KeySetView<K,java.lang.Boolean> newKeySet();
+    method @NonNull public static <K> java.util.concurrent.ConcurrentHashMap.KeySetView<K,java.lang.Boolean> newKeySet(int);
+    method @Nullable public <U> U reduce(long, @NonNull java.util.function.BiFunction<? super K,? super V,? extends U>, @NonNull java.util.function.BiFunction<? super U,? super U,? extends U>);
+    method @Nullable public java.util.Map.Entry<K,V> reduceEntries(long, @NonNull java.util.function.BiFunction<java.util.Map.Entry<K,V>,java.util.Map.Entry<K,V>,? extends java.util.Map.Entry<K,V>>);
+    method @Nullable public <U> U reduceEntries(long, @NonNull java.util.function.Function<java.util.Map.Entry<K,V>,? extends U>, @NonNull java.util.function.BiFunction<? super U,? super U,? extends U>);
+    method public double reduceEntriesToDouble(long, @NonNull java.util.function.ToDoubleFunction<java.util.Map.Entry<K,V>>, double, @NonNull java.util.function.DoubleBinaryOperator);
+    method public int reduceEntriesToInt(long, @NonNull java.util.function.ToIntFunction<java.util.Map.Entry<K,V>>, int, @NonNull java.util.function.IntBinaryOperator);
+    method public long reduceEntriesToLong(long, @NonNull java.util.function.ToLongFunction<java.util.Map.Entry<K,V>>, long, @NonNull java.util.function.LongBinaryOperator);
+    method @Nullable public K reduceKeys(long, @NonNull java.util.function.BiFunction<? super K,? super K,? extends K>);
+    method @Nullable public <U> U reduceKeys(long, @NonNull java.util.function.Function<? super K,? extends U>, @NonNull java.util.function.BiFunction<? super U,? super U,? extends U>);
+    method public double reduceKeysToDouble(long, @NonNull java.util.function.ToDoubleFunction<? super K>, double, @NonNull java.util.function.DoubleBinaryOperator);
+    method public int reduceKeysToInt(long, @NonNull java.util.function.ToIntFunction<? super K>, int, @NonNull java.util.function.IntBinaryOperator);
+    method public long reduceKeysToLong(long, @NonNull java.util.function.ToLongFunction<? super K>, long, @NonNull java.util.function.LongBinaryOperator);
+    method public double reduceToDouble(long, @NonNull java.util.function.ToDoubleBiFunction<? super K,? super V>, double, @NonNull java.util.function.DoubleBinaryOperator);
+    method public int reduceToInt(long, @NonNull java.util.function.ToIntBiFunction<? super K,? super V>, int, @NonNull java.util.function.IntBinaryOperator);
+    method public long reduceToLong(long, @NonNull java.util.function.ToLongBiFunction<? super K,? super V>, long, @NonNull java.util.function.LongBinaryOperator);
+    method @Nullable public V reduceValues(long, @NonNull java.util.function.BiFunction<? super V,? super V,? extends V>);
+    method @Nullable public <U> U reduceValues(long, @NonNull java.util.function.Function<? super V,? extends U>, @NonNull java.util.function.BiFunction<? super U,? super U,? extends U>);
+    method public double reduceValuesToDouble(long, @NonNull java.util.function.ToDoubleFunction<? super V>, double, @NonNull java.util.function.DoubleBinaryOperator);
+    method public int reduceValuesToInt(long, @NonNull java.util.function.ToIntFunction<? super V>, int, @NonNull java.util.function.IntBinaryOperator);
+    method public long reduceValuesToLong(long, @NonNull java.util.function.ToLongFunction<? super V>, long, @NonNull java.util.function.LongBinaryOperator);
+    method @Nullable public <U> U search(long, @NonNull java.util.function.BiFunction<? super K,? super V,? extends U>);
+    method @Nullable public <U> U searchEntries(long, @NonNull java.util.function.Function<java.util.Map.Entry<K,V>,? extends U>);
+    method @Nullable public <U> U searchKeys(long, @NonNull java.util.function.Function<? super K,? extends U>);
+    method @Nullable public <U> U searchValues(long, @NonNull java.util.function.Function<? super V,? extends U>);
   }
 
-  public static class ConcurrentHashMap.KeySetView<K, V> implements java.util.Collection java.io.Serializable java.util.Set {
-    method public boolean add(K);
-    method public boolean addAll(java.util.Collection<? extends K>);
-    method public boolean contains(java.lang.Object);
-    method public void forEach(java.util.function.Consumer<? super K>);
-    method public V getMappedValue();
-    method public java.util.Iterator<K> iterator();
-    method public boolean remove(java.lang.Object);
-    method public java.util.Spliterator<K> spliterator();
+  public static class ConcurrentHashMap.KeySetView<K, V> implements java.util.Collection<K> java.io.Serializable java.util.Set<K> {
+    method public boolean add(@NonNull K);
+    method public boolean addAll(@NonNull java.util.Collection<? extends K>);
+    method public final void clear();
+    method public boolean contains(@NonNull Object);
+    method public final boolean containsAll(java.util.Collection<?>);
+    method public void forEach(@NonNull java.util.function.Consumer<? super K>);
+    method public java.util.concurrent.ConcurrentHashMap<K,V> getMap();
+    method @Nullable public V getMappedValue();
+    method public final boolean isEmpty();
+    method @NonNull public java.util.Iterator<K> iterator();
+    method public boolean remove(@NonNull Object);
+    method public final boolean removeAll(java.util.Collection<?>);
+    method public final boolean retainAll(java.util.Collection<?>);
+    method public final int size();
+    method @NonNull public java.util.Spliterator<K> spliterator();
+    method public final Object[] toArray();
+    method public final <T> T[] toArray(T[]);
+    method public final String toString();
   }
 
-  public class ConcurrentLinkedDeque<E> extends java.util.AbstractCollection implements java.util.Deque java.io.Serializable {
+  public class ConcurrentLinkedDeque<E> extends java.util.AbstractCollection<E> implements java.util.Deque<E> java.io.Serializable {
     ctor public ConcurrentLinkedDeque();
     ctor public ConcurrentLinkedDeque(java.util.Collection<? extends E>);
     method public void addFirst(E);
@@ -71011,13 +70780,13 @@
     method public void push(E);
     method public E remove();
     method public E removeFirst();
-    method public boolean removeFirstOccurrence(java.lang.Object);
+    method public boolean removeFirstOccurrence(Object);
     method public E removeLast();
-    method public boolean removeLastOccurrence(java.lang.Object);
+    method public boolean removeLastOccurrence(Object);
     method public int size();
   }
 
-  public class ConcurrentLinkedQueue<E> extends java.util.AbstractQueue implements java.util.Queue java.io.Serializable {
+  public class ConcurrentLinkedQueue<E> extends java.util.AbstractQueue<E> implements java.util.Queue<E> java.io.Serializable {
     ctor public ConcurrentLinkedQueue();
     ctor public ConcurrentLinkedQueue(java.util.Collection<? extends E>);
     method public java.util.Iterator<E> iterator();
@@ -71027,59 +70796,59 @@
     method public int size();
   }
 
-  public abstract interface ConcurrentMap<K, V> implements java.util.Map {
-    method public abstract V putIfAbsent(K, V);
-    method public abstract boolean remove(java.lang.Object, java.lang.Object);
-    method public abstract boolean replace(K, V, V);
-    method public abstract V replace(K, V);
+  public interface ConcurrentMap<K, V> extends java.util.Map<K,V> {
+    method public V putIfAbsent(K, V);
+    method public boolean remove(Object, Object);
+    method public boolean replace(K, V, V);
+    method public V replace(K, V);
   }
 
-  public abstract interface ConcurrentNavigableMap<K, V> implements java.util.concurrent.ConcurrentMap java.util.NavigableMap {
-    method public abstract java.util.concurrent.ConcurrentNavigableMap<K, V> descendingMap();
-    method public abstract java.util.concurrent.ConcurrentNavigableMap<K, V> headMap(K, boolean);
-    method public abstract java.util.concurrent.ConcurrentNavigableMap<K, V> headMap(K);
-    method public abstract java.util.NavigableSet<K> keySet();
-    method public abstract java.util.concurrent.ConcurrentNavigableMap<K, V> subMap(K, boolean, K, boolean);
-    method public abstract java.util.concurrent.ConcurrentNavigableMap<K, V> subMap(K, K);
-    method public abstract java.util.concurrent.ConcurrentNavigableMap<K, V> tailMap(K, boolean);
-    method public abstract java.util.concurrent.ConcurrentNavigableMap<K, V> tailMap(K);
+  public interface ConcurrentNavigableMap<K, V> extends java.util.concurrent.ConcurrentMap<K,V> java.util.NavigableMap<K,V> {
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> descendingMap();
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> headMap(K, boolean);
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> headMap(K);
+    method public java.util.NavigableSet<K> keySet();
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> subMap(K, boolean, K, boolean);
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> subMap(K, K);
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> tailMap(K, boolean);
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> tailMap(K);
   }
 
-  public class ConcurrentSkipListMap<K, V> extends java.util.AbstractMap implements java.lang.Cloneable java.util.concurrent.ConcurrentNavigableMap java.io.Serializable {
+  public class ConcurrentSkipListMap<K, V> extends java.util.AbstractMap<K,V> implements java.lang.Cloneable java.util.concurrent.ConcurrentNavigableMap<K,V> java.io.Serializable {
     ctor public ConcurrentSkipListMap();
     ctor public ConcurrentSkipListMap(java.util.Comparator<? super K>);
-    ctor public ConcurrentSkipListMap(java.util.Map<? extends K, ? extends V>);
-    ctor public ConcurrentSkipListMap(java.util.SortedMap<K, ? extends V>);
-    method public java.util.Map.Entry<K, V> ceilingEntry(K);
+    ctor public ConcurrentSkipListMap(java.util.Map<? extends K,? extends V>);
+    ctor public ConcurrentSkipListMap(java.util.SortedMap<K,? extends V>);
+    method public java.util.Map.Entry<K,V> ceilingEntry(K);
     method public K ceilingKey(K);
-    method public java.util.concurrent.ConcurrentSkipListMap<K, V> clone();
+    method public java.util.concurrent.ConcurrentSkipListMap<K,V> clone();
     method public java.util.Comparator<? super K> comparator();
     method public java.util.NavigableSet<K> descendingKeySet();
-    method public java.util.concurrent.ConcurrentNavigableMap<K, V> descendingMap();
-    method public java.util.Set<java.util.Map.Entry<K, V>> entrySet();
-    method public java.util.Map.Entry<K, V> firstEntry();
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> descendingMap();
+    method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public java.util.Map.Entry<K,V> firstEntry();
     method public K firstKey();
-    method public java.util.Map.Entry<K, V> floorEntry(K);
+    method public java.util.Map.Entry<K,V> floorEntry(K);
     method public K floorKey(K);
-    method public java.util.concurrent.ConcurrentNavigableMap<K, V> headMap(K, boolean);
-    method public java.util.concurrent.ConcurrentNavigableMap<K, V> headMap(K);
-    method public java.util.Map.Entry<K, V> higherEntry(K);
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> headMap(K, boolean);
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> headMap(K);
+    method public java.util.Map.Entry<K,V> higherEntry(K);
     method public K higherKey(K);
     method public java.util.NavigableSet<K> keySet();
-    method public java.util.Map.Entry<K, V> lastEntry();
+    method public java.util.Map.Entry<K,V> lastEntry();
     method public K lastKey();
-    method public java.util.Map.Entry<K, V> lowerEntry(K);
+    method public java.util.Map.Entry<K,V> lowerEntry(K);
     method public K lowerKey(K);
     method public java.util.NavigableSet<K> navigableKeySet();
-    method public java.util.Map.Entry<K, V> pollFirstEntry();
-    method public java.util.Map.Entry<K, V> pollLastEntry();
-    method public java.util.concurrent.ConcurrentNavigableMap<K, V> subMap(K, boolean, K, boolean);
-    method public java.util.concurrent.ConcurrentNavigableMap<K, V> subMap(K, K);
-    method public java.util.concurrent.ConcurrentNavigableMap<K, V> tailMap(K, boolean);
-    method public java.util.concurrent.ConcurrentNavigableMap<K, V> tailMap(K);
+    method public java.util.Map.Entry<K,V> pollFirstEntry();
+    method public java.util.Map.Entry<K,V> pollLastEntry();
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> subMap(K, boolean, K, boolean);
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> subMap(K, K);
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> tailMap(K, boolean);
+    method public java.util.concurrent.ConcurrentNavigableMap<K,V> tailMap(K);
   }
 
-  public class ConcurrentSkipListSet<E> extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable {
+  public class ConcurrentSkipListSet<E> extends java.util.AbstractSet<E> implements java.lang.Cloneable java.util.NavigableSet<E> java.io.Serializable {
     ctor public ConcurrentSkipListSet();
     ctor public ConcurrentSkipListSet(java.util.Comparator<? super E>);
     ctor public ConcurrentSkipListSet(java.util.Collection<? extends E>);
@@ -71106,42 +70875,42 @@
     method public java.util.NavigableSet<E> tailSet(E);
   }
 
-  public class CopyOnWriteArrayList<E> implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable {
+  public class CopyOnWriteArrayList<E> implements java.lang.Cloneable java.util.List<E> java.util.RandomAccess java.io.Serializable {
     ctor public CopyOnWriteArrayList();
-    ctor public CopyOnWriteArrayList(java.util.Collection<? extends E>);
+    ctor public CopyOnWriteArrayList(@NonNull java.util.Collection<? extends E>);
     ctor public CopyOnWriteArrayList(E[]);
     method public boolean add(E);
     method public void add(int, E);
-    method public boolean addAll(java.util.Collection<? extends E>);
-    method public boolean addAll(int, java.util.Collection<? extends E>);
-    method public int addAllAbsent(java.util.Collection<? extends E>);
+    method public boolean addAll(@NonNull java.util.Collection<? extends E>);
+    method public boolean addAll(int, @NonNull java.util.Collection<? extends E>);
+    method public int addAllAbsent(@NonNull java.util.Collection<? extends E>);
     method public boolean addIfAbsent(E);
     method public void clear();
-    method public java.lang.Object clone();
-    method public boolean contains(java.lang.Object);
-    method public boolean containsAll(java.util.Collection<?>);
-    method public void forEach(java.util.function.Consumer<? super E>);
+    method @NonNull public Object clone();
+    method public boolean contains(@Nullable Object);
+    method public boolean containsAll(@NonNull java.util.Collection<?>);
+    method public void forEach(@NonNull java.util.function.Consumer<? super E>);
     method public E get(int);
-    method public int indexOf(java.lang.Object);
-    method public int indexOf(E, int);
+    method public int indexOf(@Nullable Object);
+    method public int indexOf(@Nullable E, int);
     method public boolean isEmpty();
-    method public java.util.Iterator<E> iterator();
-    method public int lastIndexOf(java.lang.Object);
-    method public int lastIndexOf(E, int);
-    method public java.util.ListIterator<E> listIterator();
-    method public java.util.ListIterator<E> listIterator(int);
+    method @NonNull public java.util.Iterator<E> iterator();
+    method public int lastIndexOf(@Nullable Object);
+    method public int lastIndexOf(@Nullable E, int);
+    method @NonNull public java.util.ListIterator<E> listIterator();
+    method @NonNull public java.util.ListIterator<E> listIterator(int);
     method public E remove(int);
-    method public boolean remove(java.lang.Object);
-    method public boolean removeAll(java.util.Collection<?>);
-    method public boolean retainAll(java.util.Collection<?>);
+    method public boolean remove(@Nullable Object);
+    method public boolean removeAll(@NonNull java.util.Collection<?>);
+    method public boolean retainAll(@NonNull java.util.Collection<?>);
     method public E set(int, E);
     method public int size();
-    method public java.util.List<E> subList(int, int);
-    method public java.lang.Object[] toArray();
+    method @NonNull public java.util.List<E> subList(int, int);
+    method public Object[] toArray();
     method public <T> T[] toArray(T[]);
   }
 
-  public class CopyOnWriteArraySet<E> extends java.util.AbstractSet implements java.io.Serializable {
+  public class CopyOnWriteArraySet<E> extends java.util.AbstractSet<E> implements java.io.Serializable {
     ctor public CopyOnWriteArraySet();
     ctor public CopyOnWriteArraySet(java.util.Collection<? extends E>);
     method public void forEach(java.util.function.Consumer<? super E>);
@@ -71157,7 +70926,7 @@
     method public long getCount();
   }
 
-  public abstract class CountedCompleter<T> extends java.util.concurrent.ForkJoinTask {
+  public abstract class CountedCompleter<T> extends java.util.concurrent.ForkJoinTask<T> {
     ctor protected CountedCompleter(java.util.concurrent.CountedCompleter<?>, int);
     ctor protected CountedCompleter(java.util.concurrent.CountedCompleter<?>);
     ctor protected CountedCompleter();
@@ -71175,7 +70944,7 @@
     method public final void helpComplete(int);
     method public final java.util.concurrent.CountedCompleter<?> nextComplete();
     method public void onCompletion(java.util.concurrent.CountedCompleter<?>);
-    method public boolean onExceptionalCompletion(java.lang.Throwable, java.util.concurrent.CountedCompleter<?>);
+    method public boolean onExceptionalCompletion(Throwable, java.util.concurrent.CountedCompleter<?>);
     method public final void propagateCompletion();
     method public final void quietlyCompleteRoot();
     method public final void setPendingCount(int);
@@ -71184,7 +70953,7 @@
   }
 
   public class CyclicBarrier {
-    ctor public CyclicBarrier(int, java.lang.Runnable);
+    ctor public CyclicBarrier(int, Runnable);
     ctor public CyclicBarrier(int);
     method public int await() throws java.util.concurrent.BrokenBarrierException, java.lang.InterruptedException;
     method public int await(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.BrokenBarrierException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
@@ -71194,7 +70963,7 @@
     method public void reset();
   }
 
-  public class DelayQueue<E extends java.util.concurrent.Delayed> extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue {
+  public class DelayQueue<E extends java.util.concurrent.Delayed> extends java.util.AbstractQueue<E> implements java.util.concurrent.BlockingQueue<E> {
     ctor public DelayQueue();
     ctor public DelayQueue(java.util.Collection<? extends E>);
     method public int drainTo(java.util.Collection<? super E>);
@@ -71211,8 +70980,8 @@
     method public E take() throws java.lang.InterruptedException;
   }
 
-  public abstract interface Delayed implements java.lang.Comparable {
-    method public abstract long getDelay(java.util.concurrent.TimeUnit);
+  public interface Delayed extends java.lang.Comparable<java.util.concurrent.Delayed> {
+    method public long getDelay(java.util.concurrent.TimeUnit);
   }
 
   public class Exchanger<V> {
@@ -71223,43 +70992,43 @@
 
   public class ExecutionException extends java.lang.Exception {
     ctor protected ExecutionException();
-    ctor protected ExecutionException(java.lang.String);
-    ctor public ExecutionException(java.lang.String, java.lang.Throwable);
-    ctor public ExecutionException(java.lang.Throwable);
+    ctor protected ExecutionException(String);
+    ctor public ExecutionException(String, Throwable);
+    ctor public ExecutionException(Throwable);
   }
 
-  public abstract interface Executor {
-    method public abstract void execute(java.lang.Runnable);
+  public interface Executor {
+    method public void execute(Runnable);
   }
 
-  public class ExecutorCompletionService<V> implements java.util.concurrent.CompletionService {
+  public class ExecutorCompletionService<V> implements java.util.concurrent.CompletionService<V> {
     ctor public ExecutorCompletionService(java.util.concurrent.Executor);
     ctor public ExecutorCompletionService(java.util.concurrent.Executor, java.util.concurrent.BlockingQueue<java.util.concurrent.Future<V>>);
     method public java.util.concurrent.Future<V> poll();
     method public java.util.concurrent.Future<V> poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
     method public java.util.concurrent.Future<V> submit(java.util.concurrent.Callable<V>);
-    method public java.util.concurrent.Future<V> submit(java.lang.Runnable, V);
+    method public java.util.concurrent.Future<V> submit(Runnable, V);
     method public java.util.concurrent.Future<V> take() throws java.lang.InterruptedException;
   }
 
-  public abstract interface ExecutorService implements java.util.concurrent.Executor {
-    method public abstract boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>>) throws java.lang.InterruptedException;
-    method public abstract <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
-    method public abstract <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
-    method public abstract boolean isShutdown();
-    method public abstract boolean isTerminated();
-    method public abstract void shutdown();
-    method public abstract java.util.List<java.lang.Runnable> shutdownNow();
-    method public abstract <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T>);
-    method public abstract <T> java.util.concurrent.Future<T> submit(java.lang.Runnable, T);
-    method public abstract java.util.concurrent.Future<?> submit(java.lang.Runnable);
+  public interface ExecutorService extends java.util.concurrent.Executor {
+    method public boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>>) throws java.lang.InterruptedException;
+    method public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
+    method public <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
+    method public boolean isShutdown();
+    method public boolean isTerminated();
+    method public void shutdown();
+    method public java.util.List<java.lang.Runnable> shutdownNow();
+    method public <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T>);
+    method public <T> java.util.concurrent.Future<T> submit(Runnable, T);
+    method public java.util.concurrent.Future<?> submit(Runnable);
   }
 
   public class Executors {
-    method public static <T> java.util.concurrent.Callable<T> callable(java.lang.Runnable, T);
-    method public static java.util.concurrent.Callable<java.lang.Object> callable(java.lang.Runnable);
+    method public static <T> java.util.concurrent.Callable<T> callable(Runnable, T);
+    method public static java.util.concurrent.Callable<java.lang.Object> callable(Runnable);
     method public static java.util.concurrent.Callable<java.lang.Object> callable(java.security.PrivilegedAction<?>);
     method public static java.util.concurrent.Callable<java.lang.Object> callable(java.security.PrivilegedExceptionAction<?>);
     method public static java.util.concurrent.ThreadFactory defaultThreadFactory();
@@ -71291,7 +71060,7 @@
     method public static java.util.concurrent.ForkJoinPool commonPool();
     method protected int drainTasksTo(java.util.Collection<? super java.util.concurrent.ForkJoinTask<?>>);
     method public void execute(java.util.concurrent.ForkJoinTask<?>);
-    method public void execute(java.lang.Runnable);
+    method public void execute(Runnable);
     method public int getActiveThreadCount();
     method public boolean getAsyncMode();
     method public static int getCommonPoolParallelism();
@@ -71316,34 +71085,34 @@
     method public java.util.List<java.lang.Runnable> shutdownNow();
     method public <T> java.util.concurrent.ForkJoinTask<T> submit(java.util.concurrent.ForkJoinTask<T>);
     method public <T> java.util.concurrent.ForkJoinTask<T> submit(java.util.concurrent.Callable<T>);
-    method public <T> java.util.concurrent.ForkJoinTask<T> submit(java.lang.Runnable, T);
-    method public java.util.concurrent.ForkJoinTask<?> submit(java.lang.Runnable);
+    method public <T> java.util.concurrent.ForkJoinTask<T> submit(Runnable, T);
+    method public java.util.concurrent.ForkJoinTask<?> submit(Runnable);
     field public static final java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory defaultForkJoinWorkerThreadFactory;
   }
 
-  public static abstract interface ForkJoinPool.ForkJoinWorkerThreadFactory {
-    method public abstract java.util.concurrent.ForkJoinWorkerThread newThread(java.util.concurrent.ForkJoinPool);
+  public static interface ForkJoinPool.ForkJoinWorkerThreadFactory {
+    method public java.util.concurrent.ForkJoinWorkerThread newThread(java.util.concurrent.ForkJoinPool);
   }
 
-  public static abstract interface ForkJoinPool.ManagedBlocker {
-    method public abstract boolean block() throws java.lang.InterruptedException;
-    method public abstract boolean isReleasable();
+  public static interface ForkJoinPool.ManagedBlocker {
+    method public boolean block() throws java.lang.InterruptedException;
+    method public boolean isReleasable();
   }
 
-  public abstract class ForkJoinTask<V> implements java.util.concurrent.Future java.io.Serializable {
+  public abstract class ForkJoinTask<V> implements java.util.concurrent.Future<V> java.io.Serializable {
     ctor public ForkJoinTask();
-    method public static java.util.concurrent.ForkJoinTask<?> adapt(java.lang.Runnable);
-    method public static <T> java.util.concurrent.ForkJoinTask<T> adapt(java.lang.Runnable, T);
+    method public static java.util.concurrent.ForkJoinTask<?> adapt(Runnable);
+    method public static <T> java.util.concurrent.ForkJoinTask<T> adapt(Runnable, T);
     method public static <T> java.util.concurrent.ForkJoinTask<T> adapt(java.util.concurrent.Callable<? extends T>);
     method public boolean cancel(boolean);
     method public final boolean compareAndSetForkJoinTaskTag(short, short);
     method public void complete(V);
-    method public void completeExceptionally(java.lang.Throwable);
+    method public void completeExceptionally(Throwable);
     method protected abstract boolean exec();
     method public final java.util.concurrent.ForkJoinTask<V> fork();
     method public final V get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
     method public final V get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
-    method public final java.lang.Throwable getException();
+    method public final Throwable getException();
     method public final short getForkJoinTaskTag();
     method public static java.util.concurrent.ForkJoinPool getPool();
     method public static int getQueuedTaskCount();
@@ -71377,20 +71146,20 @@
     method public java.util.concurrent.ForkJoinPool getPool();
     method public int getPoolIndex();
     method protected void onStart();
-    method protected void onTermination(java.lang.Throwable);
+    method protected void onTermination(Throwable);
   }
 
-  public abstract interface Future<V> {
-    method public abstract boolean cancel(boolean);
-    method public abstract V get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
-    method public abstract V get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
-    method public abstract boolean isCancelled();
-    method public abstract boolean isDone();
+  public interface Future<V> {
+    method public boolean cancel(boolean);
+    method public V get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
+    method public V get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
+    method public boolean isCancelled();
+    method public boolean isDone();
   }
 
-  public class FutureTask<V> implements java.util.concurrent.RunnableFuture {
+  public class FutureTask<V> implements java.util.concurrent.RunnableFuture<V> {
     ctor public FutureTask(java.util.concurrent.Callable<V>);
-    ctor public FutureTask(java.lang.Runnable, V);
+    ctor public FutureTask(Runnable, V);
     method public boolean cancel(boolean);
     method protected void done();
     method public V get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
@@ -71400,10 +71169,10 @@
     method public void run();
     method protected boolean runAndReset();
     method protected void set(V);
-    method protected void setException(java.lang.Throwable);
+    method protected void setException(Throwable);
   }
 
-  public class LinkedBlockingDeque<E> extends java.util.AbstractQueue implements java.util.concurrent.BlockingDeque java.io.Serializable {
+  public class LinkedBlockingDeque<E> extends java.util.AbstractQueue<E> implements java.util.concurrent.BlockingDeque<E> java.io.Serializable {
     ctor public LinkedBlockingDeque();
     ctor public LinkedBlockingDeque(int);
     ctor public LinkedBlockingDeque(java.util.Collection<? extends E>);
@@ -71437,16 +71206,16 @@
     method public void putLast(E) throws java.lang.InterruptedException;
     method public int remainingCapacity();
     method public E removeFirst();
-    method public boolean removeFirstOccurrence(java.lang.Object);
+    method public boolean removeFirstOccurrence(Object);
     method public E removeLast();
-    method public boolean removeLastOccurrence(java.lang.Object);
+    method public boolean removeLastOccurrence(Object);
     method public int size();
     method public E take() throws java.lang.InterruptedException;
     method public E takeFirst() throws java.lang.InterruptedException;
     method public E takeLast() throws java.lang.InterruptedException;
   }
 
-  public class LinkedBlockingQueue<E> extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable {
+  public class LinkedBlockingQueue<E> extends java.util.AbstractQueue<E> implements java.util.concurrent.BlockingQueue<E> java.io.Serializable {
     ctor public LinkedBlockingQueue();
     ctor public LinkedBlockingQueue(int);
     ctor public LinkedBlockingQueue(java.util.Collection<? extends E>);
@@ -71464,7 +71233,7 @@
     method public E take() throws java.lang.InterruptedException;
   }
 
-  public class LinkedTransferQueue<E> extends java.util.AbstractQueue implements java.io.Serializable java.util.concurrent.TransferQueue {
+  public class LinkedTransferQueue<E> extends java.util.AbstractQueue<E> implements java.io.Serializable java.util.concurrent.TransferQueue<E> {
     ctor public LinkedTransferQueue();
     ctor public LinkedTransferQueue(java.util.Collection<? extends E>);
     method public int drainTo(java.util.Collection<? super E>);
@@ -71510,7 +71279,7 @@
     method public int register();
   }
 
-  public class PriorityBlockingQueue<E> extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable {
+  public class PriorityBlockingQueue<E> extends java.util.AbstractQueue<E> implements java.util.concurrent.BlockingQueue<E> java.io.Serializable {
     ctor public PriorityBlockingQueue();
     ctor public PriorityBlockingQueue(int);
     ctor public PriorityBlockingQueue(int, java.util.Comparator<? super E>);
@@ -71530,15 +71299,15 @@
     method public E take() throws java.lang.InterruptedException;
   }
 
-  public abstract class RecursiveAction extends java.util.concurrent.ForkJoinTask {
+  public abstract class RecursiveAction extends java.util.concurrent.ForkJoinTask<java.lang.Void> {
     ctor public RecursiveAction();
     method protected abstract void compute();
     method protected final boolean exec();
-    method public final java.lang.Void getRawResult();
-    method protected final void setRawResult(java.lang.Void);
+    method public final Void getRawResult();
+    method protected final void setRawResult(Void);
   }
 
-  public abstract class RecursiveTask<V> extends java.util.concurrent.ForkJoinTask {
+  public abstract class RecursiveTask<V> extends java.util.concurrent.ForkJoinTask<V> {
     ctor public RecursiveTask();
     method protected abstract V compute();
     method protected final boolean exec();
@@ -71548,30 +71317,30 @@
 
   public class RejectedExecutionException extends java.lang.RuntimeException {
     ctor public RejectedExecutionException();
-    ctor public RejectedExecutionException(java.lang.String);
-    ctor public RejectedExecutionException(java.lang.String, java.lang.Throwable);
-    ctor public RejectedExecutionException(java.lang.Throwable);
+    ctor public RejectedExecutionException(String);
+    ctor public RejectedExecutionException(String, Throwable);
+    ctor public RejectedExecutionException(Throwable);
   }
 
-  public abstract interface RejectedExecutionHandler {
-    method public abstract void rejectedExecution(java.lang.Runnable, java.util.concurrent.ThreadPoolExecutor);
+  public interface RejectedExecutionHandler {
+    method public void rejectedExecution(Runnable, java.util.concurrent.ThreadPoolExecutor);
   }
 
-  public abstract interface RunnableFuture<V> implements java.util.concurrent.Future java.lang.Runnable {
+  public interface RunnableFuture<V> extends java.lang.Runnable java.util.concurrent.Future<V> {
   }
 
-  public abstract interface RunnableScheduledFuture<V> implements java.util.concurrent.RunnableFuture java.util.concurrent.ScheduledFuture {
-    method public abstract boolean isPeriodic();
+  public interface RunnableScheduledFuture<V> extends java.util.concurrent.RunnableFuture<V> java.util.concurrent.ScheduledFuture<V> {
+    method public boolean isPeriodic();
   }
 
-  public abstract interface ScheduledExecutorService implements java.util.concurrent.ExecutorService {
-    method public abstract java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit);
-    method public abstract <V> java.util.concurrent.ScheduledFuture<V> schedule(java.util.concurrent.Callable<V>, long, java.util.concurrent.TimeUnit);
-    method public abstract java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit);
-    method public abstract java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit);
+  public interface ScheduledExecutorService extends java.util.concurrent.ExecutorService {
+    method public java.util.concurrent.ScheduledFuture<?> schedule(Runnable, long, java.util.concurrent.TimeUnit);
+    method public <V> java.util.concurrent.ScheduledFuture<V> schedule(java.util.concurrent.Callable<V>, long, java.util.concurrent.TimeUnit);
+    method public java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(Runnable, long, long, java.util.concurrent.TimeUnit);
+    method public java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(Runnable, long, long, java.util.concurrent.TimeUnit);
   }
 
-  public abstract interface ScheduledFuture<V> implements java.util.concurrent.Delayed java.util.concurrent.Future {
+  public interface ScheduledFuture<V> extends java.util.concurrent.Delayed java.util.concurrent.Future<V> {
   }
 
   public class ScheduledThreadPoolExecutor extends java.util.concurrent.ThreadPoolExecutor implements java.util.concurrent.ScheduledExecutorService {
@@ -71579,15 +71348,15 @@
     ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.ThreadFactory);
     ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.RejectedExecutionHandler);
     ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.ThreadFactory, java.util.concurrent.RejectedExecutionHandler);
-    method protected <V> java.util.concurrent.RunnableScheduledFuture<V> decorateTask(java.lang.Runnable, java.util.concurrent.RunnableScheduledFuture<V>);
+    method protected <V> java.util.concurrent.RunnableScheduledFuture<V> decorateTask(Runnable, java.util.concurrent.RunnableScheduledFuture<V>);
     method protected <V> java.util.concurrent.RunnableScheduledFuture<V> decorateTask(java.util.concurrent.Callable<V>, java.util.concurrent.RunnableScheduledFuture<V>);
     method public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy();
     method public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy();
     method public boolean getRemoveOnCancelPolicy();
-    method public java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit);
+    method public java.util.concurrent.ScheduledFuture<?> schedule(Runnable, long, java.util.concurrent.TimeUnit);
     method public <V> java.util.concurrent.ScheduledFuture<V> schedule(java.util.concurrent.Callable<V>, long, java.util.concurrent.TimeUnit);
-    method public java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit);
-    method public java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit);
+    method public java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(Runnable, long, long, java.util.concurrent.TimeUnit);
+    method public java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(Runnable, long, long, java.util.concurrent.TimeUnit);
     method public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean);
     method public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean);
     method public void setRemoveOnCancelPolicy(boolean);
@@ -71615,7 +71384,7 @@
     method public boolean tryAcquire(int, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
   }
 
-  public class SynchronousQueue<E> extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable {
+  public class SynchronousQueue<E> extends java.util.AbstractQueue<E> implements java.util.concurrent.BlockingQueue<E> java.io.Serializable {
     ctor public SynchronousQueue();
     ctor public SynchronousQueue(boolean);
     method public int drainTo(java.util.Collection<? super E>);
@@ -71632,19 +71401,17 @@
     method public E take() throws java.lang.InterruptedException;
   }
 
-  public abstract interface ThreadFactory {
-    method public abstract java.lang.Thread newThread(java.lang.Runnable);
+  public interface ThreadFactory {
+    method public Thread newThread(Runnable);
   }
 
   public class ThreadLocalRandom extends java.util.Random {
     method public static java.util.concurrent.ThreadLocalRandom current();
     method public double nextDouble(double);
     method public double nextDouble(double, double);
-    method public double nextGaussian();
     method public int nextInt(int, int);
     method public long nextLong(long);
     method public long nextLong(long, long);
-    method public void setSeed(long);
   }
 
   public class ThreadPoolExecutor extends java.util.concurrent.AbstractExecutorService {
@@ -71652,12 +71419,12 @@
     ctor public ThreadPoolExecutor(int, int, long, java.util.concurrent.TimeUnit, java.util.concurrent.BlockingQueue<java.lang.Runnable>, java.util.concurrent.ThreadFactory);
     ctor public ThreadPoolExecutor(int, int, long, java.util.concurrent.TimeUnit, java.util.concurrent.BlockingQueue<java.lang.Runnable>, java.util.concurrent.RejectedExecutionHandler);
     ctor public ThreadPoolExecutor(int, int, long, java.util.concurrent.TimeUnit, java.util.concurrent.BlockingQueue<java.lang.Runnable>, java.util.concurrent.ThreadFactory, java.util.concurrent.RejectedExecutionHandler);
-    method protected void afterExecute(java.lang.Runnable, java.lang.Throwable);
+    method protected void afterExecute(Runnable, Throwable);
     method public void allowCoreThreadTimeOut(boolean);
     method public boolean allowsCoreThreadTimeOut();
     method public boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method protected void beforeExecute(java.lang.Thread, java.lang.Runnable);
-    method public void execute(java.lang.Runnable);
+    method protected void beforeExecute(Thread, Runnable);
+    method public void execute(Runnable);
     method protected void finalize();
     method public int getActiveCount();
     method public long getCompletedTaskCount();
@@ -71676,7 +71443,7 @@
     method public int prestartAllCoreThreads();
     method public boolean prestartCoreThread();
     method public void purge();
-    method public boolean remove(java.lang.Runnable);
+    method public boolean remove(Runnable);
     method public void setCorePoolSize(int);
     method public void setKeepAliveTime(long, java.util.concurrent.TimeUnit);
     method public void setMaximumPoolSize(int);
@@ -71689,29 +71456,29 @@
 
   public static class ThreadPoolExecutor.AbortPolicy implements java.util.concurrent.RejectedExecutionHandler {
     ctor public ThreadPoolExecutor.AbortPolicy();
-    method public void rejectedExecution(java.lang.Runnable, java.util.concurrent.ThreadPoolExecutor);
+    method public void rejectedExecution(Runnable, java.util.concurrent.ThreadPoolExecutor);
   }
 
   public static class ThreadPoolExecutor.CallerRunsPolicy implements java.util.concurrent.RejectedExecutionHandler {
     ctor public ThreadPoolExecutor.CallerRunsPolicy();
-    method public void rejectedExecution(java.lang.Runnable, java.util.concurrent.ThreadPoolExecutor);
+    method public void rejectedExecution(Runnable, java.util.concurrent.ThreadPoolExecutor);
   }
 
   public static class ThreadPoolExecutor.DiscardOldestPolicy implements java.util.concurrent.RejectedExecutionHandler {
     ctor public ThreadPoolExecutor.DiscardOldestPolicy();
-    method public void rejectedExecution(java.lang.Runnable, java.util.concurrent.ThreadPoolExecutor);
+    method public void rejectedExecution(Runnable, java.util.concurrent.ThreadPoolExecutor);
   }
 
   public static class ThreadPoolExecutor.DiscardPolicy implements java.util.concurrent.RejectedExecutionHandler {
     ctor public ThreadPoolExecutor.DiscardPolicy();
-    method public void rejectedExecution(java.lang.Runnable, java.util.concurrent.ThreadPoolExecutor);
+    method public void rejectedExecution(Runnable, java.util.concurrent.ThreadPoolExecutor);
   }
 
-  public class TimeUnit extends java.lang.Enum {
+  public enum TimeUnit {
     method public long convert(long, java.util.concurrent.TimeUnit);
     method public void sleep(long) throws java.lang.InterruptedException;
-    method public void timedJoin(java.lang.Thread, long) throws java.lang.InterruptedException;
-    method public void timedWait(java.lang.Object, long) throws java.lang.InterruptedException;
+    method public void timedJoin(Thread, long) throws java.lang.InterruptedException;
+    method public void timedWait(Object, long) throws java.lang.InterruptedException;
     method public long toDays(long);
     method public long toHours(long);
     method public long toMicros(long);
@@ -71719,8 +71486,6 @@
     method public long toMinutes(long);
     method public long toNanos(long);
     method public long toSeconds(long);
-    method public static java.util.concurrent.TimeUnit valueOf(java.lang.String);
-    method public static final java.util.concurrent.TimeUnit[] values();
     enum_constant public static final java.util.concurrent.TimeUnit DAYS;
     enum_constant public static final java.util.concurrent.TimeUnit HOURS;
     enum_constant public static final java.util.concurrent.TimeUnit MICROSECONDS;
@@ -71732,15 +71497,15 @@
 
   public class TimeoutException extends java.lang.Exception {
     ctor public TimeoutException();
-    ctor public TimeoutException(java.lang.String);
+    ctor public TimeoutException(String);
   }
 
-  public abstract interface TransferQueue<E> implements java.util.concurrent.BlockingQueue {
-    method public abstract int getWaitingConsumerCount();
-    method public abstract boolean hasWaitingConsumer();
-    method public abstract void transfer(E) throws java.lang.InterruptedException;
-    method public abstract boolean tryTransfer(E);
-    method public abstract boolean tryTransfer(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+  public interface TransferQueue<E> extends java.util.concurrent.BlockingQueue<E> {
+    method public int getWaitingConsumerCount();
+    method public boolean hasWaitingConsumer();
+    method public void transfer(E) throws java.lang.InterruptedException;
+    method public boolean tryTransfer(E);
+    method public boolean tryTransfer(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
   }
 
 }
@@ -71820,7 +71585,7 @@
     method public final int getAndUpdate(T, java.util.function.IntUnaryOperator);
     method public int incrementAndGet(T);
     method public abstract void lazySet(T, int);
-    method public static <U> java.util.concurrent.atomic.AtomicIntegerFieldUpdater<U> newUpdater(java.lang.Class<U>, java.lang.String);
+    method public static <U> java.util.concurrent.atomic.AtomicIntegerFieldUpdater<U> newUpdater(Class<U>, String);
     method public abstract void set(T, int);
     method public final int updateAndGet(T, java.util.function.IntUnaryOperator);
     method public abstract boolean weakCompareAndSet(T, int, int);
@@ -71888,7 +71653,7 @@
     method public final long getAndUpdate(T, java.util.function.LongUnaryOperator);
     method public long incrementAndGet(T);
     method public abstract void lazySet(T, long);
-    method public static <U> java.util.concurrent.atomic.AtomicLongFieldUpdater<U> newUpdater(java.lang.Class<U>, java.lang.String);
+    method public static <U> java.util.concurrent.atomic.AtomicLongFieldUpdater<U> newUpdater(Class<U>, String);
     method public abstract void set(T, long);
     method public final long updateAndGet(T, java.util.function.LongUnaryOperator);
     method public abstract boolean weakCompareAndSet(T, long, long);
@@ -71945,7 +71710,7 @@
     method public V getAndSet(T, V);
     method public final V getAndUpdate(T, java.util.function.UnaryOperator<V>);
     method public abstract void lazySet(T, V);
-    method public static <U, W> java.util.concurrent.atomic.AtomicReferenceFieldUpdater<U, W> newUpdater(java.lang.Class<U>, java.lang.Class<W>, java.lang.String);
+    method public static <U, W> java.util.concurrent.atomic.AtomicReferenceFieldUpdater<U,W> newUpdater(Class<U>, Class<W>, String);
     method public abstract void set(T, V);
     method public final V updateAndGet(T, java.util.function.UnaryOperator<V>);
     method public abstract boolean weakCompareAndSet(T, V, V);
@@ -72018,8 +71783,8 @@
 
   public abstract class AbstractOwnableSynchronizer implements java.io.Serializable {
     ctor protected AbstractOwnableSynchronizer();
-    method protected final java.lang.Thread getExclusiveOwnerThread();
-    method protected final void setExclusiveOwnerThread(java.lang.Thread);
+    method protected final Thread getExclusiveOwnerThread();
+    method protected final void setExclusiveOwnerThread(Thread);
   }
 
   public abstract class AbstractQueuedLongSynchronizer extends java.util.concurrent.locks.AbstractOwnableSynchronizer implements java.io.Serializable {
@@ -72030,7 +71795,7 @@
     method public final void acquireSharedInterruptibly(long) throws java.lang.InterruptedException;
     method protected final boolean compareAndSetState(long, long);
     method public final java.util.Collection<java.lang.Thread> getExclusiveQueuedThreads();
-    method public final java.lang.Thread getFirstQueuedThread();
+    method public final Thread getFirstQueuedThread();
     method public final int getQueueLength();
     method public final java.util.Collection<java.lang.Thread> getQueuedThreads();
     method public final java.util.Collection<java.lang.Thread> getSharedQueuedThreads();
@@ -72042,7 +71807,7 @@
     method public final boolean hasQueuedThreads();
     method public final boolean hasWaiters(java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject);
     method protected boolean isHeldExclusively();
-    method public final boolean isQueued(java.lang.Thread);
+    method public final boolean isQueued(Thread);
     method public final boolean owns(java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject);
     method public final boolean release(long);
     method public final boolean releaseShared(long);
@@ -72077,7 +71842,7 @@
     method public final void acquireSharedInterruptibly(int) throws java.lang.InterruptedException;
     method protected final boolean compareAndSetState(int, int);
     method public final java.util.Collection<java.lang.Thread> getExclusiveQueuedThreads();
-    method public final java.lang.Thread getFirstQueuedThread();
+    method public final Thread getFirstQueuedThread();
     method public final int getQueueLength();
     method public final java.util.Collection<java.lang.Thread> getQueuedThreads();
     method public final java.util.Collection<java.lang.Thread> getSharedQueuedThreads();
@@ -72089,7 +71854,7 @@
     method public final boolean hasQueuedThreads();
     method public final boolean hasWaiters(java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject);
     method protected boolean isHeldExclusively();
-    method public final boolean isQueued(java.lang.Thread);
+    method public final boolean isQueued(Thread);
     method public final boolean owns(java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject);
     method public final boolean release(int);
     method public final boolean releaseShared(int);
@@ -72116,51 +71881,51 @@
     method public final void signalAll();
   }
 
-  public abstract interface Condition {
-    method public abstract void await() throws java.lang.InterruptedException;
-    method public abstract boolean await(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract long awaitNanos(long) throws java.lang.InterruptedException;
-    method public abstract void awaitUninterruptibly();
-    method public abstract boolean awaitUntil(java.util.Date) throws java.lang.InterruptedException;
-    method public abstract void signal();
-    method public abstract void signalAll();
+  public interface Condition {
+    method public void await() throws java.lang.InterruptedException;
+    method public boolean await(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public long awaitNanos(long) throws java.lang.InterruptedException;
+    method public void awaitUninterruptibly();
+    method public boolean awaitUntil(java.util.Date) throws java.lang.InterruptedException;
+    method public void signal();
+    method public void signalAll();
   }
 
-  public abstract interface Lock {
-    method public abstract void lock();
-    method public abstract void lockInterruptibly() throws java.lang.InterruptedException;
-    method public abstract java.util.concurrent.locks.Condition newCondition();
-    method public abstract boolean tryLock();
-    method public abstract boolean tryLock(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
-    method public abstract void unlock();
+  public interface Lock {
+    method public void lock();
+    method public void lockInterruptibly() throws java.lang.InterruptedException;
+    method public java.util.concurrent.locks.Condition newCondition();
+    method public boolean tryLock();
+    method public boolean tryLock(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public void unlock();
   }
 
   public class LockSupport {
-    method public static java.lang.Object getBlocker(java.lang.Thread);
-    method public static void park(java.lang.Object);
+    method public static Object getBlocker(Thread);
+    method public static void park(Object);
     method public static void park();
-    method public static void parkNanos(java.lang.Object, long);
+    method public static void parkNanos(Object, long);
     method public static void parkNanos(long);
-    method public static void parkUntil(java.lang.Object, long);
+    method public static void parkUntil(Object, long);
     method public static void parkUntil(long);
-    method public static void unpark(java.lang.Thread);
+    method public static void unpark(Thread);
   }
 
-  public abstract interface ReadWriteLock {
-    method public abstract java.util.concurrent.locks.Lock readLock();
-    method public abstract java.util.concurrent.locks.Lock writeLock();
+  public interface ReadWriteLock {
+    method public java.util.concurrent.locks.Lock readLock();
+    method public java.util.concurrent.locks.Lock writeLock();
   }
 
   public class ReentrantLock implements java.util.concurrent.locks.Lock java.io.Serializable {
     ctor public ReentrantLock();
     ctor public ReentrantLock(boolean);
     method public int getHoldCount();
-    method protected java.lang.Thread getOwner();
+    method protected Thread getOwner();
     method public final int getQueueLength();
     method protected java.util.Collection<java.lang.Thread> getQueuedThreads();
     method public int getWaitQueueLength(java.util.concurrent.locks.Condition);
     method protected java.util.Collection<java.lang.Thread> getWaitingThreads(java.util.concurrent.locks.Condition);
-    method public final boolean hasQueuedThread(java.lang.Thread);
+    method public final boolean hasQueuedThread(Thread);
     method public final boolean hasQueuedThreads();
     method public boolean hasWaiters(java.util.concurrent.locks.Condition);
     method public final boolean isFair();
@@ -72177,7 +71942,7 @@
   public class ReentrantReadWriteLock implements java.util.concurrent.locks.ReadWriteLock java.io.Serializable {
     ctor public ReentrantReadWriteLock();
     ctor public ReentrantReadWriteLock(boolean);
-    method protected java.lang.Thread getOwner();
+    method protected Thread getOwner();
     method public final int getQueueLength();
     method protected java.util.Collection<java.lang.Thread> getQueuedReaderThreads();
     method protected java.util.Collection<java.lang.Thread> getQueuedThreads();
@@ -72187,7 +71952,7 @@
     method public int getWaitQueueLength(java.util.concurrent.locks.Condition);
     method protected java.util.Collection<java.lang.Thread> getWaitingThreads(java.util.concurrent.locks.Condition);
     method public int getWriteHoldCount();
-    method public final boolean hasQueuedThread(java.lang.Thread);
+    method public final boolean hasQueuedThread(Thread);
     method public final boolean hasQueuedThreads();
     method public boolean hasWaiters(java.util.concurrent.locks.Condition);
     method public final boolean isFair();
@@ -72251,210 +72016,210 @@
 
 package java.util.function {
 
-  public abstract interface BiConsumer<T, U> {
-    method public abstract void accept(T, U);
-    method public default java.util.function.BiConsumer<T, U> andThen(java.util.function.BiConsumer<? super T, ? super U>);
+  @java.lang.FunctionalInterface public interface BiConsumer<T, U> {
+    method public void accept(T, U);
+    method public default java.util.function.BiConsumer<T,U> andThen(java.util.function.BiConsumer<? super T,? super U>);
   }
 
-  public abstract interface BiFunction<T, U, R> {
-    method public default <V> java.util.function.BiFunction<T, U, V> andThen(java.util.function.Function<? super R, ? extends V>);
-    method public abstract R apply(T, U);
+  @java.lang.FunctionalInterface public interface BiFunction<T, U, R> {
+    method public default <V> java.util.function.BiFunction<T,U,V> andThen(java.util.function.Function<? super R,? extends V>);
+    method public R apply(T, U);
   }
 
-  public abstract interface BiPredicate<T, U> {
-    method public default java.util.function.BiPredicate<T, U> and(java.util.function.BiPredicate<? super T, ? super U>);
-    method public default java.util.function.BiPredicate<T, U> negate();
-    method public default java.util.function.BiPredicate<T, U> or(java.util.function.BiPredicate<? super T, ? super U>);
-    method public abstract boolean test(T, U);
+  @java.lang.FunctionalInterface public interface BiPredicate<T, U> {
+    method public default java.util.function.BiPredicate<T,U> and(java.util.function.BiPredicate<? super T,? super U>);
+    method public default java.util.function.BiPredicate<T,U> negate();
+    method public default java.util.function.BiPredicate<T,U> or(java.util.function.BiPredicate<? super T,? super U>);
+    method public boolean test(T, U);
   }
 
-  public abstract interface BinaryOperator<T> implements java.util.function.BiFunction {
+  @java.lang.FunctionalInterface public interface BinaryOperator<T> extends java.util.function.BiFunction<T,T,T> {
     method public static <T> java.util.function.BinaryOperator<T> maxBy(java.util.Comparator<? super T>);
     method public static <T> java.util.function.BinaryOperator<T> minBy(java.util.Comparator<? super T>);
   }
 
-  public abstract interface BooleanSupplier {
-    method public abstract boolean getAsBoolean();
+  @java.lang.FunctionalInterface public interface BooleanSupplier {
+    method public boolean getAsBoolean();
   }
 
-  public abstract interface Consumer<T> {
-    method public abstract void accept(T);
+  @java.lang.FunctionalInterface public interface Consumer<T> {
+    method public void accept(T);
     method public default java.util.function.Consumer<T> andThen(java.util.function.Consumer<? super T>);
   }
 
-  public abstract interface DoubleBinaryOperator {
-    method public abstract double applyAsDouble(double, double);
+  @java.lang.FunctionalInterface public interface DoubleBinaryOperator {
+    method public double applyAsDouble(double, double);
   }
 
-  public abstract interface DoubleConsumer {
-    method public abstract void accept(double);
+  @java.lang.FunctionalInterface public interface DoubleConsumer {
+    method public void accept(double);
     method public default java.util.function.DoubleConsumer andThen(java.util.function.DoubleConsumer);
   }
 
-  public abstract interface DoubleFunction<R> {
-    method public abstract R apply(double);
+  @java.lang.FunctionalInterface public interface DoubleFunction<R> {
+    method public R apply(double);
   }
 
-  public abstract interface DoublePredicate {
+  @java.lang.FunctionalInterface public interface DoublePredicate {
     method public default java.util.function.DoublePredicate and(java.util.function.DoublePredicate);
     method public default java.util.function.DoublePredicate negate();
     method public default java.util.function.DoublePredicate or(java.util.function.DoublePredicate);
-    method public abstract boolean test(double);
+    method public boolean test(double);
   }
 
-  public abstract interface DoubleSupplier {
-    method public abstract double getAsDouble();
+  @java.lang.FunctionalInterface public interface DoubleSupplier {
+    method public double getAsDouble();
   }
 
-  public abstract interface DoubleToIntFunction {
-    method public abstract int applyAsInt(double);
+  @java.lang.FunctionalInterface public interface DoubleToIntFunction {
+    method public int applyAsInt(double);
   }
 
-  public abstract interface DoubleToLongFunction {
-    method public abstract long applyAsLong(double);
+  @java.lang.FunctionalInterface public interface DoubleToLongFunction {
+    method public long applyAsLong(double);
   }
 
-  public abstract interface DoubleUnaryOperator {
+  @java.lang.FunctionalInterface public interface DoubleUnaryOperator {
     method public default java.util.function.DoubleUnaryOperator andThen(java.util.function.DoubleUnaryOperator);
-    method public abstract double applyAsDouble(double);
+    method public double applyAsDouble(double);
     method public default java.util.function.DoubleUnaryOperator compose(java.util.function.DoubleUnaryOperator);
     method public static java.util.function.DoubleUnaryOperator identity();
   }
 
-  public abstract interface Function<T, R> {
-    method public default <V> java.util.function.Function<T, V> andThen(java.util.function.Function<? super R, ? extends V>);
-    method public abstract R apply(T);
-    method public default <V> java.util.function.Function<V, R> compose(java.util.function.Function<? super V, ? extends T>);
-    method public static <T> java.util.function.Function<T, T> identity();
+  @java.lang.FunctionalInterface public interface Function<T, R> {
+    method public default <V> java.util.function.Function<T,V> andThen(java.util.function.Function<? super R,? extends V>);
+    method public R apply(T);
+    method public default <V> java.util.function.Function<V,R> compose(java.util.function.Function<? super V,? extends T>);
+    method public static <T> java.util.function.Function<T,T> identity();
   }
 
-  public abstract interface IntBinaryOperator {
-    method public abstract int applyAsInt(int, int);
+  @java.lang.FunctionalInterface public interface IntBinaryOperator {
+    method public int applyAsInt(int, int);
   }
 
-  public abstract interface IntConsumer {
-    method public abstract void accept(int);
+  @java.lang.FunctionalInterface public interface IntConsumer {
+    method public void accept(int);
     method public default java.util.function.IntConsumer andThen(java.util.function.IntConsumer);
   }
 
-  public abstract interface IntFunction<R> {
-    method public abstract R apply(int);
+  @java.lang.FunctionalInterface public interface IntFunction<R> {
+    method public R apply(int);
   }
 
-  public abstract interface IntPredicate {
+  @java.lang.FunctionalInterface public interface IntPredicate {
     method public default java.util.function.IntPredicate and(java.util.function.IntPredicate);
     method public default java.util.function.IntPredicate negate();
     method public default java.util.function.IntPredicate or(java.util.function.IntPredicate);
-    method public abstract boolean test(int);
+    method public boolean test(int);
   }
 
-  public abstract interface IntSupplier {
-    method public abstract int getAsInt();
+  @java.lang.FunctionalInterface public interface IntSupplier {
+    method public int getAsInt();
   }
 
-  public abstract interface IntToDoubleFunction {
-    method public abstract double applyAsDouble(int);
+  @java.lang.FunctionalInterface public interface IntToDoubleFunction {
+    method public double applyAsDouble(int);
   }
 
-  public abstract interface IntToLongFunction {
-    method public abstract long applyAsLong(int);
+  @java.lang.FunctionalInterface public interface IntToLongFunction {
+    method public long applyAsLong(int);
   }
 
-  public abstract interface IntUnaryOperator {
+  @java.lang.FunctionalInterface public interface IntUnaryOperator {
     method public default java.util.function.IntUnaryOperator andThen(java.util.function.IntUnaryOperator);
-    method public abstract int applyAsInt(int);
+    method public int applyAsInt(int);
     method public default java.util.function.IntUnaryOperator compose(java.util.function.IntUnaryOperator);
     method public static java.util.function.IntUnaryOperator identity();
   }
 
-  public abstract interface LongBinaryOperator {
-    method public abstract long applyAsLong(long, long);
+  @java.lang.FunctionalInterface public interface LongBinaryOperator {
+    method public long applyAsLong(long, long);
   }
 
-  public abstract interface LongConsumer {
-    method public abstract void accept(long);
+  @java.lang.FunctionalInterface public interface LongConsumer {
+    method public void accept(long);
     method public default java.util.function.LongConsumer andThen(java.util.function.LongConsumer);
   }
 
-  public abstract interface LongFunction<R> {
-    method public abstract R apply(long);
+  @java.lang.FunctionalInterface public interface LongFunction<R> {
+    method public R apply(long);
   }
 
-  public abstract interface LongPredicate {
+  @java.lang.FunctionalInterface public interface LongPredicate {
     method public default java.util.function.LongPredicate and(java.util.function.LongPredicate);
     method public default java.util.function.LongPredicate negate();
     method public default java.util.function.LongPredicate or(java.util.function.LongPredicate);
-    method public abstract boolean test(long);
+    method public boolean test(long);
   }
 
-  public abstract interface LongSupplier {
-    method public abstract long getAsLong();
+  @java.lang.FunctionalInterface public interface LongSupplier {
+    method public long getAsLong();
   }
 
-  public abstract interface LongToDoubleFunction {
-    method public abstract double applyAsDouble(long);
+  @java.lang.FunctionalInterface public interface LongToDoubleFunction {
+    method public double applyAsDouble(long);
   }
 
-  public abstract interface LongToIntFunction {
-    method public abstract int applyAsInt(long);
+  @java.lang.FunctionalInterface public interface LongToIntFunction {
+    method public int applyAsInt(long);
   }
 
-  public abstract interface LongUnaryOperator {
+  @java.lang.FunctionalInterface public interface LongUnaryOperator {
     method public default java.util.function.LongUnaryOperator andThen(java.util.function.LongUnaryOperator);
-    method public abstract long applyAsLong(long);
+    method public long applyAsLong(long);
     method public default java.util.function.LongUnaryOperator compose(java.util.function.LongUnaryOperator);
     method public static java.util.function.LongUnaryOperator identity();
   }
 
-  public abstract interface ObjDoubleConsumer<T> {
-    method public abstract void accept(T, double);
+  @java.lang.FunctionalInterface public interface ObjDoubleConsumer<T> {
+    method public void accept(T, double);
   }
 
-  public abstract interface ObjIntConsumer<T> {
-    method public abstract void accept(T, int);
+  @java.lang.FunctionalInterface public interface ObjIntConsumer<T> {
+    method public void accept(T, int);
   }
 
-  public abstract interface ObjLongConsumer<T> {
-    method public abstract void accept(T, long);
+  @java.lang.FunctionalInterface public interface ObjLongConsumer<T> {
+    method public void accept(T, long);
   }
 
-  public abstract interface Predicate<T> {
+  @java.lang.FunctionalInterface public interface Predicate<T> {
     method public default java.util.function.Predicate<T> and(java.util.function.Predicate<? super T>);
-    method public static <T> java.util.function.Predicate<T> isEqual(java.lang.Object);
+    method public static <T> java.util.function.Predicate<T> isEqual(Object);
     method public default java.util.function.Predicate<T> negate();
     method public default java.util.function.Predicate<T> or(java.util.function.Predicate<? super T>);
-    method public abstract boolean test(T);
+    method public boolean test(T);
   }
 
-  public abstract interface Supplier<T> {
-    method public abstract T get();
+  @java.lang.FunctionalInterface public interface Supplier<T> {
+    method public T get();
   }
 
-  public abstract interface ToDoubleBiFunction<T, U> {
-    method public abstract double applyAsDouble(T, U);
+  @java.lang.FunctionalInterface public interface ToDoubleBiFunction<T, U> {
+    method public double applyAsDouble(T, U);
   }
 
-  public abstract interface ToDoubleFunction<T> {
-    method public abstract double applyAsDouble(T);
+  @java.lang.FunctionalInterface public interface ToDoubleFunction<T> {
+    method public double applyAsDouble(T);
   }
 
-  public abstract interface ToIntBiFunction<T, U> {
-    method public abstract int applyAsInt(T, U);
+  @java.lang.FunctionalInterface public interface ToIntBiFunction<T, U> {
+    method public int applyAsInt(T, U);
   }
 
-  public abstract interface ToIntFunction<T> {
-    method public abstract int applyAsInt(T);
+  @java.lang.FunctionalInterface public interface ToIntFunction<T> {
+    method public int applyAsInt(T);
   }
 
-  public abstract interface ToLongBiFunction<T, U> {
-    method public abstract long applyAsLong(T, U);
+  @java.lang.FunctionalInterface public interface ToLongBiFunction<T, U> {
+    method public long applyAsLong(T, U);
   }
 
-  public abstract interface ToLongFunction<T> {
-    method public abstract long applyAsLong(T);
+  @java.lang.FunctionalInterface public interface ToLongFunction<T> {
+    method public long applyAsLong(T);
   }
 
-  public abstract interface UnaryOperator<T> implements java.util.function.Function {
+  @java.lang.FunctionalInterface public interface UnaryOperator<T> extends java.util.function.Function<T,T> {
     method public static <T> java.util.function.UnaryOperator<T> identity();
   }
 
@@ -72462,40 +72227,40 @@
 
 package java.util.jar {
 
-  public class Attributes implements java.lang.Cloneable java.util.Map {
+  public class Attributes implements java.lang.Cloneable java.util.Map<java.lang.Object,java.lang.Object> {
     ctor public Attributes();
     ctor public Attributes(int);
     ctor public Attributes(java.util.jar.Attributes);
     method public void clear();
-    method public java.lang.Object clone();
-    method public boolean containsKey(java.lang.Object);
-    method public boolean containsValue(java.lang.Object);
-    method public java.util.Set<java.util.Map.Entry<java.lang.Object, java.lang.Object>> entrySet();
-    method public java.lang.Object get(java.lang.Object);
-    method public java.lang.String getValue(java.lang.String);
-    method public java.lang.String getValue(java.util.jar.Attributes.Name);
+    method public Object clone();
+    method public boolean containsKey(Object);
+    method public boolean containsValue(Object);
+    method public java.util.Set<java.util.Map.Entry<java.lang.Object,java.lang.Object>> entrySet();
+    method public Object get(Object);
+    method public String getValue(String);
+    method public String getValue(java.util.jar.Attributes.Name);
     method public boolean isEmpty();
     method public java.util.Set<java.lang.Object> keySet();
-    method public java.lang.Object put(java.lang.Object, java.lang.Object);
-    method public void putAll(java.util.Map<?, ?>);
-    method public java.lang.String putValue(java.lang.String, java.lang.String);
-    method public java.lang.Object remove(java.lang.Object);
+    method public Object put(Object, Object);
+    method public void putAll(java.util.Map<?,?>);
+    method public String putValue(String, String);
+    method public Object remove(Object);
     method public int size();
     method public java.util.Collection<java.lang.Object> values();
-    field protected java.util.Map<java.lang.Object, java.lang.Object> map;
+    field protected java.util.Map<java.lang.Object,java.lang.Object> map;
   }
 
   public static class Attributes.Name {
-    ctor public Attributes.Name(java.lang.String);
+    ctor public Attributes.Name(String);
     field public static final java.util.jar.Attributes.Name CLASS_PATH;
     field public static final java.util.jar.Attributes.Name CONTENT_TYPE;
-    field public static final deprecated java.util.jar.Attributes.Name EXTENSION_INSTALLATION;
+    field @Deprecated public static final java.util.jar.Attributes.Name EXTENSION_INSTALLATION;
     field public static final java.util.jar.Attributes.Name EXTENSION_LIST;
     field public static final java.util.jar.Attributes.Name EXTENSION_NAME;
     field public static final java.util.jar.Attributes.Name IMPLEMENTATION_TITLE;
-    field public static final deprecated java.util.jar.Attributes.Name IMPLEMENTATION_URL;
+    field @Deprecated public static final java.util.jar.Attributes.Name IMPLEMENTATION_URL;
     field public static final java.util.jar.Attributes.Name IMPLEMENTATION_VENDOR;
-    field public static final deprecated java.util.jar.Attributes.Name IMPLEMENTATION_VENDOR_ID;
+    field @Deprecated public static final java.util.jar.Attributes.Name IMPLEMENTATION_VENDOR_ID;
     field public static final java.util.jar.Attributes.Name IMPLEMENTATION_VERSION;
     field public static final java.util.jar.Attributes.Name MAIN_CLASS;
     field public static final java.util.jar.Attributes.Name MANIFEST_VERSION;
@@ -72507,7 +72272,7 @@
   }
 
   public class JarEntry extends java.util.zip.ZipEntry {
-    ctor public JarEntry(java.lang.String);
+    ctor public JarEntry(String);
     ctor public JarEntry(java.util.zip.ZipEntry);
     ctor public JarEntry(java.util.jar.JarEntry);
     method public java.util.jar.Attributes getAttributes() throws java.io.IOException;
@@ -72557,18 +72322,17 @@
 
   public class JarException extends java.util.zip.ZipException {
     ctor public JarException();
-    ctor public JarException(java.lang.String);
+    ctor public JarException(String);
   }
 
   public class JarFile extends java.util.zip.ZipFile {
-    ctor public JarFile(java.lang.String) throws java.io.IOException;
-    ctor public JarFile(java.lang.String, boolean) throws java.io.IOException;
+    ctor public JarFile(String) throws java.io.IOException;
+    ctor public JarFile(String, boolean) throws java.io.IOException;
     ctor public JarFile(java.io.File) throws java.io.IOException;
     ctor public JarFile(java.io.File, boolean) throws java.io.IOException;
     ctor public JarFile(java.io.File, boolean, int) throws java.io.IOException;
     method public java.util.Enumeration<java.util.jar.JarEntry> entries();
-    method public synchronized java.io.InputStream getInputStream(java.util.zip.ZipEntry) throws java.io.IOException;
-    method public java.util.jar.JarEntry getJarEntry(java.lang.String);
+    method public java.util.jar.JarEntry getJarEntry(String);
     method public java.util.jar.Manifest getManifest() throws java.io.IOException;
     method public java.util.stream.Stream<java.util.jar.JarEntry> stream();
     field public static final int CENATT = 36; // 0x24
@@ -72611,7 +72375,7 @@
     field public static final int LOCSIZ = 18; // 0x12
     field public static final int LOCTIM = 10; // 0xa
     field public static final int LOCVER = 4; // 0x4
-    field public static final java.lang.String MANIFEST_NAME = "META-INF/MANIFEST.MF";
+    field public static final String MANIFEST_NAME = "META-INF/MANIFEST.MF";
   }
 
   public class JarInputStream extends java.util.zip.ZipInputStream {
@@ -72711,57 +72475,57 @@
     ctor public Manifest(java.io.InputStream) throws java.io.IOException;
     ctor public Manifest(java.util.jar.Manifest);
     method public void clear();
-    method public java.lang.Object clone();
-    method public java.util.jar.Attributes getAttributes(java.lang.String);
-    method public java.util.Map<java.lang.String, java.util.jar.Attributes> getEntries();
+    method public Object clone();
+    method public java.util.jar.Attributes getAttributes(String);
+    method public java.util.Map<java.lang.String,java.util.jar.Attributes> getEntries();
     method public java.util.jar.Attributes getMainAttributes();
     method public void read(java.io.InputStream) throws java.io.IOException;
     method public void write(java.io.OutputStream) throws java.io.IOException;
   }
 
   public abstract class Pack200 {
-    method public static synchronized java.util.jar.Pack200.Packer newPacker();
+    method public static java.util.jar.Pack200.Packer newPacker();
     method public static java.util.jar.Pack200.Unpacker newUnpacker();
   }
 
-  public static abstract interface Pack200.Packer {
-    method public default deprecated void addPropertyChangeListener(java.beans.PropertyChangeListener);
-    method public abstract void pack(java.util.jar.JarFile, java.io.OutputStream) throws java.io.IOException;
-    method public abstract void pack(java.util.jar.JarInputStream, java.io.OutputStream) throws java.io.IOException;
-    method public abstract java.util.SortedMap<java.lang.String, java.lang.String> properties();
-    method public default deprecated void removePropertyChangeListener(java.beans.PropertyChangeListener);
-    field public static final java.lang.String CLASS_ATTRIBUTE_PFX = "pack.class.attribute.";
-    field public static final java.lang.String CODE_ATTRIBUTE_PFX = "pack.code.attribute.";
-    field public static final java.lang.String DEFLATE_HINT = "pack.deflate.hint";
-    field public static final java.lang.String EFFORT = "pack.effort";
-    field public static final java.lang.String ERROR = "error";
-    field public static final java.lang.String FALSE = "false";
-    field public static final java.lang.String FIELD_ATTRIBUTE_PFX = "pack.field.attribute.";
-    field public static final java.lang.String KEEP = "keep";
-    field public static final java.lang.String KEEP_FILE_ORDER = "pack.keep.file.order";
-    field public static final java.lang.String LATEST = "latest";
-    field public static final java.lang.String METHOD_ATTRIBUTE_PFX = "pack.method.attribute.";
-    field public static final java.lang.String MODIFICATION_TIME = "pack.modification.time";
-    field public static final java.lang.String PASS = "pass";
-    field public static final java.lang.String PASS_FILE_PFX = "pack.pass.file.";
-    field public static final java.lang.String PROGRESS = "pack.progress";
-    field public static final java.lang.String SEGMENT_LIMIT = "pack.segment.limit";
-    field public static final java.lang.String STRIP = "strip";
-    field public static final java.lang.String TRUE = "true";
-    field public static final java.lang.String UNKNOWN_ATTRIBUTE = "pack.unknown.attribute";
+  public static interface Pack200.Packer {
+    method @Deprecated public default void addPropertyChangeListener(java.beans.PropertyChangeListener);
+    method public void pack(java.util.jar.JarFile, java.io.OutputStream) throws java.io.IOException;
+    method public void pack(java.util.jar.JarInputStream, java.io.OutputStream) throws java.io.IOException;
+    method public java.util.SortedMap<java.lang.String,java.lang.String> properties();
+    method @Deprecated public default void removePropertyChangeListener(java.beans.PropertyChangeListener);
+    field public static final String CLASS_ATTRIBUTE_PFX = "pack.class.attribute.";
+    field public static final String CODE_ATTRIBUTE_PFX = "pack.code.attribute.";
+    field public static final String DEFLATE_HINT = "pack.deflate.hint";
+    field public static final String EFFORT = "pack.effort";
+    field public static final String ERROR = "error";
+    field public static final String FALSE = "false";
+    field public static final String FIELD_ATTRIBUTE_PFX = "pack.field.attribute.";
+    field public static final String KEEP = "keep";
+    field public static final String KEEP_FILE_ORDER = "pack.keep.file.order";
+    field public static final String LATEST = "latest";
+    field public static final String METHOD_ATTRIBUTE_PFX = "pack.method.attribute.";
+    field public static final String MODIFICATION_TIME = "pack.modification.time";
+    field public static final String PASS = "pass";
+    field public static final String PASS_FILE_PFX = "pack.pass.file.";
+    field public static final String PROGRESS = "pack.progress";
+    field public static final String SEGMENT_LIMIT = "pack.segment.limit";
+    field public static final String STRIP = "strip";
+    field public static final String TRUE = "true";
+    field public static final String UNKNOWN_ATTRIBUTE = "pack.unknown.attribute";
   }
 
-  public static abstract interface Pack200.Unpacker {
-    method public default deprecated void addPropertyChangeListener(java.beans.PropertyChangeListener);
-    method public abstract java.util.SortedMap<java.lang.String, java.lang.String> properties();
-    method public default deprecated void removePropertyChangeListener(java.beans.PropertyChangeListener);
-    method public abstract void unpack(java.io.InputStream, java.util.jar.JarOutputStream) throws java.io.IOException;
-    method public abstract void unpack(java.io.File, java.util.jar.JarOutputStream) throws java.io.IOException;
-    field public static final java.lang.String DEFLATE_HINT = "unpack.deflate.hint";
-    field public static final java.lang.String FALSE = "false";
-    field public static final java.lang.String KEEP = "keep";
-    field public static final java.lang.String PROGRESS = "unpack.progress";
-    field public static final java.lang.String TRUE = "true";
+  public static interface Pack200.Unpacker {
+    method @Deprecated public default void addPropertyChangeListener(java.beans.PropertyChangeListener);
+    method public java.util.SortedMap<java.lang.String,java.lang.String> properties();
+    method @Deprecated public default void removePropertyChangeListener(java.beans.PropertyChangeListener);
+    method public void unpack(java.io.InputStream, java.util.jar.JarOutputStream) throws java.io.IOException;
+    method public void unpack(java.io.File, java.util.jar.JarOutputStream) throws java.io.IOException;
+    field public static final String DEFLATE_HINT = "unpack.deflate.hint";
+    field public static final String FALSE = "false";
+    field public static final String KEEP = "keep";
+    field public static final String PROGRESS = "unpack.progress";
+    field public static final String TRUE = "true";
   }
 
 }
@@ -72771,12 +72535,11 @@
   public class ConsoleHandler extends java.util.logging.StreamHandler {
     ctor public ConsoleHandler();
     method public void close();
-    method public void publish(java.util.logging.LogRecord);
   }
 
   public class ErrorManager {
     ctor public ErrorManager();
-    method public synchronized void error(java.lang.String, java.lang.Exception, int);
+    method public void error(String, Exception, int);
     field public static final int CLOSE_FAILURE = 3; // 0x3
     field public static final int FLUSH_FAILURE = 2; // 0x2
     field public static final int FORMAT_FAILURE = 5; // 0x5
@@ -72787,183 +72550,183 @@
 
   public class FileHandler extends java.util.logging.StreamHandler {
     ctor public FileHandler() throws java.io.IOException, java.lang.SecurityException;
-    ctor public FileHandler(java.lang.String) throws java.io.IOException, java.lang.SecurityException;
-    ctor public FileHandler(java.lang.String, boolean) throws java.io.IOException, java.lang.SecurityException;
-    ctor public FileHandler(java.lang.String, int, int) throws java.io.IOException, java.lang.SecurityException;
-    ctor public FileHandler(java.lang.String, int, int, boolean) throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(String) throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(String, boolean) throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(String, int, int) throws java.io.IOException, java.lang.SecurityException;
+    ctor public FileHandler(String, int, int, boolean) throws java.io.IOException, java.lang.SecurityException;
   }
 
-  public abstract interface Filter {
-    method public abstract boolean isLoggable(java.util.logging.LogRecord);
+  @java.lang.FunctionalInterface public interface Filter {
+    method public boolean isLoggable(java.util.logging.LogRecord);
   }
 
   public abstract class Formatter {
     ctor protected Formatter();
-    method public abstract java.lang.String format(java.util.logging.LogRecord);
-    method public synchronized java.lang.String formatMessage(java.util.logging.LogRecord);
-    method public java.lang.String getHead(java.util.logging.Handler);
-    method public java.lang.String getTail(java.util.logging.Handler);
+    method public abstract String format(java.util.logging.LogRecord);
+    method public String formatMessage(java.util.logging.LogRecord);
+    method public String getHead(java.util.logging.Handler);
+    method public String getTail(java.util.logging.Handler);
   }
 
   public abstract class Handler {
     ctor protected Handler();
     method public abstract void close() throws java.lang.SecurityException;
     method public abstract void flush();
-    method public java.lang.String getEncoding();
+    method public String getEncoding();
     method public java.util.logging.ErrorManager getErrorManager();
     method public java.util.logging.Filter getFilter();
     method public java.util.logging.Formatter getFormatter();
     method public java.util.logging.Level getLevel();
     method public boolean isLoggable(java.util.logging.LogRecord);
     method public abstract void publish(java.util.logging.LogRecord);
-    method protected void reportError(java.lang.String, java.lang.Exception, int);
-    method public synchronized void setEncoding(java.lang.String) throws java.lang.SecurityException, java.io.UnsupportedEncodingException;
-    method public synchronized void setErrorManager(java.util.logging.ErrorManager);
-    method public synchronized void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
-    method public synchronized void setFormatter(java.util.logging.Formatter) throws java.lang.SecurityException;
-    method public synchronized void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
+    method protected void reportError(String, Exception, int);
+    method public void setEncoding(String) throws java.lang.SecurityException, java.io.UnsupportedEncodingException;
+    method public void setErrorManager(java.util.logging.ErrorManager);
+    method public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
+    method public void setFormatter(java.util.logging.Formatter) throws java.lang.SecurityException;
+    method public void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
   }
 
   public class Level implements java.io.Serializable {
-    ctor protected Level(java.lang.String, int);
-    ctor protected Level(java.lang.String, int, java.lang.String);
-    method public java.lang.String getLocalizedName();
-    method public java.lang.String getName();
-    method public java.lang.String getResourceBundleName();
+    ctor protected Level(@NonNull String, int);
+    ctor protected Level(@NonNull String, int, @Nullable String);
+    method @NonNull public String getLocalizedName();
+    method @NonNull public String getName();
+    method @Nullable public String getResourceBundleName();
     method public final int intValue();
-    method public static synchronized java.util.logging.Level parse(java.lang.String) throws java.lang.IllegalArgumentException;
-    method public final java.lang.String toString();
-    field public static final java.util.logging.Level ALL;
-    field public static final java.util.logging.Level CONFIG;
-    field public static final java.util.logging.Level FINE;
-    field public static final java.util.logging.Level FINER;
-    field public static final java.util.logging.Level FINEST;
-    field public static final java.util.logging.Level INFO;
-    field public static final java.util.logging.Level OFF;
-    field public static final java.util.logging.Level SEVERE;
-    field public static final java.util.logging.Level WARNING;
+    method @NonNull public static java.util.logging.Level parse(@NonNull String) throws java.lang.IllegalArgumentException;
+    method @NonNull public final String toString();
+    field @NonNull public static final java.util.logging.Level ALL;
+    field @NonNull public static final java.util.logging.Level CONFIG;
+    field @NonNull public static final java.util.logging.Level FINE;
+    field @NonNull public static final java.util.logging.Level FINER;
+    field @NonNull public static final java.util.logging.Level FINEST;
+    field @NonNull public static final java.util.logging.Level INFO;
+    field @NonNull public static final java.util.logging.Level OFF;
+    field @NonNull public static final java.util.logging.Level SEVERE;
+    field @NonNull public static final java.util.logging.Level WARNING;
   }
 
   public class LogManager {
     ctor protected LogManager();
     method public boolean addLogger(java.util.logging.Logger);
-    method public deprecated void addPropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
+    method @Deprecated public void addPropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
     method public void checkAccess() throws java.lang.SecurityException;
     method public static java.util.logging.LogManager getLogManager();
-    method public java.util.logging.Logger getLogger(java.lang.String);
+    method public java.util.logging.Logger getLogger(String);
     method public java.util.Enumeration<java.lang.String> getLoggerNames();
-    method public static synchronized java.util.logging.LoggingMXBean getLoggingMXBean();
-    method public java.lang.String getProperty(java.lang.String);
+    method public static java.util.logging.LoggingMXBean getLoggingMXBean();
+    method public String getProperty(String);
     method public void readConfiguration() throws java.io.IOException, java.lang.SecurityException;
     method public void readConfiguration(java.io.InputStream) throws java.io.IOException, java.lang.SecurityException;
-    method public deprecated void removePropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
+    method @Deprecated public void removePropertyChangeListener(java.beans.PropertyChangeListener) throws java.lang.SecurityException;
     method public void reset() throws java.lang.SecurityException;
-    field public static final java.lang.String LOGGING_MXBEAN_NAME = "java.util.logging:type=Logging";
+    field public static final String LOGGING_MXBEAN_NAME = "java.util.logging:type=Logging";
   }
 
   public class LogRecord implements java.io.Serializable {
-    ctor public LogRecord(java.util.logging.Level, java.lang.String);
+    ctor public LogRecord(java.util.logging.Level, String);
     method public java.util.logging.Level getLevel();
-    method public java.lang.String getLoggerName();
-    method public java.lang.String getMessage();
+    method public String getLoggerName();
+    method public String getMessage();
     method public long getMillis();
-    method public java.lang.Object[] getParameters();
+    method public Object[] getParameters();
     method public java.util.ResourceBundle getResourceBundle();
-    method public java.lang.String getResourceBundleName();
+    method public String getResourceBundleName();
     method public long getSequenceNumber();
-    method public java.lang.String getSourceClassName();
-    method public java.lang.String getSourceMethodName();
+    method public String getSourceClassName();
+    method public String getSourceMethodName();
     method public int getThreadID();
-    method public java.lang.Throwable getThrown();
+    method public Throwable getThrown();
     method public void setLevel(java.util.logging.Level);
-    method public void setLoggerName(java.lang.String);
-    method public void setMessage(java.lang.String);
+    method public void setLoggerName(String);
+    method public void setMessage(String);
     method public void setMillis(long);
-    method public void setParameters(java.lang.Object[]);
+    method public void setParameters(Object[]);
     method public void setResourceBundle(java.util.ResourceBundle);
-    method public void setResourceBundleName(java.lang.String);
+    method public void setResourceBundleName(String);
     method public void setSequenceNumber(long);
-    method public void setSourceClassName(java.lang.String);
-    method public void setSourceMethodName(java.lang.String);
+    method public void setSourceClassName(String);
+    method public void setSourceMethodName(String);
     method public void setThreadID(int);
-    method public void setThrown(java.lang.Throwable);
+    method public void setThrown(Throwable);
   }
 
   public class Logger {
-    ctor protected Logger(java.lang.String, java.lang.String);
-    method public void addHandler(java.util.logging.Handler) throws java.lang.SecurityException;
-    method public void config(java.lang.String);
-    method public void config(java.util.function.Supplier<java.lang.String>);
-    method public void entering(java.lang.String, java.lang.String);
-    method public void entering(java.lang.String, java.lang.String, java.lang.Object);
-    method public void entering(java.lang.String, java.lang.String, java.lang.Object[]);
-    method public void exiting(java.lang.String, java.lang.String);
-    method public void exiting(java.lang.String, java.lang.String, java.lang.Object);
-    method public void fine(java.lang.String);
-    method public void fine(java.util.function.Supplier<java.lang.String>);
-    method public void finer(java.lang.String);
-    method public void finer(java.util.function.Supplier<java.lang.String>);
-    method public void finest(java.lang.String);
-    method public void finest(java.util.function.Supplier<java.lang.String>);
-    method public static java.util.logging.Logger getAnonymousLogger();
-    method public static java.util.logging.Logger getAnonymousLogger(java.lang.String);
-    method public java.util.logging.Filter getFilter();
-    method public static final java.util.logging.Logger getGlobal();
+    ctor protected Logger(@Nullable String, @Nullable String);
+    method public void addHandler(@NonNull java.util.logging.Handler) throws java.lang.SecurityException;
+    method public void config(@Nullable String);
+    method public void config(@NonNull java.util.function.Supplier<java.lang.String>);
+    method public void entering(@Nullable String, @Nullable String);
+    method public void entering(@Nullable String, @Nullable String, @Nullable Object);
+    method public void entering(@Nullable String, @Nullable String, Object[]);
+    method public void exiting(@Nullable String, @Nullable String);
+    method public void exiting(@Nullable String, @Nullable String, @Nullable Object);
+    method public void fine(@Nullable String);
+    method public void fine(@NonNull java.util.function.Supplier<java.lang.String>);
+    method public void finer(@Nullable String);
+    method public void finer(@NonNull java.util.function.Supplier<java.lang.String>);
+    method public void finest(@Nullable String);
+    method public void finest(@NonNull java.util.function.Supplier<java.lang.String>);
+    method @NonNull public static java.util.logging.Logger getAnonymousLogger();
+    method @NonNull public static java.util.logging.Logger getAnonymousLogger(@Nullable String);
+    method @Nullable public java.util.logging.Filter getFilter();
+    method @NonNull public static final java.util.logging.Logger getGlobal();
     method public java.util.logging.Handler[] getHandlers();
-    method public java.util.logging.Level getLevel();
-    method public static java.util.logging.Logger getLogger(java.lang.String);
-    method public static java.util.logging.Logger getLogger(java.lang.String, java.lang.String);
-    method public java.lang.String getName();
-    method public java.util.logging.Logger getParent();
-    method public java.util.ResourceBundle getResourceBundle();
-    method public java.lang.String getResourceBundleName();
+    method @Nullable public java.util.logging.Level getLevel();
+    method @NonNull public static java.util.logging.Logger getLogger(@NonNull String);
+    method @NonNull public static java.util.logging.Logger getLogger(@NonNull String, @Nullable String);
+    method @Nullable public String getName();
+    method @Nullable public java.util.logging.Logger getParent();
+    method @Nullable public java.util.ResourceBundle getResourceBundle();
+    method @Nullable public String getResourceBundleName();
     method public boolean getUseParentHandlers();
-    method public void info(java.lang.String);
-    method public void info(java.util.function.Supplier<java.lang.String>);
-    method public boolean isLoggable(java.util.logging.Level);
-    method public void log(java.util.logging.LogRecord);
-    method public void log(java.util.logging.Level, java.lang.String);
-    method public void log(java.util.logging.Level, java.util.function.Supplier<java.lang.String>);
-    method public void log(java.util.logging.Level, java.lang.String, java.lang.Object);
-    method public void log(java.util.logging.Level, java.lang.String, java.lang.Object[]);
-    method public void log(java.util.logging.Level, java.lang.String, java.lang.Throwable);
-    method public void log(java.util.logging.Level, java.lang.Throwable, java.util.function.Supplier<java.lang.String>);
-    method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String);
-    method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.util.function.Supplier<java.lang.String>);
-    method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
-    method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
-    method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable);
-    method public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.Throwable, java.util.function.Supplier<java.lang.String>);
-    method public deprecated void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public deprecated void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
-    method public deprecated void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
-    method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.util.ResourceBundle, java.lang.String, java.lang.Object...);
-    method public deprecated void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable);
-    method public void logrb(java.util.logging.Level, java.lang.String, java.lang.String, java.util.ResourceBundle, java.lang.String, java.lang.Throwable);
-    method public void removeHandler(java.util.logging.Handler) throws java.lang.SecurityException;
-    method public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException;
-    method public void setLevel(java.util.logging.Level) throws java.lang.SecurityException;
-    method public void setParent(java.util.logging.Logger);
-    method public void setResourceBundle(java.util.ResourceBundle);
+    method public void info(@Nullable String);
+    method public void info(@NonNull java.util.function.Supplier<java.lang.String>);
+    method public boolean isLoggable(@NonNull java.util.logging.Level);
+    method public void log(@NonNull java.util.logging.LogRecord);
+    method public void log(@NonNull java.util.logging.Level, @Nullable String);
+    method public void log(@NonNull java.util.logging.Level, @NonNull java.util.function.Supplier<java.lang.String>);
+    method public void log(@NonNull java.util.logging.Level, @Nullable String, @Nullable Object);
+    method public void log(@NonNull java.util.logging.Level, @Nullable String, Object[]);
+    method public void log(@NonNull java.util.logging.Level, @Nullable String, @Nullable Throwable);
+    method public void log(@NonNull java.util.logging.Level, @Nullable Throwable, @NonNull java.util.function.Supplier<java.lang.String>);
+    method public void logp(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable String);
+    method public void logp(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @NonNull java.util.function.Supplier<java.lang.String>);
+    method public void logp(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable String, @Nullable Object);
+    method public void logp(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable String, Object[]);
+    method public void logp(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable String, @Nullable Throwable);
+    method public void logp(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable Throwable, @NonNull java.util.function.Supplier<java.lang.String>);
+    method @Deprecated public void logrb(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable String, @Nullable String);
+    method @Deprecated public void logrb(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable String, @Nullable String, @Nullable Object);
+    method @Deprecated public void logrb(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable String, @Nullable String, Object[]);
+    method public void logrb(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable java.util.ResourceBundle, @Nullable String, java.lang.Object...);
+    method @Deprecated public void logrb(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable String, @Nullable String, @Nullable Throwable);
+    method public void logrb(@NonNull java.util.logging.Level, @Nullable String, @Nullable String, @Nullable java.util.ResourceBundle, @Nullable String, @Nullable Throwable);
+    method public void removeHandler(@Nullable java.util.logging.Handler) throws java.lang.SecurityException;
+    method public void setFilter(@Nullable java.util.logging.Filter) throws java.lang.SecurityException;
+    method public void setLevel(@Nullable java.util.logging.Level) throws java.lang.SecurityException;
+    method public void setParent(@NonNull java.util.logging.Logger);
+    method public void setResourceBundle(@NonNull java.util.ResourceBundle);
     method public void setUseParentHandlers(boolean);
-    method public void severe(java.lang.String);
-    method public void severe(java.util.function.Supplier<java.lang.String>);
-    method public void throwing(java.lang.String, java.lang.String, java.lang.Throwable);
-    method public void warning(java.lang.String);
-    method public void warning(java.util.function.Supplier<java.lang.String>);
-    field public static final java.lang.String GLOBAL_LOGGER_NAME = "global";
-    field public static final deprecated java.util.logging.Logger global;
+    method public void severe(@Nullable String);
+    method public void severe(@NonNull java.util.function.Supplier<java.lang.String>);
+    method public void throwing(@Nullable String, @Nullable String, @Nullable Throwable);
+    method public void warning(@Nullable String);
+    method public void warning(@NonNull java.util.function.Supplier<java.lang.String>);
+    field @NonNull public static final String GLOBAL_LOGGER_NAME = "global";
+    field @Deprecated @NonNull public static final java.util.logging.Logger global;
   }
 
-  public abstract interface LoggingMXBean {
-    method public abstract java.lang.String getLoggerLevel(java.lang.String);
-    method public abstract java.util.List<java.lang.String> getLoggerNames();
-    method public abstract java.lang.String getParentLoggerName(java.lang.String);
-    method public abstract void setLoggerLevel(java.lang.String, java.lang.String);
+  public interface LoggingMXBean {
+    method public String getLoggerLevel(String);
+    method public java.util.List<java.lang.String> getLoggerNames();
+    method public String getParentLoggerName(String);
+    method public void setLoggerLevel(String, String);
   }
 
   public final class LoggingPermission extends java.security.BasicPermission {
-    ctor public LoggingPermission(java.lang.String, java.lang.String) throws java.lang.IllegalArgumentException;
+    ctor public LoggingPermission(String, String) throws java.lang.IllegalArgumentException;
   }
 
   public class MemoryHandler extends java.util.logging.Handler {
@@ -72972,33 +72735,33 @@
     method public void close() throws java.lang.SecurityException;
     method public void flush();
     method public java.util.logging.Level getPushLevel();
-    method public synchronized void publish(java.util.logging.LogRecord);
-    method public synchronized void push();
-    method public synchronized void setPushLevel(java.util.logging.Level) throws java.lang.SecurityException;
+    method public void publish(java.util.logging.LogRecord);
+    method public void push();
+    method public void setPushLevel(java.util.logging.Level) throws java.lang.SecurityException;
   }
 
   public class SimpleFormatter extends java.util.logging.Formatter {
     ctor public SimpleFormatter();
-    method public synchronized java.lang.String format(java.util.logging.LogRecord);
+    method public String format(java.util.logging.LogRecord);
   }
 
   public class SocketHandler extends java.util.logging.StreamHandler {
     ctor public SocketHandler() throws java.io.IOException;
-    ctor public SocketHandler(java.lang.String, int) throws java.io.IOException;
+    ctor public SocketHandler(String, int) throws java.io.IOException;
   }
 
   public class StreamHandler extends java.util.logging.Handler {
     ctor public StreamHandler();
     ctor public StreamHandler(java.io.OutputStream, java.util.logging.Formatter);
-    method public synchronized void close() throws java.lang.SecurityException;
-    method public synchronized void flush();
-    method public synchronized void publish(java.util.logging.LogRecord);
-    method protected synchronized void setOutputStream(java.io.OutputStream) throws java.lang.SecurityException;
+    method public void close() throws java.lang.SecurityException;
+    method public void flush();
+    method public void publish(java.util.logging.LogRecord);
+    method protected void setOutputStream(java.io.OutputStream) throws java.lang.SecurityException;
   }
 
   public class XMLFormatter extends java.util.logging.Formatter {
     ctor public XMLFormatter();
-    method public java.lang.String format(java.util.logging.LogRecord);
+    method public String format(java.util.logging.LogRecord);
   }
 
 }
@@ -73006,65 +72769,65 @@
 package java.util.prefs {
 
   public abstract class AbstractPreferences extends java.util.prefs.Preferences {
-    ctor protected AbstractPreferences(java.util.prefs.AbstractPreferences, java.lang.String);
-    method public java.lang.String absolutePath();
+    ctor protected AbstractPreferences(java.util.prefs.AbstractPreferences, String);
+    method public String absolutePath();
     method public void addNodeChangeListener(java.util.prefs.NodeChangeListener);
     method public void addPreferenceChangeListener(java.util.prefs.PreferenceChangeListener);
     method protected final java.util.prefs.AbstractPreferences[] cachedChildren();
-    method protected abstract java.util.prefs.AbstractPreferences childSpi(java.lang.String);
-    method public java.lang.String[] childrenNames() throws java.util.prefs.BackingStoreException;
-    method protected abstract java.lang.String[] childrenNamesSpi() throws java.util.prefs.BackingStoreException;
+    method protected abstract java.util.prefs.AbstractPreferences childSpi(String);
+    method public String[] childrenNames() throws java.util.prefs.BackingStoreException;
+    method protected abstract String[] childrenNamesSpi() throws java.util.prefs.BackingStoreException;
     method public void clear() throws java.util.prefs.BackingStoreException;
     method public void exportNode(java.io.OutputStream) throws java.util.prefs.BackingStoreException, java.io.IOException;
     method public void exportSubtree(java.io.OutputStream) throws java.util.prefs.BackingStoreException, java.io.IOException;
     method public void flush() throws java.util.prefs.BackingStoreException;
     method protected abstract void flushSpi() throws java.util.prefs.BackingStoreException;
-    method public java.lang.String get(java.lang.String, java.lang.String);
-    method public boolean getBoolean(java.lang.String, boolean);
-    method public byte[] getByteArray(java.lang.String, byte[]);
-    method protected java.util.prefs.AbstractPreferences getChild(java.lang.String) throws java.util.prefs.BackingStoreException;
-    method public double getDouble(java.lang.String, double);
-    method public float getFloat(java.lang.String, float);
-    method public int getInt(java.lang.String, int);
-    method public long getLong(java.lang.String, long);
-    method protected abstract java.lang.String getSpi(java.lang.String);
+    method public String get(String, String);
+    method public boolean getBoolean(String, boolean);
+    method public byte[] getByteArray(String, byte[]);
+    method protected java.util.prefs.AbstractPreferences getChild(String) throws java.util.prefs.BackingStoreException;
+    method public double getDouble(String, double);
+    method public float getFloat(String, float);
+    method public int getInt(String, int);
+    method public long getLong(String, long);
+    method protected abstract String getSpi(String);
     method protected boolean isRemoved();
     method public boolean isUserNode();
-    method public java.lang.String[] keys() throws java.util.prefs.BackingStoreException;
-    method protected abstract java.lang.String[] keysSpi() throws java.util.prefs.BackingStoreException;
-    method public java.lang.String name();
-    method public java.util.prefs.Preferences node(java.lang.String);
-    method public boolean nodeExists(java.lang.String) throws java.util.prefs.BackingStoreException;
+    method public String[] keys() throws java.util.prefs.BackingStoreException;
+    method protected abstract String[] keysSpi() throws java.util.prefs.BackingStoreException;
+    method public String name();
+    method public java.util.prefs.Preferences node(String);
+    method public boolean nodeExists(String) throws java.util.prefs.BackingStoreException;
     method public java.util.prefs.Preferences parent();
-    method public void put(java.lang.String, java.lang.String);
-    method public void putBoolean(java.lang.String, boolean);
-    method public void putByteArray(java.lang.String, byte[]);
-    method public void putDouble(java.lang.String, double);
-    method public void putFloat(java.lang.String, float);
-    method public void putInt(java.lang.String, int);
-    method public void putLong(java.lang.String, long);
-    method protected abstract void putSpi(java.lang.String, java.lang.String);
-    method public void remove(java.lang.String);
+    method public void put(String, String);
+    method public void putBoolean(String, boolean);
+    method public void putByteArray(String, byte[]);
+    method public void putDouble(String, double);
+    method public void putFloat(String, float);
+    method public void putInt(String, int);
+    method public void putLong(String, long);
+    method protected abstract void putSpi(String, String);
+    method public void remove(String);
     method public void removeNode() throws java.util.prefs.BackingStoreException;
     method public void removeNodeChangeListener(java.util.prefs.NodeChangeListener);
     method protected abstract void removeNodeSpi() throws java.util.prefs.BackingStoreException;
     method public void removePreferenceChangeListener(java.util.prefs.PreferenceChangeListener);
-    method protected abstract void removeSpi(java.lang.String);
+    method protected abstract void removeSpi(String);
     method public void sync() throws java.util.prefs.BackingStoreException;
     method protected abstract void syncSpi() throws java.util.prefs.BackingStoreException;
-    field protected final java.lang.Object lock;
+    field protected final Object lock;
     field protected boolean newNode;
   }
 
   public class BackingStoreException extends java.lang.Exception {
-    ctor public BackingStoreException(java.lang.String);
-    ctor public BackingStoreException(java.lang.Throwable);
+    ctor public BackingStoreException(String);
+    ctor public BackingStoreException(Throwable);
   }
 
   public class InvalidPreferencesFormatException extends java.lang.Exception {
-    ctor public InvalidPreferencesFormatException(java.lang.Throwable);
-    ctor public InvalidPreferencesFormatException(java.lang.String);
-    ctor public InvalidPreferencesFormatException(java.lang.String, java.lang.Throwable);
+    ctor public InvalidPreferencesFormatException(Throwable);
+    ctor public InvalidPreferencesFormatException(String);
+    ctor public InvalidPreferencesFormatException(String, Throwable);
   }
 
   public class NodeChangeEvent extends java.util.EventObject {
@@ -73073,135 +72836,135 @@
     method public java.util.prefs.Preferences getParent();
   }
 
-  public abstract interface NodeChangeListener implements java.util.EventListener {
-    method public abstract void childAdded(java.util.prefs.NodeChangeEvent);
-    method public abstract void childRemoved(java.util.prefs.NodeChangeEvent);
+  public interface NodeChangeListener extends java.util.EventListener {
+    method public void childAdded(java.util.prefs.NodeChangeEvent);
+    method public void childRemoved(java.util.prefs.NodeChangeEvent);
   }
 
   public class PreferenceChangeEvent extends java.util.EventObject {
-    ctor public PreferenceChangeEvent(java.util.prefs.Preferences, java.lang.String, java.lang.String);
-    method public java.lang.String getKey();
-    method public java.lang.String getNewValue();
+    ctor public PreferenceChangeEvent(java.util.prefs.Preferences, String, String);
+    method public String getKey();
+    method public String getNewValue();
     method public java.util.prefs.Preferences getNode();
   }
 
-  public abstract interface PreferenceChangeListener implements java.util.EventListener {
-    method public abstract void preferenceChange(java.util.prefs.PreferenceChangeEvent);
+  @java.lang.FunctionalInterface public interface PreferenceChangeListener extends java.util.EventListener {
+    method public void preferenceChange(java.util.prefs.PreferenceChangeEvent);
   }
 
   public abstract class Preferences {
     ctor protected Preferences();
-    method public abstract java.lang.String absolutePath();
+    method public abstract String absolutePath();
     method public abstract void addNodeChangeListener(java.util.prefs.NodeChangeListener);
     method public abstract void addPreferenceChangeListener(java.util.prefs.PreferenceChangeListener);
-    method public abstract java.lang.String[] childrenNames() throws java.util.prefs.BackingStoreException;
+    method public abstract String[] childrenNames() throws java.util.prefs.BackingStoreException;
     method public abstract void clear() throws java.util.prefs.BackingStoreException;
     method public abstract void exportNode(java.io.OutputStream) throws java.util.prefs.BackingStoreException, java.io.IOException;
     method public abstract void exportSubtree(java.io.OutputStream) throws java.util.prefs.BackingStoreException, java.io.IOException;
     method public abstract void flush() throws java.util.prefs.BackingStoreException;
-    method public abstract java.lang.String get(java.lang.String, java.lang.String);
-    method public abstract boolean getBoolean(java.lang.String, boolean);
-    method public abstract byte[] getByteArray(java.lang.String, byte[]);
-    method public abstract double getDouble(java.lang.String, double);
-    method public abstract float getFloat(java.lang.String, float);
-    method public abstract int getInt(java.lang.String, int);
-    method public abstract long getLong(java.lang.String, long);
+    method public abstract String get(String, String);
+    method public abstract boolean getBoolean(String, boolean);
+    method public abstract byte[] getByteArray(String, byte[]);
+    method public abstract double getDouble(String, double);
+    method public abstract float getFloat(String, float);
+    method public abstract int getInt(String, int);
+    method public abstract long getLong(String, long);
     method public static void importPreferences(java.io.InputStream) throws java.io.IOException, java.util.prefs.InvalidPreferencesFormatException;
     method public abstract boolean isUserNode();
-    method public abstract java.lang.String[] keys() throws java.util.prefs.BackingStoreException;
-    method public abstract java.lang.String name();
-    method public abstract java.util.prefs.Preferences node(java.lang.String);
-    method public abstract boolean nodeExists(java.lang.String) throws java.util.prefs.BackingStoreException;
+    method public abstract String[] keys() throws java.util.prefs.BackingStoreException;
+    method public abstract String name();
+    method public abstract java.util.prefs.Preferences node(String);
+    method public abstract boolean nodeExists(String) throws java.util.prefs.BackingStoreException;
     method public abstract java.util.prefs.Preferences parent();
-    method public abstract void put(java.lang.String, java.lang.String);
-    method public abstract void putBoolean(java.lang.String, boolean);
-    method public abstract void putByteArray(java.lang.String, byte[]);
-    method public abstract void putDouble(java.lang.String, double);
-    method public abstract void putFloat(java.lang.String, float);
-    method public abstract void putInt(java.lang.String, int);
-    method public abstract void putLong(java.lang.String, long);
-    method public abstract void remove(java.lang.String);
+    method public abstract void put(String, String);
+    method public abstract void putBoolean(String, boolean);
+    method public abstract void putByteArray(String, byte[]);
+    method public abstract void putDouble(String, double);
+    method public abstract void putFloat(String, float);
+    method public abstract void putInt(String, int);
+    method public abstract void putLong(String, long);
+    method public abstract void remove(String);
     method public abstract void removeNode() throws java.util.prefs.BackingStoreException;
     method public abstract void removeNodeChangeListener(java.util.prefs.NodeChangeListener);
     method public abstract void removePreferenceChangeListener(java.util.prefs.PreferenceChangeListener);
     method public abstract void sync() throws java.util.prefs.BackingStoreException;
-    method public static java.util.prefs.Preferences systemNodeForPackage(java.lang.Class<?>);
+    method public static java.util.prefs.Preferences systemNodeForPackage(Class<?>);
     method public static java.util.prefs.Preferences systemRoot();
-    method public abstract java.lang.String toString();
-    method public static java.util.prefs.Preferences userNodeForPackage(java.lang.Class<?>);
+    method public abstract String toString();
+    method public static java.util.prefs.Preferences userNodeForPackage(Class<?>);
     method public static java.util.prefs.Preferences userRoot();
     field public static final int MAX_KEY_LENGTH = 80; // 0x50
     field public static final int MAX_NAME_LENGTH = 80; // 0x50
     field public static final int MAX_VALUE_LENGTH = 8192; // 0x2000
   }
 
-  public abstract interface PreferencesFactory {
-    method public abstract java.util.prefs.Preferences systemRoot();
-    method public abstract java.util.prefs.Preferences userRoot();
+  public interface PreferencesFactory {
+    method public java.util.prefs.Preferences systemRoot();
+    method public java.util.prefs.Preferences userRoot();
   }
 
 }
 
 package java.util.regex {
 
-  public abstract interface MatchResult {
-    method public abstract int end();
-    method public abstract int end(int);
-    method public abstract java.lang.String group();
-    method public abstract java.lang.String group(int);
-    method public abstract int groupCount();
-    method public abstract int start();
-    method public abstract int start(int);
+  public interface MatchResult {
+    method public int end();
+    method public int end(int);
+    method public String group();
+    method public String group(int);
+    method public int groupCount();
+    method public int start();
+    method public int start(int);
   }
 
   public final class Matcher implements java.util.regex.MatchResult {
-    method public java.util.regex.Matcher appendReplacement(java.lang.StringBuffer, java.lang.String);
-    method public java.lang.StringBuffer appendTail(java.lang.StringBuffer);
+    method @NonNull public java.util.regex.Matcher appendReplacement(@NonNull StringBuffer, @NonNull String);
+    method @NonNull public StringBuffer appendTail(@NonNull StringBuffer);
     method public int end();
     method public int end(int);
-    method public int end(java.lang.String);
+    method public int end(@NonNull String);
     method public boolean find();
     method public boolean find(int);
-    method public java.lang.String group();
-    method public java.lang.String group(int);
-    method public java.lang.String group(java.lang.String);
+    method @NonNull public String group();
+    method @Nullable public String group(int);
+    method @Nullable public String group(@NonNull String);
     method public int groupCount();
     method public boolean hasAnchoringBounds();
     method public boolean hasTransparentBounds();
     method public boolean hitEnd();
     method public boolean lookingAt();
     method public boolean matches();
-    method public java.util.regex.Pattern pattern();
-    method public static java.lang.String quoteReplacement(java.lang.String);
-    method public java.util.regex.Matcher region(int, int);
+    method @NonNull public java.util.regex.Pattern pattern();
+    method @NonNull public static String quoteReplacement(@NonNull String);
+    method @NonNull public java.util.regex.Matcher region(int, int);
     method public int regionEnd();
     method public int regionStart();
-    method public java.lang.String replaceAll(java.lang.String);
-    method public java.lang.String replaceFirst(java.lang.String);
+    method @NonNull public String replaceAll(@NonNull String);
+    method @NonNull public String replaceFirst(@NonNull String);
     method public boolean requireEnd();
-    method public java.util.regex.Matcher reset();
-    method public java.util.regex.Matcher reset(java.lang.CharSequence);
+    method @NonNull public java.util.regex.Matcher reset();
+    method @NonNull public java.util.regex.Matcher reset(@NonNull CharSequence);
     method public int start();
     method public int start(int);
-    method public int start(java.lang.String);
-    method public java.util.regex.MatchResult toMatchResult();
-    method public java.util.regex.Matcher useAnchoringBounds(boolean);
-    method public java.util.regex.Matcher usePattern(java.util.regex.Pattern);
-    method public java.util.regex.Matcher useTransparentBounds(boolean);
+    method public int start(@NonNull String);
+    method @NonNull public java.util.regex.MatchResult toMatchResult();
+    method @NonNull public java.util.regex.Matcher useAnchoringBounds(boolean);
+    method @NonNull public java.util.regex.Matcher usePattern(@NonNull java.util.regex.Pattern);
+    method @NonNull public java.util.regex.Matcher useTransparentBounds(boolean);
   }
 
   public final class Pattern implements java.io.Serializable {
-    method public java.util.function.Predicate<java.lang.String> asPredicate();
-    method public static java.util.regex.Pattern compile(java.lang.String);
-    method public static java.util.regex.Pattern compile(java.lang.String, int);
+    method @NonNull public java.util.function.Predicate<java.lang.String> asPredicate();
+    method @NonNull public static java.util.regex.Pattern compile(@NonNull String);
+    method @NonNull public static java.util.regex.Pattern compile(@NonNull String, int);
     method public int flags();
-    method public java.util.regex.Matcher matcher(java.lang.CharSequence);
-    method public static boolean matches(java.lang.String, java.lang.CharSequence);
-    method public java.lang.String pattern();
-    method public static java.lang.String quote(java.lang.String);
-    method public java.lang.String[] split(java.lang.CharSequence, int);
-    method public java.lang.String[] split(java.lang.CharSequence);
-    method public java.util.stream.Stream<java.lang.String> splitAsStream(java.lang.CharSequence);
+    method @NonNull public java.util.regex.Matcher matcher(@NonNull CharSequence);
+    method public static boolean matches(@NonNull String, @NonNull CharSequence);
+    method @NonNull public String pattern();
+    method @NonNull public static String quote(@NonNull String);
+    method public String[] split(@NonNull CharSequence, int);
+    method public String[] split(@NonNull CharSequence);
+    method @NonNull public java.util.stream.Stream<java.lang.String> splitAsStream(@NonNull CharSequence);
     field public static final int CANON_EQ = 128; // 0x80
     field public static final int CASE_INSENSITIVE = 2; // 0x2
     field public static final int COMMENTS = 4; // 0x4
@@ -73214,281 +72977,279 @@
   }
 
   public class PatternSyntaxException extends java.lang.IllegalArgumentException {
-    ctor public PatternSyntaxException(java.lang.String, java.lang.String, int);
-    method public java.lang.String getDescription();
+    ctor public PatternSyntaxException(String, String, int);
+    method public String getDescription();
     method public int getIndex();
-    method public java.lang.String getPattern();
+    method public String getPattern();
   }
 
 }
 
 package java.util.stream {
 
-  public abstract interface BaseStream<T, S extends java.util.stream.BaseStream<T, S>> implements java.lang.AutoCloseable {
-    method public abstract void close();
-    method public abstract boolean isParallel();
-    method public abstract java.util.Iterator<T> iterator();
-    method public abstract S onClose(java.lang.Runnable);
-    method public abstract S parallel();
-    method public abstract S sequential();
-    method public abstract java.util.Spliterator<T> spliterator();
-    method public abstract S unordered();
+  public interface BaseStream<T, S extends java.util.stream.BaseStream<T, S>> extends java.lang.AutoCloseable {
+    method public void close();
+    method public boolean isParallel();
+    method public java.util.Iterator<T> iterator();
+    method public S onClose(Runnable);
+    method public S parallel();
+    method public S sequential();
+    method public java.util.Spliterator<T> spliterator();
+    method public S unordered();
   }
 
-  public abstract interface Collector<T, A, R> {
-    method public abstract java.util.function.BiConsumer<A, T> accumulator();
-    method public abstract java.util.Set<java.util.stream.Collector.Characteristics> characteristics();
-    method public abstract java.util.function.BinaryOperator<A> combiner();
-    method public abstract java.util.function.Function<A, R> finisher();
-    method public static <T, R> java.util.stream.Collector<T, R, R> of(java.util.function.Supplier<R>, java.util.function.BiConsumer<R, T>, java.util.function.BinaryOperator<R>, java.util.stream.Collector.Characteristics...);
-    method public static <T, A, R> java.util.stream.Collector<T, A, R> of(java.util.function.Supplier<A>, java.util.function.BiConsumer<A, T>, java.util.function.BinaryOperator<A>, java.util.function.Function<A, R>, java.util.stream.Collector.Characteristics...);
-    method public abstract java.util.function.Supplier<A> supplier();
+  public interface Collector<T, A, R> {
+    method public java.util.function.BiConsumer<A,T> accumulator();
+    method public java.util.Set<java.util.stream.Collector.Characteristics> characteristics();
+    method public java.util.function.BinaryOperator<A> combiner();
+    method public java.util.function.Function<A,R> finisher();
+    method public static <T, R> java.util.stream.Collector<T,R,R> of(java.util.function.Supplier<R>, java.util.function.BiConsumer<R,T>, java.util.function.BinaryOperator<R>, java.util.stream.Collector.Characteristics...);
+    method public static <T, A, R> java.util.stream.Collector<T,A,R> of(java.util.function.Supplier<A>, java.util.function.BiConsumer<A,T>, java.util.function.BinaryOperator<A>, java.util.function.Function<A,R>, java.util.stream.Collector.Characteristics...);
+    method public java.util.function.Supplier<A> supplier();
   }
 
-  public static final class Collector.Characteristics extends java.lang.Enum {
-    method public static java.util.stream.Collector.Characteristics valueOf(java.lang.String);
-    method public static final java.util.stream.Collector.Characteristics[] values();
+  public enum Collector.Characteristics {
     enum_constant public static final java.util.stream.Collector.Characteristics CONCURRENT;
     enum_constant public static final java.util.stream.Collector.Characteristics IDENTITY_FINISH;
     enum_constant public static final java.util.stream.Collector.Characteristics UNORDERED;
   }
 
   public final class Collectors {
-    method public static <T> java.util.stream.Collector<T, ?, java.lang.Double> averagingDouble(java.util.function.ToDoubleFunction<? super T>);
-    method public static <T> java.util.stream.Collector<T, ?, java.lang.Double> averagingInt(java.util.function.ToIntFunction<? super T>);
-    method public static <T> java.util.stream.Collector<T, ?, java.lang.Double> averagingLong(java.util.function.ToLongFunction<? super T>);
-    method public static <T, A, R, RR> java.util.stream.Collector<T, A, RR> collectingAndThen(java.util.stream.Collector<T, A, R>, java.util.function.Function<R, RR>);
-    method public static <T> java.util.stream.Collector<T, ?, java.lang.Long> counting();
-    method public static <T, K> java.util.stream.Collector<T, ?, java.util.Map<K, java.util.List<T>>> groupingBy(java.util.function.Function<? super T, ? extends K>);
-    method public static <T, K, A, D> java.util.stream.Collector<T, ?, java.util.Map<K, D>> groupingBy(java.util.function.Function<? super T, ? extends K>, java.util.stream.Collector<? super T, A, D>);
-    method public static <T, K, D, A, M extends java.util.Map<K, D>> java.util.stream.Collector<T, ?, M> groupingBy(java.util.function.Function<? super T, ? extends K>, java.util.function.Supplier<M>, java.util.stream.Collector<? super T, A, D>);
-    method public static <T, K> java.util.stream.Collector<T, ?, java.util.concurrent.ConcurrentMap<K, java.util.List<T>>> groupingByConcurrent(java.util.function.Function<? super T, ? extends K>);
-    method public static <T, K, A, D> java.util.stream.Collector<T, ?, java.util.concurrent.ConcurrentMap<K, D>> groupingByConcurrent(java.util.function.Function<? super T, ? extends K>, java.util.stream.Collector<? super T, A, D>);
-    method public static <T, K, A, D, M extends java.util.concurrent.ConcurrentMap<K, D>> java.util.stream.Collector<T, ?, M> groupingByConcurrent(java.util.function.Function<? super T, ? extends K>, java.util.function.Supplier<M>, java.util.stream.Collector<? super T, A, D>);
-    method public static java.util.stream.Collector<java.lang.CharSequence, ?, java.lang.String> joining();
-    method public static java.util.stream.Collector<java.lang.CharSequence, ?, java.lang.String> joining(java.lang.CharSequence);
-    method public static java.util.stream.Collector<java.lang.CharSequence, ?, java.lang.String> joining(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence);
-    method public static <T, U, A, R> java.util.stream.Collector<T, ?, R> mapping(java.util.function.Function<? super T, ? extends U>, java.util.stream.Collector<? super U, A, R>);
-    method public static <T> java.util.stream.Collector<T, ?, java.util.Optional<T>> maxBy(java.util.Comparator<? super T>);
-    method public static <T> java.util.stream.Collector<T, ?, java.util.Optional<T>> minBy(java.util.Comparator<? super T>);
-    method public static <T> java.util.stream.Collector<T, ?, java.util.Map<java.lang.Boolean, java.util.List<T>>> partitioningBy(java.util.function.Predicate<? super T>);
-    method public static <T, D, A> java.util.stream.Collector<T, ?, java.util.Map<java.lang.Boolean, D>> partitioningBy(java.util.function.Predicate<? super T>, java.util.stream.Collector<? super T, A, D>);
-    method public static <T> java.util.stream.Collector<T, ?, T> reducing(T, java.util.function.BinaryOperator<T>);
-    method public static <T> java.util.stream.Collector<T, ?, java.util.Optional<T>> reducing(java.util.function.BinaryOperator<T>);
-    method public static <T, U> java.util.stream.Collector<T, ?, U> reducing(U, java.util.function.Function<? super T, ? extends U>, java.util.function.BinaryOperator<U>);
-    method public static <T> java.util.stream.Collector<T, ?, java.util.DoubleSummaryStatistics> summarizingDouble(java.util.function.ToDoubleFunction<? super T>);
-    method public static <T> java.util.stream.Collector<T, ?, java.util.IntSummaryStatistics> summarizingInt(java.util.function.ToIntFunction<? super T>);
-    method public static <T> java.util.stream.Collector<T, ?, java.util.LongSummaryStatistics> summarizingLong(java.util.function.ToLongFunction<? super T>);
-    method public static <T> java.util.stream.Collector<T, ?, java.lang.Double> summingDouble(java.util.function.ToDoubleFunction<? super T>);
-    method public static <T> java.util.stream.Collector<T, ?, java.lang.Integer> summingInt(java.util.function.ToIntFunction<? super T>);
-    method public static <T> java.util.stream.Collector<T, ?, java.lang.Long> summingLong(java.util.function.ToLongFunction<? super T>);
-    method public static <T, C extends java.util.Collection<T>> java.util.stream.Collector<T, ?, C> toCollection(java.util.function.Supplier<C>);
-    method public static <T, K, U> java.util.stream.Collector<T, ?, java.util.concurrent.ConcurrentMap<K, U>> toConcurrentMap(java.util.function.Function<? super T, ? extends K>, java.util.function.Function<? super T, ? extends U>);
-    method public static <T, K, U> java.util.stream.Collector<T, ?, java.util.concurrent.ConcurrentMap<K, U>> toConcurrentMap(java.util.function.Function<? super T, ? extends K>, java.util.function.Function<? super T, ? extends U>, java.util.function.BinaryOperator<U>);
-    method public static <T, K, U, M extends java.util.concurrent.ConcurrentMap<K, U>> java.util.stream.Collector<T, ?, M> toConcurrentMap(java.util.function.Function<? super T, ? extends K>, java.util.function.Function<? super T, ? extends U>, java.util.function.BinaryOperator<U>, java.util.function.Supplier<M>);
-    method public static <T> java.util.stream.Collector<T, ?, java.util.List<T>> toList();
-    method public static <T, K, U> java.util.stream.Collector<T, ?, java.util.Map<K, U>> toMap(java.util.function.Function<? super T, ? extends K>, java.util.function.Function<? super T, ? extends U>);
-    method public static <T, K, U> java.util.stream.Collector<T, ?, java.util.Map<K, U>> toMap(java.util.function.Function<? super T, ? extends K>, java.util.function.Function<? super T, ? extends U>, java.util.function.BinaryOperator<U>);
-    method public static <T, K, U, M extends java.util.Map<K, U>> java.util.stream.Collector<T, ?, M> toMap(java.util.function.Function<? super T, ? extends K>, java.util.function.Function<? super T, ? extends U>, java.util.function.BinaryOperator<U>, java.util.function.Supplier<M>);
-    method public static <T> java.util.stream.Collector<T, ?, java.util.Set<T>> toSet();
+    method public static <T> java.util.stream.Collector<T,?,java.lang.Double> averagingDouble(java.util.function.ToDoubleFunction<? super T>);
+    method public static <T> java.util.stream.Collector<T,?,java.lang.Double> averagingInt(java.util.function.ToIntFunction<? super T>);
+    method public static <T> java.util.stream.Collector<T,?,java.lang.Double> averagingLong(java.util.function.ToLongFunction<? super T>);
+    method public static <T, A, R, RR> java.util.stream.Collector<T,A,RR> collectingAndThen(java.util.stream.Collector<T,A,R>, java.util.function.Function<R,RR>);
+    method public static <T> java.util.stream.Collector<T,?,java.lang.Long> counting();
+    method public static <T, K> java.util.stream.Collector<T,?,java.util.Map<K,java.util.List<T>>> groupingBy(java.util.function.Function<? super T,? extends K>);
+    method public static <T, K, A, D> java.util.stream.Collector<T,?,java.util.Map<K,D>> groupingBy(java.util.function.Function<? super T,? extends K>, java.util.stream.Collector<? super T,A,D>);
+    method public static <T, K, D, A, M extends java.util.Map<K, D>> java.util.stream.Collector<T,?,M> groupingBy(java.util.function.Function<? super T,? extends K>, java.util.function.Supplier<M>, java.util.stream.Collector<? super T,A,D>);
+    method public static <T, K> java.util.stream.Collector<T,?,java.util.concurrent.ConcurrentMap<K,java.util.List<T>>> groupingByConcurrent(java.util.function.Function<? super T,? extends K>);
+    method public static <T, K, A, D> java.util.stream.Collector<T,?,java.util.concurrent.ConcurrentMap<K,D>> groupingByConcurrent(java.util.function.Function<? super T,? extends K>, java.util.stream.Collector<? super T,A,D>);
+    method public static <T, K, A, D, M extends java.util.concurrent.ConcurrentMap<K, D>> java.util.stream.Collector<T,?,M> groupingByConcurrent(java.util.function.Function<? super T,? extends K>, java.util.function.Supplier<M>, java.util.stream.Collector<? super T,A,D>);
+    method public static java.util.stream.Collector<java.lang.CharSequence,?,java.lang.String> joining();
+    method public static java.util.stream.Collector<java.lang.CharSequence,?,java.lang.String> joining(CharSequence);
+    method public static java.util.stream.Collector<java.lang.CharSequence,?,java.lang.String> joining(CharSequence, CharSequence, CharSequence);
+    method public static <T, U, A, R> java.util.stream.Collector<T,?,R> mapping(java.util.function.Function<? super T,? extends U>, java.util.stream.Collector<? super U,A,R>);
+    method public static <T> java.util.stream.Collector<T,?,java.util.Optional<T>> maxBy(java.util.Comparator<? super T>);
+    method public static <T> java.util.stream.Collector<T,?,java.util.Optional<T>> minBy(java.util.Comparator<? super T>);
+    method public static <T> java.util.stream.Collector<T,?,java.util.Map<java.lang.Boolean,java.util.List<T>>> partitioningBy(java.util.function.Predicate<? super T>);
+    method public static <T, D, A> java.util.stream.Collector<T,?,java.util.Map<java.lang.Boolean,D>> partitioningBy(java.util.function.Predicate<? super T>, java.util.stream.Collector<? super T,A,D>);
+    method public static <T> java.util.stream.Collector<T,?,T> reducing(T, java.util.function.BinaryOperator<T>);
+    method public static <T> java.util.stream.Collector<T,?,java.util.Optional<T>> reducing(java.util.function.BinaryOperator<T>);
+    method public static <T, U> java.util.stream.Collector<T,?,U> reducing(U, java.util.function.Function<? super T,? extends U>, java.util.function.BinaryOperator<U>);
+    method public static <T> java.util.stream.Collector<T,?,java.util.DoubleSummaryStatistics> summarizingDouble(java.util.function.ToDoubleFunction<? super T>);
+    method public static <T> java.util.stream.Collector<T,?,java.util.IntSummaryStatistics> summarizingInt(java.util.function.ToIntFunction<? super T>);
+    method public static <T> java.util.stream.Collector<T,?,java.util.LongSummaryStatistics> summarizingLong(java.util.function.ToLongFunction<? super T>);
+    method public static <T> java.util.stream.Collector<T,?,java.lang.Double> summingDouble(java.util.function.ToDoubleFunction<? super T>);
+    method public static <T> java.util.stream.Collector<T,?,java.lang.Integer> summingInt(java.util.function.ToIntFunction<? super T>);
+    method public static <T> java.util.stream.Collector<T,?,java.lang.Long> summingLong(java.util.function.ToLongFunction<? super T>);
+    method public static <T, C extends java.util.Collection<T>> java.util.stream.Collector<T,?,C> toCollection(java.util.function.Supplier<C>);
+    method public static <T, K, U> java.util.stream.Collector<T,?,java.util.concurrent.ConcurrentMap<K,U>> toConcurrentMap(java.util.function.Function<? super T,? extends K>, java.util.function.Function<? super T,? extends U>);
+    method public static <T, K, U> java.util.stream.Collector<T,?,java.util.concurrent.ConcurrentMap<K,U>> toConcurrentMap(java.util.function.Function<? super T,? extends K>, java.util.function.Function<? super T,? extends U>, java.util.function.BinaryOperator<U>);
+    method public static <T, K, U, M extends java.util.concurrent.ConcurrentMap<K, U>> java.util.stream.Collector<T,?,M> toConcurrentMap(java.util.function.Function<? super T,? extends K>, java.util.function.Function<? super T,? extends U>, java.util.function.BinaryOperator<U>, java.util.function.Supplier<M>);
+    method public static <T> java.util.stream.Collector<T,?,java.util.List<T>> toList();
+    method public static <T, K, U> java.util.stream.Collector<T,?,java.util.Map<K,U>> toMap(java.util.function.Function<? super T,? extends K>, java.util.function.Function<? super T,? extends U>);
+    method public static <T, K, U> java.util.stream.Collector<T,?,java.util.Map<K,U>> toMap(java.util.function.Function<? super T,? extends K>, java.util.function.Function<? super T,? extends U>, java.util.function.BinaryOperator<U>);
+    method public static <T, K, U, M extends java.util.Map<K, U>> java.util.stream.Collector<T,?,M> toMap(java.util.function.Function<? super T,? extends K>, java.util.function.Function<? super T,? extends U>, java.util.function.BinaryOperator<U>, java.util.function.Supplier<M>);
+    method public static <T> java.util.stream.Collector<T,?,java.util.Set<T>> toSet();
   }
 
-  public abstract interface DoubleStream implements java.util.stream.BaseStream {
-    method public abstract boolean allMatch(java.util.function.DoublePredicate);
-    method public abstract boolean anyMatch(java.util.function.DoublePredicate);
-    method public abstract java.util.OptionalDouble average();
-    method public abstract java.util.stream.Stream<java.lang.Double> boxed();
+  public interface DoubleStream extends java.util.stream.BaseStream<java.lang.Double,java.util.stream.DoubleStream> {
+    method public boolean allMatch(java.util.function.DoublePredicate);
+    method public boolean anyMatch(java.util.function.DoublePredicate);
+    method public java.util.OptionalDouble average();
+    method public java.util.stream.Stream<java.lang.Double> boxed();
     method public static java.util.stream.DoubleStream.Builder builder();
-    method public abstract <R> R collect(java.util.function.Supplier<R>, java.util.function.ObjDoubleConsumer<R>, java.util.function.BiConsumer<R, R>);
+    method public <R> R collect(java.util.function.Supplier<R>, java.util.function.ObjDoubleConsumer<R>, java.util.function.BiConsumer<R,R>);
     method public static java.util.stream.DoubleStream concat(java.util.stream.DoubleStream, java.util.stream.DoubleStream);
-    method public abstract long count();
-    method public abstract java.util.stream.DoubleStream distinct();
+    method public long count();
+    method public java.util.stream.DoubleStream distinct();
     method public static java.util.stream.DoubleStream empty();
-    method public abstract java.util.stream.DoubleStream filter(java.util.function.DoublePredicate);
-    method public abstract java.util.OptionalDouble findAny();
-    method public abstract java.util.OptionalDouble findFirst();
-    method public abstract java.util.stream.DoubleStream flatMap(java.util.function.DoubleFunction<? extends java.util.stream.DoubleStream>);
-    method public abstract void forEach(java.util.function.DoubleConsumer);
-    method public abstract void forEachOrdered(java.util.function.DoubleConsumer);
+    method public java.util.stream.DoubleStream filter(java.util.function.DoublePredicate);
+    method public java.util.OptionalDouble findAny();
+    method public java.util.OptionalDouble findFirst();
+    method public java.util.stream.DoubleStream flatMap(java.util.function.DoubleFunction<? extends java.util.stream.DoubleStream>);
+    method public void forEach(java.util.function.DoubleConsumer);
+    method public void forEachOrdered(java.util.function.DoubleConsumer);
     method public static java.util.stream.DoubleStream generate(java.util.function.DoubleSupplier);
     method public static java.util.stream.DoubleStream iterate(double, java.util.function.DoubleUnaryOperator);
-    method public abstract java.util.PrimitiveIterator.OfDouble iterator();
-    method public abstract java.util.stream.DoubleStream limit(long);
-    method public abstract java.util.stream.DoubleStream map(java.util.function.DoubleUnaryOperator);
-    method public abstract java.util.stream.IntStream mapToInt(java.util.function.DoubleToIntFunction);
-    method public abstract java.util.stream.LongStream mapToLong(java.util.function.DoubleToLongFunction);
-    method public abstract <U> java.util.stream.Stream<U> mapToObj(java.util.function.DoubleFunction<? extends U>);
-    method public abstract java.util.OptionalDouble max();
-    method public abstract java.util.OptionalDouble min();
-    method public abstract boolean noneMatch(java.util.function.DoublePredicate);
+    method public java.util.PrimitiveIterator.OfDouble iterator();
+    method public java.util.stream.DoubleStream limit(long);
+    method public java.util.stream.DoubleStream map(java.util.function.DoubleUnaryOperator);
+    method public java.util.stream.IntStream mapToInt(java.util.function.DoubleToIntFunction);
+    method public java.util.stream.LongStream mapToLong(java.util.function.DoubleToLongFunction);
+    method public <U> java.util.stream.Stream<U> mapToObj(java.util.function.DoubleFunction<? extends U>);
+    method public java.util.OptionalDouble max();
+    method public java.util.OptionalDouble min();
+    method public boolean noneMatch(java.util.function.DoublePredicate);
     method public static java.util.stream.DoubleStream of(double);
     method public static java.util.stream.DoubleStream of(double...);
-    method public abstract java.util.stream.DoubleStream parallel();
-    method public abstract java.util.stream.DoubleStream peek(java.util.function.DoubleConsumer);
-    method public abstract double reduce(double, java.util.function.DoubleBinaryOperator);
-    method public abstract java.util.OptionalDouble reduce(java.util.function.DoubleBinaryOperator);
-    method public abstract java.util.stream.DoubleStream sequential();
-    method public abstract java.util.stream.DoubleStream skip(long);
-    method public abstract java.util.stream.DoubleStream sorted();
-    method public abstract java.util.Spliterator.OfDouble spliterator();
-    method public abstract double sum();
-    method public abstract java.util.DoubleSummaryStatistics summaryStatistics();
-    method public abstract double[] toArray();
+    method public java.util.stream.DoubleStream parallel();
+    method public java.util.stream.DoubleStream peek(java.util.function.DoubleConsumer);
+    method public double reduce(double, java.util.function.DoubleBinaryOperator);
+    method public java.util.OptionalDouble reduce(java.util.function.DoubleBinaryOperator);
+    method public java.util.stream.DoubleStream sequential();
+    method public java.util.stream.DoubleStream skip(long);
+    method public java.util.stream.DoubleStream sorted();
+    method public java.util.Spliterator.OfDouble spliterator();
+    method public double sum();
+    method public java.util.DoubleSummaryStatistics summaryStatistics();
+    method public double[] toArray();
   }
 
-  public static abstract interface DoubleStream.Builder implements java.util.function.DoubleConsumer {
+  public static interface DoubleStream.Builder extends java.util.function.DoubleConsumer {
     method public default java.util.stream.DoubleStream.Builder add(double);
-    method public abstract java.util.stream.DoubleStream build();
+    method public java.util.stream.DoubleStream build();
   }
 
-  public abstract interface IntStream implements java.util.stream.BaseStream {
-    method public abstract boolean allMatch(java.util.function.IntPredicate);
-    method public abstract boolean anyMatch(java.util.function.IntPredicate);
-    method public abstract java.util.stream.DoubleStream asDoubleStream();
-    method public abstract java.util.stream.LongStream asLongStream();
-    method public abstract java.util.OptionalDouble average();
-    method public abstract java.util.stream.Stream<java.lang.Integer> boxed();
+  public interface IntStream extends java.util.stream.BaseStream<java.lang.Integer,java.util.stream.IntStream> {
+    method public boolean allMatch(java.util.function.IntPredicate);
+    method public boolean anyMatch(java.util.function.IntPredicate);
+    method public java.util.stream.DoubleStream asDoubleStream();
+    method public java.util.stream.LongStream asLongStream();
+    method public java.util.OptionalDouble average();
+    method public java.util.stream.Stream<java.lang.Integer> boxed();
     method public static java.util.stream.IntStream.Builder builder();
-    method public abstract <R> R collect(java.util.function.Supplier<R>, java.util.function.ObjIntConsumer<R>, java.util.function.BiConsumer<R, R>);
+    method public <R> R collect(java.util.function.Supplier<R>, java.util.function.ObjIntConsumer<R>, java.util.function.BiConsumer<R,R>);
     method public static java.util.stream.IntStream concat(java.util.stream.IntStream, java.util.stream.IntStream);
-    method public abstract long count();
-    method public abstract java.util.stream.IntStream distinct();
+    method public long count();
+    method public java.util.stream.IntStream distinct();
     method public static java.util.stream.IntStream empty();
-    method public abstract java.util.stream.IntStream filter(java.util.function.IntPredicate);
-    method public abstract java.util.OptionalInt findAny();
-    method public abstract java.util.OptionalInt findFirst();
-    method public abstract java.util.stream.IntStream flatMap(java.util.function.IntFunction<? extends java.util.stream.IntStream>);
-    method public abstract void forEach(java.util.function.IntConsumer);
-    method public abstract void forEachOrdered(java.util.function.IntConsumer);
+    method public java.util.stream.IntStream filter(java.util.function.IntPredicate);
+    method public java.util.OptionalInt findAny();
+    method public java.util.OptionalInt findFirst();
+    method public java.util.stream.IntStream flatMap(java.util.function.IntFunction<? extends java.util.stream.IntStream>);
+    method public void forEach(java.util.function.IntConsumer);
+    method public void forEachOrdered(java.util.function.IntConsumer);
     method public static java.util.stream.IntStream generate(java.util.function.IntSupplier);
     method public static java.util.stream.IntStream iterate(int, java.util.function.IntUnaryOperator);
-    method public abstract java.util.PrimitiveIterator.OfInt iterator();
-    method public abstract java.util.stream.IntStream limit(long);
-    method public abstract java.util.stream.IntStream map(java.util.function.IntUnaryOperator);
-    method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.IntToDoubleFunction);
-    method public abstract java.util.stream.LongStream mapToLong(java.util.function.IntToLongFunction);
-    method public abstract <U> java.util.stream.Stream<U> mapToObj(java.util.function.IntFunction<? extends U>);
-    method public abstract java.util.OptionalInt max();
-    method public abstract java.util.OptionalInt min();
-    method public abstract boolean noneMatch(java.util.function.IntPredicate);
+    method public java.util.PrimitiveIterator.OfInt iterator();
+    method public java.util.stream.IntStream limit(long);
+    method public java.util.stream.IntStream map(java.util.function.IntUnaryOperator);
+    method public java.util.stream.DoubleStream mapToDouble(java.util.function.IntToDoubleFunction);
+    method public java.util.stream.LongStream mapToLong(java.util.function.IntToLongFunction);
+    method public <U> java.util.stream.Stream<U> mapToObj(java.util.function.IntFunction<? extends U>);
+    method public java.util.OptionalInt max();
+    method public java.util.OptionalInt min();
+    method public boolean noneMatch(java.util.function.IntPredicate);
     method public static java.util.stream.IntStream of(int);
     method public static java.util.stream.IntStream of(int...);
-    method public abstract java.util.stream.IntStream parallel();
-    method public abstract java.util.stream.IntStream peek(java.util.function.IntConsumer);
+    method public java.util.stream.IntStream parallel();
+    method public java.util.stream.IntStream peek(java.util.function.IntConsumer);
     method public static java.util.stream.IntStream range(int, int);
     method public static java.util.stream.IntStream rangeClosed(int, int);
-    method public abstract int reduce(int, java.util.function.IntBinaryOperator);
-    method public abstract java.util.OptionalInt reduce(java.util.function.IntBinaryOperator);
-    method public abstract java.util.stream.IntStream sequential();
-    method public abstract java.util.stream.IntStream skip(long);
-    method public abstract java.util.stream.IntStream sorted();
-    method public abstract java.util.Spliterator.OfInt spliterator();
-    method public abstract int sum();
-    method public abstract java.util.IntSummaryStatistics summaryStatistics();
-    method public abstract int[] toArray();
+    method public int reduce(int, java.util.function.IntBinaryOperator);
+    method public java.util.OptionalInt reduce(java.util.function.IntBinaryOperator);
+    method public java.util.stream.IntStream sequential();
+    method public java.util.stream.IntStream skip(long);
+    method public java.util.stream.IntStream sorted();
+    method public java.util.Spliterator.OfInt spliterator();
+    method public int sum();
+    method public java.util.IntSummaryStatistics summaryStatistics();
+    method public int[] toArray();
   }
 
-  public static abstract interface IntStream.Builder implements java.util.function.IntConsumer {
+  public static interface IntStream.Builder extends java.util.function.IntConsumer {
     method public default java.util.stream.IntStream.Builder add(int);
-    method public abstract java.util.stream.IntStream build();
+    method public java.util.stream.IntStream build();
   }
 
-  public abstract interface LongStream implements java.util.stream.BaseStream {
-    method public abstract boolean allMatch(java.util.function.LongPredicate);
-    method public abstract boolean anyMatch(java.util.function.LongPredicate);
-    method public abstract java.util.stream.DoubleStream asDoubleStream();
-    method public abstract java.util.OptionalDouble average();
-    method public abstract java.util.stream.Stream<java.lang.Long> boxed();
+  public interface LongStream extends java.util.stream.BaseStream<java.lang.Long,java.util.stream.LongStream> {
+    method public boolean allMatch(java.util.function.LongPredicate);
+    method public boolean anyMatch(java.util.function.LongPredicate);
+    method public java.util.stream.DoubleStream asDoubleStream();
+    method public java.util.OptionalDouble average();
+    method public java.util.stream.Stream<java.lang.Long> boxed();
     method public static java.util.stream.LongStream.Builder builder();
-    method public abstract <R> R collect(java.util.function.Supplier<R>, java.util.function.ObjLongConsumer<R>, java.util.function.BiConsumer<R, R>);
+    method public <R> R collect(java.util.function.Supplier<R>, java.util.function.ObjLongConsumer<R>, java.util.function.BiConsumer<R,R>);
     method public static java.util.stream.LongStream concat(java.util.stream.LongStream, java.util.stream.LongStream);
-    method public abstract long count();
-    method public abstract java.util.stream.LongStream distinct();
+    method public long count();
+    method public java.util.stream.LongStream distinct();
     method public static java.util.stream.LongStream empty();
-    method public abstract java.util.stream.LongStream filter(java.util.function.LongPredicate);
-    method public abstract java.util.OptionalLong findAny();
-    method public abstract java.util.OptionalLong findFirst();
-    method public abstract java.util.stream.LongStream flatMap(java.util.function.LongFunction<? extends java.util.stream.LongStream>);
-    method public abstract void forEach(java.util.function.LongConsumer);
-    method public abstract void forEachOrdered(java.util.function.LongConsumer);
+    method public java.util.stream.LongStream filter(java.util.function.LongPredicate);
+    method public java.util.OptionalLong findAny();
+    method public java.util.OptionalLong findFirst();
+    method public java.util.stream.LongStream flatMap(java.util.function.LongFunction<? extends java.util.stream.LongStream>);
+    method public void forEach(java.util.function.LongConsumer);
+    method public void forEachOrdered(java.util.function.LongConsumer);
     method public static java.util.stream.LongStream generate(java.util.function.LongSupplier);
     method public static java.util.stream.LongStream iterate(long, java.util.function.LongUnaryOperator);
-    method public abstract java.util.PrimitiveIterator.OfLong iterator();
-    method public abstract java.util.stream.LongStream limit(long);
-    method public abstract java.util.stream.LongStream map(java.util.function.LongUnaryOperator);
-    method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.LongToDoubleFunction);
-    method public abstract java.util.stream.IntStream mapToInt(java.util.function.LongToIntFunction);
-    method public abstract <U> java.util.stream.Stream<U> mapToObj(java.util.function.LongFunction<? extends U>);
-    method public abstract java.util.OptionalLong max();
-    method public abstract java.util.OptionalLong min();
-    method public abstract boolean noneMatch(java.util.function.LongPredicate);
+    method public java.util.PrimitiveIterator.OfLong iterator();
+    method public java.util.stream.LongStream limit(long);
+    method public java.util.stream.LongStream map(java.util.function.LongUnaryOperator);
+    method public java.util.stream.DoubleStream mapToDouble(java.util.function.LongToDoubleFunction);
+    method public java.util.stream.IntStream mapToInt(java.util.function.LongToIntFunction);
+    method public <U> java.util.stream.Stream<U> mapToObj(java.util.function.LongFunction<? extends U>);
+    method public java.util.OptionalLong max();
+    method public java.util.OptionalLong min();
+    method public boolean noneMatch(java.util.function.LongPredicate);
     method public static java.util.stream.LongStream of(long);
     method public static java.util.stream.LongStream of(long...);
-    method public abstract java.util.stream.LongStream parallel();
-    method public abstract java.util.stream.LongStream peek(java.util.function.LongConsumer);
+    method public java.util.stream.LongStream parallel();
+    method public java.util.stream.LongStream peek(java.util.function.LongConsumer);
     method public static java.util.stream.LongStream range(long, long);
     method public static java.util.stream.LongStream rangeClosed(long, long);
-    method public abstract long reduce(long, java.util.function.LongBinaryOperator);
-    method public abstract java.util.OptionalLong reduce(java.util.function.LongBinaryOperator);
-    method public abstract java.util.stream.LongStream sequential();
-    method public abstract java.util.stream.LongStream skip(long);
-    method public abstract java.util.stream.LongStream sorted();
-    method public abstract java.util.Spliterator.OfLong spliterator();
-    method public abstract long sum();
-    method public abstract java.util.LongSummaryStatistics summaryStatistics();
-    method public abstract long[] toArray();
+    method public long reduce(long, java.util.function.LongBinaryOperator);
+    method public java.util.OptionalLong reduce(java.util.function.LongBinaryOperator);
+    method public java.util.stream.LongStream sequential();
+    method public java.util.stream.LongStream skip(long);
+    method public java.util.stream.LongStream sorted();
+    method public java.util.Spliterator.OfLong spliterator();
+    method public long sum();
+    method public java.util.LongSummaryStatistics summaryStatistics();
+    method public long[] toArray();
   }
 
-  public static abstract interface LongStream.Builder implements java.util.function.LongConsumer {
+  public static interface LongStream.Builder extends java.util.function.LongConsumer {
     method public default java.util.stream.LongStream.Builder add(long);
-    method public abstract java.util.stream.LongStream build();
+    method public java.util.stream.LongStream build();
   }
 
-  public abstract interface Stream<T> implements java.util.stream.BaseStream {
-    method public abstract boolean allMatch(java.util.function.Predicate<? super T>);
-    method public abstract boolean anyMatch(java.util.function.Predicate<? super T>);
+  public interface Stream<T> extends java.util.stream.BaseStream<T,java.util.stream.Stream<T>> {
+    method public boolean allMatch(java.util.function.Predicate<? super T>);
+    method public boolean anyMatch(java.util.function.Predicate<? super T>);
     method public static <T> java.util.stream.Stream.Builder<T> builder();
-    method public abstract <R> R collect(java.util.function.Supplier<R>, java.util.function.BiConsumer<R, ? super T>, java.util.function.BiConsumer<R, R>);
-    method public abstract <R, A> R collect(java.util.stream.Collector<? super T, A, R>);
+    method public <R> R collect(java.util.function.Supplier<R>, java.util.function.BiConsumer<R,? super T>, java.util.function.BiConsumer<R,R>);
+    method public <R, A> R collect(java.util.stream.Collector<? super T,A,R>);
     method public static <T> java.util.stream.Stream<T> concat(java.util.stream.Stream<? extends T>, java.util.stream.Stream<? extends T>);
-    method public abstract long count();
-    method public abstract java.util.stream.Stream<T> distinct();
+    method public long count();
+    method public java.util.stream.Stream<T> distinct();
     method public static <T> java.util.stream.Stream<T> empty();
-    method public abstract java.util.stream.Stream<T> filter(java.util.function.Predicate<? super T>);
-    method public abstract java.util.Optional<T> findAny();
-    method public abstract java.util.Optional<T> findFirst();
-    method public abstract <R> java.util.stream.Stream<R> flatMap(java.util.function.Function<? super T, ? extends java.util.stream.Stream<? extends R>>);
-    method public abstract java.util.stream.DoubleStream flatMapToDouble(java.util.function.Function<? super T, ? extends java.util.stream.DoubleStream>);
-    method public abstract java.util.stream.IntStream flatMapToInt(java.util.function.Function<? super T, ? extends java.util.stream.IntStream>);
-    method public abstract java.util.stream.LongStream flatMapToLong(java.util.function.Function<? super T, ? extends java.util.stream.LongStream>);
-    method public abstract void forEach(java.util.function.Consumer<? super T>);
-    method public abstract void forEachOrdered(java.util.function.Consumer<? super T>);
+    method public java.util.stream.Stream<T> filter(java.util.function.Predicate<? super T>);
+    method public java.util.Optional<T> findAny();
+    method public java.util.Optional<T> findFirst();
+    method public <R> java.util.stream.Stream<R> flatMap(java.util.function.Function<? super T,? extends java.util.stream.Stream<? extends R>>);
+    method public java.util.stream.DoubleStream flatMapToDouble(java.util.function.Function<? super T,? extends java.util.stream.DoubleStream>);
+    method public java.util.stream.IntStream flatMapToInt(java.util.function.Function<? super T,? extends java.util.stream.IntStream>);
+    method public java.util.stream.LongStream flatMapToLong(java.util.function.Function<? super T,? extends java.util.stream.LongStream>);
+    method public void forEach(java.util.function.Consumer<? super T>);
+    method public void forEachOrdered(java.util.function.Consumer<? super T>);
     method public static <T> java.util.stream.Stream<T> generate(java.util.function.Supplier<T>);
     method public static <T> java.util.stream.Stream<T> iterate(T, java.util.function.UnaryOperator<T>);
-    method public abstract java.util.stream.Stream<T> limit(long);
-    method public abstract <R> java.util.stream.Stream<R> map(java.util.function.Function<? super T, ? extends R>);
-    method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.ToDoubleFunction<? super T>);
-    method public abstract java.util.stream.IntStream mapToInt(java.util.function.ToIntFunction<? super T>);
-    method public abstract java.util.stream.LongStream mapToLong(java.util.function.ToLongFunction<? super T>);
-    method public abstract java.util.Optional<T> max(java.util.Comparator<? super T>);
-    method public abstract java.util.Optional<T> min(java.util.Comparator<? super T>);
-    method public abstract boolean noneMatch(java.util.function.Predicate<? super T>);
+    method public java.util.stream.Stream<T> limit(long);
+    method public <R> java.util.stream.Stream<R> map(java.util.function.Function<? super T,? extends R>);
+    method public java.util.stream.DoubleStream mapToDouble(java.util.function.ToDoubleFunction<? super T>);
+    method public java.util.stream.IntStream mapToInt(java.util.function.ToIntFunction<? super T>);
+    method public java.util.stream.LongStream mapToLong(java.util.function.ToLongFunction<? super T>);
+    method public java.util.Optional<T> max(java.util.Comparator<? super T>);
+    method public java.util.Optional<T> min(java.util.Comparator<? super T>);
+    method public boolean noneMatch(java.util.function.Predicate<? super T>);
     method public static <T> java.util.stream.Stream<T> of(T);
-    method public static <T> java.util.stream.Stream<T> of(T...);
-    method public abstract java.util.stream.Stream<T> peek(java.util.function.Consumer<? super T>);
-    method public abstract T reduce(T, java.util.function.BinaryOperator<T>);
-    method public abstract java.util.Optional<T> reduce(java.util.function.BinaryOperator<T>);
-    method public abstract <U> U reduce(U, java.util.function.BiFunction<U, ? super T, U>, java.util.function.BinaryOperator<U>);
-    method public abstract java.util.stream.Stream<T> skip(long);
-    method public abstract java.util.stream.Stream<T> sorted();
-    method public abstract java.util.stream.Stream<T> sorted(java.util.Comparator<? super T>);
-    method public abstract java.lang.Object[] toArray();
-    method public abstract <A> A[] toArray(java.util.function.IntFunction<A[]>);
+    method @java.lang.SafeVarargs public static <T> java.util.stream.Stream<T> of(T...);
+    method public java.util.stream.Stream<T> peek(java.util.function.Consumer<? super T>);
+    method public T reduce(T, java.util.function.BinaryOperator<T>);
+    method public java.util.Optional<T> reduce(java.util.function.BinaryOperator<T>);
+    method public <U> U reduce(U, java.util.function.BiFunction<U,? super T,U>, java.util.function.BinaryOperator<U>);
+    method public java.util.stream.Stream<T> skip(long);
+    method public java.util.stream.Stream<T> sorted();
+    method public java.util.stream.Stream<T> sorted(java.util.Comparator<? super T>);
+    method public Object[] toArray();
+    method public <A> A[] toArray(java.util.function.IntFunction<A[]>);
   }
 
-  public static abstract interface Stream.Builder<T> implements java.util.function.Consumer {
+  public static interface Stream.Builder<T> extends java.util.function.Consumer<T> {
     method public default java.util.stream.Stream.Builder<T> add(T);
-    method public abstract java.util.stream.Stream<T> build();
+    method public java.util.stream.Stream<T> build();
   }
 
   public final class StreamSupport {
@@ -73536,16 +73297,16 @@
     method public java.util.zip.Checksum getChecksum();
   }
 
-  public abstract interface Checksum {
-    method public abstract long getValue();
-    method public abstract void reset();
-    method public abstract void update(int);
-    method public abstract void update(byte[], int, int);
+  public interface Checksum {
+    method public long getValue();
+    method public void reset();
+    method public void update(int);
+    method public void update(byte[], int, int);
   }
 
   public class DataFormatException extends java.lang.Exception {
     ctor public DataFormatException();
-    ctor public DataFormatException(java.lang.String);
+    ctor public DataFormatException(String);
   }
 
   public class Deflater {
@@ -73589,8 +73350,6 @@
     ctor public DeflaterInputStream(java.io.InputStream);
     ctor public DeflaterInputStream(java.io.InputStream, java.util.zip.Deflater);
     ctor public DeflaterInputStream(java.io.InputStream, java.util.zip.Deflater, int);
-    method public void mark(int);
-    method public void reset() throws java.io.IOException;
     field protected final byte[] buf;
     field protected final java.util.zip.Deflater def;
   }
@@ -73621,7 +73380,6 @@
     ctor public GZIPOutputStream(java.io.OutputStream, int, boolean) throws java.io.IOException;
     ctor public GZIPOutputStream(java.io.OutputStream) throws java.io.IOException;
     ctor public GZIPOutputStream(java.io.OutputStream, boolean) throws java.io.IOException;
-    method public synchronized void write(byte[], int, int) throws java.io.IOException;
     field protected java.util.zip.CRC32 crc;
   }
 
@@ -73654,7 +73412,7 @@
     ctor public InflaterInputStream(java.io.InputStream);
     method protected void fill() throws java.io.IOException;
     field protected byte[] buf;
-    field protected deprecated boolean closed;
+    field @Deprecated protected boolean closed;
     field protected java.util.zip.Inflater inf;
     field protected int len;
   }
@@ -73669,10 +73427,10 @@
   }
 
   public class ZipEntry implements java.lang.Cloneable {
-    ctor public ZipEntry(java.lang.String);
+    ctor public ZipEntry(String);
     ctor public ZipEntry(java.util.zip.ZipEntry);
-    method public java.lang.Object clone();
-    method public java.lang.String getComment();
+    method public Object clone();
+    method public String getComment();
     method public long getCompressedSize();
     method public long getCrc();
     method public java.nio.file.attribute.FileTime getCreationTime();
@@ -73680,11 +73438,11 @@
     method public java.nio.file.attribute.FileTime getLastAccessTime();
     method public java.nio.file.attribute.FileTime getLastModifiedTime();
     method public int getMethod();
-    method public java.lang.String getName();
+    method public String getName();
     method public long getSize();
     method public long getTime();
     method public boolean isDirectory();
-    method public void setComment(java.lang.String);
+    method public void setComment(String);
     method public void setCompressedSize(long);
     method public void setCrc(long);
     method public java.util.zip.ZipEntry setCreationTime(java.nio.file.attribute.FileTime);
@@ -73739,28 +73497,28 @@
   }
 
   public class ZipError extends java.lang.InternalError {
-    ctor public ZipError(java.lang.String);
+    ctor public ZipError(String);
   }
 
   public class ZipException extends java.io.IOException {
     ctor public ZipException();
-    ctor public ZipException(java.lang.String);
+    ctor public ZipException(String);
   }
 
   public class ZipFile implements java.io.Closeable {
-    ctor public ZipFile(java.lang.String) throws java.io.IOException;
+    ctor public ZipFile(String) throws java.io.IOException;
     ctor public ZipFile(java.io.File, int) throws java.io.IOException;
     ctor public ZipFile(java.io.File) throws java.io.IOException, java.util.zip.ZipException;
     ctor public ZipFile(java.io.File, int, java.nio.charset.Charset) throws java.io.IOException;
-    ctor public ZipFile(java.lang.String, java.nio.charset.Charset) throws java.io.IOException;
+    ctor public ZipFile(String, java.nio.charset.Charset) throws java.io.IOException;
     ctor public ZipFile(java.io.File, java.nio.charset.Charset) throws java.io.IOException;
     method public void close() throws java.io.IOException;
     method public java.util.Enumeration<? extends java.util.zip.ZipEntry> entries();
     method protected void finalize() throws java.io.IOException;
-    method public java.lang.String getComment();
-    method public java.util.zip.ZipEntry getEntry(java.lang.String);
+    method public String getComment();
+    method public java.util.zip.ZipEntry getEntry(String);
     method public java.io.InputStream getInputStream(java.util.zip.ZipEntry) throws java.io.IOException;
-    method public java.lang.String getName();
+    method public String getName();
     method public int size();
     method public java.util.stream.Stream<? extends java.util.zip.ZipEntry> stream();
     field public static final int CENATT = 36; // 0x24
@@ -73811,7 +73569,7 @@
     ctor public ZipInputStream(java.io.InputStream);
     ctor public ZipInputStream(java.io.InputStream, java.nio.charset.Charset);
     method public void closeEntry() throws java.io.IOException;
-    method protected java.util.zip.ZipEntry createZipEntry(java.lang.String);
+    method protected java.util.zip.ZipEntry createZipEntry(String);
     method public java.util.zip.ZipEntry getNextEntry() throws java.io.IOException;
     field public static final int CENATT = 36; // 0x24
     field public static final int CENATX = 38; // 0x26
@@ -73860,10 +73618,9 @@
     ctor public ZipOutputStream(java.io.OutputStream, java.nio.charset.Charset);
     method public void closeEntry() throws java.io.IOException;
     method public void putNextEntry(java.util.zip.ZipEntry) throws java.io.IOException;
-    method public void setComment(java.lang.String);
+    method public void setComment(String);
     method public void setLevel(int);
     method public void setMethod(int);
-    method public synchronized void write(byte[], int, int) throws java.io.IOException;
     field public static final int CENATT = 36; // 0x24
     field public static final int CENATX = 38; // 0x26
     field public static final int CENCOM = 32; // 0x20
@@ -73914,16 +73671,16 @@
 
   public class AEADBadTagException extends javax.crypto.BadPaddingException {
     ctor public AEADBadTagException();
-    ctor public AEADBadTagException(java.lang.String);
+    ctor public AEADBadTagException(String);
   }
 
   public class BadPaddingException extends java.security.GeneralSecurityException {
     ctor public BadPaddingException();
-    ctor public BadPaddingException(java.lang.String);
+    ctor public BadPaddingException(String);
   }
 
   public class Cipher {
-    ctor protected Cipher(javax.crypto.CipherSpi, java.security.Provider, java.lang.String);
+    ctor protected Cipher(javax.crypto.CipherSpi, java.security.Provider, String);
     method public final byte[] doFinal() throws javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException;
     method public final int doFinal(byte[], int) throws javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException, javax.crypto.ShortBufferException;
     method public final byte[] doFinal(byte[]) throws javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException;
@@ -73931,15 +73688,15 @@
     method public final int doFinal(byte[], int, int, byte[]) throws javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException, javax.crypto.ShortBufferException;
     method public final int doFinal(byte[], int, int, byte[], int) throws javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException, javax.crypto.ShortBufferException;
     method public final int doFinal(java.nio.ByteBuffer, java.nio.ByteBuffer) throws javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException, javax.crypto.ShortBufferException;
-    method public final java.lang.String getAlgorithm();
+    method public final String getAlgorithm();
     method public final int getBlockSize();
     method public final javax.crypto.ExemptionMechanism getExemptionMechanism();
     method public final byte[] getIV();
-    method public static final javax.crypto.Cipher getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException;
-    method public static final javax.crypto.Cipher getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException, java.security.NoSuchProviderException;
-    method public static final javax.crypto.Cipher getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException;
-    method public static final int getMaxAllowedKeyLength(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static final java.security.spec.AlgorithmParameterSpec getMaxAllowedParameterSpec(java.lang.String) throws java.security.NoSuchAlgorithmException;
+    method public static final javax.crypto.Cipher getInstance(String) throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException;
+    method public static final javax.crypto.Cipher getInstance(String, String) throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException, java.security.NoSuchProviderException;
+    method public static final javax.crypto.Cipher getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException;
+    method public static final int getMaxAllowedKeyLength(String) throws java.security.NoSuchAlgorithmException;
+    method public static final java.security.spec.AlgorithmParameterSpec getMaxAllowedParameterSpec(String) throws java.security.NoSuchAlgorithmException;
     method public final int getOutputSize(int);
     method public final java.security.AlgorithmParameters getParameters();
     method public final java.security.Provider getProvider();
@@ -73951,7 +73708,7 @@
     method public final void init(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method public final void init(int, java.security.cert.Certificate) throws java.security.InvalidKeyException;
     method public final void init(int, java.security.cert.Certificate, java.security.SecureRandom) throws java.security.InvalidKeyException;
-    method public final java.security.Key unwrap(byte[], java.lang.String, int) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
+    method public final java.security.Key unwrap(byte[], String, int) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
     method public final byte[] update(byte[]);
     method public final byte[] update(byte[], int, int);
     method public final int update(byte[], int, int, byte[]) throws javax.crypto.ShortBufferException;
@@ -73993,9 +73750,9 @@
     method protected abstract void engineInit(int, java.security.Key, java.security.SecureRandom) throws java.security.InvalidKeyException;
     method protected abstract void engineInit(int, java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
     method protected abstract void engineInit(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
-    method protected abstract void engineSetMode(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method protected abstract void engineSetPadding(java.lang.String) throws javax.crypto.NoSuchPaddingException;
-    method protected java.security.Key engineUnwrap(byte[], java.lang.String, int) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
+    method protected abstract void engineSetMode(String) throws java.security.NoSuchAlgorithmException;
+    method protected abstract void engineSetPadding(String) throws javax.crypto.NoSuchPaddingException;
+    method protected java.security.Key engineUnwrap(byte[], String, int) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
     method protected abstract byte[] engineUpdate(byte[], int, int);
     method protected abstract int engineUpdate(byte[], int, int, byte[], int) throws javax.crypto.ShortBufferException;
     method protected int engineUpdate(java.nio.ByteBuffer, java.nio.ByteBuffer) throws javax.crypto.ShortBufferException;
@@ -74006,27 +73763,27 @@
 
   public class EncryptedPrivateKeyInfo {
     ctor public EncryptedPrivateKeyInfo(byte[]) throws java.io.IOException;
-    ctor public EncryptedPrivateKeyInfo(java.lang.String, byte[]) throws java.security.NoSuchAlgorithmException;
+    ctor public EncryptedPrivateKeyInfo(String, byte[]) throws java.security.NoSuchAlgorithmException;
     ctor public EncryptedPrivateKeyInfo(java.security.AlgorithmParameters, byte[]) throws java.security.NoSuchAlgorithmException;
-    method public java.lang.String getAlgName();
+    method public String getAlgName();
     method public java.security.AlgorithmParameters getAlgParameters();
     method public byte[] getEncoded() throws java.io.IOException;
     method public byte[] getEncryptedData();
     method public java.security.spec.PKCS8EncodedKeySpec getKeySpec(javax.crypto.Cipher) throws java.security.spec.InvalidKeySpecException;
     method public java.security.spec.PKCS8EncodedKeySpec getKeySpec(java.security.Key) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
-    method public java.security.spec.PKCS8EncodedKeySpec getKeySpec(java.security.Key, java.lang.String) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public java.security.spec.PKCS8EncodedKeySpec getKeySpec(java.security.Key, String) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
     method public java.security.spec.PKCS8EncodedKeySpec getKeySpec(java.security.Key, java.security.Provider) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
   }
 
   public class ExemptionMechanism {
-    ctor protected ExemptionMechanism(javax.crypto.ExemptionMechanismSpi, java.security.Provider, java.lang.String);
+    ctor protected ExemptionMechanism(javax.crypto.ExemptionMechanismSpi, java.security.Provider, String);
     method public final byte[] genExemptionBlob() throws javax.crypto.ExemptionMechanismException, java.lang.IllegalStateException;
     method public final int genExemptionBlob(byte[]) throws javax.crypto.ExemptionMechanismException, java.lang.IllegalStateException, javax.crypto.ShortBufferException;
     method public final int genExemptionBlob(byte[], int) throws javax.crypto.ExemptionMechanismException, java.lang.IllegalStateException, javax.crypto.ShortBufferException;
-    method public static final javax.crypto.ExemptionMechanism getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static final javax.crypto.ExemptionMechanism getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static final javax.crypto.ExemptionMechanism getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
-    method public final java.lang.String getName();
+    method public static final javax.crypto.ExemptionMechanism getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static final javax.crypto.ExemptionMechanism getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static final javax.crypto.ExemptionMechanism getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public final String getName();
     method public final int getOutputSize(int) throws java.lang.IllegalStateException;
     method public final java.security.Provider getProvider();
     method public final void init(java.security.Key) throws javax.crypto.ExemptionMechanismException, java.security.InvalidKeyException;
@@ -74037,7 +73794,7 @@
 
   public class ExemptionMechanismException extends java.security.GeneralSecurityException {
     ctor public ExemptionMechanismException();
-    ctor public ExemptionMechanismException(java.lang.String);
+    ctor public ExemptionMechanismException(String);
   }
 
   public abstract class ExemptionMechanismSpi {
@@ -74052,19 +73809,19 @@
 
   public class IllegalBlockSizeException extends java.security.GeneralSecurityException {
     ctor public IllegalBlockSizeException();
-    ctor public IllegalBlockSizeException(java.lang.String);
+    ctor public IllegalBlockSizeException(String);
   }
 
   public class KeyAgreement {
-    ctor protected KeyAgreement(javax.crypto.KeyAgreementSpi, java.security.Provider, java.lang.String);
+    ctor protected KeyAgreement(javax.crypto.KeyAgreementSpi, java.security.Provider, String);
     method public final java.security.Key doPhase(java.security.Key, boolean) throws java.lang.IllegalStateException, java.security.InvalidKeyException;
     method public final byte[] generateSecret() throws java.lang.IllegalStateException;
     method public final int generateSecret(byte[], int) throws java.lang.IllegalStateException, javax.crypto.ShortBufferException;
-    method public final javax.crypto.SecretKey generateSecret(java.lang.String) throws java.lang.IllegalStateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
-    method public final java.lang.String getAlgorithm();
-    method public static final javax.crypto.KeyAgreement getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static final javax.crypto.KeyAgreement getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static final javax.crypto.KeyAgreement getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public final javax.crypto.SecretKey generateSecret(String) throws java.lang.IllegalStateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
+    method public final String getAlgorithm();
+    method public static final javax.crypto.KeyAgreement getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static final javax.crypto.KeyAgreement getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static final javax.crypto.KeyAgreement getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
     method public final void init(java.security.Key) throws java.security.InvalidKeyException;
     method public final void init(java.security.Key, java.security.SecureRandom) throws java.security.InvalidKeyException;
@@ -74077,18 +73834,18 @@
     method protected abstract java.security.Key engineDoPhase(java.security.Key, boolean) throws java.lang.IllegalStateException, java.security.InvalidKeyException;
     method protected abstract byte[] engineGenerateSecret() throws java.lang.IllegalStateException;
     method protected abstract int engineGenerateSecret(byte[], int) throws java.lang.IllegalStateException, javax.crypto.ShortBufferException;
-    method protected abstract javax.crypto.SecretKey engineGenerateSecret(java.lang.String) throws java.lang.IllegalStateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
+    method protected abstract javax.crypto.SecretKey engineGenerateSecret(String) throws java.lang.IllegalStateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
     method protected abstract void engineInit(java.security.Key, java.security.SecureRandom) throws java.security.InvalidKeyException;
     method protected abstract void engineInit(java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
   }
 
   public class KeyGenerator {
-    ctor protected KeyGenerator(javax.crypto.KeyGeneratorSpi, java.security.Provider, java.lang.String);
+    ctor protected KeyGenerator(javax.crypto.KeyGeneratorSpi, java.security.Provider, String);
     method public final javax.crypto.SecretKey generateKey();
-    method public final java.lang.String getAlgorithm();
-    method public static final javax.crypto.KeyGenerator getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static final javax.crypto.KeyGenerator getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static final javax.crypto.KeyGenerator getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public final String getAlgorithm();
+    method public static final javax.crypto.KeyGenerator getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static final javax.crypto.KeyGenerator getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static final javax.crypto.KeyGenerator getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
     method public final void init(java.security.SecureRandom);
     method public final void init(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
@@ -74106,15 +73863,15 @@
   }
 
   public class Mac implements java.lang.Cloneable {
-    ctor protected Mac(javax.crypto.MacSpi, java.security.Provider, java.lang.String);
-    method public final java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+    ctor protected Mac(javax.crypto.MacSpi, java.security.Provider, String);
+    method public final Object clone() throws java.lang.CloneNotSupportedException;
     method public final byte[] doFinal() throws java.lang.IllegalStateException;
     method public final void doFinal(byte[], int) throws java.lang.IllegalStateException, javax.crypto.ShortBufferException;
     method public final byte[] doFinal(byte[]) throws java.lang.IllegalStateException;
-    method public final java.lang.String getAlgorithm();
-    method public static final javax.crypto.Mac getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static final javax.crypto.Mac getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static final javax.crypto.Mac getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public final String getAlgorithm();
+    method public static final javax.crypto.Mac getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static final javax.crypto.Mac getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static final javax.crypto.Mac getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final int getMacLength();
     method public final java.security.Provider getProvider();
     method public final void init(java.security.Key) throws java.security.InvalidKeyException;
@@ -74128,7 +73885,7 @@
 
   public abstract class MacSpi {
     ctor public MacSpi();
-    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+    method public Object clone() throws java.lang.CloneNotSupportedException;
     method protected abstract byte[] engineDoFinal();
     method protected abstract int engineGetMacLength();
     method protected abstract void engineInit(java.security.Key, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.InvalidKeyException;
@@ -74140,7 +73897,7 @@
 
   public class NoSuchPaddingException extends java.security.GeneralSecurityException {
     ctor public NoSuchPaddingException();
-    ctor public NoSuchPaddingException(java.lang.String);
+    ctor public NoSuchPaddingException(String);
   }
 
   public class NullCipher extends javax.crypto.Cipher {
@@ -74150,25 +73907,25 @@
   public class SealedObject implements java.io.Serializable {
     ctor public SealedObject(java.io.Serializable, javax.crypto.Cipher) throws java.io.IOException, javax.crypto.IllegalBlockSizeException;
     ctor protected SealedObject(javax.crypto.SealedObject);
-    method public final java.lang.String getAlgorithm();
-    method public final java.lang.Object getObject(java.security.Key) throws java.lang.ClassNotFoundException, java.io.IOException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
-    method public final java.lang.Object getObject(javax.crypto.Cipher) throws javax.crypto.BadPaddingException, java.lang.ClassNotFoundException, java.io.IOException, javax.crypto.IllegalBlockSizeException;
-    method public final java.lang.Object getObject(java.security.Key, java.lang.String) throws java.lang.ClassNotFoundException, java.io.IOException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public final String getAlgorithm();
+    method public final Object getObject(java.security.Key) throws java.lang.ClassNotFoundException, java.io.IOException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException;
+    method public final Object getObject(javax.crypto.Cipher) throws javax.crypto.BadPaddingException, java.lang.ClassNotFoundException, java.io.IOException, javax.crypto.IllegalBlockSizeException;
+    method public final Object getObject(java.security.Key, String) throws java.lang.ClassNotFoundException, java.io.IOException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
     field protected byte[] encodedParams;
   }
 
-  public abstract interface SecretKey implements javax.security.auth.Destroyable java.security.Key {
+  public interface SecretKey extends java.security.Key javax.security.auth.Destroyable {
     field public static final long serialVersionUID = -4795878709595146952L; // 0xbd719db928b8f538L
   }
 
   public class SecretKeyFactory {
-    ctor protected SecretKeyFactory(javax.crypto.SecretKeyFactorySpi, java.security.Provider, java.lang.String);
+    ctor protected SecretKeyFactory(javax.crypto.SecretKeyFactorySpi, java.security.Provider, String);
     method public final javax.crypto.SecretKey generateSecret(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException;
-    method public final java.lang.String getAlgorithm();
-    method public static final javax.crypto.SecretKeyFactory getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static final javax.crypto.SecretKeyFactory getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static final javax.crypto.SecretKeyFactory getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
-    method public final java.security.spec.KeySpec getKeySpec(javax.crypto.SecretKey, java.lang.Class<?>) throws java.security.spec.InvalidKeySpecException;
+    method public final String getAlgorithm();
+    method public static final javax.crypto.SecretKeyFactory getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static final javax.crypto.SecretKeyFactory getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static final javax.crypto.SecretKeyFactory getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public final java.security.spec.KeySpec getKeySpec(javax.crypto.SecretKey, Class<?>) throws java.security.spec.InvalidKeySpecException;
     method public final java.security.Provider getProvider();
     method public final javax.crypto.SecretKey translateKey(javax.crypto.SecretKey) throws java.security.InvalidKeyException;
   }
@@ -74176,37 +73933,37 @@
   public abstract class SecretKeyFactorySpi {
     ctor public SecretKeyFactorySpi();
     method protected abstract javax.crypto.SecretKey engineGenerateSecret(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException;
-    method protected abstract java.security.spec.KeySpec engineGetKeySpec(javax.crypto.SecretKey, java.lang.Class<?>) throws java.security.spec.InvalidKeySpecException;
+    method protected abstract java.security.spec.KeySpec engineGetKeySpec(javax.crypto.SecretKey, Class<?>) throws java.security.spec.InvalidKeySpecException;
     method protected abstract javax.crypto.SecretKey engineTranslateKey(javax.crypto.SecretKey) throws java.security.InvalidKeyException;
   }
 
   public class ShortBufferException extends java.security.GeneralSecurityException {
     ctor public ShortBufferException();
-    ctor public ShortBufferException(java.lang.String);
+    ctor public ShortBufferException(String);
   }
 
 }
 
 package javax.crypto.interfaces {
 
-  public abstract interface DHKey {
-    method public abstract javax.crypto.spec.DHParameterSpec getParams();
+  public interface DHKey {
+    method public javax.crypto.spec.DHParameterSpec getParams();
   }
 
-  public abstract interface DHPrivateKey implements javax.crypto.interfaces.DHKey java.security.PrivateKey {
-    method public abstract java.math.BigInteger getX();
+  public interface DHPrivateKey extends javax.crypto.interfaces.DHKey java.security.PrivateKey {
+    method public java.math.BigInteger getX();
     field public static final long serialVersionUID = 2211791113380396553L; // 0x1eb1dc4c8e677e09L
   }
 
-  public abstract interface DHPublicKey implements javax.crypto.interfaces.DHKey java.security.PublicKey {
-    method public abstract java.math.BigInteger getY();
+  public interface DHPublicKey extends javax.crypto.interfaces.DHKey java.security.PublicKey {
+    method public java.math.BigInteger getY();
     field public static final long serialVersionUID = -6628103563352519193L; // 0xa4043eed23df4de7L
   }
 
-  public abstract interface PBEKey implements javax.crypto.SecretKey {
-    method public abstract int getIterationCount();
-    method public abstract char[] getPassword();
-    method public abstract byte[] getSalt();
+  public interface PBEKey extends javax.crypto.SecretKey {
+    method public int getIterationCount();
+    method public char[] getPassword();
+    method public byte[] getSalt();
     field public static final long serialVersionUID = -1430015993304333921L; // 0xec279007d7f7c19fL
   }
 
@@ -74273,9 +74030,9 @@
   }
 
   public class OAEPParameterSpec implements java.security.spec.AlgorithmParameterSpec {
-    ctor public OAEPParameterSpec(java.lang.String, java.lang.String, java.security.spec.AlgorithmParameterSpec, javax.crypto.spec.PSource);
-    method public java.lang.String getDigestAlgorithm();
-    method public java.lang.String getMGFAlgorithm();
+    ctor public OAEPParameterSpec(String, String, java.security.spec.AlgorithmParameterSpec, javax.crypto.spec.PSource);
+    method public String getDigestAlgorithm();
+    method public String getMGFAlgorithm();
     method public java.security.spec.AlgorithmParameterSpec getMGFParameters();
     method public javax.crypto.spec.PSource getPSource();
     field public static final javax.crypto.spec.OAEPParameterSpec DEFAULT;
@@ -74301,8 +74058,8 @@
   }
 
   public class PSource {
-    ctor protected PSource(java.lang.String);
-    method public java.lang.String getAlgorithm();
+    ctor protected PSource(String);
+    method public String getAlgorithm();
   }
 
   public static final class PSource.PSpecified extends javax.crypto.spec.PSource {
@@ -74330,45 +74087,45 @@
   }
 
   public class SecretKeySpec implements java.security.spec.KeySpec javax.crypto.SecretKey {
-    ctor public SecretKeySpec(byte[], java.lang.String);
-    ctor public SecretKeySpec(byte[], int, int, java.lang.String);
-    method public java.lang.String getAlgorithm();
+    ctor public SecretKeySpec(byte[], String);
+    ctor public SecretKeySpec(byte[], int, int, String);
+    method public String getAlgorithm();
     method public byte[] getEncoded();
-    method public java.lang.String getFormat();
+    method public String getFormat();
   }
 
 }
 
 package javax.microedition.khronos.egl {
 
-  public abstract interface EGL {
+  public interface EGL {
   }
 
-  public abstract interface EGL10 implements javax.microedition.khronos.egl.EGL {
-    method public abstract boolean eglChooseConfig(javax.microedition.khronos.egl.EGLDisplay, int[], javax.microedition.khronos.egl.EGLConfig[], int, int[]);
-    method public abstract boolean eglCopyBuffers(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface, java.lang.Object);
-    method public abstract javax.microedition.khronos.egl.EGLContext eglCreateContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, javax.microedition.khronos.egl.EGLContext, int[]);
-    method public abstract javax.microedition.khronos.egl.EGLSurface eglCreatePbufferSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, int[]);
-    method public abstract deprecated javax.microedition.khronos.egl.EGLSurface eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
-    method public abstract javax.microedition.khronos.egl.EGLSurface eglCreateWindowSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
-    method public abstract boolean eglDestroyContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLContext);
-    method public abstract boolean eglDestroySurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface);
-    method public abstract boolean eglGetConfigAttrib(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, int, int[]);
-    method public abstract boolean eglGetConfigs(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig[], int, int[]);
-    method public abstract javax.microedition.khronos.egl.EGLContext eglGetCurrentContext();
-    method public abstract javax.microedition.khronos.egl.EGLDisplay eglGetCurrentDisplay();
-    method public abstract javax.microedition.khronos.egl.EGLSurface eglGetCurrentSurface(int);
-    method public abstract javax.microedition.khronos.egl.EGLDisplay eglGetDisplay(java.lang.Object);
-    method public abstract int eglGetError();
-    method public abstract boolean eglInitialize(javax.microedition.khronos.egl.EGLDisplay, int[]);
-    method public abstract boolean eglMakeCurrent(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface, javax.microedition.khronos.egl.EGLSurface, javax.microedition.khronos.egl.EGLContext);
-    method public abstract boolean eglQueryContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLContext, int, int[]);
-    method public abstract java.lang.String eglQueryString(javax.microedition.khronos.egl.EGLDisplay, int);
-    method public abstract boolean eglQuerySurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface, int, int[]);
-    method public abstract boolean eglSwapBuffers(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface);
-    method public abstract boolean eglTerminate(javax.microedition.khronos.egl.EGLDisplay);
-    method public abstract boolean eglWaitGL();
-    method public abstract boolean eglWaitNative(int, java.lang.Object);
+  public interface EGL10 extends javax.microedition.khronos.egl.EGL {
+    method public boolean eglChooseConfig(javax.microedition.khronos.egl.EGLDisplay, int[], javax.microedition.khronos.egl.EGLConfig[], int, int[]);
+    method public boolean eglCopyBuffers(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface, Object);
+    method public javax.microedition.khronos.egl.EGLContext eglCreateContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, javax.microedition.khronos.egl.EGLContext, int[]);
+    method public javax.microedition.khronos.egl.EGLSurface eglCreatePbufferSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, int[]);
+    method @Deprecated public javax.microedition.khronos.egl.EGLSurface eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, Object, int[]);
+    method public javax.microedition.khronos.egl.EGLSurface eglCreateWindowSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, Object, int[]);
+    method public boolean eglDestroyContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLContext);
+    method public boolean eglDestroySurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface);
+    method public boolean eglGetConfigAttrib(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, int, int[]);
+    method public boolean eglGetConfigs(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig[], int, int[]);
+    method public javax.microedition.khronos.egl.EGLContext eglGetCurrentContext();
+    method public javax.microedition.khronos.egl.EGLDisplay eglGetCurrentDisplay();
+    method public javax.microedition.khronos.egl.EGLSurface eglGetCurrentSurface(int);
+    method public javax.microedition.khronos.egl.EGLDisplay eglGetDisplay(Object);
+    method public int eglGetError();
+    method public boolean eglInitialize(javax.microedition.khronos.egl.EGLDisplay, int[]);
+    method public boolean eglMakeCurrent(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface, javax.microedition.khronos.egl.EGLSurface, javax.microedition.khronos.egl.EGLContext);
+    method public boolean eglQueryContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLContext, int, int[]);
+    method public String eglQueryString(javax.microedition.khronos.egl.EGLDisplay, int);
+    method public boolean eglQuerySurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface, int, int[]);
+    method public boolean eglSwapBuffers(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface);
+    method public boolean eglTerminate(javax.microedition.khronos.egl.EGLDisplay);
+    method public boolean eglWaitGL();
+    method public boolean eglWaitNative(int, Object);
     field public static final int EGL_ALPHA_FORMAT = 12424; // 0x3088
     field public static final int EGL_ALPHA_MASK_SIZE = 12350; // 0x303e
     field public static final int EGL_ALPHA_SIZE = 12321; // 0x3021
@@ -74391,7 +74148,7 @@
     field public static final int EGL_CONFIG_CAVEAT = 12327; // 0x3027
     field public static final int EGL_CONFIG_ID = 12328; // 0x3028
     field public static final int EGL_CORE_NATIVE_ENGINE = 12379; // 0x305b
-    field public static final java.lang.Object EGL_DEFAULT_DISPLAY;
+    field public static final Object EGL_DEFAULT_DISPLAY;
     field public static final int EGL_DEPTH_SIZE = 12325; // 0x3025
     field public static final int EGL_DONT_CARE = -1; // 0xffffffff
     field public static final int EGL_DRAW = 12377; // 0x3059
@@ -74442,7 +74199,7 @@
     field public static final int EGL_WINDOW_BIT = 4; // 0x4
   }
 
-  public abstract interface EGL11 implements javax.microedition.khronos.egl.EGL10 {
+  public interface EGL11 extends javax.microedition.khronos.egl.EGL10 {
     field public static final int EGL_CONTEXT_LOST = 12302; // 0x300e
   }
 
@@ -74468,133 +74225,133 @@
 
 package javax.microedition.khronos.opengles {
 
-  public abstract interface GL {
+  public interface GL {
   }
 
-  public abstract interface GL10 implements javax.microedition.khronos.opengles.GL {
-    method public abstract void glActiveTexture(int);
-    method public abstract void glAlphaFunc(int, float);
-    method public abstract void glAlphaFuncx(int, int);
-    method public abstract void glBindTexture(int, int);
-    method public abstract void glBlendFunc(int, int);
-    method public abstract void glClear(int);
-    method public abstract void glClearColor(float, float, float, float);
-    method public abstract void glClearColorx(int, int, int, int);
-    method public abstract void glClearDepthf(float);
-    method public abstract void glClearDepthx(int);
-    method public abstract void glClearStencil(int);
-    method public abstract void glClientActiveTexture(int);
-    method public abstract void glColor4f(float, float, float, float);
-    method public abstract void glColor4x(int, int, int, int);
-    method public abstract void glColorMask(boolean, boolean, boolean, boolean);
-    method public abstract void glColorPointer(int, int, int, java.nio.Buffer);
-    method public abstract void glCompressedTexImage2D(int, int, int, int, int, int, int, java.nio.Buffer);
-    method public abstract void glCompressedTexSubImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer);
-    method public abstract void glCopyTexImage2D(int, int, int, int, int, int, int, int);
-    method public abstract void glCopyTexSubImage2D(int, int, int, int, int, int, int, int);
-    method public abstract void glCullFace(int);
-    method public abstract void glDeleteTextures(int, int[], int);
-    method public abstract void glDeleteTextures(int, java.nio.IntBuffer);
-    method public abstract void glDepthFunc(int);
-    method public abstract void glDepthMask(boolean);
-    method public abstract void glDepthRangef(float, float);
-    method public abstract void glDepthRangex(int, int);
-    method public abstract void glDisable(int);
-    method public abstract void glDisableClientState(int);
-    method public abstract void glDrawArrays(int, int, int);
-    method public abstract void glDrawElements(int, int, int, java.nio.Buffer);
-    method public abstract void glEnable(int);
-    method public abstract void glEnableClientState(int);
-    method public abstract void glFinish();
-    method public abstract void glFlush();
-    method public abstract void glFogf(int, float);
-    method public abstract void glFogfv(int, float[], int);
-    method public abstract void glFogfv(int, java.nio.FloatBuffer);
-    method public abstract void glFogx(int, int);
-    method public abstract void glFogxv(int, int[], int);
-    method public abstract void glFogxv(int, java.nio.IntBuffer);
-    method public abstract void glFrontFace(int);
-    method public abstract void glFrustumf(float, float, float, float, float, float);
-    method public abstract void glFrustumx(int, int, int, int, int, int);
-    method public abstract void glGenTextures(int, int[], int);
-    method public abstract void glGenTextures(int, java.nio.IntBuffer);
-    method public abstract int glGetError();
-    method public abstract void glGetIntegerv(int, int[], int);
-    method public abstract void glGetIntegerv(int, java.nio.IntBuffer);
-    method public abstract java.lang.String glGetString(int);
-    method public abstract void glHint(int, int);
-    method public abstract void glLightModelf(int, float);
-    method public abstract void glLightModelfv(int, float[], int);
-    method public abstract void glLightModelfv(int, java.nio.FloatBuffer);
-    method public abstract void glLightModelx(int, int);
-    method public abstract void glLightModelxv(int, int[], int);
-    method public abstract void glLightModelxv(int, java.nio.IntBuffer);
-    method public abstract void glLightf(int, int, float);
-    method public abstract void glLightfv(int, int, float[], int);
-    method public abstract void glLightfv(int, int, java.nio.FloatBuffer);
-    method public abstract void glLightx(int, int, int);
-    method public abstract void glLightxv(int, int, int[], int);
-    method public abstract void glLightxv(int, int, java.nio.IntBuffer);
-    method public abstract void glLineWidth(float);
-    method public abstract void glLineWidthx(int);
-    method public abstract void glLoadIdentity();
-    method public abstract void glLoadMatrixf(float[], int);
-    method public abstract void glLoadMatrixf(java.nio.FloatBuffer);
-    method public abstract void glLoadMatrixx(int[], int);
-    method public abstract void glLoadMatrixx(java.nio.IntBuffer);
-    method public abstract void glLogicOp(int);
-    method public abstract void glMaterialf(int, int, float);
-    method public abstract void glMaterialfv(int, int, float[], int);
-    method public abstract void glMaterialfv(int, int, java.nio.FloatBuffer);
-    method public abstract void glMaterialx(int, int, int);
-    method public abstract void glMaterialxv(int, int, int[], int);
-    method public abstract void glMaterialxv(int, int, java.nio.IntBuffer);
-    method public abstract void glMatrixMode(int);
-    method public abstract void glMultMatrixf(float[], int);
-    method public abstract void glMultMatrixf(java.nio.FloatBuffer);
-    method public abstract void glMultMatrixx(int[], int);
-    method public abstract void glMultMatrixx(java.nio.IntBuffer);
-    method public abstract void glMultiTexCoord4f(int, float, float, float, float);
-    method public abstract void glMultiTexCoord4x(int, int, int, int, int);
-    method public abstract void glNormal3f(float, float, float);
-    method public abstract void glNormal3x(int, int, int);
-    method public abstract void glNormalPointer(int, int, java.nio.Buffer);
-    method public abstract void glOrthof(float, float, float, float, float, float);
-    method public abstract void glOrthox(int, int, int, int, int, int);
-    method public abstract void glPixelStorei(int, int);
-    method public abstract void glPointSize(float);
-    method public abstract void glPointSizex(int);
-    method public abstract void glPolygonOffset(float, float);
-    method public abstract void glPolygonOffsetx(int, int);
-    method public abstract void glPopMatrix();
-    method public abstract void glPushMatrix();
-    method public abstract void glReadPixels(int, int, int, int, int, int, java.nio.Buffer);
-    method public abstract void glRotatef(float, float, float, float);
-    method public abstract void glRotatex(int, int, int, int);
-    method public abstract void glSampleCoverage(float, boolean);
-    method public abstract void glSampleCoveragex(int, boolean);
-    method public abstract void glScalef(float, float, float);
-    method public abstract void glScalex(int, int, int);
-    method public abstract void glScissor(int, int, int, int);
-    method public abstract void glShadeModel(int);
-    method public abstract void glStencilFunc(int, int, int);
-    method public abstract void glStencilMask(int);
-    method public abstract void glStencilOp(int, int, int);
-    method public abstract void glTexCoordPointer(int, int, int, java.nio.Buffer);
-    method public abstract void glTexEnvf(int, int, float);
-    method public abstract void glTexEnvfv(int, int, float[], int);
-    method public abstract void glTexEnvfv(int, int, java.nio.FloatBuffer);
-    method public abstract void glTexEnvx(int, int, int);
-    method public abstract void glTexEnvxv(int, int, int[], int);
-    method public abstract void glTexEnvxv(int, int, java.nio.IntBuffer);
-    method public abstract void glTexImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer);
-    method public abstract void glTexParameterf(int, int, float);
-    method public abstract void glTexParameterx(int, int, int);
-    method public abstract void glTexSubImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer);
-    method public abstract void glTranslatef(float, float, float);
-    method public abstract void glTranslatex(int, int, int);
-    method public abstract void glVertexPointer(int, int, int, java.nio.Buffer);
-    method public abstract void glViewport(int, int, int, int);
+  public interface GL10 extends javax.microedition.khronos.opengles.GL {
+    method public void glActiveTexture(int);
+    method public void glAlphaFunc(int, float);
+    method public void glAlphaFuncx(int, int);
+    method public void glBindTexture(int, int);
+    method public void glBlendFunc(int, int);
+    method public void glClear(int);
+    method public void glClearColor(float, float, float, float);
+    method public void glClearColorx(int, int, int, int);
+    method public void glClearDepthf(float);
+    method public void glClearDepthx(int);
+    method public void glClearStencil(int);
+    method public void glClientActiveTexture(int);
+    method public void glColor4f(float, float, float, float);
+    method public void glColor4x(int, int, int, int);
+    method public void glColorMask(boolean, boolean, boolean, boolean);
+    method public void glColorPointer(int, int, int, java.nio.Buffer);
+    method public void glCompressedTexImage2D(int, int, int, int, int, int, int, java.nio.Buffer);
+    method public void glCompressedTexSubImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer);
+    method public void glCopyTexImage2D(int, int, int, int, int, int, int, int);
+    method public void glCopyTexSubImage2D(int, int, int, int, int, int, int, int);
+    method public void glCullFace(int);
+    method public void glDeleteTextures(int, int[], int);
+    method public void glDeleteTextures(int, java.nio.IntBuffer);
+    method public void glDepthFunc(int);
+    method public void glDepthMask(boolean);
+    method public void glDepthRangef(float, float);
+    method public void glDepthRangex(int, int);
+    method public void glDisable(int);
+    method public void glDisableClientState(int);
+    method public void glDrawArrays(int, int, int);
+    method public void glDrawElements(int, int, int, java.nio.Buffer);
+    method public void glEnable(int);
+    method public void glEnableClientState(int);
+    method public void glFinish();
+    method public void glFlush();
+    method public void glFogf(int, float);
+    method public void glFogfv(int, float[], int);
+    method public void glFogfv(int, java.nio.FloatBuffer);
+    method public void glFogx(int, int);
+    method public void glFogxv(int, int[], int);
+    method public void glFogxv(int, java.nio.IntBuffer);
+    method public void glFrontFace(int);
+    method public void glFrustumf(float, float, float, float, float, float);
+    method public void glFrustumx(int, int, int, int, int, int);
+    method public void glGenTextures(int, int[], int);
+    method public void glGenTextures(int, java.nio.IntBuffer);
+    method public int glGetError();
+    method public void glGetIntegerv(int, int[], int);
+    method public void glGetIntegerv(int, java.nio.IntBuffer);
+    method public String glGetString(int);
+    method public void glHint(int, int);
+    method public void glLightModelf(int, float);
+    method public void glLightModelfv(int, float[], int);
+    method public void glLightModelfv(int, java.nio.FloatBuffer);
+    method public void glLightModelx(int, int);
+    method public void glLightModelxv(int, int[], int);
+    method public void glLightModelxv(int, java.nio.IntBuffer);
+    method public void glLightf(int, int, float);
+    method public void glLightfv(int, int, float[], int);
+    method public void glLightfv(int, int, java.nio.FloatBuffer);
+    method public void glLightx(int, int, int);
+    method public void glLightxv(int, int, int[], int);
+    method public void glLightxv(int, int, java.nio.IntBuffer);
+    method public void glLineWidth(float);
+    method public void glLineWidthx(int);
+    method public void glLoadIdentity();
+    method public void glLoadMatrixf(float[], int);
+    method public void glLoadMatrixf(java.nio.FloatBuffer);
+    method public void glLoadMatrixx(int[], int);
+    method public void glLoadMatrixx(java.nio.IntBuffer);
+    method public void glLogicOp(int);
+    method public void glMaterialf(int, int, float);
+    method public void glMaterialfv(int, int, float[], int);
+    method public void glMaterialfv(int, int, java.nio.FloatBuffer);
+    method public void glMaterialx(int, int, int);
+    method public void glMaterialxv(int, int, int[], int);
+    method public void glMaterialxv(int, int, java.nio.IntBuffer);
+    method public void glMatrixMode(int);
+    method public void glMultMatrixf(float[], int);
+    method public void glMultMatrixf(java.nio.FloatBuffer);
+    method public void glMultMatrixx(int[], int);
+    method public void glMultMatrixx(java.nio.IntBuffer);
+    method public void glMultiTexCoord4f(int, float, float, float, float);
+    method public void glMultiTexCoord4x(int, int, int, int, int);
+    method public void glNormal3f(float, float, float);
+    method public void glNormal3x(int, int, int);
+    method public void glNormalPointer(int, int, java.nio.Buffer);
+    method public void glOrthof(float, float, float, float, float, float);
+    method public void glOrthox(int, int, int, int, int, int);
+    method public void glPixelStorei(int, int);
+    method public void glPointSize(float);
+    method public void glPointSizex(int);
+    method public void glPolygonOffset(float, float);
+    method public void glPolygonOffsetx(int, int);
+    method public void glPopMatrix();
+    method public void glPushMatrix();
+    method public void glReadPixels(int, int, int, int, int, int, java.nio.Buffer);
+    method public void glRotatef(float, float, float, float);
+    method public void glRotatex(int, int, int, int);
+    method public void glSampleCoverage(float, boolean);
+    method public void glSampleCoveragex(int, boolean);
+    method public void glScalef(float, float, float);
+    method public void glScalex(int, int, int);
+    method public void glScissor(int, int, int, int);
+    method public void glShadeModel(int);
+    method public void glStencilFunc(int, int, int);
+    method public void glStencilMask(int);
+    method public void glStencilOp(int, int, int);
+    method public void glTexCoordPointer(int, int, int, java.nio.Buffer);
+    method public void glTexEnvf(int, int, float);
+    method public void glTexEnvfv(int, int, float[], int);
+    method public void glTexEnvfv(int, int, java.nio.FloatBuffer);
+    method public void glTexEnvx(int, int, int);
+    method public void glTexEnvxv(int, int, int[], int);
+    method public void glTexEnvxv(int, int, java.nio.IntBuffer);
+    method public void glTexImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer);
+    method public void glTexParameterf(int, int, float);
+    method public void glTexParameterx(int, int, int);
+    method public void glTexSubImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer);
+    method public void glTranslatef(float, float, float);
+    method public void glTranslatex(int, int, int);
+    method public void glVertexPointer(int, int, int, java.nio.Buffer);
+    method public void glViewport(int, int, int, int);
     field public static final int GL_ADD = 260; // 0x104
     field public static final int GL_ALIASED_LINE_WIDTH_RANGE = 33902; // 0x846e
     field public static final int GL_ALIASED_POINT_SIZE_RANGE = 33901; // 0x846d
@@ -74834,80 +74591,80 @@
     field public static final int GL_ZERO = 0; // 0x0
   }
 
-  public abstract interface GL10Ext implements javax.microedition.khronos.opengles.GL {
-    method public abstract int glQueryMatrixxOES(int[], int, int[], int);
-    method public abstract int glQueryMatrixxOES(java.nio.IntBuffer, java.nio.IntBuffer);
+  public interface GL10Ext extends javax.microedition.khronos.opengles.GL {
+    method public int glQueryMatrixxOES(int[], int, int[], int);
+    method public int glQueryMatrixxOES(java.nio.IntBuffer, java.nio.IntBuffer);
   }
 
-  public abstract interface GL11 implements javax.microedition.khronos.opengles.GL10 {
-    method public abstract void glBindBuffer(int, int);
-    method public abstract void glBufferData(int, int, java.nio.Buffer, int);
-    method public abstract void glBufferSubData(int, int, int, java.nio.Buffer);
-    method public abstract void glClipPlanef(int, float[], int);
-    method public abstract void glClipPlanef(int, java.nio.FloatBuffer);
-    method public abstract void glClipPlanex(int, int[], int);
-    method public abstract void glClipPlanex(int, java.nio.IntBuffer);
-    method public abstract void glColor4ub(byte, byte, byte, byte);
-    method public abstract void glColorPointer(int, int, int, int);
-    method public abstract void glDeleteBuffers(int, int[], int);
-    method public abstract void glDeleteBuffers(int, java.nio.IntBuffer);
-    method public abstract void glDrawElements(int, int, int, int);
-    method public abstract void glGenBuffers(int, int[], int);
-    method public abstract void glGenBuffers(int, java.nio.IntBuffer);
-    method public abstract void glGetBooleanv(int, boolean[], int);
-    method public abstract void glGetBooleanv(int, java.nio.IntBuffer);
-    method public abstract void glGetBufferParameteriv(int, int, int[], int);
-    method public abstract void glGetBufferParameteriv(int, int, java.nio.IntBuffer);
-    method public abstract void glGetClipPlanef(int, float[], int);
-    method public abstract void glGetClipPlanef(int, java.nio.FloatBuffer);
-    method public abstract void glGetClipPlanex(int, int[], int);
-    method public abstract void glGetClipPlanex(int, java.nio.IntBuffer);
-    method public abstract void glGetFixedv(int, int[], int);
-    method public abstract void glGetFixedv(int, java.nio.IntBuffer);
-    method public abstract void glGetFloatv(int, float[], int);
-    method public abstract void glGetFloatv(int, java.nio.FloatBuffer);
-    method public abstract void glGetLightfv(int, int, float[], int);
-    method public abstract void glGetLightfv(int, int, java.nio.FloatBuffer);
-    method public abstract void glGetLightxv(int, int, int[], int);
-    method public abstract void glGetLightxv(int, int, java.nio.IntBuffer);
-    method public abstract void glGetMaterialfv(int, int, float[], int);
-    method public abstract void glGetMaterialfv(int, int, java.nio.FloatBuffer);
-    method public abstract void glGetMaterialxv(int, int, int[], int);
-    method public abstract void glGetMaterialxv(int, int, java.nio.IntBuffer);
-    method public abstract void glGetPointerv(int, java.nio.Buffer[]);
-    method public abstract void glGetTexEnviv(int, int, int[], int);
-    method public abstract void glGetTexEnviv(int, int, java.nio.IntBuffer);
-    method public abstract void glGetTexEnvxv(int, int, int[], int);
-    method public abstract void glGetTexEnvxv(int, int, java.nio.IntBuffer);
-    method public abstract void glGetTexParameterfv(int, int, float[], int);
-    method public abstract void glGetTexParameterfv(int, int, java.nio.FloatBuffer);
-    method public abstract void glGetTexParameteriv(int, int, int[], int);
-    method public abstract void glGetTexParameteriv(int, int, java.nio.IntBuffer);
-    method public abstract void glGetTexParameterxv(int, int, int[], int);
-    method public abstract void glGetTexParameterxv(int, int, java.nio.IntBuffer);
-    method public abstract boolean glIsBuffer(int);
-    method public abstract boolean glIsEnabled(int);
-    method public abstract boolean glIsTexture(int);
-    method public abstract void glNormalPointer(int, int, int);
-    method public abstract void glPointParameterf(int, float);
-    method public abstract void glPointParameterfv(int, float[], int);
-    method public abstract void glPointParameterfv(int, java.nio.FloatBuffer);
-    method public abstract void glPointParameterx(int, int);
-    method public abstract void glPointParameterxv(int, int[], int);
-    method public abstract void glPointParameterxv(int, java.nio.IntBuffer);
-    method public abstract void glPointSizePointerOES(int, int, java.nio.Buffer);
-    method public abstract void glTexCoordPointer(int, int, int, int);
-    method public abstract void glTexEnvi(int, int, int);
-    method public abstract void glTexEnviv(int, int, int[], int);
-    method public abstract void glTexEnviv(int, int, java.nio.IntBuffer);
-    method public abstract void glTexParameterfv(int, int, float[], int);
-    method public abstract void glTexParameterfv(int, int, java.nio.FloatBuffer);
-    method public abstract void glTexParameteri(int, int, int);
-    method public abstract void glTexParameteriv(int, int, int[], int);
-    method public abstract void glTexParameteriv(int, int, java.nio.IntBuffer);
-    method public abstract void glTexParameterxv(int, int, int[], int);
-    method public abstract void glTexParameterxv(int, int, java.nio.IntBuffer);
-    method public abstract void glVertexPointer(int, int, int, int);
+  public interface GL11 extends javax.microedition.khronos.opengles.GL10 {
+    method public void glBindBuffer(int, int);
+    method public void glBufferData(int, int, java.nio.Buffer, int);
+    method public void glBufferSubData(int, int, int, java.nio.Buffer);
+    method public void glClipPlanef(int, float[], int);
+    method public void glClipPlanef(int, java.nio.FloatBuffer);
+    method public void glClipPlanex(int, int[], int);
+    method public void glClipPlanex(int, java.nio.IntBuffer);
+    method public void glColor4ub(byte, byte, byte, byte);
+    method public void glColorPointer(int, int, int, int);
+    method public void glDeleteBuffers(int, int[], int);
+    method public void glDeleteBuffers(int, java.nio.IntBuffer);
+    method public void glDrawElements(int, int, int, int);
+    method public void glGenBuffers(int, int[], int);
+    method public void glGenBuffers(int, java.nio.IntBuffer);
+    method public void glGetBooleanv(int, boolean[], int);
+    method public void glGetBooleanv(int, java.nio.IntBuffer);
+    method public void glGetBufferParameteriv(int, int, int[], int);
+    method public void glGetBufferParameteriv(int, int, java.nio.IntBuffer);
+    method public void glGetClipPlanef(int, float[], int);
+    method public void glGetClipPlanef(int, java.nio.FloatBuffer);
+    method public void glGetClipPlanex(int, int[], int);
+    method public void glGetClipPlanex(int, java.nio.IntBuffer);
+    method public void glGetFixedv(int, int[], int);
+    method public void glGetFixedv(int, java.nio.IntBuffer);
+    method public void glGetFloatv(int, float[], int);
+    method public void glGetFloatv(int, java.nio.FloatBuffer);
+    method public void glGetLightfv(int, int, float[], int);
+    method public void glGetLightfv(int, int, java.nio.FloatBuffer);
+    method public void glGetLightxv(int, int, int[], int);
+    method public void glGetLightxv(int, int, java.nio.IntBuffer);
+    method public void glGetMaterialfv(int, int, float[], int);
+    method public void glGetMaterialfv(int, int, java.nio.FloatBuffer);
+    method public void glGetMaterialxv(int, int, int[], int);
+    method public void glGetMaterialxv(int, int, java.nio.IntBuffer);
+    method public void glGetPointerv(int, java.nio.Buffer[]);
+    method public void glGetTexEnviv(int, int, int[], int);
+    method public void glGetTexEnviv(int, int, java.nio.IntBuffer);
+    method public void glGetTexEnvxv(int, int, int[], int);
+    method public void glGetTexEnvxv(int, int, java.nio.IntBuffer);
+    method public void glGetTexParameterfv(int, int, float[], int);
+    method public void glGetTexParameterfv(int, int, java.nio.FloatBuffer);
+    method public void glGetTexParameteriv(int, int, int[], int);
+    method public void glGetTexParameteriv(int, int, java.nio.IntBuffer);
+    method public void glGetTexParameterxv(int, int, int[], int);
+    method public void glGetTexParameterxv(int, int, java.nio.IntBuffer);
+    method public boolean glIsBuffer(int);
+    method public boolean glIsEnabled(int);
+    method public boolean glIsTexture(int);
+    method public void glNormalPointer(int, int, int);
+    method public void glPointParameterf(int, float);
+    method public void glPointParameterfv(int, float[], int);
+    method public void glPointParameterfv(int, java.nio.FloatBuffer);
+    method public void glPointParameterx(int, int);
+    method public void glPointParameterxv(int, int[], int);
+    method public void glPointParameterxv(int, java.nio.IntBuffer);
+    method public void glPointSizePointerOES(int, int, java.nio.Buffer);
+    method public void glTexCoordPointer(int, int, int, int);
+    method public void glTexEnvi(int, int, int);
+    method public void glTexEnviv(int, int, int[], int);
+    method public void glTexEnviv(int, int, java.nio.IntBuffer);
+    method public void glTexParameterfv(int, int, float[], int);
+    method public void glTexParameterfv(int, int, java.nio.FloatBuffer);
+    method public void glTexParameteri(int, int, int);
+    method public void glTexParameteriv(int, int, int[], int);
+    method public void glTexParameteriv(int, int, java.nio.IntBuffer);
+    method public void glTexParameterxv(int, int, int[], int);
+    method public void glTexParameterxv(int, int, java.nio.IntBuffer);
+    method public void glVertexPointer(int, int, int, int);
     field public static final int GL_ACTIVE_TEXTURE = 34016; // 0x84e0
     field public static final int GL_ADD_SIGNED = 34164; // 0x8574
     field public static final int GL_ALPHA_SCALE = 3356; // 0xd1c
@@ -75032,28 +74789,28 @@
     field public static final int GL_WRITE_ONLY = 35001; // 0x88b9
   }
 
-  public abstract interface GL11Ext implements javax.microedition.khronos.opengles.GL {
-    method public abstract void glCurrentPaletteMatrixOES(int);
-    method public abstract void glDrawTexfOES(float, float, float, float, float);
-    method public abstract void glDrawTexfvOES(float[], int);
-    method public abstract void glDrawTexfvOES(java.nio.FloatBuffer);
-    method public abstract void glDrawTexiOES(int, int, int, int, int);
-    method public abstract void glDrawTexivOES(int[], int);
-    method public abstract void glDrawTexivOES(java.nio.IntBuffer);
-    method public abstract void glDrawTexsOES(short, short, short, short, short);
-    method public abstract void glDrawTexsvOES(short[], int);
-    method public abstract void glDrawTexsvOES(java.nio.ShortBuffer);
-    method public abstract void glDrawTexxOES(int, int, int, int, int);
-    method public abstract void glDrawTexxvOES(int[], int);
-    method public abstract void glDrawTexxvOES(java.nio.IntBuffer);
-    method public abstract void glEnable(int);
-    method public abstract void glEnableClientState(int);
-    method public abstract void glLoadPaletteFromModelViewMatrixOES();
-    method public abstract void glMatrixIndexPointerOES(int, int, int, java.nio.Buffer);
-    method public abstract void glMatrixIndexPointerOES(int, int, int, int);
-    method public abstract void glTexParameterfv(int, int, float[], int);
-    method public abstract void glWeightPointerOES(int, int, int, java.nio.Buffer);
-    method public abstract void glWeightPointerOES(int, int, int, int);
+  public interface GL11Ext extends javax.microedition.khronos.opengles.GL {
+    method public void glCurrentPaletteMatrixOES(int);
+    method public void glDrawTexfOES(float, float, float, float, float);
+    method public void glDrawTexfvOES(float[], int);
+    method public void glDrawTexfvOES(java.nio.FloatBuffer);
+    method public void glDrawTexiOES(int, int, int, int, int);
+    method public void glDrawTexivOES(int[], int);
+    method public void glDrawTexivOES(java.nio.IntBuffer);
+    method public void glDrawTexsOES(short, short, short, short, short);
+    method public void glDrawTexsvOES(short[], int);
+    method public void glDrawTexsvOES(java.nio.ShortBuffer);
+    method public void glDrawTexxOES(int, int, int, int, int);
+    method public void glDrawTexxvOES(int[], int);
+    method public void glDrawTexxvOES(java.nio.IntBuffer);
+    method public void glEnable(int);
+    method public void glEnableClientState(int);
+    method public void glLoadPaletteFromModelViewMatrixOES();
+    method public void glMatrixIndexPointerOES(int, int, int, java.nio.Buffer);
+    method public void glMatrixIndexPointerOES(int, int, int, int);
+    method public void glTexParameterfv(int, int, float[], int);
+    method public void glWeightPointerOES(int, int, int, java.nio.Buffer);
+    method public void glWeightPointerOES(int, int, int, int);
     field public static final int GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 35742; // 0x8b9e
     field public static final int GL_MATRIX_INDEX_ARRAY_OES = 34884; // 0x8844
     field public static final int GL_MATRIX_INDEX_ARRAY_POINTER_OES = 34889; // 0x8849
@@ -75072,60 +74829,60 @@
     field public static final int GL_WEIGHT_ARRAY_TYPE_OES = 34473; // 0x86a9
   }
 
-  public abstract interface GL11ExtensionPack implements javax.microedition.khronos.opengles.GL {
-    method public abstract void glBindFramebufferOES(int, int);
-    method public abstract void glBindRenderbufferOES(int, int);
-    method public abstract void glBindTexture(int, int);
-    method public abstract void glBlendEquation(int);
-    method public abstract void glBlendEquationSeparate(int, int);
-    method public abstract void glBlendFuncSeparate(int, int, int, int);
-    method public abstract int glCheckFramebufferStatusOES(int);
-    method public abstract void glCompressedTexImage2D(int, int, int, int, int, int, int, java.nio.Buffer);
-    method public abstract void glCopyTexImage2D(int, int, int, int, int, int, int, int);
-    method public abstract void glDeleteFramebuffersOES(int, int[], int);
-    method public abstract void glDeleteFramebuffersOES(int, java.nio.IntBuffer);
-    method public abstract void glDeleteRenderbuffersOES(int, int[], int);
-    method public abstract void glDeleteRenderbuffersOES(int, java.nio.IntBuffer);
-    method public abstract void glEnable(int);
-    method public abstract void glFramebufferRenderbufferOES(int, int, int, int);
-    method public abstract void glFramebufferTexture2DOES(int, int, int, int, int);
-    method public abstract void glGenFramebuffersOES(int, int[], int);
-    method public abstract void glGenFramebuffersOES(int, java.nio.IntBuffer);
-    method public abstract void glGenRenderbuffersOES(int, int[], int);
-    method public abstract void glGenRenderbuffersOES(int, java.nio.IntBuffer);
-    method public abstract void glGenerateMipmapOES(int);
-    method public abstract void glGetFramebufferAttachmentParameterivOES(int, int, int, int[], int);
-    method public abstract void glGetFramebufferAttachmentParameterivOES(int, int, int, java.nio.IntBuffer);
-    method public abstract void glGetIntegerv(int, int[], int);
-    method public abstract void glGetIntegerv(int, java.nio.IntBuffer);
-    method public abstract void glGetRenderbufferParameterivOES(int, int, int[], int);
-    method public abstract void glGetRenderbufferParameterivOES(int, int, java.nio.IntBuffer);
-    method public abstract void glGetTexGenfv(int, int, float[], int);
-    method public abstract void glGetTexGenfv(int, int, java.nio.FloatBuffer);
-    method public abstract void glGetTexGeniv(int, int, int[], int);
-    method public abstract void glGetTexGeniv(int, int, java.nio.IntBuffer);
-    method public abstract void glGetTexGenxv(int, int, int[], int);
-    method public abstract void glGetTexGenxv(int, int, java.nio.IntBuffer);
-    method public abstract boolean glIsFramebufferOES(int);
-    method public abstract boolean glIsRenderbufferOES(int);
-    method public abstract void glRenderbufferStorageOES(int, int, int, int);
-    method public abstract void glStencilOp(int, int, int);
-    method public abstract void glTexEnvf(int, int, float);
-    method public abstract void glTexEnvfv(int, int, float[], int);
-    method public abstract void glTexEnvfv(int, int, java.nio.FloatBuffer);
-    method public abstract void glTexEnvx(int, int, int);
-    method public abstract void glTexEnvxv(int, int, int[], int);
-    method public abstract void glTexEnvxv(int, int, java.nio.IntBuffer);
-    method public abstract void glTexGenf(int, int, float);
-    method public abstract void glTexGenfv(int, int, float[], int);
-    method public abstract void glTexGenfv(int, int, java.nio.FloatBuffer);
-    method public abstract void glTexGeni(int, int, int);
-    method public abstract void glTexGeniv(int, int, int[], int);
-    method public abstract void glTexGeniv(int, int, java.nio.IntBuffer);
-    method public abstract void glTexGenx(int, int, int);
-    method public abstract void glTexGenxv(int, int, int[], int);
-    method public abstract void glTexGenxv(int, int, java.nio.IntBuffer);
-    method public abstract void glTexParameterf(int, int, float);
+  public interface GL11ExtensionPack extends javax.microedition.khronos.opengles.GL {
+    method public void glBindFramebufferOES(int, int);
+    method public void glBindRenderbufferOES(int, int);
+    method public void glBindTexture(int, int);
+    method public void glBlendEquation(int);
+    method public void glBlendEquationSeparate(int, int);
+    method public void glBlendFuncSeparate(int, int, int, int);
+    method public int glCheckFramebufferStatusOES(int);
+    method public void glCompressedTexImage2D(int, int, int, int, int, int, int, java.nio.Buffer);
+    method public void glCopyTexImage2D(int, int, int, int, int, int, int, int);
+    method public void glDeleteFramebuffersOES(int, int[], int);
+    method public void glDeleteFramebuffersOES(int, java.nio.IntBuffer);
+    method public void glDeleteRenderbuffersOES(int, int[], int);
+    method public void glDeleteRenderbuffersOES(int, java.nio.IntBuffer);
+    method public void glEnable(int);
+    method public void glFramebufferRenderbufferOES(int, int, int, int);
+    method public void glFramebufferTexture2DOES(int, int, int, int, int);
+    method public void glGenFramebuffersOES(int, int[], int);
+    method public void glGenFramebuffersOES(int, java.nio.IntBuffer);
+    method public void glGenRenderbuffersOES(int, int[], int);
+    method public void glGenRenderbuffersOES(int, java.nio.IntBuffer);
+    method public void glGenerateMipmapOES(int);
+    method public void glGetFramebufferAttachmentParameterivOES(int, int, int, int[], int);
+    method public void glGetFramebufferAttachmentParameterivOES(int, int, int, java.nio.IntBuffer);
+    method public void glGetIntegerv(int, int[], int);
+    method public void glGetIntegerv(int, java.nio.IntBuffer);
+    method public void glGetRenderbufferParameterivOES(int, int, int[], int);
+    method public void glGetRenderbufferParameterivOES(int, int, java.nio.IntBuffer);
+    method public void glGetTexGenfv(int, int, float[], int);
+    method public void glGetTexGenfv(int, int, java.nio.FloatBuffer);
+    method public void glGetTexGeniv(int, int, int[], int);
+    method public void glGetTexGeniv(int, int, java.nio.IntBuffer);
+    method public void glGetTexGenxv(int, int, int[], int);
+    method public void glGetTexGenxv(int, int, java.nio.IntBuffer);
+    method public boolean glIsFramebufferOES(int);
+    method public boolean glIsRenderbufferOES(int);
+    method public void glRenderbufferStorageOES(int, int, int, int);
+    method public void glStencilOp(int, int, int);
+    method public void glTexEnvf(int, int, float);
+    method public void glTexEnvfv(int, int, float[], int);
+    method public void glTexEnvfv(int, int, java.nio.FloatBuffer);
+    method public void glTexEnvx(int, int, int);
+    method public void glTexEnvxv(int, int, int[], int);
+    method public void glTexEnvxv(int, int, java.nio.IntBuffer);
+    method public void glTexGenf(int, int, float);
+    method public void glTexGenfv(int, int, float[], int);
+    method public void glTexGenfv(int, int, java.nio.FloatBuffer);
+    method public void glTexGeni(int, int, int);
+    method public void glTexGeniv(int, int, int[], int);
+    method public void glTexGeniv(int, int, java.nio.IntBuffer);
+    method public void glTexGenx(int, int, int);
+    method public void glTexGenxv(int, int, int[], int);
+    method public void glTexGenxv(int, int, java.nio.IntBuffer);
+    method public void glTexParameterf(int, int, float);
     field public static final int GL_BLEND_DST_ALPHA = 32970; // 0x80ca
     field public static final int GL_BLEND_DST_RGB = 32968; // 0x80c8
     field public static final int GL_BLEND_EQUATION = 32777; // 0x8009
@@ -75230,8 +74987,8 @@
   public abstract class SocketFactory {
     ctor protected SocketFactory();
     method public java.net.Socket createSocket() throws java.io.IOException;
-    method public abstract java.net.Socket createSocket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
-    method public abstract java.net.Socket createSocket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException, java.net.UnknownHostException;
+    method public abstract java.net.Socket createSocket(String, int) throws java.io.IOException, java.net.UnknownHostException;
+    method public abstract java.net.Socket createSocket(String, int, java.net.InetAddress, int) throws java.io.IOException, java.net.UnknownHostException;
     method public abstract java.net.Socket createSocket(java.net.InetAddress, int) throws java.io.IOException;
     method public abstract java.net.Socket createSocket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
     method public static javax.net.SocketFactory getDefault();
@@ -75248,14 +75005,14 @@
 
   public abstract class ExtendedSSLSession implements javax.net.ssl.SSLSession {
     ctor public ExtendedSSLSession();
-    method public abstract java.lang.String[] getLocalSupportedSignatureAlgorithms();
-    method public abstract java.lang.String[] getPeerSupportedSignatureAlgorithms();
+    method public abstract String[] getLocalSupportedSignatureAlgorithms();
+    method public abstract String[] getPeerSupportedSignatureAlgorithms();
     method public java.util.List<javax.net.ssl.SNIServerName> getRequestedServerNames();
   }
 
   public class HandshakeCompletedEvent extends java.util.EventObject {
     ctor public HandshakeCompletedEvent(javax.net.ssl.SSLSocket, javax.net.ssl.SSLSession);
-    method public java.lang.String getCipherSuite();
+    method public String getCipherSuite();
     method public java.security.cert.Certificate[] getLocalCertificates();
     method public java.security.Principal getLocalPrincipal();
     method public javax.security.cert.X509Certificate[] getPeerCertificateChain() throws javax.net.ssl.SSLPeerUnverifiedException;
@@ -75265,17 +75022,17 @@
     method public javax.net.ssl.SSLSocket getSocket();
   }
 
-  public abstract interface HandshakeCompletedListener implements java.util.EventListener {
-    method public abstract void handshakeCompleted(javax.net.ssl.HandshakeCompletedEvent);
+  public interface HandshakeCompletedListener extends java.util.EventListener {
+    method public void handshakeCompleted(javax.net.ssl.HandshakeCompletedEvent);
   }
 
-  public abstract interface HostnameVerifier {
-    method public abstract boolean verify(java.lang.String, javax.net.ssl.SSLSession);
+  public interface HostnameVerifier {
+    method public boolean verify(String, javax.net.ssl.SSLSession);
   }
 
   public abstract class HttpsURLConnection extends java.net.HttpURLConnection {
     ctor protected HttpsURLConnection(java.net.URL);
-    method public abstract java.lang.String getCipherSuite();
+    method public abstract String getCipherSuite();
     method public static javax.net.ssl.HostnameVerifier getDefaultHostnameVerifier();
     method public static javax.net.ssl.SSLSocketFactory getDefaultSSLSocketFactory();
     method public javax.net.ssl.HostnameVerifier getHostnameVerifier();
@@ -75291,16 +75048,16 @@
     field protected javax.net.ssl.HostnameVerifier hostnameVerifier;
   }
 
-  public abstract interface KeyManager {
+  public interface KeyManager {
   }
 
   public class KeyManagerFactory {
-    ctor protected KeyManagerFactory(javax.net.ssl.KeyManagerFactorySpi, java.security.Provider, java.lang.String);
-    method public final java.lang.String getAlgorithm();
-    method public static final java.lang.String getDefaultAlgorithm();
-    method public static final javax.net.ssl.KeyManagerFactory getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static final javax.net.ssl.KeyManagerFactory getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static final javax.net.ssl.KeyManagerFactory getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    ctor protected KeyManagerFactory(javax.net.ssl.KeyManagerFactorySpi, java.security.Provider, String);
+    method public final String getAlgorithm();
+    method public static final String getDefaultAlgorithm();
+    method public static final javax.net.ssl.KeyManagerFactory getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static final javax.net.ssl.KeyManagerFactory getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static final javax.net.ssl.KeyManagerFactory getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final javax.net.ssl.KeyManager[] getKeyManagers();
     method public final java.security.Provider getProvider();
     method public final void init(java.security.KeyStore, char[]) throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
@@ -75320,14 +75077,14 @@
     method public java.util.List<java.security.KeyStore.Builder> getParameters();
   }
 
-  public abstract interface ManagerFactoryParameters {
+  public interface ManagerFactoryParameters {
   }
 
   public final class SNIHostName extends javax.net.ssl.SNIServerName {
-    ctor public SNIHostName(java.lang.String);
+    ctor public SNIHostName(String);
     ctor public SNIHostName(byte[]);
-    method public static javax.net.ssl.SNIMatcher createSNIMatcher(java.lang.String);
-    method public java.lang.String getAsciiName();
+    method public static javax.net.ssl.SNIMatcher createSNIMatcher(String);
+    method public String getAsciiName();
   }
 
   public abstract class SNIMatcher {
@@ -75343,29 +75100,29 @@
   }
 
   public class SSLContext {
-    ctor protected SSLContext(javax.net.ssl.SSLContextSpi, java.security.Provider, java.lang.String);
+    ctor protected SSLContext(javax.net.ssl.SSLContextSpi, java.security.Provider, String);
     method public final javax.net.ssl.SSLEngine createSSLEngine();
-    method public final javax.net.ssl.SSLEngine createSSLEngine(java.lang.String, int);
+    method public final javax.net.ssl.SSLEngine createSSLEngine(String, int);
     method public final javax.net.ssl.SSLSessionContext getClientSessionContext();
-    method public static synchronized javax.net.ssl.SSLContext getDefault() throws java.security.NoSuchAlgorithmException;
+    method public static javax.net.ssl.SSLContext getDefault() throws java.security.NoSuchAlgorithmException;
     method public final javax.net.ssl.SSLParameters getDefaultSSLParameters();
-    method public static javax.net.ssl.SSLContext getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static javax.net.ssl.SSLContext getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static javax.net.ssl.SSLContext getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
-    method public final java.lang.String getProtocol();
+    method public static javax.net.ssl.SSLContext getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static javax.net.ssl.SSLContext getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static javax.net.ssl.SSLContext getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    method public final String getProtocol();
     method public final java.security.Provider getProvider();
     method public final javax.net.ssl.SSLSessionContext getServerSessionContext();
     method public final javax.net.ssl.SSLServerSocketFactory getServerSocketFactory();
     method public final javax.net.ssl.SSLSocketFactory getSocketFactory();
     method public final javax.net.ssl.SSLParameters getSupportedSSLParameters();
     method public final void init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom) throws java.security.KeyManagementException;
-    method public static synchronized void setDefault(javax.net.ssl.SSLContext);
+    method public static void setDefault(javax.net.ssl.SSLContext);
   }
 
   public abstract class SSLContextSpi {
     ctor public SSLContextSpi();
     method protected abstract javax.net.ssl.SSLEngine engineCreateSSLEngine();
-    method protected abstract javax.net.ssl.SSLEngine engineCreateSSLEngine(java.lang.String, int);
+    method protected abstract javax.net.ssl.SSLEngine engineCreateSSLEngine(String, int);
     method protected abstract javax.net.ssl.SSLSessionContext engineGetClientSessionContext();
     method protected javax.net.ssl.SSLParameters engineGetDefaultSSLParameters();
     method protected abstract javax.net.ssl.SSLSessionContext engineGetServerSessionContext();
@@ -75377,34 +75134,34 @@
 
   public abstract class SSLEngine {
     ctor protected SSLEngine();
-    ctor protected SSLEngine(java.lang.String, int);
+    ctor protected SSLEngine(String, int);
     method public abstract void beginHandshake() throws javax.net.ssl.SSLException;
     method public abstract void closeInbound() throws javax.net.ssl.SSLException;
     method public abstract void closeOutbound();
-    method public java.lang.String getApplicationProtocol();
-    method public abstract java.lang.Runnable getDelegatedTask();
+    method public String getApplicationProtocol();
+    method public abstract Runnable getDelegatedTask();
     method public abstract boolean getEnableSessionCreation();
-    method public abstract java.lang.String[] getEnabledCipherSuites();
-    method public abstract java.lang.String[] getEnabledProtocols();
-    method public java.lang.String getHandshakeApplicationProtocol();
-    method public java.util.function.BiFunction<javax.net.ssl.SSLEngine, java.util.List<java.lang.String>, java.lang.String> getHandshakeApplicationProtocolSelector();
+    method public abstract String[] getEnabledCipherSuites();
+    method public abstract String[] getEnabledProtocols();
+    method public String getHandshakeApplicationProtocol();
+    method public java.util.function.BiFunction<javax.net.ssl.SSLEngine,java.util.List<java.lang.String>,java.lang.String> getHandshakeApplicationProtocolSelector();
     method public javax.net.ssl.SSLSession getHandshakeSession();
     method public abstract javax.net.ssl.SSLEngineResult.HandshakeStatus getHandshakeStatus();
     method public abstract boolean getNeedClientAuth();
-    method public java.lang.String getPeerHost();
+    method public String getPeerHost();
     method public int getPeerPort();
     method public javax.net.ssl.SSLParameters getSSLParameters();
     method public abstract javax.net.ssl.SSLSession getSession();
-    method public abstract java.lang.String[] getSupportedCipherSuites();
-    method public abstract java.lang.String[] getSupportedProtocols();
+    method public abstract String[] getSupportedCipherSuites();
+    method public abstract String[] getSupportedProtocols();
     method public abstract boolean getUseClientMode();
     method public abstract boolean getWantClientAuth();
     method public abstract boolean isInboundDone();
     method public abstract boolean isOutboundDone();
     method public abstract void setEnableSessionCreation(boolean);
-    method public abstract void setEnabledCipherSuites(java.lang.String[]);
-    method public abstract void setEnabledProtocols(java.lang.String[]);
-    method public void setHandshakeApplicationProtocolSelector(java.util.function.BiFunction<javax.net.ssl.SSLEngine, java.util.List<java.lang.String>, java.lang.String>);
+    method public abstract void setEnabledCipherSuites(String[]);
+    method public abstract void setEnabledProtocols(String[]);
+    method public void setHandshakeApplicationProtocolSelector(java.util.function.BiFunction<javax.net.ssl.SSLEngine,java.util.List<java.lang.String>,java.lang.String>);
     method public abstract void setNeedClientAuth(boolean);
     method public void setSSLParameters(javax.net.ssl.SSLParameters);
     method public abstract void setUseClientMode(boolean);
@@ -75425,9 +75182,7 @@
     method public final javax.net.ssl.SSLEngineResult.Status getStatus();
   }
 
-  public static final class SSLEngineResult.HandshakeStatus extends java.lang.Enum {
-    method public static javax.net.ssl.SSLEngineResult.HandshakeStatus valueOf(java.lang.String);
-    method public static final javax.net.ssl.SSLEngineResult.HandshakeStatus[] values();
+  public enum SSLEngineResult.HandshakeStatus {
     enum_constant public static final javax.net.ssl.SSLEngineResult.HandshakeStatus FINISHED;
     enum_constant public static final javax.net.ssl.SSLEngineResult.HandshakeStatus NEED_TASK;
     enum_constant public static final javax.net.ssl.SSLEngineResult.HandshakeStatus NEED_UNWRAP;
@@ -75435,9 +75190,7 @@
     enum_constant public static final javax.net.ssl.SSLEngineResult.HandshakeStatus NOT_HANDSHAKING;
   }
 
-  public static final class SSLEngineResult.Status extends java.lang.Enum {
-    method public static javax.net.ssl.SSLEngineResult.Status valueOf(java.lang.String);
-    method public static final javax.net.ssl.SSLEngineResult.Status[] values();
+  public enum SSLEngineResult.Status {
     enum_constant public static final javax.net.ssl.SSLEngineResult.Status BUFFER_OVERFLOW;
     enum_constant public static final javax.net.ssl.SSLEngineResult.Status BUFFER_UNDERFLOW;
     enum_constant public static final javax.net.ssl.SSLEngineResult.Status CLOSED;
@@ -75445,39 +75198,39 @@
   }
 
   public class SSLException extends java.io.IOException {
-    ctor public SSLException(java.lang.String);
-    ctor public SSLException(java.lang.String, java.lang.Throwable);
-    ctor public SSLException(java.lang.Throwable);
+    ctor public SSLException(String);
+    ctor public SSLException(String, Throwable);
+    ctor public SSLException(Throwable);
   }
 
   public class SSLHandshakeException extends javax.net.ssl.SSLException {
-    ctor public SSLHandshakeException(java.lang.String);
+    ctor public SSLHandshakeException(String);
   }
 
   public class SSLKeyException extends javax.net.ssl.SSLException {
-    ctor public SSLKeyException(java.lang.String);
+    ctor public SSLKeyException(String);
   }
 
   public class SSLParameters {
     ctor public SSLParameters();
-    ctor public SSLParameters(java.lang.String[]);
-    ctor public SSLParameters(java.lang.String[], java.lang.String[]);
+    ctor public SSLParameters(String[]);
+    ctor public SSLParameters(String[], String[]);
     method public java.security.AlgorithmConstraints getAlgorithmConstraints();
-    method public java.lang.String[] getApplicationProtocols();
-    method public java.lang.String[] getCipherSuites();
-    method public java.lang.String getEndpointIdentificationAlgorithm();
+    method public String[] getApplicationProtocols();
+    method public String[] getCipherSuites();
+    method public String getEndpointIdentificationAlgorithm();
     method public boolean getNeedClientAuth();
-    method public java.lang.String[] getProtocols();
+    method public String[] getProtocols();
     method public final java.util.Collection<javax.net.ssl.SNIMatcher> getSNIMatchers();
     method public final java.util.List<javax.net.ssl.SNIServerName> getServerNames();
     method public final boolean getUseCipherSuitesOrder();
     method public boolean getWantClientAuth();
     method public void setAlgorithmConstraints(java.security.AlgorithmConstraints);
-    method public void setApplicationProtocols(java.lang.String[]);
-    method public void setCipherSuites(java.lang.String[]);
-    method public void setEndpointIdentificationAlgorithm(java.lang.String);
+    method public void setApplicationProtocols(String[]);
+    method public void setCipherSuites(String[]);
+    method public void setEndpointIdentificationAlgorithm(String);
     method public void setNeedClientAuth(boolean);
-    method public void setProtocols(java.lang.String[]);
+    method public void setProtocols(String[]);
     method public final void setSNIMatchers(java.util.Collection<javax.net.ssl.SNIMatcher>);
     method public final void setServerNames(java.util.List<javax.net.ssl.SNIServerName>);
     method public final void setUseCipherSuitesOrder(boolean);
@@ -75485,16 +75238,16 @@
   }
 
   public class SSLPeerUnverifiedException extends javax.net.ssl.SSLException {
-    ctor public SSLPeerUnverifiedException(java.lang.String);
+    ctor public SSLPeerUnverifiedException(String);
   }
 
   public final class SSLPermission extends java.security.BasicPermission {
-    ctor public SSLPermission(java.lang.String);
-    ctor public SSLPermission(java.lang.String, java.lang.String);
+    ctor public SSLPermission(String);
+    ctor public SSLPermission(String, String);
   }
 
   public class SSLProtocolException extends javax.net.ssl.SSLException {
-    ctor public SSLProtocolException(java.lang.String);
+    ctor public SSLProtocolException(String);
   }
 
   public abstract class SSLServerSocket extends java.net.ServerSocket {
@@ -75503,17 +75256,17 @@
     ctor protected SSLServerSocket(int, int) throws java.io.IOException;
     ctor protected SSLServerSocket(int, int, java.net.InetAddress) throws java.io.IOException;
     method public abstract boolean getEnableSessionCreation();
-    method public abstract java.lang.String[] getEnabledCipherSuites();
-    method public abstract java.lang.String[] getEnabledProtocols();
+    method public abstract String[] getEnabledCipherSuites();
+    method public abstract String[] getEnabledProtocols();
     method public abstract boolean getNeedClientAuth();
     method public javax.net.ssl.SSLParameters getSSLParameters();
-    method public abstract java.lang.String[] getSupportedCipherSuites();
-    method public abstract java.lang.String[] getSupportedProtocols();
+    method public abstract String[] getSupportedCipherSuites();
+    method public abstract String[] getSupportedProtocols();
     method public abstract boolean getUseClientMode();
     method public abstract boolean getWantClientAuth();
     method public abstract void setEnableSessionCreation(boolean);
-    method public abstract void setEnabledCipherSuites(java.lang.String[]);
-    method public abstract void setEnabledProtocols(java.lang.String[]);
+    method public abstract void setEnabledCipherSuites(String[]);
+    method public abstract void setEnabledProtocols(String[]);
     method public abstract void setNeedClientAuth(boolean);
     method public void setSSLParameters(javax.net.ssl.SSLParameters);
     method public abstract void setUseClientMode(boolean);
@@ -75522,81 +75275,81 @@
 
   public abstract class SSLServerSocketFactory extends javax.net.ServerSocketFactory {
     ctor protected SSLServerSocketFactory();
-    method public static synchronized javax.net.ServerSocketFactory getDefault();
-    method public abstract java.lang.String[] getDefaultCipherSuites();
-    method public abstract java.lang.String[] getSupportedCipherSuites();
+    method public static javax.net.ServerSocketFactory getDefault();
+    method public abstract String[] getDefaultCipherSuites();
+    method public abstract String[] getSupportedCipherSuites();
   }
 
-  public abstract interface SSLSession {
-    method public abstract int getApplicationBufferSize();
-    method public abstract java.lang.String getCipherSuite();
-    method public abstract long getCreationTime();
-    method public abstract byte[] getId();
-    method public abstract long getLastAccessedTime();
-    method public abstract java.security.cert.Certificate[] getLocalCertificates();
-    method public abstract java.security.Principal getLocalPrincipal();
-    method public abstract int getPacketBufferSize();
-    method public abstract javax.security.cert.X509Certificate[] getPeerCertificateChain() throws javax.net.ssl.SSLPeerUnverifiedException;
-    method public abstract java.security.cert.Certificate[] getPeerCertificates() throws javax.net.ssl.SSLPeerUnverifiedException;
-    method public abstract java.lang.String getPeerHost();
-    method public abstract int getPeerPort();
-    method public abstract java.security.Principal getPeerPrincipal() throws javax.net.ssl.SSLPeerUnverifiedException;
-    method public abstract java.lang.String getProtocol();
-    method public abstract javax.net.ssl.SSLSessionContext getSessionContext();
-    method public abstract java.lang.Object getValue(java.lang.String);
-    method public abstract java.lang.String[] getValueNames();
-    method public abstract void invalidate();
-    method public abstract boolean isValid();
-    method public abstract void putValue(java.lang.String, java.lang.Object);
-    method public abstract void removeValue(java.lang.String);
+  public interface SSLSession {
+    method public int getApplicationBufferSize();
+    method public String getCipherSuite();
+    method public long getCreationTime();
+    method public byte[] getId();
+    method public long getLastAccessedTime();
+    method public java.security.cert.Certificate[] getLocalCertificates();
+    method public java.security.Principal getLocalPrincipal();
+    method public int getPacketBufferSize();
+    method public javax.security.cert.X509Certificate[] getPeerCertificateChain() throws javax.net.ssl.SSLPeerUnverifiedException;
+    method public java.security.cert.Certificate[] getPeerCertificates() throws javax.net.ssl.SSLPeerUnverifiedException;
+    method public String getPeerHost();
+    method public int getPeerPort();
+    method public java.security.Principal getPeerPrincipal() throws javax.net.ssl.SSLPeerUnverifiedException;
+    method public String getProtocol();
+    method public javax.net.ssl.SSLSessionContext getSessionContext();
+    method public Object getValue(String);
+    method public String[] getValueNames();
+    method public void invalidate();
+    method public boolean isValid();
+    method public void putValue(String, Object);
+    method public void removeValue(String);
   }
 
   public class SSLSessionBindingEvent extends java.util.EventObject {
-    ctor public SSLSessionBindingEvent(javax.net.ssl.SSLSession, java.lang.String);
-    method public java.lang.String getName();
+    ctor public SSLSessionBindingEvent(javax.net.ssl.SSLSession, String);
+    method public String getName();
     method public javax.net.ssl.SSLSession getSession();
   }
 
-  public abstract interface SSLSessionBindingListener implements java.util.EventListener {
-    method public abstract void valueBound(javax.net.ssl.SSLSessionBindingEvent);
-    method public abstract void valueUnbound(javax.net.ssl.SSLSessionBindingEvent);
+  public interface SSLSessionBindingListener extends java.util.EventListener {
+    method public void valueBound(javax.net.ssl.SSLSessionBindingEvent);
+    method public void valueUnbound(javax.net.ssl.SSLSessionBindingEvent);
   }
 
-  public abstract interface SSLSessionContext {
-    method public abstract java.util.Enumeration<byte[]> getIds();
-    method public abstract javax.net.ssl.SSLSession getSession(byte[]);
-    method public abstract int getSessionCacheSize();
-    method public abstract int getSessionTimeout();
-    method public abstract void setSessionCacheSize(int) throws java.lang.IllegalArgumentException;
-    method public abstract void setSessionTimeout(int) throws java.lang.IllegalArgumentException;
+  public interface SSLSessionContext {
+    method public java.util.Enumeration<byte[]> getIds();
+    method public javax.net.ssl.SSLSession getSession(byte[]);
+    method public int getSessionCacheSize();
+    method public int getSessionTimeout();
+    method public void setSessionCacheSize(int) throws java.lang.IllegalArgumentException;
+    method public void setSessionTimeout(int) throws java.lang.IllegalArgumentException;
   }
 
   public abstract class SSLSocket extends java.net.Socket {
     ctor protected SSLSocket();
-    ctor protected SSLSocket(java.lang.String, int) throws java.io.IOException, java.net.UnknownHostException;
+    ctor protected SSLSocket(String, int) throws java.io.IOException, java.net.UnknownHostException;
     ctor protected SSLSocket(java.net.InetAddress, int) throws java.io.IOException;
-    ctor protected SSLSocket(java.lang.String, int, java.net.InetAddress, int) throws java.io.IOException, java.net.UnknownHostException;
+    ctor protected SSLSocket(String, int, java.net.InetAddress, int) throws java.io.IOException, java.net.UnknownHostException;
     ctor protected SSLSocket(java.net.InetAddress, int, java.net.InetAddress, int) throws java.io.IOException;
     method public abstract void addHandshakeCompletedListener(javax.net.ssl.HandshakeCompletedListener);
-    method public java.lang.String getApplicationProtocol();
+    method public String getApplicationProtocol();
     method public abstract boolean getEnableSessionCreation();
-    method public abstract java.lang.String[] getEnabledCipherSuites();
-    method public abstract java.lang.String[] getEnabledProtocols();
-    method public java.lang.String getHandshakeApplicationProtocol();
-    method public java.util.function.BiFunction<javax.net.ssl.SSLSocket, java.util.List<java.lang.String>, java.lang.String> getHandshakeApplicationProtocolSelector();
+    method public abstract String[] getEnabledCipherSuites();
+    method public abstract String[] getEnabledProtocols();
+    method public String getHandshakeApplicationProtocol();
+    method public java.util.function.BiFunction<javax.net.ssl.SSLSocket,java.util.List<java.lang.String>,java.lang.String> getHandshakeApplicationProtocolSelector();
     method public javax.net.ssl.SSLSession getHandshakeSession();
     method public abstract boolean getNeedClientAuth();
     method public javax.net.ssl.SSLParameters getSSLParameters();
     method public abstract javax.net.ssl.SSLSession getSession();
-    method public abstract java.lang.String[] getSupportedCipherSuites();
-    method public abstract java.lang.String[] getSupportedProtocols();
+    method public abstract String[] getSupportedCipherSuites();
+    method public abstract String[] getSupportedProtocols();
     method public abstract boolean getUseClientMode();
     method public abstract boolean getWantClientAuth();
     method public abstract void removeHandshakeCompletedListener(javax.net.ssl.HandshakeCompletedListener);
     method public abstract void setEnableSessionCreation(boolean);
-    method public abstract void setEnabledCipherSuites(java.lang.String[]);
-    method public abstract void setEnabledProtocols(java.lang.String[]);
-    method public void setHandshakeApplicationProtocolSelector(java.util.function.BiFunction<javax.net.ssl.SSLSocket, java.util.List<java.lang.String>, java.lang.String>);
+    method public abstract void setEnabledCipherSuites(String[]);
+    method public abstract void setEnabledProtocols(String[]);
+    method public void setHandshakeApplicationProtocolSelector(java.util.function.BiFunction<javax.net.ssl.SSLSocket,java.util.List<java.lang.String>,java.lang.String>);
     method public abstract void setNeedClientAuth(boolean);
     method public void setSSLParameters(javax.net.ssl.SSLParameters);
     method public abstract void setUseClientMode(boolean);
@@ -75606,26 +75359,26 @@
 
   public abstract class SSLSocketFactory extends javax.net.SocketFactory {
     ctor public SSLSocketFactory();
-    method public abstract java.net.Socket createSocket(java.net.Socket, java.lang.String, int, boolean) throws java.io.IOException;
-    method public static synchronized javax.net.SocketFactory getDefault();
-    method public abstract java.lang.String[] getDefaultCipherSuites();
-    method public abstract java.lang.String[] getSupportedCipherSuites();
+    method public abstract java.net.Socket createSocket(java.net.Socket, String, int, boolean) throws java.io.IOException;
+    method public static javax.net.SocketFactory getDefault();
+    method public abstract String[] getDefaultCipherSuites();
+    method public abstract String[] getSupportedCipherSuites();
   }
 
   public final class StandardConstants {
     field public static final int SNI_HOST_NAME = 0; // 0x0
   }
 
-  public abstract interface TrustManager {
+  public interface TrustManager {
   }
 
   public class TrustManagerFactory {
-    ctor protected TrustManagerFactory(javax.net.ssl.TrustManagerFactorySpi, java.security.Provider, java.lang.String);
-    method public final java.lang.String getAlgorithm();
-    method public static final java.lang.String getDefaultAlgorithm();
-    method public static final javax.net.ssl.TrustManagerFactory getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
-    method public static final javax.net.ssl.TrustManagerFactory getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
-    method public static final javax.net.ssl.TrustManagerFactory getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
+    ctor protected TrustManagerFactory(javax.net.ssl.TrustManagerFactorySpi, java.security.Provider, String);
+    method public final String getAlgorithm();
+    method public static final String getDefaultAlgorithm();
+    method public static final javax.net.ssl.TrustManagerFactory getInstance(String) throws java.security.NoSuchAlgorithmException;
+    method public static final javax.net.ssl.TrustManagerFactory getInstance(String, String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
+    method public static final javax.net.ssl.TrustManagerFactory getInstance(String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
     method public final java.security.Provider getProvider();
     method public final javax.net.ssl.TrustManager[] getTrustManagers();
     method public final void init(java.security.KeyStore) throws java.security.KeyStoreException;
@@ -75641,31 +75394,31 @@
 
   public abstract class X509ExtendedKeyManager implements javax.net.ssl.X509KeyManager {
     ctor protected X509ExtendedKeyManager();
-    method public java.lang.String chooseEngineClientAlias(java.lang.String[], java.security.Principal[], javax.net.ssl.SSLEngine);
-    method public java.lang.String chooseEngineServerAlias(java.lang.String, java.security.Principal[], javax.net.ssl.SSLEngine);
+    method public String chooseEngineClientAlias(String[], java.security.Principal[], javax.net.ssl.SSLEngine);
+    method public String chooseEngineServerAlias(String, java.security.Principal[], javax.net.ssl.SSLEngine);
   }
 
   public abstract class X509ExtendedTrustManager implements javax.net.ssl.X509TrustManager {
     ctor public X509ExtendedTrustManager();
-    method public abstract void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket) throws java.security.cert.CertificateException;
-    method public abstract void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine) throws java.security.cert.CertificateException;
-    method public abstract void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket) throws java.security.cert.CertificateException;
-    method public abstract void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine) throws java.security.cert.CertificateException;
+    method public abstract void checkClientTrusted(java.security.cert.X509Certificate[], String, java.net.Socket) throws java.security.cert.CertificateException;
+    method public abstract void checkClientTrusted(java.security.cert.X509Certificate[], String, javax.net.ssl.SSLEngine) throws java.security.cert.CertificateException;
+    method public abstract void checkServerTrusted(java.security.cert.X509Certificate[], String, java.net.Socket) throws java.security.cert.CertificateException;
+    method public abstract void checkServerTrusted(java.security.cert.X509Certificate[], String, javax.net.ssl.SSLEngine) throws java.security.cert.CertificateException;
   }
 
-  public abstract interface X509KeyManager implements javax.net.ssl.KeyManager {
-    method public abstract java.lang.String chooseClientAlias(java.lang.String[], java.security.Principal[], java.net.Socket);
-    method public abstract java.lang.String chooseServerAlias(java.lang.String, java.security.Principal[], java.net.Socket);
-    method public abstract java.security.cert.X509Certificate[] getCertificateChain(java.lang.String);
-    method public abstract java.lang.String[] getClientAliases(java.lang.String, java.security.Principal[]);
-    method public abstract java.security.PrivateKey getPrivateKey(java.lang.String);
-    method public abstract java.lang.String[] getServerAliases(java.lang.String, java.security.Principal[]);
+  public interface X509KeyManager extends javax.net.ssl.KeyManager {
+    method public String chooseClientAlias(String[], java.security.Principal[], java.net.Socket);
+    method public String chooseServerAlias(String, java.security.Principal[], java.net.Socket);
+    method public java.security.cert.X509Certificate[] getCertificateChain(String);
+    method public String[] getClientAliases(String, java.security.Principal[]);
+    method public java.security.PrivateKey getPrivateKey(String);
+    method public String[] getServerAliases(String, java.security.Principal[]);
   }
 
-  public abstract interface X509TrustManager implements javax.net.ssl.TrustManager {
-    method public abstract void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String) throws java.security.cert.CertificateException;
-    method public abstract void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String) throws java.security.cert.CertificateException;
-    method public abstract java.security.cert.X509Certificate[] getAcceptedIssuers();
+  public interface X509TrustManager extends javax.net.ssl.TrustManager {
+    method public void checkClientTrusted(java.security.cert.X509Certificate[], String) throws java.security.cert.CertificateException;
+    method public void checkServerTrusted(java.security.cert.X509Certificate[], String) throws java.security.cert.CertificateException;
+    method public java.security.cert.X509Certificate[] getAcceptedIssuers();
   }
 
 }
@@ -75673,25 +75426,25 @@
 package javax.security.auth {
 
   public final class AuthPermission extends java.security.BasicPermission {
-    ctor public AuthPermission(java.lang.String);
-    ctor public AuthPermission(java.lang.String, java.lang.String);
+    ctor public AuthPermission(String);
+    ctor public AuthPermission(String, String);
   }
 
   public class DestroyFailedException extends java.lang.Exception {
     ctor public DestroyFailedException();
-    ctor public DestroyFailedException(java.lang.String);
+    ctor public DestroyFailedException(String);
   }
 
-  public abstract interface Destroyable {
+  public interface Destroyable {
     method public default void destroy() throws javax.security.auth.DestroyFailedException;
     method public default boolean isDestroyed();
   }
 
   public final class PrivateCredentialPermission extends java.security.Permission {
-    ctor public PrivateCredentialPermission(java.lang.String, java.lang.String);
-    method public java.lang.String getActions();
-    method public java.lang.String getCredentialClass();
-    method public java.lang.String[][] getPrincipals();
+    ctor public PrivateCredentialPermission(String, String);
+    method public String getActions();
+    method public String getCredentialClass();
+    method public String[][] getPrincipals();
     method public boolean implies(java.security.Permission);
   }
 
@@ -75703,11 +75456,11 @@
     method public static <T> T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction<T>, java.security.AccessControlContext);
     method public static <T> T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedExceptionAction<T>, java.security.AccessControlContext) throws java.security.PrivilegedActionException;
     method public java.util.Set<java.security.Principal> getPrincipals();
-    method public <T extends java.security.Principal> java.util.Set<T> getPrincipals(java.lang.Class<T>);
+    method public <T extends java.security.Principal> java.util.Set<T> getPrincipals(Class<T>);
     method public java.util.Set<java.lang.Object> getPrivateCredentials();
-    method public <T> java.util.Set<T> getPrivateCredentials(java.lang.Class<T>);
+    method public <T> java.util.Set<T> getPrivateCredentials(Class<T>);
     method public java.util.Set<java.lang.Object> getPublicCredentials();
-    method public <T> java.util.Set<T> getPublicCredentials(java.lang.Class<T>);
+    method public <T> java.util.Set<T> getPublicCredentials(Class<T>);
     method public static javax.security.auth.Subject getSubject(java.security.AccessControlContext);
     method public boolean isReadOnly();
     method public void setReadOnly();
@@ -75723,25 +75476,25 @@
 
 package javax.security.auth.callback {
 
-  public abstract interface Callback {
+  public interface Callback {
   }
 
-  public abstract interface CallbackHandler {
-    method public abstract void handle(javax.security.auth.callback.Callback[]) throws java.io.IOException, javax.security.auth.callback.UnsupportedCallbackException;
+  public interface CallbackHandler {
+    method public void handle(javax.security.auth.callback.Callback[]) throws java.io.IOException, javax.security.auth.callback.UnsupportedCallbackException;
   }
 
   public class PasswordCallback implements javax.security.auth.callback.Callback java.io.Serializable {
-    ctor public PasswordCallback(java.lang.String, boolean);
+    ctor public PasswordCallback(String, boolean);
     method public void clearPassword();
     method public char[] getPassword();
-    method public java.lang.String getPrompt();
+    method public String getPrompt();
     method public boolean isEchoOn();
     method public void setPassword(char[]);
   }
 
   public class UnsupportedCallbackException extends java.lang.Exception {
     ctor public UnsupportedCallbackException(javax.security.auth.callback.Callback);
-    ctor public UnsupportedCallbackException(javax.security.auth.callback.Callback, java.lang.String);
+    ctor public UnsupportedCallbackException(javax.security.auth.callback.Callback, String);
     method public javax.security.auth.callback.Callback getCallback();
   }
 
@@ -75751,7 +75504,7 @@
 
   public class LoginException extends java.security.GeneralSecurityException {
     ctor public LoginException();
-    ctor public LoginException(java.lang.String);
+    ctor public LoginException(String);
   }
 
 }
@@ -75759,17 +75512,17 @@
 package javax.security.auth.x500 {
 
   public final class X500Principal implements java.security.Principal java.io.Serializable {
-    ctor public X500Principal(java.lang.String);
-    ctor public X500Principal(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
+    ctor public X500Principal(String);
+    ctor public X500Principal(String, java.util.Map<java.lang.String,java.lang.String>);
     ctor public X500Principal(byte[]);
     ctor public X500Principal(java.io.InputStream);
     method public byte[] getEncoded();
-    method public java.lang.String getName();
-    method public java.lang.String getName(java.lang.String);
-    method public java.lang.String getName(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
-    field public static final java.lang.String CANONICAL = "CANONICAL";
-    field public static final java.lang.String RFC1779 = "RFC1779";
-    field public static final java.lang.String RFC2253 = "RFC2253";
+    method public String getName();
+    method public String getName(String);
+    method public String getName(String, java.util.Map<java.lang.String,java.lang.String>);
+    field public static final String CANONICAL = "CANONICAL";
+    field public static final String RFC1779 = "RFC1779";
+    field public static final String RFC2253 = "RFC2253";
   }
 
 }
@@ -75780,34 +75533,34 @@
     ctor public Certificate();
     method public abstract byte[] getEncoded() throws javax.security.cert.CertificateEncodingException;
     method public abstract java.security.PublicKey getPublicKey();
-    method public abstract java.lang.String toString();
+    method public abstract String toString();
     method public abstract void verify(java.security.PublicKey) throws javax.security.cert.CertificateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.SignatureException;
-    method public abstract void verify(java.security.PublicKey, java.lang.String) throws javax.security.cert.CertificateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.SignatureException;
+    method public abstract void verify(java.security.PublicKey, String) throws javax.security.cert.CertificateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.SignatureException;
   }
 
   public class CertificateEncodingException extends javax.security.cert.CertificateException {
     ctor public CertificateEncodingException();
-    ctor public CertificateEncodingException(java.lang.String);
+    ctor public CertificateEncodingException(String);
   }
 
   public class CertificateException extends java.lang.Exception {
     ctor public CertificateException();
-    ctor public CertificateException(java.lang.String);
+    ctor public CertificateException(String);
   }
 
   public class CertificateExpiredException extends javax.security.cert.CertificateException {
     ctor public CertificateExpiredException();
-    ctor public CertificateExpiredException(java.lang.String);
+    ctor public CertificateExpiredException(String);
   }
 
   public class CertificateNotYetValidException extends javax.security.cert.CertificateException {
     ctor public CertificateNotYetValidException();
-    ctor public CertificateNotYetValidException(java.lang.String);
+    ctor public CertificateNotYetValidException(String);
   }
 
   public class CertificateParsingException extends javax.security.cert.CertificateException {
     ctor public CertificateParsingException();
-    ctor public CertificateParsingException(java.lang.String);
+    ctor public CertificateParsingException(String);
   }
 
   public abstract class X509Certificate extends javax.security.cert.Certificate {
@@ -75820,8 +75573,8 @@
     method public abstract java.util.Date getNotAfter();
     method public abstract java.util.Date getNotBefore();
     method public abstract java.math.BigInteger getSerialNumber();
-    method public abstract java.lang.String getSigAlgName();
-    method public abstract java.lang.String getSigAlgOID();
+    method public abstract String getSigAlgName();
+    method public abstract String getSigAlgOID();
     method public abstract byte[] getSigAlgParams();
     method public abstract java.security.Principal getSubjectDN();
     method public abstract int getVersion();
@@ -75831,12 +75584,12 @@
 
 package javax.sql {
 
-  public abstract interface CommonDataSource {
-    method public abstract java.io.PrintWriter getLogWriter() throws java.sql.SQLException;
-    method public abstract int getLoginTimeout() throws java.sql.SQLException;
-    method public abstract java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException;
-    method public abstract void setLogWriter(java.io.PrintWriter) throws java.sql.SQLException;
-    method public abstract void setLoginTimeout(int) throws java.sql.SQLException;
+  public interface CommonDataSource {
+    method public java.io.PrintWriter getLogWriter() throws java.sql.SQLException;
+    method public int getLoginTimeout() throws java.sql.SQLException;
+    method public java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException;
+    method public void setLogWriter(java.io.PrintWriter) throws java.sql.SQLException;
+    method public void setLoginTimeout(int) throws java.sql.SQLException;
   }
 
   public class ConnectionEvent extends java.util.EventObject {
@@ -75845,192 +75598,192 @@
     method public java.sql.SQLException getSQLException();
   }
 
-  public abstract interface ConnectionEventListener implements java.util.EventListener {
-    method public abstract void connectionClosed(javax.sql.ConnectionEvent);
-    method public abstract void connectionErrorOccurred(javax.sql.ConnectionEvent);
+  public interface ConnectionEventListener extends java.util.EventListener {
+    method public void connectionClosed(javax.sql.ConnectionEvent);
+    method public void connectionErrorOccurred(javax.sql.ConnectionEvent);
   }
 
-  public abstract interface ConnectionPoolDataSource implements javax.sql.CommonDataSource {
-    method public abstract javax.sql.PooledConnection getPooledConnection() throws java.sql.SQLException;
-    method public abstract javax.sql.PooledConnection getPooledConnection(java.lang.String, java.lang.String) throws java.sql.SQLException;
+  public interface ConnectionPoolDataSource extends javax.sql.CommonDataSource {
+    method public javax.sql.PooledConnection getPooledConnection() throws java.sql.SQLException;
+    method public javax.sql.PooledConnection getPooledConnection(String, String) throws java.sql.SQLException;
   }
 
-  public abstract interface DataSource implements javax.sql.CommonDataSource java.sql.Wrapper {
-    method public abstract java.sql.Connection getConnection() throws java.sql.SQLException;
-    method public abstract java.sql.Connection getConnection(java.lang.String, java.lang.String) throws java.sql.SQLException;
+  public interface DataSource extends javax.sql.CommonDataSource java.sql.Wrapper {
+    method public java.sql.Connection getConnection() throws java.sql.SQLException;
+    method public java.sql.Connection getConnection(String, String) throws java.sql.SQLException;
   }
 
-  public abstract interface PooledConnection {
-    method public abstract void addConnectionEventListener(javax.sql.ConnectionEventListener);
-    method public abstract void addStatementEventListener(javax.sql.StatementEventListener);
-    method public abstract void close() throws java.sql.SQLException;
-    method public abstract java.sql.Connection getConnection() throws java.sql.SQLException;
-    method public abstract void removeConnectionEventListener(javax.sql.ConnectionEventListener);
-    method public abstract void removeStatementEventListener(javax.sql.StatementEventListener);
+  public interface PooledConnection {
+    method public void addConnectionEventListener(javax.sql.ConnectionEventListener);
+    method public void addStatementEventListener(javax.sql.StatementEventListener);
+    method public void close() throws java.sql.SQLException;
+    method public java.sql.Connection getConnection() throws java.sql.SQLException;
+    method public void removeConnectionEventListener(javax.sql.ConnectionEventListener);
+    method public void removeStatementEventListener(javax.sql.StatementEventListener);
   }
 
-  public abstract interface RowSet implements java.sql.ResultSet {
-    method public abstract void addRowSetListener(javax.sql.RowSetListener);
-    method public abstract void clearParameters() throws java.sql.SQLException;
-    method public abstract void execute() throws java.sql.SQLException;
-    method public abstract java.lang.String getCommand();
-    method public abstract java.lang.String getDataSourceName();
-    method public abstract boolean getEscapeProcessing() throws java.sql.SQLException;
-    method public abstract int getMaxFieldSize() throws java.sql.SQLException;
-    method public abstract int getMaxRows() throws java.sql.SQLException;
-    method public abstract java.lang.String getPassword();
-    method public abstract int getQueryTimeout() throws java.sql.SQLException;
-    method public abstract int getTransactionIsolation();
-    method public abstract java.util.Map<java.lang.String, java.lang.Class<?>> getTypeMap() throws java.sql.SQLException;
-    method public abstract java.lang.String getUrl() throws java.sql.SQLException;
-    method public abstract java.lang.String getUsername();
-    method public abstract boolean isReadOnly();
-    method public abstract void removeRowSetListener(javax.sql.RowSetListener);
-    method public abstract void setArray(int, java.sql.Array) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(int, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(int, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setAsciiStream(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBigDecimal(int, java.math.BigDecimal) throws java.sql.SQLException;
-    method public abstract void setBigDecimal(java.lang.String, java.math.BigDecimal) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(int, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(java.lang.String, java.io.InputStream, int) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(int, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBinaryStream(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBlob(int, java.sql.Blob) throws java.sql.SQLException;
-    method public abstract void setBlob(int, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void setBlob(int, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBlob(java.lang.String, java.io.InputStream, long) throws java.sql.SQLException;
-    method public abstract void setBlob(java.lang.String, java.sql.Blob) throws java.sql.SQLException;
-    method public abstract void setBlob(java.lang.String, java.io.InputStream) throws java.sql.SQLException;
-    method public abstract void setBoolean(int, boolean) throws java.sql.SQLException;
-    method public abstract void setBoolean(java.lang.String, boolean) throws java.sql.SQLException;
-    method public abstract void setByte(int, byte) throws java.sql.SQLException;
-    method public abstract void setByte(java.lang.String, byte) throws java.sql.SQLException;
-    method public abstract void setBytes(int, byte[]) throws java.sql.SQLException;
-    method public abstract void setBytes(java.lang.String, byte[]) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(int, java.io.Reader, int) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(java.lang.String, java.io.Reader, int) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setClob(int, java.sql.Clob) throws java.sql.SQLException;
-    method public abstract void setClob(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setClob(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setClob(java.lang.String, java.sql.Clob) throws java.sql.SQLException;
-    method public abstract void setClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setCommand(java.lang.String) throws java.sql.SQLException;
-    method public abstract void setConcurrency(int) throws java.sql.SQLException;
-    method public abstract void setDataSourceName(java.lang.String) throws java.sql.SQLException;
-    method public abstract void setDate(int, java.sql.Date) throws java.sql.SQLException;
-    method public abstract void setDate(int, java.sql.Date, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setDate(java.lang.String, java.sql.Date) throws java.sql.SQLException;
-    method public abstract void setDate(java.lang.String, java.sql.Date, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setDouble(int, double) throws java.sql.SQLException;
-    method public abstract void setDouble(java.lang.String, double) throws java.sql.SQLException;
-    method public abstract void setEscapeProcessing(boolean) throws java.sql.SQLException;
-    method public abstract void setFloat(int, float) throws java.sql.SQLException;
-    method public abstract void setFloat(java.lang.String, float) throws java.sql.SQLException;
-    method public abstract void setInt(int, int) throws java.sql.SQLException;
-    method public abstract void setInt(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract void setLong(int, long) throws java.sql.SQLException;
-    method public abstract void setLong(java.lang.String, long) throws java.sql.SQLException;
-    method public abstract void setMaxFieldSize(int) throws java.sql.SQLException;
-    method public abstract void setMaxRows(int) throws java.sql.SQLException;
-    method public abstract void setNCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNCharacterStream(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNCharacterStream(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.sql.NClob) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNClob(java.lang.String, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
-    method public abstract void setNClob(int, java.sql.NClob) throws java.sql.SQLException;
-    method public abstract void setNClob(int, java.io.Reader) throws java.sql.SQLException;
-    method public abstract void setNString(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setNString(java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setNull(int, int) throws java.sql.SQLException;
-    method public abstract void setNull(java.lang.String, int) throws java.sql.SQLException;
-    method public abstract void setNull(int, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setNull(java.lang.String, int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object, int, int) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object, int, int) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object, int) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object, int) throws java.sql.SQLException;
-    method public abstract void setObject(java.lang.String, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void setObject(int, java.lang.Object) throws java.sql.SQLException;
-    method public abstract void setPassword(java.lang.String) throws java.sql.SQLException;
-    method public abstract void setQueryTimeout(int) throws java.sql.SQLException;
-    method public abstract void setReadOnly(boolean) throws java.sql.SQLException;
-    method public abstract void setRef(int, java.sql.Ref) throws java.sql.SQLException;
-    method public abstract void setRowId(int, java.sql.RowId) throws java.sql.SQLException;
-    method public abstract void setRowId(java.lang.String, java.sql.RowId) throws java.sql.SQLException;
-    method public abstract void setSQLXML(int, java.sql.SQLXML) throws java.sql.SQLException;
-    method public abstract void setSQLXML(java.lang.String, java.sql.SQLXML) throws java.sql.SQLException;
-    method public abstract void setShort(int, short) throws java.sql.SQLException;
-    method public abstract void setShort(java.lang.String, short) throws java.sql.SQLException;
-    method public abstract void setString(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setString(java.lang.String, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setTime(int, java.sql.Time) throws java.sql.SQLException;
-    method public abstract void setTime(int, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setTime(java.lang.String, java.sql.Time) throws java.sql.SQLException;
-    method public abstract void setTime(java.lang.String, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setTimestamp(int, java.sql.Timestamp) throws java.sql.SQLException;
-    method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp) throws java.sql.SQLException;
-    method public abstract void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setTimestamp(java.lang.String, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
-    method public abstract void setTransactionIsolation(int) throws java.sql.SQLException;
-    method public abstract void setType(int) throws java.sql.SQLException;
-    method public abstract void setTypeMap(java.util.Map<java.lang.String, java.lang.Class<?>>) throws java.sql.SQLException;
-    method public abstract void setURL(int, java.net.URL) throws java.sql.SQLException;
-    method public abstract void setUrl(java.lang.String) throws java.sql.SQLException;
-    method public abstract void setUsername(java.lang.String) throws java.sql.SQLException;
+  public interface RowSet extends java.sql.ResultSet {
+    method public void addRowSetListener(javax.sql.RowSetListener);
+    method public void clearParameters() throws java.sql.SQLException;
+    method public void execute() throws java.sql.SQLException;
+    method public String getCommand();
+    method public String getDataSourceName();
+    method public boolean getEscapeProcessing() throws java.sql.SQLException;
+    method public int getMaxFieldSize() throws java.sql.SQLException;
+    method public int getMaxRows() throws java.sql.SQLException;
+    method public String getPassword();
+    method public int getQueryTimeout() throws java.sql.SQLException;
+    method public int getTransactionIsolation();
+    method public java.util.Map<java.lang.String,java.lang.Class<?>> getTypeMap() throws java.sql.SQLException;
+    method public String getUrl() throws java.sql.SQLException;
+    method public String getUsername();
+    method public boolean isReadOnly();
+    method public void removeRowSetListener(javax.sql.RowSetListener);
+    method public void setArray(int, java.sql.Array) throws java.sql.SQLException;
+    method public void setAsciiStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void setAsciiStream(String, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void setAsciiStream(int, java.io.InputStream) throws java.sql.SQLException;
+    method public void setAsciiStream(String, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBigDecimal(int, java.math.BigDecimal) throws java.sql.SQLException;
+    method public void setBigDecimal(String, java.math.BigDecimal) throws java.sql.SQLException;
+    method public void setBinaryStream(int, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void setBinaryStream(String, java.io.InputStream, int) throws java.sql.SQLException;
+    method public void setBinaryStream(int, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBinaryStream(String, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBlob(int, java.sql.Blob) throws java.sql.SQLException;
+    method public void setBlob(int, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void setBlob(int, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBlob(String, java.io.InputStream, long) throws java.sql.SQLException;
+    method public void setBlob(String, java.sql.Blob) throws java.sql.SQLException;
+    method public void setBlob(String, java.io.InputStream) throws java.sql.SQLException;
+    method public void setBoolean(int, boolean) throws java.sql.SQLException;
+    method public void setBoolean(String, boolean) throws java.sql.SQLException;
+    method public void setByte(int, byte) throws java.sql.SQLException;
+    method public void setByte(String, byte) throws java.sql.SQLException;
+    method public void setBytes(int, byte[]) throws java.sql.SQLException;
+    method public void setBytes(String, byte[]) throws java.sql.SQLException;
+    method public void setCharacterStream(int, java.io.Reader, int) throws java.sql.SQLException;
+    method public void setCharacterStream(String, java.io.Reader, int) throws java.sql.SQLException;
+    method public void setCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
+    method public void setCharacterStream(String, java.io.Reader) throws java.sql.SQLException;
+    method public void setClob(int, java.sql.Clob) throws java.sql.SQLException;
+    method public void setClob(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setClob(int, java.io.Reader) throws java.sql.SQLException;
+    method public void setClob(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setClob(String, java.sql.Clob) throws java.sql.SQLException;
+    method public void setClob(String, java.io.Reader) throws java.sql.SQLException;
+    method public void setCommand(String) throws java.sql.SQLException;
+    method public void setConcurrency(int) throws java.sql.SQLException;
+    method public void setDataSourceName(String) throws java.sql.SQLException;
+    method public void setDate(int, java.sql.Date) throws java.sql.SQLException;
+    method public void setDate(int, java.sql.Date, java.util.Calendar) throws java.sql.SQLException;
+    method public void setDate(String, java.sql.Date) throws java.sql.SQLException;
+    method public void setDate(String, java.sql.Date, java.util.Calendar) throws java.sql.SQLException;
+    method public void setDouble(int, double) throws java.sql.SQLException;
+    method public void setDouble(String, double) throws java.sql.SQLException;
+    method public void setEscapeProcessing(boolean) throws java.sql.SQLException;
+    method public void setFloat(int, float) throws java.sql.SQLException;
+    method public void setFloat(String, float) throws java.sql.SQLException;
+    method public void setInt(int, int) throws java.sql.SQLException;
+    method public void setInt(String, int) throws java.sql.SQLException;
+    method public void setLong(int, long) throws java.sql.SQLException;
+    method public void setLong(String, long) throws java.sql.SQLException;
+    method public void setMaxFieldSize(int) throws java.sql.SQLException;
+    method public void setMaxRows(int) throws java.sql.SQLException;
+    method public void setNCharacterStream(int, java.io.Reader) throws java.sql.SQLException;
+    method public void setNCharacterStream(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setNCharacterStream(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setNCharacterStream(String, java.io.Reader) throws java.sql.SQLException;
+    method public void setNClob(String, java.sql.NClob) throws java.sql.SQLException;
+    method public void setNClob(String, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setNClob(String, java.io.Reader) throws java.sql.SQLException;
+    method public void setNClob(int, java.io.Reader, long) throws java.sql.SQLException;
+    method public void setNClob(int, java.sql.NClob) throws java.sql.SQLException;
+    method public void setNClob(int, java.io.Reader) throws java.sql.SQLException;
+    method public void setNString(int, String) throws java.sql.SQLException;
+    method public void setNString(String, String) throws java.sql.SQLException;
+    method public void setNull(int, int) throws java.sql.SQLException;
+    method public void setNull(String, int) throws java.sql.SQLException;
+    method public void setNull(int, int, String) throws java.sql.SQLException;
+    method public void setNull(String, int, String) throws java.sql.SQLException;
+    method public void setObject(int, Object, int, int) throws java.sql.SQLException;
+    method public void setObject(String, Object, int, int) throws java.sql.SQLException;
+    method public void setObject(int, Object, int) throws java.sql.SQLException;
+    method public void setObject(String, Object, int) throws java.sql.SQLException;
+    method public void setObject(String, Object) throws java.sql.SQLException;
+    method public void setObject(int, Object) throws java.sql.SQLException;
+    method public void setPassword(String) throws java.sql.SQLException;
+    method public void setQueryTimeout(int) throws java.sql.SQLException;
+    method public void setReadOnly(boolean) throws java.sql.SQLException;
+    method public void setRef(int, java.sql.Ref) throws java.sql.SQLException;
+    method public void setRowId(int, java.sql.RowId) throws java.sql.SQLException;
+    method public void setRowId(String, java.sql.RowId) throws java.sql.SQLException;
+    method public void setSQLXML(int, java.sql.SQLXML) throws java.sql.SQLException;
+    method public void setSQLXML(String, java.sql.SQLXML) throws java.sql.SQLException;
+    method public void setShort(int, short) throws java.sql.SQLException;
+    method public void setShort(String, short) throws java.sql.SQLException;
+    method public void setString(int, String) throws java.sql.SQLException;
+    method public void setString(String, String) throws java.sql.SQLException;
+    method public void setTime(int, java.sql.Time) throws java.sql.SQLException;
+    method public void setTime(int, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
+    method public void setTime(String, java.sql.Time) throws java.sql.SQLException;
+    method public void setTime(String, java.sql.Time, java.util.Calendar) throws java.sql.SQLException;
+    method public void setTimestamp(int, java.sql.Timestamp) throws java.sql.SQLException;
+    method public void setTimestamp(String, java.sql.Timestamp) throws java.sql.SQLException;
+    method public void setTimestamp(int, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
+    method public void setTimestamp(String, java.sql.Timestamp, java.util.Calendar) throws java.sql.SQLException;
+    method public void setTransactionIsolation(int) throws java.sql.SQLException;
+    method public void setType(int) throws java.sql.SQLException;
+    method public void setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>>) throws java.sql.SQLException;
+    method public void setURL(int, java.net.URL) throws java.sql.SQLException;
+    method public void setUrl(String) throws java.sql.SQLException;
+    method public void setUsername(String) throws java.sql.SQLException;
   }
 
   public class RowSetEvent extends java.util.EventObject {
     ctor public RowSetEvent(javax.sql.RowSet);
   }
 
-  public abstract interface RowSetInternal {
-    method public abstract java.sql.Connection getConnection() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getOriginal() throws java.sql.SQLException;
-    method public abstract java.sql.ResultSet getOriginalRow() throws java.sql.SQLException;
-    method public abstract java.lang.Object[] getParams() throws java.sql.SQLException;
-    method public abstract void setMetaData(javax.sql.RowSetMetaData) throws java.sql.SQLException;
+  public interface RowSetInternal {
+    method public java.sql.Connection getConnection() throws java.sql.SQLException;
+    method public java.sql.ResultSet getOriginal() throws java.sql.SQLException;
+    method public java.sql.ResultSet getOriginalRow() throws java.sql.SQLException;
+    method public Object[] getParams() throws java.sql.SQLException;
+    method public void setMetaData(javax.sql.RowSetMetaData) throws java.sql.SQLException;
   }
 
-  public abstract interface RowSetListener implements java.util.EventListener {
-    method public abstract void cursorMoved(javax.sql.RowSetEvent);
-    method public abstract void rowChanged(javax.sql.RowSetEvent);
-    method public abstract void rowSetChanged(javax.sql.RowSetEvent);
+  public interface RowSetListener extends java.util.EventListener {
+    method public void cursorMoved(javax.sql.RowSetEvent);
+    method public void rowChanged(javax.sql.RowSetEvent);
+    method public void rowSetChanged(javax.sql.RowSetEvent);
   }
 
-  public abstract interface RowSetMetaData implements java.sql.ResultSetMetaData {
-    method public abstract void setAutoIncrement(int, boolean) throws java.sql.SQLException;
-    method public abstract void setCaseSensitive(int, boolean) throws java.sql.SQLException;
-    method public abstract void setCatalogName(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setColumnCount(int) throws java.sql.SQLException;
-    method public abstract void setColumnDisplaySize(int, int) throws java.sql.SQLException;
-    method public abstract void setColumnLabel(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setColumnName(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setColumnType(int, int) throws java.sql.SQLException;
-    method public abstract void setColumnTypeName(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setCurrency(int, boolean) throws java.sql.SQLException;
-    method public abstract void setNullable(int, int) throws java.sql.SQLException;
-    method public abstract void setPrecision(int, int) throws java.sql.SQLException;
-    method public abstract void setScale(int, int) throws java.sql.SQLException;
-    method public abstract void setSchemaName(int, java.lang.String) throws java.sql.SQLException;
-    method public abstract void setSearchable(int, boolean) throws java.sql.SQLException;
-    method public abstract void setSigned(int, boolean) throws java.sql.SQLException;
-    method public abstract void setTableName(int, java.lang.String) throws java.sql.SQLException;
+  public interface RowSetMetaData extends java.sql.ResultSetMetaData {
+    method public void setAutoIncrement(int, boolean) throws java.sql.SQLException;
+    method public void setCaseSensitive(int, boolean) throws java.sql.SQLException;
+    method public void setCatalogName(int, String) throws java.sql.SQLException;
+    method public void setColumnCount(int) throws java.sql.SQLException;
+    method public void setColumnDisplaySize(int, int) throws java.sql.SQLException;
+    method public void setColumnLabel(int, String) throws java.sql.SQLException;
+    method public void setColumnName(int, String) throws java.sql.SQLException;
+    method public void setColumnType(int, int) throws java.sql.SQLException;
+    method public void setColumnTypeName(int, String) throws java.sql.SQLException;
+    method public void setCurrency(int, boolean) throws java.sql.SQLException;
+    method public void setNullable(int, int) throws java.sql.SQLException;
+    method public void setPrecision(int, int) throws java.sql.SQLException;
+    method public void setScale(int, int) throws java.sql.SQLException;
+    method public void setSchemaName(int, String) throws java.sql.SQLException;
+    method public void setSearchable(int, boolean) throws java.sql.SQLException;
+    method public void setSigned(int, boolean) throws java.sql.SQLException;
+    method public void setTableName(int, String) throws java.sql.SQLException;
   }
 
-  public abstract interface RowSetReader {
-    method public abstract void readData(javax.sql.RowSetInternal) throws java.sql.SQLException;
+  public interface RowSetReader {
+    method public void readData(javax.sql.RowSetInternal) throws java.sql.SQLException;
   }
 
-  public abstract interface RowSetWriter {
-    method public abstract boolean writeData(javax.sql.RowSetInternal) throws java.sql.SQLException;
+  public interface RowSetWriter {
+    method public boolean writeData(javax.sql.RowSetInternal) throws java.sql.SQLException;
   }
 
   public class StatementEvent extends java.util.EventObject {
@@ -76040,9 +75793,9 @@
     method public java.sql.PreparedStatement getStatement();
   }
 
-  public abstract interface StatementEventListener implements java.util.EventListener {
-    method public abstract void statementClosed(javax.sql.StatementEvent);
-    method public abstract void statementErrorOccurred(javax.sql.StatementEvent);
+  public interface StatementEventListener extends java.util.EventListener {
+    method public void statementClosed(javax.sql.StatementEvent);
+    method public void statementErrorOccurred(javax.sql.StatementEvent);
   }
 
 }
@@ -76050,18 +75803,18 @@
 package javax.xml {
 
   public final class XMLConstants {
-    field public static final java.lang.String DEFAULT_NS_PREFIX = "";
-    field public static final java.lang.String FEATURE_SECURE_PROCESSING = "http://javax.xml.XMLConstants/feature/secure-processing";
-    field public static final java.lang.String NULL_NS_URI = "";
-    field public static final java.lang.String RELAXNG_NS_URI = "http://relaxng.org/ns/structure/1.0";
-    field public static final java.lang.String W3C_XML_SCHEMA_INSTANCE_NS_URI = "http://www.w3.org/2001/XMLSchema-instance";
-    field public static final java.lang.String W3C_XML_SCHEMA_NS_URI = "http://www.w3.org/2001/XMLSchema";
-    field public static final java.lang.String W3C_XPATH_DATATYPE_NS_URI = "http://www.w3.org/2003/11/xpath-datatypes";
-    field public static final java.lang.String XMLNS_ATTRIBUTE = "xmlns";
-    field public static final java.lang.String XMLNS_ATTRIBUTE_NS_URI = "http://www.w3.org/2000/xmlns/";
-    field public static final java.lang.String XML_DTD_NS_URI = "http://www.w3.org/TR/REC-xml";
-    field public static final java.lang.String XML_NS_PREFIX = "xml";
-    field public static final java.lang.String XML_NS_URI = "http://www.w3.org/XML/1998/namespace";
+    field public static final String DEFAULT_NS_PREFIX = "";
+    field public static final String FEATURE_SECURE_PROCESSING = "http://javax.xml.XMLConstants/feature/secure-processing";
+    field public static final String NULL_NS_URI = "";
+    field public static final String RELAXNG_NS_URI = "http://relaxng.org/ns/structure/1.0";
+    field public static final String W3C_XML_SCHEMA_INSTANCE_NS_URI = "http://www.w3.org/2001/XMLSchema-instance";
+    field public static final String W3C_XML_SCHEMA_NS_URI = "http://www.w3.org/2001/XMLSchema";
+    field public static final String W3C_XPATH_DATATYPE_NS_URI = "http://www.w3.org/2003/11/xpath-datatypes";
+    field public static final String XMLNS_ATTRIBUTE = "xmlns";
+    field public static final String XMLNS_ATTRIBUTE_NS_URI = "http://www.w3.org/2000/xmlns/";
+    field public static final String XML_DTD_NS_URI = "http://www.w3.org/TR/REC-xml";
+    field public static final String XML_NS_PREFIX = "xml";
+    field public static final String XML_NS_URI = "http://www.w3.org/XML/1998/namespace";
   }
 
 }
@@ -76070,9 +75823,9 @@
 
   public class DatatypeConfigurationException extends java.lang.Exception {
     ctor public DatatypeConfigurationException();
-    ctor public DatatypeConfigurationException(java.lang.String);
-    ctor public DatatypeConfigurationException(java.lang.String, java.lang.Throwable);
-    ctor public DatatypeConfigurationException(java.lang.Throwable);
+    ctor public DatatypeConfigurationException(String);
+    ctor public DatatypeConfigurationException(String, Throwable);
+    ctor public DatatypeConfigurationException(Throwable);
   }
 
   public final class DatatypeConstants {
@@ -76120,22 +75873,22 @@
 
   public abstract class DatatypeFactory {
     ctor protected DatatypeFactory();
-    method public abstract javax.xml.datatype.Duration newDuration(java.lang.String);
+    method public abstract javax.xml.datatype.Duration newDuration(String);
     method public abstract javax.xml.datatype.Duration newDuration(long);
     method public abstract javax.xml.datatype.Duration newDuration(boolean, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigDecimal);
     method public javax.xml.datatype.Duration newDuration(boolean, int, int, int, int, int, int);
-    method public javax.xml.datatype.Duration newDurationDayTime(java.lang.String);
+    method public javax.xml.datatype.Duration newDurationDayTime(String);
     method public javax.xml.datatype.Duration newDurationDayTime(long);
     method public javax.xml.datatype.Duration newDurationDayTime(boolean, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
     method public javax.xml.datatype.Duration newDurationDayTime(boolean, int, int, int, int);
-    method public javax.xml.datatype.Duration newDurationYearMonth(java.lang.String);
+    method public javax.xml.datatype.Duration newDurationYearMonth(String);
     method public javax.xml.datatype.Duration newDurationYearMonth(long);
     method public javax.xml.datatype.Duration newDurationYearMonth(boolean, java.math.BigInteger, java.math.BigInteger);
     method public javax.xml.datatype.Duration newDurationYearMonth(boolean, int, int);
     method public static javax.xml.datatype.DatatypeFactory newInstance() throws javax.xml.datatype.DatatypeConfigurationException;
-    method public static javax.xml.datatype.DatatypeFactory newInstance(java.lang.String, java.lang.ClassLoader) throws javax.xml.datatype.DatatypeConfigurationException;
+    method public static javax.xml.datatype.DatatypeFactory newInstance(String, ClassLoader) throws javax.xml.datatype.DatatypeConfigurationException;
     method public abstract javax.xml.datatype.XMLGregorianCalendar newXMLGregorianCalendar();
-    method public abstract javax.xml.datatype.XMLGregorianCalendar newXMLGregorianCalendar(java.lang.String);
+    method public abstract javax.xml.datatype.XMLGregorianCalendar newXMLGregorianCalendar(String);
     method public abstract javax.xml.datatype.XMLGregorianCalendar newXMLGregorianCalendar(java.util.GregorianCalendar);
     method public abstract javax.xml.datatype.XMLGregorianCalendar newXMLGregorianCalendar(java.math.BigInteger, int, int, int, int, int, java.math.BigDecimal, int);
     method public javax.xml.datatype.XMLGregorianCalendar newXMLGregorianCalendar(int, int, int, int, int, int, int, int);
@@ -76143,8 +75896,8 @@
     method public javax.xml.datatype.XMLGregorianCalendar newXMLGregorianCalendarTime(int, int, int, int);
     method public javax.xml.datatype.XMLGregorianCalendar newXMLGregorianCalendarTime(int, int, int, java.math.BigDecimal, int);
     method public javax.xml.datatype.XMLGregorianCalendar newXMLGregorianCalendarTime(int, int, int, int, int);
-    field public static final java.lang.String DATATYPEFACTORY_IMPLEMENTATION_CLASS;
-    field public static final java.lang.String DATATYPEFACTORY_PROPERTY = "javax.xml.datatype.DatatypeFactory";
+    field public static final String DATATYPEFACTORY_IMPLEMENTATION_CLASS;
+    field public static final String DATATYPEFACTORY_PROPERTY = "javax.xml.datatype.DatatypeFactory";
   }
 
   public abstract class Duration {
@@ -76154,7 +75907,7 @@
     method public void addTo(java.util.Date);
     method public abstract int compare(javax.xml.datatype.Duration);
     method public int getDays();
-    method public abstract java.lang.Number getField(javax.xml.datatype.DatatypeConstants.Field);
+    method public abstract Number getField(javax.xml.datatype.DatatypeConstants.Field);
     method public int getHours();
     method public int getMinutes();
     method public int getMonths();
@@ -76179,7 +75932,7 @@
     ctor public XMLGregorianCalendar();
     method public abstract void add(javax.xml.datatype.Duration);
     method public abstract void clear();
-    method public abstract java.lang.Object clone();
+    method public abstract Object clone();
     method public abstract int compare(javax.xml.datatype.XMLGregorianCalendar);
     method public abstract int getDay();
     method public abstract java.math.BigInteger getEon();
@@ -76212,29 +75965,29 @@
     method public abstract void setYear(int);
     method public abstract java.util.GregorianCalendar toGregorianCalendar();
     method public abstract java.util.GregorianCalendar toGregorianCalendar(java.util.TimeZone, java.util.Locale, javax.xml.datatype.XMLGregorianCalendar);
-    method public abstract java.lang.String toXMLFormat();
+    method public abstract String toXMLFormat();
   }
 
 }
 
 package javax.xml.namespace {
 
-  public abstract interface NamespaceContext {
-    method public abstract java.lang.String getNamespaceURI(java.lang.String);
-    method public abstract java.lang.String getPrefix(java.lang.String);
-    method public abstract java.util.Iterator getPrefixes(java.lang.String);
+  public interface NamespaceContext {
+    method public String getNamespaceURI(String);
+    method public String getPrefix(String);
+    method public java.util.Iterator getPrefixes(String);
   }
 
   public class QName implements java.io.Serializable {
-    ctor public QName(java.lang.String, java.lang.String);
-    ctor public QName(java.lang.String, java.lang.String, java.lang.String);
-    ctor public QName(java.lang.String);
-    method public final boolean equals(java.lang.Object);
-    method public java.lang.String getLocalPart();
-    method public java.lang.String getNamespaceURI();
-    method public java.lang.String getPrefix();
+    ctor public QName(String, String);
+    ctor public QName(String, String, String);
+    ctor public QName(String);
+    method public final boolean equals(Object);
+    method public String getLocalPart();
+    method public String getNamespaceURI();
+    method public String getPrefix();
     method public final int hashCode();
-    method public static javax.xml.namespace.QName valueOf(java.lang.String);
+    method public static javax.xml.namespace.QName valueOf(String);
   }
 
 }
@@ -76250,8 +76003,8 @@
     method public boolean isXIncludeAware();
     method public abstract org.w3c.dom.Document newDocument();
     method public org.w3c.dom.Document parse(java.io.InputStream) throws java.io.IOException, org.xml.sax.SAXException;
-    method public org.w3c.dom.Document parse(java.io.InputStream, java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
-    method public org.w3c.dom.Document parse(java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public org.w3c.dom.Document parse(java.io.InputStream, String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public org.w3c.dom.Document parse(String) throws java.io.IOException, org.xml.sax.SAXException;
     method public org.w3c.dom.Document parse(java.io.File) throws java.io.IOException, org.xml.sax.SAXException;
     method public abstract org.w3c.dom.Document parse(org.xml.sax.InputSource) throws java.io.IOException, org.xml.sax.SAXException;
     method public void reset();
@@ -76261,8 +76014,8 @@
 
   public abstract class DocumentBuilderFactory {
     ctor protected DocumentBuilderFactory();
-    method public abstract java.lang.Object getAttribute(java.lang.String) throws java.lang.IllegalArgumentException;
-    method public abstract boolean getFeature(java.lang.String) throws javax.xml.parsers.ParserConfigurationException;
+    method public abstract Object getAttribute(String) throws java.lang.IllegalArgumentException;
+    method public abstract boolean getFeature(String) throws javax.xml.parsers.ParserConfigurationException;
     method public javax.xml.validation.Schema getSchema();
     method public boolean isCoalescing();
     method public boolean isExpandEntityReferences();
@@ -76273,11 +76026,11 @@
     method public boolean isXIncludeAware();
     method public abstract javax.xml.parsers.DocumentBuilder newDocumentBuilder() throws javax.xml.parsers.ParserConfigurationException;
     method public static javax.xml.parsers.DocumentBuilderFactory newInstance();
-    method public static javax.xml.parsers.DocumentBuilderFactory newInstance(java.lang.String, java.lang.ClassLoader);
-    method public abstract void setAttribute(java.lang.String, java.lang.Object) throws java.lang.IllegalArgumentException;
+    method public static javax.xml.parsers.DocumentBuilderFactory newInstance(String, ClassLoader);
+    method public abstract void setAttribute(String, Object) throws java.lang.IllegalArgumentException;
     method public void setCoalescing(boolean);
     method public void setExpandEntityReferences(boolean);
-    method public abstract void setFeature(java.lang.String, boolean) throws javax.xml.parsers.ParserConfigurationException;
+    method public abstract void setFeature(String, boolean) throws javax.xml.parsers.ParserConfigurationException;
     method public void setIgnoringComments(boolean);
     method public void setIgnoringElementContentWhitespace(boolean);
     method public void setNamespaceAware(boolean);
@@ -76288,51 +76041,51 @@
 
   public class FactoryConfigurationError extends java.lang.Error {
     ctor public FactoryConfigurationError();
-    ctor public FactoryConfigurationError(java.lang.String);
-    ctor public FactoryConfigurationError(java.lang.Exception);
-    ctor public FactoryConfigurationError(java.lang.Exception, java.lang.String);
-    method public java.lang.Exception getException();
+    ctor public FactoryConfigurationError(String);
+    ctor public FactoryConfigurationError(Exception);
+    ctor public FactoryConfigurationError(Exception, String);
+    method public Exception getException();
   }
 
   public class ParserConfigurationException extends java.lang.Exception {
     ctor public ParserConfigurationException();
-    ctor public ParserConfigurationException(java.lang.String);
+    ctor public ParserConfigurationException(String);
   }
 
   public abstract class SAXParser {
     ctor protected SAXParser();
     method public abstract org.xml.sax.Parser getParser() throws org.xml.sax.SAXException;
-    method public abstract java.lang.Object getProperty(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public abstract Object getProperty(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public javax.xml.validation.Schema getSchema();
     method public abstract org.xml.sax.XMLReader getXMLReader() throws org.xml.sax.SAXException;
     method public abstract boolean isNamespaceAware();
     method public abstract boolean isValidating();
     method public boolean isXIncludeAware();
     method public void parse(java.io.InputStream, org.xml.sax.HandlerBase) throws java.io.IOException, org.xml.sax.SAXException;
-    method public void parse(java.io.InputStream, org.xml.sax.HandlerBase, java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void parse(java.io.InputStream, org.xml.sax.HandlerBase, String) throws java.io.IOException, org.xml.sax.SAXException;
     method public void parse(java.io.InputStream, org.xml.sax.helpers.DefaultHandler) throws java.io.IOException, org.xml.sax.SAXException;
-    method public void parse(java.io.InputStream, org.xml.sax.helpers.DefaultHandler, java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
-    method public void parse(java.lang.String, org.xml.sax.HandlerBase) throws java.io.IOException, org.xml.sax.SAXException;
-    method public void parse(java.lang.String, org.xml.sax.helpers.DefaultHandler) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void parse(java.io.InputStream, org.xml.sax.helpers.DefaultHandler, String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void parse(String, org.xml.sax.HandlerBase) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void parse(String, org.xml.sax.helpers.DefaultHandler) throws java.io.IOException, org.xml.sax.SAXException;
     method public void parse(java.io.File, org.xml.sax.HandlerBase) throws java.io.IOException, org.xml.sax.SAXException;
     method public void parse(java.io.File, org.xml.sax.helpers.DefaultHandler) throws java.io.IOException, org.xml.sax.SAXException;
     method public void parse(org.xml.sax.InputSource, org.xml.sax.HandlerBase) throws java.io.IOException, org.xml.sax.SAXException;
     method public void parse(org.xml.sax.InputSource, org.xml.sax.helpers.DefaultHandler) throws java.io.IOException, org.xml.sax.SAXException;
     method public void reset();
-    method public abstract void setProperty(java.lang.String, java.lang.Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public abstract void setProperty(String, Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
   }
 
   public abstract class SAXParserFactory {
     ctor protected SAXParserFactory();
-    method public abstract boolean getFeature(java.lang.String) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public abstract boolean getFeature(String) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public javax.xml.validation.Schema getSchema();
     method public boolean isNamespaceAware();
     method public boolean isValidating();
     method public boolean isXIncludeAware();
     method public static javax.xml.parsers.SAXParserFactory newInstance();
-    method public static javax.xml.parsers.SAXParserFactory newInstance(java.lang.String, java.lang.ClassLoader);
+    method public static javax.xml.parsers.SAXParserFactory newInstance(String, ClassLoader);
     method public abstract javax.xml.parsers.SAXParser newSAXParser() throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException;
-    method public abstract void setFeature(java.lang.String, boolean) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public abstract void setFeature(String, boolean) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public void setNamespaceAware(boolean);
     method public void setSchema(javax.xml.validation.Schema);
     method public void setValidating(boolean);
@@ -76343,47 +76096,47 @@
 
 package javax.xml.transform {
 
-  public abstract interface ErrorListener {
-    method public abstract void error(javax.xml.transform.TransformerException) throws javax.xml.transform.TransformerException;
-    method public abstract void fatalError(javax.xml.transform.TransformerException) throws javax.xml.transform.TransformerException;
-    method public abstract void warning(javax.xml.transform.TransformerException) throws javax.xml.transform.TransformerException;
+  public interface ErrorListener {
+    method public void error(javax.xml.transform.TransformerException) throws javax.xml.transform.TransformerException;
+    method public void fatalError(javax.xml.transform.TransformerException) throws javax.xml.transform.TransformerException;
+    method public void warning(javax.xml.transform.TransformerException) throws javax.xml.transform.TransformerException;
   }
 
   public class OutputKeys {
-    field public static final java.lang.String CDATA_SECTION_ELEMENTS = "cdata-section-elements";
-    field public static final java.lang.String DOCTYPE_PUBLIC = "doctype-public";
-    field public static final java.lang.String DOCTYPE_SYSTEM = "doctype-system";
-    field public static final java.lang.String ENCODING = "encoding";
-    field public static final java.lang.String INDENT = "indent";
-    field public static final java.lang.String MEDIA_TYPE = "media-type";
-    field public static final java.lang.String METHOD = "method";
-    field public static final java.lang.String OMIT_XML_DECLARATION = "omit-xml-declaration";
-    field public static final java.lang.String STANDALONE = "standalone";
-    field public static final java.lang.String VERSION = "version";
+    field public static final String CDATA_SECTION_ELEMENTS = "cdata-section-elements";
+    field public static final String DOCTYPE_PUBLIC = "doctype-public";
+    field public static final String DOCTYPE_SYSTEM = "doctype-system";
+    field public static final String ENCODING = "encoding";
+    field public static final String INDENT = "indent";
+    field public static final String MEDIA_TYPE = "media-type";
+    field public static final String METHOD = "method";
+    field public static final String OMIT_XML_DECLARATION = "omit-xml-declaration";
+    field public static final String STANDALONE = "standalone";
+    field public static final String VERSION = "version";
   }
 
-  public abstract interface Result {
-    method public abstract java.lang.String getSystemId();
-    method public abstract void setSystemId(java.lang.String);
-    field public static final java.lang.String PI_DISABLE_OUTPUT_ESCAPING = "javax.xml.transform.disable-output-escaping";
-    field public static final java.lang.String PI_ENABLE_OUTPUT_ESCAPING = "javax.xml.transform.enable-output-escaping";
+  public interface Result {
+    method public String getSystemId();
+    method public void setSystemId(String);
+    field public static final String PI_DISABLE_OUTPUT_ESCAPING = "javax.xml.transform.disable-output-escaping";
+    field public static final String PI_ENABLE_OUTPUT_ESCAPING = "javax.xml.transform.enable-output-escaping";
   }
 
-  public abstract interface Source {
-    method public abstract java.lang.String getSystemId();
-    method public abstract void setSystemId(java.lang.String);
+  public interface Source {
+    method public String getSystemId();
+    method public void setSystemId(String);
   }
 
-  public abstract interface SourceLocator {
-    method public abstract int getColumnNumber();
-    method public abstract int getLineNumber();
-    method public abstract java.lang.String getPublicId();
-    method public abstract java.lang.String getSystemId();
+  public interface SourceLocator {
+    method public int getColumnNumber();
+    method public int getLineNumber();
+    method public String getPublicId();
+    method public String getSystemId();
   }
 
-  public abstract interface Templates {
-    method public abstract java.util.Properties getOutputProperties();
-    method public abstract javax.xml.transform.Transformer newTransformer() throws javax.xml.transform.TransformerConfigurationException;
+  public interface Templates {
+    method public java.util.Properties getOutputProperties();
+    method public javax.xml.transform.Transformer newTransformer() throws javax.xml.transform.TransformerConfigurationException;
   }
 
   public abstract class Transformer {
@@ -76391,103 +76144,102 @@
     method public abstract void clearParameters();
     method public abstract javax.xml.transform.ErrorListener getErrorListener();
     method public abstract java.util.Properties getOutputProperties();
-    method public abstract java.lang.String getOutputProperty(java.lang.String) throws java.lang.IllegalArgumentException;
-    method public abstract java.lang.Object getParameter(java.lang.String);
+    method public abstract String getOutputProperty(String) throws java.lang.IllegalArgumentException;
+    method public abstract Object getParameter(String);
     method public abstract javax.xml.transform.URIResolver getURIResolver();
     method public void reset();
     method public abstract void setErrorListener(javax.xml.transform.ErrorListener) throws java.lang.IllegalArgumentException;
     method public abstract void setOutputProperties(java.util.Properties);
-    method public abstract void setOutputProperty(java.lang.String, java.lang.String) throws java.lang.IllegalArgumentException;
-    method public abstract void setParameter(java.lang.String, java.lang.Object);
+    method public abstract void setOutputProperty(String, String) throws java.lang.IllegalArgumentException;
+    method public abstract void setParameter(String, Object);
     method public abstract void setURIResolver(javax.xml.transform.URIResolver);
     method public abstract void transform(javax.xml.transform.Source, javax.xml.transform.Result) throws javax.xml.transform.TransformerException;
   }
 
   public class TransformerConfigurationException extends javax.xml.transform.TransformerException {
     ctor public TransformerConfigurationException();
-    ctor public TransformerConfigurationException(java.lang.String);
-    ctor public TransformerConfigurationException(java.lang.Throwable);
-    ctor public TransformerConfigurationException(java.lang.String, java.lang.Throwable);
-    ctor public TransformerConfigurationException(java.lang.String, javax.xml.transform.SourceLocator);
-    ctor public TransformerConfigurationException(java.lang.String, javax.xml.transform.SourceLocator, java.lang.Throwable);
+    ctor public TransformerConfigurationException(String);
+    ctor public TransformerConfigurationException(Throwable);
+    ctor public TransformerConfigurationException(String, Throwable);
+    ctor public TransformerConfigurationException(String, javax.xml.transform.SourceLocator);
+    ctor public TransformerConfigurationException(String, javax.xml.transform.SourceLocator, Throwable);
   }
 
   public class TransformerException extends java.lang.Exception {
-    ctor public TransformerException(java.lang.String);
-    ctor public TransformerException(java.lang.Throwable);
-    ctor public TransformerException(java.lang.String, java.lang.Throwable);
-    ctor public TransformerException(java.lang.String, javax.xml.transform.SourceLocator);
-    ctor public TransformerException(java.lang.String, javax.xml.transform.SourceLocator, java.lang.Throwable);
-    method public java.lang.Throwable getCause();
-    method public java.lang.Throwable getException();
-    method public java.lang.String getLocationAsString();
+    ctor public TransformerException(String);
+    ctor public TransformerException(Throwable);
+    ctor public TransformerException(String, Throwable);
+    ctor public TransformerException(String, javax.xml.transform.SourceLocator);
+    ctor public TransformerException(String, javax.xml.transform.SourceLocator, Throwable);
+    method public Throwable getException();
+    method public String getLocationAsString();
     method public javax.xml.transform.SourceLocator getLocator();
-    method public java.lang.String getMessageAndLocation();
+    method public String getMessageAndLocation();
     method public void setLocator(javax.xml.transform.SourceLocator);
   }
 
   public abstract class TransformerFactory {
     ctor protected TransformerFactory();
-    method public abstract javax.xml.transform.Source getAssociatedStylesheet(javax.xml.transform.Source, java.lang.String, java.lang.String, java.lang.String) throws javax.xml.transform.TransformerConfigurationException;
-    method public abstract java.lang.Object getAttribute(java.lang.String);
+    method public abstract javax.xml.transform.Source getAssociatedStylesheet(javax.xml.transform.Source, String, String, String) throws javax.xml.transform.TransformerConfigurationException;
+    method public abstract Object getAttribute(String);
     method public abstract javax.xml.transform.ErrorListener getErrorListener();
-    method public abstract boolean getFeature(java.lang.String);
+    method public abstract boolean getFeature(String);
     method public abstract javax.xml.transform.URIResolver getURIResolver();
     method public static javax.xml.transform.TransformerFactory newInstance() throws javax.xml.transform.TransformerFactoryConfigurationError;
-    method public static javax.xml.transform.TransformerFactory newInstance(java.lang.String, java.lang.ClassLoader) throws javax.xml.transform.TransformerFactoryConfigurationError;
+    method public static javax.xml.transform.TransformerFactory newInstance(String, ClassLoader) throws javax.xml.transform.TransformerFactoryConfigurationError;
     method public abstract javax.xml.transform.Templates newTemplates(javax.xml.transform.Source) throws javax.xml.transform.TransformerConfigurationException;
     method public abstract javax.xml.transform.Transformer newTransformer(javax.xml.transform.Source) throws javax.xml.transform.TransformerConfigurationException;
     method public abstract javax.xml.transform.Transformer newTransformer() throws javax.xml.transform.TransformerConfigurationException;
-    method public abstract void setAttribute(java.lang.String, java.lang.Object);
+    method public abstract void setAttribute(String, Object);
     method public abstract void setErrorListener(javax.xml.transform.ErrorListener);
-    method public abstract void setFeature(java.lang.String, boolean) throws javax.xml.transform.TransformerConfigurationException;
+    method public abstract void setFeature(String, boolean) throws javax.xml.transform.TransformerConfigurationException;
     method public abstract void setURIResolver(javax.xml.transform.URIResolver);
   }
 
   public class TransformerFactoryConfigurationError extends java.lang.Error {
     ctor public TransformerFactoryConfigurationError();
-    ctor public TransformerFactoryConfigurationError(java.lang.String);
-    ctor public TransformerFactoryConfigurationError(java.lang.Exception);
-    ctor public TransformerFactoryConfigurationError(java.lang.Exception, java.lang.String);
-    method public java.lang.Exception getException();
+    ctor public TransformerFactoryConfigurationError(String);
+    ctor public TransformerFactoryConfigurationError(Exception);
+    ctor public TransformerFactoryConfigurationError(Exception, String);
+    method public Exception getException();
   }
 
-  public abstract interface URIResolver {
-    method public abstract javax.xml.transform.Source resolve(java.lang.String, java.lang.String) throws javax.xml.transform.TransformerException;
+  public interface URIResolver {
+    method public javax.xml.transform.Source resolve(String, String) throws javax.xml.transform.TransformerException;
   }
 
 }
 
 package javax.xml.transform.dom {
 
-  public abstract interface DOMLocator implements javax.xml.transform.SourceLocator {
-    method public abstract org.w3c.dom.Node getOriginatingNode();
+  public interface DOMLocator extends javax.xml.transform.SourceLocator {
+    method public org.w3c.dom.Node getOriginatingNode();
   }
 
   public class DOMResult implements javax.xml.transform.Result {
     ctor public DOMResult();
     ctor public DOMResult(org.w3c.dom.Node);
-    ctor public DOMResult(org.w3c.dom.Node, java.lang.String);
+    ctor public DOMResult(org.w3c.dom.Node, String);
     ctor public DOMResult(org.w3c.dom.Node, org.w3c.dom.Node);
-    ctor public DOMResult(org.w3c.dom.Node, org.w3c.dom.Node, java.lang.String);
+    ctor public DOMResult(org.w3c.dom.Node, org.w3c.dom.Node, String);
     method public org.w3c.dom.Node getNextSibling();
     method public org.w3c.dom.Node getNode();
-    method public java.lang.String getSystemId();
+    method public String getSystemId();
     method public void setNextSibling(org.w3c.dom.Node);
     method public void setNode(org.w3c.dom.Node);
-    method public void setSystemId(java.lang.String);
-    field public static final java.lang.String FEATURE = "http://javax.xml.transform.dom.DOMResult/feature";
+    method public void setSystemId(String);
+    field public static final String FEATURE = "http://javax.xml.transform.dom.DOMResult/feature";
   }
 
   public class DOMSource implements javax.xml.transform.Source {
     ctor public DOMSource();
     ctor public DOMSource(org.w3c.dom.Node);
-    ctor public DOMSource(org.w3c.dom.Node, java.lang.String);
+    ctor public DOMSource(org.w3c.dom.Node, String);
     method public org.w3c.dom.Node getNode();
-    method public java.lang.String getSystemId();
+    method public String getSystemId();
     method public void setNode(org.w3c.dom.Node);
-    method public void setSystemId(java.lang.String);
-    field public static final java.lang.String FEATURE = "http://javax.xml.transform.dom.DOMSource/feature";
+    method public void setSystemId(String);
+    field public static final String FEATURE = "http://javax.xml.transform.dom.DOMSource/feature";
   }
 
 }
@@ -76499,11 +76251,11 @@
     ctor public SAXResult(org.xml.sax.ContentHandler);
     method public org.xml.sax.ContentHandler getHandler();
     method public org.xml.sax.ext.LexicalHandler getLexicalHandler();
-    method public java.lang.String getSystemId();
+    method public String getSystemId();
     method public void setHandler(org.xml.sax.ContentHandler);
     method public void setLexicalHandler(org.xml.sax.ext.LexicalHandler);
-    method public void setSystemId(java.lang.String);
-    field public static final java.lang.String FEATURE = "http://javax.xml.transform.sax.SAXResult/feature";
+    method public void setSystemId(String);
+    field public static final String FEATURE = "http://javax.xml.transform.sax.SAXResult/feature";
   }
 
   public class SAXSource implements javax.xml.transform.Source {
@@ -76511,13 +76263,13 @@
     ctor public SAXSource(org.xml.sax.XMLReader, org.xml.sax.InputSource);
     ctor public SAXSource(org.xml.sax.InputSource);
     method public org.xml.sax.InputSource getInputSource();
-    method public java.lang.String getSystemId();
+    method public String getSystemId();
     method public org.xml.sax.XMLReader getXMLReader();
     method public void setInputSource(org.xml.sax.InputSource);
-    method public void setSystemId(java.lang.String);
+    method public void setSystemId(String);
     method public void setXMLReader(org.xml.sax.XMLReader);
     method public static org.xml.sax.InputSource sourceToInputSource(javax.xml.transform.Source);
-    field public static final java.lang.String FEATURE = "http://javax.xml.transform.sax.SAXSource/feature";
+    field public static final String FEATURE = "http://javax.xml.transform.sax.SAXSource/feature";
   }
 
   public abstract class SAXTransformerFactory extends javax.xml.transform.TransformerFactory {
@@ -76528,21 +76280,21 @@
     method public abstract javax.xml.transform.sax.TransformerHandler newTransformerHandler() throws javax.xml.transform.TransformerConfigurationException;
     method public abstract org.xml.sax.XMLFilter newXMLFilter(javax.xml.transform.Source) throws javax.xml.transform.TransformerConfigurationException;
     method public abstract org.xml.sax.XMLFilter newXMLFilter(javax.xml.transform.Templates) throws javax.xml.transform.TransformerConfigurationException;
-    field public static final java.lang.String FEATURE = "http://javax.xml.transform.sax.SAXTransformerFactory/feature";
-    field public static final java.lang.String FEATURE_XMLFILTER = "http://javax.xml.transform.sax.SAXTransformerFactory/feature/xmlfilter";
+    field public static final String FEATURE = "http://javax.xml.transform.sax.SAXTransformerFactory/feature";
+    field public static final String FEATURE_XMLFILTER = "http://javax.xml.transform.sax.SAXTransformerFactory/feature/xmlfilter";
   }
 
-  public abstract interface TemplatesHandler implements org.xml.sax.ContentHandler {
-    method public abstract java.lang.String getSystemId();
-    method public abstract javax.xml.transform.Templates getTemplates();
-    method public abstract void setSystemId(java.lang.String);
+  public interface TemplatesHandler extends org.xml.sax.ContentHandler {
+    method public String getSystemId();
+    method public javax.xml.transform.Templates getTemplates();
+    method public void setSystemId(String);
   }
 
-  public abstract interface TransformerHandler implements org.xml.sax.ContentHandler org.xml.sax.DTDHandler org.xml.sax.ext.LexicalHandler {
-    method public abstract java.lang.String getSystemId();
-    method public abstract javax.xml.transform.Transformer getTransformer();
-    method public abstract void setResult(javax.xml.transform.Result) throws java.lang.IllegalArgumentException;
-    method public abstract void setSystemId(java.lang.String);
+  public interface TransformerHandler extends org.xml.sax.ContentHandler org.xml.sax.DTDHandler org.xml.sax.ext.LexicalHandler {
+    method public String getSystemId();
+    method public javax.xml.transform.Transformer getTransformer();
+    method public void setResult(javax.xml.transform.Result) throws java.lang.IllegalArgumentException;
+    method public void setSystemId(String);
   }
 
 }
@@ -76553,36 +76305,36 @@
     ctor public StreamResult();
     ctor public StreamResult(java.io.OutputStream);
     ctor public StreamResult(java.io.Writer);
-    ctor public StreamResult(java.lang.String);
+    ctor public StreamResult(String);
     ctor public StreamResult(java.io.File);
     method public java.io.OutputStream getOutputStream();
-    method public java.lang.String getSystemId();
+    method public String getSystemId();
     method public java.io.Writer getWriter();
     method public void setOutputStream(java.io.OutputStream);
-    method public void setSystemId(java.lang.String);
+    method public void setSystemId(String);
     method public void setSystemId(java.io.File);
     method public void setWriter(java.io.Writer);
-    field public static final java.lang.String FEATURE = "http://javax.xml.transform.stream.StreamResult/feature";
+    field public static final String FEATURE = "http://javax.xml.transform.stream.StreamResult/feature";
   }
 
   public class StreamSource implements javax.xml.transform.Source {
     ctor public StreamSource();
     ctor public StreamSource(java.io.InputStream);
-    ctor public StreamSource(java.io.InputStream, java.lang.String);
+    ctor public StreamSource(java.io.InputStream, String);
     ctor public StreamSource(java.io.Reader);
-    ctor public StreamSource(java.io.Reader, java.lang.String);
-    ctor public StreamSource(java.lang.String);
+    ctor public StreamSource(java.io.Reader, String);
+    ctor public StreamSource(String);
     ctor public StreamSource(java.io.File);
     method public java.io.InputStream getInputStream();
-    method public java.lang.String getPublicId();
+    method public String getPublicId();
     method public java.io.Reader getReader();
-    method public java.lang.String getSystemId();
+    method public String getSystemId();
     method public void setInputStream(java.io.InputStream);
-    method public void setPublicId(java.lang.String);
+    method public void setPublicId(String);
     method public void setReader(java.io.Reader);
-    method public void setSystemId(java.lang.String);
+    method public void setSystemId(String);
     method public void setSystemId(java.io.File);
-    field public static final java.lang.String FEATURE = "http://javax.xml.transform.stream.StreamSource/feature";
+    field public static final String FEATURE = "http://javax.xml.transform.stream.StreamSource/feature";
   }
 
 }
@@ -76598,26 +76350,26 @@
   public abstract class SchemaFactory {
     ctor protected SchemaFactory();
     method public abstract org.xml.sax.ErrorHandler getErrorHandler();
-    method public boolean getFeature(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public java.lang.Object getProperty(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public boolean getFeature(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public Object getProperty(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public abstract org.w3c.dom.ls.LSResourceResolver getResourceResolver();
-    method public abstract boolean isSchemaLanguageSupported(java.lang.String);
-    method public static javax.xml.validation.SchemaFactory newInstance(java.lang.String);
-    method public static javax.xml.validation.SchemaFactory newInstance(java.lang.String, java.lang.String, java.lang.ClassLoader);
+    method public abstract boolean isSchemaLanguageSupported(String);
+    method public static javax.xml.validation.SchemaFactory newInstance(String);
+    method public static javax.xml.validation.SchemaFactory newInstance(String, String, ClassLoader);
     method public javax.xml.validation.Schema newSchema(javax.xml.transform.Source) throws org.xml.sax.SAXException;
     method public javax.xml.validation.Schema newSchema(java.io.File) throws org.xml.sax.SAXException;
     method public javax.xml.validation.Schema newSchema(java.net.URL) throws org.xml.sax.SAXException;
     method public abstract javax.xml.validation.Schema newSchema(javax.xml.transform.Source[]) throws org.xml.sax.SAXException;
     method public abstract javax.xml.validation.Schema newSchema() throws org.xml.sax.SAXException;
     method public abstract void setErrorHandler(org.xml.sax.ErrorHandler);
-    method public void setFeature(java.lang.String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public void setProperty(java.lang.String, java.lang.Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setFeature(String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setProperty(String, Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public abstract void setResourceResolver(org.w3c.dom.ls.LSResourceResolver);
   }
 
   public abstract class SchemaFactoryLoader {
     ctor protected SchemaFactoryLoader();
-    method public abstract javax.xml.validation.SchemaFactory newFactory(java.lang.String);
+    method public abstract javax.xml.validation.SchemaFactory newFactory(String);
   }
 
   public abstract class TypeInfoProvider {
@@ -76631,13 +76383,13 @@
   public abstract class Validator {
     ctor protected Validator();
     method public abstract org.xml.sax.ErrorHandler getErrorHandler();
-    method public boolean getFeature(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public java.lang.Object getProperty(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public boolean getFeature(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public Object getProperty(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public abstract org.w3c.dom.ls.LSResourceResolver getResourceResolver();
     method public abstract void reset();
     method public abstract void setErrorHandler(org.xml.sax.ErrorHandler);
-    method public void setFeature(java.lang.String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public void setProperty(java.lang.String, java.lang.Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setFeature(String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setProperty(String, Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public abstract void setResourceResolver(org.w3c.dom.ls.LSResourceResolver);
     method public void validate(javax.xml.transform.Source) throws java.io.IOException, org.xml.sax.SAXException;
     method public abstract void validate(javax.xml.transform.Source, javax.xml.transform.Result) throws java.io.IOException, org.xml.sax.SAXException;
@@ -76647,14 +76399,14 @@
     ctor protected ValidatorHandler();
     method public abstract org.xml.sax.ContentHandler getContentHandler();
     method public abstract org.xml.sax.ErrorHandler getErrorHandler();
-    method public boolean getFeature(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public java.lang.Object getProperty(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public boolean getFeature(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public Object getProperty(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public abstract org.w3c.dom.ls.LSResourceResolver getResourceResolver();
     method public abstract javax.xml.validation.TypeInfoProvider getTypeInfoProvider();
     method public abstract void setContentHandler(org.xml.sax.ContentHandler);
     method public abstract void setErrorHandler(org.xml.sax.ErrorHandler);
-    method public void setFeature(java.lang.String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public void setProperty(java.lang.String, java.lang.Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setFeature(String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setProperty(String, Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public abstract void setResourceResolver(org.w3c.dom.ls.LSResourceResolver);
   }
 
@@ -76662,24 +76414,24 @@
 
 package javax.xml.xpath {
 
-  public abstract interface XPath {
-    method public abstract javax.xml.xpath.XPathExpression compile(java.lang.String) throws javax.xml.xpath.XPathExpressionException;
-    method public abstract java.lang.Object evaluate(java.lang.String, java.lang.Object, javax.xml.namespace.QName) throws javax.xml.xpath.XPathExpressionException;
-    method public abstract java.lang.String evaluate(java.lang.String, java.lang.Object) throws javax.xml.xpath.XPathExpressionException;
-    method public abstract java.lang.Object evaluate(java.lang.String, org.xml.sax.InputSource, javax.xml.namespace.QName) throws javax.xml.xpath.XPathExpressionException;
-    method public abstract java.lang.String evaluate(java.lang.String, org.xml.sax.InputSource) throws javax.xml.xpath.XPathExpressionException;
-    method public abstract javax.xml.namespace.NamespaceContext getNamespaceContext();
-    method public abstract javax.xml.xpath.XPathFunctionResolver getXPathFunctionResolver();
-    method public abstract javax.xml.xpath.XPathVariableResolver getXPathVariableResolver();
-    method public abstract void reset();
-    method public abstract void setNamespaceContext(javax.xml.namespace.NamespaceContext);
-    method public abstract void setXPathFunctionResolver(javax.xml.xpath.XPathFunctionResolver);
-    method public abstract void setXPathVariableResolver(javax.xml.xpath.XPathVariableResolver);
+  public interface XPath {
+    method public javax.xml.xpath.XPathExpression compile(String) throws javax.xml.xpath.XPathExpressionException;
+    method public Object evaluate(String, Object, javax.xml.namespace.QName) throws javax.xml.xpath.XPathExpressionException;
+    method public String evaluate(String, Object) throws javax.xml.xpath.XPathExpressionException;
+    method public Object evaluate(String, org.xml.sax.InputSource, javax.xml.namespace.QName) throws javax.xml.xpath.XPathExpressionException;
+    method public String evaluate(String, org.xml.sax.InputSource) throws javax.xml.xpath.XPathExpressionException;
+    method public javax.xml.namespace.NamespaceContext getNamespaceContext();
+    method public javax.xml.xpath.XPathFunctionResolver getXPathFunctionResolver();
+    method public javax.xml.xpath.XPathVariableResolver getXPathVariableResolver();
+    method public void reset();
+    method public void setNamespaceContext(javax.xml.namespace.NamespaceContext);
+    method public void setXPathFunctionResolver(javax.xml.xpath.XPathFunctionResolver);
+    method public void setXPathVariableResolver(javax.xml.xpath.XPathVariableResolver);
   }
 
   public class XPathConstants {
     field public static final javax.xml.namespace.QName BOOLEAN;
-    field public static final java.lang.String DOM_OBJECT_MODEL = "http://java.sun.com/jaxp/xpath/dom";
+    field public static final String DOM_OBJECT_MODEL = "http://java.sun.com/jaxp/xpath/dom";
     field public static final javax.xml.namespace.QName NODE;
     field public static final javax.xml.namespace.QName NODESET;
     field public static final javax.xml.namespace.QName NUMBER;
@@ -76687,192 +76439,191 @@
   }
 
   public class XPathException extends java.lang.Exception {
-    ctor public XPathException(java.lang.String);
-    ctor public XPathException(java.lang.Throwable);
-    method public java.lang.Throwable getCause();
+    ctor public XPathException(String);
+    ctor public XPathException(Throwable);
   }
 
-  public abstract interface XPathExpression {
-    method public abstract java.lang.Object evaluate(java.lang.Object, javax.xml.namespace.QName) throws javax.xml.xpath.XPathExpressionException;
-    method public abstract java.lang.String evaluate(java.lang.Object) throws javax.xml.xpath.XPathExpressionException;
-    method public abstract java.lang.Object evaluate(org.xml.sax.InputSource, javax.xml.namespace.QName) throws javax.xml.xpath.XPathExpressionException;
-    method public abstract java.lang.String evaluate(org.xml.sax.InputSource) throws javax.xml.xpath.XPathExpressionException;
+  public interface XPathExpression {
+    method public Object evaluate(Object, javax.xml.namespace.QName) throws javax.xml.xpath.XPathExpressionException;
+    method public String evaluate(Object) throws javax.xml.xpath.XPathExpressionException;
+    method public Object evaluate(org.xml.sax.InputSource, javax.xml.namespace.QName) throws javax.xml.xpath.XPathExpressionException;
+    method public String evaluate(org.xml.sax.InputSource) throws javax.xml.xpath.XPathExpressionException;
   }
 
   public class XPathExpressionException extends javax.xml.xpath.XPathException {
-    ctor public XPathExpressionException(java.lang.String);
-    ctor public XPathExpressionException(java.lang.Throwable);
+    ctor public XPathExpressionException(String);
+    ctor public XPathExpressionException(Throwable);
   }
 
   public abstract class XPathFactory {
     ctor protected XPathFactory();
-    method public abstract boolean getFeature(java.lang.String) throws javax.xml.xpath.XPathFactoryConfigurationException;
-    method public abstract boolean isObjectModelSupported(java.lang.String);
+    method public abstract boolean getFeature(String) throws javax.xml.xpath.XPathFactoryConfigurationException;
+    method public abstract boolean isObjectModelSupported(String);
     method public static final javax.xml.xpath.XPathFactory newInstance();
-    method public static final javax.xml.xpath.XPathFactory newInstance(java.lang.String) throws javax.xml.xpath.XPathFactoryConfigurationException;
-    method public static javax.xml.xpath.XPathFactory newInstance(java.lang.String, java.lang.String, java.lang.ClassLoader) throws javax.xml.xpath.XPathFactoryConfigurationException;
+    method public static final javax.xml.xpath.XPathFactory newInstance(String) throws javax.xml.xpath.XPathFactoryConfigurationException;
+    method public static javax.xml.xpath.XPathFactory newInstance(String, String, ClassLoader) throws javax.xml.xpath.XPathFactoryConfigurationException;
     method public abstract javax.xml.xpath.XPath newXPath();
-    method public abstract void setFeature(java.lang.String, boolean) throws javax.xml.xpath.XPathFactoryConfigurationException;
+    method public abstract void setFeature(String, boolean) throws javax.xml.xpath.XPathFactoryConfigurationException;
     method public abstract void setXPathFunctionResolver(javax.xml.xpath.XPathFunctionResolver);
     method public abstract void setXPathVariableResolver(javax.xml.xpath.XPathVariableResolver);
-    field public static final java.lang.String DEFAULT_OBJECT_MODEL_URI = "http://java.sun.com/jaxp/xpath/dom";
-    field public static final java.lang.String DEFAULT_PROPERTY_NAME = "javax.xml.xpath.XPathFactory";
+    field public static final String DEFAULT_OBJECT_MODEL_URI = "http://java.sun.com/jaxp/xpath/dom";
+    field public static final String DEFAULT_PROPERTY_NAME = "javax.xml.xpath.XPathFactory";
   }
 
   public class XPathFactoryConfigurationException extends javax.xml.xpath.XPathException {
-    ctor public XPathFactoryConfigurationException(java.lang.String);
-    ctor public XPathFactoryConfigurationException(java.lang.Throwable);
+    ctor public XPathFactoryConfigurationException(String);
+    ctor public XPathFactoryConfigurationException(Throwable);
   }
 
-  public abstract interface XPathFunction {
-    method public abstract java.lang.Object evaluate(java.util.List) throws javax.xml.xpath.XPathFunctionException;
+  public interface XPathFunction {
+    method public Object evaluate(java.util.List) throws javax.xml.xpath.XPathFunctionException;
   }
 
   public class XPathFunctionException extends javax.xml.xpath.XPathExpressionException {
-    ctor public XPathFunctionException(java.lang.String);
-    ctor public XPathFunctionException(java.lang.Throwable);
+    ctor public XPathFunctionException(String);
+    ctor public XPathFunctionException(Throwable);
   }
 
-  public abstract interface XPathFunctionResolver {
-    method public abstract javax.xml.xpath.XPathFunction resolveFunction(javax.xml.namespace.QName, int);
+  public interface XPathFunctionResolver {
+    method public javax.xml.xpath.XPathFunction resolveFunction(javax.xml.namespace.QName, int);
   }
 
-  public abstract interface XPathVariableResolver {
-    method public abstract java.lang.Object resolveVariable(javax.xml.namespace.QName);
+  public interface XPathVariableResolver {
+    method public Object resolveVariable(javax.xml.namespace.QName);
   }
 
 }
 
 package org.apache.http.conn {
 
-  public deprecated class ConnectTimeoutException extends java.io.InterruptedIOException {
-    ctor public ConnectTimeoutException();
-    ctor public ConnectTimeoutException(java.lang.String);
+  @Deprecated public class ConnectTimeoutException extends java.io.InterruptedIOException {
+    ctor @Deprecated public ConnectTimeoutException();
+    ctor @Deprecated public ConnectTimeoutException(String);
   }
 
 }
 
 package org.apache.http.conn.scheme {
 
-  public abstract deprecated interface HostNameResolver {
-    method public abstract java.net.InetAddress resolve(java.lang.String) throws java.io.IOException;
+  @Deprecated public interface HostNameResolver {
+    method @Deprecated public java.net.InetAddress resolve(String) throws java.io.IOException;
   }
 
-  public abstract deprecated interface LayeredSocketFactory implements org.apache.http.conn.scheme.SocketFactory {
-    method public abstract java.net.Socket createSocket(java.net.Socket, java.lang.String, int, boolean) throws java.io.IOException, java.net.UnknownHostException;
+  @Deprecated public interface LayeredSocketFactory extends org.apache.http.conn.scheme.SocketFactory {
+    method @Deprecated public java.net.Socket createSocket(java.net.Socket, String, int, boolean) throws java.io.IOException, java.net.UnknownHostException;
   }
 
-  public abstract deprecated interface SocketFactory {
-    method public abstract java.net.Socket connectSocket(java.net.Socket, java.lang.String, int, java.net.InetAddress, int, org.apache.http.params.HttpParams) throws org.apache.http.conn.ConnectTimeoutException, java.io.IOException, java.net.UnknownHostException;
-    method public abstract java.net.Socket createSocket() throws java.io.IOException;
-    method public abstract boolean isSecure(java.net.Socket) throws java.lang.IllegalArgumentException;
+  @Deprecated public interface SocketFactory {
+    method @Deprecated public java.net.Socket connectSocket(java.net.Socket, String, int, java.net.InetAddress, int, org.apache.http.params.HttpParams) throws org.apache.http.conn.ConnectTimeoutException, java.io.IOException, java.net.UnknownHostException;
+    method @Deprecated public java.net.Socket createSocket() throws java.io.IOException;
+    method @Deprecated public boolean isSecure(java.net.Socket) throws java.lang.IllegalArgumentException;
   }
 
 }
 
 package org.apache.http.conn.ssl {
 
-  public abstract deprecated class AbstractVerifier implements org.apache.http.conn.ssl.X509HostnameVerifier {
-    ctor public AbstractVerifier();
-    method public static boolean acceptableCountryWildcard(java.lang.String);
-    method public static int countDots(java.lang.String);
-    method public static java.lang.String[] getCNs(java.security.cert.X509Certificate);
-    method public static java.lang.String[] getDNSSubjectAlts(java.security.cert.X509Certificate);
-    method public final void verify(java.lang.String, javax.net.ssl.SSLSocket) throws java.io.IOException;
-    method public final boolean verify(java.lang.String, javax.net.ssl.SSLSession);
-    method public final void verify(java.lang.String, java.security.cert.X509Certificate) throws javax.net.ssl.SSLException;
-    method public final void verify(java.lang.String, java.lang.String[], java.lang.String[], boolean) throws javax.net.ssl.SSLException;
+  @Deprecated public abstract class AbstractVerifier implements org.apache.http.conn.ssl.X509HostnameVerifier {
+    ctor @Deprecated public AbstractVerifier();
+    method @Deprecated public static boolean acceptableCountryWildcard(String);
+    method @Deprecated public static int countDots(String);
+    method @Deprecated public static String[] getCNs(java.security.cert.X509Certificate);
+    method @Deprecated public static String[] getDNSSubjectAlts(java.security.cert.X509Certificate);
+    method @Deprecated public final void verify(String, javax.net.ssl.SSLSocket) throws java.io.IOException;
+    method @Deprecated public final boolean verify(String, javax.net.ssl.SSLSession);
+    method @Deprecated public final void verify(String, java.security.cert.X509Certificate) throws javax.net.ssl.SSLException;
+    method @Deprecated public final void verify(String, String[], String[], boolean) throws javax.net.ssl.SSLException;
   }
 
-  public deprecated class AllowAllHostnameVerifier extends org.apache.http.conn.ssl.AbstractVerifier {
-    ctor public AllowAllHostnameVerifier();
-    method public final java.lang.String toString();
-    method public final void verify(java.lang.String, java.lang.String[], java.lang.String[]);
+  @Deprecated public class AllowAllHostnameVerifier extends org.apache.http.conn.ssl.AbstractVerifier {
+    ctor @Deprecated public AllowAllHostnameVerifier();
+    method @Deprecated public final String toString();
+    method @Deprecated public final void verify(String, String[], String[]);
   }
 
-  public deprecated class BrowserCompatHostnameVerifier extends org.apache.http.conn.ssl.AbstractVerifier {
-    ctor public BrowserCompatHostnameVerifier();
-    method public final java.lang.String toString();
-    method public final void verify(java.lang.String, java.lang.String[], java.lang.String[]) throws javax.net.ssl.SSLException;
+  @Deprecated public class BrowserCompatHostnameVerifier extends org.apache.http.conn.ssl.AbstractVerifier {
+    ctor @Deprecated public BrowserCompatHostnameVerifier();
+    method @Deprecated public final String toString();
+    method @Deprecated public final void verify(String, String[], String[]) throws javax.net.ssl.SSLException;
   }
 
-  public deprecated class SSLSocketFactory implements org.apache.http.conn.scheme.LayeredSocketFactory {
-    ctor public SSLSocketFactory(java.lang.String, java.security.KeyStore, java.lang.String, java.security.KeyStore, java.security.SecureRandom, org.apache.http.conn.scheme.HostNameResolver) throws java.security.KeyManagementException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
-    ctor public SSLSocketFactory(java.security.KeyStore, java.lang.String, java.security.KeyStore) throws java.security.KeyManagementException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
-    ctor public SSLSocketFactory(java.security.KeyStore, java.lang.String) throws java.security.KeyManagementException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
-    ctor public SSLSocketFactory(java.security.KeyStore) throws java.security.KeyManagementException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
-    method public java.net.Socket connectSocket(java.net.Socket, java.lang.String, int, java.net.InetAddress, int, org.apache.http.params.HttpParams) throws java.io.IOException;
-    method public java.net.Socket createSocket() throws java.io.IOException;
-    method public java.net.Socket createSocket(java.net.Socket, java.lang.String, int, boolean) throws java.io.IOException, java.net.UnknownHostException;
-    method public org.apache.http.conn.ssl.X509HostnameVerifier getHostnameVerifier();
-    method public static org.apache.http.conn.ssl.SSLSocketFactory getSocketFactory();
-    method public boolean isSecure(java.net.Socket) throws java.lang.IllegalArgumentException;
-    method public void setHostnameVerifier(org.apache.http.conn.ssl.X509HostnameVerifier);
-    field public static final org.apache.http.conn.ssl.X509HostnameVerifier ALLOW_ALL_HOSTNAME_VERIFIER;
-    field public static final org.apache.http.conn.ssl.X509HostnameVerifier BROWSER_COMPATIBLE_HOSTNAME_VERIFIER;
-    field public static final java.lang.String SSL = "SSL";
-    field public static final java.lang.String SSLV2 = "SSLv2";
-    field public static final org.apache.http.conn.ssl.X509HostnameVerifier STRICT_HOSTNAME_VERIFIER;
-    field public static final java.lang.String TLS = "TLS";
+  @Deprecated public class SSLSocketFactory implements org.apache.http.conn.scheme.LayeredSocketFactory {
+    ctor @Deprecated public SSLSocketFactory(String, java.security.KeyStore, String, java.security.KeyStore, java.security.SecureRandom, org.apache.http.conn.scheme.HostNameResolver) throws java.security.KeyManagementException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
+    ctor @Deprecated public SSLSocketFactory(java.security.KeyStore, String, java.security.KeyStore) throws java.security.KeyManagementException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
+    ctor @Deprecated public SSLSocketFactory(java.security.KeyStore, String) throws java.security.KeyManagementException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
+    ctor @Deprecated public SSLSocketFactory(java.security.KeyStore) throws java.security.KeyManagementException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException;
+    method @Deprecated public java.net.Socket connectSocket(java.net.Socket, String, int, java.net.InetAddress, int, org.apache.http.params.HttpParams) throws java.io.IOException;
+    method @Deprecated public java.net.Socket createSocket() throws java.io.IOException;
+    method @Deprecated public java.net.Socket createSocket(java.net.Socket, String, int, boolean) throws java.io.IOException, java.net.UnknownHostException;
+    method @Deprecated public org.apache.http.conn.ssl.X509HostnameVerifier getHostnameVerifier();
+    method @Deprecated public static org.apache.http.conn.ssl.SSLSocketFactory getSocketFactory();
+    method @Deprecated public boolean isSecure(java.net.Socket) throws java.lang.IllegalArgumentException;
+    method @Deprecated public void setHostnameVerifier(org.apache.http.conn.ssl.X509HostnameVerifier);
+    field @Deprecated public static final org.apache.http.conn.ssl.X509HostnameVerifier ALLOW_ALL_HOSTNAME_VERIFIER;
+    field @Deprecated public static final org.apache.http.conn.ssl.X509HostnameVerifier BROWSER_COMPATIBLE_HOSTNAME_VERIFIER;
+    field @Deprecated public static final String SSL = "SSL";
+    field @Deprecated public static final String SSLV2 = "SSLv2";
+    field @Deprecated public static final org.apache.http.conn.ssl.X509HostnameVerifier STRICT_HOSTNAME_VERIFIER;
+    field @Deprecated public static final String TLS = "TLS";
   }
 
-  public deprecated class StrictHostnameVerifier extends org.apache.http.conn.ssl.AbstractVerifier {
-    ctor public StrictHostnameVerifier();
-    method public final java.lang.String toString();
-    method public final void verify(java.lang.String, java.lang.String[], java.lang.String[]) throws javax.net.ssl.SSLException;
+  @Deprecated public class StrictHostnameVerifier extends org.apache.http.conn.ssl.AbstractVerifier {
+    ctor @Deprecated public StrictHostnameVerifier();
+    method @Deprecated public final String toString();
+    method @Deprecated public final void verify(String, String[], String[]) throws javax.net.ssl.SSLException;
   }
 
-  public abstract deprecated interface X509HostnameVerifier implements javax.net.ssl.HostnameVerifier {
-    method public abstract void verify(java.lang.String, javax.net.ssl.SSLSocket) throws java.io.IOException;
-    method public abstract void verify(java.lang.String, java.security.cert.X509Certificate) throws javax.net.ssl.SSLException;
-    method public abstract void verify(java.lang.String, java.lang.String[], java.lang.String[]) throws javax.net.ssl.SSLException;
+  @Deprecated public interface X509HostnameVerifier extends javax.net.ssl.HostnameVerifier {
+    method @Deprecated public void verify(String, javax.net.ssl.SSLSocket) throws java.io.IOException;
+    method @Deprecated public void verify(String, java.security.cert.X509Certificate) throws javax.net.ssl.SSLException;
+    method @Deprecated public void verify(String, String[], String[]) throws javax.net.ssl.SSLException;
   }
 
 }
 
 package org.apache.http.params {
 
-  public abstract deprecated interface CoreConnectionPNames {
-    field public static final java.lang.String CONNECTION_TIMEOUT = "http.connection.timeout";
-    field public static final java.lang.String MAX_HEADER_COUNT = "http.connection.max-header-count";
-    field public static final java.lang.String MAX_LINE_LENGTH = "http.connection.max-line-length";
-    field public static final java.lang.String SOCKET_BUFFER_SIZE = "http.socket.buffer-size";
-    field public static final java.lang.String SO_LINGER = "http.socket.linger";
-    field public static final java.lang.String SO_TIMEOUT = "http.socket.timeout";
-    field public static final java.lang.String STALE_CONNECTION_CHECK = "http.connection.stalecheck";
-    field public static final java.lang.String TCP_NODELAY = "http.tcp.nodelay";
+  @Deprecated public interface CoreConnectionPNames {
+    field @Deprecated public static final String CONNECTION_TIMEOUT = "http.connection.timeout";
+    field @Deprecated public static final String MAX_HEADER_COUNT = "http.connection.max-header-count";
+    field @Deprecated public static final String MAX_LINE_LENGTH = "http.connection.max-line-length";
+    field @Deprecated public static final String SOCKET_BUFFER_SIZE = "http.socket.buffer-size";
+    field @Deprecated public static final String SO_LINGER = "http.socket.linger";
+    field @Deprecated public static final String SO_TIMEOUT = "http.socket.timeout";
+    field @Deprecated public static final String STALE_CONNECTION_CHECK = "http.connection.stalecheck";
+    field @Deprecated public static final String TCP_NODELAY = "http.tcp.nodelay";
   }
 
-  public final deprecated class HttpConnectionParams implements org.apache.http.params.CoreConnectionPNames {
-    method public static int getConnectionTimeout(org.apache.http.params.HttpParams);
-    method public static int getLinger(org.apache.http.params.HttpParams);
-    method public static int getSoTimeout(org.apache.http.params.HttpParams);
-    method public static int getSocketBufferSize(org.apache.http.params.HttpParams);
-    method public static boolean getTcpNoDelay(org.apache.http.params.HttpParams);
-    method public static boolean isStaleCheckingEnabled(org.apache.http.params.HttpParams);
-    method public static void setConnectionTimeout(org.apache.http.params.HttpParams, int);
-    method public static void setLinger(org.apache.http.params.HttpParams, int);
-    method public static void setSoTimeout(org.apache.http.params.HttpParams, int);
-    method public static void setSocketBufferSize(org.apache.http.params.HttpParams, int);
-    method public static void setStaleCheckingEnabled(org.apache.http.params.HttpParams, boolean);
-    method public static void setTcpNoDelay(org.apache.http.params.HttpParams, boolean);
+  @Deprecated public final class HttpConnectionParams implements org.apache.http.params.CoreConnectionPNames {
+    method @Deprecated public static int getConnectionTimeout(org.apache.http.params.HttpParams);
+    method @Deprecated public static int getLinger(org.apache.http.params.HttpParams);
+    method @Deprecated public static int getSoTimeout(org.apache.http.params.HttpParams);
+    method @Deprecated public static int getSocketBufferSize(org.apache.http.params.HttpParams);
+    method @Deprecated public static boolean getTcpNoDelay(org.apache.http.params.HttpParams);
+    method @Deprecated public static boolean isStaleCheckingEnabled(org.apache.http.params.HttpParams);
+    method @Deprecated public static void setConnectionTimeout(org.apache.http.params.HttpParams, int);
+    method @Deprecated public static void setLinger(org.apache.http.params.HttpParams, int);
+    method @Deprecated public static void setSoTimeout(org.apache.http.params.HttpParams, int);
+    method @Deprecated public static void setSocketBufferSize(org.apache.http.params.HttpParams, int);
+    method @Deprecated public static void setStaleCheckingEnabled(org.apache.http.params.HttpParams, boolean);
+    method @Deprecated public static void setTcpNoDelay(org.apache.http.params.HttpParams, boolean);
   }
 
-  public abstract deprecated interface HttpParams {
-    method public abstract org.apache.http.params.HttpParams copy();
-    method public abstract boolean getBooleanParameter(java.lang.String, boolean);
-    method public abstract double getDoubleParameter(java.lang.String, double);
-    method public abstract int getIntParameter(java.lang.String, int);
-    method public abstract long getLongParameter(java.lang.String, long);
-    method public abstract java.lang.Object getParameter(java.lang.String);
-    method public abstract boolean isParameterFalse(java.lang.String);
-    method public abstract boolean isParameterTrue(java.lang.String);
-    method public abstract boolean removeParameter(java.lang.String);
-    method public abstract org.apache.http.params.HttpParams setBooleanParameter(java.lang.String, boolean);
-    method public abstract org.apache.http.params.HttpParams setDoubleParameter(java.lang.String, double);
-    method public abstract org.apache.http.params.HttpParams setIntParameter(java.lang.String, int);
-    method public abstract org.apache.http.params.HttpParams setLongParameter(java.lang.String, long);
-    method public abstract org.apache.http.params.HttpParams setParameter(java.lang.String, java.lang.Object);
+  @Deprecated public interface HttpParams {
+    method @Deprecated public org.apache.http.params.HttpParams copy();
+    method @Deprecated public boolean getBooleanParameter(String, boolean);
+    method @Deprecated public double getDoubleParameter(String, double);
+    method @Deprecated public int getIntParameter(String, int);
+    method @Deprecated public long getLongParameter(String, long);
+    method @Deprecated public Object getParameter(String);
+    method @Deprecated public boolean isParameterFalse(String);
+    method @Deprecated public boolean isParameterTrue(String);
+    method @Deprecated public boolean removeParameter(String);
+    method @Deprecated public org.apache.http.params.HttpParams setBooleanParameter(String, boolean);
+    method @Deprecated public org.apache.http.params.HttpParams setDoubleParameter(String, double);
+    method @Deprecated public org.apache.http.params.HttpParams setIntParameter(String, int);
+    method @Deprecated public org.apache.http.params.HttpParams setLongParameter(String, long);
+    method @Deprecated public org.apache.http.params.HttpParams setParameter(String, Object);
   }
 
 }
@@ -76883,20 +76634,20 @@
     ctor public JSONArray();
     ctor public JSONArray(java.util.Collection);
     ctor public JSONArray(org.json.JSONTokener) throws org.json.JSONException;
-    ctor public JSONArray(java.lang.String) throws org.json.JSONException;
-    ctor public JSONArray(java.lang.Object) throws org.json.JSONException;
-    method public java.lang.Object get(int) throws org.json.JSONException;
+    ctor public JSONArray(String) throws org.json.JSONException;
+    ctor public JSONArray(Object) throws org.json.JSONException;
+    method public Object get(int) throws org.json.JSONException;
     method public boolean getBoolean(int) throws org.json.JSONException;
     method public double getDouble(int) throws org.json.JSONException;
     method public int getInt(int) throws org.json.JSONException;
     method public org.json.JSONArray getJSONArray(int) throws org.json.JSONException;
     method public org.json.JSONObject getJSONObject(int) throws org.json.JSONException;
     method public long getLong(int) throws org.json.JSONException;
-    method public java.lang.String getString(int) throws org.json.JSONException;
+    method public String getString(int) throws org.json.JSONException;
     method public boolean isNull(int);
-    method public java.lang.String join(java.lang.String) throws org.json.JSONException;
+    method public String join(String) throws org.json.JSONException;
     method public int length();
-    method public java.lang.Object opt(int);
+    method public Object opt(int);
     method public boolean optBoolean(int);
     method public boolean optBoolean(int, boolean);
     method public double optDouble(int);
@@ -76907,75 +76658,75 @@
     method public org.json.JSONObject optJSONObject(int);
     method public long optLong(int);
     method public long optLong(int, long);
-    method public java.lang.String optString(int);
-    method public java.lang.String optString(int, java.lang.String);
+    method public String optString(int);
+    method public String optString(int, String);
     method public org.json.JSONArray put(boolean);
     method public org.json.JSONArray put(double) throws org.json.JSONException;
     method public org.json.JSONArray put(int);
     method public org.json.JSONArray put(long);
-    method public org.json.JSONArray put(java.lang.Object);
+    method public org.json.JSONArray put(Object);
     method public org.json.JSONArray put(int, boolean) throws org.json.JSONException;
     method public org.json.JSONArray put(int, double) throws org.json.JSONException;
     method public org.json.JSONArray put(int, int) throws org.json.JSONException;
     method public org.json.JSONArray put(int, long) throws org.json.JSONException;
-    method public org.json.JSONArray put(int, java.lang.Object) throws org.json.JSONException;
-    method public java.lang.Object remove(int);
+    method public org.json.JSONArray put(int, Object) throws org.json.JSONException;
+    method public Object remove(int);
     method public org.json.JSONObject toJSONObject(org.json.JSONArray) throws org.json.JSONException;
-    method public java.lang.String toString(int) throws org.json.JSONException;
+    method public String toString(int) throws org.json.JSONException;
   }
 
   public class JSONException extends java.lang.Exception {
-    ctor public JSONException(java.lang.String);
-    ctor public JSONException(java.lang.String, java.lang.Throwable);
-    ctor public JSONException(java.lang.Throwable);
+    ctor public JSONException(String);
+    ctor public JSONException(String, Throwable);
+    ctor public JSONException(Throwable);
   }
 
   public class JSONObject {
     ctor public JSONObject();
-    ctor public JSONObject(java.util.Map);
-    ctor public JSONObject(org.json.JSONTokener) throws org.json.JSONException;
-    ctor public JSONObject(java.lang.String) throws org.json.JSONException;
-    ctor public JSONObject(org.json.JSONObject, java.lang.String[]) throws org.json.JSONException;
-    method public org.json.JSONObject accumulate(java.lang.String, java.lang.Object) throws org.json.JSONException;
-    method public java.lang.Object get(java.lang.String) throws org.json.JSONException;
-    method public boolean getBoolean(java.lang.String) throws org.json.JSONException;
-    method public double getDouble(java.lang.String) throws org.json.JSONException;
-    method public int getInt(java.lang.String) throws org.json.JSONException;
-    method public org.json.JSONArray getJSONArray(java.lang.String) throws org.json.JSONException;
-    method public org.json.JSONObject getJSONObject(java.lang.String) throws org.json.JSONException;
-    method public long getLong(java.lang.String) throws org.json.JSONException;
-    method public java.lang.String getString(java.lang.String) throws org.json.JSONException;
-    method public boolean has(java.lang.String);
-    method public boolean isNull(java.lang.String);
-    method public java.util.Iterator<java.lang.String> keys();
+    ctor public JSONObject(@NonNull java.util.Map);
+    ctor public JSONObject(@NonNull org.json.JSONTokener) throws org.json.JSONException;
+    ctor public JSONObject(@NonNull String) throws org.json.JSONException;
+    ctor public JSONObject(@NonNull org.json.JSONObject, @NonNull String[]) throws org.json.JSONException;
+    method @NonNull public org.json.JSONObject accumulate(@NonNull String, @Nullable Object) throws org.json.JSONException;
+    method @NonNull public Object get(@NonNull String) throws org.json.JSONException;
+    method public boolean getBoolean(@NonNull String) throws org.json.JSONException;
+    method public double getDouble(@NonNull String) throws org.json.JSONException;
+    method public int getInt(@NonNull String) throws org.json.JSONException;
+    method @NonNull public org.json.JSONArray getJSONArray(@NonNull String) throws org.json.JSONException;
+    method @NonNull public org.json.JSONObject getJSONObject(@NonNull String) throws org.json.JSONException;
+    method public long getLong(@NonNull String) throws org.json.JSONException;
+    method @NonNull public String getString(@NonNull String) throws org.json.JSONException;
+    method public boolean has(@Nullable String);
+    method public boolean isNull(@Nullable String);
+    method @NonNull public java.util.Iterator<java.lang.String> keys();
     method public int length();
-    method public org.json.JSONArray names();
-    method public static java.lang.String numberToString(java.lang.Number) throws org.json.JSONException;
-    method public java.lang.Object opt(java.lang.String);
-    method public boolean optBoolean(java.lang.String);
-    method public boolean optBoolean(java.lang.String, boolean);
-    method public double optDouble(java.lang.String);
-    method public double optDouble(java.lang.String, double);
-    method public int optInt(java.lang.String);
-    method public int optInt(java.lang.String, int);
-    method public org.json.JSONArray optJSONArray(java.lang.String);
-    method public org.json.JSONObject optJSONObject(java.lang.String);
-    method public long optLong(java.lang.String);
-    method public long optLong(java.lang.String, long);
-    method public java.lang.String optString(java.lang.String);
-    method public java.lang.String optString(java.lang.String, java.lang.String);
-    method public org.json.JSONObject put(java.lang.String, boolean) throws org.json.JSONException;
-    method public org.json.JSONObject put(java.lang.String, double) throws org.json.JSONException;
-    method public org.json.JSONObject put(java.lang.String, int) throws org.json.JSONException;
-    method public org.json.JSONObject put(java.lang.String, long) throws org.json.JSONException;
-    method public org.json.JSONObject put(java.lang.String, java.lang.Object) throws org.json.JSONException;
-    method public org.json.JSONObject putOpt(java.lang.String, java.lang.Object) throws org.json.JSONException;
-    method public static java.lang.String quote(java.lang.String);
-    method public java.lang.Object remove(java.lang.String);
-    method public org.json.JSONArray toJSONArray(org.json.JSONArray) throws org.json.JSONException;
-    method public java.lang.String toString(int) throws org.json.JSONException;
-    method public static java.lang.Object wrap(java.lang.Object);
-    field public static final java.lang.Object NULL;
+    method @Nullable public org.json.JSONArray names();
+    method @NonNull public static String numberToString(@NonNull Number) throws org.json.JSONException;
+    method @Nullable public Object opt(@Nullable String);
+    method public boolean optBoolean(@Nullable String);
+    method public boolean optBoolean(@Nullable String, boolean);
+    method public double optDouble(@Nullable String);
+    method public double optDouble(@Nullable String, double);
+    method public int optInt(@Nullable String);
+    method public int optInt(@Nullable String, int);
+    method @Nullable public org.json.JSONArray optJSONArray(@Nullable String);
+    method @Nullable public org.json.JSONObject optJSONObject(@Nullable String);
+    method public long optLong(@Nullable String);
+    method public long optLong(@Nullable String, long);
+    method @NonNull public String optString(@Nullable String);
+    method @NonNull public String optString(@Nullable String, @NonNull String);
+    method @NonNull public org.json.JSONObject put(@NonNull String, boolean) throws org.json.JSONException;
+    method @NonNull public org.json.JSONObject put(@NonNull String, double) throws org.json.JSONException;
+    method @NonNull public org.json.JSONObject put(@NonNull String, int) throws org.json.JSONException;
+    method @NonNull public org.json.JSONObject put(@NonNull String, long) throws org.json.JSONException;
+    method @NonNull public org.json.JSONObject put(@NonNull String, @Nullable Object) throws org.json.JSONException;
+    method @NonNull public org.json.JSONObject putOpt(@Nullable String, @Nullable Object) throws org.json.JSONException;
+    method @NonNull public static String quote(@Nullable String);
+    method @Nullable public Object remove(@Nullable String);
+    method @Nullable public org.json.JSONArray toJSONArray(@Nullable org.json.JSONArray) throws org.json.JSONException;
+    method @NonNull public String toString(int) throws org.json.JSONException;
+    method @Nullable public static Object wrap(@Nullable Object);
+    field @NonNull public static final Object NULL;
   }
 
   public class JSONStringer {
@@ -76983,88 +76734,88 @@
     method public org.json.JSONStringer array() throws org.json.JSONException;
     method public org.json.JSONStringer endArray() throws org.json.JSONException;
     method public org.json.JSONStringer endObject() throws org.json.JSONException;
-    method public org.json.JSONStringer key(java.lang.String) throws org.json.JSONException;
+    method public org.json.JSONStringer key(String) throws org.json.JSONException;
     method public org.json.JSONStringer object() throws org.json.JSONException;
-    method public org.json.JSONStringer value(java.lang.Object) throws org.json.JSONException;
+    method public org.json.JSONStringer value(Object) throws org.json.JSONException;
     method public org.json.JSONStringer value(boolean) throws org.json.JSONException;
     method public org.json.JSONStringer value(double) throws org.json.JSONException;
     method public org.json.JSONStringer value(long) throws org.json.JSONException;
   }
 
   public class JSONTokener {
-    ctor public JSONTokener(java.lang.String);
+    ctor public JSONTokener(String);
     method public void back();
     method public static int dehexchar(char);
     method public boolean more();
     method public char next();
     method public char next(char) throws org.json.JSONException;
-    method public java.lang.String next(int) throws org.json.JSONException;
+    method public String next(int) throws org.json.JSONException;
     method public char nextClean() throws org.json.JSONException;
-    method public java.lang.String nextString(char) throws org.json.JSONException;
-    method public java.lang.String nextTo(java.lang.String);
-    method public java.lang.String nextTo(char);
-    method public java.lang.Object nextValue() throws org.json.JSONException;
-    method public void skipPast(java.lang.String);
+    method public String nextString(char) throws org.json.JSONException;
+    method public String nextTo(String);
+    method public String nextTo(char);
+    method public Object nextValue() throws org.json.JSONException;
+    method public void skipPast(String);
     method public char skipTo(char);
-    method public org.json.JSONException syntaxError(java.lang.String);
+    method public org.json.JSONException syntaxError(String);
   }
 
 }
 
 package org.w3c.dom {
 
-  public abstract interface Attr implements org.w3c.dom.Node {
-    method public abstract java.lang.String getName();
-    method public abstract org.w3c.dom.Element getOwnerElement();
-    method public abstract org.w3c.dom.TypeInfo getSchemaTypeInfo();
-    method public abstract boolean getSpecified();
-    method public abstract java.lang.String getValue();
-    method public abstract boolean isId();
-    method public abstract void setValue(java.lang.String) throws org.w3c.dom.DOMException;
+  public interface Attr extends org.w3c.dom.Node {
+    method public String getName();
+    method public org.w3c.dom.Element getOwnerElement();
+    method public org.w3c.dom.TypeInfo getSchemaTypeInfo();
+    method public boolean getSpecified();
+    method public String getValue();
+    method public boolean isId();
+    method public void setValue(String) throws org.w3c.dom.DOMException;
   }
 
-  public abstract interface CDATASection implements org.w3c.dom.Text {
+  public interface CDATASection extends org.w3c.dom.Text {
   }
 
-  public abstract interface CharacterData implements org.w3c.dom.Node {
-    method public abstract void appendData(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract void deleteData(int, int) throws org.w3c.dom.DOMException;
-    method public abstract java.lang.String getData() throws org.w3c.dom.DOMException;
-    method public abstract int getLength();
-    method public abstract void insertData(int, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract void replaceData(int, int, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract void setData(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract java.lang.String substringData(int, int) throws org.w3c.dom.DOMException;
+  public interface CharacterData extends org.w3c.dom.Node {
+    method public void appendData(String) throws org.w3c.dom.DOMException;
+    method public void deleteData(int, int) throws org.w3c.dom.DOMException;
+    method public String getData() throws org.w3c.dom.DOMException;
+    method public int getLength();
+    method public void insertData(int, String) throws org.w3c.dom.DOMException;
+    method public void replaceData(int, int, String) throws org.w3c.dom.DOMException;
+    method public void setData(String) throws org.w3c.dom.DOMException;
+    method public String substringData(int, int) throws org.w3c.dom.DOMException;
   }
 
-  public abstract interface Comment implements org.w3c.dom.CharacterData {
+  public interface Comment extends org.w3c.dom.CharacterData {
   }
 
-  public abstract interface DOMConfiguration {
-    method public abstract boolean canSetParameter(java.lang.String, java.lang.Object);
-    method public abstract java.lang.Object getParameter(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.DOMStringList getParameterNames();
-    method public abstract void setParameter(java.lang.String, java.lang.Object) throws org.w3c.dom.DOMException;
+  public interface DOMConfiguration {
+    method public boolean canSetParameter(String, Object);
+    method public Object getParameter(String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.DOMStringList getParameterNames();
+    method public void setParameter(String, Object) throws org.w3c.dom.DOMException;
   }
 
-  public abstract interface DOMError {
-    method public abstract org.w3c.dom.DOMLocator getLocation();
-    method public abstract java.lang.String getMessage();
-    method public abstract java.lang.Object getRelatedData();
-    method public abstract java.lang.Object getRelatedException();
-    method public abstract short getSeverity();
-    method public abstract java.lang.String getType();
+  public interface DOMError {
+    method public org.w3c.dom.DOMLocator getLocation();
+    method public String getMessage();
+    method public Object getRelatedData();
+    method public Object getRelatedException();
+    method public short getSeverity();
+    method public String getType();
     field public static final short SEVERITY_ERROR = 2; // 0x2
     field public static final short SEVERITY_FATAL_ERROR = 3; // 0x3
     field public static final short SEVERITY_WARNING = 1; // 0x1
   }
 
-  public abstract interface DOMErrorHandler {
-    method public abstract boolean handleError(org.w3c.dom.DOMError);
+  public interface DOMErrorHandler {
+    method public boolean handleError(org.w3c.dom.DOMError);
   }
 
   public class DOMException extends java.lang.RuntimeException {
-    ctor public DOMException(short, java.lang.String);
+    ctor public DOMException(short, String);
     field public static final short DOMSTRING_SIZE_ERR = 2; // 0x2
     field public static final short HIERARCHY_REQUEST_ERR = 3; // 0x3
     field public static final short INDEX_SIZE_ERR = 1; // 0x1
@@ -77085,176 +76836,176 @@
     field public short code;
   }
 
-  public abstract interface DOMImplementation {
-    method public abstract org.w3c.dom.Document createDocument(java.lang.String, java.lang.String, org.w3c.dom.DocumentType) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.DocumentType createDocumentType(java.lang.String, java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract java.lang.Object getFeature(java.lang.String, java.lang.String);
-    method public abstract boolean hasFeature(java.lang.String, java.lang.String);
+  public interface DOMImplementation {
+    method public org.w3c.dom.Document createDocument(String, String, org.w3c.dom.DocumentType) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.DocumentType createDocumentType(String, String, String) throws org.w3c.dom.DOMException;
+    method public Object getFeature(String, String);
+    method public boolean hasFeature(String, String);
   }
 
-  public abstract interface DOMImplementationList {
-    method public abstract int getLength();
-    method public abstract org.w3c.dom.DOMImplementation item(int);
+  public interface DOMImplementationList {
+    method public int getLength();
+    method public org.w3c.dom.DOMImplementation item(int);
   }
 
-  public abstract interface DOMImplementationSource {
-    method public abstract org.w3c.dom.DOMImplementation getDOMImplementation(java.lang.String);
-    method public abstract org.w3c.dom.DOMImplementationList getDOMImplementationList(java.lang.String);
+  public interface DOMImplementationSource {
+    method public org.w3c.dom.DOMImplementation getDOMImplementation(String);
+    method public org.w3c.dom.DOMImplementationList getDOMImplementationList(String);
   }
 
-  public abstract interface DOMLocator {
-    method public abstract int getByteOffset();
-    method public abstract int getColumnNumber();
-    method public abstract int getLineNumber();
-    method public abstract org.w3c.dom.Node getRelatedNode();
-    method public abstract java.lang.String getUri();
-    method public abstract int getUtf16Offset();
+  public interface DOMLocator {
+    method public int getByteOffset();
+    method public int getColumnNumber();
+    method public int getLineNumber();
+    method public org.w3c.dom.Node getRelatedNode();
+    method public String getUri();
+    method public int getUtf16Offset();
   }
 
-  public abstract interface DOMStringList {
-    method public abstract boolean contains(java.lang.String);
-    method public abstract int getLength();
-    method public abstract java.lang.String item(int);
+  public interface DOMStringList {
+    method public boolean contains(String);
+    method public int getLength();
+    method public String item(int);
   }
 
-  public abstract interface Document implements org.w3c.dom.Node {
-    method public abstract org.w3c.dom.Node adoptNode(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Attr createAttribute(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Attr createAttributeNS(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.CDATASection createCDATASection(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Comment createComment(java.lang.String);
-    method public abstract org.w3c.dom.DocumentFragment createDocumentFragment();
-    method public abstract org.w3c.dom.Element createElement(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Element createElementNS(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.EntityReference createEntityReference(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.ProcessingInstruction createProcessingInstruction(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Text createTextNode(java.lang.String);
-    method public abstract org.w3c.dom.DocumentType getDoctype();
-    method public abstract org.w3c.dom.Element getDocumentElement();
-    method public abstract java.lang.String getDocumentURI();
-    method public abstract org.w3c.dom.DOMConfiguration getDomConfig();
-    method public abstract org.w3c.dom.Element getElementById(java.lang.String);
-    method public abstract org.w3c.dom.NodeList getElementsByTagName(java.lang.String);
-    method public abstract org.w3c.dom.NodeList getElementsByTagNameNS(java.lang.String, java.lang.String);
-    method public abstract org.w3c.dom.DOMImplementation getImplementation();
-    method public abstract java.lang.String getInputEncoding();
-    method public abstract boolean getStrictErrorChecking();
-    method public abstract java.lang.String getXmlEncoding();
-    method public abstract boolean getXmlStandalone();
-    method public abstract java.lang.String getXmlVersion();
-    method public abstract org.w3c.dom.Node importNode(org.w3c.dom.Node, boolean) throws org.w3c.dom.DOMException;
-    method public abstract void normalizeDocument();
-    method public abstract org.w3c.dom.Node renameNode(org.w3c.dom.Node, java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract void setDocumentURI(java.lang.String);
-    method public abstract void setStrictErrorChecking(boolean);
-    method public abstract void setXmlStandalone(boolean) throws org.w3c.dom.DOMException;
-    method public abstract void setXmlVersion(java.lang.String) throws org.w3c.dom.DOMException;
+  public interface Document extends org.w3c.dom.Node {
+    method public org.w3c.dom.Node adoptNode(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Attr createAttribute(String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Attr createAttributeNS(String, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.CDATASection createCDATASection(String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Comment createComment(String);
+    method public org.w3c.dom.DocumentFragment createDocumentFragment();
+    method public org.w3c.dom.Element createElement(String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Element createElementNS(String, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.EntityReference createEntityReference(String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.ProcessingInstruction createProcessingInstruction(String, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Text createTextNode(String);
+    method public org.w3c.dom.DocumentType getDoctype();
+    method public org.w3c.dom.Element getDocumentElement();
+    method public String getDocumentURI();
+    method public org.w3c.dom.DOMConfiguration getDomConfig();
+    method public org.w3c.dom.Element getElementById(String);
+    method public org.w3c.dom.NodeList getElementsByTagName(String);
+    method public org.w3c.dom.NodeList getElementsByTagNameNS(String, String);
+    method public org.w3c.dom.DOMImplementation getImplementation();
+    method public String getInputEncoding();
+    method public boolean getStrictErrorChecking();
+    method public String getXmlEncoding();
+    method public boolean getXmlStandalone();
+    method public String getXmlVersion();
+    method public org.w3c.dom.Node importNode(org.w3c.dom.Node, boolean) throws org.w3c.dom.DOMException;
+    method public void normalizeDocument();
+    method public org.w3c.dom.Node renameNode(org.w3c.dom.Node, String, String) throws org.w3c.dom.DOMException;
+    method public void setDocumentURI(String);
+    method public void setStrictErrorChecking(boolean);
+    method public void setXmlStandalone(boolean) throws org.w3c.dom.DOMException;
+    method public void setXmlVersion(String) throws org.w3c.dom.DOMException;
   }
 
-  public abstract interface DocumentFragment implements org.w3c.dom.Node {
+  public interface DocumentFragment extends org.w3c.dom.Node {
   }
 
-  public abstract interface DocumentType implements org.w3c.dom.Node {
-    method public abstract org.w3c.dom.NamedNodeMap getEntities();
-    method public abstract java.lang.String getInternalSubset();
-    method public abstract java.lang.String getName();
-    method public abstract org.w3c.dom.NamedNodeMap getNotations();
-    method public abstract java.lang.String getPublicId();
-    method public abstract java.lang.String getSystemId();
+  public interface DocumentType extends org.w3c.dom.Node {
+    method public org.w3c.dom.NamedNodeMap getEntities();
+    method public String getInternalSubset();
+    method public String getName();
+    method public org.w3c.dom.NamedNodeMap getNotations();
+    method public String getPublicId();
+    method public String getSystemId();
   }
 
-  public abstract interface Element implements org.w3c.dom.Node {
-    method public abstract java.lang.String getAttribute(java.lang.String);
-    method public abstract java.lang.String getAttributeNS(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Attr getAttributeNode(java.lang.String);
-    method public abstract org.w3c.dom.Attr getAttributeNodeNS(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.NodeList getElementsByTagName(java.lang.String);
-    method public abstract org.w3c.dom.NodeList getElementsByTagNameNS(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.TypeInfo getSchemaTypeInfo();
-    method public abstract java.lang.String getTagName();
-    method public abstract boolean hasAttribute(java.lang.String);
-    method public abstract boolean hasAttributeNS(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract void removeAttribute(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract void removeAttributeNS(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Attr removeAttributeNode(org.w3c.dom.Attr) throws org.w3c.dom.DOMException;
-    method public abstract void setAttribute(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract void setAttributeNS(java.lang.String, java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Attr setAttributeNode(org.w3c.dom.Attr) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Attr setAttributeNodeNS(org.w3c.dom.Attr) throws org.w3c.dom.DOMException;
-    method public abstract void setIdAttribute(java.lang.String, boolean) throws org.w3c.dom.DOMException;
-    method public abstract void setIdAttributeNS(java.lang.String, java.lang.String, boolean) throws org.w3c.dom.DOMException;
-    method public abstract void setIdAttributeNode(org.w3c.dom.Attr, boolean) throws org.w3c.dom.DOMException;
+  public interface Element extends org.w3c.dom.Node {
+    method public String getAttribute(String);
+    method public String getAttributeNS(String, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Attr getAttributeNode(String);
+    method public org.w3c.dom.Attr getAttributeNodeNS(String, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.NodeList getElementsByTagName(String);
+    method public org.w3c.dom.NodeList getElementsByTagNameNS(String, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.TypeInfo getSchemaTypeInfo();
+    method public String getTagName();
+    method public boolean hasAttribute(String);
+    method public boolean hasAttributeNS(String, String) throws org.w3c.dom.DOMException;
+    method public void removeAttribute(String) throws org.w3c.dom.DOMException;
+    method public void removeAttributeNS(String, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Attr removeAttributeNode(org.w3c.dom.Attr) throws org.w3c.dom.DOMException;
+    method public void setAttribute(String, String) throws org.w3c.dom.DOMException;
+    method public void setAttributeNS(String, String, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Attr setAttributeNode(org.w3c.dom.Attr) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Attr setAttributeNodeNS(org.w3c.dom.Attr) throws org.w3c.dom.DOMException;
+    method public void setIdAttribute(String, boolean) throws org.w3c.dom.DOMException;
+    method public void setIdAttributeNS(String, String, boolean) throws org.w3c.dom.DOMException;
+    method public void setIdAttributeNode(org.w3c.dom.Attr, boolean) throws org.w3c.dom.DOMException;
   }
 
-  public abstract interface Entity implements org.w3c.dom.Node {
-    method public abstract java.lang.String getInputEncoding();
-    method public abstract java.lang.String getNotationName();
-    method public abstract java.lang.String getPublicId();
-    method public abstract java.lang.String getSystemId();
-    method public abstract java.lang.String getXmlEncoding();
-    method public abstract java.lang.String getXmlVersion();
+  public interface Entity extends org.w3c.dom.Node {
+    method public String getInputEncoding();
+    method public String getNotationName();
+    method public String getPublicId();
+    method public String getSystemId();
+    method public String getXmlEncoding();
+    method public String getXmlVersion();
   }
 
-  public abstract interface EntityReference implements org.w3c.dom.Node {
+  public interface EntityReference extends org.w3c.dom.Node {
   }
 
-  public abstract interface NameList {
-    method public abstract boolean contains(java.lang.String);
-    method public abstract boolean containsNS(java.lang.String, java.lang.String);
-    method public abstract int getLength();
-    method public abstract java.lang.String getName(int);
-    method public abstract java.lang.String getNamespaceURI(int);
+  public interface NameList {
+    method public boolean contains(String);
+    method public boolean containsNS(String, String);
+    method public int getLength();
+    method public String getName(int);
+    method public String getNamespaceURI(int);
   }
 
-  public abstract interface NamedNodeMap {
-    method public abstract int getLength();
-    method public abstract org.w3c.dom.Node getNamedItem(java.lang.String);
-    method public abstract org.w3c.dom.Node getNamedItemNS(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Node item(int);
-    method public abstract org.w3c.dom.Node removeNamedItem(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Node removeNamedItemNS(java.lang.String, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Node setNamedItem(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Node setNamedItemNS(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
+  public interface NamedNodeMap {
+    method public int getLength();
+    method public org.w3c.dom.Node getNamedItem(String);
+    method public org.w3c.dom.Node getNamedItemNS(String, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Node item(int);
+    method public org.w3c.dom.Node removeNamedItem(String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Node removeNamedItemNS(String, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Node setNamedItem(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Node setNamedItemNS(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
   }
 
-  public abstract interface Node {
-    method public abstract org.w3c.dom.Node appendChild(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Node cloneNode(boolean);
-    method public abstract short compareDocumentPosition(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.NamedNodeMap getAttributes();
-    method public abstract java.lang.String getBaseURI();
-    method public abstract org.w3c.dom.NodeList getChildNodes();
-    method public abstract java.lang.Object getFeature(java.lang.String, java.lang.String);
-    method public abstract org.w3c.dom.Node getFirstChild();
-    method public abstract org.w3c.dom.Node getLastChild();
-    method public abstract java.lang.String getLocalName();
-    method public abstract java.lang.String getNamespaceURI();
-    method public abstract org.w3c.dom.Node getNextSibling();
-    method public abstract java.lang.String getNodeName();
-    method public abstract short getNodeType();
-    method public abstract java.lang.String getNodeValue() throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Document getOwnerDocument();
-    method public abstract org.w3c.dom.Node getParentNode();
-    method public abstract java.lang.String getPrefix();
-    method public abstract org.w3c.dom.Node getPreviousSibling();
-    method public abstract java.lang.String getTextContent() throws org.w3c.dom.DOMException;
-    method public abstract java.lang.Object getUserData(java.lang.String);
-    method public abstract boolean hasAttributes();
-    method public abstract boolean hasChildNodes();
-    method public abstract org.w3c.dom.Node insertBefore(org.w3c.dom.Node, org.w3c.dom.Node) throws org.w3c.dom.DOMException;
-    method public abstract boolean isDefaultNamespace(java.lang.String);
-    method public abstract boolean isEqualNode(org.w3c.dom.Node);
-    method public abstract boolean isSameNode(org.w3c.dom.Node);
-    method public abstract boolean isSupported(java.lang.String, java.lang.String);
-    method public abstract java.lang.String lookupNamespaceURI(java.lang.String);
-    method public abstract java.lang.String lookupPrefix(java.lang.String);
-    method public abstract void normalize();
-    method public abstract org.w3c.dom.Node removeChild(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Node replaceChild(org.w3c.dom.Node, org.w3c.dom.Node) throws org.w3c.dom.DOMException;
-    method public abstract void setNodeValue(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract void setPrefix(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract void setTextContent(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract java.lang.Object setUserData(java.lang.String, java.lang.Object, org.w3c.dom.UserDataHandler);
+  public interface Node {
+    method public org.w3c.dom.Node appendChild(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Node cloneNode(boolean);
+    method public short compareDocumentPosition(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.NamedNodeMap getAttributes();
+    method public String getBaseURI();
+    method public org.w3c.dom.NodeList getChildNodes();
+    method public Object getFeature(String, String);
+    method public org.w3c.dom.Node getFirstChild();
+    method public org.w3c.dom.Node getLastChild();
+    method public String getLocalName();
+    method public String getNamespaceURI();
+    method public org.w3c.dom.Node getNextSibling();
+    method public String getNodeName();
+    method public short getNodeType();
+    method public String getNodeValue() throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Document getOwnerDocument();
+    method public org.w3c.dom.Node getParentNode();
+    method public String getPrefix();
+    method public org.w3c.dom.Node getPreviousSibling();
+    method public String getTextContent() throws org.w3c.dom.DOMException;
+    method public Object getUserData(String);
+    method public boolean hasAttributes();
+    method public boolean hasChildNodes();
+    method public org.w3c.dom.Node insertBefore(org.w3c.dom.Node, org.w3c.dom.Node) throws org.w3c.dom.DOMException;
+    method public boolean isDefaultNamespace(String);
+    method public boolean isEqualNode(org.w3c.dom.Node);
+    method public boolean isSameNode(org.w3c.dom.Node);
+    method public boolean isSupported(String, String);
+    method public String lookupNamespaceURI(String);
+    method public String lookupPrefix(String);
+    method public void normalize();
+    method public org.w3c.dom.Node removeChild(org.w3c.dom.Node) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Node replaceChild(org.w3c.dom.Node, org.w3c.dom.Node) throws org.w3c.dom.DOMException;
+    method public void setNodeValue(String) throws org.w3c.dom.DOMException;
+    method public void setPrefix(String) throws org.w3c.dom.DOMException;
+    method public void setTextContent(String) throws org.w3c.dom.DOMException;
+    method public Object setUserData(String, Object, org.w3c.dom.UserDataHandler);
     field public static final short ATTRIBUTE_NODE = 2; // 0x2
     field public static final short CDATA_SECTION_NODE = 4; // 0x4
     field public static final short COMMENT_NODE = 8; // 0x8
@@ -77275,41 +77026,41 @@
     field public static final short TEXT_NODE = 3; // 0x3
   }
 
-  public abstract interface NodeList {
-    method public abstract int getLength();
-    method public abstract org.w3c.dom.Node item(int);
+  public interface NodeList {
+    method public int getLength();
+    method public org.w3c.dom.Node item(int);
   }
 
-  public abstract interface Notation implements org.w3c.dom.Node {
-    method public abstract java.lang.String getPublicId();
-    method public abstract java.lang.String getSystemId();
+  public interface Notation extends org.w3c.dom.Node {
+    method public String getPublicId();
+    method public String getSystemId();
   }
 
-  public abstract interface ProcessingInstruction implements org.w3c.dom.Node {
-    method public abstract java.lang.String getData();
-    method public abstract java.lang.String getTarget();
-    method public abstract void setData(java.lang.String) throws org.w3c.dom.DOMException;
+  public interface ProcessingInstruction extends org.w3c.dom.Node {
+    method public String getData();
+    method public String getTarget();
+    method public void setData(String) throws org.w3c.dom.DOMException;
   }
 
-  public abstract interface Text implements org.w3c.dom.CharacterData {
-    method public abstract java.lang.String getWholeText();
-    method public abstract boolean isElementContentWhitespace();
-    method public abstract org.w3c.dom.Text replaceWholeText(java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.Text splitText(int) throws org.w3c.dom.DOMException;
+  public interface Text extends org.w3c.dom.CharacterData {
+    method public String getWholeText();
+    method public boolean isElementContentWhitespace();
+    method public org.w3c.dom.Text replaceWholeText(String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.Text splitText(int) throws org.w3c.dom.DOMException;
   }
 
-  public abstract interface TypeInfo {
-    method public abstract java.lang.String getTypeName();
-    method public abstract java.lang.String getTypeNamespace();
-    method public abstract boolean isDerivedFrom(java.lang.String, java.lang.String, int);
+  public interface TypeInfo {
+    method public String getTypeName();
+    method public String getTypeNamespace();
+    method public boolean isDerivedFrom(String, String, int);
     field public static final int DERIVATION_EXTENSION = 2; // 0x2
     field public static final int DERIVATION_LIST = 8; // 0x8
     field public static final int DERIVATION_RESTRICTION = 1; // 0x1
     field public static final int DERIVATION_UNION = 4; // 0x4
   }
 
-  public abstract interface UserDataHandler {
-    method public abstract void handle(short, java.lang.String, java.lang.Object, org.w3c.dom.Node, org.w3c.dom.Node);
+  public interface UserDataHandler {
+    method public void handle(short, String, Object, org.w3c.dom.Node, org.w3c.dom.Node);
     field public static final short NODE_ADOPTED = 5; // 0x5
     field public static final short NODE_CLONED = 1; // 0x1
     field public static final short NODE_DELETED = 3; // 0x3
@@ -77321,62 +77072,62 @@
 
 package org.w3c.dom.ls {
 
-  public abstract interface DOMImplementationLS {
-    method public abstract org.w3c.dom.ls.LSInput createLSInput();
-    method public abstract org.w3c.dom.ls.LSOutput createLSOutput();
-    method public abstract org.w3c.dom.ls.LSParser createLSParser(short, java.lang.String) throws org.w3c.dom.DOMException;
-    method public abstract org.w3c.dom.ls.LSSerializer createLSSerializer();
+  public interface DOMImplementationLS {
+    method public org.w3c.dom.ls.LSInput createLSInput();
+    method public org.w3c.dom.ls.LSOutput createLSOutput();
+    method public org.w3c.dom.ls.LSParser createLSParser(short, String) throws org.w3c.dom.DOMException;
+    method public org.w3c.dom.ls.LSSerializer createLSSerializer();
     field public static final short MODE_ASYNCHRONOUS = 2; // 0x2
     field public static final short MODE_SYNCHRONOUS = 1; // 0x1
   }
 
   public class LSException extends java.lang.RuntimeException {
-    ctor public LSException(short, java.lang.String);
+    ctor public LSException(short, String);
     field public static final short PARSE_ERR = 81; // 0x51
     field public static final short SERIALIZE_ERR = 82; // 0x52
     field public short code;
   }
 
-  public abstract interface LSInput {
-    method public abstract java.lang.String getBaseURI();
-    method public abstract java.io.InputStream getByteStream();
-    method public abstract boolean getCertifiedText();
-    method public abstract java.io.Reader getCharacterStream();
-    method public abstract java.lang.String getEncoding();
-    method public abstract java.lang.String getPublicId();
-    method public abstract java.lang.String getStringData();
-    method public abstract java.lang.String getSystemId();
-    method public abstract void setBaseURI(java.lang.String);
-    method public abstract void setByteStream(java.io.InputStream);
-    method public abstract void setCertifiedText(boolean);
-    method public abstract void setCharacterStream(java.io.Reader);
-    method public abstract void setEncoding(java.lang.String);
-    method public abstract void setPublicId(java.lang.String);
-    method public abstract void setStringData(java.lang.String);
-    method public abstract void setSystemId(java.lang.String);
+  public interface LSInput {
+    method public String getBaseURI();
+    method public java.io.InputStream getByteStream();
+    method public boolean getCertifiedText();
+    method public java.io.Reader getCharacterStream();
+    method public String getEncoding();
+    method public String getPublicId();
+    method public String getStringData();
+    method public String getSystemId();
+    method public void setBaseURI(String);
+    method public void setByteStream(java.io.InputStream);
+    method public void setCertifiedText(boolean);
+    method public void setCharacterStream(java.io.Reader);
+    method public void setEncoding(String);
+    method public void setPublicId(String);
+    method public void setStringData(String);
+    method public void setSystemId(String);
   }
 
-  public abstract interface LSOutput {
-    method public abstract java.io.OutputStream getByteStream();
-    method public abstract java.io.Writer getCharacterStream();
-    method public abstract java.lang.String getEncoding();
-    method public abstract java.lang.String getSystemId();
-    method public abstract void setByteStream(java.io.OutputStream);
-    method public abstract void setCharacterStream(java.io.Writer);
-    method public abstract void setEncoding(java.lang.String);
-    method public abstract void setSystemId(java.lang.String);
+  public interface LSOutput {
+    method public java.io.OutputStream getByteStream();
+    method public java.io.Writer getCharacterStream();
+    method public String getEncoding();
+    method public String getSystemId();
+    method public void setByteStream(java.io.OutputStream);
+    method public void setCharacterStream(java.io.Writer);
+    method public void setEncoding(String);
+    method public void setSystemId(String);
   }
 
-  public abstract interface LSParser {
-    method public abstract void abort();
-    method public abstract boolean getAsync();
-    method public abstract boolean getBusy();
-    method public abstract org.w3c.dom.DOMConfiguration getDomConfig();
-    method public abstract org.w3c.dom.ls.LSParserFilter getFilter();
-    method public abstract org.w3c.dom.Document parse(org.w3c.dom.ls.LSInput) throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException;
-    method public abstract org.w3c.dom.Document parseURI(java.lang.String) throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException;
-    method public abstract org.w3c.dom.Node parseWithContext(org.w3c.dom.ls.LSInput, org.w3c.dom.Node, short) throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException;
-    method public abstract void setFilter(org.w3c.dom.ls.LSParserFilter);
+  public interface LSParser {
+    method public void abort();
+    method public boolean getAsync();
+    method public boolean getBusy();
+    method public org.w3c.dom.DOMConfiguration getDomConfig();
+    method public org.w3c.dom.ls.LSParserFilter getFilter();
+    method public org.w3c.dom.Document parse(org.w3c.dom.ls.LSInput) throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException;
+    method public org.w3c.dom.Document parseURI(String) throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException;
+    method public org.w3c.dom.Node parseWithContext(org.w3c.dom.ls.LSInput, org.w3c.dom.Node, short) throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException;
+    method public void setFilter(org.w3c.dom.ls.LSParserFilter);
     field public static final short ACTION_APPEND_AS_CHILDREN = 1; // 0x1
     field public static final short ACTION_INSERT_AFTER = 4; // 0x4
     field public static final short ACTION_INSERT_BEFORE = 3; // 0x3
@@ -77384,343 +77135,343 @@
     field public static final short ACTION_REPLACE_CHILDREN = 2; // 0x2
   }
 
-  public abstract interface LSParserFilter {
-    method public abstract short acceptNode(org.w3c.dom.Node);
-    method public abstract int getWhatToShow();
-    method public abstract short startElement(org.w3c.dom.Element);
+  public interface LSParserFilter {
+    method public short acceptNode(org.w3c.dom.Node);
+    method public int getWhatToShow();
+    method public short startElement(org.w3c.dom.Element);
     field public static final short FILTER_ACCEPT = 1; // 0x1
     field public static final short FILTER_INTERRUPT = 4; // 0x4
     field public static final short FILTER_REJECT = 2; // 0x2
     field public static final short FILTER_SKIP = 3; // 0x3
   }
 
-  public abstract interface LSResourceResolver {
-    method public abstract org.w3c.dom.ls.LSInput resolveResource(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+  public interface LSResourceResolver {
+    method public org.w3c.dom.ls.LSInput resolveResource(String, String, String, String, String);
   }
 
-  public abstract interface LSSerializer {
-    method public abstract org.w3c.dom.DOMConfiguration getDomConfig();
-    method public abstract java.lang.String getNewLine();
-    method public abstract void setNewLine(java.lang.String);
-    method public abstract boolean write(org.w3c.dom.Node, org.w3c.dom.ls.LSOutput) throws org.w3c.dom.ls.LSException;
-    method public abstract java.lang.String writeToString(org.w3c.dom.Node) throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException;
-    method public abstract boolean writeToURI(org.w3c.dom.Node, java.lang.String) throws org.w3c.dom.ls.LSException;
+  public interface LSSerializer {
+    method public org.w3c.dom.DOMConfiguration getDomConfig();
+    method public String getNewLine();
+    method public void setNewLine(String);
+    method public boolean write(org.w3c.dom.Node, org.w3c.dom.ls.LSOutput) throws org.w3c.dom.ls.LSException;
+    method public String writeToString(org.w3c.dom.Node) throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException;
+    method public boolean writeToURI(org.w3c.dom.Node, String) throws org.w3c.dom.ls.LSException;
   }
 
 }
 
 package org.xml.sax {
 
-  public abstract deprecated interface AttributeList {
-    method public abstract int getLength();
-    method public abstract java.lang.String getName(int);
-    method public abstract java.lang.String getType(int);
-    method public abstract java.lang.String getType(java.lang.String);
-    method public abstract java.lang.String getValue(int);
-    method public abstract java.lang.String getValue(java.lang.String);
+  @Deprecated public interface AttributeList {
+    method @Deprecated public int getLength();
+    method @Deprecated public String getName(int);
+    method @Deprecated public String getType(int);
+    method @Deprecated public String getType(String);
+    method @Deprecated public String getValue(int);
+    method @Deprecated public String getValue(String);
   }
 
-  public abstract interface Attributes {
-    method public abstract int getIndex(java.lang.String, java.lang.String);
-    method public abstract int getIndex(java.lang.String);
-    method public abstract int getLength();
-    method public abstract java.lang.String getLocalName(int);
-    method public abstract java.lang.String getQName(int);
-    method public abstract java.lang.String getType(int);
-    method public abstract java.lang.String getType(java.lang.String, java.lang.String);
-    method public abstract java.lang.String getType(java.lang.String);
-    method public abstract java.lang.String getURI(int);
-    method public abstract java.lang.String getValue(int);
-    method public abstract java.lang.String getValue(java.lang.String, java.lang.String);
-    method public abstract java.lang.String getValue(java.lang.String);
+  public interface Attributes {
+    method public int getIndex(String, String);
+    method public int getIndex(String);
+    method public int getLength();
+    method public String getLocalName(int);
+    method public String getQName(int);
+    method public String getType(int);
+    method public String getType(String, String);
+    method public String getType(String);
+    method public String getURI(int);
+    method public String getValue(int);
+    method public String getValue(String, String);
+    method public String getValue(String);
   }
 
-  public abstract interface ContentHandler {
-    method public abstract void characters(char[], int, int) throws org.xml.sax.SAXException;
-    method public abstract void endDocument() throws org.xml.sax.SAXException;
-    method public abstract void endElement(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void endPrefixMapping(java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void ignorableWhitespace(char[], int, int) throws org.xml.sax.SAXException;
-    method public abstract void processingInstruction(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void setDocumentLocator(org.xml.sax.Locator);
-    method public abstract void skippedEntity(java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void startDocument() throws org.xml.sax.SAXException;
-    method public abstract void startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes) throws org.xml.sax.SAXException;
-    method public abstract void startPrefixMapping(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-  }
-
-  public abstract interface DTDHandler {
-    method public abstract void notationDecl(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-  }
-
-  public abstract deprecated interface DocumentHandler {
-    method public abstract void characters(char[], int, int) throws org.xml.sax.SAXException;
-    method public abstract void endDocument() throws org.xml.sax.SAXException;
-    method public abstract void endElement(java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void ignorableWhitespace(char[], int, int) throws org.xml.sax.SAXException;
-    method public abstract void processingInstruction(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void setDocumentLocator(org.xml.sax.Locator);
-    method public abstract void startDocument() throws org.xml.sax.SAXException;
-    method public abstract void startElement(java.lang.String, org.xml.sax.AttributeList) throws org.xml.sax.SAXException;
-  }
-
-  public abstract interface EntityResolver {
-    method public abstract org.xml.sax.InputSource resolveEntity(java.lang.String, java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
-  }
-
-  public abstract interface ErrorHandler {
-    method public abstract void error(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
-    method public abstract void fatalError(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
-    method public abstract void warning(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
-  }
-
-  public deprecated class HandlerBase implements org.xml.sax.DTDHandler org.xml.sax.DocumentHandler org.xml.sax.EntityResolver org.xml.sax.ErrorHandler {
-    ctor public HandlerBase();
+  public interface ContentHandler {
     method public void characters(char[], int, int) throws org.xml.sax.SAXException;
     method public void endDocument() throws org.xml.sax.SAXException;
-    method public void endElement(java.lang.String) throws org.xml.sax.SAXException;
+    method public void endElement(String, String, String) throws org.xml.sax.SAXException;
+    method public void endPrefixMapping(String) throws org.xml.sax.SAXException;
+    method public void ignorableWhitespace(char[], int, int) throws org.xml.sax.SAXException;
+    method public void processingInstruction(String, String) throws org.xml.sax.SAXException;
+    method public void setDocumentLocator(org.xml.sax.Locator);
+    method public void skippedEntity(String) throws org.xml.sax.SAXException;
+    method public void startDocument() throws org.xml.sax.SAXException;
+    method public void startElement(String, String, String, org.xml.sax.Attributes) throws org.xml.sax.SAXException;
+    method public void startPrefixMapping(String, String) throws org.xml.sax.SAXException;
+  }
+
+  public interface DTDHandler {
+    method public void notationDecl(String, String, String) throws org.xml.sax.SAXException;
+    method public void unparsedEntityDecl(String, String, String, String) throws org.xml.sax.SAXException;
+  }
+
+  @Deprecated public interface DocumentHandler {
+    method @Deprecated public void characters(char[], int, int) throws org.xml.sax.SAXException;
+    method @Deprecated public void endDocument() throws org.xml.sax.SAXException;
+    method @Deprecated public void endElement(String) throws org.xml.sax.SAXException;
+    method @Deprecated public void ignorableWhitespace(char[], int, int) throws org.xml.sax.SAXException;
+    method @Deprecated public void processingInstruction(String, String) throws org.xml.sax.SAXException;
+    method @Deprecated public void setDocumentLocator(org.xml.sax.Locator);
+    method @Deprecated public void startDocument() throws org.xml.sax.SAXException;
+    method @Deprecated public void startElement(String, org.xml.sax.AttributeList) throws org.xml.sax.SAXException;
+  }
+
+  public interface EntityResolver {
+    method public org.xml.sax.InputSource resolveEntity(String, String) throws java.io.IOException, org.xml.sax.SAXException;
+  }
+
+  public interface ErrorHandler {
     method public void error(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
     method public void fatalError(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
-    method public void ignorableWhitespace(char[], int, int) throws org.xml.sax.SAXException;
-    method public void notationDecl(java.lang.String, java.lang.String, java.lang.String);
-    method public void processingInstruction(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public org.xml.sax.InputSource resolveEntity(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public void setDocumentLocator(org.xml.sax.Locator);
-    method public void startDocument() throws org.xml.sax.SAXException;
-    method public void startElement(java.lang.String, org.xml.sax.AttributeList) throws org.xml.sax.SAXException;
-    method public void unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
     method public void warning(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
   }
 
+  @Deprecated public class HandlerBase implements org.xml.sax.DTDHandler org.xml.sax.DocumentHandler org.xml.sax.EntityResolver org.xml.sax.ErrorHandler {
+    ctor @Deprecated public HandlerBase();
+    method @Deprecated public void characters(char[], int, int) throws org.xml.sax.SAXException;
+    method @Deprecated public void endDocument() throws org.xml.sax.SAXException;
+    method @Deprecated public void endElement(String) throws org.xml.sax.SAXException;
+    method @Deprecated public void error(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
+    method @Deprecated public void fatalError(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
+    method @Deprecated public void ignorableWhitespace(char[], int, int) throws org.xml.sax.SAXException;
+    method @Deprecated public void notationDecl(String, String, String);
+    method @Deprecated public void processingInstruction(String, String) throws org.xml.sax.SAXException;
+    method @Deprecated public org.xml.sax.InputSource resolveEntity(String, String) throws org.xml.sax.SAXException;
+    method @Deprecated public void setDocumentLocator(org.xml.sax.Locator);
+    method @Deprecated public void startDocument() throws org.xml.sax.SAXException;
+    method @Deprecated public void startElement(String, org.xml.sax.AttributeList) throws org.xml.sax.SAXException;
+    method @Deprecated public void unparsedEntityDecl(String, String, String, String);
+    method @Deprecated public void warning(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
+  }
+
   public class InputSource {
     ctor public InputSource();
-    ctor public InputSource(java.lang.String);
+    ctor public InputSource(String);
     ctor public InputSource(java.io.InputStream);
     ctor public InputSource(java.io.Reader);
     method public java.io.InputStream getByteStream();
     method public java.io.Reader getCharacterStream();
-    method public java.lang.String getEncoding();
-    method public java.lang.String getPublicId();
-    method public java.lang.String getSystemId();
+    method public String getEncoding();
+    method public String getPublicId();
+    method public String getSystemId();
     method public void setByteStream(java.io.InputStream);
     method public void setCharacterStream(java.io.Reader);
-    method public void setEncoding(java.lang.String);
-    method public void setPublicId(java.lang.String);
-    method public void setSystemId(java.lang.String);
+    method public void setEncoding(String);
+    method public void setPublicId(String);
+    method public void setSystemId(String);
   }
 
-  public abstract interface Locator {
-    method public abstract int getColumnNumber();
-    method public abstract int getLineNumber();
-    method public abstract java.lang.String getPublicId();
-    method public abstract java.lang.String getSystemId();
+  public interface Locator {
+    method public int getColumnNumber();
+    method public int getLineNumber();
+    method public String getPublicId();
+    method public String getSystemId();
   }
 
-  public abstract deprecated interface Parser {
-    method public abstract void parse(org.xml.sax.InputSource) throws java.io.IOException, org.xml.sax.SAXException;
-    method public abstract void parse(java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
-    method public abstract void setDTDHandler(org.xml.sax.DTDHandler);
-    method public abstract void setDocumentHandler(org.xml.sax.DocumentHandler);
-    method public abstract void setEntityResolver(org.xml.sax.EntityResolver);
-    method public abstract void setErrorHandler(org.xml.sax.ErrorHandler);
-    method public abstract void setLocale(java.util.Locale) throws org.xml.sax.SAXException;
+  @Deprecated public interface Parser {
+    method @Deprecated public void parse(org.xml.sax.InputSource) throws java.io.IOException, org.xml.sax.SAXException;
+    method @Deprecated public void parse(String) throws java.io.IOException, org.xml.sax.SAXException;
+    method @Deprecated public void setDTDHandler(org.xml.sax.DTDHandler);
+    method @Deprecated public void setDocumentHandler(org.xml.sax.DocumentHandler);
+    method @Deprecated public void setEntityResolver(org.xml.sax.EntityResolver);
+    method @Deprecated public void setErrorHandler(org.xml.sax.ErrorHandler);
+    method @Deprecated public void setLocale(java.util.Locale) throws org.xml.sax.SAXException;
   }
 
   public class SAXException extends java.lang.Exception {
     ctor public SAXException();
-    ctor public SAXException(java.lang.String);
-    ctor public SAXException(java.lang.Exception);
-    ctor public SAXException(java.lang.String, java.lang.Exception);
-    method public java.lang.Exception getException();
+    ctor public SAXException(String);
+    ctor public SAXException(Exception);
+    ctor public SAXException(String, Exception);
+    method public Exception getException();
   }
 
   public class SAXNotRecognizedException extends org.xml.sax.SAXException {
     ctor public SAXNotRecognizedException();
-    ctor public SAXNotRecognizedException(java.lang.String);
+    ctor public SAXNotRecognizedException(String);
   }
 
   public class SAXNotSupportedException extends org.xml.sax.SAXException {
     ctor public SAXNotSupportedException();
-    ctor public SAXNotSupportedException(java.lang.String);
+    ctor public SAXNotSupportedException(String);
   }
 
   public class SAXParseException extends org.xml.sax.SAXException {
-    ctor public SAXParseException(java.lang.String, org.xml.sax.Locator);
-    ctor public SAXParseException(java.lang.String, org.xml.sax.Locator, java.lang.Exception);
-    ctor public SAXParseException(java.lang.String, java.lang.String, java.lang.String, int, int);
-    ctor public SAXParseException(java.lang.String, java.lang.String, java.lang.String, int, int, java.lang.Exception);
+    ctor public SAXParseException(String, org.xml.sax.Locator);
+    ctor public SAXParseException(String, org.xml.sax.Locator, Exception);
+    ctor public SAXParseException(String, String, String, int, int);
+    ctor public SAXParseException(String, String, String, int, int, Exception);
     method public int getColumnNumber();
     method public int getLineNumber();
-    method public java.lang.String getPublicId();
-    method public java.lang.String getSystemId();
+    method public String getPublicId();
+    method public String getSystemId();
   }
 
-  public abstract interface XMLFilter implements org.xml.sax.XMLReader {
-    method public abstract org.xml.sax.XMLReader getParent();
-    method public abstract void setParent(org.xml.sax.XMLReader);
+  public interface XMLFilter extends org.xml.sax.XMLReader {
+    method public org.xml.sax.XMLReader getParent();
+    method public void setParent(org.xml.sax.XMLReader);
   }
 
-  public abstract interface XMLReader {
-    method public abstract org.xml.sax.ContentHandler getContentHandler();
-    method public abstract org.xml.sax.DTDHandler getDTDHandler();
-    method public abstract org.xml.sax.EntityResolver getEntityResolver();
-    method public abstract org.xml.sax.ErrorHandler getErrorHandler();
-    method public abstract boolean getFeature(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public abstract java.lang.Object getProperty(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public abstract void parse(org.xml.sax.InputSource) throws java.io.IOException, org.xml.sax.SAXException;
-    method public abstract void parse(java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
-    method public abstract void setContentHandler(org.xml.sax.ContentHandler);
-    method public abstract void setDTDHandler(org.xml.sax.DTDHandler);
-    method public abstract void setEntityResolver(org.xml.sax.EntityResolver);
-    method public abstract void setErrorHandler(org.xml.sax.ErrorHandler);
-    method public abstract void setFeature(java.lang.String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public abstract void setProperty(java.lang.String, java.lang.Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+  public interface XMLReader {
+    method public org.xml.sax.ContentHandler getContentHandler();
+    method public org.xml.sax.DTDHandler getDTDHandler();
+    method public org.xml.sax.EntityResolver getEntityResolver();
+    method public org.xml.sax.ErrorHandler getErrorHandler();
+    method public boolean getFeature(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public Object getProperty(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void parse(org.xml.sax.InputSource) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void parse(String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void setContentHandler(org.xml.sax.ContentHandler);
+    method public void setDTDHandler(org.xml.sax.DTDHandler);
+    method public void setEntityResolver(org.xml.sax.EntityResolver);
+    method public void setErrorHandler(org.xml.sax.ErrorHandler);
+    method public void setFeature(String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setProperty(String, Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
   }
 
 }
 
 package org.xml.sax.ext {
 
-  public abstract interface Attributes2 implements org.xml.sax.Attributes {
-    method public abstract boolean isDeclared(int);
-    method public abstract boolean isDeclared(java.lang.String);
-    method public abstract boolean isDeclared(java.lang.String, java.lang.String);
-    method public abstract boolean isSpecified(int);
-    method public abstract boolean isSpecified(java.lang.String, java.lang.String);
-    method public abstract boolean isSpecified(java.lang.String);
+  public interface Attributes2 extends org.xml.sax.Attributes {
+    method public boolean isDeclared(int);
+    method public boolean isDeclared(String);
+    method public boolean isDeclared(String, String);
+    method public boolean isSpecified(int);
+    method public boolean isSpecified(String, String);
+    method public boolean isSpecified(String);
   }
 
   public class Attributes2Impl extends org.xml.sax.helpers.AttributesImpl implements org.xml.sax.ext.Attributes2 {
     ctor public Attributes2Impl();
     ctor public Attributes2Impl(org.xml.sax.Attributes);
     method public boolean isDeclared(int);
-    method public boolean isDeclared(java.lang.String, java.lang.String);
-    method public boolean isDeclared(java.lang.String);
+    method public boolean isDeclared(String, String);
+    method public boolean isDeclared(String);
     method public boolean isSpecified(int);
-    method public boolean isSpecified(java.lang.String, java.lang.String);
-    method public boolean isSpecified(java.lang.String);
+    method public boolean isSpecified(String, String);
+    method public boolean isSpecified(String);
     method public void setDeclared(int, boolean);
     method public void setSpecified(int, boolean);
   }
 
-  public abstract interface DeclHandler {
-    method public abstract void attributeDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void elementDecl(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void externalEntityDecl(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void internalEntityDecl(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
+  public interface DeclHandler {
+    method public void attributeDecl(String, String, String, String, String) throws org.xml.sax.SAXException;
+    method public void elementDecl(String, String) throws org.xml.sax.SAXException;
+    method public void externalEntityDecl(String, String, String) throws org.xml.sax.SAXException;
+    method public void internalEntityDecl(String, String) throws org.xml.sax.SAXException;
   }
 
   public class DefaultHandler2 extends org.xml.sax.helpers.DefaultHandler implements org.xml.sax.ext.DeclHandler org.xml.sax.ext.EntityResolver2 org.xml.sax.ext.LexicalHandler {
     ctor public DefaultHandler2();
-    method public void attributeDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
+    method public void attributeDecl(String, String, String, String, String) throws org.xml.sax.SAXException;
     method public void comment(char[], int, int) throws org.xml.sax.SAXException;
-    method public void elementDecl(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
+    method public void elementDecl(String, String) throws org.xml.sax.SAXException;
     method public void endCDATA() throws org.xml.sax.SAXException;
     method public void endDTD() throws org.xml.sax.SAXException;
-    method public void endEntity(java.lang.String) throws org.xml.sax.SAXException;
-    method public void externalEntityDecl(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public org.xml.sax.InputSource getExternalSubset(java.lang.String, java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
-    method public void internalEntityDecl(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public org.xml.sax.InputSource resolveEntity(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void endEntity(String) throws org.xml.sax.SAXException;
+    method public void externalEntityDecl(String, String, String) throws org.xml.sax.SAXException;
+    method public org.xml.sax.InputSource getExternalSubset(String, String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void internalEntityDecl(String, String) throws org.xml.sax.SAXException;
+    method public org.xml.sax.InputSource resolveEntity(String, String, String, String) throws java.io.IOException, org.xml.sax.SAXException;
     method public void startCDATA() throws org.xml.sax.SAXException;
-    method public void startDTD(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public void startEntity(java.lang.String) throws org.xml.sax.SAXException;
+    method public void startDTD(String, String, String) throws org.xml.sax.SAXException;
+    method public void startEntity(String) throws org.xml.sax.SAXException;
   }
 
-  public abstract interface EntityResolver2 implements org.xml.sax.EntityResolver {
-    method public abstract org.xml.sax.InputSource getExternalSubset(java.lang.String, java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
-    method public abstract org.xml.sax.InputSource resolveEntity(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
+  public interface EntityResolver2 extends org.xml.sax.EntityResolver {
+    method public org.xml.sax.InputSource getExternalSubset(String, String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public org.xml.sax.InputSource resolveEntity(String, String, String, String) throws java.io.IOException, org.xml.sax.SAXException;
   }
 
-  public abstract interface LexicalHandler {
-    method public abstract void comment(char[], int, int) throws org.xml.sax.SAXException;
-    method public abstract void endCDATA() throws org.xml.sax.SAXException;
-    method public abstract void endDTD() throws org.xml.sax.SAXException;
-    method public abstract void endEntity(java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void startCDATA() throws org.xml.sax.SAXException;
-    method public abstract void startDTD(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public abstract void startEntity(java.lang.String) throws org.xml.sax.SAXException;
+  public interface LexicalHandler {
+    method public void comment(char[], int, int) throws org.xml.sax.SAXException;
+    method public void endCDATA() throws org.xml.sax.SAXException;
+    method public void endDTD() throws org.xml.sax.SAXException;
+    method public void endEntity(String) throws org.xml.sax.SAXException;
+    method public void startCDATA() throws org.xml.sax.SAXException;
+    method public void startDTD(String, String, String) throws org.xml.sax.SAXException;
+    method public void startEntity(String) throws org.xml.sax.SAXException;
   }
 
-  public abstract interface Locator2 implements org.xml.sax.Locator {
-    method public abstract java.lang.String getEncoding();
-    method public abstract java.lang.String getXMLVersion();
+  public interface Locator2 extends org.xml.sax.Locator {
+    method public String getEncoding();
+    method public String getXMLVersion();
   }
 
   public class Locator2Impl extends org.xml.sax.helpers.LocatorImpl implements org.xml.sax.ext.Locator2 {
     ctor public Locator2Impl();
     ctor public Locator2Impl(org.xml.sax.Locator);
-    method public java.lang.String getEncoding();
-    method public java.lang.String getXMLVersion();
-    method public void setEncoding(java.lang.String);
-    method public void setXMLVersion(java.lang.String);
+    method public String getEncoding();
+    method public String getXMLVersion();
+    method public void setEncoding(String);
+    method public void setXMLVersion(String);
   }
 
 }
 
 package org.xml.sax.helpers {
 
-  public deprecated class AttributeListImpl implements org.xml.sax.AttributeList {
-    ctor public AttributeListImpl();
-    ctor public AttributeListImpl(org.xml.sax.AttributeList);
-    method public void addAttribute(java.lang.String, java.lang.String, java.lang.String);
-    method public void clear();
-    method public int getLength();
-    method public java.lang.String getName(int);
-    method public java.lang.String getType(int);
-    method public java.lang.String getType(java.lang.String);
-    method public java.lang.String getValue(int);
-    method public java.lang.String getValue(java.lang.String);
-    method public void removeAttribute(java.lang.String);
-    method public void setAttributeList(org.xml.sax.AttributeList);
+  @Deprecated public class AttributeListImpl implements org.xml.sax.AttributeList {
+    ctor @Deprecated public AttributeListImpl();
+    ctor @Deprecated public AttributeListImpl(org.xml.sax.AttributeList);
+    method @Deprecated public void addAttribute(String, String, String);
+    method @Deprecated public void clear();
+    method @Deprecated public int getLength();
+    method @Deprecated public String getName(int);
+    method @Deprecated public String getType(int);
+    method @Deprecated public String getType(String);
+    method @Deprecated public String getValue(int);
+    method @Deprecated public String getValue(String);
+    method @Deprecated public void removeAttribute(String);
+    method @Deprecated public void setAttributeList(org.xml.sax.AttributeList);
   }
 
   public class AttributesImpl implements org.xml.sax.Attributes {
     ctor public AttributesImpl();
     ctor public AttributesImpl(org.xml.sax.Attributes);
-    method public void addAttribute(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+    method public void addAttribute(String, String, String, String, String);
     method public void clear();
-    method public int getIndex(java.lang.String, java.lang.String);
-    method public int getIndex(java.lang.String);
+    method public int getIndex(String, String);
+    method public int getIndex(String);
     method public int getLength();
-    method public java.lang.String getLocalName(int);
-    method public java.lang.String getQName(int);
-    method public java.lang.String getType(int);
-    method public java.lang.String getType(java.lang.String, java.lang.String);
-    method public java.lang.String getType(java.lang.String);
-    method public java.lang.String getURI(int);
-    method public java.lang.String getValue(int);
-    method public java.lang.String getValue(java.lang.String, java.lang.String);
-    method public java.lang.String getValue(java.lang.String);
+    method public String getLocalName(int);
+    method public String getQName(int);
+    method public String getType(int);
+    method public String getType(String, String);
+    method public String getType(String);
+    method public String getURI(int);
+    method public String getValue(int);
+    method public String getValue(String, String);
+    method public String getValue(String);
     method public void removeAttribute(int);
-    method public void setAttribute(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+    method public void setAttribute(int, String, String, String, String, String);
     method public void setAttributes(org.xml.sax.Attributes);
-    method public void setLocalName(int, java.lang.String);
-    method public void setQName(int, java.lang.String);
-    method public void setType(int, java.lang.String);
-    method public void setURI(int, java.lang.String);
-    method public void setValue(int, java.lang.String);
+    method public void setLocalName(int, String);
+    method public void setQName(int, String);
+    method public void setType(int, String);
+    method public void setURI(int, String);
+    method public void setValue(int, String);
   }
 
   public class DefaultHandler implements org.xml.sax.ContentHandler org.xml.sax.DTDHandler org.xml.sax.EntityResolver org.xml.sax.ErrorHandler {
     ctor public DefaultHandler();
     method public void characters(char[], int, int) throws org.xml.sax.SAXException;
     method public void endDocument() throws org.xml.sax.SAXException;
-    method public void endElement(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public void endPrefixMapping(java.lang.String) throws org.xml.sax.SAXException;
+    method public void endElement(String, String, String) throws org.xml.sax.SAXException;
+    method public void endPrefixMapping(String) throws org.xml.sax.SAXException;
     method public void error(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
     method public void fatalError(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
     method public void ignorableWhitespace(char[], int, int) throws org.xml.sax.SAXException;
-    method public void notationDecl(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public void processingInstruction(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public org.xml.sax.InputSource resolveEntity(java.lang.String, java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void notationDecl(String, String, String) throws org.xml.sax.SAXException;
+    method public void processingInstruction(String, String) throws org.xml.sax.SAXException;
+    method public org.xml.sax.InputSource resolveEntity(String, String) throws java.io.IOException, org.xml.sax.SAXException;
     method public void setDocumentLocator(org.xml.sax.Locator);
-    method public void skippedEntity(java.lang.String) throws org.xml.sax.SAXException;
+    method public void skippedEntity(String) throws org.xml.sax.SAXException;
     method public void startDocument() throws org.xml.sax.SAXException;
-    method public void startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes) throws org.xml.sax.SAXException;
-    method public void startPrefixMapping(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public void unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
+    method public void startElement(String, String, String, org.xml.sax.Attributes) throws org.xml.sax.SAXException;
+    method public void startPrefixMapping(String, String) throws org.xml.sax.SAXException;
+    method public void unparsedEntityDecl(String, String, String, String) throws org.xml.sax.SAXException;
     method public void warning(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
   }
 
@@ -77729,30 +77480,30 @@
     ctor public LocatorImpl(org.xml.sax.Locator);
     method public int getColumnNumber();
     method public int getLineNumber();
-    method public java.lang.String getPublicId();
-    method public java.lang.String getSystemId();
+    method public String getPublicId();
+    method public String getSystemId();
     method public void setColumnNumber(int);
     method public void setLineNumber(int);
-    method public void setPublicId(java.lang.String);
-    method public void setSystemId(java.lang.String);
+    method public void setPublicId(String);
+    method public void setSystemId(String);
   }
 
   public class NamespaceSupport {
     ctor public NamespaceSupport();
-    method public boolean declarePrefix(java.lang.String, java.lang.String);
+    method public boolean declarePrefix(String, String);
     method public java.util.Enumeration getDeclaredPrefixes();
-    method public java.lang.String getPrefix(java.lang.String);
+    method public String getPrefix(String);
     method public java.util.Enumeration getPrefixes();
-    method public java.util.Enumeration getPrefixes(java.lang.String);
-    method public java.lang.String getURI(java.lang.String);
+    method public java.util.Enumeration getPrefixes(String);
+    method public String getURI(String);
     method public boolean isNamespaceDeclUris();
     method public void popContext();
-    method public java.lang.String[] processName(java.lang.String, java.lang.String[], boolean);
+    method public String[] processName(String, String[], boolean);
     method public void pushContext();
     method public void reset();
     method public void setNamespaceDeclUris(boolean);
-    field public static final java.lang.String NSDECL = "http://www.w3.org/xmlns/2000/";
-    field public static final java.lang.String XMLNS = "http://www.w3.org/XML/1998/namespace";
+    field public static final String NSDECL = "http://www.w3.org/xmlns/2000/";
+    field public static final String XMLNS = "http://www.w3.org/XML/1998/namespace";
   }
 
   public class ParserAdapter implements org.xml.sax.DocumentHandler org.xml.sax.XMLReader {
@@ -77760,31 +77511,31 @@
     ctor public ParserAdapter(org.xml.sax.Parser);
     method public void characters(char[], int, int) throws org.xml.sax.SAXException;
     method public void endDocument() throws org.xml.sax.SAXException;
-    method public void endElement(java.lang.String) throws org.xml.sax.SAXException;
+    method public void endElement(String) throws org.xml.sax.SAXException;
     method public org.xml.sax.ContentHandler getContentHandler();
     method public org.xml.sax.DTDHandler getDTDHandler();
     method public org.xml.sax.EntityResolver getEntityResolver();
     method public org.xml.sax.ErrorHandler getErrorHandler();
-    method public boolean getFeature(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public java.lang.Object getProperty(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public boolean getFeature(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public Object getProperty(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public void ignorableWhitespace(char[], int, int) throws org.xml.sax.SAXException;
-    method public void parse(java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void parse(String) throws java.io.IOException, org.xml.sax.SAXException;
     method public void parse(org.xml.sax.InputSource) throws java.io.IOException, org.xml.sax.SAXException;
-    method public void processingInstruction(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
+    method public void processingInstruction(String, String) throws org.xml.sax.SAXException;
     method public void setContentHandler(org.xml.sax.ContentHandler);
     method public void setDTDHandler(org.xml.sax.DTDHandler);
     method public void setDocumentLocator(org.xml.sax.Locator);
     method public void setEntityResolver(org.xml.sax.EntityResolver);
     method public void setErrorHandler(org.xml.sax.ErrorHandler);
-    method public void setFeature(java.lang.String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public void setProperty(java.lang.String, java.lang.Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setFeature(String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setProperty(String, Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public void startDocument() throws org.xml.sax.SAXException;
-    method public void startElement(java.lang.String, org.xml.sax.AttributeList) throws org.xml.sax.SAXException;
+    method public void startElement(String, org.xml.sax.AttributeList) throws org.xml.sax.SAXException;
   }
 
-  public deprecated class ParserFactory {
-    method public static org.xml.sax.Parser makeParser() throws java.lang.ClassCastException, java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NullPointerException;
-    method public static org.xml.sax.Parser makeParser(java.lang.String) throws java.lang.ClassCastException, java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+  @Deprecated public class ParserFactory {
+    method @Deprecated public static org.xml.sax.Parser makeParser() throws java.lang.ClassCastException, java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NullPointerException;
+    method @Deprecated public static org.xml.sax.Parser makeParser(String) throws java.lang.ClassCastException, java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
   }
 
   public class XMLFilterImpl implements org.xml.sax.ContentHandler org.xml.sax.DTDHandler org.xml.sax.EntityResolver org.xml.sax.ErrorHandler org.xml.sax.XMLFilter {
@@ -77792,36 +77543,36 @@
     ctor public XMLFilterImpl(org.xml.sax.XMLReader);
     method public void characters(char[], int, int) throws org.xml.sax.SAXException;
     method public void endDocument() throws org.xml.sax.SAXException;
-    method public void endElement(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public void endPrefixMapping(java.lang.String) throws org.xml.sax.SAXException;
+    method public void endElement(String, String, String) throws org.xml.sax.SAXException;
+    method public void endPrefixMapping(String) throws org.xml.sax.SAXException;
     method public void error(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
     method public void fatalError(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
     method public org.xml.sax.ContentHandler getContentHandler();
     method public org.xml.sax.DTDHandler getDTDHandler();
     method public org.xml.sax.EntityResolver getEntityResolver();
     method public org.xml.sax.ErrorHandler getErrorHandler();
-    method public boolean getFeature(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public boolean getFeature(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public org.xml.sax.XMLReader getParent();
-    method public java.lang.Object getProperty(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public Object getProperty(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public void ignorableWhitespace(char[], int, int) throws org.xml.sax.SAXException;
-    method public void notationDecl(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
+    method public void notationDecl(String, String, String) throws org.xml.sax.SAXException;
     method public void parse(org.xml.sax.InputSource) throws java.io.IOException, org.xml.sax.SAXException;
-    method public void parse(java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
-    method public void processingInstruction(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public org.xml.sax.InputSource resolveEntity(java.lang.String, java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void parse(String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void processingInstruction(String, String) throws org.xml.sax.SAXException;
+    method public org.xml.sax.InputSource resolveEntity(String, String) throws java.io.IOException, org.xml.sax.SAXException;
     method public void setContentHandler(org.xml.sax.ContentHandler);
     method public void setDTDHandler(org.xml.sax.DTDHandler);
     method public void setDocumentLocator(org.xml.sax.Locator);
     method public void setEntityResolver(org.xml.sax.EntityResolver);
     method public void setErrorHandler(org.xml.sax.ErrorHandler);
-    method public void setFeature(java.lang.String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setFeature(String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
     method public void setParent(org.xml.sax.XMLReader);
-    method public void setProperty(java.lang.String, java.lang.Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public void skippedEntity(java.lang.String) throws org.xml.sax.SAXException;
+    method public void setProperty(String, Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void skippedEntity(String) throws org.xml.sax.SAXException;
     method public void startDocument() throws org.xml.sax.SAXException;
-    method public void startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes) throws org.xml.sax.SAXException;
-    method public void startPrefixMapping(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public void unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
+    method public void startElement(String, String, String, org.xml.sax.Attributes) throws org.xml.sax.SAXException;
+    method public void startPrefixMapping(String, String) throws org.xml.sax.SAXException;
+    method public void unparsedEntityDecl(String, String, String, String) throws org.xml.sax.SAXException;
     method public void warning(org.xml.sax.SAXParseException) throws org.xml.sax.SAXException;
   }
 
@@ -77830,146 +77581,146 @@
     ctor public XMLReaderAdapter(org.xml.sax.XMLReader);
     method public void characters(char[], int, int) throws org.xml.sax.SAXException;
     method public void endDocument() throws org.xml.sax.SAXException;
-    method public void endElement(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    method public void endPrefixMapping(java.lang.String);
+    method public void endElement(String, String, String) throws org.xml.sax.SAXException;
+    method public void endPrefixMapping(String);
     method public void ignorableWhitespace(char[], int, int) throws org.xml.sax.SAXException;
-    method public void parse(java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void parse(String) throws java.io.IOException, org.xml.sax.SAXException;
     method public void parse(org.xml.sax.InputSource) throws java.io.IOException, org.xml.sax.SAXException;
-    method public void processingInstruction(java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
+    method public void processingInstruction(String, String) throws org.xml.sax.SAXException;
     method public void setDTDHandler(org.xml.sax.DTDHandler);
     method public void setDocumentHandler(org.xml.sax.DocumentHandler);
     method public void setDocumentLocator(org.xml.sax.Locator);
     method public void setEntityResolver(org.xml.sax.EntityResolver);
     method public void setErrorHandler(org.xml.sax.ErrorHandler);
     method public void setLocale(java.util.Locale) throws org.xml.sax.SAXException;
-    method public void skippedEntity(java.lang.String) throws org.xml.sax.SAXException;
+    method public void skippedEntity(String) throws org.xml.sax.SAXException;
     method public void startDocument() throws org.xml.sax.SAXException;
-    method public void startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes) throws org.xml.sax.SAXException;
-    method public void startPrefixMapping(java.lang.String, java.lang.String);
+    method public void startElement(String, String, String, org.xml.sax.Attributes) throws org.xml.sax.SAXException;
+    method public void startPrefixMapping(String, String);
   }
 
   public final class XMLReaderFactory {
     method public static org.xml.sax.XMLReader createXMLReader() throws org.xml.sax.SAXException;
-    method public static org.xml.sax.XMLReader createXMLReader(java.lang.String) throws org.xml.sax.SAXException;
+    method public static org.xml.sax.XMLReader createXMLReader(String) throws org.xml.sax.SAXException;
   }
 
 }
 
 package org.xmlpull.v1 {
 
-  public abstract interface XmlPullParser {
-    method public abstract void defineEntityReplacementText(java.lang.String, java.lang.String) throws org.xmlpull.v1.XmlPullParserException;
-    method public abstract int getAttributeCount();
-    method public abstract java.lang.String getAttributeName(int);
-    method public abstract java.lang.String getAttributeNamespace(int);
-    method public abstract java.lang.String getAttributePrefix(int);
-    method public abstract java.lang.String getAttributeType(int);
-    method public abstract java.lang.String getAttributeValue(int);
-    method public abstract java.lang.String getAttributeValue(java.lang.String, java.lang.String);
-    method public abstract int getColumnNumber();
-    method public abstract int getDepth();
-    method public abstract int getEventType() throws org.xmlpull.v1.XmlPullParserException;
-    method public abstract boolean getFeature(java.lang.String);
-    method public abstract java.lang.String getInputEncoding();
-    method public abstract int getLineNumber();
-    method public abstract java.lang.String getName();
-    method public abstract java.lang.String getNamespace(java.lang.String);
-    method public abstract java.lang.String getNamespace();
-    method public abstract int getNamespaceCount(int) throws org.xmlpull.v1.XmlPullParserException;
-    method public abstract java.lang.String getNamespacePrefix(int) throws org.xmlpull.v1.XmlPullParserException;
-    method public abstract java.lang.String getNamespaceUri(int) throws org.xmlpull.v1.XmlPullParserException;
-    method public abstract java.lang.String getPositionDescription();
-    method public abstract java.lang.String getPrefix();
-    method public abstract java.lang.Object getProperty(java.lang.String);
-    method public abstract java.lang.String getText();
-    method public abstract char[] getTextCharacters(int[]);
-    method public abstract boolean isAttributeDefault(int);
-    method public abstract boolean isEmptyElementTag() throws org.xmlpull.v1.XmlPullParserException;
-    method public abstract boolean isWhitespace() throws org.xmlpull.v1.XmlPullParserException;
-    method public abstract int next() throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public abstract int nextTag() throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public abstract java.lang.String nextText() throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public abstract int nextToken() throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public abstract void require(int, java.lang.String, java.lang.String) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public abstract void setFeature(java.lang.String, boolean) throws org.xmlpull.v1.XmlPullParserException;
-    method public abstract void setInput(java.io.Reader) throws org.xmlpull.v1.XmlPullParserException;
-    method public abstract void setInput(java.io.InputStream, java.lang.String) throws org.xmlpull.v1.XmlPullParserException;
-    method public abstract void setProperty(java.lang.String, java.lang.Object) throws org.xmlpull.v1.XmlPullParserException;
+  public interface XmlPullParser {
+    method public void defineEntityReplacementText(String, String) throws org.xmlpull.v1.XmlPullParserException;
+    method public int getAttributeCount();
+    method public String getAttributeName(int);
+    method public String getAttributeNamespace(int);
+    method public String getAttributePrefix(int);
+    method public String getAttributeType(int);
+    method public String getAttributeValue(int);
+    method public String getAttributeValue(String, String);
+    method public int getColumnNumber();
+    method public int getDepth();
+    method public int getEventType() throws org.xmlpull.v1.XmlPullParserException;
+    method public boolean getFeature(String);
+    method public String getInputEncoding();
+    method public int getLineNumber();
+    method public String getName();
+    method public String getNamespace(String);
+    method public String getNamespace();
+    method public int getNamespaceCount(int) throws org.xmlpull.v1.XmlPullParserException;
+    method public String getNamespacePrefix(int) throws org.xmlpull.v1.XmlPullParserException;
+    method public String getNamespaceUri(int) throws org.xmlpull.v1.XmlPullParserException;
+    method public String getPositionDescription();
+    method public String getPrefix();
+    method public Object getProperty(String);
+    method public String getText();
+    method public char[] getTextCharacters(int[]);
+    method public boolean isAttributeDefault(int);
+    method public boolean isEmptyElementTag() throws org.xmlpull.v1.XmlPullParserException;
+    method public boolean isWhitespace() throws org.xmlpull.v1.XmlPullParserException;
+    method public int next() throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public int nextTag() throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public String nextText() throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public int nextToken() throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public void require(int, String, String) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method public void setFeature(String, boolean) throws org.xmlpull.v1.XmlPullParserException;
+    method public void setInput(java.io.Reader) throws org.xmlpull.v1.XmlPullParserException;
+    method public void setInput(java.io.InputStream, String) throws org.xmlpull.v1.XmlPullParserException;
+    method public void setProperty(String, Object) throws org.xmlpull.v1.XmlPullParserException;
     field public static final int CDSECT = 5; // 0x5
     field public static final int COMMENT = 9; // 0x9
     field public static final int DOCDECL = 10; // 0xa
     field public static final int END_DOCUMENT = 1; // 0x1
     field public static final int END_TAG = 3; // 0x3
     field public static final int ENTITY_REF = 6; // 0x6
-    field public static final java.lang.String FEATURE_PROCESS_DOCDECL = "http://xmlpull.org/v1/doc/features.html#process-docdecl";
-    field public static final java.lang.String FEATURE_PROCESS_NAMESPACES = "http://xmlpull.org/v1/doc/features.html#process-namespaces";
-    field public static final java.lang.String FEATURE_REPORT_NAMESPACE_ATTRIBUTES = "http://xmlpull.org/v1/doc/features.html#report-namespace-prefixes";
-    field public static final java.lang.String FEATURE_VALIDATION = "http://xmlpull.org/v1/doc/features.html#validation";
+    field public static final String FEATURE_PROCESS_DOCDECL = "http://xmlpull.org/v1/doc/features.html#process-docdecl";
+    field public static final String FEATURE_PROCESS_NAMESPACES = "http://xmlpull.org/v1/doc/features.html#process-namespaces";
+    field public static final String FEATURE_REPORT_NAMESPACE_ATTRIBUTES = "http://xmlpull.org/v1/doc/features.html#report-namespace-prefixes";
+    field public static final String FEATURE_VALIDATION = "http://xmlpull.org/v1/doc/features.html#validation";
     field public static final int IGNORABLE_WHITESPACE = 7; // 0x7
-    field public static final java.lang.String NO_NAMESPACE = "";
+    field public static final String NO_NAMESPACE = "";
     field public static final int PROCESSING_INSTRUCTION = 8; // 0x8
     field public static final int START_DOCUMENT = 0; // 0x0
     field public static final int START_TAG = 2; // 0x2
     field public static final int TEXT = 4; // 0x4
-    field public static final java.lang.String[] TYPES;
+    field public static final String[] TYPES;
   }
 
   public class XmlPullParserException extends java.lang.Exception {
-    ctor public XmlPullParserException(java.lang.String);
-    ctor public XmlPullParserException(java.lang.String, org.xmlpull.v1.XmlPullParser, java.lang.Throwable);
+    ctor public XmlPullParserException(String);
+    ctor public XmlPullParserException(String, org.xmlpull.v1.XmlPullParser, Throwable);
     method public int getColumnNumber();
-    method public java.lang.Throwable getDetail();
+    method public Throwable getDetail();
     method public int getLineNumber();
     field protected int column;
-    field protected java.lang.Throwable detail;
+    field protected Throwable detail;
     field protected int row;
   }
 
   public class XmlPullParserFactory {
     ctor protected XmlPullParserFactory();
-    method public boolean getFeature(java.lang.String);
+    method public boolean getFeature(String);
     method public boolean isNamespaceAware();
     method public boolean isValidating();
     method public static org.xmlpull.v1.XmlPullParserFactory newInstance() throws org.xmlpull.v1.XmlPullParserException;
-    method public static org.xmlpull.v1.XmlPullParserFactory newInstance(java.lang.String, java.lang.Class) throws org.xmlpull.v1.XmlPullParserException;
+    method public static org.xmlpull.v1.XmlPullParserFactory newInstance(String, Class) throws org.xmlpull.v1.XmlPullParserException;
     method public org.xmlpull.v1.XmlPullParser newPullParser() throws org.xmlpull.v1.XmlPullParserException;
     method public org.xmlpull.v1.XmlSerializer newSerializer() throws org.xmlpull.v1.XmlPullParserException;
-    method public void setFeature(java.lang.String, boolean) throws org.xmlpull.v1.XmlPullParserException;
+    method public void setFeature(String, boolean) throws org.xmlpull.v1.XmlPullParserException;
     method public void setNamespaceAware(boolean);
     method public void setValidating(boolean);
-    field public static final java.lang.String PROPERTY_NAME = "org.xmlpull.v1.XmlPullParserFactory";
-    field protected java.lang.String classNamesLocation;
-    field protected java.util.HashMap<java.lang.String, java.lang.Boolean> features;
+    field public static final String PROPERTY_NAME = "org.xmlpull.v1.XmlPullParserFactory";
+    field protected String classNamesLocation;
+    field protected java.util.HashMap<java.lang.String,java.lang.Boolean> features;
     field protected java.util.ArrayList parserClasses;
     field protected java.util.ArrayList serializerClasses;
   }
 
-  public abstract interface XmlSerializer {
-    method public abstract org.xmlpull.v1.XmlSerializer attribute(java.lang.String, java.lang.String, java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void cdsect(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void comment(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void docdecl(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void endDocument() throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract org.xmlpull.v1.XmlSerializer endTag(java.lang.String, java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void entityRef(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void flush() throws java.io.IOException;
-    method public abstract int getDepth();
-    method public abstract boolean getFeature(java.lang.String);
-    method public abstract java.lang.String getName();
-    method public abstract java.lang.String getNamespace();
-    method public abstract java.lang.String getPrefix(java.lang.String, boolean) throws java.lang.IllegalArgumentException;
-    method public abstract java.lang.Object getProperty(java.lang.String);
-    method public abstract void ignorableWhitespace(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void processingInstruction(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void setFeature(java.lang.String, boolean) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void setOutput(java.io.OutputStream, java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void setOutput(java.io.Writer) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void setPrefix(java.lang.String, java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void setProperty(java.lang.String, java.lang.Object) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract void startDocument(java.lang.String, java.lang.Boolean) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract org.xmlpull.v1.XmlSerializer startTag(java.lang.String, java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract org.xmlpull.v1.XmlSerializer text(java.lang.String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public abstract org.xmlpull.v1.XmlSerializer text(char[], int, int) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+  public interface XmlSerializer {
+    method public org.xmlpull.v1.XmlSerializer attribute(String, String, String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void cdsect(String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void comment(String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void docdecl(String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void endDocument() throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public org.xmlpull.v1.XmlSerializer endTag(String, String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void entityRef(String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void flush() throws java.io.IOException;
+    method public int getDepth();
+    method public boolean getFeature(String);
+    method public String getName();
+    method public String getNamespace();
+    method public String getPrefix(String, boolean) throws java.lang.IllegalArgumentException;
+    method public Object getProperty(String);
+    method public void ignorableWhitespace(String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void processingInstruction(String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void setFeature(String, boolean) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void setOutput(java.io.OutputStream, String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void setOutput(java.io.Writer) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void setPrefix(String, String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void setProperty(String, Object) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public void startDocument(String, Boolean) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public org.xmlpull.v1.XmlSerializer startTag(String, String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public org.xmlpull.v1.XmlSerializer text(String) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
+    method public org.xmlpull.v1.XmlSerializer text(char[], int, int) throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.IllegalStateException;
   }
 
 }
@@ -77984,44 +77735,44 @@
     method public org.xml.sax.DTDHandler getDTDHandler();
     method public org.xml.sax.EntityResolver getEntityResolver();
     method public org.xml.sax.ErrorHandler getErrorHandler();
-    method public boolean getFeature(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public int getIndex(java.lang.String, java.lang.String);
-    method public int getIndex(java.lang.String);
+    method public boolean getFeature(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public int getIndex(String, String);
+    method public int getIndex(String);
     method public int getLength();
     method public int getLineNumber();
-    method public java.lang.String getLocalName(int);
-    method public java.lang.Object getProperty(java.lang.String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public java.lang.String getPublicId();
-    method public java.lang.String getQName(int);
-    method public java.lang.String getSystemId();
-    method public java.lang.String getType(int);
-    method public java.lang.String getType(java.lang.String, java.lang.String);
-    method public java.lang.String getType(java.lang.String);
-    method public java.lang.String getURI(int);
-    method public java.lang.String getValue(int);
-    method public java.lang.String getValue(java.lang.String, java.lang.String);
-    method public java.lang.String getValue(java.lang.String);
+    method public String getLocalName(int);
+    method public Object getProperty(String) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public String getPublicId();
+    method public String getQName(int);
+    method public String getSystemId();
+    method public String getType(int);
+    method public String getType(String, String);
+    method public String getType(String);
+    method public String getURI(int);
+    method public String getValue(int);
+    method public String getValue(String, String);
+    method public String getValue(String);
     method public void parse(org.xml.sax.InputSource) throws java.io.IOException, org.xml.sax.SAXException;
-    method public void parse(java.lang.String) throws java.io.IOException, org.xml.sax.SAXException;
+    method public void parse(String) throws java.io.IOException, org.xml.sax.SAXException;
     method public void parseSubTree(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xml.sax.SAXException;
     method public void setContentHandler(org.xml.sax.ContentHandler);
     method public void setDTDHandler(org.xml.sax.DTDHandler);
     method public void setEntityResolver(org.xml.sax.EntityResolver);
     method public void setErrorHandler(org.xml.sax.ErrorHandler);
-    method public void setFeature(java.lang.String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method public void setProperty(java.lang.String, java.lang.Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
-    method protected void startElement(java.lang.String, java.lang.String, java.lang.String) throws org.xml.sax.SAXException;
-    field protected static final java.lang.String APACHE_DYNAMIC_VALIDATION_FEATURE = "http://apache.org/xml/features/validation/dynamic";
-    field protected static final java.lang.String APACHE_SCHEMA_VALIDATION_FEATURE = "http://apache.org/xml/features/validation/schema";
-    field protected static final java.lang.String DECLARATION_HANDLER_PROPERTY = "http://xml.org/sax/properties/declaration-handler";
-    field protected static final java.lang.String LEXICAL_HANDLER_PROPERTY = "http://xml.org/sax/properties/lexical-handler";
-    field protected static final java.lang.String NAMESPACES_FEATURE = "http://xml.org/sax/features/namespaces";
-    field protected static final java.lang.String NAMESPACE_PREFIXES_FEATURE = "http://xml.org/sax/features/namespace-prefixes";
-    field protected static final java.lang.String VALIDATION_FEATURE = "http://xml.org/sax/features/validation";
+    method public void setFeature(String, boolean) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method public void setProperty(String, Object) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException;
+    method protected void startElement(String, String, String) throws org.xml.sax.SAXException;
+    field protected static final String APACHE_DYNAMIC_VALIDATION_FEATURE = "http://apache.org/xml/features/validation/dynamic";
+    field protected static final String APACHE_SCHEMA_VALIDATION_FEATURE = "http://apache.org/xml/features/validation/schema";
+    field protected static final String DECLARATION_HANDLER_PROPERTY = "http://xml.org/sax/properties/declaration-handler";
+    field protected static final String LEXICAL_HANDLER_PROPERTY = "http://xml.org/sax/properties/lexical-handler";
+    field protected static final String NAMESPACES_FEATURE = "http://xml.org/sax/features/namespaces";
+    field protected static final String NAMESPACE_PREFIXES_FEATURE = "http://xml.org/sax/features/namespace-prefixes";
+    field protected static final String VALIDATION_FEATURE = "http://xml.org/sax/features/validation";
     field protected org.xml.sax.ContentHandler contentHandler;
     field protected org.xml.sax.ErrorHandler errorHandler;
     field protected org.xmlpull.v1.XmlPullParser pp;
-    field protected java.lang.String systemId;
+    field protected String systemId;
   }
 
 }
diff --git a/api/removed.txt b/api/removed.txt
index f7106d2..2c567e0 100644
--- a/api/removed.txt
+++ b/api/removed.txt
@@ -1,31 +1,32 @@
+// Signature format: 2.0
 package android.app {
 
   public class Activity extends android.view.ContextThemeWrapper implements android.content.ComponentCallbacks2 android.view.KeyEvent.Callback android.view.LayoutInflater.Factory2 android.view.View.OnCreateContextMenuListener android.view.Window.Callback {
-    method public deprecated boolean enterPictureInPictureMode(android.app.PictureInPictureArgs);
-    method public deprecated void setPictureInPictureArgs(android.app.PictureInPictureArgs);
+    method @Deprecated public boolean enterPictureInPictureMode(@NonNull android.app.PictureInPictureArgs);
+    method @Deprecated public void setPictureInPictureArgs(@NonNull android.app.PictureInPictureArgs);
   }
 
   public class ActivityManager {
-    method public static deprecated int getMaxNumPictureInPictureActions();
+    method @Deprecated public static int getMaxNumPictureInPictureActions();
   }
 
   public class KeyguardManager {
-    method public deprecated void dismissKeyguard(android.app.Activity, android.app.KeyguardManager.KeyguardDismissCallback, android.os.Handler);
+    method @Deprecated public void dismissKeyguard(@NonNull android.app.Activity, @Nullable android.app.KeyguardManager.KeyguardDismissCallback, @Nullable android.os.Handler);
   }
 
   public class Notification implements android.os.Parcelable {
-    method public deprecated java.lang.String getChannel();
-    method public static java.lang.Class<? extends android.app.Notification.Style> getNotificationStyleClass(java.lang.String);
-    method public deprecated long getTimeout();
-    method public deprecated void setLatestEventInfo(android.content.Context, java.lang.CharSequence, java.lang.CharSequence, android.app.PendingIntent);
+    method @Deprecated public String getChannel();
+    method public static Class<? extends android.app.Notification.Style> getNotificationStyleClass(String);
+    method @Deprecated public long getTimeout();
+    method @Deprecated public void setLatestEventInfo(android.content.Context, CharSequence, CharSequence, android.app.PendingIntent);
   }
 
   public static class Notification.Builder {
-    method public deprecated android.app.Notification.Builder setChannel(java.lang.String);
-    method public deprecated android.app.Notification.Builder setTimeout(long);
+    method @Deprecated public android.app.Notification.Builder setChannel(String);
+    method @Deprecated public android.app.Notification.Builder setTimeout(long);
   }
 
-  public final deprecated class PictureInPictureArgs implements android.os.Parcelable {
+  @Deprecated public final class PictureInPictureArgs implements android.os.Parcelable {
     method public static android.app.PictureInPictureArgs convert(android.app.PictureInPictureParams);
     method public static android.app.PictureInPictureParams convert(android.app.PictureInPictureArgs);
     method public int describeContents();
@@ -48,8 +49,8 @@
 package android.app.admin {
 
   public class DevicePolicyManager {
-    method public deprecated android.os.UserHandle createAndInitializeUser(android.content.ComponentName, java.lang.String, java.lang.String, android.content.ComponentName, android.os.Bundle);
-    method public deprecated android.os.UserHandle createUser(android.content.ComponentName, java.lang.String);
+    method @Deprecated @Nullable public android.os.UserHandle createAndInitializeUser(@NonNull android.content.ComponentName, String, String, @NonNull android.content.ComponentName, android.os.Bundle);
+    method @Deprecated @Nullable public android.os.UserHandle createUser(@NonNull android.content.ComponentName, String);
   }
 
 }
@@ -57,17 +58,17 @@
 package android.app.job {
 
   public class JobInfo implements android.os.Parcelable {
-    method public deprecated long getEstimatedNetworkBytes();
+    method @Deprecated public long getEstimatedNetworkBytes();
   }
 
   public static final class JobInfo.Builder {
-    method public deprecated android.app.job.JobInfo.Builder setEstimatedNetworkBytes(long);
-    method public deprecated android.app.job.JobInfo.Builder setIsPrefetch(boolean);
+    method @Deprecated public android.app.job.JobInfo.Builder setEstimatedNetworkBytes(long);
+    method @Deprecated public android.app.job.JobInfo.Builder setIsPrefetch(boolean);
   }
 
   public final class JobWorkItem implements android.os.Parcelable {
-    ctor public deprecated JobWorkItem(android.content.Intent, long);
-    method public deprecated long getEstimatedNetworkBytes();
+    ctor @Deprecated public JobWorkItem(android.content.Intent, long);
+    method @Deprecated public long getEstimatedNetworkBytes();
   }
 
 }
@@ -75,29 +76,29 @@
 package android.app.slice {
 
   public final class Slice implements android.os.Parcelable {
-    field public static final deprecated java.lang.String EXTRA_SLIDER_VALUE = "android.app.slice.extra.SLIDER_VALUE";
-    field public static final deprecated java.lang.String SUBTYPE_SLIDER = "slider";
+    field @Deprecated public static final String EXTRA_SLIDER_VALUE = "android.app.slice.extra.SLIDER_VALUE";
+    field @Deprecated public static final String SUBTYPE_SLIDER = "slider";
   }
 
   public static class Slice.Builder {
-    ctor public deprecated Slice.Builder(android.net.Uri);
-    method public deprecated android.app.slice.Slice.Builder addTimestamp(long, java.lang.String, java.util.List<java.lang.String>);
-    method public deprecated android.app.slice.Slice.Builder setSpec(android.app.slice.SliceSpec);
+    ctor @Deprecated public Slice.Builder(@NonNull android.net.Uri);
+    method @Deprecated public android.app.slice.Slice.Builder addTimestamp(long, @Nullable String, java.util.List<java.lang.String>);
+    method @Deprecated public android.app.slice.Slice.Builder setSpec(android.app.slice.SliceSpec);
   }
 
   public final class SliceItem implements android.os.Parcelable {
-    method public deprecated long getTimestamp();
-    field public static final deprecated java.lang.String FORMAT_TIMESTAMP = "long";
+    method @Deprecated public long getTimestamp();
+    field @Deprecated public static final String FORMAT_TIMESTAMP = "long";
   }
 
   public class SliceManager {
-    method public deprecated android.app.slice.Slice bindSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>);
-    method public deprecated android.app.slice.Slice bindSlice(android.content.Intent, java.util.List<android.app.slice.SliceSpec>);
-    method public deprecated void pinSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>);
+    method @Deprecated @Nullable public android.app.slice.Slice bindSlice(@NonNull android.net.Uri, @NonNull java.util.List<android.app.slice.SliceSpec>);
+    method @Deprecated @Nullable public android.app.slice.Slice bindSlice(@NonNull android.content.Intent, @NonNull java.util.List<android.app.slice.SliceSpec>);
+    method @Deprecated public void pinSlice(@NonNull android.net.Uri, @NonNull java.util.List<android.app.slice.SliceSpec>);
   }
 
   public abstract class SliceProvider extends android.content.ContentProvider {
-    method public deprecated android.app.slice.Slice onBindSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>);
+    method @Deprecated public android.app.slice.Slice onBindSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>);
   }
 
 }
@@ -105,17 +106,17 @@
 package android.app.usage {
 
   public final class StorageStats implements android.os.Parcelable {
-    method public deprecated long getCodeBytes();
+    method @Deprecated public long getCodeBytes();
   }
 
   public class StorageStatsManager {
-    method public deprecated long getFreeBytes(java.lang.String) throws java.io.IOException;
-    method public deprecated long getTotalBytes(java.lang.String) throws java.io.IOException;
-    method public deprecated boolean isQuotaSupported(java.lang.String);
-    method public deprecated android.app.usage.ExternalStorageStats queryExternalStatsForUser(java.lang.String, android.os.UserHandle) throws java.io.IOException;
-    method public deprecated android.app.usage.StorageStats queryStatsForPackage(java.lang.String, java.lang.String, android.os.UserHandle) throws java.io.IOException, android.content.pm.PackageManager.NameNotFoundException;
-    method public deprecated android.app.usage.StorageStats queryStatsForUid(java.lang.String, int) throws java.io.IOException;
-    method public deprecated android.app.usage.StorageStats queryStatsForUser(java.lang.String, android.os.UserHandle) throws java.io.IOException;
+    method @Deprecated public long getFreeBytes(String) throws java.io.IOException;
+    method @Deprecated public long getTotalBytes(String) throws java.io.IOException;
+    method @Deprecated public boolean isQuotaSupported(String);
+    method @Deprecated public android.app.usage.ExternalStorageStats queryExternalStatsForUser(String, android.os.UserHandle) throws java.io.IOException;
+    method @Deprecated public android.app.usage.StorageStats queryStatsForPackage(String, String, android.os.UserHandle) throws java.io.IOException, android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.app.usage.StorageStats queryStatsForUid(String, int) throws java.io.IOException;
+    method @Deprecated public android.app.usage.StorageStats queryStatsForUser(String, android.os.UserHandle) throws java.io.IOException;
   }
 
 }
@@ -123,21 +124,21 @@
 package android.content {
 
   public class ClipData implements android.os.Parcelable {
-    method public deprecated void addItem(android.content.ClipData.Item, android.content.ContentResolver);
+    method @Deprecated public void addItem(android.content.ClipData.Item, android.content.ContentResolver);
   }
 
   public abstract class Context {
     method public abstract android.content.SharedPreferences getSharedPreferences(java.io.File, int);
-    method public abstract java.io.File getSharedPreferencesPath(java.lang.String);
+    method public abstract java.io.File getSharedPreferencesPath(String);
   }
 
   public class ContextWrapper extends android.content.Context {
     method public android.content.SharedPreferences getSharedPreferences(java.io.File, int);
-    method public java.io.File getSharedPreferencesPath(java.lang.String);
+    method public java.io.File getSharedPreferencesPath(String);
   }
 
   public class Intent implements java.lang.Cloneable android.os.Parcelable {
-    field public static final deprecated java.lang.String EXTRA_QUICK_VIEW_ADVANCED = "android.intent.extra.QUICK_VIEW_ADVANCED";
+    field @Deprecated public static final String EXTRA_QUICK_VIEW_ADVANCED = "android.intent.extra.QUICK_VIEW_ADVANCED";
   }
 
 }
@@ -145,11 +146,11 @@
 package android.content.pm {
 
   public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
-    field public deprecated java.lang.String volumeUuid;
+    field @Deprecated public String volumeUuid;
   }
 
   public class ComponentInfo extends android.content.pm.PackageItemInfo {
-    field public deprecated boolean encryptionAware;
+    field @Deprecated public boolean encryptionAware;
   }
 
   public class PackageInfo implements android.os.Parcelable {
@@ -157,11 +158,11 @@
   }
 
   public abstract class PackageManager {
-    method public abstract boolean setInstantAppCookie(byte[]);
+    method public abstract boolean setInstantAppCookie(@Nullable byte[]);
   }
 
   public class ResolveInfo implements android.os.Parcelable {
-    field public deprecated boolean instantAppAvailable;
+    field @Deprecated public boolean instantAppAvailable;
   }
 
   public final class SharedLibraryInfo implements android.os.Parcelable {
@@ -175,76 +176,74 @@
 package android.database {
 
   public abstract class AbstractCursor implements android.database.CrossProcessCursor {
-    field protected java.lang.Long mCurrentRowID;
+    field protected Long mCurrentRowID;
     field protected int mRowIdColumnIndex;
-    field protected java.util.HashMap<java.lang.Long, java.util.Map<java.lang.String, java.lang.Object>> mUpdatedRows;
+    field protected java.util.HashMap<java.lang.Long,java.util.Map<java.lang.String,java.lang.Object>> mUpdatedRows;
   }
 
 }
 
 package android.graphics {
 
-  public deprecated class AvoidXfermode extends android.graphics.Xfermode {
+  @Deprecated public class AvoidXfermode extends android.graphics.Xfermode {
     ctor public AvoidXfermode(int, int, android.graphics.AvoidXfermode.Mode);
   }
 
-  public static final class AvoidXfermode.Mode extends java.lang.Enum {
-    method public static android.graphics.AvoidXfermode.Mode valueOf(java.lang.String);
-    method public static final android.graphics.AvoidXfermode.Mode[] values();
+  public enum AvoidXfermode.Mode {
     enum_constant public static final android.graphics.AvoidXfermode.Mode AVOID;
     enum_constant public static final android.graphics.AvoidXfermode.Mode TARGET;
   }
 
   public class Canvas {
-    method public deprecated boolean clipRegion(android.graphics.Region, android.graphics.Region.Op);
-    method public deprecated boolean clipRegion(android.graphics.Region);
-    method public deprecated int save(int);
-    field public static final deprecated int CLIP_SAVE_FLAG = 2; // 0x2
-    field public static final deprecated int CLIP_TO_LAYER_SAVE_FLAG = 16; // 0x10
-    field public static final deprecated int FULL_COLOR_LAYER_SAVE_FLAG = 8; // 0x8
-    field public static final deprecated int HAS_ALPHA_LAYER_SAVE_FLAG = 4; // 0x4
-    field public static final deprecated int MATRIX_SAVE_FLAG = 1; // 0x1
+    method @Deprecated public boolean clipRegion(@NonNull android.graphics.Region, @NonNull android.graphics.Region.Op);
+    method @Deprecated public boolean clipRegion(@NonNull android.graphics.Region);
+    method @Deprecated public int save(int);
+    field @Deprecated public static final int CLIP_SAVE_FLAG = 2; // 0x2
+    field @Deprecated public static final int CLIP_TO_LAYER_SAVE_FLAG = 16; // 0x10
+    field @Deprecated public static final int FULL_COLOR_LAYER_SAVE_FLAG = 8; // 0x8
+    field @Deprecated public static final int HAS_ALPHA_LAYER_SAVE_FLAG = 4; // 0x4
+    field @Deprecated public static final int MATRIX_SAVE_FLAG = 1; // 0x1
   }
 
   public final class ImageDecoder implements java.lang.AutoCloseable {
-    method public deprecated boolean getAsAlphaMask();
-    method public deprecated boolean getConserveMemory();
-    method public deprecated boolean getDecodeAsAlphaMask();
-    method public deprecated boolean getMutable();
-    method public deprecated boolean getRequireUnpremultiplied();
-    method public deprecated android.graphics.ImageDecoder setAsAlphaMask(boolean);
-    method public deprecated void setConserveMemory(boolean);
-    method public deprecated android.graphics.ImageDecoder setDecodeAsAlphaMask(boolean);
-    method public deprecated android.graphics.ImageDecoder setMutable(boolean);
-    method public deprecated android.graphics.ImageDecoder setRequireUnpremultiplied(boolean);
-    method public deprecated android.graphics.ImageDecoder setResize(int, int);
-    method public deprecated android.graphics.ImageDecoder setResize(int);
-    field public static final deprecated int ERROR_SOURCE_ERROR = 3; // 0x3
-    field public static final deprecated int ERROR_SOURCE_EXCEPTION = 1; // 0x1
-    field public static final deprecated int ERROR_SOURCE_INCOMPLETE = 2; // 0x2
+    method @Deprecated public boolean getAsAlphaMask();
+    method @Deprecated public boolean getConserveMemory();
+    method @Deprecated public boolean getDecodeAsAlphaMask();
+    method @Deprecated public boolean getMutable();
+    method @Deprecated public boolean getRequireUnpremultiplied();
+    method @Deprecated public android.graphics.ImageDecoder setAsAlphaMask(boolean);
+    method @Deprecated public void setConserveMemory(boolean);
+    method @Deprecated public android.graphics.ImageDecoder setDecodeAsAlphaMask(boolean);
+    method @Deprecated public android.graphics.ImageDecoder setMutable(boolean);
+    method @Deprecated public android.graphics.ImageDecoder setRequireUnpremultiplied(boolean);
+    method @Deprecated public android.graphics.ImageDecoder setResize(int, int);
+    method @Deprecated public android.graphics.ImageDecoder setResize(int);
+    field @Deprecated public static final int ERROR_SOURCE_ERROR = 3; // 0x3
+    field @Deprecated public static final int ERROR_SOURCE_EXCEPTION = 1; // 0x1
+    field @Deprecated public static final int ERROR_SOURCE_INCOMPLETE = 2; // 0x2
   }
 
-  public static deprecated class ImageDecoder.IncompleteException extends java.io.IOException {
+  @Deprecated public static class ImageDecoder.IncompleteException extends java.io.IOException {
     ctor public ImageDecoder.IncompleteException();
   }
 
-  public deprecated class LayerRasterizer extends android.graphics.Rasterizer {
+  @Deprecated public class LayerRasterizer extends android.graphics.Rasterizer {
     ctor public LayerRasterizer();
     method public void addLayer(android.graphics.Paint, float, float);
     method public void addLayer(android.graphics.Paint);
   }
 
   public class Paint {
-    method public deprecated android.graphics.Rasterizer getRasterizer();
-    method public deprecated android.graphics.Rasterizer setRasterizer(android.graphics.Rasterizer);
+    method @Deprecated public android.graphics.Rasterizer getRasterizer();
+    method @Deprecated public android.graphics.Rasterizer setRasterizer(android.graphics.Rasterizer);
   }
 
   public class Picture {
-    method public static deprecated android.graphics.Picture createFromStream(java.io.InputStream);
-    method public deprecated void writeToStream(java.io.OutputStream);
+    method @Deprecated public static android.graphics.Picture createFromStream(java.io.InputStream);
+    method @Deprecated public void writeToStream(java.io.OutputStream);
   }
 
-  public deprecated class PixelXorXfermode extends android.graphics.Xfermode {
+  @Deprecated public class PixelXorXfermode extends android.graphics.Xfermode {
     ctor public PixelXorXfermode(int);
   }
 
@@ -257,9 +256,9 @@
 package android.graphics.drawable {
 
   public class AnimatedImageDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable2 {
-    method public deprecated int getLoopCount(int);
-    method public deprecated void setLoopCount(int);
-    field public static final deprecated int LOOP_INFINITE = -1; // 0xffffffff
+    method @Deprecated public int getLoopCount(int);
+    method @Deprecated public void setLoopCount(int);
+    field @Deprecated public static final int LOOP_INFINITE = -1; // 0xffffffff
   }
 
 }
@@ -267,16 +266,16 @@
 package android.hardware {
 
   public final class HardwareBuffer implements java.lang.AutoCloseable android.os.Parcelable {
-    method public deprecated void destroy();
-    method public deprecated boolean isDestroyed();
+    method @Deprecated public void destroy();
+    method @Deprecated public boolean isDestroyed();
   }
 
   public final class SensorDirectChannel implements java.nio.channels.Channel {
-    method public deprecated boolean isValid();
+    method @Deprecated public boolean isValid();
   }
 
   public abstract class SensorManager {
-    method public deprecated int configureDirectChannel(android.hardware.SensorDirectChannel, android.hardware.Sensor, int);
+    method @Deprecated public int configureDirectChannel(android.hardware.SensorDirectChannel, android.hardware.Sensor, int);
   }
 
 }
@@ -284,9 +283,9 @@
 package android.location {
 
   public class Location implements android.os.Parcelable {
-    method public deprecated void removeBearingAccuracy();
-    method public deprecated void removeSpeedAccuracy();
-    method public deprecated void removeVerticalAccuracy();
+    method @Deprecated public void removeBearingAccuracy();
+    method @Deprecated public void removeSpeedAccuracy();
+    method @Deprecated public void removeVerticalAccuracy();
   }
 
 }
@@ -310,28 +309,28 @@
 package android.net {
 
   public class ConnectivityManager {
-    method public deprecated boolean requestRouteToHost(int, int);
-    method public deprecated int startUsingNetworkFeature(int, java.lang.String);
-    method public deprecated int stopUsingNetworkFeature(int, java.lang.String);
+    method @Deprecated public boolean requestRouteToHost(int, int);
+    method @Deprecated public int startUsingNetworkFeature(int, String);
+    method @Deprecated public int stopUsingNetworkFeature(int, String);
   }
 
-  public deprecated class NetworkBadging {
-    method public static android.graphics.drawable.Drawable getWifiIcon(int, int, android.content.res.Resources.Theme);
+  @Deprecated public class NetworkBadging {
+    method @NonNull public static android.graphics.drawable.Drawable getWifiIcon(@IntRange(from=0, to=4) int, int, @Nullable android.content.res.Resources.Theme);
     field public static final int BADGING_4K = 30; // 0x1e
     field public static final int BADGING_HD = 20; // 0x14
     field public static final int BADGING_NONE = 0; // 0x0
     field public static final int BADGING_SD = 10; // 0xa
   }
 
-  public static abstract class NetworkBadging.Badging implements java.lang.annotation.Annotation {
+  @IntDef({0x0, 0xa, 0x14, 0x1e}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NetworkBadging.Badging {
   }
 
   public class SSLCertificateSocketFactory extends javax.net.ssl.SSLSocketFactory {
-    method public static deprecated org.apache.http.conn.ssl.SSLSocketFactory getHttpSocketFactory(int, android.net.SSLSessionCache);
+    method @Deprecated public static org.apache.http.conn.ssl.SSLSocketFactory getHttpSocketFactory(int, android.net.SSLSessionCache);
   }
 
   public class TrafficStats {
-    method public static deprecated void setThreadStatsUidSelf();
+    method @Deprecated public static void setThreadStatsUidSelf();
   }
 
 }
@@ -344,7 +343,7 @@
 
   public final class PowerManager {
     method public void goToSleep(long);
-    method public deprecated void userActivity(long, boolean);
+    method @Deprecated public void userActivity(long, boolean);
     method public void wakeUp(long);
   }
 
@@ -353,27 +352,27 @@
   }
 
   public static final class StrictMode.ThreadPolicy.Builder {
-    method public android.os.StrictMode.ThreadPolicy.Builder penaltyListener(android.os.StrictMode.OnThreadViolationListener, java.util.concurrent.Executor);
+    method public android.os.StrictMode.ThreadPolicy.Builder penaltyListener(@NonNull android.os.StrictMode.OnThreadViolationListener, @NonNull java.util.concurrent.Executor);
   }
 
   public static final class StrictMode.VmPolicy.Builder {
-    method public android.os.StrictMode.VmPolicy.Builder penaltyListener(android.os.StrictMode.OnVmViolationListener, java.util.concurrent.Executor);
+    method public android.os.StrictMode.VmPolicy.Builder penaltyListener(@NonNull android.os.StrictMode.OnVmViolationListener, @NonNull java.util.concurrent.Executor);
   }
 
   public final class SystemClock {
-    method public static java.time.Clock elapsedRealtimeClock();
-    method public static java.time.Clock uptimeClock();
-    method public static deprecated java.time.Clock uptimeMillisClock();
+    method @NonNull public static java.time.Clock elapsedRealtimeClock();
+    method @NonNull public static java.time.Clock uptimeClock();
+    method @Deprecated @NonNull public static java.time.Clock uptimeMillisClock();
   }
 
   public class TestLooperManager {
-    method public deprecated android.os.MessageQueue getQueue();
+    method @Deprecated public android.os.MessageQueue getQueue();
   }
 
   public class UserManager {
     method public android.graphics.drawable.Drawable getBadgedDrawableForUser(android.graphics.drawable.Drawable, android.os.UserHandle, android.graphics.Rect, int);
     method public android.graphics.drawable.Drawable getBadgedIconForUser(android.graphics.drawable.Drawable, android.os.UserHandle);
-    method public java.lang.CharSequence getBadgedLabelForUser(java.lang.CharSequence, android.os.UserHandle);
+    method public CharSequence getBadgedLabelForUser(CharSequence, android.os.UserHandle);
   }
 
 }
@@ -381,8 +380,8 @@
 package android.os.storage {
 
   public class StorageManager {
-    method public android.os.storage.StorageVolume getPrimaryVolume();
-    method public android.os.storage.StorageVolume[] getVolumeList();
+    method @NonNull public android.os.storage.StorageVolume getPrimaryVolume();
+    method @NonNull public android.os.storage.StorageVolume[] getVolumeList();
   }
 
 }
@@ -390,20 +389,20 @@
 package android.provider {
 
   public class Browser {
-    method public static final void addSearchUrl(android.content.ContentResolver, java.lang.String);
-    method public static final boolean canClearHistory(android.content.ContentResolver);
-    method public static final void clearHistory(android.content.ContentResolver);
-    method public static final void clearSearches(android.content.ContentResolver);
-    method public static final void deleteFromHistory(android.content.ContentResolver, java.lang.String);
-    method public static final void deleteHistoryTimeFrame(android.content.ContentResolver, long, long);
-    method public static final android.database.Cursor getAllBookmarks(android.content.ContentResolver) throws java.lang.IllegalStateException;
-    method public static final android.database.Cursor getAllVisitedUrls(android.content.ContentResolver) throws java.lang.IllegalStateException;
-    method public static final void requestAllIcons(android.content.ContentResolver, java.lang.String, android.webkit.WebIconDatabase.IconListener);
-    method public static final void saveBookmark(android.content.Context, java.lang.String, java.lang.String);
-    method public static final void truncateHistory(android.content.ContentResolver);
-    method public static final void updateVisitedHistory(android.content.ContentResolver, java.lang.String, boolean);
-    field public static final android.net.Uri BOOKMARKS_URI;
-    field public static final java.lang.String[] HISTORY_PROJECTION;
+    method @RequiresPermission(allOf={"com.android.browser.permission.READ_HISTORY_BOOKMARKS", "com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"}, apis="..22") public static final void addSearchUrl(android.content.ContentResolver, String);
+    method @RequiresPermission(value="com.android.browser.permission.READ_HISTORY_BOOKMARKS", apis="..22") public static final boolean canClearHistory(android.content.ContentResolver);
+    method @RequiresPermission(value="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS", apis="..22") public static final void clearHistory(android.content.ContentResolver);
+    method @RequiresPermission(value="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS", apis="..22") public static final void clearSearches(android.content.ContentResolver);
+    method @RequiresPermission(value="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS", apis="..22") public static final void deleteFromHistory(android.content.ContentResolver, String);
+    method @RequiresPermission(value="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS", apis="..22") public static final void deleteHistoryTimeFrame(android.content.ContentResolver, long, long);
+    method @RequiresPermission(value="com.android.browser.permission.READ_HISTORY_BOOKMARKS", apis="..22") public static final android.database.Cursor getAllBookmarks(android.content.ContentResolver) throws java.lang.IllegalStateException;
+    method @RequiresPermission(value="com.android.browser.permission.READ_HISTORY_BOOKMARKS", apis="..22") public static final android.database.Cursor getAllVisitedUrls(android.content.ContentResolver) throws java.lang.IllegalStateException;
+    method @RequiresPermission(value="com.android.browser.permission.READ_HISTORY_BOOKMARKS", apis="..22") public static final void requestAllIcons(android.content.ContentResolver, String, android.webkit.WebIconDatabase.IconListener);
+    method public static final void saveBookmark(android.content.Context, String, String);
+    method @RequiresPermission(allOf={"com.android.browser.permission.READ_HISTORY_BOOKMARKS", "com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"}, apis="..22") public static final void truncateHistory(android.content.ContentResolver);
+    method @RequiresPermission(allOf={"com.android.browser.permission.READ_HISTORY_BOOKMARKS", "com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"}, apis="..22") public static final void updateVisitedHistory(android.content.ContentResolver, String, boolean);
+    field @RequiresPermission.Read(value="com.android.browser.permission.READ_HISTORY_BOOKMARKS", apis="..22") @RequiresPermission.Write(value="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS", apis="..22") public static final android.net.Uri BOOKMARKS_URI;
+    field public static final String[] HISTORY_PROJECTION;
     field public static final int HISTORY_PROJECTION_BOOKMARK_INDEX = 4; // 0x4
     field public static final int HISTORY_PROJECTION_DATE_INDEX = 3; // 0x3
     field public static final int HISTORY_PROJECTION_FAVICON_INDEX = 6; // 0x6
@@ -411,121 +410,121 @@
     field public static final int HISTORY_PROJECTION_TITLE_INDEX = 5; // 0x5
     field public static final int HISTORY_PROJECTION_URL_INDEX = 1; // 0x1
     field public static final int HISTORY_PROJECTION_VISITS_INDEX = 2; // 0x2
-    field public static final java.lang.String[] SEARCHES_PROJECTION;
+    field public static final String[] SEARCHES_PROJECTION;
     field public static final int SEARCHES_PROJECTION_DATE_INDEX = 2; // 0x2
     field public static final int SEARCHES_PROJECTION_SEARCH_INDEX = 1; // 0x1
-    field public static final android.net.Uri SEARCHES_URI;
-    field public static final java.lang.String[] TRUNCATE_HISTORY_PROJECTION;
+    field @RequiresPermission.Read(value="com.android.browser.permission.READ_HISTORY_BOOKMARKS", apis="..22") @RequiresPermission.Write(value="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS", apis="..22") public static final android.net.Uri SEARCHES_URI;
+    field public static final String[] TRUNCATE_HISTORY_PROJECTION;
     field public static final int TRUNCATE_HISTORY_PROJECTION_ID_INDEX = 0; // 0x0
     field public static final int TRUNCATE_N_OLDEST = 5; // 0x5
   }
 
   public static class Browser.BookmarkColumns implements android.provider.BaseColumns {
     ctor public Browser.BookmarkColumns();
-    field public static final java.lang.String BOOKMARK = "bookmark";
-    field public static final java.lang.String CREATED = "created";
-    field public static final java.lang.String DATE = "date";
-    field public static final java.lang.String FAVICON = "favicon";
-    field public static final java.lang.String TITLE = "title";
-    field public static final java.lang.String URL = "url";
-    field public static final java.lang.String VISITS = "visits";
-    field public static final java.lang.String _COUNT = "_count";
-    field public static final java.lang.String _ID = "_id";
+    field public static final String BOOKMARK = "bookmark";
+    field public static final String CREATED = "created";
+    field public static final String DATE = "date";
+    field public static final String FAVICON = "favicon";
+    field public static final String TITLE = "title";
+    field public static final String URL = "url";
+    field public static final String VISITS = "visits";
+    field public static final String _COUNT = "_count";
+    field public static final String _ID = "_id";
   }
 
   public static class Browser.SearchColumns implements android.provider.BaseColumns {
     ctor public Browser.SearchColumns();
-    field public static final java.lang.String DATE = "date";
-    field public static final java.lang.String SEARCH = "search";
-    field public static final deprecated java.lang.String URL = "url";
-    field public static final java.lang.String _COUNT = "_count";
-    field public static final java.lang.String _ID = "_id";
+    field public static final String DATE = "date";
+    field public static final String SEARCH = "search";
+    field @Deprecated public static final String URL = "url";
+    field public static final String _COUNT = "_count";
+    field public static final String _ID = "_id";
   }
 
-  public static final deprecated class ContactsContract.Contacts.StreamItems implements android.provider.ContactsContract.StreamItemsColumns {
-    field public static final deprecated java.lang.String CONTENT_DIRECTORY = "stream_items";
+  @Deprecated public static final class ContactsContract.Contacts.StreamItems implements android.provider.ContactsContract.StreamItemsColumns {
+    field @Deprecated public static final String CONTENT_DIRECTORY = "stream_items";
   }
 
-  public static final deprecated class ContactsContract.RawContacts.StreamItems implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemsColumns {
-    field public static final deprecated java.lang.String CONTENT_DIRECTORY = "stream_items";
-    field public static final java.lang.String _COUNT = "_count";
-    field public static final java.lang.String _ID = "_id";
+  @Deprecated public static final class ContactsContract.RawContacts.StreamItems implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemsColumns {
+    field @Deprecated public static final String CONTENT_DIRECTORY = "stream_items";
+    field public static final String _COUNT = "_count";
+    field public static final String _ID = "_id";
   }
 
-  public static final deprecated class ContactsContract.StreamItemPhotos implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemPhotosColumns {
-    field public static final deprecated java.lang.String PHOTO = "photo";
-    field public static final java.lang.String _COUNT = "_count";
-    field public static final java.lang.String _ID = "_id";
+  @Deprecated public static final class ContactsContract.StreamItemPhotos implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemPhotosColumns {
+    field @Deprecated public static final String PHOTO = "photo";
+    field public static final String _COUNT = "_count";
+    field public static final String _ID = "_id";
   }
 
-  protected static abstract deprecated interface ContactsContract.StreamItemPhotosColumns {
-    field public static final deprecated java.lang.String PHOTO_FILE_ID = "photo_file_id";
-    field public static final deprecated java.lang.String PHOTO_URI = "photo_uri";
-    field public static final deprecated java.lang.String SORT_INDEX = "sort_index";
-    field public static final deprecated java.lang.String STREAM_ITEM_ID = "stream_item_id";
-    field public static final deprecated java.lang.String SYNC1 = "stream_item_photo_sync1";
-    field public static final deprecated java.lang.String SYNC2 = "stream_item_photo_sync2";
-    field public static final deprecated java.lang.String SYNC3 = "stream_item_photo_sync3";
-    field public static final deprecated java.lang.String SYNC4 = "stream_item_photo_sync4";
+  @Deprecated protected static interface ContactsContract.StreamItemPhotosColumns {
+    field @Deprecated public static final String PHOTO_FILE_ID = "photo_file_id";
+    field @Deprecated public static final String PHOTO_URI = "photo_uri";
+    field @Deprecated public static final String SORT_INDEX = "sort_index";
+    field @Deprecated public static final String STREAM_ITEM_ID = "stream_item_id";
+    field @Deprecated public static final String SYNC1 = "stream_item_photo_sync1";
+    field @Deprecated public static final String SYNC2 = "stream_item_photo_sync2";
+    field @Deprecated public static final String SYNC3 = "stream_item_photo_sync3";
+    field @Deprecated public static final String SYNC4 = "stream_item_photo_sync4";
   }
 
-  public static final deprecated class ContactsContract.StreamItems implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemsColumns {
-    field public static final deprecated java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/stream_item";
-    field public static final deprecated android.net.Uri CONTENT_LIMIT_URI;
-    field public static final deprecated android.net.Uri CONTENT_PHOTO_URI;
-    field public static final deprecated java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/stream_item";
-    field public static final deprecated android.net.Uri CONTENT_URI;
-    field public static final deprecated java.lang.String MAX_ITEMS = "max_items";
-    field public static final java.lang.String _COUNT = "_count";
-    field public static final java.lang.String _ID = "_id";
+  @Deprecated public static final class ContactsContract.StreamItems implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemsColumns {
+    field @Deprecated public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/stream_item";
+    field @Deprecated public static final android.net.Uri CONTENT_LIMIT_URI;
+    field @Deprecated public static final android.net.Uri CONTENT_PHOTO_URI;
+    field @Deprecated public static final String CONTENT_TYPE = "vnd.android.cursor.dir/stream_item";
+    field @Deprecated public static final android.net.Uri CONTENT_URI;
+    field @Deprecated public static final String MAX_ITEMS = "max_items";
+    field public static final String _COUNT = "_count";
+    field public static final String _ID = "_id";
   }
 
-  public static final deprecated class ContactsContract.StreamItems.StreamItemPhotos implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemPhotosColumns {
-    field public static final deprecated java.lang.String CONTENT_DIRECTORY = "photo";
-    field public static final deprecated java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/stream_item_photo";
-    field public static final deprecated java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/stream_item_photo";
-    field public static final java.lang.String _COUNT = "_count";
-    field public static final java.lang.String _ID = "_id";
+  @Deprecated public static final class ContactsContract.StreamItems.StreamItemPhotos implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemPhotosColumns {
+    field @Deprecated public static final String CONTENT_DIRECTORY = "photo";
+    field @Deprecated public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/stream_item_photo";
+    field @Deprecated public static final String CONTENT_TYPE = "vnd.android.cursor.dir/stream_item_photo";
+    field public static final String _COUNT = "_count";
+    field public static final String _ID = "_id";
   }
 
-  protected static abstract deprecated interface ContactsContract.StreamItemsColumns {
-    field public static final deprecated java.lang.String ACCOUNT_NAME = "account_name";
-    field public static final deprecated java.lang.String ACCOUNT_TYPE = "account_type";
-    field public static final deprecated java.lang.String COMMENTS = "comments";
-    field public static final deprecated java.lang.String CONTACT_ID = "contact_id";
-    field public static final deprecated java.lang.String CONTACT_LOOKUP_KEY = "contact_lookup";
-    field public static final deprecated java.lang.String DATA_SET = "data_set";
-    field public static final deprecated java.lang.String RAW_CONTACT_ID = "raw_contact_id";
-    field public static final deprecated java.lang.String RAW_CONTACT_SOURCE_ID = "raw_contact_source_id";
-    field public static final deprecated java.lang.String RES_ICON = "icon";
-    field public static final deprecated java.lang.String RES_LABEL = "label";
-    field public static final deprecated java.lang.String RES_PACKAGE = "res_package";
-    field public static final deprecated java.lang.String SYNC1 = "stream_item_sync1";
-    field public static final deprecated java.lang.String SYNC2 = "stream_item_sync2";
-    field public static final deprecated java.lang.String SYNC3 = "stream_item_sync3";
-    field public static final deprecated java.lang.String SYNC4 = "stream_item_sync4";
-    field public static final deprecated java.lang.String TEXT = "text";
-    field public static final deprecated java.lang.String TIMESTAMP = "timestamp";
+  @Deprecated protected static interface ContactsContract.StreamItemsColumns {
+    field @Deprecated public static final String ACCOUNT_NAME = "account_name";
+    field @Deprecated public static final String ACCOUNT_TYPE = "account_type";
+    field @Deprecated public static final String COMMENTS = "comments";
+    field @Deprecated public static final String CONTACT_ID = "contact_id";
+    field @Deprecated public static final String CONTACT_LOOKUP_KEY = "contact_lookup";
+    field @Deprecated public static final String DATA_SET = "data_set";
+    field @Deprecated public static final String RAW_CONTACT_ID = "raw_contact_id";
+    field @Deprecated public static final String RAW_CONTACT_SOURCE_ID = "raw_contact_source_id";
+    field @Deprecated public static final String RES_ICON = "icon";
+    field @Deprecated public static final String RES_LABEL = "label";
+    field @Deprecated public static final String RES_PACKAGE = "res_package";
+    field @Deprecated public static final String SYNC1 = "stream_item_sync1";
+    field @Deprecated public static final String SYNC2 = "stream_item_sync2";
+    field @Deprecated public static final String SYNC3 = "stream_item_sync3";
+    field @Deprecated public static final String SYNC4 = "stream_item_sync4";
+    field @Deprecated public static final String TEXT = "text";
+    field @Deprecated public static final String TIMESTAMP = "timestamp";
   }
 
   public static final class Settings.Global extends android.provider.Settings.NameValueTable {
-    field public static final deprecated java.lang.String CONTACT_METADATA_SYNC = "contact_metadata_sync";
+    field @Deprecated public static final String CONTACT_METADATA_SYNC = "contact_metadata_sync";
   }
 
   public static final class Settings.System extends android.provider.Settings.NameValueTable {
-    field public static final java.lang.String APPEND_FOR_LAST_AUDIBLE = "_last_audible";
-    field public static final java.lang.String VOLUME_ALARM = "volume_alarm";
-    field public static final java.lang.String VOLUME_BLUETOOTH_SCO = "volume_bluetooth_sco";
-    field public static final java.lang.String VOLUME_MUSIC = "volume_music";
-    field public static final java.lang.String VOLUME_NOTIFICATION = "volume_notification";
-    field public static final java.lang.String VOLUME_RING = "volume_ring";
-    field public static final java.lang.String[] VOLUME_SETTINGS;
-    field public static final java.lang.String VOLUME_SYSTEM = "volume_system";
-    field public static final java.lang.String VOLUME_VOICE = "volume_voice";
+    field public static final String APPEND_FOR_LAST_AUDIBLE = "_last_audible";
+    field public static final String VOLUME_ALARM = "volume_alarm";
+    field public static final String VOLUME_BLUETOOTH_SCO = "volume_bluetooth_sco";
+    field public static final String VOLUME_MUSIC = "volume_music";
+    field public static final String VOLUME_NOTIFICATION = "volume_notification";
+    field public static final String VOLUME_RING = "volume_ring";
+    field public static final String[] VOLUME_SETTINGS;
+    field public static final String VOLUME_SYSTEM = "volume_system";
+    field public static final String VOLUME_VOICE = "volume_voice";
   }
 
   public static final class Telephony.Sms.Intents {
-    field public static final java.lang.String SMS_EMERGENCY_CB_RECEIVED_ACTION = "android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED";
+    field public static final String SMS_EMERGENCY_CB_RECEIVED_ACTION = "android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED";
   }
 
 }
@@ -533,7 +532,7 @@
 package android.speech.tts {
 
   public abstract class UtteranceProgressListener {
-    method public deprecated void onUtteranceRangeStart(java.lang.String, int, int);
+    method @Deprecated public void onUtteranceRangeStart(String, int, int);
   }
 
 }
@@ -541,12 +540,12 @@
 package android.telephony {
 
   public class NetworkScan {
-    method public deprecated void stop() throws android.os.RemoteException;
+    method @Deprecated public void stop() throws android.os.RemoteException;
   }
 
   public class TelephonyManager {
-    method public deprecated java.util.List<android.telephony.NeighboringCellInfo> getNeighboringCellInfo();
-    method public deprecated android.telephony.NetworkScan requestNetworkScan(android.telephony.NetworkScanRequest, android.telephony.TelephonyScanManager.NetworkScanCallback);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public java.util.List<android.telephony.NeighboringCellInfo> getNeighboringCellInfo();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telephony.NetworkScan requestNetworkScan(android.telephony.NetworkScanRequest, android.telephony.TelephonyScanManager.NetworkScanCallback);
   }
 
 }
@@ -554,19 +553,19 @@
 package android.text.format {
 
   public class DateFormat {
-    field public static final deprecated char AM_PM = 97; // 0x0061 'a'
-    field public static final deprecated char CAPITAL_AM_PM = 65; // 0x0041 'A'
-    field public static final deprecated char DATE = 100; // 0x0064 'd'
-    field public static final deprecated char DAY = 69; // 0x0045 'E'
-    field public static final deprecated char HOUR = 104; // 0x0068 'h'
-    field public static final deprecated char HOUR_OF_DAY = 107; // 0x006b 'k'
-    field public static final deprecated char MINUTE = 109; // 0x006d 'm'
-    field public static final deprecated char MONTH = 77; // 0x004d 'M'
-    field public static final deprecated char QUOTE = 39; // 0x0027 '\''
-    field public static final deprecated char SECONDS = 115; // 0x0073 's'
-    field public static final deprecated char STANDALONE_MONTH = 76; // 0x004c 'L'
-    field public static final deprecated char TIME_ZONE = 122; // 0x007a 'z'
-    field public static final deprecated char YEAR = 121; // 0x0079 'y'
+    field @Deprecated public static final char AM_PM = 97; // 0x0061 'a'
+    field @Deprecated public static final char CAPITAL_AM_PM = 65; // 0x0041 'A'
+    field @Deprecated public static final char DATE = 100; // 0x0064 'd'
+    field @Deprecated public static final char DAY = 69; // 0x0045 'E'
+    field @Deprecated public static final char HOUR = 104; // 0x0068 'h'
+    field @Deprecated public static final char HOUR_OF_DAY = 107; // 0x006b 'k'
+    field @Deprecated public static final char MINUTE = 109; // 0x006d 'm'
+    field @Deprecated public static final char MONTH = 77; // 0x004d 'M'
+    field @Deprecated public static final char QUOTE = 39; // 0x0027 '\''
+    field @Deprecated public static final char SECONDS = 115; // 0x0073 's'
+    field @Deprecated public static final char STANDALONE_MONTH = 76; // 0x004c 'L'
+    field @Deprecated public static final char TIME_ZONE = 122; // 0x007a 'z'
+    field @Deprecated public static final char YEAR = 121; // 0x0079 'y'
   }
 
 }
@@ -583,7 +582,7 @@
 
 package android.util {
 
-  public deprecated class FloatMath {
+  @Deprecated public class FloatMath {
     method public static float ceil(float);
     method public static float cos(float);
     method public static float exp(float);
@@ -598,7 +597,7 @@
 
 package android.view {
 
-  public class View implements android.view.accessibility.AccessibilityEventSource android.graphics.drawable.Drawable.Callback android.view.KeyEvent.Callback {
+  @UiThread public class View implements android.view.accessibility.AccessibilityEventSource android.graphics.drawable.Drawable.Callback android.view.KeyEvent.Callback {
     method protected void initializeFadingEdge(android.content.res.TypedArray);
     method protected void initializeScrollbars(android.content.res.TypedArray);
   }
@@ -623,12 +622,12 @@
 
 package android.widget {
 
-  public class ListView extends android.widget.AbsListView {
-    method protected <T extends android.view.View> T findViewTraversal(int);
-    method protected <T extends android.view.View> T findViewWithTagTraversal(java.lang.Object);
+  @android.widget.RemoteViews.RemoteView public class ListView extends android.widget.AbsListView {
+    method protected <T extends android.view.View> T findViewTraversal(@IdRes int);
+    method protected <T extends android.view.View> T findViewWithTagTraversal(Object);
   }
 
-  public class TextView extends android.view.View implements android.view.ViewTreeObserver.OnPreDrawListener {
+  @android.widget.RemoteViews.RemoteView public class TextView extends android.view.View implements android.view.ViewTreeObserver.OnPreDrawListener {
     method public static int getTextColor(android.content.Context, android.content.res.TypedArray, int);
     method public static android.content.res.ColorStateList getTextColors(android.content.Context, android.content.res.TypedArray);
   }
diff --git a/api/system-current.txt b/api/system-current.txt
index 5b153f0..ce0ef38 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -1,199 +1,201 @@
+// Signature format: 2.0
 package android {
 
   public static final class Manifest.permission {
-    field public static final java.lang.String ACCESS_AMBIENT_LIGHT_STATS = "android.permission.ACCESS_AMBIENT_LIGHT_STATS";
-    field public static final java.lang.String ACCESS_BROADCAST_RADIO = "android.permission.ACCESS_BROADCAST_RADIO";
-    field public static final java.lang.String ACCESS_CACHE_FILESYSTEM = "android.permission.ACCESS_CACHE_FILESYSTEM";
-    field public static final java.lang.String ACCESS_DRM_CERTIFICATES = "android.permission.ACCESS_DRM_CERTIFICATES";
-    field public static final deprecated java.lang.String ACCESS_FM_RADIO = "android.permission.ACCESS_FM_RADIO";
-    field public static final java.lang.String ACCESS_INSTANT_APPS = "android.permission.ACCESS_INSTANT_APPS";
-    field public static final java.lang.String ACCESS_MOCK_LOCATION = "android.permission.ACCESS_MOCK_LOCATION";
-    field public static final java.lang.String ACCESS_MTP = "android.permission.ACCESS_MTP";
-    field public static final java.lang.String ACCESS_NETWORK_CONDITIONS = "android.permission.ACCESS_NETWORK_CONDITIONS";
-    field public static final java.lang.String ACCESS_NOTIFICATIONS = "android.permission.ACCESS_NOTIFICATIONS";
-    field public static final java.lang.String ACCESS_SHORTCUTS = "android.permission.ACCESS_SHORTCUTS";
-    field public static final java.lang.String ACCESS_SURFACE_FLINGER = "android.permission.ACCESS_SURFACE_FLINGER";
-    field public static final java.lang.String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING";
-    field public static final java.lang.String ALLOCATE_AGGRESSIVE = "android.permission.ALLOCATE_AGGRESSIVE";
-    field public static final java.lang.String ALLOW_ANY_CODEC_FOR_PLAYBACK = "android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK";
-    field public static final java.lang.String AMBIENT_WALLPAPER = "android.permission.AMBIENT_WALLPAPER";
-    field public static final java.lang.String BACKUP = "android.permission.BACKUP";
-    field public static final java.lang.String BIND_AUGMENTED_AUTOFILL_SERVICE = "android.permission.BIND_AUGMENTED_AUTOFILL_SERVICE";
-    field public static final deprecated java.lang.String BIND_CONNECTION_SERVICE = "android.permission.BIND_CONNECTION_SERVICE";
-    field public static final java.lang.String BIND_CONTENT_CAPTURE_SERVICE = "android.permission.BIND_CONTENT_CAPTURE_SERVICE";
-    field public static final java.lang.String BIND_DIRECTORY_SEARCH = "android.permission.BIND_DIRECTORY_SEARCH";
-    field public static final java.lang.String BIND_EUICC_SERVICE = "android.permission.BIND_EUICC_SERVICE";
-    field public static final java.lang.String BIND_IMS_SERVICE = "android.permission.BIND_IMS_SERVICE";
-    field public static final java.lang.String BIND_KEYGUARD_APPWIDGET = "android.permission.BIND_KEYGUARD_APPWIDGET";
-    field public static final java.lang.String BIND_NETWORK_RECOMMENDATION_SERVICE = "android.permission.BIND_NETWORK_RECOMMENDATION_SERVICE";
-    field public static final java.lang.String BIND_NOTIFICATION_ASSISTANT_SERVICE = "android.permission.BIND_NOTIFICATION_ASSISTANT_SERVICE";
-    field public static final java.lang.String BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE = "android.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE";
-    field public static final java.lang.String BIND_PRINT_RECOMMENDATION_SERVICE = "android.permission.BIND_PRINT_RECOMMENDATION_SERVICE";
-    field public static final java.lang.String BIND_RESOLVER_RANKER_SERVICE = "android.permission.BIND_RESOLVER_RANKER_SERVICE";
-    field public static final java.lang.String BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE = "android.permission.BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE";
-    field public static final java.lang.String BIND_SETTINGS_SUGGESTIONS_SERVICE = "android.permission.BIND_SETTINGS_SUGGESTIONS_SERVICE";
-    field public static final java.lang.String BIND_SOUND_TRIGGER_DETECTION_SERVICE = "android.permission.BIND_SOUND_TRIGGER_DETECTION_SERVICE";
-    field public static final java.lang.String BIND_TELEPHONY_DATA_SERVICE = "android.permission.BIND_TELEPHONY_DATA_SERVICE";
-    field public static final java.lang.String BIND_TELEPHONY_NETWORK_SERVICE = "android.permission.BIND_TELEPHONY_NETWORK_SERVICE";
-    field public static final java.lang.String BIND_TEXTCLASSIFIER_SERVICE = "android.permission.BIND_TEXTCLASSIFIER_SERVICE";
-    field public static final java.lang.String BIND_TRUST_AGENT = "android.permission.BIND_TRUST_AGENT";
-    field public static final java.lang.String BIND_TV_REMOTE_SERVICE = "android.permission.BIND_TV_REMOTE_SERVICE";
-    field public static final java.lang.String BRICK = "android.permission.BRICK";
-    field public static final java.lang.String BRIGHTNESS_SLIDER_USAGE = "android.permission.BRIGHTNESS_SLIDER_USAGE";
-    field public static final deprecated java.lang.String BROADCAST_NETWORK_PRIVILEGED = "android.permission.BROADCAST_NETWORK_PRIVILEGED";
-    field public static final java.lang.String CAMERA_DISABLE_TRANSMIT_LED = "android.permission.CAMERA_DISABLE_TRANSMIT_LED";
-    field public static final java.lang.String CAPTURE_AUDIO_HOTWORD = "android.permission.CAPTURE_AUDIO_HOTWORD";
-    field public static final java.lang.String CAPTURE_TV_INPUT = "android.permission.CAPTURE_TV_INPUT";
-    field public static final java.lang.String CHANGE_APP_IDLE_STATE = "android.permission.CHANGE_APP_IDLE_STATE";
-    field public static final java.lang.String CHANGE_DEVICE_IDLE_TEMP_WHITELIST = "android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST";
-    field public static final java.lang.String CLEAR_APP_USER_DATA = "android.permission.CLEAR_APP_USER_DATA";
-    field public static final java.lang.String CONFIGURE_DISPLAY_BRIGHTNESS = "android.permission.CONFIGURE_DISPLAY_BRIGHTNESS";
-    field public static final java.lang.String CONNECTIVITY_INTERNAL = "android.permission.CONNECTIVITY_INTERNAL";
-    field public static final java.lang.String CONNECTIVITY_USE_RESTRICTED_NETWORKS = "android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS";
-    field public static final java.lang.String CONTROL_DISPLAY_COLOR_TRANSFORMS = "android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS";
-    field public static final java.lang.String CONTROL_DISPLAY_SATURATION = "android.permission.CONTROL_DISPLAY_SATURATION";
-    field public static final java.lang.String CONTROL_INCALL_EXPERIENCE = "android.permission.CONTROL_INCALL_EXPERIENCE";
-    field public static final java.lang.String CONTROL_KEYGUARD_SECURE_NOTIFICATIONS = "android.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS";
-    field public static final java.lang.String CONTROL_VPN = "android.permission.CONTROL_VPN";
-    field public static final java.lang.String CRYPT_KEEPER = "android.permission.CRYPT_KEEPER";
-    field public static final java.lang.String DEVICE_POWER = "android.permission.DEVICE_POWER";
-    field public static final java.lang.String DISPATCH_PROVISIONING_MESSAGE = "android.permission.DISPATCH_PROVISIONING_MESSAGE";
-    field public static final java.lang.String FORCE_BACK = "android.permission.FORCE_BACK";
-    field public static final java.lang.String FORCE_STOP_PACKAGES = "android.permission.FORCE_STOP_PACKAGES";
-    field public static final java.lang.String GET_APP_OPS_STATS = "android.permission.GET_APP_OPS_STATS";
-    field public static final java.lang.String GET_PROCESS_STATE_AND_OOM_SCORE = "android.permission.GET_PROCESS_STATE_AND_OOM_SCORE";
-    field public static final java.lang.String GET_RUNTIME_PERMISSIONS = "android.permission.GET_RUNTIME_PERMISSIONS";
-    field public static final java.lang.String GET_TOP_ACTIVITY_INFO = "android.permission.GET_TOP_ACTIVITY_INFO";
-    field public static final java.lang.String GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS = "android.permission.GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS";
-    field public static final java.lang.String GRANT_RUNTIME_PERMISSIONS = "android.permission.GRANT_RUNTIME_PERMISSIONS";
-    field public static final java.lang.String HARDWARE_TEST = "android.permission.HARDWARE_TEST";
-    field public static final java.lang.String HDMI_CEC = "android.permission.HDMI_CEC";
-    field public static final java.lang.String HIDE_NON_SYSTEM_OVERLAY_WINDOWS = "android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS";
-    field public static final java.lang.String INJECT_EVENTS = "android.permission.INJECT_EVENTS";
-    field public static final java.lang.String INSTALL_GRANT_RUNTIME_PERMISSIONS = "android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS";
-    field public static final java.lang.String INSTALL_PACKAGE_UPDATES = "android.permission.INSTALL_PACKAGE_UPDATES";
-    field public static final java.lang.String INSTALL_SELF_UPDATES = "android.permission.INSTALL_SELF_UPDATES";
-    field public static final java.lang.String INTENT_FILTER_VERIFICATION_AGENT = "android.permission.INTENT_FILTER_VERIFICATION_AGENT";
-    field public static final java.lang.String INTERACT_ACROSS_PROFILES = "android.permission.INTERACT_ACROSS_PROFILES";
-    field public static final java.lang.String INTERACT_ACROSS_USERS = "android.permission.INTERACT_ACROSS_USERS";
-    field public static final java.lang.String INTERACT_ACROSS_USERS_FULL = "android.permission.INTERACT_ACROSS_USERS_FULL";
-    field public static final java.lang.String INTERNAL_SYSTEM_WINDOW = "android.permission.INTERNAL_SYSTEM_WINDOW";
-    field public static final java.lang.String INVOKE_CARRIER_SETUP = "android.permission.INVOKE_CARRIER_SETUP";
-    field public static final java.lang.String KILL_UID = "android.permission.KILL_UID";
-    field public static final java.lang.String LOCAL_MAC_ADDRESS = "android.permission.LOCAL_MAC_ADDRESS";
-    field public static final java.lang.String LOCK_DEVICE = "android.permission.LOCK_DEVICE";
-    field public static final java.lang.String LOOP_RADIO = "android.permission.LOOP_RADIO";
-    field public static final java.lang.String MANAGE_ACCESSIBILITY = "android.permission.MANAGE_ACCESSIBILITY";
-    field public static final java.lang.String MANAGE_ACTIVITY_STACKS = "android.permission.MANAGE_ACTIVITY_STACKS";
-    field public static final java.lang.String MANAGE_APP_OPS_RESTRICTIONS = "android.permission.MANAGE_APP_OPS_RESTRICTIONS";
-    field public static final java.lang.String MANAGE_APP_PREDICTIONS = "android.permission.MANAGE_APP_PREDICTIONS";
-    field public static final java.lang.String MANAGE_APP_TOKENS = "android.permission.MANAGE_APP_TOKENS";
-    field public static final java.lang.String MANAGE_AUTO_FILL = "android.permission.MANAGE_AUTO_FILL";
-    field public static final java.lang.String MANAGE_CARRIER_OEM_UNLOCK_STATE = "android.permission.MANAGE_CARRIER_OEM_UNLOCK_STATE";
-    field public static final java.lang.String MANAGE_CA_CERTIFICATES = "android.permission.MANAGE_CA_CERTIFICATES";
-    field public static final java.lang.String MANAGE_CONTENT_CAPTURE = "android.permission.MANAGE_CONTENT_CAPTURE";
-    field public static final java.lang.String MANAGE_CONTENT_SUGGESTIONS = "android.permission.MANAGE_CONTENT_SUGGESTIONS";
-    field public static final java.lang.String MANAGE_DEBUGGING = "android.permission.MANAGE_DEBUGGING";
-    field public static final java.lang.String MANAGE_IPSEC_TUNNELS = "android.permission.MANAGE_IPSEC_TUNNELS";
-    field public static final java.lang.String MANAGE_ROLE_HOLDERS = "android.permission.MANAGE_ROLE_HOLDERS";
-    field public static final java.lang.String MANAGE_ROLLBACKS = "android.permission.MANAGE_ROLLBACKS";
-    field public static final java.lang.String MANAGE_SENSOR_PRIVACY = "android.permission.MANAGE_SENSOR_PRIVACY";
-    field public static final java.lang.String MANAGE_SOUND_TRIGGER = "android.permission.MANAGE_SOUND_TRIGGER";
-    field public static final java.lang.String MANAGE_SUBSCRIPTION_PLANS = "android.permission.MANAGE_SUBSCRIPTION_PLANS";
-    field public static final java.lang.String MANAGE_USB = "android.permission.MANAGE_USB";
-    field public static final java.lang.String MANAGE_USERS = "android.permission.MANAGE_USERS";
-    field public static final java.lang.String MANAGE_USER_OEM_UNLOCK_STATE = "android.permission.MANAGE_USER_OEM_UNLOCK_STATE";
-    field public static final java.lang.String MODIFY_APPWIDGET_BIND_PERMISSIONS = "android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS";
-    field public static final java.lang.String MODIFY_AUDIO_ROUTING = "android.permission.MODIFY_AUDIO_ROUTING";
-    field public static final java.lang.String MODIFY_CELL_BROADCASTS = "android.permission.MODIFY_CELL_BROADCASTS";
-    field public static final java.lang.String MODIFY_DAY_NIGHT_MODE = "android.permission.MODIFY_DAY_NIGHT_MODE";
-    field public static final deprecated java.lang.String MODIFY_NETWORK_ACCOUNTING = "android.permission.MODIFY_NETWORK_ACCOUNTING";
-    field public static final java.lang.String MODIFY_PARENTAL_CONTROLS = "android.permission.MODIFY_PARENTAL_CONTROLS";
-    field public static final java.lang.String MODIFY_QUIET_MODE = "android.permission.MODIFY_QUIET_MODE";
-    field public static final java.lang.String MOVE_PACKAGE = "android.permission.MOVE_PACKAGE";
-    field public static final java.lang.String NETWORK_MANAGED_PROVISIONING = "android.permission.NETWORK_MANAGED_PROVISIONING";
-    field public static final java.lang.String NETWORK_SETUP_WIZARD = "android.permission.NETWORK_SETUP_WIZARD";
-    field public static final java.lang.String NOTIFICATION_DURING_SETUP = "android.permission.NOTIFICATION_DURING_SETUP";
-    field public static final java.lang.String NOTIFY_TV_INPUTS = "android.permission.NOTIFY_TV_INPUTS";
-    field public static final java.lang.String OBSERVE_APP_USAGE = "android.permission.OBSERVE_APP_USAGE";
-    field public static final java.lang.String OBSERVE_ROLE_HOLDERS = "android.permission.OBSERVE_ROLE_HOLDERS";
-    field public static final java.lang.String OVERRIDE_WIFI_CONFIG = "android.permission.OVERRIDE_WIFI_CONFIG";
-    field public static final java.lang.String PACKAGE_VERIFICATION_AGENT = "android.permission.PACKAGE_VERIFICATION_AGENT";
-    field public static final java.lang.String PEERS_MAC_ADDRESS = "android.permission.PEERS_MAC_ADDRESS";
-    field public static final java.lang.String PERFORM_CDMA_PROVISIONING = "android.permission.PERFORM_CDMA_PROVISIONING";
-    field public static final java.lang.String PERFORM_SIM_ACTIVATION = "android.permission.PERFORM_SIM_ACTIVATION";
-    field public static final java.lang.String POWER_SAVER = "android.permission.POWER_SAVER";
-    field public static final java.lang.String PROVIDE_RESOLVER_RANKER_SERVICE = "android.permission.PROVIDE_RESOLVER_RANKER_SERVICE";
-    field public static final java.lang.String PROVIDE_TRUST_AGENT = "android.permission.PROVIDE_TRUST_AGENT";
-    field public static final java.lang.String QUERY_TIME_ZONE_RULES = "android.permission.QUERY_TIME_ZONE_RULES";
-    field public static final java.lang.String READ_CELL_BROADCASTS = "android.permission.READ_CELL_BROADCASTS";
-    field public static final java.lang.String READ_CONTENT_RATING_SYSTEMS = "android.permission.READ_CONTENT_RATING_SYSTEMS";
-    field public static final java.lang.String READ_DEVICE_CONFIG = "android.permission.READ_DEVICE_CONFIG";
-    field public static final java.lang.String READ_DREAM_STATE = "android.permission.READ_DREAM_STATE";
-    field public static final java.lang.String READ_INSTALL_SESSIONS = "android.permission.READ_INSTALL_SESSIONS";
-    field public static final java.lang.String READ_NETWORK_USAGE_HISTORY = "android.permission.READ_NETWORK_USAGE_HISTORY";
-    field public static final java.lang.String READ_OEM_UNLOCK_STATE = "android.permission.READ_OEM_UNLOCK_STATE";
-    field public static final java.lang.String READ_PRINT_SERVICES = "android.permission.READ_PRINT_SERVICES";
-    field public static final java.lang.String READ_PRINT_SERVICE_RECOMMENDATIONS = "android.permission.READ_PRINT_SERVICE_RECOMMENDATIONS";
-    field public static final java.lang.String READ_PRIVILEGED_PHONE_STATE = "android.permission.READ_PRIVILEGED_PHONE_STATE";
-    field public static final java.lang.String READ_RUNTIME_PROFILES = "android.permission.READ_RUNTIME_PROFILES";
-    field public static final java.lang.String READ_SEARCH_INDEXABLES = "android.permission.READ_SEARCH_INDEXABLES";
-    field public static final java.lang.String READ_SYSTEM_UPDATE_INFO = "android.permission.READ_SYSTEM_UPDATE_INFO";
-    field public static final java.lang.String READ_WALLPAPER_INTERNAL = "android.permission.READ_WALLPAPER_INTERNAL";
-    field public static final java.lang.String READ_WIFI_CREDENTIAL = "android.permission.READ_WIFI_CREDENTIAL";
-    field public static final java.lang.String REAL_GET_TASKS = "android.permission.REAL_GET_TASKS";
-    field public static final java.lang.String RECEIVE_DATA_ACTIVITY_CHANGE = "android.permission.RECEIVE_DATA_ACTIVITY_CHANGE";
-    field public static final java.lang.String RECEIVE_DEVICE_CUSTOMIZATION_READY = "android.permission.RECEIVE_DEVICE_CUSTOMIZATION_READY";
-    field public static final java.lang.String RECEIVE_EMERGENCY_BROADCAST = "android.permission.RECEIVE_EMERGENCY_BROADCAST";
-    field public static final java.lang.String RECEIVE_WIFI_CREDENTIAL_CHANGE = "android.permission.RECEIVE_WIFI_CREDENTIAL_CHANGE";
-    field public static final java.lang.String RECOVERY = "android.permission.RECOVERY";
-    field public static final java.lang.String RECOVER_KEYSTORE = "android.permission.RECOVER_KEYSTORE";
-    field public static final java.lang.String REGISTER_CALL_PROVIDER = "android.permission.REGISTER_CALL_PROVIDER";
-    field public static final java.lang.String REGISTER_CONNECTION_MANAGER = "android.permission.REGISTER_CONNECTION_MANAGER";
-    field public static final java.lang.String REGISTER_SIM_SUBSCRIPTION = "android.permission.REGISTER_SIM_SUBSCRIPTION";
-    field public static final java.lang.String REMOTE_DISPLAY_PROVIDER = "android.permission.REMOTE_DISPLAY_PROVIDER";
-    field public static final java.lang.String REMOVE_DRM_CERTIFICATES = "android.permission.REMOVE_DRM_CERTIFICATES";
-    field public static final java.lang.String REMOVE_TASKS = "android.permission.REMOVE_TASKS";
-    field public static final java.lang.String RESET_PASSWORD = "android.permission.RESET_PASSWORD";
-    field public static final java.lang.String RESTRICTED_VR_ACCESS = "android.permission.RESTRICTED_VR_ACCESS";
-    field public static final java.lang.String RETRIEVE_WINDOW_CONTENT = "android.permission.RETRIEVE_WINDOW_CONTENT";
-    field public static final java.lang.String REVOKE_RUNTIME_PERMISSIONS = "android.permission.REVOKE_RUNTIME_PERMISSIONS";
-    field public static final java.lang.String SCORE_NETWORKS = "android.permission.SCORE_NETWORKS";
-    field public static final java.lang.String SEND_DEVICE_CUSTOMIZATION_READY = "android.permission.SEND_DEVICE_CUSTOMIZATION_READY";
-    field public static final java.lang.String SEND_SHOW_SUSPENDED_APP_DETAILS = "android.permission.SEND_SHOW_SUSPENDED_APP_DETAILS";
-    field public static final java.lang.String SEND_SMS_NO_CONFIRMATION = "android.permission.SEND_SMS_NO_CONFIRMATION";
-    field public static final java.lang.String SERIAL_PORT = "android.permission.SERIAL_PORT";
-    field public static final java.lang.String SET_ACTIVITY_WATCHER = "android.permission.SET_ACTIVITY_WATCHER";
-    field public static final java.lang.String SET_HARMFUL_APP_WARNINGS = "android.permission.SET_HARMFUL_APP_WARNINGS";
-    field public static final java.lang.String SET_MEDIA_KEY_LISTENER = "android.permission.SET_MEDIA_KEY_LISTENER";
-    field public static final java.lang.String SET_ORIENTATION = "android.permission.SET_ORIENTATION";
-    field public static final java.lang.String SET_POINTER_SPEED = "android.permission.SET_POINTER_SPEED";
-    field public static final java.lang.String SET_SCREEN_COMPATIBILITY = "android.permission.SET_SCREEN_COMPATIBILITY";
-    field public static final java.lang.String SET_VOLUME_KEY_LONG_PRESS_LISTENER = "android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER";
-    field public static final java.lang.String SET_WALLPAPER_COMPONENT = "android.permission.SET_WALLPAPER_COMPONENT";
-    field public static final java.lang.String SHOW_KEYGUARD_MESSAGE = "android.permission.SHOW_KEYGUARD_MESSAGE";
-    field public static final java.lang.String SHUTDOWN = "android.permission.SHUTDOWN";
-    field public static final java.lang.String STOP_APP_SWITCHES = "android.permission.STOP_APP_SWITCHES";
-    field public static final java.lang.String SUBSTITUTE_NOTIFICATION_APP_NAME = "android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME";
-    field public static final java.lang.String SUSPEND_APPS = "android.permission.SUSPEND_APPS";
-    field public static final java.lang.String TETHER_PRIVILEGED = "android.permission.TETHER_PRIVILEGED";
-    field public static final java.lang.String TV_INPUT_HARDWARE = "android.permission.TV_INPUT_HARDWARE";
-    field public static final java.lang.String TV_VIRTUAL_REMOTE_CONTROLLER = "android.permission.TV_VIRTUAL_REMOTE_CONTROLLER";
-    field public static final java.lang.String UNLIMITED_SHORTCUTS_API_CALLS = "android.permission.UNLIMITED_SHORTCUTS_API_CALLS";
-    field public static final java.lang.String UPDATE_APP_OPS_STATS = "android.permission.UPDATE_APP_OPS_STATS";
-    field public static final java.lang.String UPDATE_LOCK = "android.permission.UPDATE_LOCK";
-    field public static final java.lang.String UPDATE_TIME_ZONE_RULES = "android.permission.UPDATE_TIME_ZONE_RULES";
-    field public static final java.lang.String USER_ACTIVITY = "android.permission.USER_ACTIVITY";
-    field public static final java.lang.String USE_RESERVED_DISK = "android.permission.USE_RESERVED_DISK";
-    field public static final java.lang.String WRITE_DEVICE_CONFIG = "android.permission.WRITE_DEVICE_CONFIG";
-    field public static final java.lang.String WRITE_DREAM_STATE = "android.permission.WRITE_DREAM_STATE";
-    field public static final java.lang.String WRITE_EMBEDDED_SUBSCRIPTIONS = "android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS";
-    field public static final java.lang.String WRITE_MEDIA_STORAGE = "android.permission.WRITE_MEDIA_STORAGE";
-    field public static final java.lang.String WRITE_OBB = "android.permission.WRITE_OBB";
+    field public static final String ACCESS_AMBIENT_LIGHT_STATS = "android.permission.ACCESS_AMBIENT_LIGHT_STATS";
+    field public static final String ACCESS_BROADCAST_RADIO = "android.permission.ACCESS_BROADCAST_RADIO";
+    field public static final String ACCESS_CACHE_FILESYSTEM = "android.permission.ACCESS_CACHE_FILESYSTEM";
+    field public static final String ACCESS_DRM_CERTIFICATES = "android.permission.ACCESS_DRM_CERTIFICATES";
+    field @Deprecated public static final String ACCESS_FM_RADIO = "android.permission.ACCESS_FM_RADIO";
+    field public static final String ACCESS_INSTANT_APPS = "android.permission.ACCESS_INSTANT_APPS";
+    field public static final String ACCESS_MOCK_LOCATION = "android.permission.ACCESS_MOCK_LOCATION";
+    field public static final String ACCESS_MTP = "android.permission.ACCESS_MTP";
+    field public static final String ACCESS_NETWORK_CONDITIONS = "android.permission.ACCESS_NETWORK_CONDITIONS";
+    field public static final String ACCESS_NOTIFICATIONS = "android.permission.ACCESS_NOTIFICATIONS";
+    field public static final String ACCESS_SHORTCUTS = "android.permission.ACCESS_SHORTCUTS";
+    field public static final String ACCESS_SURFACE_FLINGER = "android.permission.ACCESS_SURFACE_FLINGER";
+    field public static final String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING";
+    field public static final String ALLOCATE_AGGRESSIVE = "android.permission.ALLOCATE_AGGRESSIVE";
+    field public static final String ALLOW_ANY_CODEC_FOR_PLAYBACK = "android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK";
+    field public static final String AMBIENT_WALLPAPER = "android.permission.AMBIENT_WALLPAPER";
+    field public static final String BACKUP = "android.permission.BACKUP";
+    field public static final String BIND_ATTENTION_SERVICE = "android.permission.BIND_ATTENTION_SERVICE";
+    field public static final String BIND_AUGMENTED_AUTOFILL_SERVICE = "android.permission.BIND_AUGMENTED_AUTOFILL_SERVICE";
+    field @Deprecated public static final String BIND_CONNECTION_SERVICE = "android.permission.BIND_CONNECTION_SERVICE";
+    field public static final String BIND_CONTENT_CAPTURE_SERVICE = "android.permission.BIND_CONTENT_CAPTURE_SERVICE";
+    field public static final String BIND_DIRECTORY_SEARCH = "android.permission.BIND_DIRECTORY_SEARCH";
+    field public static final String BIND_EUICC_SERVICE = "android.permission.BIND_EUICC_SERVICE";
+    field public static final String BIND_IMS_SERVICE = "android.permission.BIND_IMS_SERVICE";
+    field public static final String BIND_KEYGUARD_APPWIDGET = "android.permission.BIND_KEYGUARD_APPWIDGET";
+    field public static final String BIND_NETWORK_RECOMMENDATION_SERVICE = "android.permission.BIND_NETWORK_RECOMMENDATION_SERVICE";
+    field public static final String BIND_NOTIFICATION_ASSISTANT_SERVICE = "android.permission.BIND_NOTIFICATION_ASSISTANT_SERVICE";
+    field public static final String BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE = "android.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE";
+    field public static final String BIND_PRINT_RECOMMENDATION_SERVICE = "android.permission.BIND_PRINT_RECOMMENDATION_SERVICE";
+    field public static final String BIND_RESOLVER_RANKER_SERVICE = "android.permission.BIND_RESOLVER_RANKER_SERVICE";
+    field public static final String BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE = "android.permission.BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE";
+    field public static final String BIND_SETTINGS_SUGGESTIONS_SERVICE = "android.permission.BIND_SETTINGS_SUGGESTIONS_SERVICE";
+    field public static final String BIND_SOUND_TRIGGER_DETECTION_SERVICE = "android.permission.BIND_SOUND_TRIGGER_DETECTION_SERVICE";
+    field public static final String BIND_TELEPHONY_DATA_SERVICE = "android.permission.BIND_TELEPHONY_DATA_SERVICE";
+    field public static final String BIND_TELEPHONY_NETWORK_SERVICE = "android.permission.BIND_TELEPHONY_NETWORK_SERVICE";
+    field public static final String BIND_TEXTCLASSIFIER_SERVICE = "android.permission.BIND_TEXTCLASSIFIER_SERVICE";
+    field public static final String BIND_TRUST_AGENT = "android.permission.BIND_TRUST_AGENT";
+    field public static final String BIND_TV_REMOTE_SERVICE = "android.permission.BIND_TV_REMOTE_SERVICE";
+    field public static final String BRICK = "android.permission.BRICK";
+    field public static final String BRIGHTNESS_SLIDER_USAGE = "android.permission.BRIGHTNESS_SLIDER_USAGE";
+    field @Deprecated public static final String BROADCAST_NETWORK_PRIVILEGED = "android.permission.BROADCAST_NETWORK_PRIVILEGED";
+    field public static final String CAMERA_DISABLE_TRANSMIT_LED = "android.permission.CAMERA_DISABLE_TRANSMIT_LED";
+    field public static final String CAPTURE_AUDIO_HOTWORD = "android.permission.CAPTURE_AUDIO_HOTWORD";
+    field public static final String CAPTURE_TV_INPUT = "android.permission.CAPTURE_TV_INPUT";
+    field public static final String CHANGE_APP_IDLE_STATE = "android.permission.CHANGE_APP_IDLE_STATE";
+    field public static final String CHANGE_DEVICE_IDLE_TEMP_WHITELIST = "android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST";
+    field public static final String CLEAR_APP_USER_DATA = "android.permission.CLEAR_APP_USER_DATA";
+    field public static final String CONFIGURE_DISPLAY_BRIGHTNESS = "android.permission.CONFIGURE_DISPLAY_BRIGHTNESS";
+    field public static final String CONNECTIVITY_INTERNAL = "android.permission.CONNECTIVITY_INTERNAL";
+    field public static final String CONNECTIVITY_USE_RESTRICTED_NETWORKS = "android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS";
+    field public static final String CONTROL_DISPLAY_COLOR_TRANSFORMS = "android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS";
+    field public static final String CONTROL_DISPLAY_SATURATION = "android.permission.CONTROL_DISPLAY_SATURATION";
+    field public static final String CONTROL_INCALL_EXPERIENCE = "android.permission.CONTROL_INCALL_EXPERIENCE";
+    field public static final String CONTROL_KEYGUARD_SECURE_NOTIFICATIONS = "android.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS";
+    field public static final String CONTROL_VPN = "android.permission.CONTROL_VPN";
+    field public static final String CRYPT_KEEPER = "android.permission.CRYPT_KEEPER";
+    field public static final String DEVICE_POWER = "android.permission.DEVICE_POWER";
+    field public static final String DISPATCH_PROVISIONING_MESSAGE = "android.permission.DISPATCH_PROVISIONING_MESSAGE";
+    field public static final String FORCE_BACK = "android.permission.FORCE_BACK";
+    field public static final String FORCE_STOP_PACKAGES = "android.permission.FORCE_STOP_PACKAGES";
+    field public static final String GET_APP_OPS_STATS = "android.permission.GET_APP_OPS_STATS";
+    field public static final String GET_PROCESS_STATE_AND_OOM_SCORE = "android.permission.GET_PROCESS_STATE_AND_OOM_SCORE";
+    field public static final String GET_RUNTIME_PERMISSIONS = "android.permission.GET_RUNTIME_PERMISSIONS";
+    field public static final String GET_TOP_ACTIVITY_INFO = "android.permission.GET_TOP_ACTIVITY_INFO";
+    field public static final String GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS = "android.permission.GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS";
+    field public static final String GRANT_RUNTIME_PERMISSIONS = "android.permission.GRANT_RUNTIME_PERMISSIONS";
+    field public static final String HARDWARE_TEST = "android.permission.HARDWARE_TEST";
+    field public static final String HDMI_CEC = "android.permission.HDMI_CEC";
+    field public static final String HIDE_NON_SYSTEM_OVERLAY_WINDOWS = "android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS";
+    field public static final String INJECT_EVENTS = "android.permission.INJECT_EVENTS";
+    field public static final String INSTALL_GRANT_RUNTIME_PERMISSIONS = "android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS";
+    field public static final String INSTALL_PACKAGE_UPDATES = "android.permission.INSTALL_PACKAGE_UPDATES";
+    field public static final String INSTALL_SELF_UPDATES = "android.permission.INSTALL_SELF_UPDATES";
+    field public static final String INTENT_FILTER_VERIFICATION_AGENT = "android.permission.INTENT_FILTER_VERIFICATION_AGENT";
+    field public static final String INTERACT_ACROSS_PROFILES = "android.permission.INTERACT_ACROSS_PROFILES";
+    field public static final String INTERACT_ACROSS_USERS = "android.permission.INTERACT_ACROSS_USERS";
+    field public static final String INTERACT_ACROSS_USERS_FULL = "android.permission.INTERACT_ACROSS_USERS_FULL";
+    field public static final String INTERNAL_SYSTEM_WINDOW = "android.permission.INTERNAL_SYSTEM_WINDOW";
+    field public static final String INVOKE_CARRIER_SETUP = "android.permission.INVOKE_CARRIER_SETUP";
+    field public static final String KILL_UID = "android.permission.KILL_UID";
+    field public static final String LOCAL_MAC_ADDRESS = "android.permission.LOCAL_MAC_ADDRESS";
+    field public static final String LOCK_DEVICE = "android.permission.LOCK_DEVICE";
+    field public static final String LOOP_RADIO = "android.permission.LOOP_RADIO";
+    field public static final String MANAGE_ACCESSIBILITY = "android.permission.MANAGE_ACCESSIBILITY";
+    field public static final String MANAGE_ACTIVITY_STACKS = "android.permission.MANAGE_ACTIVITY_STACKS";
+    field public static final String MANAGE_APP_OPS_RESTRICTIONS = "android.permission.MANAGE_APP_OPS_RESTRICTIONS";
+    field public static final String MANAGE_APP_PREDICTIONS = "android.permission.MANAGE_APP_PREDICTIONS";
+    field public static final String MANAGE_APP_TOKENS = "android.permission.MANAGE_APP_TOKENS";
+    field public static final String MANAGE_AUTO_FILL = "android.permission.MANAGE_AUTO_FILL";
+    field public static final String MANAGE_CARRIER_OEM_UNLOCK_STATE = "android.permission.MANAGE_CARRIER_OEM_UNLOCK_STATE";
+    field public static final String MANAGE_CA_CERTIFICATES = "android.permission.MANAGE_CA_CERTIFICATES";
+    field public static final String MANAGE_CONTENT_CAPTURE = "android.permission.MANAGE_CONTENT_CAPTURE";
+    field public static final String MANAGE_CONTENT_SUGGESTIONS = "android.permission.MANAGE_CONTENT_SUGGESTIONS";
+    field public static final String MANAGE_DEBUGGING = "android.permission.MANAGE_DEBUGGING";
+    field public static final String MANAGE_IPSEC_TUNNELS = "android.permission.MANAGE_IPSEC_TUNNELS";
+    field public static final String MANAGE_ROLE_HOLDERS = "android.permission.MANAGE_ROLE_HOLDERS";
+    field public static final String MANAGE_ROLLBACKS = "android.permission.MANAGE_ROLLBACKS";
+    field public static final String MANAGE_SENSOR_PRIVACY = "android.permission.MANAGE_SENSOR_PRIVACY";
+    field public static final String MANAGE_SOUND_TRIGGER = "android.permission.MANAGE_SOUND_TRIGGER";
+    field public static final String MANAGE_SUBSCRIPTION_PLANS = "android.permission.MANAGE_SUBSCRIPTION_PLANS";
+    field public static final String MANAGE_USB = "android.permission.MANAGE_USB";
+    field public static final String MANAGE_USERS = "android.permission.MANAGE_USERS";
+    field public static final String MANAGE_USER_OEM_UNLOCK_STATE = "android.permission.MANAGE_USER_OEM_UNLOCK_STATE";
+    field public static final String MODIFY_APPWIDGET_BIND_PERMISSIONS = "android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS";
+    field public static final String MODIFY_AUDIO_ROUTING = "android.permission.MODIFY_AUDIO_ROUTING";
+    field public static final String MODIFY_CELL_BROADCASTS = "android.permission.MODIFY_CELL_BROADCASTS";
+    field public static final String MODIFY_DAY_NIGHT_MODE = "android.permission.MODIFY_DAY_NIGHT_MODE";
+    field @Deprecated public static final String MODIFY_NETWORK_ACCOUNTING = "android.permission.MODIFY_NETWORK_ACCOUNTING";
+    field public static final String MODIFY_PARENTAL_CONTROLS = "android.permission.MODIFY_PARENTAL_CONTROLS";
+    field public static final String MODIFY_QUIET_MODE = "android.permission.MODIFY_QUIET_MODE";
+    field public static final String MOVE_PACKAGE = "android.permission.MOVE_PACKAGE";
+    field public static final String NETWORK_MANAGED_PROVISIONING = "android.permission.NETWORK_MANAGED_PROVISIONING";
+    field public static final String NETWORK_SETUP_WIZARD = "android.permission.NETWORK_SETUP_WIZARD";
+    field public static final String NOTIFICATION_DURING_SETUP = "android.permission.NOTIFICATION_DURING_SETUP";
+    field public static final String NOTIFY_TV_INPUTS = "android.permission.NOTIFY_TV_INPUTS";
+    field public static final String OBSERVE_APP_USAGE = "android.permission.OBSERVE_APP_USAGE";
+    field public static final String OBSERVE_ROLE_HOLDERS = "android.permission.OBSERVE_ROLE_HOLDERS";
+    field public static final String OVERRIDE_WIFI_CONFIG = "android.permission.OVERRIDE_WIFI_CONFIG";
+    field public static final String PACKAGE_VERIFICATION_AGENT = "android.permission.PACKAGE_VERIFICATION_AGENT";
+    field public static final String PEERS_MAC_ADDRESS = "android.permission.PEERS_MAC_ADDRESS";
+    field public static final String PERFORM_CDMA_PROVISIONING = "android.permission.PERFORM_CDMA_PROVISIONING";
+    field public static final String PERFORM_SIM_ACTIVATION = "android.permission.PERFORM_SIM_ACTIVATION";
+    field public static final String POWER_SAVER = "android.permission.POWER_SAVER";
+    field public static final String PROVIDE_RESOLVER_RANKER_SERVICE = "android.permission.PROVIDE_RESOLVER_RANKER_SERVICE";
+    field public static final String PROVIDE_TRUST_AGENT = "android.permission.PROVIDE_TRUST_AGENT";
+    field public static final String QUERY_TIME_ZONE_RULES = "android.permission.QUERY_TIME_ZONE_RULES";
+    field public static final String READ_CELL_BROADCASTS = "android.permission.READ_CELL_BROADCASTS";
+    field public static final String READ_CONTENT_RATING_SYSTEMS = "android.permission.READ_CONTENT_RATING_SYSTEMS";
+    field public static final String READ_DEVICE_CONFIG = "android.permission.READ_DEVICE_CONFIG";
+    field public static final String READ_DREAM_STATE = "android.permission.READ_DREAM_STATE";
+    field public static final String READ_INSTALL_SESSIONS = "android.permission.READ_INSTALL_SESSIONS";
+    field public static final String READ_NETWORK_USAGE_HISTORY = "android.permission.READ_NETWORK_USAGE_HISTORY";
+    field public static final String READ_OEM_UNLOCK_STATE = "android.permission.READ_OEM_UNLOCK_STATE";
+    field public static final String READ_PRINT_SERVICES = "android.permission.READ_PRINT_SERVICES";
+    field public static final String READ_PRINT_SERVICE_RECOMMENDATIONS = "android.permission.READ_PRINT_SERVICE_RECOMMENDATIONS";
+    field public static final String READ_PRIVILEGED_PHONE_STATE = "android.permission.READ_PRIVILEGED_PHONE_STATE";
+    field public static final String READ_RUNTIME_PROFILES = "android.permission.READ_RUNTIME_PROFILES";
+    field public static final String READ_SEARCH_INDEXABLES = "android.permission.READ_SEARCH_INDEXABLES";
+    field public static final String READ_SYSTEM_UPDATE_INFO = "android.permission.READ_SYSTEM_UPDATE_INFO";
+    field public static final String READ_WALLPAPER_INTERNAL = "android.permission.READ_WALLPAPER_INTERNAL";
+    field public static final String READ_WIFI_CREDENTIAL = "android.permission.READ_WIFI_CREDENTIAL";
+    field public static final String REAL_GET_TASKS = "android.permission.REAL_GET_TASKS";
+    field public static final String RECEIVE_DATA_ACTIVITY_CHANGE = "android.permission.RECEIVE_DATA_ACTIVITY_CHANGE";
+    field public static final String RECEIVE_DEVICE_CUSTOMIZATION_READY = "android.permission.RECEIVE_DEVICE_CUSTOMIZATION_READY";
+    field public static final String RECEIVE_EMERGENCY_BROADCAST = "android.permission.RECEIVE_EMERGENCY_BROADCAST";
+    field public static final String RECEIVE_WIFI_CREDENTIAL_CHANGE = "android.permission.RECEIVE_WIFI_CREDENTIAL_CHANGE";
+    field public static final String RECOVERY = "android.permission.RECOVERY";
+    field public static final String RECOVER_KEYSTORE = "android.permission.RECOVER_KEYSTORE";
+    field public static final String REGISTER_CALL_PROVIDER = "android.permission.REGISTER_CALL_PROVIDER";
+    field public static final String REGISTER_CONNECTION_MANAGER = "android.permission.REGISTER_CONNECTION_MANAGER";
+    field public static final String REGISTER_SIM_SUBSCRIPTION = "android.permission.REGISTER_SIM_SUBSCRIPTION";
+    field public static final String REMOTE_DISPLAY_PROVIDER = "android.permission.REMOTE_DISPLAY_PROVIDER";
+    field public static final String REMOVE_DRM_CERTIFICATES = "android.permission.REMOVE_DRM_CERTIFICATES";
+    field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS";
+    field public static final String RESET_PASSWORD = "android.permission.RESET_PASSWORD";
+    field public static final String RESTRICTED_VR_ACCESS = "android.permission.RESTRICTED_VR_ACCESS";
+    field public static final String RETRIEVE_WINDOW_CONTENT = "android.permission.RETRIEVE_WINDOW_CONTENT";
+    field public static final String REVOKE_RUNTIME_PERMISSIONS = "android.permission.REVOKE_RUNTIME_PERMISSIONS";
+    field public static final String SCORE_NETWORKS = "android.permission.SCORE_NETWORKS";
+    field public static final String SEND_DEVICE_CUSTOMIZATION_READY = "android.permission.SEND_DEVICE_CUSTOMIZATION_READY";
+    field public static final String SEND_SHOW_SUSPENDED_APP_DETAILS = "android.permission.SEND_SHOW_SUSPENDED_APP_DETAILS";
+    field public static final String SEND_SMS_NO_CONFIRMATION = "android.permission.SEND_SMS_NO_CONFIRMATION";
+    field public static final String SERIAL_PORT = "android.permission.SERIAL_PORT";
+    field public static final String SET_ACTIVITY_WATCHER = "android.permission.SET_ACTIVITY_WATCHER";
+    field public static final String SET_HARMFUL_APP_WARNINGS = "android.permission.SET_HARMFUL_APP_WARNINGS";
+    field public static final String SET_MEDIA_KEY_LISTENER = "android.permission.SET_MEDIA_KEY_LISTENER";
+    field public static final String SET_ORIENTATION = "android.permission.SET_ORIENTATION";
+    field public static final String SET_POINTER_SPEED = "android.permission.SET_POINTER_SPEED";
+    field public static final String SET_SCREEN_COMPATIBILITY = "android.permission.SET_SCREEN_COMPATIBILITY";
+    field public static final String SET_VOLUME_KEY_LONG_PRESS_LISTENER = "android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER";
+    field public static final String SET_WALLPAPER_COMPONENT = "android.permission.SET_WALLPAPER_COMPONENT";
+    field public static final String SHOW_KEYGUARD_MESSAGE = "android.permission.SHOW_KEYGUARD_MESSAGE";
+    field public static final String SHUTDOWN = "android.permission.SHUTDOWN";
+    field public static final String STOP_APP_SWITCHES = "android.permission.STOP_APP_SWITCHES";
+    field public static final String SUBSTITUTE_NOTIFICATION_APP_NAME = "android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME";
+    field public static final String SUSPEND_APPS = "android.permission.SUSPEND_APPS";
+    field public static final String TETHER_PRIVILEGED = "android.permission.TETHER_PRIVILEGED";
+    field public static final String TV_INPUT_HARDWARE = "android.permission.TV_INPUT_HARDWARE";
+    field public static final String TV_VIRTUAL_REMOTE_CONTROLLER = "android.permission.TV_VIRTUAL_REMOTE_CONTROLLER";
+    field public static final String UNLIMITED_SHORTCUTS_API_CALLS = "android.permission.UNLIMITED_SHORTCUTS_API_CALLS";
+    field public static final String UPDATE_APP_OPS_STATS = "android.permission.UPDATE_APP_OPS_STATS";
+    field public static final String UPDATE_LOCK = "android.permission.UPDATE_LOCK";
+    field public static final String UPDATE_TIME_ZONE_RULES = "android.permission.UPDATE_TIME_ZONE_RULES";
+    field public static final String USER_ACTIVITY = "android.permission.USER_ACTIVITY";
+    field public static final String USE_RESERVED_DISK = "android.permission.USE_RESERVED_DISK";
+    field public static final String WRITE_DEVICE_CONFIG = "android.permission.WRITE_DEVICE_CONFIG";
+    field public static final String WRITE_DREAM_STATE = "android.permission.WRITE_DREAM_STATE";
+    field public static final String WRITE_EMBEDDED_SUBSCRIPTIONS = "android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS";
+    field public static final String WRITE_MEDIA_STORAGE = "android.permission.WRITE_MEDIA_STORAGE";
+    field public static final String WRITE_OBB = "android.permission.WRITE_OBB";
   }
 
   public static final class Manifest.permission_group {
-    field public static final java.lang.String UNDEFINED = "android.permission-group.UNDEFINED";
+    field public static final String UNDEFINED = "android.permission-group.UNDEFINED";
   }
 
   public static final class R.array {
@@ -250,7 +252,7 @@
 package android.accounts {
 
   public class AccountManager {
-    method public android.accounts.AccountManagerFuture<android.os.Bundle> finishSessionAsUser(android.os.Bundle, android.app.Activity, android.os.UserHandle, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.accounts.AccountManagerFuture<android.os.Bundle> finishSessionAsUser(android.os.Bundle, android.app.Activity, android.os.UserHandle, android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
   }
 
 }
@@ -260,89 +262,89 @@
   public class Activity extends android.view.ContextThemeWrapper implements android.content.ComponentCallbacks2 android.view.KeyEvent.Callback android.view.LayoutInflater.Factory2 android.view.View.OnCreateContextMenuListener android.view.Window.Callback {
     method public void convertFromTranslucent();
     method public boolean convertToTranslucent(android.app.Activity.TranslucentConversionListener, android.app.ActivityOptions);
-    method public deprecated boolean isBackgroundVisibleBehind();
-    method public deprecated void onBackgroundVisibleBehindChanged(boolean);
+    method @Deprecated public boolean isBackgroundVisibleBehind();
+    method @Deprecated public void onBackgroundVisibleBehindChanged(boolean);
     method public void setInheritShowWhenLocked(boolean);
   }
 
-  public static abstract interface Activity.TranslucentConversionListener {
-    method public abstract void onTranslucentConversionComplete(boolean);
+  public static interface Activity.TranslucentConversionListener {
+    method public void onTranslucentConversionComplete(boolean);
   }
 
   public class ActivityManager {
-    method public void addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int);
-    method public void forceStopPackage(java.lang.String);
-    method public static int getCurrentUser();
-    method public int getPackageImportance(java.lang.String);
-    method public int getUidImportance(int);
-    method public void killUid(int, java.lang.String);
-    method public void removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener);
-    method public static void setPersistentVrThread(int);
-    method public boolean switchUser(android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public void addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int);
+    method @RequiresPermission(android.Manifest.permission.FORCE_STOP_PACKAGES) public void forceStopPackage(String);
+    method @RequiresPermission(anyOf={"android.permission.INTERACT_ACROSS_USERS", "android.permission.INTERACT_ACROSS_USERS_FULL"}) public static int getCurrentUser();
+    method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int getPackageImportance(String);
+    method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int getUidImportance(int);
+    method @RequiresPermission(android.Manifest.permission.KILL_UID) public void killUid(int, String);
+    method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public void removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener);
+    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public static void setPersistentVrThread(int);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean switchUser(@NonNull android.os.UserHandle);
   }
 
-  public static abstract interface ActivityManager.OnUidImportanceListener {
-    method public abstract void onUidImportance(int, int);
+  public static interface ActivityManager.OnUidImportanceListener {
+    method public void onUidImportance(int, int);
   }
 
   public class AlarmManager {
-    method public void set(int, long, long, long, android.app.PendingIntent, android.os.WorkSource);
-    method public void set(int, long, long, long, android.app.AlarmManager.OnAlarmListener, android.os.Handler, android.os.WorkSource);
+    method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void set(int, long, long, long, android.app.PendingIntent, android.os.WorkSource);
+    method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void set(int, long, long, long, android.app.AlarmManager.OnAlarmListener, android.os.Handler, android.os.WorkSource);
   }
 
   public class AppOpsManager {
-    method public void getHistoricalOps(int, java.lang.String, java.lang.String[], long, long, java.util.concurrent.Executor, java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>);
-    method public static java.lang.String[] getOpStrs();
-    method public deprecated java.util.List<android.app.AppOpsManager.PackageOps> getOpsForPackage(int, java.lang.String, int[]);
-    method public java.util.List<android.app.AppOpsManager.PackageOps> getOpsForPackage(int, java.lang.String, java.lang.String...);
-    method public java.util.List<android.app.AppOpsManager.PackageOps> getPackagesForOps(java.lang.String[]);
-    method public static int opToDefaultMode(java.lang.String);
-    method public static java.lang.String opToPermission(java.lang.String);
-    method public void setMode(java.lang.String, int, java.lang.String, int);
-    method public void setUidMode(java.lang.String, int, int);
-    field public static final java.lang.String OPSTR_ACCEPT_HANDOVER = "android:accept_handover";
-    field public static final java.lang.String OPSTR_ACCESS_NOTIFICATIONS = "android:access_notifications";
-    field public static final java.lang.String OPSTR_ACTIVATE_VPN = "android:activate_vpn";
-    field public static final java.lang.String OPSTR_ASSIST_SCREENSHOT = "android:assist_screenshot";
-    field public static final java.lang.String OPSTR_ASSIST_STRUCTURE = "android:assist_structure";
-    field public static final java.lang.String OPSTR_AUDIO_ACCESSIBILITY_VOLUME = "android:audio_accessibility_volume";
-    field public static final java.lang.String OPSTR_AUDIO_ALARM_VOLUME = "android:audio_alarm_volume";
-    field public static final java.lang.String OPSTR_AUDIO_BLUETOOTH_VOLUME = "android:audio_bluetooth_volume";
-    field public static final java.lang.String OPSTR_AUDIO_MASTER_VOLUME = "android:audio_master_volume";
-    field public static final java.lang.String OPSTR_AUDIO_MEDIA_VOLUME = "android:audio_media_volume";
-    field public static final java.lang.String OPSTR_AUDIO_NOTIFICATION_VOLUME = "android:audio_notification_volume";
-    field public static final java.lang.String OPSTR_AUDIO_RING_VOLUME = "android:audio_ring_volume";
-    field public static final java.lang.String OPSTR_AUDIO_VOICE_VOLUME = "android:audio_voice_volume";
-    field public static final java.lang.String OPSTR_BIND_ACCESSIBILITY_SERVICE = "android:bind_accessibility_service";
-    field public static final java.lang.String OPSTR_CHANGE_WIFI_STATE = "android:change_wifi_state";
-    field public static final java.lang.String OPSTR_GET_ACCOUNTS = "android:get_accounts";
-    field public static final java.lang.String OPSTR_GPS = "android:gps";
-    field public static final java.lang.String OPSTR_INSTANT_APP_START_FOREGROUND = "android:instant_app_start_foreground";
-    field public static final java.lang.String OPSTR_MANAGE_IPSEC_TUNNELS = "android:manage_ipsec_tunnels";
-    field public static final java.lang.String OPSTR_MUTE_MICROPHONE = "android:mute_microphone";
-    field public static final java.lang.String OPSTR_NEIGHBORING_CELLS = "android:neighboring_cells";
-    field public static final java.lang.String OPSTR_PLAY_AUDIO = "android:play_audio";
-    field public static final java.lang.String OPSTR_POST_NOTIFICATION = "android:post_notification";
-    field public static final java.lang.String OPSTR_PROJECT_MEDIA = "android:project_media";
-    field public static final java.lang.String OPSTR_READ_CLIPBOARD = "android:read_clipboard";
-    field public static final java.lang.String OPSTR_READ_ICC_SMS = "android:read_icc_sms";
-    field public static final java.lang.String OPSTR_RECEIVE_EMERGENCY_BROADCAST = "android:receive_emergency_broadcast";
-    field public static final java.lang.String OPSTR_REQUEST_DELETE_PACKAGES = "android:request_delete_packages";
-    field public static final java.lang.String OPSTR_REQUEST_INSTALL_PACKAGES = "android:request_install_packages";
-    field public static final java.lang.String OPSTR_RUN_ANY_IN_BACKGROUND = "android:run_any_in_background";
-    field public static final java.lang.String OPSTR_RUN_IN_BACKGROUND = "android:run_in_background";
-    field public static final java.lang.String OPSTR_START_FOREGROUND = "android:start_foreground";
-    field public static final java.lang.String OPSTR_TAKE_AUDIO_FOCUS = "android:take_audio_focus";
-    field public static final java.lang.String OPSTR_TAKE_MEDIA_BUTTONS = "android:take_media_buttons";
-    field public static final java.lang.String OPSTR_TOAST_WINDOW = "android:toast_window";
-    field public static final java.lang.String OPSTR_TURN_SCREEN_ON = "android:turn_screen_on";
-    field public static final java.lang.String OPSTR_VIBRATE = "android:vibrate";
-    field public static final java.lang.String OPSTR_WAKE_LOCK = "android:wake_lock";
-    field public static final java.lang.String OPSTR_WIFI_SCAN = "android:wifi_scan";
-    field public static final java.lang.String OPSTR_WRITE_CLIPBOARD = "android:write_clipboard";
-    field public static final java.lang.String OPSTR_WRITE_ICC_SMS = "android:write_icc_sms";
-    field public static final java.lang.String OPSTR_WRITE_SMS = "android:write_sms";
-    field public static final java.lang.String OPSTR_WRITE_WALLPAPER = "android:write_wallpaper";
+    method @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public void getHistoricalOps(int, @Nullable String, @Nullable String[], long, long, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>);
+    method public static String[] getOpStrs();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.app.AppOpsManager.PackageOps> getOpsForPackage(int, String, int[]);
+    method @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.app.AppOpsManager.PackageOps> getOpsForPackage(int, @NonNull String, @Nullable java.lang.String...);
+    method @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.app.AppOpsManager.PackageOps> getPackagesForOps(@Nullable String[]);
+    method public static int opToDefaultMode(@NonNull String);
+    method @Nullable public static String opToPermission(@NonNull String);
+    method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setMode(String, int, String, int);
+    method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setUidMode(String, int, int);
+    field public static final String OPSTR_ACCEPT_HANDOVER = "android:accept_handover";
+    field public static final String OPSTR_ACCESS_NOTIFICATIONS = "android:access_notifications";
+    field public static final String OPSTR_ACTIVATE_VPN = "android:activate_vpn";
+    field public static final String OPSTR_ASSIST_SCREENSHOT = "android:assist_screenshot";
+    field public static final String OPSTR_ASSIST_STRUCTURE = "android:assist_structure";
+    field public static final String OPSTR_AUDIO_ACCESSIBILITY_VOLUME = "android:audio_accessibility_volume";
+    field public static final String OPSTR_AUDIO_ALARM_VOLUME = "android:audio_alarm_volume";
+    field public static final String OPSTR_AUDIO_BLUETOOTH_VOLUME = "android:audio_bluetooth_volume";
+    field public static final String OPSTR_AUDIO_MASTER_VOLUME = "android:audio_master_volume";
+    field public static final String OPSTR_AUDIO_MEDIA_VOLUME = "android:audio_media_volume";
+    field public static final String OPSTR_AUDIO_NOTIFICATION_VOLUME = "android:audio_notification_volume";
+    field public static final String OPSTR_AUDIO_RING_VOLUME = "android:audio_ring_volume";
+    field public static final String OPSTR_AUDIO_VOICE_VOLUME = "android:audio_voice_volume";
+    field public static final String OPSTR_BIND_ACCESSIBILITY_SERVICE = "android:bind_accessibility_service";
+    field public static final String OPSTR_CHANGE_WIFI_STATE = "android:change_wifi_state";
+    field public static final String OPSTR_GET_ACCOUNTS = "android:get_accounts";
+    field public static final String OPSTR_GPS = "android:gps";
+    field public static final String OPSTR_INSTANT_APP_START_FOREGROUND = "android:instant_app_start_foreground";
+    field public static final String OPSTR_MANAGE_IPSEC_TUNNELS = "android:manage_ipsec_tunnels";
+    field public static final String OPSTR_MUTE_MICROPHONE = "android:mute_microphone";
+    field public static final String OPSTR_NEIGHBORING_CELLS = "android:neighboring_cells";
+    field public static final String OPSTR_PLAY_AUDIO = "android:play_audio";
+    field public static final String OPSTR_POST_NOTIFICATION = "android:post_notification";
+    field public static final String OPSTR_PROJECT_MEDIA = "android:project_media";
+    field public static final String OPSTR_READ_CLIPBOARD = "android:read_clipboard";
+    field public static final String OPSTR_READ_ICC_SMS = "android:read_icc_sms";
+    field public static final String OPSTR_RECEIVE_EMERGENCY_BROADCAST = "android:receive_emergency_broadcast";
+    field public static final String OPSTR_REQUEST_DELETE_PACKAGES = "android:request_delete_packages";
+    field public static final String OPSTR_REQUEST_INSTALL_PACKAGES = "android:request_install_packages";
+    field public static final String OPSTR_RUN_ANY_IN_BACKGROUND = "android:run_any_in_background";
+    field public static final String OPSTR_RUN_IN_BACKGROUND = "android:run_in_background";
+    field public static final String OPSTR_START_FOREGROUND = "android:start_foreground";
+    field public static final String OPSTR_TAKE_AUDIO_FOCUS = "android:take_audio_focus";
+    field public static final String OPSTR_TAKE_MEDIA_BUTTONS = "android:take_media_buttons";
+    field public static final String OPSTR_TOAST_WINDOW = "android:toast_window";
+    field public static final String OPSTR_TURN_SCREEN_ON = "android:turn_screen_on";
+    field public static final String OPSTR_VIBRATE = "android:vibrate";
+    field public static final String OPSTR_WAKE_LOCK = "android:wake_lock";
+    field public static final String OPSTR_WIFI_SCAN = "android:wifi_scan";
+    field public static final String OPSTR_WRITE_CLIPBOARD = "android:write_clipboard";
+    field public static final String OPSTR_WRITE_ICC_SMS = "android:write_icc_sms";
+    field public static final String OPSTR_WRITE_SMS = "android:write_sms";
+    field public static final String OPSTR_WRITE_WALLPAPER = "android:write_wallpaper";
     field public static final int UID_STATE_BACKGROUND = 4; // 0x4
     field public static final int UID_STATE_CACHED = 5; // 0x5
     field public static final int UID_STATE_FOREGROUND = 3; // 0x3
@@ -361,7 +363,7 @@
     method public long getForegroundAccessCount();
     method public long getForegroundAccessDuration();
     method public long getForegroundRejectCount();
-    method public java.lang.String getOpName();
+    method @NonNull public String getOpName();
     method public long getRejectCount(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalOp> CREATOR;
@@ -372,27 +374,27 @@
     method public long getBeginTimeMillis();
     method public long getEndTimeMillis();
     method public int getUidCount();
-    method public android.app.AppOpsManager.HistoricalUidOps getUidOps(int);
-    method public android.app.AppOpsManager.HistoricalUidOps getUidOpsAt(int);
+    method @Nullable public android.app.AppOpsManager.HistoricalUidOps getUidOps(int);
+    method @NonNull public android.app.AppOpsManager.HistoricalUidOps getUidOpsAt(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalOps> CREATOR;
   }
 
   public static final class AppOpsManager.HistoricalPackageOps implements android.os.Parcelable {
     method public int describeContents();
-    method public android.app.AppOpsManager.HistoricalOp getOp(java.lang.String);
-    method public android.app.AppOpsManager.HistoricalOp getOpAt(int);
+    method @Nullable public android.app.AppOpsManager.HistoricalOp getOp(@NonNull String);
+    method @NonNull public android.app.AppOpsManager.HistoricalOp getOpAt(int);
     method public int getOpCount();
-    method public java.lang.String getPackageName();
-    method public void writeToParcel(android.os.Parcel, int);
+    method @NonNull public String getPackageName();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalPackageOps> CREATOR;
   }
 
   public static final class AppOpsManager.HistoricalUidOps implements android.os.Parcelable {
     method public int describeContents();
     method public int getPackageCount();
-    method public android.app.AppOpsManager.HistoricalPackageOps getPackageOps(java.lang.String);
-    method public android.app.AppOpsManager.HistoricalPackageOps getPackageOpsAt(int);
+    method @Nullable public android.app.AppOpsManager.HistoricalPackageOps getPackageOps(@NonNull String);
+    method @NonNull public android.app.AppOpsManager.HistoricalPackageOps getPackageOpsAt(int);
     method public int getUid();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalUidOps> CREATOR;
@@ -408,8 +410,8 @@
     method public long getLastRejectForegroundTime();
     method public long getLastRejectTime();
     method public int getMode();
-    method public java.lang.String getOpStr();
-    method public java.lang.String getProxyPackageName();
+    method public String getOpStr();
+    method public String getProxyPackageName();
     method public int getProxyUid();
     method public boolean isRunning();
     method public void writeToParcel(android.os.Parcel, int);
@@ -419,7 +421,7 @@
   public static final class AppOpsManager.PackageOps implements android.os.Parcelable {
     method public int describeContents();
     method public java.util.List<android.app.AppOpsManager.OpEntry> getOps();
-    method public java.lang.String getPackageName();
+    method public String getPackageName();
     method public int getUid();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.AppOpsManager.PackageOps> CREATOR;
@@ -428,24 +430,24 @@
   public class BroadcastOptions {
     method public static android.app.BroadcastOptions makeBasic();
     method public void setDontSendToRestrictedApps(boolean);
-    method public void setTemporaryAppWhitelistDuration(long);
+    method @RequiresPermission(android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST) public void setTemporaryAppWhitelistDuration(long);
     method public android.os.Bundle toBundle();
   }
 
   public class DownloadManager {
-    field public static final java.lang.String ACTION_DOWNLOAD_COMPLETED = "android.intent.action.DOWNLOAD_COMPLETED";
+    field public static final String ACTION_DOWNLOAD_COMPLETED = "android.intent.action.DOWNLOAD_COMPLETED";
   }
 
   public abstract class InstantAppResolverService extends android.app.Service {
     ctor public InstantAppResolverService();
     method public final void attachBaseContext(android.content.Context);
     method public final android.os.IBinder onBind(android.content.Intent);
-    method public deprecated void onGetInstantAppIntentFilter(int[], java.lang.String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
-    method public deprecated void onGetInstantAppIntentFilter(android.content.Intent, int[], java.lang.String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
-    method public void onGetInstantAppIntentFilter(android.content.Intent, int[], android.os.UserHandle, java.lang.String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
-    method public deprecated void onGetInstantAppResolveInfo(int[], java.lang.String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
-    method public deprecated void onGetInstantAppResolveInfo(android.content.Intent, int[], java.lang.String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
-    method public void onGetInstantAppResolveInfo(android.content.Intent, int[], android.os.UserHandle, java.lang.String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
+    method @Deprecated public void onGetInstantAppIntentFilter(int[], String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
+    method @Deprecated public void onGetInstantAppIntentFilter(android.content.Intent, int[], String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
+    method public void onGetInstantAppIntentFilter(android.content.Intent, int[], android.os.UserHandle, String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
+    method @Deprecated public void onGetInstantAppResolveInfo(int[], String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
+    method @Deprecated public void onGetInstantAppResolveInfo(android.content.Intent, int[], String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
+    method public void onGetInstantAppResolveInfo(android.content.Intent, int[], android.os.UserHandle, String, android.app.InstantAppResolverService.InstantAppResolutionCallback);
   }
 
   public static final class InstantAppResolverService.InstantAppResolutionCallback {
@@ -453,18 +455,18 @@
   }
 
   public class KeyguardManager {
-    method public android.content.Intent createConfirmFactoryResetCredentialIntent(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence);
-    method public boolean getPrivateNotificationsAllowed();
-    method public void requestDismissKeyguard(android.app.Activity, java.lang.CharSequence, android.app.KeyguardManager.KeyguardDismissCallback);
-    method public void setPrivateNotificationsAllowed(boolean);
+    method public android.content.Intent createConfirmFactoryResetCredentialIntent(CharSequence, CharSequence, CharSequence);
+    method @RequiresPermission(android.Manifest.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS) public boolean getPrivateNotificationsAllowed();
+    method @RequiresPermission(android.Manifest.permission.SHOW_KEYGUARD_MESSAGE) public void requestDismissKeyguard(@NonNull android.app.Activity, @Nullable CharSequence, @Nullable android.app.KeyguardManager.KeyguardDismissCallback);
+    method @RequiresPermission(android.Manifest.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS) public void setPrivateNotificationsAllowed(boolean);
   }
 
   public class Notification implements android.os.Parcelable {
-    field public static final java.lang.String CATEGORY_CAR_EMERGENCY = "car_emergency";
-    field public static final java.lang.String CATEGORY_CAR_INFORMATION = "car_information";
-    field public static final java.lang.String CATEGORY_CAR_WARNING = "car_warning";
-    field public static final java.lang.String EXTRA_ALLOW_DURING_SETUP = "android.allowDuringSetup";
-    field public static final java.lang.String EXTRA_SUBSTITUTE_APP_NAME = "android.substName";
+    field public static final String CATEGORY_CAR_EMERGENCY = "car_emergency";
+    field public static final String CATEGORY_CAR_INFORMATION = "car_information";
+    field public static final String CATEGORY_CAR_WARNING = "car_warning";
+    field @RequiresPermission(android.Manifest.permission.NOTIFICATION_DURING_SETUP) public static final String EXTRA_ALLOW_DURING_SETUP = "android.allowDuringSetup";
+    field @RequiresPermission(android.Manifest.permission.SUBSTITUTE_NOTIFICATION_APP_NAME) public static final String EXTRA_SUBSTITUTE_APP_NAME = "android.substName";
     field public static final int FLAG_AUTOGROUP_SUMMARY = 1024; // 0x400
   }
 
@@ -472,13 +474,13 @@
     ctor public Notification.TvExtender();
     ctor public Notification.TvExtender(android.app.Notification);
     method public android.app.Notification.Builder extend(android.app.Notification.Builder);
-    method public java.lang.String getChannelId();
+    method public String getChannelId();
     method public android.app.PendingIntent getContentIntent();
     method public android.app.PendingIntent getDeleteIntent();
     method public boolean getSuppressShowOverApps();
     method public boolean isAvailableOnTv();
-    method public android.app.Notification.TvExtender setChannel(java.lang.String);
-    method public android.app.Notification.TvExtender setChannelId(java.lang.String);
+    method public android.app.Notification.TvExtender setChannel(String);
+    method public android.app.Notification.TvExtender setChannelId(String);
     method public android.app.Notification.TvExtender setContentIntent(android.app.PendingIntent);
     method public android.app.Notification.TvExtender setDeleteIntent(android.app.PendingIntent);
     method public android.app.Notification.TvExtender setSuppressShowOverApps(boolean);
@@ -497,36 +499,36 @@
   }
 
   public final class StatsManager {
-    method public void addConfig(long, byte[]) throws android.app.StatsManager.StatsUnavailableException;
-    method public deprecated boolean addConfiguration(long, byte[]);
-    method public deprecated byte[] getData(long);
-    method public deprecated byte[] getMetadata();
-    method public byte[] getReports(long) throws android.app.StatsManager.StatsUnavailableException;
-    method public byte[] getStatsMetadata() throws android.app.StatsManager.StatsUnavailableException;
-    method public void removeConfig(long) throws android.app.StatsManager.StatsUnavailableException;
-    method public deprecated boolean removeConfiguration(long);
-    method public void setBroadcastSubscriber(android.app.PendingIntent, long, long) throws android.app.StatsManager.StatsUnavailableException;
-    method public deprecated boolean setBroadcastSubscriber(long, long, android.app.PendingIntent);
-    method public deprecated boolean setDataFetchOperation(long, android.app.PendingIntent);
-    method public void setFetchReportsOperation(android.app.PendingIntent, long) throws android.app.StatsManager.StatsUnavailableException;
-    field public static final java.lang.String ACTION_STATSD_STARTED = "android.app.action.STATSD_STARTED";
-    field public static final java.lang.String EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES = "android.app.extra.STATS_BROADCAST_SUBSCRIBER_COOKIES";
-    field public static final java.lang.String EXTRA_STATS_CONFIG_KEY = "android.app.extra.STATS_CONFIG_KEY";
-    field public static final java.lang.String EXTRA_STATS_CONFIG_UID = "android.app.extra.STATS_CONFIG_UID";
-    field public static final java.lang.String EXTRA_STATS_DIMENSIONS_VALUE = "android.app.extra.STATS_DIMENSIONS_VALUE";
-    field public static final java.lang.String EXTRA_STATS_SUBSCRIPTION_ID = "android.app.extra.STATS_SUBSCRIPTION_ID";
-    field public static final java.lang.String EXTRA_STATS_SUBSCRIPTION_RULE_ID = "android.app.extra.STATS_SUBSCRIPTION_RULE_ID";
+    method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void addConfig(long, byte[]) throws android.app.StatsManager.StatsUnavailableException;
+    method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean addConfiguration(long, byte[]);
+    method @Deprecated @Nullable @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getData(long);
+    method @Deprecated @Nullable @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getMetadata();
+    method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getReports(long) throws android.app.StatsManager.StatsUnavailableException;
+    method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getStatsMetadata() throws android.app.StatsManager.StatsUnavailableException;
+    method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void removeConfig(long) throws android.app.StatsManager.StatsUnavailableException;
+    method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean removeConfiguration(long);
+    method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void setBroadcastSubscriber(android.app.PendingIntent, long, long) throws android.app.StatsManager.StatsUnavailableException;
+    method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean setBroadcastSubscriber(long, long, android.app.PendingIntent);
+    method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean setDataFetchOperation(long, android.app.PendingIntent);
+    method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void setFetchReportsOperation(android.app.PendingIntent, long) throws android.app.StatsManager.StatsUnavailableException;
+    field public static final String ACTION_STATSD_STARTED = "android.app.action.STATSD_STARTED";
+    field public static final String EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES = "android.app.extra.STATS_BROADCAST_SUBSCRIBER_COOKIES";
+    field public static final String EXTRA_STATS_CONFIG_KEY = "android.app.extra.STATS_CONFIG_KEY";
+    field public static final String EXTRA_STATS_CONFIG_UID = "android.app.extra.STATS_CONFIG_UID";
+    field public static final String EXTRA_STATS_DIMENSIONS_VALUE = "android.app.extra.STATS_DIMENSIONS_VALUE";
+    field public static final String EXTRA_STATS_SUBSCRIPTION_ID = "android.app.extra.STATS_SUBSCRIPTION_ID";
+    field public static final String EXTRA_STATS_SUBSCRIPTION_RULE_ID = "android.app.extra.STATS_SUBSCRIPTION_RULE_ID";
   }
 
   public static class StatsManager.StatsUnavailableException extends android.util.AndroidException {
-    ctor public StatsManager.StatsUnavailableException(java.lang.String);
-    ctor public StatsManager.StatsUnavailableException(java.lang.String, java.lang.Throwable);
+    ctor public StatsManager.StatsUnavailableException(String);
+    ctor public StatsManager.StatsUnavailableException(String, Throwable);
   }
 
   public final class Vr2dDisplayProperties implements android.os.Parcelable {
     ctor public Vr2dDisplayProperties(int, int, int);
     method public int describeContents();
-    method public void dump(java.io.PrintWriter, java.lang.String);
+    method public void dump(java.io.PrintWriter, String);
     method public int getAddedFlags();
     method public int getDpi();
     method public int getHeight();
@@ -547,16 +549,16 @@
   }
 
   public class VrManager {
-    method public int getVr2dDisplayId();
-    method public boolean isPersistentVrModeEnabled();
-    method public boolean isVrModeEnabled();
-    method public void registerVrStateCallback(java.util.concurrent.Executor, android.app.VrStateCallback);
-    method public void setAndBindVrCompositor(android.content.ComponentName);
-    method public void setPersistentVrModeEnabled(boolean);
-    method public void setStandbyEnabled(boolean);
-    method public void setVr2dDisplayProperties(android.app.Vr2dDisplayProperties);
-    method public void setVrInputMethod(android.content.ComponentName);
-    method public void unregisterVrStateCallback(android.app.VrStateCallback);
+    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public int getVr2dDisplayId();
+    method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS, "android.permission.ACCESS_VR_STATE"}) public boolean isPersistentVrModeEnabled();
+    method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS, "android.permission.ACCESS_VR_STATE"}) public boolean isVrModeEnabled();
+    method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS, "android.permission.ACCESS_VR_STATE"}) public void registerVrStateCallback(@NonNull java.util.concurrent.Executor, android.app.VrStateCallback);
+    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void setAndBindVrCompositor(android.content.ComponentName);
+    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void setPersistentVrModeEnabled(boolean);
+    method @RequiresPermission("android.permission.ACCESS_VR_MANAGER") public void setStandbyEnabled(boolean);
+    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void setVr2dDisplayProperties(android.app.Vr2dDisplayProperties);
+    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void setVrInputMethod(android.content.ComponentName);
+    method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS, "android.permission.ACCESS_VR_STATE"}) public void unregisterVrStateCallback(android.app.VrStateCallback);
   }
 
   public abstract class VrStateCallback {
@@ -566,7 +568,7 @@
   }
 
   public final class WallpaperColors implements android.os.Parcelable {
-    ctor public WallpaperColors(android.graphics.Color, android.graphics.Color, android.graphics.Color, int);
+    ctor public WallpaperColors(@NonNull android.graphics.Color, @Nullable android.graphics.Color, @Nullable android.graphics.Color, int);
     method public int getColorHints();
     field public static final int HINT_SUPPORTS_DARK_TEXT = 1; // 0x1
     field public static final int HINT_SUPPORTS_DARK_THEME = 2; // 0x2
@@ -577,9 +579,9 @@
   }
 
   public class WallpaperManager {
-    method public void clearWallpaper(int, int);
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public void clearWallpaper(int, int);
     method public void setDisplayOffset(android.os.IBinder, int, int);
-    method public boolean setWallpaperComponent(android.content.ComponentName);
+    method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER_COMPONENT) public boolean setWallpaperComponent(android.content.ComponentName);
   }
 
 }
@@ -587,41 +589,41 @@
 package android.app.admin {
 
   public class DevicePolicyManager {
-    method public java.lang.String getDeviceOwner();
-    method public android.content.ComponentName getDeviceOwnerComponentOnAnyUser();
-    method public java.lang.String getDeviceOwnerNameOnAnyUser();
-    method public java.lang.CharSequence getDeviceOwnerOrganizationName();
-    method public android.os.UserHandle getDeviceOwnerUser();
-    method public java.util.List<java.lang.String> getPermittedAccessibilityServices(int);
-    method public java.util.List<java.lang.String> getPermittedInputMethodsForCurrentUser();
-    method public android.content.ComponentName getProfileOwner() throws java.lang.IllegalArgumentException;
-    method public android.content.ComponentName getProfileOwnerAsUser(android.os.UserHandle);
-    method public java.lang.String getProfileOwnerNameAsUser(int) throws java.lang.IllegalArgumentException;
-    method public int getUserProvisioningState();
+    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String getDeviceOwner();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public android.content.ComponentName getDeviceOwnerComponentOnAnyUser();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String getDeviceOwnerNameOnAnyUser();
+    method @Nullable public CharSequence getDeviceOwnerOrganizationName();
+    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public android.os.UserHandle getDeviceOwnerUser();
+    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public java.util.List<java.lang.String> getPermittedAccessibilityServices(int);
+    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public java.util.List<java.lang.String> getPermittedInputMethodsForCurrentUser();
+    method @Nullable public android.content.ComponentName getProfileOwner() throws java.lang.IllegalArgumentException;
+    method @Nullable @RequiresPermission(value=android.Manifest.permission.INTERACT_ACROSS_USERS, conditional=true) public android.content.ComponentName getProfileOwnerAsUser(@NonNull android.os.UserHandle);
+    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String getProfileOwnerNameAsUser(int) throws java.lang.IllegalArgumentException;
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public int getUserProvisioningState();
     method public boolean isDeviceManaged();
-    method public boolean isDeviceProvisioned();
-    method public boolean isDeviceProvisioningConfigApplied();
-    method public boolean isManagedKiosk();
-    method public boolean isUnattendedManagedKiosk();
-    method public void notifyPendingSystemUpdate(long);
-    method public void notifyPendingSystemUpdate(long, boolean);
-    method public boolean packageHasActiveAdmins(java.lang.String);
-    method public deprecated boolean setActiveProfileOwner(android.content.ComponentName, java.lang.String) throws java.lang.IllegalArgumentException;
-    method public void setDeviceProvisioningConfigApplied();
-    method public void setProfileOwnerCanAccessDeviceIdsForUser(android.content.ComponentName, android.os.UserHandle);
-    field public static final java.lang.String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_ALLOWED = "android.account.DEVICE_OR_PROFILE_OWNER_ALLOWED";
-    field public static final java.lang.String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_DISALLOWED = "android.account.DEVICE_OR_PROFILE_OWNER_DISALLOWED";
-    field public static final java.lang.String ACTION_PROVISION_FINALIZATION = "android.app.action.PROVISION_FINALIZATION";
-    field public static final java.lang.String ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE = "android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE";
-    field public static final java.lang.String ACTION_SET_PROFILE_OWNER = "android.app.action.SET_PROFILE_OWNER";
-    field public static final java.lang.String ACTION_STATE_USER_SETUP_COMPLETE = "android.app.action.STATE_USER_SETUP_COMPLETE";
-    field public static final java.lang.String EXTRA_PROFILE_OWNER_NAME = "android.app.extra.PROFILE_OWNER_NAME";
-    field public static final java.lang.String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_ICON_URI = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_ICON_URI";
-    field public static final java.lang.String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_LABEL = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_LABEL";
-    field public static final java.lang.String EXTRA_PROVISIONING_ORGANIZATION_NAME = "android.app.extra.PROVISIONING_ORGANIZATION_NAME";
-    field public static final java.lang.String EXTRA_PROVISIONING_SUPPORT_URL = "android.app.extra.PROVISIONING_SUPPORT_URL";
-    field public static final java.lang.String EXTRA_PROVISIONING_TRIGGER = "android.app.extra.PROVISIONING_TRIGGER";
-    field public static final java.lang.String EXTRA_RESTRICTION = "android.app.extra.RESTRICTION";
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isDeviceProvisioned();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isDeviceProvisioningConfigApplied();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isManagedKiosk();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isUnattendedManagedKiosk();
+    method @RequiresPermission("android.permission.NOTIFY_PENDING_SYSTEM_UPDATE") public void notifyPendingSystemUpdate(long);
+    method @RequiresPermission("android.permission.NOTIFY_PENDING_SYSTEM_UPDATE") public void notifyPendingSystemUpdate(long, boolean);
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public boolean packageHasActiveAdmins(String);
+    method @Deprecated @RequiresPermission("android.permission.MANAGE_DEVICE_ADMINS") public boolean setActiveProfileOwner(@NonNull android.content.ComponentName, String) throws java.lang.IllegalArgumentException;
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public void setDeviceProvisioningConfigApplied();
+    method public void setProfileOwnerCanAccessDeviceIdsForUser(@NonNull android.content.ComponentName, @NonNull android.os.UserHandle);
+    field public static final String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_ALLOWED = "android.account.DEVICE_OR_PROFILE_OWNER_ALLOWED";
+    field public static final String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_DISALLOWED = "android.account.DEVICE_OR_PROFILE_OWNER_DISALLOWED";
+    field public static final String ACTION_PROVISION_FINALIZATION = "android.app.action.PROVISION_FINALIZATION";
+    field public static final String ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE = "android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE";
+    field public static final String ACTION_SET_PROFILE_OWNER = "android.app.action.SET_PROFILE_OWNER";
+    field public static final String ACTION_STATE_USER_SETUP_COMPLETE = "android.app.action.STATE_USER_SETUP_COMPLETE";
+    field public static final String EXTRA_PROFILE_OWNER_NAME = "android.app.extra.PROFILE_OWNER_NAME";
+    field public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_ICON_URI = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_ICON_URI";
+    field public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_LABEL = "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_LABEL";
+    field public static final String EXTRA_PROVISIONING_ORGANIZATION_NAME = "android.app.extra.PROVISIONING_ORGANIZATION_NAME";
+    field public static final String EXTRA_PROVISIONING_SUPPORT_URL = "android.app.extra.PROVISIONING_SUPPORT_URL";
+    field public static final String EXTRA_PROVISIONING_TRIGGER = "android.app.extra.PROVISIONING_TRIGGER";
+    field public static final String EXTRA_RESTRICTION = "android.app.extra.RESTRICTION";
     field public static final int PROVISIONING_TRIGGER_CLOUD_ENROLLMENT = 1; // 0x1
     field public static final int PROVISIONING_TRIGGER_PERSISTENT_DEVICE_OWNER = 3; // 0x3
     field public static final int PROVISIONING_TRIGGER_QR_CODE = 2; // 0x2
@@ -665,28 +667,28 @@
   }
 
   public class BackupManager {
-    method public void backupNow();
-    method public android.app.backup.RestoreSession beginRestoreSession();
-    method public void cancelBackups();
-    method public long getAvailableRestoreToken(java.lang.String);
-    method public android.content.Intent getConfigurationIntent(java.lang.String);
-    method public java.lang.String getCurrentTransport();
-    method public android.content.ComponentName getCurrentTransportComponent();
-    method public android.content.Intent getDataManagementIntent(java.lang.String);
-    method public java.lang.String getDataManagementLabel(java.lang.String);
-    method public java.lang.String getDestinationString(java.lang.String);
-    method public boolean isAppEligibleForBackup(java.lang.String);
-    method public boolean isBackupEnabled();
-    method public boolean isBackupServiceActive(android.os.UserHandle);
-    method public java.lang.String[] listAllTransports();
-    method public int requestBackup(java.lang.String[], android.app.backup.BackupObserver);
-    method public int requestBackup(java.lang.String[], android.app.backup.BackupObserver, android.app.backup.BackupManagerMonitor, int);
-    method public deprecated int requestRestore(android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor);
-    method public deprecated java.lang.String selectBackupTransport(java.lang.String);
-    method public void selectBackupTransport(android.content.ComponentName, android.app.backup.SelectBackupTransportCallback);
-    method public void setAutoRestore(boolean);
-    method public void setBackupEnabled(boolean);
-    method public void updateTransportAttributes(android.content.ComponentName, java.lang.String, android.content.Intent, java.lang.String, android.content.Intent, java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public void backupNow();
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public android.app.backup.RestoreSession beginRestoreSession();
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public void cancelBackups();
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public long getAvailableRestoreToken(String);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public android.content.Intent getConfigurationIntent(String);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public String getCurrentTransport();
+    method @Nullable @RequiresPermission(android.Manifest.permission.BACKUP) public android.content.ComponentName getCurrentTransportComponent();
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public android.content.Intent getDataManagementIntent(String);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public String getDataManagementLabel(String);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public String getDestinationString(String);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public boolean isAppEligibleForBackup(String);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public boolean isBackupEnabled();
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public boolean isBackupServiceActive(android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public String[] listAllTransports();
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public int requestBackup(String[], android.app.backup.BackupObserver);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public int requestBackup(String[], android.app.backup.BackupObserver, android.app.backup.BackupManagerMonitor, int);
+    method @Deprecated public int requestRestore(android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.BACKUP) public String selectBackupTransport(String);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public void selectBackupTransport(android.content.ComponentName, android.app.backup.SelectBackupTransportCallback);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public void setAutoRestore(boolean);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public void setBackupEnabled(boolean);
+    method @RequiresPermission(android.Manifest.permission.BACKUP) public void updateTransportAttributes(android.content.ComponentName, String, @Nullable android.content.Intent, String, @Nullable android.content.Intent, @Nullable String);
     field public static final int ERROR_AGENT_FAILURE = -1003; // 0xfffffc15
     field public static final int ERROR_BACKUP_CANCELLED = -2003; // 0xfffff82d
     field public static final int ERROR_BACKUP_NOT_ALLOWED = -2001; // 0xfffff82f
@@ -697,28 +699,28 @@
     field public static final int ERROR_TRANSPORT_QUOTA_EXCEEDED = -1005; // 0xfffffc13
     field public static final int ERROR_TRANSPORT_UNAVAILABLE = -1; // 0xffffffff
     field public static final int FLAG_NON_INCREMENTAL_BACKUP = 1; // 0x1
-    field public static final java.lang.String PACKAGE_MANAGER_SENTINEL = "@pm@";
+    field public static final String PACKAGE_MANAGER_SENTINEL = "@pm@";
     field public static final int SUCCESS = 0; // 0x0
   }
 
   public class BackupManagerMonitor {
     ctor public BackupManagerMonitor();
     method public void onEvent(android.os.Bundle);
-    field public static final java.lang.String EXTRA_LOG_CANCEL_ALL = "android.app.backup.extra.LOG_CANCEL_ALL";
-    field public static final java.lang.String EXTRA_LOG_EVENT_CATEGORY = "android.app.backup.extra.LOG_EVENT_CATEGORY";
-    field public static final java.lang.String EXTRA_LOG_EVENT_ID = "android.app.backup.extra.LOG_EVENT_ID";
-    field public static final java.lang.String EXTRA_LOG_EVENT_PACKAGE_LONG_VERSION = "android.app.backup.extra.LOG_EVENT_PACKAGE_FULL_VERSION";
-    field public static final java.lang.String EXTRA_LOG_EVENT_PACKAGE_NAME = "android.app.backup.extra.LOG_EVENT_PACKAGE_NAME";
-    field public static final deprecated java.lang.String EXTRA_LOG_EVENT_PACKAGE_VERSION = "android.app.backup.extra.LOG_EVENT_PACKAGE_VERSION";
-    field public static final java.lang.String EXTRA_LOG_EXCEPTION_FULL_BACKUP = "android.app.backup.extra.LOG_EXCEPTION_FULL_BACKUP";
-    field public static final java.lang.String EXTRA_LOG_ILLEGAL_KEY = "android.app.backup.extra.LOG_ILLEGAL_KEY";
-    field public static final java.lang.String EXTRA_LOG_MANIFEST_PACKAGE_NAME = "android.app.backup.extra.LOG_MANIFEST_PACKAGE_NAME";
-    field public static final java.lang.String EXTRA_LOG_OLD_VERSION = "android.app.backup.extra.LOG_OLD_VERSION";
-    field public static final java.lang.String EXTRA_LOG_POLICY_ALLOW_APKS = "android.app.backup.extra.LOG_POLICY_ALLOW_APKS";
-    field public static final java.lang.String EXTRA_LOG_PREFLIGHT_ERROR = "android.app.backup.extra.LOG_PREFLIGHT_ERROR";
-    field public static final java.lang.String EXTRA_LOG_RESTORE_ANYWAY = "android.app.backup.extra.LOG_RESTORE_ANYWAY";
-    field public static final java.lang.String EXTRA_LOG_RESTORE_VERSION = "android.app.backup.extra.LOG_RESTORE_VERSION";
-    field public static final java.lang.String EXTRA_LOG_WIDGET_PACKAGE_NAME = "android.app.backup.extra.LOG_WIDGET_PACKAGE_NAME";
+    field public static final String EXTRA_LOG_CANCEL_ALL = "android.app.backup.extra.LOG_CANCEL_ALL";
+    field public static final String EXTRA_LOG_EVENT_CATEGORY = "android.app.backup.extra.LOG_EVENT_CATEGORY";
+    field public static final String EXTRA_LOG_EVENT_ID = "android.app.backup.extra.LOG_EVENT_ID";
+    field public static final String EXTRA_LOG_EVENT_PACKAGE_LONG_VERSION = "android.app.backup.extra.LOG_EVENT_PACKAGE_FULL_VERSION";
+    field public static final String EXTRA_LOG_EVENT_PACKAGE_NAME = "android.app.backup.extra.LOG_EVENT_PACKAGE_NAME";
+    field @Deprecated public static final String EXTRA_LOG_EVENT_PACKAGE_VERSION = "android.app.backup.extra.LOG_EVENT_PACKAGE_VERSION";
+    field public static final String EXTRA_LOG_EXCEPTION_FULL_BACKUP = "android.app.backup.extra.LOG_EXCEPTION_FULL_BACKUP";
+    field public static final String EXTRA_LOG_ILLEGAL_KEY = "android.app.backup.extra.LOG_ILLEGAL_KEY";
+    field public static final String EXTRA_LOG_MANIFEST_PACKAGE_NAME = "android.app.backup.extra.LOG_MANIFEST_PACKAGE_NAME";
+    field public static final String EXTRA_LOG_OLD_VERSION = "android.app.backup.extra.LOG_OLD_VERSION";
+    field public static final String EXTRA_LOG_POLICY_ALLOW_APKS = "android.app.backup.extra.LOG_POLICY_ALLOW_APKS";
+    field public static final String EXTRA_LOG_PREFLIGHT_ERROR = "android.app.backup.extra.LOG_PREFLIGHT_ERROR";
+    field public static final String EXTRA_LOG_RESTORE_ANYWAY = "android.app.backup.extra.LOG_RESTORE_ANYWAY";
+    field public static final String EXTRA_LOG_RESTORE_VERSION = "android.app.backup.extra.LOG_RESTORE_VERSION";
+    field public static final String EXTRA_LOG_WIDGET_PACKAGE_NAME = "android.app.backup.extra.LOG_WIDGET_PACKAGE_NAME";
     field public static final int LOG_EVENT_CATEGORY_AGENT = 2; // 0x2
     field public static final int LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY = 3; // 0x3
     field public static final int LOG_EVENT_CATEGORY_TRANSPORT = 1; // 0x1
@@ -769,8 +771,8 @@
   public abstract class BackupObserver {
     ctor public BackupObserver();
     method public void backupFinished(int);
-    method public void onResult(java.lang.String, int);
-    method public void onUpdate(java.lang.String, android.app.backup.BackupProgress);
+    method public void onResult(String, int);
+    method public void onUpdate(String, android.app.backup.BackupProgress);
   }
 
   public class BackupProgress implements android.os.Parcelable {
@@ -789,13 +791,13 @@
     method public int checkFullBackupSize(long);
     method public int clearBackupData(android.content.pm.PackageInfo);
     method public android.content.Intent configurationIntent();
-    method public java.lang.String currentDestinationString();
+    method public String currentDestinationString();
     method public android.content.Intent dataManagementIntent();
-    method public java.lang.String dataManagementLabel();
+    method public String dataManagementLabel();
     method public int finishBackup();
     method public void finishRestore();
     method public android.app.backup.RestoreSet[] getAvailableRestoreSets();
-    method public long getBackupQuota(java.lang.String, boolean);
+    method public long getBackupQuota(String, boolean);
     method public android.os.IBinder getBinder();
     method public long getCurrentRestoreSet();
     method public int getNextFullRestoreDataChunk(android.os.ParcelFileDescriptor);
@@ -803,7 +805,7 @@
     method public int getTransportFlags();
     method public int initializeDevice();
     method public boolean isAppEligibleForBackup(android.content.pm.PackageInfo, boolean);
-    method public java.lang.String name();
+    method public String name();
     method public android.app.backup.RestoreDescription nextRestorePackage();
     method public int performBackup(android.content.pm.PackageInfo, android.os.ParcelFileDescriptor, int);
     method public int performBackup(android.content.pm.PackageInfo, android.os.ParcelFileDescriptor);
@@ -813,10 +815,10 @@
     method public long requestFullBackupTime();
     method public int sendBackupData(int);
     method public int startRestore(long, android.content.pm.PackageInfo[]);
-    method public java.lang.String transportDirName();
+    method public String transportDirName();
     field public static final int AGENT_ERROR = -1003; // 0xfffffc15
     field public static final int AGENT_UNKNOWN = -1004; // 0xfffffc14
-    field public static final java.lang.String EXTRA_TRANSPORT_REGISTRATION = "android.app.backup.extra.TRANSPORT_REGISTRATION";
+    field public static final String EXTRA_TRANSPORT_REGISTRATION = "android.app.backup.extra.TRANSPORT_REGISTRATION";
     field public static final int FLAG_INCREMENTAL = 2; // 0x2
     field public static final int FLAG_NON_INCREMENTAL = 4; // 0x4
     field public static final int FLAG_USER_INITIATED = 1; // 0x1
@@ -830,10 +832,10 @@
   }
 
   public class RestoreDescription implements android.os.Parcelable {
-    ctor public RestoreDescription(java.lang.String, int);
+    ctor public RestoreDescription(String, int);
     method public int describeContents();
     method public int getDataType();
-    method public java.lang.String getPackageName();
+    method public String getPackageName();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.backup.RestoreDescription> CREATOR;
     field public static final android.app.backup.RestoreDescription NO_MORE_PACKAGES;
@@ -851,27 +853,27 @@
     method public int getAvailableRestoreSets(android.app.backup.RestoreObserver);
     method public int restoreAll(long, android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor);
     method public int restoreAll(long, android.app.backup.RestoreObserver);
-    method public int restorePackage(java.lang.String, android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor);
-    method public int restorePackage(java.lang.String, android.app.backup.RestoreObserver);
-    method public int restoreSome(long, android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor, java.lang.String[]);
-    method public int restoreSome(long, android.app.backup.RestoreObserver, java.lang.String[]);
+    method public int restorePackage(String, android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor);
+    method public int restorePackage(String, android.app.backup.RestoreObserver);
+    method public int restoreSome(long, android.app.backup.RestoreObserver, android.app.backup.BackupManagerMonitor, String[]);
+    method public int restoreSome(long, android.app.backup.RestoreObserver, String[]);
   }
 
   public class RestoreSet implements android.os.Parcelable {
     ctor public RestoreSet();
-    ctor public RestoreSet(java.lang.String, java.lang.String, long);
+    ctor public RestoreSet(String, String, long);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.backup.RestoreSet> CREATOR;
-    field public java.lang.String device;
-    field public java.lang.String name;
+    field public String device;
+    field public String name;
     field public long token;
   }
 
   public abstract class SelectBackupTransportCallback {
     ctor public SelectBackupTransportCallback();
     method public void onFailure(int);
-    method public void onSuccess(java.lang.String);
+    method public void onSuccess(String);
   }
 
 }
@@ -887,42 +889,42 @@
   }
 
   public static final class ClassificationsRequest.Builder {
-    ctor public ClassificationsRequest.Builder(java.util.List<android.app.contentsuggestions.ContentSelection>);
+    ctor public ClassificationsRequest.Builder(@NonNull java.util.List<android.app.contentsuggestions.ContentSelection>);
     method public android.app.contentsuggestions.ClassificationsRequest build();
-    method public android.app.contentsuggestions.ClassificationsRequest.Builder setExtras(android.os.Bundle);
+    method public android.app.contentsuggestions.ClassificationsRequest.Builder setExtras(@NonNull android.os.Bundle);
   }
 
   public final class ContentClassification implements android.os.Parcelable {
-    ctor public ContentClassification(java.lang.String, android.os.Bundle);
+    ctor public ContentClassification(@NonNull String, @NonNull android.os.Bundle);
     method public int describeContents();
     method public android.os.Bundle getExtras();
-    method public java.lang.String getId();
+    method public String getId();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.contentsuggestions.ContentClassification> CREATOR;
   }
 
   public final class ContentSelection implements android.os.Parcelable {
-    ctor public ContentSelection(java.lang.String, android.os.Bundle);
+    ctor public ContentSelection(@NonNull String, @NonNull android.os.Bundle);
     method public int describeContents();
     method public android.os.Bundle getExtras();
-    method public java.lang.String getId();
+    method public String getId();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.contentsuggestions.ContentSelection> CREATOR;
   }
 
   public final class ContentSuggestionsManager {
-    method public void classifyContentSelections(android.app.contentsuggestions.ClassificationsRequest, java.util.concurrent.Executor, android.app.contentsuggestions.ContentSuggestionsManager.ClassificationsCallback);
-    method public void notifyInteraction(java.lang.String, android.os.Bundle);
-    method public void provideContextImage(int, android.os.Bundle);
-    method public void suggestContentSelections(android.app.contentsuggestions.SelectionsRequest, java.util.concurrent.Executor, android.app.contentsuggestions.ContentSuggestionsManager.SelectionsCallback);
+    method public void classifyContentSelections(@NonNull android.app.contentsuggestions.ClassificationsRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.contentsuggestions.ContentSuggestionsManager.ClassificationsCallback);
+    method public void notifyInteraction(@NonNull String, @NonNull android.os.Bundle);
+    method public void provideContextImage(int, @NonNull android.os.Bundle);
+    method public void suggestContentSelections(@NonNull android.app.contentsuggestions.SelectionsRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.contentsuggestions.ContentSuggestionsManager.SelectionsCallback);
   }
 
-  public static abstract interface ContentSuggestionsManager.ClassificationsCallback {
-    method public abstract void onContentClassificationsAvailable(int, java.util.List<android.app.contentsuggestions.ContentClassification>);
+  public static interface ContentSuggestionsManager.ClassificationsCallback {
+    method public void onContentClassificationsAvailable(int, @NonNull java.util.List<android.app.contentsuggestions.ContentClassification>);
   }
 
-  public static abstract interface ContentSuggestionsManager.SelectionsCallback {
-    method public abstract void onContentSelectionsAvailable(int, java.util.List<android.app.contentsuggestions.ContentSelection>);
+  public static interface ContentSuggestionsManager.SelectionsCallback {
+    method public void onContentSelectionsAvailable(int, @NonNull java.util.List<android.app.contentsuggestions.ContentSelection>);
   }
 
   public final class SelectionsRequest implements android.os.Parcelable {
@@ -937,8 +939,8 @@
   public static final class SelectionsRequest.Builder {
     ctor public SelectionsRequest.Builder(int);
     method public android.app.contentsuggestions.SelectionsRequest build();
-    method public android.app.contentsuggestions.SelectionsRequest.Builder setExtras(android.os.Bundle);
-    method public android.app.contentsuggestions.SelectionsRequest.Builder setInterestPoint(android.graphics.Point);
+    method public android.app.contentsuggestions.SelectionsRequest.Builder setExtras(@NonNull android.os.Bundle);
+    method public android.app.contentsuggestions.SelectionsRequest.Builder setInterestPoint(@NonNull android.graphics.Point);
   }
 
 }
@@ -946,7 +948,7 @@
 package android.app.job {
 
   public abstract class JobScheduler {
-    method public abstract int scheduleAsPackage(android.app.job.JobInfo, java.lang.String, int, java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public abstract int scheduleAsPackage(@NonNull android.app.job.JobInfo, @NonNull String, int, String);
   }
 
 }
@@ -955,23 +957,23 @@
 
   public final class AppPredictionContext implements android.os.Parcelable {
     method public int describeContents();
-    method public android.os.Bundle getExtras();
-    method public java.lang.String getPackageName();
+    method @Nullable public android.os.Bundle getExtras();
+    method @NonNull public String getPackageName();
     method public int getPredictedTargetCount();
-    method public java.lang.String getUiSurface();
+    method public String getUiSurface();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.prediction.AppPredictionContext> CREATOR;
   }
 
   public static final class AppPredictionContext.Builder {
     method public android.app.prediction.AppPredictionContext build();
-    method public android.app.prediction.AppPredictionContext.Builder setExtras(android.os.Bundle);
+    method public android.app.prediction.AppPredictionContext.Builder setExtras(@Nullable android.os.Bundle);
     method public android.app.prediction.AppPredictionContext.Builder setPredictedTargetCount(int);
-    method public android.app.prediction.AppPredictionContext.Builder setUiSurface(java.lang.String);
+    method public android.app.prediction.AppPredictionContext.Builder setUiSurface(@Nullable String);
   }
 
   public final class AppPredictionManager {
-    method public android.app.prediction.AppPredictor createAppPredictionSession(android.app.prediction.AppPredictionContext);
+    method public android.app.prediction.AppPredictor createAppPredictionSession(@NonNull android.app.prediction.AppPredictionContext);
   }
 
   public final class AppPredictionSessionId implements android.os.Parcelable {
@@ -982,35 +984,35 @@
 
   public final class AppPredictor {
     method public void destroy();
-    method public void notifyAppTargetEvent(android.app.prediction.AppTargetEvent);
-    method public void notifyLocationShown(java.lang.String, java.util.List<android.app.prediction.AppTargetId>);
-    method public void registerPredictionUpdates(java.util.concurrent.Executor, android.app.prediction.AppPredictor.Callback);
+    method public void notifyAppTargetEvent(@NonNull android.app.prediction.AppTargetEvent);
+    method public void notifyLocationShown(@NonNull String, @NonNull java.util.List<android.app.prediction.AppTargetId>);
+    method public void registerPredictionUpdates(@NonNull java.util.concurrent.Executor, @NonNull android.app.prediction.AppPredictor.Callback);
     method public void requestPredictionUpdate();
-    method public void sortTargets(java.util.List<android.app.prediction.AppTarget>, java.util.concurrent.Executor, java.util.function.Consumer<java.util.List<android.app.prediction.AppTarget>>);
-    method public void unregisterPredictionUpdates(android.app.prediction.AppPredictor.Callback);
+    method @Nullable public void sortTargets(@NonNull java.util.List<android.app.prediction.AppTarget>, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.util.List<android.app.prediction.AppTarget>>);
+    method public void unregisterPredictionUpdates(@NonNull android.app.prediction.AppPredictor.Callback);
   }
 
-  public static abstract interface AppPredictor.Callback {
-    method public abstract void onTargetsAvailable(java.util.List<android.app.prediction.AppTarget>);
+  public static interface AppPredictor.Callback {
+    method public void onTargetsAvailable(@NonNull java.util.List<android.app.prediction.AppTarget>);
   }
 
   public final class AppTarget implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getClassName();
-    method public android.app.prediction.AppTargetId getId();
-    method public java.lang.String getPackageName();
+    method @Nullable public String getClassName();
+    method @NonNull public android.app.prediction.AppTargetId getId();
+    method @NonNull public String getPackageName();
     method public int getRank();
-    method public android.content.pm.ShortcutInfo getShortcutInfo();
-    method public android.os.UserHandle getUser();
+    method @Nullable public android.content.pm.ShortcutInfo getShortcutInfo();
+    method @NonNull public android.os.UserHandle getUser();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.prediction.AppTarget> CREATOR;
   }
 
   public final class AppTargetEvent implements android.os.Parcelable {
     method public int describeContents();
-    method public int getAction();
-    method public java.lang.String getLaunchLocation();
-    method public android.app.prediction.AppTarget getTarget();
+    method @NonNull public int getAction();
+    method @NonNull public String getLaunchLocation();
+    method @Nullable public android.app.prediction.AppTarget getTarget();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int ACTION_DISMISS = 2; // 0x2
     field public static final int ACTION_LAUNCH = 1; // 0x1
@@ -1019,9 +1021,9 @@
   }
 
   public static final class AppTargetEvent.Builder {
-    ctor public AppTargetEvent.Builder(android.app.prediction.AppTarget, int);
+    ctor public AppTargetEvent.Builder(@Nullable android.app.prediction.AppTarget, int);
     method public android.app.prediction.AppTargetEvent build();
-    method public android.app.prediction.AppTargetEvent.Builder setLaunchLocation(java.lang.String);
+    method public android.app.prediction.AppTargetEvent.Builder setLaunchLocation(String);
   }
 
   public final class AppTargetId implements android.os.Parcelable {
@@ -1034,27 +1036,27 @@
 
 package android.app.role {
 
-  public abstract interface OnRoleHoldersChangedListener {
-    method public abstract void onRoleHoldersChanged(java.lang.String, android.os.UserHandle);
+  public interface OnRoleHoldersChangedListener {
+    method public void onRoleHoldersChanged(@NonNull String, @NonNull android.os.UserHandle);
   }
 
   public final class RoleManager {
-    method public void addOnRoleHoldersChangedListenerAsUser(java.util.concurrent.Executor, android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle);
-    method public void addRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback);
-    method public boolean addRoleHolderFromController(java.lang.String, java.lang.String);
-    method public void clearRoleHoldersAsUser(java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback);
-    method public java.util.List<java.lang.String> getHeldRolesFromController(java.lang.String);
-    method public java.util.List<java.lang.String> getRoleHolders(java.lang.String);
-    method public java.util.List<java.lang.String> getRoleHoldersAsUser(java.lang.String, android.os.UserHandle);
-    method public void removeOnRoleHoldersChangedListenerAsUser(android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle);
-    method public void removeRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback);
-    method public boolean removeRoleHolderFromController(java.lang.String, java.lang.String);
-    method public void setRoleNamesFromController(java.util.List<java.lang.String>);
+    method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void addOnRoleHoldersChangedListenerAsUser(@NonNull java.util.concurrent.Executor, @NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void addRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
+    method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean addRoleHolderFromController(@NonNull String, @NonNull String);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void clearRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
+    method @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List<java.lang.String> getHeldRolesFromController(@NonNull String);
+    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHolders(@NonNull String);
+    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void removeOnRoleHoldersChangedListenerAsUser(@NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void removeRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
+    method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean removeRoleHolderFromController(@NonNull String, @NonNull String);
+    method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public void setRoleNamesFromController(@NonNull java.util.List<java.lang.String>);
   }
 
-  public abstract interface RoleManagerCallback {
-    method public abstract void onFailure();
-    method public abstract void onSuccess();
+  public interface RoleManagerCallback {
+    method public void onFailure();
+    method public void onSuccess();
   }
 
 }
@@ -1067,7 +1069,7 @@
     method public long getQuota();
     method public int getUid();
     method public android.app.usage.UsageStats getUsageStats();
-    method public java.lang.String getVolumeUuid();
+    method public String getVolumeUuid();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.usage.CacheQuotaHint> CREATOR;
     field public static final long QUOTA_NOT_SET = -1L; // 0xffffffffffffffffL
@@ -1076,23 +1078,23 @@
   public static final class CacheQuotaHint.Builder {
     ctor public CacheQuotaHint.Builder();
     ctor public CacheQuotaHint.Builder(android.app.usage.CacheQuotaHint);
-    method public android.app.usage.CacheQuotaHint build();
-    method public android.app.usage.CacheQuotaHint.Builder setQuota(long);
-    method public android.app.usage.CacheQuotaHint.Builder setUid(int);
-    method public android.app.usage.CacheQuotaHint.Builder setUsageStats(android.app.usage.UsageStats);
-    method public android.app.usage.CacheQuotaHint.Builder setVolumeUuid(java.lang.String);
+    method @NonNull public android.app.usage.CacheQuotaHint build();
+    method @NonNull public android.app.usage.CacheQuotaHint.Builder setQuota(long);
+    method @NonNull public android.app.usage.CacheQuotaHint.Builder setUid(int);
+    method @NonNull public android.app.usage.CacheQuotaHint.Builder setUsageStats(@Nullable android.app.usage.UsageStats);
+    method @NonNull public android.app.usage.CacheQuotaHint.Builder setVolumeUuid(@Nullable String);
   }
 
   public abstract class CacheQuotaService extends android.app.Service {
     ctor public CacheQuotaService();
     method public android.os.IBinder onBind(android.content.Intent);
     method public abstract java.util.List<android.app.usage.CacheQuotaHint> onComputeCacheQuotaHints(java.util.List<android.app.usage.CacheQuotaHint>);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.app.usage.CacheQuotaService";
+    field public static final String SERVICE_INTERFACE = "android.app.usage.CacheQuotaService";
   }
 
   public static final class UsageEvents.Event {
     method public int getInstanceId();
-    method public java.lang.String getNotificationChannelId();
+    method public String getNotificationChannelId();
     field public static final int NOTIFICATION_INTERRUPTION = 12; // 0xc
     field public static final int NOTIFICATION_SEEN = 10; // 0xa
     field public static final int SLICE_PINNED = 14; // 0xe
@@ -1105,21 +1107,21 @@
   }
 
   public final class UsageStatsManager {
-    method public int getAppStandbyBucket(java.lang.String);
-    method public java.util.Map<java.lang.String, java.lang.Integer> getAppStandbyBuckets();
-    method public void registerAppUsageObserver(int, java.lang.String[], long, java.util.concurrent.TimeUnit, android.app.PendingIntent);
-    method public void registerUsageSessionObserver(int, java.lang.String[], long, java.util.concurrent.TimeUnit, long, java.util.concurrent.TimeUnit, android.app.PendingIntent, android.app.PendingIntent);
-    method public void reportUsageStart(android.app.Activity, java.lang.String);
-    method public void reportUsageStart(android.app.Activity, java.lang.String, long);
-    method public void reportUsageStop(android.app.Activity, java.lang.String);
-    method public void setAppStandbyBucket(java.lang.String, int);
-    method public void setAppStandbyBuckets(java.util.Map<java.lang.String, java.lang.Integer>);
-    method public void unregisterAppUsageObserver(int);
-    method public void unregisterUsageSessionObserver(int);
-    method public void whitelistAppTemporarily(java.lang.String, long, android.os.UserHandle);
-    field public static final java.lang.String EXTRA_OBSERVER_ID = "android.app.usage.extra.OBSERVER_ID";
-    field public static final java.lang.String EXTRA_TIME_LIMIT = "android.app.usage.extra.TIME_LIMIT";
-    field public static final java.lang.String EXTRA_TIME_USED = "android.app.usage.extra.TIME_USED";
+    method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int getAppStandbyBucket(String);
+    method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public java.util.Map<java.lang.String,java.lang.Integer> getAppStandbyBuckets();
+    method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void registerAppUsageObserver(int, @NonNull String[], long, @NonNull java.util.concurrent.TimeUnit, @NonNull android.app.PendingIntent);
+    method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void registerUsageSessionObserver(int, @NonNull String[], long, @NonNull java.util.concurrent.TimeUnit, long, @NonNull java.util.concurrent.TimeUnit, @NonNull android.app.PendingIntent, @Nullable android.app.PendingIntent);
+    method public void reportUsageStart(@NonNull android.app.Activity, @NonNull String);
+    method public void reportUsageStart(@NonNull android.app.Activity, @NonNull String, long);
+    method public void reportUsageStop(@NonNull android.app.Activity, @NonNull String);
+    method @RequiresPermission(android.Manifest.permission.CHANGE_APP_IDLE_STATE) public void setAppStandbyBucket(String, int);
+    method @RequiresPermission(android.Manifest.permission.CHANGE_APP_IDLE_STATE) public void setAppStandbyBuckets(java.util.Map<java.lang.String,java.lang.Integer>);
+    method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void unregisterAppUsageObserver(int);
+    method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void unregisterUsageSessionObserver(int);
+    method @RequiresPermission(android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST) public void whitelistAppTemporarily(String, long, android.os.UserHandle);
+    field public static final String EXTRA_OBSERVER_ID = "android.app.usage.extra.OBSERVER_ID";
+    field public static final String EXTRA_TIME_LIMIT = "android.app.usage.extra.TIME_LIMIT";
+    field public static final String EXTRA_TIME_USED = "android.app.usage.extra.TIME_USED";
     field public static final int STANDBY_BUCKET_EXEMPTED = 5; // 0x5
     field public static final int STANDBY_BUCKET_NEVER = 50; // 0x32
   }
@@ -1131,31 +1133,31 @@
   public final class BluetoothAdapter {
     method public boolean disableBLE();
     method public boolean enableBLE();
-    method public boolean enableNoAutoConnect();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean enableNoAutoConnect();
     method public boolean isBleScanAlwaysAvailable();
     method public boolean isLeEnabled();
-    field public static final java.lang.String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED";
-    field public static final java.lang.String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE";
+    field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED";
+    field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE";
   }
 
   public final class BluetoothDevice implements android.os.Parcelable {
-    method public boolean cancelBondProcess();
-    method public boolean isConnected();
-    method public boolean isEncrypted();
-    method public boolean removeBond();
-    method public boolean setPhonebookAccessPermission(int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean cancelBondProcess();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isConnected();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isEncrypted();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean removeBond();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setPhonebookAccessPermission(int);
     field public static final int ACCESS_ALLOWED = 1; // 0x1
     field public static final int ACCESS_REJECTED = 2; // 0x2
     field public static final int ACCESS_UNKNOWN = 0; // 0x0
   }
 
   public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile {
-    method public boolean connect(android.bluetooth.BluetoothDevice);
-    method public boolean disconnect(android.bluetooth.BluetoothDevice);
-    method public boolean setPriority(android.bluetooth.BluetoothDevice, int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean connect(android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean disconnect(android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPriority(android.bluetooth.BluetoothDevice, int);
   }
 
-  public abstract interface BluetoothProfile {
+  public interface BluetoothProfile {
     field public static final int PRIORITY_OFF = 0; // 0x0
     field public static final int PRIORITY_ON = 100; // 0x64
   }
@@ -1165,8 +1167,8 @@
 package android.bluetooth.le {
 
   public final class BluetoothLeScanner {
-    method public void startScanFromSource(android.os.WorkSource, android.bluetooth.le.ScanCallback);
-    method public void startScanFromSource(java.util.List<android.bluetooth.le.ScanFilter>, android.bluetooth.le.ScanSettings, android.os.WorkSource, android.bluetooth.le.ScanCallback);
+    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADMIN, android.Manifest.permission.UPDATE_DEVICE_STATS}) public void startScanFromSource(android.os.WorkSource, android.bluetooth.le.ScanCallback);
+    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADMIN, android.Manifest.permission.UPDATE_DEVICE_STATS}) public void startScanFromSource(java.util.List<android.bluetooth.le.ScanFilter>, android.bluetooth.le.ScanSettings, android.os.WorkSource, android.bluetooth.le.ScanCallback);
     method public void startTruncatedScan(java.util.List<android.bluetooth.le.TruncatedFilter>, android.bluetooth.le.ScanSettings, android.bluetooth.le.ScanCallback);
   }
 
@@ -1200,102 +1202,102 @@
 package android.content {
 
   public class ContentProviderClient implements java.lang.AutoCloseable android.content.ContentInterface {
-    method public void setDetectNotResponding(long);
+    method @RequiresPermission(android.Manifest.permission.REMOVE_TASKS) public void setDetectNotResponding(long);
   }
 
   public abstract class ContentResolver implements android.content.ContentInterface {
-    method public android.graphics.drawable.Drawable getTypeDrawable(java.lang.String);
+    method public android.graphics.drawable.Drawable getTypeDrawable(String);
   }
 
   public abstract class Context {
-    method public boolean bindServiceAsUser(android.content.Intent, android.content.ServiceConnection, int, android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public boolean bindServiceAsUser(@RequiresPermission android.content.Intent, android.content.ServiceConnection, int, android.os.UserHandle);
     method public abstract android.content.Context createCredentialProtectedStorageContext();
-    method public android.content.Context createPackageContextAsUser(java.lang.String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract java.io.File getPreloadsFileCache();
+    method public android.content.Context createPackageContextAsUser(String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Nullable public abstract java.io.File getPreloadsFileCache();
     method public abstract boolean isCredentialProtectedStorage();
-    method public abstract void sendBroadcast(android.content.Intent, java.lang.String, android.os.Bundle);
-    method public abstract void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.os.Bundle);
-    method public abstract void sendOrderedBroadcast(android.content.Intent, java.lang.String, android.os.Bundle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
-    method public void startActivityAsUser(android.content.Intent, android.os.UserHandle);
-    field public static final java.lang.String APP_PREDICTION_SERVICE = "app_prediction";
-    field public static final java.lang.String BACKUP_SERVICE = "backup";
-    field public static final java.lang.String CONTENT_SUGGESTIONS_SERVICE = "content_suggestions";
-    field public static final java.lang.String CONTEXTHUB_SERVICE = "contexthub";
-    field public static final java.lang.String EUICC_CARD_SERVICE = "euicc_card";
-    field public static final java.lang.String HDMI_CONTROL_SERVICE = "hdmi_control";
-    field public static final java.lang.String NETWORK_SCORE_SERVICE = "network_score";
-    field public static final java.lang.String OEM_LOCK_SERVICE = "oem_lock";
-    field public static final java.lang.String PERMISSION_SERVICE = "permission";
-    field public static final java.lang.String PERSISTENT_DATA_BLOCK_SERVICE = "persistent_data_block";
-    field public static final java.lang.String ROLLBACK_SERVICE = "rollback";
-    field public static final java.lang.String SECURE_ELEMENT_SERVICE = "secure_element";
-    field public static final java.lang.String STATS_MANAGER = "stats";
-    field public static final java.lang.String SYSTEM_UPDATE_SERVICE = "system_update";
-    field public static final java.lang.String VR_SERVICE = "vrmanager";
-    field public static final deprecated java.lang.String WIFI_RTT_SERVICE = "rttmanager";
-    field public static final java.lang.String WIFI_SCANNING_SERVICE = "wifiscanner";
+    method public abstract void sendBroadcast(android.content.Intent, @Nullable String, @Nullable android.os.Bundle);
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public abstract void sendBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String, @Nullable android.os.Bundle);
+    method public abstract void sendOrderedBroadcast(@NonNull android.content.Intent, @Nullable String, @Nullable android.os.Bundle, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public void startActivityAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle);
+    field public static final String APP_PREDICTION_SERVICE = "app_prediction";
+    field public static final String BACKUP_SERVICE = "backup";
+    field public static final String CONTENT_SUGGESTIONS_SERVICE = "content_suggestions";
+    field public static final String CONTEXTHUB_SERVICE = "contexthub";
+    field public static final String EUICC_CARD_SERVICE = "euicc_card";
+    field public static final String HDMI_CONTROL_SERVICE = "hdmi_control";
+    field public static final String NETWORK_SCORE_SERVICE = "network_score";
+    field public static final String OEM_LOCK_SERVICE = "oem_lock";
+    field public static final String PERMISSION_SERVICE = "permission";
+    field public static final String PERSISTENT_DATA_BLOCK_SERVICE = "persistent_data_block";
+    field public static final String ROLLBACK_SERVICE = "rollback";
+    field public static final String SECURE_ELEMENT_SERVICE = "secure_element";
+    field public static final String STATS_MANAGER = "stats";
+    field public static final String SYSTEM_UPDATE_SERVICE = "system_update";
+    field public static final String VR_SERVICE = "vrmanager";
+    field @Deprecated public static final String WIFI_RTT_SERVICE = "rttmanager";
+    field public static final String WIFI_SCANNING_SERVICE = "wifiscanner";
   }
 
   public class ContextWrapper extends android.content.Context {
     method public android.content.Context createCredentialProtectedStorageContext();
     method public java.io.File getPreloadsFileCache();
     method public boolean isCredentialProtectedStorage();
-    method public void sendBroadcast(android.content.Intent, java.lang.String, android.os.Bundle);
-    method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.os.Bundle);
-    method public void sendOrderedBroadcast(android.content.Intent, java.lang.String, android.os.Bundle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+    method public void sendBroadcast(android.content.Intent, String, android.os.Bundle);
+    method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, String, android.os.Bundle);
+    method public void sendOrderedBroadcast(android.content.Intent, String, android.os.Bundle, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
   }
 
   public class Intent implements java.lang.Cloneable android.os.Parcelable {
-    field public static final java.lang.String ACTION_BATTERY_LEVEL_CHANGED = "android.intent.action.BATTERY_LEVEL_CHANGED";
-    field public static final java.lang.String ACTION_CALL_EMERGENCY = "android.intent.action.CALL_EMERGENCY";
-    field public static final java.lang.String ACTION_CALL_PRIVILEGED = "android.intent.action.CALL_PRIVILEGED";
-    field public static final java.lang.String ACTION_DEVICE_CUSTOMIZATION_READY = "android.intent.action.DEVICE_CUSTOMIZATION_READY";
-    field public static final java.lang.String ACTION_FACTORY_RESET = "android.intent.action.FACTORY_RESET";
-    field public static final java.lang.String ACTION_GLOBAL_BUTTON = "android.intent.action.GLOBAL_BUTTON";
-    field public static final java.lang.String ACTION_INSTALL_INSTANT_APP_PACKAGE = "android.intent.action.INSTALL_INSTANT_APP_PACKAGE";
-    field public static final java.lang.String ACTION_INSTANT_APP_RESOLVER_SETTINGS = "android.intent.action.INSTANT_APP_RESOLVER_SETTINGS";
-    field public static final java.lang.String ACTION_INTENT_FILTER_NEEDS_VERIFICATION = "android.intent.action.INTENT_FILTER_NEEDS_VERIFICATION";
-    field public static final java.lang.String ACTION_MANAGE_APP_PERMISSIONS = "android.intent.action.MANAGE_APP_PERMISSIONS";
-    field public static final java.lang.String ACTION_MANAGE_DEFAULT_APP = "android.intent.action.MANAGE_DEFAULT_APP";
-    field public static final java.lang.String ACTION_MANAGE_PERMISSIONS = "android.intent.action.MANAGE_PERMISSIONS";
-    field public static final java.lang.String ACTION_MANAGE_PERMISSION_APPS = "android.intent.action.MANAGE_PERMISSION_APPS";
-    field public static final java.lang.String ACTION_MANAGE_SPECIAL_APP_ACCESSES = "android.intent.action.MANAGE_SPECIAL_APP_ACCESSES";
-    field public static final java.lang.String ACTION_MASTER_CLEAR_NOTIFICATION = "android.intent.action.MASTER_CLEAR_NOTIFICATION";
-    field public static final java.lang.String ACTION_PACKAGE_ROLLBACK_EXECUTED = "android.intent.action.PACKAGE_ROLLBACK_EXECUTED";
-    field public static final java.lang.String ACTION_PRE_BOOT_COMPLETED = "android.intent.action.PRE_BOOT_COMPLETED";
-    field public static final java.lang.String ACTION_QUERY_PACKAGE_RESTART = "android.intent.action.QUERY_PACKAGE_RESTART";
-    field public static final java.lang.String ACTION_RESOLVE_INSTANT_APP_PACKAGE = "android.intent.action.RESOLVE_INSTANT_APP_PACKAGE";
-    field public static final java.lang.String ACTION_REVIEW_APP_PERMISSION_USAGE = "android.intent.action.REVIEW_APP_PERMISSION_USAGE";
-    field public static final java.lang.String ACTION_REVIEW_PERMISSIONS = "android.intent.action.REVIEW_PERMISSIONS";
-    field public static final java.lang.String ACTION_REVIEW_PERMISSION_USAGE = "android.intent.action.REVIEW_PERMISSION_USAGE";
-    field public static final java.lang.String ACTION_SHOW_SUSPENDED_APP_DETAILS = "android.intent.action.SHOW_SUSPENDED_APP_DETAILS";
-    field public static final deprecated java.lang.String ACTION_SIM_STATE_CHANGED = "android.intent.action.SIM_STATE_CHANGED";
-    field public static final java.lang.String ACTION_SPLIT_CONFIGURATION_CHANGED = "android.intent.action.SPLIT_CONFIGURATION_CHANGED";
-    field public static final java.lang.String ACTION_UPGRADE_SETUP = "android.intent.action.UPGRADE_SETUP";
-    field public static final java.lang.String ACTION_USER_REMOVED = "android.intent.action.USER_REMOVED";
-    field public static final java.lang.String ACTION_VOICE_ASSIST = "android.intent.action.VOICE_ASSIST";
-    field public static final java.lang.String CATEGORY_LEANBACK_SETTINGS = "android.intent.category.LEANBACK_SETTINGS";
-    field public static final java.lang.String EXTRA_CALLING_PACKAGE = "android.intent.extra.CALLING_PACKAGE";
-    field public static final java.lang.String EXTRA_FORCE_FACTORY_RESET = "android.intent.extra.FORCE_FACTORY_RESET";
-    field public static final java.lang.String EXTRA_INSTANT_APP_ACTION = "android.intent.extra.INSTANT_APP_ACTION";
-    field public static final java.lang.String EXTRA_INSTANT_APP_BUNDLES = "android.intent.extra.INSTANT_APP_BUNDLES";
-    field public static final java.lang.String EXTRA_INSTANT_APP_EXTRAS = "android.intent.extra.INSTANT_APP_EXTRAS";
-    field public static final java.lang.String EXTRA_INSTANT_APP_FAILURE = "android.intent.extra.INSTANT_APP_FAILURE";
-    field public static final java.lang.String EXTRA_INSTANT_APP_HOSTNAME = "android.intent.extra.INSTANT_APP_HOSTNAME";
-    field public static final java.lang.String EXTRA_INSTANT_APP_SUCCESS = "android.intent.extra.INSTANT_APP_SUCCESS";
-    field public static final java.lang.String EXTRA_INSTANT_APP_TOKEN = "android.intent.extra.INSTANT_APP_TOKEN";
-    field public static final java.lang.String EXTRA_LONG_VERSION_CODE = "android.intent.extra.LONG_VERSION_CODE";
-    field public static final java.lang.String EXTRA_ORIGINATING_UID = "android.intent.extra.ORIGINATING_UID";
-    field public static final java.lang.String EXTRA_PACKAGES = "android.intent.extra.PACKAGES";
-    field public static final java.lang.String EXTRA_PERMISSION_GROUP_NAME = "android.intent.extra.PERMISSION_GROUP_NAME";
-    field public static final java.lang.String EXTRA_PERMISSION_NAME = "android.intent.extra.PERMISSION_NAME";
-    field public static final java.lang.String EXTRA_REASON = "android.intent.extra.REASON";
-    field public static final java.lang.String EXTRA_REMOTE_CALLBACK = "android.intent.extra.REMOTE_CALLBACK";
-    field public static final java.lang.String EXTRA_RESULT_NEEDED = "android.intent.extra.RESULT_NEEDED";
-    field public static final java.lang.String EXTRA_ROLE_NAME = "android.intent.extra.ROLE_NAME";
-    field public static final java.lang.String EXTRA_UNKNOWN_INSTANT_APP = "android.intent.extra.UNKNOWN_INSTANT_APP";
-    field public static final java.lang.String EXTRA_VERIFICATION_BUNDLE = "android.intent.extra.VERIFICATION_BUNDLE";
-    field public static final java.lang.String METADATA_SETUP_VERSION = "android.SETUP_VERSION";
+    field public static final String ACTION_BATTERY_LEVEL_CHANGED = "android.intent.action.BATTERY_LEVEL_CHANGED";
+    field public static final String ACTION_CALL_EMERGENCY = "android.intent.action.CALL_EMERGENCY";
+    field public static final String ACTION_CALL_PRIVILEGED = "android.intent.action.CALL_PRIVILEGED";
+    field public static final String ACTION_DEVICE_CUSTOMIZATION_READY = "android.intent.action.DEVICE_CUSTOMIZATION_READY";
+    field public static final String ACTION_FACTORY_RESET = "android.intent.action.FACTORY_RESET";
+    field public static final String ACTION_GLOBAL_BUTTON = "android.intent.action.GLOBAL_BUTTON";
+    field public static final String ACTION_INSTALL_INSTANT_APP_PACKAGE = "android.intent.action.INSTALL_INSTANT_APP_PACKAGE";
+    field public static final String ACTION_INSTANT_APP_RESOLVER_SETTINGS = "android.intent.action.INSTANT_APP_RESOLVER_SETTINGS";
+    field public static final String ACTION_INTENT_FILTER_NEEDS_VERIFICATION = "android.intent.action.INTENT_FILTER_NEEDS_VERIFICATION";
+    field public static final String ACTION_MANAGE_APP_PERMISSIONS = "android.intent.action.MANAGE_APP_PERMISSIONS";
+    field @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public static final String ACTION_MANAGE_DEFAULT_APP = "android.intent.action.MANAGE_DEFAULT_APP";
+    field public static final String ACTION_MANAGE_PERMISSIONS = "android.intent.action.MANAGE_PERMISSIONS";
+    field public static final String ACTION_MANAGE_PERMISSION_APPS = "android.intent.action.MANAGE_PERMISSION_APPS";
+    field @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public static final String ACTION_MANAGE_SPECIAL_APP_ACCESSES = "android.intent.action.MANAGE_SPECIAL_APP_ACCESSES";
+    field public static final String ACTION_MASTER_CLEAR_NOTIFICATION = "android.intent.action.MASTER_CLEAR_NOTIFICATION";
+    field public static final String ACTION_PACKAGE_ROLLBACK_EXECUTED = "android.intent.action.PACKAGE_ROLLBACK_EXECUTED";
+    field public static final String ACTION_PRE_BOOT_COMPLETED = "android.intent.action.PRE_BOOT_COMPLETED";
+    field public static final String ACTION_QUERY_PACKAGE_RESTART = "android.intent.action.QUERY_PACKAGE_RESTART";
+    field public static final String ACTION_RESOLVE_INSTANT_APP_PACKAGE = "android.intent.action.RESOLVE_INSTANT_APP_PACKAGE";
+    field @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS) public static final String ACTION_REVIEW_APP_PERMISSION_USAGE = "android.intent.action.REVIEW_APP_PERMISSION_USAGE";
+    field public static final String ACTION_REVIEW_PERMISSIONS = "android.intent.action.REVIEW_PERMISSIONS";
+    field public static final String ACTION_REVIEW_PERMISSION_USAGE = "android.intent.action.REVIEW_PERMISSION_USAGE";
+    field public static final String ACTION_SHOW_SUSPENDED_APP_DETAILS = "android.intent.action.SHOW_SUSPENDED_APP_DETAILS";
+    field @Deprecated public static final String ACTION_SIM_STATE_CHANGED = "android.intent.action.SIM_STATE_CHANGED";
+    field public static final String ACTION_SPLIT_CONFIGURATION_CHANGED = "android.intent.action.SPLIT_CONFIGURATION_CHANGED";
+    field public static final String ACTION_UPGRADE_SETUP = "android.intent.action.UPGRADE_SETUP";
+    field public static final String ACTION_USER_REMOVED = "android.intent.action.USER_REMOVED";
+    field public static final String ACTION_VOICE_ASSIST = "android.intent.action.VOICE_ASSIST";
+    field public static final String CATEGORY_LEANBACK_SETTINGS = "android.intent.category.LEANBACK_SETTINGS";
+    field public static final String EXTRA_CALLING_PACKAGE = "android.intent.extra.CALLING_PACKAGE";
+    field public static final String EXTRA_FORCE_FACTORY_RESET = "android.intent.extra.FORCE_FACTORY_RESET";
+    field public static final String EXTRA_INSTANT_APP_ACTION = "android.intent.extra.INSTANT_APP_ACTION";
+    field public static final String EXTRA_INSTANT_APP_BUNDLES = "android.intent.extra.INSTANT_APP_BUNDLES";
+    field public static final String EXTRA_INSTANT_APP_EXTRAS = "android.intent.extra.INSTANT_APP_EXTRAS";
+    field public static final String EXTRA_INSTANT_APP_FAILURE = "android.intent.extra.INSTANT_APP_FAILURE";
+    field public static final String EXTRA_INSTANT_APP_HOSTNAME = "android.intent.extra.INSTANT_APP_HOSTNAME";
+    field public static final String EXTRA_INSTANT_APP_SUCCESS = "android.intent.extra.INSTANT_APP_SUCCESS";
+    field public static final String EXTRA_INSTANT_APP_TOKEN = "android.intent.extra.INSTANT_APP_TOKEN";
+    field public static final String EXTRA_LONG_VERSION_CODE = "android.intent.extra.LONG_VERSION_CODE";
+    field public static final String EXTRA_ORIGINATING_UID = "android.intent.extra.ORIGINATING_UID";
+    field public static final String EXTRA_PACKAGES = "android.intent.extra.PACKAGES";
+    field public static final String EXTRA_PERMISSION_GROUP_NAME = "android.intent.extra.PERMISSION_GROUP_NAME";
+    field public static final String EXTRA_PERMISSION_NAME = "android.intent.extra.PERMISSION_NAME";
+    field public static final String EXTRA_REASON = "android.intent.extra.REASON";
+    field public static final String EXTRA_REMOTE_CALLBACK = "android.intent.extra.REMOTE_CALLBACK";
+    field public static final String EXTRA_RESULT_NEEDED = "android.intent.extra.RESULT_NEEDED";
+    field public static final String EXTRA_ROLE_NAME = "android.intent.extra.ROLE_NAME";
+    field public static final String EXTRA_UNKNOWN_INSTANT_APP = "android.intent.extra.UNKNOWN_INSTANT_APP";
+    field public static final String EXTRA_VERIFICATION_BUNDLE = "android.intent.extra.VERIFICATION_BUNDLE";
+    field public static final String METADATA_SETUP_VERSION = "android.SETUP_VERSION";
   }
 
   public class IntentFilter implements android.os.Parcelable {
@@ -1312,15 +1314,15 @@
     method public boolean isEnabled();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.om.OverlayInfo> CREATOR;
-    field public final java.lang.String category;
-    field public final java.lang.String packageName;
-    field public final java.lang.String targetPackageName;
+    field public final String category;
+    field public final String packageName;
+    field public final String targetPackageName;
     field public final int userId;
   }
 
   public class OverlayManager {
-    method public java.util.List<android.content.om.OverlayInfo> getOverlayInfosForTarget(java.lang.String, int);
-    method public boolean setEnabledExclusiveInCategory(java.lang.String, int);
+    method public java.util.List<android.content.om.OverlayInfo> getOverlayInfosForTarget(@Nullable String, int);
+    method public boolean setEnabledExclusiveInCategory(@Nullable String, int);
   }
 
 }
@@ -1330,57 +1332,57 @@
   public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
     method public boolean isEncryptionAware();
     method public boolean isInstantApp();
-    field public java.lang.String credentialProtectedDataDir;
+    field public String credentialProtectedDataDir;
     field public int targetSandboxVersion;
   }
 
   public class CrossProfileApps {
-    method public void startAnyActivity(android.content.ComponentName, android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_PROFILES) public void startActivity(@NonNull android.content.ComponentName, @NonNull android.os.UserHandle);
   }
 
   public final class InstantAppInfo implements android.os.Parcelable {
-    ctor public InstantAppInfo(android.content.pm.ApplicationInfo, java.lang.String[], java.lang.String[]);
-    ctor public InstantAppInfo(java.lang.String, java.lang.CharSequence, java.lang.String[], java.lang.String[]);
+    ctor public InstantAppInfo(android.content.pm.ApplicationInfo, String[], String[]);
+    ctor public InstantAppInfo(String, CharSequence, String[], String[]);
     method public int describeContents();
-    method public android.content.pm.ApplicationInfo getApplicationInfo();
-    method public java.lang.String[] getGrantedPermissions();
-    method public java.lang.String getPackageName();
-    method public java.lang.String[] getRequestedPermissions();
-    method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
-    method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
+    method @Nullable public android.content.pm.ApplicationInfo getApplicationInfo();
+    method @Nullable public String[] getGrantedPermissions();
+    method @NonNull public String getPackageName();
+    method @Nullable public String[] getRequestedPermissions();
+    method @NonNull public android.graphics.drawable.Drawable loadIcon(@NonNull android.content.pm.PackageManager);
+    method @NonNull public CharSequence loadLabel(@NonNull android.content.pm.PackageManager);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.InstantAppInfo> CREATOR;
   }
 
   public final class InstantAppIntentFilter implements android.os.Parcelable {
-    ctor public InstantAppIntentFilter(java.lang.String, java.util.List<android.content.IntentFilter>);
+    ctor public InstantAppIntentFilter(@Nullable String, @NonNull java.util.List<android.content.IntentFilter>);
     method public int describeContents();
     method public java.util.List<android.content.IntentFilter> getFilters();
-    method public java.lang.String getSplitName();
+    method public String getSplitName();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.InstantAppIntentFilter> CREATOR;
   }
 
   public final class InstantAppResolveInfo implements android.os.Parcelable {
-    ctor public InstantAppResolveInfo(android.content.pm.InstantAppResolveInfo.InstantAppDigest, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>, int);
-    ctor public InstantAppResolveInfo(android.content.pm.InstantAppResolveInfo.InstantAppDigest, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>, long, android.os.Bundle);
-    ctor public InstantAppResolveInfo(java.lang.String, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>);
-    ctor public InstantAppResolveInfo(android.os.Bundle);
+    ctor public InstantAppResolveInfo(@NonNull android.content.pm.InstantAppResolveInfo.InstantAppDigest, @Nullable String, @Nullable java.util.List<android.content.pm.InstantAppIntentFilter>, int);
+    ctor public InstantAppResolveInfo(@NonNull android.content.pm.InstantAppResolveInfo.InstantAppDigest, @Nullable String, @Nullable java.util.List<android.content.pm.InstantAppIntentFilter>, long, @Nullable android.os.Bundle);
+    ctor public InstantAppResolveInfo(@NonNull String, @Nullable String, @Nullable java.util.List<android.content.pm.InstantAppIntentFilter>);
+    ctor public InstantAppResolveInfo(@Nullable android.os.Bundle);
     method public int describeContents();
     method public byte[] getDigestBytes();
     method public int getDigestPrefix();
-    method public android.os.Bundle getExtras();
+    method @Nullable public android.os.Bundle getExtras();
     method public java.util.List<android.content.pm.InstantAppIntentFilter> getIntentFilters();
     method public long getLongVersionCode();
-    method public java.lang.String getPackageName();
-    method public deprecated int getVersionCode();
+    method public String getPackageName();
+    method @Deprecated public int getVersionCode();
     method public boolean shouldLetInstallerDecide();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.InstantAppResolveInfo> CREATOR;
   }
 
   public static final class InstantAppResolveInfo.InstantAppDigest implements android.os.Parcelable {
-    ctor public InstantAppResolveInfo.InstantAppDigest(java.lang.String);
+    ctor public InstantAppResolveInfo.InstantAppDigest(@NonNull String);
     method public int describeContents();
     method public byte[][] getDigestBytes();
     method public int[] getDigestPrefix();
@@ -1392,92 +1394,92 @@
   public final class IntentFilterVerificationInfo implements android.os.Parcelable {
     method public int describeContents();
     method public java.util.Set<java.lang.String> getDomains();
-    method public java.lang.String getPackageName();
+    method public String getPackageName();
     method public int getStatus();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.pm.IntentFilterVerificationInfo> CREATOR;
   }
 
   public class PackageInstaller {
-    method public void setPermissionsResult(int, boolean);
+    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setPermissionsResult(int, boolean);
   }
 
   public static class PackageInstaller.Session implements java.io.Closeable {
-    method public void commitTransferred(android.content.IntentSender);
+    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void commitTransferred(@NonNull android.content.IntentSender);
   }
 
   public static class PackageInstaller.SessionInfo implements android.os.Parcelable {
     method public boolean getAllocateAggressive();
     method public boolean getAllowDowngrade();
     method public boolean getDontKillApp();
-    method public java.lang.String[] getGrantedRuntimePermissions();
+    method @Nullable public String[] getGrantedRuntimePermissions();
     method public boolean getInstallAsFullApp(boolean);
     method public boolean getInstallAsInstantApp(boolean);
     method public boolean getInstallAsVirtualPreload();
   }
 
   public static class PackageInstaller.SessionParams implements android.os.Parcelable {
-    method public void setAllocateAggressive(boolean);
+    method @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE) public void setAllocateAggressive(boolean);
     method public void setAllowDowngrade(boolean);
     method public void setDontKillApp(boolean);
     method public void setEnableRollback();
-    method public void setGrantedRuntimePermissions(java.lang.String[]);
+    method @RequiresPermission(android.Manifest.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS) public void setGrantedRuntimePermissions(String[]);
     method public void setInstallAsInstantApp(boolean);
     method public void setInstallAsVirtualPreload();
   }
 
   public class PackageItemInfo {
     method public static void forceSafeLabels();
-    method public deprecated java.lang.CharSequence loadSafeLabel(android.content.pm.PackageManager);
-    method public java.lang.CharSequence loadSafeLabel(android.content.pm.PackageManager, float, int);
-    field public static final deprecated int SAFE_LABEL_FLAG_FIRST_LINE = 4; // 0x4
-    field public static final deprecated int SAFE_LABEL_FLAG_SINGLE_LINE = 2; // 0x2
-    field public static final deprecated int SAFE_LABEL_FLAG_TRIM = 1; // 0x1
+    method @Deprecated @NonNull public CharSequence loadSafeLabel(@NonNull android.content.pm.PackageManager);
+    method @NonNull public CharSequence loadSafeLabel(@NonNull android.content.pm.PackageManager, @FloatRange(from=0) float, int);
+    field @Deprecated public static final int SAFE_LABEL_FLAG_FIRST_LINE = 4; // 0x4
+    field @Deprecated public static final int SAFE_LABEL_FLAG_SINGLE_LINE = 2; // 0x2
+    field @Deprecated public static final int SAFE_LABEL_FLAG_TRIM = 1; // 0x1
   }
 
   public abstract class PackageManager {
-    method public abstract void addOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
+    method @RequiresPermission("android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS") public abstract void addOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
     method public abstract boolean arePermissionsIndividuallyControlled();
-    method public abstract java.util.List<android.content.IntentFilter> getAllIntentFilters(java.lang.String);
-    method public android.content.pm.ApplicationInfo getApplicationInfoAsUser(java.lang.String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.pm.dex.ArtManager getArtManager();
-    method public abstract java.lang.String getDefaultBrowserPackageNameAsUser(int);
-    method public java.lang.CharSequence getHarmfulAppWarning(java.lang.String);
-    method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
-    method public abstract android.graphics.drawable.Drawable getInstantAppIcon(java.lang.String);
+    method public abstract java.util.List<android.content.IntentFilter> getAllIntentFilters(String);
+    method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public android.content.pm.ApplicationInfo getApplicationInfoAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @NonNull public android.content.pm.dex.ArtManager getArtManager();
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract String getDefaultBrowserPackageNameAsUser(int);
+    method @Nullable @RequiresPermission(android.Manifest.permission.SET_HARMFUL_APP_WARNINGS) public CharSequence getHarmfulAppWarning(@NonNull String);
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
+    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_INSTANT_APPS) public abstract android.graphics.drawable.Drawable getInstantAppIcon(String);
     method public abstract android.content.ComponentName getInstantAppInstallerComponent();
     method public abstract android.content.ComponentName getInstantAppResolverSettingsComponent();
-    method public abstract java.util.List<android.content.pm.InstantAppInfo> getInstantApps();
-    method public abstract java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(java.lang.String);
-    method public abstract int getIntentVerificationStatusAsUser(java.lang.String, int);
-    method public abstract int getPermissionFlags(java.lang.String, java.lang.String, android.os.UserHandle);
-    method public java.lang.String[] getUnsuspendablePackages(java.lang.String[]);
-    method public abstract void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
-    method public abstract int installExistingPackage(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public abstract int installExistingPackage(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceiversAsUser(android.content.Intent, int, android.os.UserHandle);
-    method public java.util.List<android.content.pm.ResolveInfo> queryIntentActivitiesAsUser(android.content.Intent, int, android.os.UserHandle);
-    method public java.util.List<android.content.pm.ResolveInfo> queryIntentContentProvidersAsUser(android.content.Intent, int, android.os.UserHandle);
-    method public java.util.List<android.content.pm.ResolveInfo> queryIntentServicesAsUser(android.content.Intent, int, android.os.UserHandle);
-    method public abstract void registerDexModule(java.lang.String, android.content.pm.PackageManager.DexModuleRegisterCallback);
-    method public abstract void removeOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
-    method public deprecated void replacePreferredActivity(android.content.IntentFilter, int, java.util.List<android.content.ComponentName>, android.content.ComponentName);
-    method public abstract void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
+    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_INSTANT_APPS) public abstract java.util.List<android.content.pm.InstantAppInfo> getInstantApps();
+    method public abstract java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(String);
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract int getIntentVerificationStatusAsUser(String, int);
+    method @android.content.pm.PackageManager.PermissionFlags @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS}) public abstract int getPermissionFlags(String, String, @NonNull android.os.UserHandle);
+    method @NonNull @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] getUnsuspendablePackages(@NonNull String[]);
+    method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS) public abstract void grantRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
+    method public abstract int installExistingPackage(String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public abstract int installExistingPackage(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceiversAsUser(android.content.Intent, int, android.os.UserHandle);
+    method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryIntentActivitiesAsUser(@NonNull android.content.Intent, int, @NonNull android.os.UserHandle);
+    method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryIntentContentProvidersAsUser(@NonNull android.content.Intent, int, @NonNull android.os.UserHandle);
+    method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryIntentServicesAsUser(@NonNull android.content.Intent, int, @NonNull android.os.UserHandle);
+    method public abstract void registerDexModule(String, @Nullable android.content.pm.PackageManager.DexModuleRegisterCallback);
+    method @RequiresPermission("android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS") public abstract void removeOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
+    method @Deprecated public void replacePreferredActivity(@NonNull android.content.IntentFilter, int, @NonNull java.util.List<android.content.ComponentName>, @NonNull android.content.ComponentName);
+    method @RequiresPermission(android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS) public abstract void revokeRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
     method public void sendDeviceCustomizationReadyBroadcast();
-    method public abstract boolean setDefaultBrowserPackageNameAsUser(java.lang.String, int);
-    method public java.lang.String[] setDistractingPackageRestrictions(java.lang.String[], int);
-    method public void setHarmfulAppWarning(java.lang.String, java.lang.CharSequence);
-    method public deprecated java.lang.String[] setPackagesSuspended(java.lang.String[], boolean, android.os.PersistableBundle, android.os.PersistableBundle, java.lang.String);
-    method public java.lang.String[] setPackagesSuspended(java.lang.String[], boolean, android.os.PersistableBundle, android.os.PersistableBundle, android.content.pm.SuspendDialogInfo);
-    method public abstract void setUpdateAvailable(java.lang.String, boolean);
-    method public abstract boolean updateIntentVerificationStatusAsUser(java.lang.String, int, int);
-    method public abstract void updatePermissionFlags(java.lang.String, java.lang.String, int, int, android.os.UserHandle);
-    method public abstract void verifyIntentFilter(int, int, java.util.List<java.lang.String>);
-    field public static final java.lang.String ACTION_REQUEST_PERMISSIONS = "android.content.pm.action.REQUEST_PERMISSIONS";
-    field public static final java.lang.String EXTRA_REQUEST_PERMISSIONS_NAMES = "android.content.pm.extra.REQUEST_PERMISSIONS_NAMES";
-    field public static final java.lang.String EXTRA_REQUEST_PERMISSIONS_RESULTS = "android.content.pm.extra.REQUEST_PERMISSIONS_RESULTS";
-    field public static final java.lang.String FEATURE_BROADCAST_RADIO = "android.hardware.broadcastradio";
-    field public static final java.lang.String FEATURE_TELEPHONY_CARRIERLOCK = "android.hardware.telephony.carrierlock";
+    method @RequiresPermission(allOf={android.Manifest.permission.SET_PREFERRED_APPLICATIONS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract boolean setDefaultBrowserPackageNameAsUser(String, int);
+    method @NonNull @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setDistractingPackageRestrictions(@NonNull String[], @android.content.pm.PackageManager.DistractionRestriction int);
+    method @RequiresPermission(android.Manifest.permission.SET_HARMFUL_APP_WARNINGS) public void setHarmfulAppWarning(@NonNull String, @Nullable CharSequence);
+    method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable String);
+    method @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable android.content.pm.SuspendDialogInfo);
+    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public abstract void setUpdateAvailable(String, boolean);
+    method @RequiresPermission(android.Manifest.permission.SET_PREFERRED_APPLICATIONS) public abstract boolean updateIntentVerificationStatusAsUser(String, int, int);
+    method @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS}) public abstract void updatePermissionFlags(String, String, @android.content.pm.PackageManager.PermissionFlags int, @android.content.pm.PackageManager.PermissionFlags int, @NonNull android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.INTENT_FILTER_VERIFICATION_AGENT) public abstract void verifyIntentFilter(int, int, java.util.List<java.lang.String>);
+    field public static final String ACTION_REQUEST_PERMISSIONS = "android.content.pm.action.REQUEST_PERMISSIONS";
+    field public static final String EXTRA_REQUEST_PERMISSIONS_NAMES = "android.content.pm.extra.REQUEST_PERMISSIONS_NAMES";
+    field public static final String EXTRA_REQUEST_PERMISSIONS_RESULTS = "android.content.pm.extra.REQUEST_PERMISSIONS_RESULTS";
+    field public static final String FEATURE_BROADCAST_RADIO = "android.hardware.broadcastradio";
+    field public static final String FEATURE_TELEPHONY_CARRIERLOCK = "android.hardware.telephony.carrierlock";
     field public static final int FLAG_PERMISSION_GRANTED_BY_DEFAULT = 32; // 0x20
     field public static final int FLAG_PERMISSION_POLICY_FIXED = 4; // 0x4
     field public static final int FLAG_PERMISSION_REVIEW_REQUIRED = 64; // 0x40
@@ -1538,26 +1540,26 @@
     field public static final int RESTRICTION_NONE = 0; // 0x0
   }
 
-  public static abstract class PackageManager.DexModuleRegisterCallback {
+  public abstract static class PackageManager.DexModuleRegisterCallback {
     ctor public PackageManager.DexModuleRegisterCallback();
-    method public abstract void onDexModuleRegistered(java.lang.String, boolean, java.lang.String);
+    method public abstract void onDexModuleRegistered(String, boolean, String);
   }
 
-  public static abstract class PackageManager.DistractionRestriction implements java.lang.annotation.Annotation {
+  @IntDef(flag=true, prefix={"RESTRICTION_"}, value={android.content.pm.PackageManager.RESTRICTION_NONE, android.content.pm.PackageManager.RESTRICTION_HIDE_FROM_SUGGESTIONS, android.content.pm.PackageManager.RESTRICTION_HIDE_NOTIFICATIONS}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.DistractionRestriction {
   }
 
-  public static abstract interface PackageManager.OnPermissionsChangedListener {
-    method public abstract void onPermissionsChanged(int);
+  public static interface PackageManager.OnPermissionsChangedListener {
+    method public void onPermissionsChanged(int);
   }
 
-  public static abstract class PackageManager.PermissionFlags implements java.lang.annotation.Annotation {
+  @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags {
   }
 
   public class PermissionGroupInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
-    field public int backgroundRequestDetailResourceId;
-    field public int backgroundRequestResourceId;
-    field public int requestDetailResourceId;
-    field public int requestRes;
+    field @StringRes public int backgroundRequestDetailResourceId;
+    field @StringRes public int backgroundRequestResourceId;
+    field @StringRes public int requestDetailResourceId;
+    field @StringRes public int requestRes;
   }
 
   public class PermissionInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
@@ -1567,12 +1569,16 @@
     field public static final int PROTECTION_FLAG_OEM = 16384; // 0x4000
     field public static final int PROTECTION_FLAG_SYSTEM_TEXT_CLASSIFIER = 65536; // 0x10000
     field public static final int PROTECTION_FLAG_WELLBEING = 131072; // 0x20000
-    field public java.lang.String backgroundPermission;
+    field public String backgroundPermission;
     field public int requestRes;
   }
 
+  public class ResolveInfo implements android.os.Parcelable {
+    field public boolean handleAllWebDataURI;
+  }
+
   public class ShortcutManager {
-    method public java.util.List<android.content.pm.ShortcutManager.ShareShortcutInfo> getShareTargets(android.content.IntentFilter);
+    method @NonNull public java.util.List<android.content.pm.ShortcutManager.ShareShortcutInfo> getShareTargets(@NonNull android.content.IntentFilter);
   }
 
   public static final class ShortcutManager.ShareShortcutInfo implements android.os.Parcelable {
@@ -1591,12 +1597,12 @@
 
   public static final class SuspendDialogInfo.Builder {
     ctor public SuspendDialogInfo.Builder();
-    method public android.content.pm.SuspendDialogInfo build();
-    method public android.content.pm.SuspendDialogInfo.Builder setIcon(int);
-    method public android.content.pm.SuspendDialogInfo.Builder setMessage(java.lang.String);
-    method public android.content.pm.SuspendDialogInfo.Builder setMessage(int);
-    method public android.content.pm.SuspendDialogInfo.Builder setNeutralButtonText(int);
-    method public android.content.pm.SuspendDialogInfo.Builder setTitle(int);
+    method @NonNull public android.content.pm.SuspendDialogInfo build();
+    method @NonNull public android.content.pm.SuspendDialogInfo.Builder setIcon(@DrawableRes int);
+    method @NonNull public android.content.pm.SuspendDialogInfo.Builder setMessage(@NonNull String);
+    method @NonNull public android.content.pm.SuspendDialogInfo.Builder setMessage(@StringRes int);
+    method @NonNull public android.content.pm.SuspendDialogInfo.Builder setNeutralButtonText(@StringRes int);
+    method @NonNull public android.content.pm.SuspendDialogInfo.Builder setTitle(@StringRes int);
   }
 
 }
@@ -1604,8 +1610,8 @@
 package android.content.pm.dex {
 
   public class ArtManager {
-    method public boolean isRuntimeProfilingEnabled(int);
-    method public void snapshotRuntimeProfile(int, java.lang.String, java.lang.String, java.util.concurrent.Executor, android.content.pm.dex.ArtManager.SnapshotRuntimeProfileCallback);
+    method @RequiresPermission(allOf={android.Manifest.permission.READ_RUNTIME_PROFILES, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean isRuntimeProfilingEnabled(int);
+    method @RequiresPermission(allOf={android.Manifest.permission.READ_RUNTIME_PROFILES, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void snapshotRuntimeProfile(int, @Nullable String, @Nullable String, @NonNull java.util.concurrent.Executor, @NonNull android.content.pm.dex.ArtManager.SnapshotRuntimeProfileCallback);
     field public static final int PROFILE_APPS = 0; // 0x0
     field public static final int PROFILE_BOOT_IMAGE = 1; // 0x1
     field public static final int SNAPSHOT_FAILED_CODE_PATH_NOT_FOUND = 1; // 0x1
@@ -1613,7 +1619,7 @@
     field public static final int SNAPSHOT_FAILED_PACKAGE_NOT_FOUND = 0; // 0x0
   }
 
-  public static abstract class ArtManager.SnapshotRuntimeProfileCallback {
+  public abstract static class ArtManager.SnapshotRuntimeProfileCallback {
     ctor public ArtManager.SnapshotRuntimeProfileCallback();
     method public abstract void onError(int);
     method public abstract void onSuccess(android.os.ParcelFileDescriptor);
@@ -1623,14 +1629,14 @@
 
 package android.content.pm.permission {
 
-  public final deprecated class RuntimePermissionPresentationInfo implements android.os.Parcelable {
-    ctor public RuntimePermissionPresentationInfo(java.lang.CharSequence, boolean, boolean);
-    method public int describeContents();
-    method public java.lang.CharSequence getLabel();
-    method public boolean isGranted();
-    method public boolean isStandard();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.content.pm.permission.RuntimePermissionPresentationInfo> CREATOR;
+  @Deprecated public final class RuntimePermissionPresentationInfo implements android.os.Parcelable {
+    ctor @Deprecated public RuntimePermissionPresentationInfo(CharSequence, boolean, boolean);
+    method @Deprecated public int describeContents();
+    method @Deprecated @NonNull public CharSequence getLabel();
+    method @Deprecated public boolean isGranted();
+    method @Deprecated public boolean isStandard();
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.content.pm.permission.RuntimePermissionPresentationInfo> CREATOR;
   }
 
 }
@@ -1638,13 +1644,13 @@
 package android.content.rollback {
 
   public final class PackageRollbackInfo implements android.os.Parcelable {
-    ctor public PackageRollbackInfo(java.lang.String, android.content.rollback.PackageRollbackInfo.PackageVersion, android.content.rollback.PackageRollbackInfo.PackageVersion);
+    ctor public PackageRollbackInfo(String, android.content.rollback.PackageRollbackInfo.PackageVersion, android.content.rollback.PackageRollbackInfo.PackageVersion);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.content.rollback.PackageRollbackInfo> CREATOR;
     field public final android.content.rollback.PackageRollbackInfo.PackageVersion higherVersion;
     field public final android.content.rollback.PackageRollbackInfo.PackageVersion lowerVersion;
-    field public final java.lang.String packageName;
+    field public final String packageName;
   }
 
   public static class PackageRollbackInfo.PackageVersion {
@@ -1660,12 +1666,12 @@
   }
 
   public final class RollbackManager {
-    method public void executeRollback(android.content.rollback.RollbackInfo, android.content.IntentSender);
-    method public void expireRollbackForPackage(java.lang.String);
-    method public android.content.rollback.RollbackInfo getAvailableRollback(java.lang.String);
-    method public java.util.List<java.lang.String> getPackagesWithAvailableRollbacks();
-    method public java.util.List<android.content.rollback.RollbackInfo> getRecentlyExecutedRollbacks();
-    method public void reloadPersistedData();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) public void executeRollback(@NonNull android.content.rollback.RollbackInfo, @NonNull android.content.IntentSender);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) public void expireRollbackForPackage(@NonNull String);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) @Nullable public android.content.rollback.RollbackInfo getAvailableRollback(@NonNull String);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) @NonNull public java.util.List<java.lang.String> getPackagesWithAvailableRollbacks();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) @NonNull public java.util.List<android.content.rollback.RollbackInfo> getRecentlyExecutedRollbacks();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) public void reloadPersistedData();
   }
 
 }
@@ -1675,8 +1681,8 @@
   public final class Sensor {
     method public java.util.UUID getUuid();
     method public boolean isDataInjectionSupported();
-    field public static final java.lang.String STRING_TYPE_DYNAMIC_SENSOR_META = "android.sensor.dynamic_sensor_meta";
-    field public static final java.lang.String STRING_TYPE_WRIST_TILT_GESTURE = "android.sensor.wrist_tilt_gesture";
+    field public static final String STRING_TYPE_DYNAMIC_SENSOR_META = "android.sensor.dynamic_sensor_meta";
+    field public static final String STRING_TYPE_WRIST_TILT_GESTURE = "android.sensor.wrist_tilt_gesture";
     field public static final int TYPE_DYNAMIC_SENSOR_META = 32; // 0x20
     field public static final int TYPE_WRIST_TILT_GESTURE = 26; // 0x1a
   }
@@ -1691,7 +1697,7 @@
 package android.hardware.camera2 {
 
   public abstract class CameraDevice implements java.lang.AutoCloseable {
-    method public abstract void createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method public abstract void createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, @NonNull java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, @NonNull android.hardware.camera2.CameraCaptureSession.StateCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
     field public static final int SESSION_OPERATION_MODE_CONSTRAINED_HIGH_SPEED = 1; // 0x1
     field public static final int SESSION_OPERATION_MODE_NORMAL = 0; // 0x0
     field public static final int SESSION_OPERATION_MODE_VENDOR_START = 32768; // 0x8000
@@ -1702,8 +1708,8 @@
 package android.hardware.camera2.params {
 
   public final class OutputConfiguration implements android.os.Parcelable {
-    ctor public OutputConfiguration(android.view.Surface, int);
-    ctor public OutputConfiguration(int, android.view.Surface, int);
+    ctor public OutputConfiguration(@NonNull android.view.Surface, int);
+    ctor public OutputConfiguration(int, @NonNull android.view.Surface, int);
     method public int getRotation();
     field public static final int ROTATION_0 = 0; // 0x0
     field public static final int ROTATION_180 = 2; // 0x2
@@ -1737,16 +1743,16 @@
     field public final long[] luxTimestamps;
     field public final float[] luxValues;
     field public final boolean nightMode;
-    field public final java.lang.String packageName;
+    field public final String packageName;
     field public final float powerBrightnessFactor;
     field public final long timeStamp;
   }
 
   public final class BrightnessConfiguration implements android.os.Parcelable {
     method public int describeContents();
-    method public android.hardware.display.BrightnessCorrection getCorrectionByCategory(int);
-    method public android.hardware.display.BrightnessCorrection getCorrectionByPackageName(java.lang.String);
-    method public android.util.Pair<float[], float[]> getCurve();
+    method @Nullable public android.hardware.display.BrightnessCorrection getCorrectionByCategory(int);
+    method @Nullable public android.hardware.display.BrightnessCorrection getCorrectionByPackageName(String);
+    method public android.util.Pair<float[],float[]> getCurve();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.display.BrightnessConfiguration> CREATOR;
   }
@@ -1754,34 +1760,35 @@
   public static class BrightnessConfiguration.Builder {
     ctor public BrightnessConfiguration.Builder(float[], float[]);
     method public android.hardware.display.BrightnessConfiguration.Builder addCorrectionByCategory(int, android.hardware.display.BrightnessCorrection);
-    method public android.hardware.display.BrightnessConfiguration.Builder addCorrectionByPackageName(java.lang.String, android.hardware.display.BrightnessCorrection);
+    method public android.hardware.display.BrightnessConfiguration.Builder addCorrectionByPackageName(String, android.hardware.display.BrightnessCorrection);
     method public android.hardware.display.BrightnessConfiguration build();
     method public int getMaxCorrectionsByCategory();
     method public int getMaxCorrectionsByPackageName();
-    method public android.hardware.display.BrightnessConfiguration.Builder setDescription(java.lang.String);
+    method public android.hardware.display.BrightnessConfiguration.Builder setDescription(@Nullable String);
   }
 
   public final class BrightnessCorrection implements android.os.Parcelable {
     method public float apply(float);
-    method public static android.hardware.display.BrightnessCorrection createScaleAndTranslateLog(float, float);
+    method @NonNull public static android.hardware.display.BrightnessCorrection createScaleAndTranslateLog(float, float);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.display.BrightnessCorrection> CREATOR;
   }
 
   public final class ColorDisplayManager {
-    method public boolean setSaturationLevel(int);
+    method @RequiresPermission(android.Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS) public boolean setAppSaturationLevel(@NonNull String, @IntRange(from=0, to=100) int);
+    method @RequiresPermission(android.Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS) public boolean setSaturationLevel(@IntRange(from=0, to=100) int);
   }
 
   public final class DisplayManager {
-    method public java.util.List<android.hardware.display.AmbientBrightnessDayStats> getAmbientBrightnessStats();
-    method public android.hardware.display.BrightnessConfiguration getBrightnessConfiguration();
-    method public java.util.List<android.hardware.display.BrightnessChangeEvent> getBrightnessEvents();
-    method public android.hardware.display.BrightnessConfiguration getDefaultBrightnessConfiguration();
-    method public android.util.Pair<float[], float[]> getMinimumBrightnessCurve();
+    method @RequiresPermission(android.Manifest.permission.ACCESS_AMBIENT_LIGHT_STATS) public java.util.List<android.hardware.display.AmbientBrightnessDayStats> getAmbientBrightnessStats();
+    method @RequiresPermission(android.Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS) public android.hardware.display.BrightnessConfiguration getBrightnessConfiguration();
+    method @RequiresPermission(android.Manifest.permission.BRIGHTNESS_SLIDER_USAGE) public java.util.List<android.hardware.display.BrightnessChangeEvent> getBrightnessEvents();
+    method @Nullable @RequiresPermission(android.Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS) public android.hardware.display.BrightnessConfiguration getDefaultBrightnessConfiguration();
+    method public android.util.Pair<float[],float[]> getMinimumBrightnessCurve();
     method public android.graphics.Point getStableDisplaySize();
-    method public void setBrightnessConfiguration(android.hardware.display.BrightnessConfiguration);
-    method public deprecated void setSaturationLevel(float);
+    method @RequiresPermission(android.Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS) public void setBrightnessConfiguration(android.hardware.display.BrightnessConfiguration);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.CONTROL_DISPLAY_SATURATION) public void setSaturationLevel(float);
   }
 
 }
@@ -1792,17 +1799,17 @@
     method public android.hardware.hdmi.HdmiDeviceInfo getActiveSource();
     method public void sendKeyEvent(int, boolean);
     method public void sendVendorCommand(int, byte[], boolean);
-    method public void setVendorCommandListener(android.hardware.hdmi.HdmiControlManager.VendorCommandListener);
+    method public void setVendorCommandListener(@NonNull android.hardware.hdmi.HdmiControlManager.VendorCommandListener);
   }
 
   public final class HdmiControlManager {
-    method public void addHotplugEventListener(android.hardware.hdmi.HdmiControlManager.HotplugEventListener);
-    method public android.hardware.hdmi.HdmiClient getClient(int);
-    method public android.hardware.hdmi.HdmiPlaybackClient getPlaybackClient();
-    method public android.hardware.hdmi.HdmiTvClient getTvClient();
-    method public void removeHotplugEventListener(android.hardware.hdmi.HdmiControlManager.HotplugEventListener);
-    method public void setStandbyMode(boolean);
-    field public static final java.lang.String ACTION_OSD_MESSAGE = "android.hardware.hdmi.action.OSD_MESSAGE";
+    method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void addHotplugEventListener(android.hardware.hdmi.HdmiControlManager.HotplugEventListener);
+    method @Nullable public android.hardware.hdmi.HdmiClient getClient(int);
+    method @Nullable public android.hardware.hdmi.HdmiPlaybackClient getPlaybackClient();
+    method @Nullable public android.hardware.hdmi.HdmiTvClient getTvClient();
+    method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void removeHotplugEventListener(android.hardware.hdmi.HdmiControlManager.HotplugEventListener);
+    method @RequiresPermission(android.Manifest.permission.HDMI_CEC) public void setStandbyMode(boolean);
+    field public static final String ACTION_OSD_MESSAGE = "android.hardware.hdmi.action.OSD_MESSAGE";
     field public static final int AVR_VOLUME_MUTED = 101; // 0x65
     field public static final int CLEAR_TIMER_STATUS_CEC_DISABLE = 162; // 0xa2
     field public static final int CLEAR_TIMER_STATUS_CHECK_RECORDER_CONNECTION = 160; // 0xa0
@@ -1818,8 +1825,8 @@
     field public static final int DEVICE_EVENT_ADD_DEVICE = 1; // 0x1
     field public static final int DEVICE_EVENT_REMOVE_DEVICE = 2; // 0x2
     field public static final int DEVICE_EVENT_UPDATE_DEVICE = 3; // 0x3
-    field public static final java.lang.String EXTRA_MESSAGE_EXTRA_PARAM1 = "android.hardware.hdmi.extra.MESSAGE_EXTRA_PARAM1";
-    field public static final java.lang.String EXTRA_MESSAGE_ID = "android.hardware.hdmi.extra.MESSAGE_ID";
+    field public static final String EXTRA_MESSAGE_EXTRA_PARAM1 = "android.hardware.hdmi.extra.MESSAGE_EXTRA_PARAM1";
+    field public static final String EXTRA_MESSAGE_ID = "android.hardware.hdmi.extra.MESSAGE_ID";
     field public static final int ONE_TOUCH_RECORD_ALREADY_RECORDING = 18; // 0x12
     field public static final int ONE_TOUCH_RECORD_CEC_DISABLED = 51; // 0x33
     field public static final int ONE_TOUCH_RECORD_CHECK_RECORDER_CONNECTION = 49; // 0x31
@@ -1855,7 +1862,7 @@
     field public static final int POWER_STATUS_TRANSIENT_TO_ON = 2; // 0x2
     field public static final int POWER_STATUS_TRANSIENT_TO_STANDBY = 3; // 0x3
     field public static final int POWER_STATUS_UNKNOWN = -1; // 0xffffffff
-    field public static final deprecated int RESULT_ALREADY_IN_PROGRESS = 4; // 0x4
+    field @Deprecated public static final int RESULT_ALREADY_IN_PROGRESS = 4; // 0x4
     field public static final int RESULT_COMMUNICATION_FAILED = 7; // 0x7
     field public static final int RESULT_EXCEPTION = 5; // 0x5
     field public static final int RESULT_INCORRECT_MODE = 6; // 0x6
@@ -1890,13 +1897,13 @@
     field public static final int TIMER_STATUS_PROGRAMMED_INFO_NO_MEDIA_INFO = 10; // 0xa
   }
 
-  public static abstract interface HdmiControlManager.HotplugEventListener {
-    method public abstract void onReceived(android.hardware.hdmi.HdmiHotplugEvent);
+  public static interface HdmiControlManager.HotplugEventListener {
+    method public void onReceived(android.hardware.hdmi.HdmiHotplugEvent);
   }
 
-  public static abstract interface HdmiControlManager.VendorCommandListener {
-    method public abstract void onControlStateChanged(boolean, int);
-    method public abstract void onReceived(int, int, byte[], boolean);
+  public static interface HdmiControlManager.VendorCommandListener {
+    method public void onControlStateChanged(boolean, int);
+    method public void onReceived(int, int, byte[], boolean);
   }
 
   public class HdmiDeviceInfo implements android.os.Parcelable {
@@ -1906,7 +1913,7 @@
     method public int getDeviceId();
     method public int getDevicePowerStatus();
     method public int getDeviceType();
-    method public java.lang.String getDisplayName();
+    method public String getDisplayName();
     method public int getId();
     method public int getLogicalAddress();
     method public int getPhysicalAddress();
@@ -1951,12 +1958,12 @@
     method public void sendStandby();
   }
 
-  public static abstract interface HdmiPlaybackClient.DisplayStatusCallback {
-    method public abstract void onComplete(int);
+  public static interface HdmiPlaybackClient.DisplayStatusCallback {
+    method public void onComplete(int);
   }
 
-  public static abstract interface HdmiPlaybackClient.OneTouchPlayCallback {
-    method public abstract void onComplete(int);
+  public static interface HdmiPlaybackClient.OneTouchPlayCallback {
+    method public void onComplete(int);
   }
 
   public final class HdmiPortInfo implements android.os.Parcelable {
@@ -2013,7 +2020,7 @@
   public static final class HdmiRecordSources.OwnSource extends android.hardware.hdmi.HdmiRecordSources.RecordSource {
   }
 
-  public static abstract class HdmiRecordSources.RecordSource {
+  public abstract static class HdmiRecordSources.RecordSource {
   }
 
   public class HdmiTimerRecordSources {
@@ -2049,34 +2056,34 @@
 
   public final class HdmiTvClient extends android.hardware.hdmi.HdmiClient {
     method public void clearTimerRecording(int, int, android.hardware.hdmi.HdmiTimerRecordSources.TimerRecordSource);
-    method public void deviceSelect(int, android.hardware.hdmi.HdmiTvClient.SelectCallback);
+    method public void deviceSelect(int, @NonNull android.hardware.hdmi.HdmiTvClient.SelectCallback);
     method public java.util.List<android.hardware.hdmi.HdmiDeviceInfo> getDeviceList();
     method public int getDeviceType();
-    method public void portSelect(int, android.hardware.hdmi.HdmiTvClient.SelectCallback);
+    method public void portSelect(int, @NonNull android.hardware.hdmi.HdmiTvClient.SelectCallback);
     method public void sendMhlVendorCommand(int, int, int, byte[]);
     method public void sendStandby(int);
     method public void setHdmiMhlVendorCommandListener(android.hardware.hdmi.HdmiTvClient.HdmiMhlVendorCommandListener);
     method public void setInputChangeListener(android.hardware.hdmi.HdmiTvClient.InputChangeListener);
-    method public void setRecordListener(android.hardware.hdmi.HdmiRecordListener);
+    method public void setRecordListener(@NonNull android.hardware.hdmi.HdmiRecordListener);
     method public void setSystemAudioMode(boolean, android.hardware.hdmi.HdmiTvClient.SelectCallback);
     method public void setSystemAudioMute(boolean);
     method public void setSystemAudioVolume(int, int, int);
-    method public void startOneTouchRecord(int, android.hardware.hdmi.HdmiRecordSources.RecordSource);
+    method public void startOneTouchRecord(int, @NonNull android.hardware.hdmi.HdmiRecordSources.RecordSource);
     method public void startTimerRecording(int, int, android.hardware.hdmi.HdmiTimerRecordSources.TimerRecordSource);
     method public void stopOneTouchRecord(int);
     field public static final int VENDOR_DATA_SIZE = 16; // 0x10
   }
 
-  public static abstract interface HdmiTvClient.HdmiMhlVendorCommandListener {
-    method public abstract void onReceived(int, int, int, byte[]);
+  public static interface HdmiTvClient.HdmiMhlVendorCommandListener {
+    method public void onReceived(int, int, int, byte[]);
   }
 
-  public static abstract interface HdmiTvClient.InputChangeListener {
-    method public abstract void onChanged(android.hardware.hdmi.HdmiDeviceInfo);
+  public static interface HdmiTvClient.InputChangeListener {
+    method public void onChanged(android.hardware.hdmi.HdmiDeviceInfo);
   }
 
-  public static abstract interface HdmiTvClient.SelectCallback {
-    method public abstract void onComplete(int);
+  public static interface HdmiTvClient.SelectCallback {
+    method public void onComplete(int);
   }
 
 }
@@ -2085,8 +2092,8 @@
 
   public class ContextHubClient implements java.io.Closeable {
     method public void close();
-    method public android.hardware.location.ContextHubInfo getAttachedHub();
-    method public int sendMessageToNanoApp(android.hardware.location.NanoAppMessage);
+    method @NonNull public android.hardware.location.ContextHubInfo getAttachedHub();
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int sendMessageToNanoApp(@NonNull android.hardware.location.NanoAppMessage);
   }
 
   public class ContextHubClientCallback {
@@ -2110,7 +2117,7 @@
     method public int getId();
     method public int getMaxPacketLengthBytes();
     method public android.hardware.location.MemoryRegion[] getMemoryRegions();
-    method public java.lang.String getName();
+    method public String getName();
     method public float getPeakMips();
     method public float getPeakPowerDrawMw();
     method public int getPlatformVersion();
@@ -2118,42 +2125,42 @@
     method public int getStaticSwVersion();
     method public float getStoppedPowerDrawMw();
     method public int[] getSupportedSensors();
-    method public java.lang.String getToolchain();
+    method public String getToolchain();
     method public int getToolchainVersion();
-    method public java.lang.String getVendor();
+    method public String getVendor();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.location.ContextHubInfo> CREATOR;
   }
 
   public class ContextHubIntentEvent {
-    method public static android.hardware.location.ContextHubIntentEvent fromIntent(android.content.Intent);
-    method public android.hardware.location.ContextHubInfo getContextHubInfo();
+    method @NonNull public static android.hardware.location.ContextHubIntentEvent fromIntent(@NonNull android.content.Intent);
+    method @NonNull public android.hardware.location.ContextHubInfo getContextHubInfo();
     method public int getEventType();
     method public int getNanoAppAbortCode();
     method public long getNanoAppId();
-    method public android.hardware.location.NanoAppMessage getNanoAppMessage();
+    method @NonNull public android.hardware.location.NanoAppMessage getNanoAppMessage();
   }
 
   public final class ContextHubManager {
-    method public android.hardware.location.ContextHubClient createClient(android.hardware.location.ContextHubInfo, android.hardware.location.ContextHubClientCallback, java.util.concurrent.Executor);
-    method public android.hardware.location.ContextHubClient createClient(android.hardware.location.ContextHubInfo, android.hardware.location.ContextHubClientCallback);
-    method public android.hardware.location.ContextHubClient createClient(android.hardware.location.ContextHubInfo, android.app.PendingIntent, long);
-    method public android.hardware.location.ContextHubTransaction<java.lang.Void> disableNanoApp(android.hardware.location.ContextHubInfo, long);
-    method public android.hardware.location.ContextHubTransaction<java.lang.Void> enableNanoApp(android.hardware.location.ContextHubInfo, long);
-    method public deprecated int[] findNanoAppOnHub(int, android.hardware.location.NanoAppFilter);
-    method public deprecated int[] getContextHubHandles();
-    method public deprecated android.hardware.location.ContextHubInfo getContextHubInfo(int);
-    method public java.util.List<android.hardware.location.ContextHubInfo> getContextHubs();
-    method public deprecated android.hardware.location.NanoAppInstanceInfo getNanoAppInstanceInfo(int);
-    method public deprecated int loadNanoApp(int, android.hardware.location.NanoApp);
-    method public android.hardware.location.ContextHubTransaction<java.lang.Void> loadNanoApp(android.hardware.location.ContextHubInfo, android.hardware.location.NanoAppBinary);
-    method public android.hardware.location.ContextHubTransaction<java.util.List<android.hardware.location.NanoAppState>> queryNanoApps(android.hardware.location.ContextHubInfo);
-    method public deprecated int registerCallback(android.hardware.location.ContextHubManager.Callback);
-    method public deprecated int registerCallback(android.hardware.location.ContextHubManager.Callback, android.os.Handler);
-    method public deprecated int sendMessage(int, int, android.hardware.location.ContextHubMessage);
-    method public deprecated int unloadNanoApp(int);
-    method public android.hardware.location.ContextHubTransaction<java.lang.Void> unloadNanoApp(android.hardware.location.ContextHubInfo, long);
-    method public deprecated int unregisterCallback(android.hardware.location.ContextHubManager.Callback);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public android.hardware.location.ContextHubClient createClient(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.ContextHubClientCallback, @NonNull java.util.concurrent.Executor);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public android.hardware.location.ContextHubClient createClient(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.ContextHubClientCallback);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public android.hardware.location.ContextHubClient createClient(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.app.PendingIntent, long);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public android.hardware.location.ContextHubTransaction<java.lang.Void> disableNanoApp(@NonNull android.hardware.location.ContextHubInfo, long);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public android.hardware.location.ContextHubTransaction<java.lang.Void> enableNanoApp(@NonNull android.hardware.location.ContextHubInfo, long);
+    method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int[] findNanoAppOnHub(int, @NonNull android.hardware.location.NanoAppFilter);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int[] getContextHubHandles();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.ContextHubInfo getContextHubInfo(int);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public java.util.List<android.hardware.location.ContextHubInfo> getContextHubs();
+    method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.hardware.location.NanoAppInstanceInfo getNanoAppInstanceInfo(int);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int loadNanoApp(int, @NonNull android.hardware.location.NanoApp);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public android.hardware.location.ContextHubTransaction<java.lang.Void> loadNanoApp(@NonNull android.hardware.location.ContextHubInfo, @NonNull android.hardware.location.NanoAppBinary);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public android.hardware.location.ContextHubTransaction<java.util.List<android.hardware.location.NanoAppState>> queryNanoApps(@NonNull android.hardware.location.ContextHubInfo);
+    method @Deprecated public int registerCallback(@NonNull android.hardware.location.ContextHubManager.Callback);
+    method @Deprecated public int registerCallback(android.hardware.location.ContextHubManager.Callback, android.os.Handler);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int sendMessage(int, int, @NonNull android.hardware.location.ContextHubMessage);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int unloadNanoApp(int);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) @NonNull public android.hardware.location.ContextHubTransaction<java.lang.Void> unloadNanoApp(@NonNull android.hardware.location.ContextHubInfo, long);
+    method @Deprecated public int unregisterCallback(@NonNull android.hardware.location.ContextHubManager.Callback);
     field public static final int EVENT_HUB_RESET = 6; // 0x6
     field public static final int EVENT_NANOAPP_ABORTED = 4; // 0x4
     field public static final int EVENT_NANOAPP_DISABLED = 3; // 0x3
@@ -2161,36 +2168,36 @@
     field public static final int EVENT_NANOAPP_LOADED = 0; // 0x0
     field public static final int EVENT_NANOAPP_MESSAGE = 5; // 0x5
     field public static final int EVENT_NANOAPP_UNLOADED = 1; // 0x1
-    field public static final java.lang.String EXTRA_CONTEXT_HUB_INFO = "android.hardware.location.extra.CONTEXT_HUB_INFO";
-    field public static final java.lang.String EXTRA_EVENT_TYPE = "android.hardware.location.extra.EVENT_TYPE";
-    field public static final java.lang.String EXTRA_MESSAGE = "android.hardware.location.extra.MESSAGE";
-    field public static final java.lang.String EXTRA_NANOAPP_ABORT_CODE = "android.hardware.location.extra.NANOAPP_ABORT_CODE";
-    field public static final java.lang.String EXTRA_NANOAPP_ID = "android.hardware.location.extra.NANOAPP_ID";
+    field public static final String EXTRA_CONTEXT_HUB_INFO = "android.hardware.location.extra.CONTEXT_HUB_INFO";
+    field public static final String EXTRA_EVENT_TYPE = "android.hardware.location.extra.EVENT_TYPE";
+    field public static final String EXTRA_MESSAGE = "android.hardware.location.extra.MESSAGE";
+    field public static final String EXTRA_NANOAPP_ABORT_CODE = "android.hardware.location.extra.NANOAPP_ABORT_CODE";
+    field public static final String EXTRA_NANOAPP_ID = "android.hardware.location.extra.NANOAPP_ID";
   }
 
-  public static abstract deprecated class ContextHubManager.Callback {
-    ctor protected ContextHubManager.Callback();
-    method public abstract void onMessageReceipt(int, int, android.hardware.location.ContextHubMessage);
+  @Deprecated public abstract static class ContextHubManager.Callback {
+    ctor @Deprecated protected ContextHubManager.Callback();
+    method @Deprecated public abstract void onMessageReceipt(int, int, @NonNull android.hardware.location.ContextHubMessage);
   }
 
-  public deprecated class ContextHubMessage implements android.os.Parcelable {
-    ctor public ContextHubMessage(int, int, byte[]);
-    method public int describeContents();
-    method public byte[] getData();
-    method public int getMsgType();
-    method public int getVersion();
-    method public void setMsgData(byte[]);
-    method public void setMsgType(int);
-    method public void setVersion(int);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.hardware.location.ContextHubMessage> CREATOR;
+  @Deprecated public class ContextHubMessage implements android.os.Parcelable {
+    ctor @Deprecated public ContextHubMessage(int, int, byte[]);
+    method @Deprecated public int describeContents();
+    method @Deprecated public byte[] getData();
+    method @Deprecated public int getMsgType();
+    method @Deprecated public int getVersion();
+    method @Deprecated public void setMsgData(byte[]);
+    method @Deprecated public void setMsgType(int);
+    method @Deprecated public void setVersion(int);
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.hardware.location.ContextHubMessage> CREATOR;
   }
 
   public class ContextHubTransaction<T> {
     method public int getType();
-    method public void setOnCompleteListener(android.hardware.location.ContextHubTransaction.OnCompleteListener<T>, java.util.concurrent.Executor);
-    method public void setOnCompleteListener(android.hardware.location.ContextHubTransaction.OnCompleteListener<T>);
-    method public static java.lang.String typeToString(int, boolean);
+    method public void setOnCompleteListener(@NonNull android.hardware.location.ContextHubTransaction.OnCompleteListener<T>, @NonNull java.util.concurrent.Executor);
+    method public void setOnCompleteListener(@NonNull android.hardware.location.ContextHubTransaction.OnCompleteListener<T>);
+    method public static String typeToString(int, boolean);
     method public android.hardware.location.ContextHubTransaction.Response<T> waitForResponse(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException;
     field public static final int RESULT_FAILED_AT_HUB = 5; // 0x5
     field public static final int RESULT_FAILED_BAD_PARAMS = 2; // 0x2
@@ -2208,8 +2215,8 @@
     field public static final int TYPE_UNLOAD_NANOAPP = 1; // 0x1
   }
 
-  public static abstract interface ContextHubTransaction.OnCompleteListener<L> {
-    method public abstract void onComplete(android.hardware.location.ContextHubTransaction<L>, android.hardware.location.ContextHubTransaction.Response<L>);
+  @java.lang.FunctionalInterface public static interface ContextHubTransaction.OnCompleteListener<L> {
+    method public void onComplete(android.hardware.location.ContextHubTransaction<L>, android.hardware.location.ContextHubTransaction.Response<L>);
   }
 
   public static class ContextHubTransaction.Response<R> {
@@ -2259,7 +2266,7 @@
 
   public abstract class GeofenceHardwareMonitorCallback {
     ctor public GeofenceHardwareMonitorCallback();
-    method public deprecated void onMonitoringSystemChange(int, boolean, android.location.Location);
+    method @Deprecated public void onMonitoringSystemChange(int, boolean, android.location.Location);
     method public void onMonitoringSystemChange(android.hardware.location.GeofenceHardwareMonitorEvent);
   }
 
@@ -2304,33 +2311,33 @@
     field public static final android.os.Parcelable.Creator<android.hardware.location.MemoryRegion> CREATOR;
   }
 
-  public deprecated class NanoApp implements android.os.Parcelable {
-    ctor public NanoApp();
-    ctor public deprecated NanoApp(int, byte[]);
-    ctor public NanoApp(long, byte[]);
-    method public int describeContents();
-    method public byte[] getAppBinary();
-    method public long getAppId();
-    method public int getAppVersion();
-    method public java.lang.String getName();
-    method public int getNeededExecMemBytes();
-    method public int getNeededReadMemBytes();
-    method public int[] getNeededSensors();
-    method public int getNeededWriteMemBytes();
-    method public int[] getOutputEvents();
-    method public java.lang.String getPublisher();
-    method public void setAppBinary(byte[]);
-    method public void setAppId(long);
-    method public void setAppVersion(int);
-    method public void setName(java.lang.String);
-    method public void setNeededExecMemBytes(int);
-    method public void setNeededReadMemBytes(int);
-    method public void setNeededSensors(int[]);
-    method public void setNeededWriteMemBytes(int);
-    method public void setOutputEvents(int[]);
-    method public void setPublisher(java.lang.String);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.hardware.location.NanoApp> CREATOR;
+  @Deprecated public class NanoApp implements android.os.Parcelable {
+    ctor @Deprecated public NanoApp();
+    ctor @Deprecated public NanoApp(int, byte[]);
+    ctor @Deprecated public NanoApp(long, byte[]);
+    method @Deprecated public int describeContents();
+    method @Deprecated public byte[] getAppBinary();
+    method @Deprecated public long getAppId();
+    method @Deprecated public int getAppVersion();
+    method @Deprecated public String getName();
+    method @Deprecated public int getNeededExecMemBytes();
+    method @Deprecated public int getNeededReadMemBytes();
+    method @Deprecated public int[] getNeededSensors();
+    method @Deprecated public int getNeededWriteMemBytes();
+    method @Deprecated public int[] getOutputEvents();
+    method @Deprecated public String getPublisher();
+    method @Deprecated public void setAppBinary(byte[]);
+    method @Deprecated public void setAppId(long);
+    method @Deprecated public void setAppVersion(int);
+    method @Deprecated public void setName(String);
+    method @Deprecated public void setNeededExecMemBytes(int);
+    method @Deprecated public void setNeededReadMemBytes(int);
+    method @Deprecated public void setNeededSensors(int[]);
+    method @Deprecated public void setNeededWriteMemBytes(int);
+    method @Deprecated public void setOutputEvents(int[]);
+    method @Deprecated public void setPublisher(String);
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.hardware.location.NanoApp> CREATOR;
   }
 
   public final class NanoAppBinary implements android.os.Parcelable {
@@ -2352,37 +2359,37 @@
     field public static final android.os.Parcelable.Creator<android.hardware.location.NanoAppBinary> CREATOR;
   }
 
-  public deprecated class NanoAppFilter implements android.os.Parcelable {
-    ctor public NanoAppFilter(long, int, int, long);
-    method public int describeContents();
-    method public boolean testMatch(android.hardware.location.NanoAppInstanceInfo);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final int APP_ANY = -1; // 0xffffffff
-    field public static final android.os.Parcelable.Creator<android.hardware.location.NanoAppFilter> CREATOR;
-    field public static final int FLAGS_VERSION_ANY = -1; // 0xffffffff
-    field public static final int FLAGS_VERSION_GREAT_THAN = 2; // 0x2
-    field public static final int FLAGS_VERSION_LESS_THAN = 4; // 0x4
-    field public static final int FLAGS_VERSION_STRICTLY_EQUAL = 8; // 0x8
-    field public static final int HUB_ANY = -1; // 0xffffffff
-    field public static final int VENDOR_ANY = -1; // 0xffffffff
+  @Deprecated public class NanoAppFilter implements android.os.Parcelable {
+    ctor @Deprecated public NanoAppFilter(long, int, int, long);
+    method @Deprecated public int describeContents();
+    method @Deprecated public boolean testMatch(android.hardware.location.NanoAppInstanceInfo);
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final int APP_ANY = -1; // 0xffffffff
+    field @Deprecated public static final android.os.Parcelable.Creator<android.hardware.location.NanoAppFilter> CREATOR;
+    field @Deprecated public static final int FLAGS_VERSION_ANY = -1; // 0xffffffff
+    field @Deprecated public static final int FLAGS_VERSION_GREAT_THAN = 2; // 0x2
+    field @Deprecated public static final int FLAGS_VERSION_LESS_THAN = 4; // 0x4
+    field @Deprecated public static final int FLAGS_VERSION_STRICTLY_EQUAL = 8; // 0x8
+    field @Deprecated public static final int HUB_ANY = -1; // 0xffffffff
+    field @Deprecated public static final int VENDOR_ANY = -1; // 0xffffffff
   }
 
-  public deprecated class NanoAppInstanceInfo implements android.os.Parcelable {
-    ctor public NanoAppInstanceInfo();
-    method public int describeContents();
-    method public long getAppId();
-    method public int getAppVersion();
-    method public int getContexthubId();
-    method public int getHandle();
-    method public java.lang.String getName();
-    method public int getNeededExecMemBytes();
-    method public int getNeededReadMemBytes();
-    method public int[] getNeededSensors();
-    method public int getNeededWriteMemBytes();
-    method public int[] getOutputEvents();
-    method public java.lang.String getPublisher();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.hardware.location.NanoAppInstanceInfo> CREATOR;
+  @Deprecated public class NanoAppInstanceInfo implements android.os.Parcelable {
+    ctor @Deprecated public NanoAppInstanceInfo();
+    method @Deprecated public int describeContents();
+    method @Deprecated public long getAppId();
+    method @Deprecated public int getAppVersion();
+    method @Deprecated public int getContexthubId();
+    method @Deprecated public int getHandle();
+    method @Deprecated public String getName();
+    method @Deprecated public int getNeededExecMemBytes();
+    method @Deprecated public int getNeededReadMemBytes();
+    method @Deprecated @NonNull public int[] getNeededSensors();
+    method @Deprecated public int getNeededWriteMemBytes();
+    method @Deprecated @NonNull public int[] getOutputEvents();
+    method @Deprecated public String getPublisher();
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.hardware.location.NanoAppInstanceInfo> CREATOR;
   }
 
   public final class NanoAppMessage implements android.os.Parcelable {
@@ -2413,9 +2420,9 @@
 
   public final class Announcement implements android.os.Parcelable {
     method public int describeContents();
-    method public android.hardware.radio.ProgramSelector getSelector();
+    method @NonNull public android.hardware.radio.ProgramSelector getSelector();
     method public int getType();
-    method public java.util.Map<java.lang.String, java.lang.String> getVendorInfo();
+    method @NonNull public java.util.Map<java.lang.String,java.lang.String> getVendorInfo();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.radio.Announcement> CREATOR;
     field public static final int TYPE_EMERGENCY = 1; // 0x1
@@ -2428,55 +2435,55 @@
     field public static final int TYPE_WEATHER = 4; // 0x4
   }
 
-  public static abstract interface Announcement.OnListUpdatedListener {
-    method public abstract void onListUpdated(java.util.Collection<android.hardware.radio.Announcement>);
+  public static interface Announcement.OnListUpdatedListener {
+    method public void onListUpdated(java.util.Collection<android.hardware.radio.Announcement>);
   }
 
   public final class ProgramList implements java.lang.AutoCloseable {
-    method public void addOnCompleteListener(java.util.concurrent.Executor, android.hardware.radio.ProgramList.OnCompleteListener);
-    method public void addOnCompleteListener(android.hardware.radio.ProgramList.OnCompleteListener);
+    method public void addOnCompleteListener(@NonNull java.util.concurrent.Executor, @NonNull android.hardware.radio.ProgramList.OnCompleteListener);
+    method public void addOnCompleteListener(@NonNull android.hardware.radio.ProgramList.OnCompleteListener);
     method public void close();
-    method public android.hardware.radio.RadioManager.ProgramInfo get(android.hardware.radio.ProgramSelector.Identifier);
-    method public void registerListCallback(java.util.concurrent.Executor, android.hardware.radio.ProgramList.ListCallback);
-    method public void registerListCallback(android.hardware.radio.ProgramList.ListCallback);
-    method public void removeOnCompleteListener(android.hardware.radio.ProgramList.OnCompleteListener);
-    method public java.util.List<android.hardware.radio.RadioManager.ProgramInfo> toList();
-    method public void unregisterListCallback(android.hardware.radio.ProgramList.ListCallback);
+    method @Nullable public android.hardware.radio.RadioManager.ProgramInfo get(@NonNull android.hardware.radio.ProgramSelector.Identifier);
+    method public void registerListCallback(@NonNull java.util.concurrent.Executor, @NonNull android.hardware.radio.ProgramList.ListCallback);
+    method public void registerListCallback(@NonNull android.hardware.radio.ProgramList.ListCallback);
+    method public void removeOnCompleteListener(@NonNull android.hardware.radio.ProgramList.OnCompleteListener);
+    method @NonNull public java.util.List<android.hardware.radio.RadioManager.ProgramInfo> toList();
+    method public void unregisterListCallback(@NonNull android.hardware.radio.ProgramList.ListCallback);
   }
 
   public static final class ProgramList.Filter implements android.os.Parcelable {
-    ctor public ProgramList.Filter(java.util.Set<java.lang.Integer>, java.util.Set<android.hardware.radio.ProgramSelector.Identifier>, boolean, boolean);
+    ctor public ProgramList.Filter(@NonNull java.util.Set<java.lang.Integer>, @NonNull java.util.Set<android.hardware.radio.ProgramSelector.Identifier>, boolean, boolean);
     method public boolean areCategoriesIncluded();
     method public boolean areModificationsExcluded();
     method public int describeContents();
-    method public java.util.Set<java.lang.Integer> getIdentifierTypes();
-    method public java.util.Set<android.hardware.radio.ProgramSelector.Identifier> getIdentifiers();
+    method @NonNull public java.util.Set<java.lang.Integer> getIdentifierTypes();
+    method @NonNull public java.util.Set<android.hardware.radio.ProgramSelector.Identifier> getIdentifiers();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.radio.ProgramList.Filter> CREATOR;
   }
 
-  public static abstract class ProgramList.ListCallback {
+  public abstract static class ProgramList.ListCallback {
     ctor public ProgramList.ListCallback();
-    method public void onItemChanged(android.hardware.radio.ProgramSelector.Identifier);
-    method public void onItemRemoved(android.hardware.radio.ProgramSelector.Identifier);
+    method public void onItemChanged(@NonNull android.hardware.radio.ProgramSelector.Identifier);
+    method public void onItemRemoved(@NonNull android.hardware.radio.ProgramSelector.Identifier);
   }
 
-  public static abstract interface ProgramList.OnCompleteListener {
-    method public abstract void onComplete();
+  public static interface ProgramList.OnCompleteListener {
+    method public void onComplete();
   }
 
   public final class ProgramSelector implements android.os.Parcelable {
-    ctor public ProgramSelector(int, android.hardware.radio.ProgramSelector.Identifier, android.hardware.radio.ProgramSelector.Identifier[], long[]);
-    method public static android.hardware.radio.ProgramSelector createAmFmSelector(int, int);
-    method public static android.hardware.radio.ProgramSelector createAmFmSelector(int, int, int);
+    ctor public ProgramSelector(@android.hardware.radio.ProgramSelector.ProgramType int, @NonNull android.hardware.radio.ProgramSelector.Identifier, @Nullable android.hardware.radio.ProgramSelector.Identifier[], @Nullable long[]);
+    method @NonNull public static android.hardware.radio.ProgramSelector createAmFmSelector(@android.hardware.radio.RadioManager.Band int, int);
+    method @NonNull public static android.hardware.radio.ProgramSelector createAmFmSelector(@android.hardware.radio.RadioManager.Band int, int, int);
     method public int describeContents();
-    method public android.hardware.radio.ProgramSelector.Identifier[] getAllIds(int);
-    method public long getFirstId(int);
-    method public android.hardware.radio.ProgramSelector.Identifier getPrimaryId();
-    method public deprecated int getProgramType();
-    method public android.hardware.radio.ProgramSelector.Identifier[] getSecondaryIds();
-    method public deprecated long[] getVendorIds();
-    method public android.hardware.radio.ProgramSelector withSecondaryPreferred(android.hardware.radio.ProgramSelector.Identifier);
+    method @NonNull public android.hardware.radio.ProgramSelector.Identifier[] getAllIds(@android.hardware.radio.ProgramSelector.IdentifierType int);
+    method public long getFirstId(@android.hardware.radio.ProgramSelector.IdentifierType int);
+    method @NonNull public android.hardware.radio.ProgramSelector.Identifier getPrimaryId();
+    method @Deprecated @android.hardware.radio.ProgramSelector.ProgramType public int getProgramType();
+    method @NonNull public android.hardware.radio.ProgramSelector.Identifier[] getSecondaryIds();
+    method @Deprecated @NonNull public long[] getVendorIds();
+    method @NonNull public android.hardware.radio.ProgramSelector withSecondaryPreferred(@NonNull android.hardware.radio.ProgramSelector.Identifier);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.radio.ProgramSelector> CREATOR;
     field public static final int IDENTIFIER_TYPE_AMFM_FREQUENCY = 1; // 0x1
@@ -2486,52 +2493,52 @@
     field public static final int IDENTIFIER_TYPE_DAB_SIDECC = 5; // 0x5
     field public static final int IDENTIFIER_TYPE_DAB_SID_EXT = 5; // 0x5
     field public static final int IDENTIFIER_TYPE_DRMO_FREQUENCY = 10; // 0xa
-    field public static final deprecated int IDENTIFIER_TYPE_DRMO_MODULATION = 11; // 0xb
+    field @Deprecated public static final int IDENTIFIER_TYPE_DRMO_MODULATION = 11; // 0xb
     field public static final int IDENTIFIER_TYPE_DRMO_SERVICE_ID = 9; // 0x9
     field public static final int IDENTIFIER_TYPE_HD_STATION_ID_EXT = 3; // 0x3
     field public static final int IDENTIFIER_TYPE_HD_STATION_NAME = 10004; // 0x2714
-    field public static final deprecated int IDENTIFIER_TYPE_HD_SUBCHANNEL = 4; // 0x4
+    field @Deprecated public static final int IDENTIFIER_TYPE_HD_SUBCHANNEL = 4; // 0x4
     field public static final int IDENTIFIER_TYPE_INVALID = 0; // 0x0
     field public static final int IDENTIFIER_TYPE_RDS_PI = 2; // 0x2
     field public static final int IDENTIFIER_TYPE_SXM_CHANNEL = 13; // 0xd
     field public static final int IDENTIFIER_TYPE_SXM_SERVICE_ID = 12; // 0xc
     field public static final int IDENTIFIER_TYPE_VENDOR_END = 1999; // 0x7cf
-    field public static final deprecated int IDENTIFIER_TYPE_VENDOR_PRIMARY_END = 1999; // 0x7cf
-    field public static final deprecated int IDENTIFIER_TYPE_VENDOR_PRIMARY_START = 1000; // 0x3e8
+    field @Deprecated public static final int IDENTIFIER_TYPE_VENDOR_PRIMARY_END = 1999; // 0x7cf
+    field @Deprecated public static final int IDENTIFIER_TYPE_VENDOR_PRIMARY_START = 1000; // 0x3e8
     field public static final int IDENTIFIER_TYPE_VENDOR_START = 1000; // 0x3e8
-    field public static final deprecated int PROGRAM_TYPE_AM = 1; // 0x1
-    field public static final deprecated int PROGRAM_TYPE_AM_HD = 3; // 0x3
-    field public static final deprecated int PROGRAM_TYPE_DAB = 5; // 0x5
-    field public static final deprecated int PROGRAM_TYPE_DRMO = 6; // 0x6
-    field public static final deprecated int PROGRAM_TYPE_FM = 2; // 0x2
-    field public static final deprecated int PROGRAM_TYPE_FM_HD = 4; // 0x4
-    field public static final deprecated int PROGRAM_TYPE_INVALID = 0; // 0x0
-    field public static final deprecated int PROGRAM_TYPE_SXM = 7; // 0x7
-    field public static final deprecated int PROGRAM_TYPE_VENDOR_END = 1999; // 0x7cf
-    field public static final deprecated int PROGRAM_TYPE_VENDOR_START = 1000; // 0x3e8
+    field @Deprecated public static final int PROGRAM_TYPE_AM = 1; // 0x1
+    field @Deprecated public static final int PROGRAM_TYPE_AM_HD = 3; // 0x3
+    field @Deprecated public static final int PROGRAM_TYPE_DAB = 5; // 0x5
+    field @Deprecated public static final int PROGRAM_TYPE_DRMO = 6; // 0x6
+    field @Deprecated public static final int PROGRAM_TYPE_FM = 2; // 0x2
+    field @Deprecated public static final int PROGRAM_TYPE_FM_HD = 4; // 0x4
+    field @Deprecated public static final int PROGRAM_TYPE_INVALID = 0; // 0x0
+    field @Deprecated public static final int PROGRAM_TYPE_SXM = 7; // 0x7
+    field @Deprecated public static final int PROGRAM_TYPE_VENDOR_END = 1999; // 0x7cf
+    field @Deprecated public static final int PROGRAM_TYPE_VENDOR_START = 1000; // 0x3e8
   }
 
   public static final class ProgramSelector.Identifier implements android.os.Parcelable {
-    ctor public ProgramSelector.Identifier(int, long);
+    ctor public ProgramSelector.Identifier(@android.hardware.radio.ProgramSelector.IdentifierType int, long);
     method public int describeContents();
-    method public int getType();
+    method @android.hardware.radio.ProgramSelector.IdentifierType public int getType();
     method public long getValue();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.radio.ProgramSelector.Identifier> CREATOR;
   }
 
-  public static abstract class ProgramSelector.IdentifierType implements java.lang.annotation.Annotation {
+  @IntDef(prefix={"IDENTIFIER_TYPE_"}, value={android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_INVALID, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_AMFM_FREQUENCY, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_RDS_PI, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_HD_STATION_ID_EXT, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_HD_SUBCHANNEL, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_HD_STATION_NAME, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_DAB_SID_EXT, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_DAB_SIDECC, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_DAB_ENSEMBLE, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_DAB_SCID, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_DAB_FREQUENCY, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_DRMO_SERVICE_ID, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_DRMO_FREQUENCY, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_DRMO_MODULATION, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_SXM_SERVICE_ID, android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_SXM_CHANNEL}) @IntRange(from=android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_VENDOR_START, to=android.hardware.radio.ProgramSelector.IDENTIFIER_TYPE_VENDOR_END) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ProgramSelector.IdentifierType {
   }
 
-  public static abstract deprecated class ProgramSelector.ProgramType implements java.lang.annotation.Annotation {
+  @Deprecated @IntDef(prefix={"PROGRAM_TYPE_"}, value={android.hardware.radio.ProgramSelector.PROGRAM_TYPE_INVALID, android.hardware.radio.ProgramSelector.PROGRAM_TYPE_AM, android.hardware.radio.ProgramSelector.PROGRAM_TYPE_FM, android.hardware.radio.ProgramSelector.PROGRAM_TYPE_AM_HD, android.hardware.radio.ProgramSelector.PROGRAM_TYPE_FM_HD, android.hardware.radio.ProgramSelector.PROGRAM_TYPE_DAB, android.hardware.radio.ProgramSelector.PROGRAM_TYPE_DRMO, android.hardware.radio.ProgramSelector.PROGRAM_TYPE_SXM}) @IntRange(from=android.hardware.radio.ProgramSelector.PROGRAM_TYPE_VENDOR_START, to=android.hardware.radio.ProgramSelector.PROGRAM_TYPE_VENDOR_END) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ProgramSelector.ProgramType {
   }
 
   public class RadioManager {
-    method public void addAnnouncementListener(java.util.Set<java.lang.Integer>, android.hardware.radio.Announcement.OnListUpdatedListener);
-    method public void addAnnouncementListener(java.util.concurrent.Executor, java.util.Set<java.lang.Integer>, android.hardware.radio.Announcement.OnListUpdatedListener);
-    method public int listModules(java.util.List<android.hardware.radio.RadioManager.ModuleProperties>);
-    method public android.hardware.radio.RadioTuner openTuner(int, android.hardware.radio.RadioManager.BandConfig, boolean, android.hardware.radio.RadioTuner.Callback, android.os.Handler);
-    method public void removeAnnouncementListener(android.hardware.radio.Announcement.OnListUpdatedListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_BROADCAST_RADIO) public void addAnnouncementListener(@NonNull java.util.Set<java.lang.Integer>, @NonNull android.hardware.radio.Announcement.OnListUpdatedListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_BROADCAST_RADIO) public void addAnnouncementListener(@NonNull java.util.concurrent.Executor, @NonNull java.util.Set<java.lang.Integer>, @NonNull android.hardware.radio.Announcement.OnListUpdatedListener);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_BROADCAST_RADIO) public int listModules(java.util.List<android.hardware.radio.RadioManager.ModuleProperties>);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_BROADCAST_RADIO) public android.hardware.radio.RadioTuner openTuner(int, android.hardware.radio.RadioManager.BandConfig, boolean, android.hardware.radio.RadioTuner.Callback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.ACCESS_BROADCAST_RADIO) public void removeAnnouncementListener(@NonNull android.hardware.radio.Announcement.OnListUpdatedListener);
     field public static final int BAND_AM = 0; // 0x0
     field public static final int BAND_AM_HD = 3; // 0x3
     field public static final int BAND_FM = 1; // 0x1
@@ -2581,7 +2588,7 @@
     field public static final android.os.Parcelable.Creator<android.hardware.radio.RadioManager.AmBandDescriptor> CREATOR;
   }
 
-  public static abstract class RadioManager.Band implements java.lang.annotation.Annotation {
+  @IntDef(prefix={"BAND_"}, value={android.hardware.radio.RadioManager.BAND_INVALID, android.hardware.radio.RadioManager.BAND_AM, android.hardware.radio.RadioManager.BAND_FM, android.hardware.radio.RadioManager.BAND_AM_HD, android.hardware.radio.RadioManager.BAND_FM_HD}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface RadioManager.Band {
   }
 
   public static class RadioManager.BandConfig implements android.os.Parcelable {
@@ -2641,37 +2648,37 @@
     method public int describeContents();
     method public android.hardware.radio.RadioManager.BandDescriptor[] getBands();
     method public int getClassId();
-    method public java.util.Map<java.lang.String, java.lang.Integer> getDabFrequencyTable();
+    method @Nullable public java.util.Map<java.lang.String,java.lang.Integer> getDabFrequencyTable();
     method public int getId();
-    method public java.lang.String getImplementor();
+    method public String getImplementor();
     method public int getNumAudioSources();
     method public int getNumTuners();
-    method public java.lang.String getProduct();
-    method public java.lang.String getSerial();
-    method public java.lang.String getServiceName();
-    method public java.util.Map<java.lang.String, java.lang.String> getVendorInfo();
-    method public java.lang.String getVersion();
+    method public String getProduct();
+    method public String getSerial();
+    method @NonNull public String getServiceName();
+    method @NonNull public java.util.Map<java.lang.String,java.lang.String> getVendorInfo();
+    method public String getVersion();
     method public boolean isBackgroundScanningSupported();
     method public boolean isCaptureSupported();
     method public boolean isInitializationRequired();
-    method public boolean isProgramIdentifierSupported(int);
-    method public boolean isProgramTypeSupported(int);
+    method public boolean isProgramIdentifierSupported(@android.hardware.radio.ProgramSelector.IdentifierType int);
+    method public boolean isProgramTypeSupported(@android.hardware.radio.ProgramSelector.ProgramType int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.radio.RadioManager.ModuleProperties> CREATOR;
   }
 
   public static class RadioManager.ProgramInfo implements android.os.Parcelable {
     method public int describeContents();
-    method public deprecated int getChannel();
-    method public android.hardware.radio.ProgramSelector.Identifier getLogicallyTunedTo();
+    method @Deprecated public int getChannel();
+    method @Nullable public android.hardware.radio.ProgramSelector.Identifier getLogicallyTunedTo();
     method public android.hardware.radio.RadioMetadata getMetadata();
-    method public android.hardware.radio.ProgramSelector.Identifier getPhysicallyTunedTo();
-    method public java.util.Collection<android.hardware.radio.ProgramSelector.Identifier> getRelatedContent();
-    method public android.hardware.radio.ProgramSelector getSelector();
+    method @Nullable public android.hardware.radio.ProgramSelector.Identifier getPhysicallyTunedTo();
+    method @Nullable public java.util.Collection<android.hardware.radio.ProgramSelector.Identifier> getRelatedContent();
+    method @NonNull public android.hardware.radio.ProgramSelector getSelector();
     method public int getSignalStrength();
-    method public deprecated int getSubChannel();
-    method public java.util.Map<java.lang.String, java.lang.String> getVendorInfo();
-    method public deprecated boolean isDigital();
+    method @Deprecated public int getSubChannel();
+    method @NonNull public java.util.Map<java.lang.String,java.lang.String> getVendorInfo();
+    method @Deprecated public boolean isDigital();
     method public boolean isLive();
     method public boolean isMuted();
     method public boolean isStereo();
@@ -2683,45 +2690,45 @@
   }
 
   public final class RadioMetadata implements android.os.Parcelable {
-    method public boolean containsKey(java.lang.String);
+    method public boolean containsKey(String);
     method public int describeContents();
-    method public deprecated android.graphics.Bitmap getBitmap(java.lang.String);
-    method public android.hardware.radio.RadioMetadata.Clock getClock(java.lang.String);
-    method public int getInt(java.lang.String);
-    method public java.lang.String getString(java.lang.String);
+    method @Deprecated public android.graphics.Bitmap getBitmap(String);
+    method public android.hardware.radio.RadioMetadata.Clock getClock(String);
+    method public int getInt(String);
+    method public String getString(String);
     method public java.util.Set<java.lang.String> keySet();
     method public int size();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.radio.RadioMetadata> CREATOR;
-    field public static final java.lang.String METADATA_KEY_ALBUM = "android.hardware.radio.metadata.ALBUM";
-    field public static final java.lang.String METADATA_KEY_ART = "android.hardware.radio.metadata.ART";
-    field public static final java.lang.String METADATA_KEY_ARTIST = "android.hardware.radio.metadata.ARTIST";
-    field public static final java.lang.String METADATA_KEY_CLOCK = "android.hardware.radio.metadata.CLOCK";
-    field public static final java.lang.String METADATA_KEY_DAB_COMPONENT_NAME = "android.hardware.radio.metadata.DAB_COMPONENT_NAME";
-    field public static final java.lang.String METADATA_KEY_DAB_COMPONENT_NAME_SHORT = "android.hardware.radio.metadata.DAB_COMPONENT_NAME_SHORT";
-    field public static final java.lang.String METADATA_KEY_DAB_ENSEMBLE_NAME = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME";
-    field public static final java.lang.String METADATA_KEY_DAB_ENSEMBLE_NAME_SHORT = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME_SHORT";
-    field public static final java.lang.String METADATA_KEY_DAB_SERVICE_NAME = "android.hardware.radio.metadata.DAB_SERVICE_NAME";
-    field public static final java.lang.String METADATA_KEY_DAB_SERVICE_NAME_SHORT = "android.hardware.radio.metadata.DAB_SERVICE_NAME_SHORT";
-    field public static final java.lang.String METADATA_KEY_GENRE = "android.hardware.radio.metadata.GENRE";
-    field public static final java.lang.String METADATA_KEY_ICON = "android.hardware.radio.metadata.ICON";
-    field public static final java.lang.String METADATA_KEY_PROGRAM_NAME = "android.hardware.radio.metadata.PROGRAM_NAME";
-    field public static final java.lang.String METADATA_KEY_RBDS_PTY = "android.hardware.radio.metadata.RBDS_PTY";
-    field public static final java.lang.String METADATA_KEY_RDS_PI = "android.hardware.radio.metadata.RDS_PI";
-    field public static final java.lang.String METADATA_KEY_RDS_PS = "android.hardware.radio.metadata.RDS_PS";
-    field public static final java.lang.String METADATA_KEY_RDS_PTY = "android.hardware.radio.metadata.RDS_PTY";
-    field public static final java.lang.String METADATA_KEY_RDS_RT = "android.hardware.radio.metadata.RDS_RT";
-    field public static final java.lang.String METADATA_KEY_TITLE = "android.hardware.radio.metadata.TITLE";
+    field public static final String METADATA_KEY_ALBUM = "android.hardware.radio.metadata.ALBUM";
+    field public static final String METADATA_KEY_ART = "android.hardware.radio.metadata.ART";
+    field public static final String METADATA_KEY_ARTIST = "android.hardware.radio.metadata.ARTIST";
+    field public static final String METADATA_KEY_CLOCK = "android.hardware.radio.metadata.CLOCK";
+    field public static final String METADATA_KEY_DAB_COMPONENT_NAME = "android.hardware.radio.metadata.DAB_COMPONENT_NAME";
+    field public static final String METADATA_KEY_DAB_COMPONENT_NAME_SHORT = "android.hardware.radio.metadata.DAB_COMPONENT_NAME_SHORT";
+    field public static final String METADATA_KEY_DAB_ENSEMBLE_NAME = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME";
+    field public static final String METADATA_KEY_DAB_ENSEMBLE_NAME_SHORT = "android.hardware.radio.metadata.DAB_ENSEMBLE_NAME_SHORT";
+    field public static final String METADATA_KEY_DAB_SERVICE_NAME = "android.hardware.radio.metadata.DAB_SERVICE_NAME";
+    field public static final String METADATA_KEY_DAB_SERVICE_NAME_SHORT = "android.hardware.radio.metadata.DAB_SERVICE_NAME_SHORT";
+    field public static final String METADATA_KEY_GENRE = "android.hardware.radio.metadata.GENRE";
+    field public static final String METADATA_KEY_ICON = "android.hardware.radio.metadata.ICON";
+    field public static final String METADATA_KEY_PROGRAM_NAME = "android.hardware.radio.metadata.PROGRAM_NAME";
+    field public static final String METADATA_KEY_RBDS_PTY = "android.hardware.radio.metadata.RBDS_PTY";
+    field public static final String METADATA_KEY_RDS_PI = "android.hardware.radio.metadata.RDS_PI";
+    field public static final String METADATA_KEY_RDS_PS = "android.hardware.radio.metadata.RDS_PS";
+    field public static final String METADATA_KEY_RDS_PTY = "android.hardware.radio.metadata.RDS_PTY";
+    field public static final String METADATA_KEY_RDS_RT = "android.hardware.radio.metadata.RDS_RT";
+    field public static final String METADATA_KEY_TITLE = "android.hardware.radio.metadata.TITLE";
   }
 
   public static final class RadioMetadata.Builder {
     ctor public RadioMetadata.Builder();
     ctor public RadioMetadata.Builder(android.hardware.radio.RadioMetadata);
     method public android.hardware.radio.RadioMetadata build();
-    method public android.hardware.radio.RadioMetadata.Builder putBitmap(java.lang.String, android.graphics.Bitmap);
-    method public android.hardware.radio.RadioMetadata.Builder putClock(java.lang.String, long, int);
-    method public android.hardware.radio.RadioMetadata.Builder putInt(java.lang.String, int);
-    method public android.hardware.radio.RadioMetadata.Builder putString(java.lang.String, java.lang.String);
+    method public android.hardware.radio.RadioMetadata.Builder putBitmap(String, android.graphics.Bitmap);
+    method public android.hardware.radio.RadioMetadata.Builder putClock(String, long, int);
+    method public android.hardware.radio.RadioMetadata.Builder putInt(String, int);
+    method public android.hardware.radio.RadioMetadata.Builder putString(String, String);
   }
 
   public static final class RadioMetadata.Clock implements android.os.Parcelable {
@@ -2738,53 +2745,53 @@
     method public abstract int cancel();
     method public abstract void cancelAnnouncement();
     method public abstract void close();
-    method public abstract deprecated int getConfiguration(android.hardware.radio.RadioManager.BandConfig[]);
-    method public android.hardware.radio.ProgramList getDynamicProgramList(android.hardware.radio.ProgramList.Filter);
+    method @Deprecated public abstract int getConfiguration(android.hardware.radio.RadioManager.BandConfig[]);
+    method @Nullable public android.hardware.radio.ProgramList getDynamicProgramList(@Nullable android.hardware.radio.ProgramList.Filter);
     method public abstract boolean getMute();
-    method public java.util.Map<java.lang.String, java.lang.String> getParameters(java.util.List<java.lang.String>);
-    method public abstract deprecated int getProgramInformation(android.hardware.radio.RadioManager.ProgramInfo[]);
-    method public abstract deprecated java.util.List<android.hardware.radio.RadioManager.ProgramInfo> getProgramList(java.util.Map<java.lang.String, java.lang.String>);
+    method @NonNull public java.util.Map<java.lang.String,java.lang.String> getParameters(@NonNull java.util.List<java.lang.String>);
+    method @Deprecated public abstract int getProgramInformation(android.hardware.radio.RadioManager.ProgramInfo[]);
+    method @Deprecated @NonNull public abstract java.util.List<android.hardware.radio.RadioManager.ProgramInfo> getProgramList(@Nullable java.util.Map<java.lang.String,java.lang.String>);
     method public abstract boolean hasControl();
-    method public abstract deprecated boolean isAnalogForced();
-    method public abstract deprecated boolean isAntennaConnected();
+    method @Deprecated public abstract boolean isAnalogForced();
+    method @Deprecated public abstract boolean isAntennaConnected();
     method public boolean isConfigFlagSet(int);
     method public boolean isConfigFlagSupported(int);
     method public abstract int scan(int, boolean);
-    method public abstract deprecated void setAnalogForced(boolean);
+    method @Deprecated public abstract void setAnalogForced(boolean);
     method public void setConfigFlag(int, boolean);
-    method public abstract deprecated int setConfiguration(android.hardware.radio.RadioManager.BandConfig);
+    method @Deprecated public abstract int setConfiguration(android.hardware.radio.RadioManager.BandConfig);
     method public abstract int setMute(boolean);
-    method public java.util.Map<java.lang.String, java.lang.String> setParameters(java.util.Map<java.lang.String, java.lang.String>);
+    method @NonNull public java.util.Map<java.lang.String,java.lang.String> setParameters(@NonNull java.util.Map<java.lang.String,java.lang.String>);
     method public abstract boolean startBackgroundScan();
     method public abstract int step(int, boolean);
-    method public abstract deprecated int tune(int, int);
-    method public abstract void tune(android.hardware.radio.ProgramSelector);
+    method @Deprecated public abstract int tune(int, int);
+    method public abstract void tune(@NonNull android.hardware.radio.ProgramSelector);
     field public static final int DIRECTION_DOWN = 1; // 0x1
     field public static final int DIRECTION_UP = 0; // 0x0
-    field public static final deprecated int ERROR_BACKGROUND_SCAN_FAILED = 6; // 0x6
-    field public static final deprecated int ERROR_BACKGROUND_SCAN_UNAVAILABLE = 5; // 0x5
-    field public static final deprecated int ERROR_CANCELLED = 2; // 0x2
-    field public static final deprecated int ERROR_CONFIG = 4; // 0x4
-    field public static final deprecated int ERROR_HARDWARE_FAILURE = 0; // 0x0
-    field public static final deprecated int ERROR_SCAN_TIMEOUT = 3; // 0x3
-    field public static final deprecated int ERROR_SERVER_DIED = 1; // 0x1
+    field @Deprecated public static final int ERROR_BACKGROUND_SCAN_FAILED = 6; // 0x6
+    field @Deprecated public static final int ERROR_BACKGROUND_SCAN_UNAVAILABLE = 5; // 0x5
+    field @Deprecated public static final int ERROR_CANCELLED = 2; // 0x2
+    field @Deprecated public static final int ERROR_CONFIG = 4; // 0x4
+    field @Deprecated public static final int ERROR_HARDWARE_FAILURE = 0; // 0x0
+    field @Deprecated public static final int ERROR_SCAN_TIMEOUT = 3; // 0x3
+    field @Deprecated public static final int ERROR_SERVER_DIED = 1; // 0x1
   }
 
-  public static abstract class RadioTuner.Callback {
+  public abstract static class RadioTuner.Callback {
     ctor public RadioTuner.Callback();
     method public void onAntennaState(boolean);
     method public void onBackgroundScanAvailabilityChange(boolean);
     method public void onBackgroundScanComplete();
-    method public deprecated void onConfigurationChanged(android.hardware.radio.RadioManager.BandConfig);
+    method @Deprecated public void onConfigurationChanged(android.hardware.radio.RadioManager.BandConfig);
     method public void onControlChanged(boolean);
     method public void onEmergencyAnnouncement(boolean);
-    method public deprecated void onError(int);
-    method public deprecated void onMetadataChanged(android.hardware.radio.RadioMetadata);
-    method public void onParametersUpdated(java.util.Map<java.lang.String, java.lang.String>);
+    method @Deprecated public void onError(int);
+    method @Deprecated public void onMetadataChanged(android.hardware.radio.RadioMetadata);
+    method public void onParametersUpdated(@NonNull java.util.Map<java.lang.String,java.lang.String>);
     method public void onProgramInfoChanged(android.hardware.radio.RadioManager.ProgramInfo);
     method public void onProgramListChanged();
     method public void onTrafficAnnouncement(boolean);
-    method public void onTuneFailed(int, android.hardware.radio.ProgramSelector);
+    method public void onTuneFailed(int, @Nullable android.hardware.radio.ProgramSelector);
   }
 
 }
@@ -2796,7 +2803,7 @@
   }
 
   public static class SoundTrigger.RecognitionEvent {
-    method public android.media.AudioFormat getCaptureFormat();
+    method @Nullable public android.media.AudioFormat getCaptureFormat();
     method public int getCaptureSession();
     method public byte[] getData();
     method public boolean isCaptureAvailable();
@@ -2811,14 +2818,14 @@
   }
 
   public class UsbManager {
-    method public java.util.List<android.hardware.usb.UsbPort> getPorts();
-    method public void grantPermission(android.hardware.usb.UsbDevice, java.lang.String);
-    field public static final java.lang.String ACTION_USB_PORT_CHANGED = "android.hardware.usb.action.USB_PORT_CHANGED";
+    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_USB) public java.util.List<android.hardware.usb.UsbPort> getPorts();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USB) public void grantPermission(android.hardware.usb.UsbDevice, String);
+    field @RequiresPermission(android.Manifest.permission.MANAGE_USB) public static final String ACTION_USB_PORT_CHANGED = "android.hardware.usb.action.USB_PORT_CHANGED";
   }
 
   public final class UsbPort {
-    method public android.hardware.usb.UsbPortStatus getStatus();
-    method public void setRoles(int, int);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USB) @Nullable public android.hardware.usb.UsbPortStatus getStatus();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USB) public void setRoles(int, int);
   }
 
   public final class UsbPortStatus implements android.os.Parcelable {
@@ -2858,7 +2865,7 @@
     method public double getAltitudeMeters();
     method public double getLatitudeDegrees();
     method public double getLongitudeDegrees();
-    method public java.util.List<android.location.GnssSingleSatCorrection> getSingleSatCorrectionList();
+    method @Nullable public java.util.List<android.location.GnssSingleSatCorrection> getSingleSatCorrectionList();
     method public long getToaGpsNanosecondsOfWeek();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.location.GnssMeasurementCorrections> CREATOR;
@@ -2870,7 +2877,7 @@
     method public android.location.GnssMeasurementCorrections.Builder setAltitudeMeters(double);
     method public android.location.GnssMeasurementCorrections.Builder setLatitudeDegrees(double);
     method public android.location.GnssMeasurementCorrections.Builder setLongitudeDegrees(double);
-    method public android.location.GnssMeasurementCorrections.Builder setSingleSatCorrectionList(java.util.List<android.location.GnssSingleSatCorrection>);
+    method public android.location.GnssMeasurementCorrections.Builder setSingleSatCorrectionList(@Nullable java.util.List<android.location.GnssSingleSatCorrection>);
     method public android.location.GnssMeasurementCorrections.Builder setToaGpsNanosecondsOfWeek(long);
   }
 
@@ -2899,20 +2906,20 @@
     method public int getConstellationType();
     method public float getExcessPathLengthMeters();
     method public float getExcessPathLengthUncertaintyMeters();
-    method public android.location.GnssReflectingPlane getReflectingPlane();
+    method @FloatRange(from=0.0f, to=1.0f) public float getProbSatIsLos();
+    method @Nullable public android.location.GnssReflectingPlane getReflectingPlane();
     method public int getSatId();
     method public int getSingleSatCorrectionFlags();
     method public boolean hasExcessPathLength();
     method public boolean hasExcessPathLengthUncertainty();
     method public boolean hasReflectingPlane();
     method public boolean hasSatelliteLineOfSight();
-    method public boolean isSatelliteLineOfSight();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.location.GnssSingleSatCorrection> CREATOR;
     field public static final int HAS_EXCESS_PATH_LENGTH_MASK = 2; // 0x2
     field public static final int HAS_EXCESS_PATH_LENGTH_UNC_MASK = 4; // 0x4
+    field public static final int HAS_PROB_SAT_IS_LOS_MASK = 1; // 0x1
     field public static final int HAS_REFLECTING_PLANE_MASK = 8; // 0x8
-    field public static final int HAS_SAT_IS_LOS_MASK = 1; // 0x1
   }
 
   public static class GnssSingleSatCorrection.Builder {
@@ -2922,9 +2929,9 @@
     method public android.location.GnssSingleSatCorrection.Builder setConstellationType(int);
     method public android.location.GnssSingleSatCorrection.Builder setExcessPathLengthMeters(float);
     method public android.location.GnssSingleSatCorrection.Builder setExcessPathLengthUncertaintyMeters(float);
+    method public android.location.GnssSingleSatCorrection.Builder setProbSatIsLos(@FloatRange(from=0.0f, to=1.0f) float);
     method public android.location.GnssSingleSatCorrection.Builder setReflectingPlane(android.location.GnssReflectingPlane);
     method public android.location.GnssSingleSatCorrection.Builder setSatId(int);
-    method public android.location.GnssSingleSatCorrection.Builder setSatIsLos(boolean);
     method public android.location.GnssSingleSatCorrection.Builder setSingleSatCorrectionFlags(int);
   }
 
@@ -3095,8 +3102,8 @@
   public class GpsMeasurementsEvent implements android.os.Parcelable {
     ctor public GpsMeasurementsEvent(android.location.GpsClock, android.location.GpsMeasurement[]);
     method public int describeContents();
-    method public android.location.GpsClock getClock();
-    method public java.util.Collection<android.location.GpsMeasurement> getMeasurements();
+    method @NonNull public android.location.GpsClock getClock();
+    method @NonNull public java.util.Collection<android.location.GpsMeasurement> getMeasurements();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.location.GpsMeasurementsEvent> CREATOR;
     field public static final int STATUS_GPS_LOCATION_DISABLED = 2; // 0x2
@@ -3104,14 +3111,14 @@
     field public static final int STATUS_READY = 1; // 0x1
   }
 
-  public static abstract interface GpsMeasurementsEvent.Listener {
-    method public abstract void onGpsMeasurementsReceived(android.location.GpsMeasurementsEvent);
-    method public abstract void onStatusChanged(int);
+  public static interface GpsMeasurementsEvent.Listener {
+    method public void onGpsMeasurementsReceived(android.location.GpsMeasurementsEvent);
+    method public void onStatusChanged(int);
   }
 
   public class GpsNavigationMessage implements android.os.Parcelable {
     method public int describeContents();
-    method public byte[] getData();
+    method @NonNull public byte[] getData();
     method public short getMessageId();
     method public byte getPrn();
     method public short getStatus();
@@ -3140,7 +3147,7 @@
   public class GpsNavigationMessageEvent implements android.os.Parcelable {
     ctor public GpsNavigationMessageEvent(android.location.GpsNavigationMessage);
     method public int describeContents();
-    method public android.location.GpsNavigationMessage getNavigationMessage();
+    method @NonNull public android.location.GpsNavigationMessage getNavigationMessage();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.location.GpsNavigationMessageEvent> CREATOR;
     field public static int STATUS_GPS_LOCATION_DISABLED;
@@ -3148,9 +3155,9 @@
     field public static int STATUS_READY;
   }
 
-  public static abstract interface GpsNavigationMessageEvent.Listener {
-    method public abstract void onGpsNavigationMessageReceived(android.location.GpsNavigationMessageEvent);
-    method public abstract void onStatusChanged(int);
+  public static interface GpsNavigationMessageEvent.Listener {
+    method public void onGpsNavigationMessageReceived(android.location.GpsNavigationMessageEvent);
+    method public void onStatusChanged(int);
   }
 
   public class Location implements android.os.Parcelable {
@@ -3160,40 +3167,40 @@
   }
 
   public class LocationManager {
-    method public deprecated boolean addGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
-    method public deprecated boolean addGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
-    method public void flushGnssBatch();
-    method public int getGnssBatchSize();
+    method @Deprecated public boolean addGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
+    method @Deprecated public boolean addGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void flushGnssBatch();
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int getGnssBatchSize();
     method public int getGnssCapabilities();
-    method public java.lang.String getLocationControllerExtraPackage();
-    method public java.lang.String getNetworkProviderPackage();
-    method public void injectGnssMeasurementCorrections(android.location.GnssMeasurementCorrections);
+    method @Nullable public String getLocationControllerExtraPackage();
+    method @Nullable public String getNetworkProviderPackage();
+    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void injectGnssMeasurementCorrections(@NonNull android.location.GnssMeasurementCorrections);
     method public boolean isLocationControllerExtraPackageEnabled();
     method public boolean isLocationEnabledForUser(android.os.UserHandle);
-    method public boolean isProviderEnabledForUser(java.lang.String, android.os.UserHandle);
-    method public boolean registerGnssBatchedLocationCallback(long, boolean, android.location.BatchedLocationCallback, android.os.Handler);
-    method public deprecated void removeGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
-    method public deprecated void removeGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
-    method public void requestLocationUpdates(android.location.LocationRequest, android.location.LocationListener, android.os.Looper);
-    method public void requestLocationUpdates(android.location.LocationRequest, android.app.PendingIntent);
-    method public void setLocationControllerExtraPackage(java.lang.String);
-    method public void setLocationControllerExtraPackageEnabled(boolean);
-    method public void setLocationEnabledForUser(boolean, android.os.UserHandle);
-    method public deprecated boolean setProviderEnabledForUser(java.lang.String, boolean, android.os.UserHandle);
-    method public boolean unregisterGnssBatchedLocationCallback(android.location.BatchedLocationCallback);
+    method public boolean isProviderEnabledForUser(String, android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean registerGnssBatchedLocationCallback(long, boolean, android.location.BatchedLocationCallback, android.os.Handler);
+    method @Deprecated public void removeGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
+    method @Deprecated public void removeGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(android.location.LocationRequest, android.location.LocationListener, android.os.Looper);
+    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(android.location.LocationRequest, android.app.PendingIntent);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setLocationControllerExtraPackage(String);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setLocationControllerExtraPackageEnabled(boolean);
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, android.os.UserHandle);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setProviderEnabledForUser(String, boolean, android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(android.location.BatchedLocationCallback);
   }
 
   public final class LocationRequest implements android.os.Parcelable {
     method public static android.location.LocationRequest create();
     method public static android.location.LocationRequest createFromDeprecatedCriteria(android.location.Criteria, long, float, boolean);
-    method public static android.location.LocationRequest createFromDeprecatedProvider(java.lang.String, long, float, boolean);
+    method public static android.location.LocationRequest createFromDeprecatedProvider(String, long, float, boolean);
     method public int describeContents();
     method public long getExpireAt();
     method public long getFastestInterval();
     method public boolean getHideFromAppOps();
     method public long getInterval();
     method public int getNumUpdates();
-    method public java.lang.String getProvider();
+    method public String getProvider();
     method public int getQuality();
     method public float getSmallestDisplacement();
     method public android.os.WorkSource getWorkSource();
@@ -3205,7 +3212,7 @@
     method public android.location.LocationRequest setInterval(long);
     method public android.location.LocationRequest setLowPowerMode(boolean);
     method public android.location.LocationRequest setNumUpdates(int);
-    method public android.location.LocationRequest setProvider(java.lang.String);
+    method public android.location.LocationRequest setProvider(String);
     method public android.location.LocationRequest setQuality(int);
     method public android.location.LocationRequest setSmallestDisplacement(float);
     method public void setWorkSource(android.os.WorkSource);
@@ -3234,7 +3241,7 @@
   }
 
   public static class AudioAttributes.Builder {
-    method public android.media.AudioAttributes.Builder addBundle(android.os.Bundle);
+    method public android.media.AudioAttributes.Builder addBundle(@NonNull android.os.Bundle);
     method public android.media.AudioAttributes.Builder setCapturePreset(int);
     method public android.media.AudioAttributes.Builder setInternalCapturePreset(int);
   }
@@ -3242,12 +3249,12 @@
   public final class AudioFocusInfo implements android.os.Parcelable {
     method public int describeContents();
     method public android.media.AudioAttributes getAttributes();
-    method public java.lang.String getClientId();
+    method public String getClientId();
     method public int getClientUid();
     method public int getFlags();
     method public int getGainRequest();
     method public int getLossReceived();
-    method public java.lang.String getPackageName();
+    method public String getPackageName();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.media.AudioFocusInfo> CREATOR;
   }
@@ -3257,22 +3264,22 @@
   }
 
   public static final class AudioFocusRequest.Builder {
-    method public android.media.AudioFocusRequest.Builder setLocksFocus(boolean);
+    method @NonNull public android.media.AudioFocusRequest.Builder setLocksFocus(boolean);
   }
 
   public class AudioManager {
-    method public deprecated int abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes);
+    method @Deprecated public int abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes);
     method public void clearAudioServerStateCallback();
-    method public int dispatchAudioFocusChange(android.media.AudioFocusInfo, int, android.media.audiopolicy.AudioPolicy);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int dispatchAudioFocusChange(@NonNull android.media.AudioFocusInfo, int, @NonNull android.media.audiopolicy.AudioPolicy);
     method public boolean isAudioServerRunning();
     method public boolean isHdmiSystemAudioSupported();
-    method public int registerAudioPolicy(android.media.audiopolicy.AudioPolicy);
-    method public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes, int, int) throws java.lang.IllegalArgumentException;
-    method public deprecated int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes, int, int, android.media.audiopolicy.AudioPolicy) throws java.lang.IllegalArgumentException;
-    method public int requestAudioFocus(android.media.AudioFocusRequest, android.media.audiopolicy.AudioPolicy);
-    method public void setAudioServerStateCallback(java.util.concurrent.Executor, android.media.AudioManager.AudioServerStateCallback);
-    method public void setFocusRequestResult(android.media.AudioFocusInfo, int, android.media.audiopolicy.AudioPolicy);
-    method public void unregisterAudioPolicyAsync(android.media.audiopolicy.AudioPolicy);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int registerAudioPolicy(@NonNull android.media.audiopolicy.AudioPolicy);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, @NonNull android.media.AudioAttributes, int, int) throws java.lang.IllegalArgumentException;
+    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.MODIFY_AUDIO_ROUTING}) public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, @NonNull android.media.AudioAttributes, int, int, android.media.audiopolicy.AudioPolicy) throws java.lang.IllegalArgumentException;
+    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int requestAudioFocus(@NonNull android.media.AudioFocusRequest, @Nullable android.media.audiopolicy.AudioPolicy);
+    method public void setAudioServerStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.AudioServerStateCallback);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setFocusRequestResult(@NonNull android.media.AudioFocusInfo, int, @NonNull android.media.audiopolicy.AudioPolicy);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void unregisterAudioPolicyAsync(@NonNull android.media.audiopolicy.AudioPolicy);
     field public static final int AUDIOFOCUS_FLAG_DELAY_OK = 1; // 0x1
     field public static final int AUDIOFOCUS_FLAG_LOCK = 4; // 0x4
     field public static final int AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS = 2; // 0x2
@@ -3280,7 +3287,7 @@
     field public static final int SUCCESS = 0; // 0x0
   }
 
-  public static abstract class AudioManager.AudioServerStateCallback {
+  public abstract static class AudioManager.AudioServerStateCallback {
     ctor public AudioManager.AudioServerStateCallback();
     method public void onAudioServerDown();
     method public void onAudioServerUp();
@@ -3312,21 +3319,21 @@
   }
 
   public static class AudioRecord.Builder {
-    method public android.media.AudioRecord.Builder setAudioAttributes(android.media.AudioAttributes) throws java.lang.IllegalArgumentException;
+    method public android.media.AudioRecord.Builder setAudioAttributes(@NonNull android.media.AudioAttributes) throws java.lang.IllegalArgumentException;
     method public android.media.AudioRecord.Builder setSessionId(int) throws java.lang.IllegalArgumentException;
   }
 
   public final class MediaRecorder.AudioSource {
-    field public static final int ECHO_REFERENCE = 1997; // 0x7cd
-    field public static final int HOTWORD = 1999; // 0x7cf
+    field @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_OUTPUT) public static final int ECHO_REFERENCE = 1997; // 0x7cd
+    field @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_HOTWORD) public static final int HOTWORD = 1999; // 0x7cf
     field public static final int RADIO_TUNER = 1998; // 0x7ce
   }
 
   public static class MediaTimestamp.Builder {
     ctor public MediaTimestamp.Builder();
-    ctor public MediaTimestamp.Builder(android.media.MediaTimestamp);
-    method public android.media.MediaTimestamp build();
-    method public android.media.MediaTimestamp.Builder setMediaTimestamp(long, long, float);
+    ctor public MediaTimestamp.Builder(@NonNull android.media.MediaTimestamp);
+    method @NonNull public android.media.MediaTimestamp build();
+    method @NonNull public android.media.MediaTimestamp.Builder setMediaTimestamp(long, long, float);
   }
 
   public class PlayerProxy {
@@ -3340,16 +3347,16 @@
 
   public static class SubtitleData.Builder {
     ctor public SubtitleData.Builder();
-    ctor public SubtitleData.Builder(android.media.SubtitleData);
-    method public android.media.SubtitleData build();
-    method public android.media.SubtitleData.Builder setSubtitleData(int, long, long, byte[]);
+    ctor public SubtitleData.Builder(@NonNull android.media.SubtitleData);
+    method @NonNull public android.media.SubtitleData build();
+    method @NonNull public android.media.SubtitleData.Builder setSubtitleData(int, long, long, @NonNull byte[]);
   }
 
   public static class TimedMetaData.Builder {
     ctor public TimedMetaData.Builder();
-    ctor public TimedMetaData.Builder(android.media.TimedMetaData);
-    method public android.media.TimedMetaData build();
-    method public android.media.TimedMetaData.Builder setTimedMetaData(long, byte[]);
+    ctor public TimedMetaData.Builder(@NonNull android.media.TimedMetaData);
+    method @NonNull public android.media.TimedMetaData build();
+    method @NonNull public android.media.TimedMetaData.Builder setTimedMetaData(long, @NonNull byte[]);
   }
 
 }
@@ -3368,7 +3375,7 @@
   public static class AudioMix.Builder {
     ctor public AudioMix.Builder(android.media.audiopolicy.AudioMixingRule) throws java.lang.IllegalArgumentException;
     method public android.media.audiopolicy.AudioMix build() throws java.lang.IllegalArgumentException;
-    method public android.media.audiopolicy.AudioMix.Builder setDevice(android.media.AudioDeviceInfo) throws java.lang.IllegalArgumentException;
+    method public android.media.audiopolicy.AudioMix.Builder setDevice(@NonNull android.media.AudioDeviceInfo) throws java.lang.IllegalArgumentException;
     method public android.media.audiopolicy.AudioMix.Builder setFormat(android.media.AudioFormat) throws java.lang.IllegalArgumentException;
     method public android.media.audiopolicy.AudioMix.Builder setRouteFlags(int) throws java.lang.IllegalArgumentException;
   }
@@ -3381,25 +3388,25 @@
 
   public static class AudioMixingRule.Builder {
     ctor public AudioMixingRule.Builder();
-    method public android.media.audiopolicy.AudioMixingRule.Builder addMixRule(int, java.lang.Object) throws java.lang.IllegalArgumentException;
+    method public android.media.audiopolicy.AudioMixingRule.Builder addMixRule(int, Object) throws java.lang.IllegalArgumentException;
     method public android.media.audiopolicy.AudioMixingRule.Builder addRule(android.media.AudioAttributes, int) throws java.lang.IllegalArgumentException;
     method public android.media.audiopolicy.AudioMixingRule build();
-    method public android.media.audiopolicy.AudioMixingRule.Builder excludeMixRule(int, java.lang.Object) throws java.lang.IllegalArgumentException;
+    method public android.media.audiopolicy.AudioMixingRule.Builder excludeMixRule(int, Object) throws java.lang.IllegalArgumentException;
     method public android.media.audiopolicy.AudioMixingRule.Builder excludeRule(android.media.AudioAttributes, int) throws java.lang.IllegalArgumentException;
   }
 
   public class AudioPolicy {
-    method public int attachMixes(java.util.List<android.media.audiopolicy.AudioMix>);
+    method public int attachMixes(@NonNull java.util.List<android.media.audiopolicy.AudioMix>);
     method public android.media.AudioRecord createAudioRecordSink(android.media.audiopolicy.AudioMix) throws java.lang.IllegalArgumentException;
     method public android.media.AudioTrack createAudioTrackSource(android.media.audiopolicy.AudioMix) throws java.lang.IllegalArgumentException;
-    method public int detachMixes(java.util.List<android.media.audiopolicy.AudioMix>);
+    method public int detachMixes(@NonNull java.util.List<android.media.audiopolicy.AudioMix>);
     method public int getFocusDuckingBehavior();
     method public int getStatus();
     method public int removeUidDeviceAffinity(int);
     method public int setFocusDuckingBehavior(int) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException;
-    method public void setRegistration(java.lang.String);
-    method public int setUidDeviceAffinity(int, java.util.List<android.media.AudioDeviceInfo>);
-    method public java.lang.String toLogFriendlyString();
+    method public void setRegistration(String);
+    method public int setUidDeviceAffinity(int, @NonNull java.util.List<android.media.AudioDeviceInfo>);
+    method public String toLogFriendlyString();
     field public static final int FOCUS_POLICY_DUCKING_DEFAULT = 0; // 0x0
     field public static final int FOCUS_POLICY_DUCKING_IN_APP = 0; // 0x0
     field public static final int FOCUS_POLICY_DUCKING_IN_POLICY = 1; // 0x1
@@ -3407,7 +3414,7 @@
     field public static final int POLICY_STATUS_UNREGISTERED = 1; // 0x1
   }
 
-  public static abstract class AudioPolicy.AudioPolicyFocusListener {
+  public abstract static class AudioPolicy.AudioPolicyFocusListener {
     ctor public AudioPolicy.AudioPolicyFocusListener();
     method public void onAudioFocusAbandon(android.media.AudioFocusInfo);
     method public void onAudioFocusGrant(android.media.AudioFocusInfo, int);
@@ -3415,25 +3422,25 @@
     method public void onAudioFocusRequest(android.media.AudioFocusInfo, int);
   }
 
-  public static abstract class AudioPolicy.AudioPolicyStatusListener {
+  public abstract static class AudioPolicy.AudioPolicyStatusListener {
     ctor public AudioPolicy.AudioPolicyStatusListener();
     method public void onMixStateUpdate(android.media.audiopolicy.AudioMix);
     method public void onStatusChange();
   }
 
-  public static abstract class AudioPolicy.AudioPolicyVolumeCallback {
+  public abstract static class AudioPolicy.AudioPolicyVolumeCallback {
     method public void onVolumeAdjustment(int);
   }
 
   public static class AudioPolicy.Builder {
     ctor public AudioPolicy.Builder(android.content.Context);
-    method public android.media.audiopolicy.AudioPolicy.Builder addMix(android.media.audiopolicy.AudioMix) throws java.lang.IllegalArgumentException;
+    method public android.media.audiopolicy.AudioPolicy.Builder addMix(@NonNull android.media.audiopolicy.AudioMix) throws java.lang.IllegalArgumentException;
     method public android.media.audiopolicy.AudioPolicy build();
     method public void setAudioPolicyFocusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener);
     method public void setAudioPolicyStatusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener);
-    method public android.media.audiopolicy.AudioPolicy.Builder setAudioPolicyVolumeCallback(android.media.audiopolicy.AudioPolicy.AudioPolicyVolumeCallback);
+    method public android.media.audiopolicy.AudioPolicy.Builder setAudioPolicyVolumeCallback(@NonNull android.media.audiopolicy.AudioPolicy.AudioPolicyVolumeCallback);
     method public android.media.audiopolicy.AudioPolicy.Builder setIsAudioFocusPolicy(boolean);
-    method public android.media.audiopolicy.AudioPolicy.Builder setLooper(android.os.Looper) throws java.lang.IllegalArgumentException;
+    method public android.media.audiopolicy.AudioPolicy.Builder setLooper(@NonNull android.os.Looper) throws java.lang.IllegalArgumentException;
   }
 
 }
@@ -3441,32 +3448,32 @@
 package android.media.session {
 
   public final class ControllerCallbackLink implements android.os.Parcelable {
-    ctor public ControllerCallbackLink(android.media.session.ControllerCallbackLink.CallbackStub);
+    ctor public ControllerCallbackLink(@NonNull android.media.session.ControllerCallbackLink.CallbackStub);
   }
 
-  public static abstract class ControllerCallbackLink.CallbackStub {
+  public abstract static class ControllerCallbackLink.CallbackStub {
     ctor public ControllerCallbackLink.CallbackStub();
-    method public void onEvent(java.lang.String, android.os.Bundle);
-    method public void onExtrasChanged(android.os.Bundle);
-    method public void onMetadataChanged(android.media.MediaMetadata);
-    method public void onPlaybackStateChanged(android.media.session.PlaybackState);
-    method public void onQueueChanged(java.util.List<android.media.session.MediaSession.QueueItem>);
-    method public void onQueueTitleChanged(java.lang.CharSequence);
+    method public void onEvent(@NonNull String, @Nullable android.os.Bundle);
+    method public void onExtrasChanged(@Nullable android.os.Bundle);
+    method public void onMetadataChanged(@Nullable android.media.MediaMetadata);
+    method public void onPlaybackStateChanged(@Nullable android.media.session.PlaybackState);
+    method public void onQueueChanged(@Nullable java.util.List<android.media.session.MediaSession.QueueItem>);
+    method public void onQueueTitleChanged(@Nullable CharSequence);
     method public void onSessionDestroyed();
-    method public void onVolumeInfoChanged(android.media.session.MediaController.PlaybackInfo);
+    method public void onVolumeInfoChanged(@NonNull android.media.session.MediaController.PlaybackInfo);
   }
 
   public final class MediaSessionManager {
-    method public void setOnMediaKeyListener(android.media.session.MediaSessionManager.OnMediaKeyListener, android.os.Handler);
-    method public void setOnVolumeKeyLongPressListener(android.media.session.MediaSessionManager.OnVolumeKeyLongPressListener, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.SET_MEDIA_KEY_LISTENER) public void setOnMediaKeyListener(android.media.session.MediaSessionManager.OnMediaKeyListener, @Nullable android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER) public void setOnVolumeKeyLongPressListener(android.media.session.MediaSessionManager.OnVolumeKeyLongPressListener, @Nullable android.os.Handler);
   }
 
-  public static abstract interface MediaSessionManager.OnMediaKeyListener {
-    method public abstract boolean onMediaKey(android.view.KeyEvent);
+  public static interface MediaSessionManager.OnMediaKeyListener {
+    method public boolean onMediaKey(android.view.KeyEvent);
   }
 
-  public static abstract interface MediaSessionManager.OnVolumeKeyLongPressListener {
-    method public abstract void onVolumeKeyLongPress(android.view.KeyEvent);
+  public static interface MediaSessionManager.OnVolumeKeyLongPressListener {
+    method public void onVolumeKeyLongPress(android.view.KeyEvent);
   }
 
 }
@@ -3475,41 +3482,41 @@
 
   public abstract class SoundTriggerDetectionService extends android.app.Service {
     ctor public SoundTriggerDetectionService();
-    method public void onConnected(java.util.UUID, android.os.Bundle);
-    method public void onDisconnected(java.util.UUID, android.os.Bundle);
-    method public void onError(java.util.UUID, android.os.Bundle, int, int);
-    method public void onGenericRecognitionEvent(java.util.UUID, android.os.Bundle, int, android.hardware.soundtrigger.SoundTrigger.RecognitionEvent);
-    method public abstract void onStopOperation(java.util.UUID, android.os.Bundle, int);
-    method public final void operationFinished(java.util.UUID, int);
+    method @MainThread public void onConnected(@NonNull java.util.UUID, @Nullable android.os.Bundle);
+    method @MainThread public void onDisconnected(@NonNull java.util.UUID, @Nullable android.os.Bundle);
+    method @MainThread public void onError(@NonNull java.util.UUID, @Nullable android.os.Bundle, int, int);
+    method @MainThread public void onGenericRecognitionEvent(@NonNull java.util.UUID, @Nullable android.os.Bundle, int, @NonNull android.hardware.soundtrigger.SoundTrigger.RecognitionEvent);
+    method @MainThread public abstract void onStopOperation(@NonNull java.util.UUID, @Nullable android.os.Bundle, int);
+    method public final void operationFinished(@Nullable java.util.UUID, int);
   }
 
   public final class SoundTriggerDetector {
-    method public boolean startRecognition(int);
-    method public boolean stopRecognition();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_SOUND_TRIGGER) public boolean startRecognition(int);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_SOUND_TRIGGER) public boolean stopRecognition();
     field public static final int RECOGNITION_FLAG_ALLOW_MULTIPLE_TRIGGERS = 2; // 0x2
     field public static final int RECOGNITION_FLAG_CAPTURE_TRIGGER_AUDIO = 1; // 0x1
   }
 
-  public static abstract class SoundTriggerDetector.Callback {
+  public abstract static class SoundTriggerDetector.Callback {
     ctor public SoundTriggerDetector.Callback();
     method public abstract void onAvailabilityChanged(int);
-    method public abstract void onDetected(android.media.soundtrigger.SoundTriggerDetector.EventPayload);
+    method public abstract void onDetected(@NonNull android.media.soundtrigger.SoundTriggerDetector.EventPayload);
     method public abstract void onError();
     method public abstract void onRecognitionPaused();
     method public abstract void onRecognitionResumed();
   }
 
   public static class SoundTriggerDetector.EventPayload {
-    method public android.media.AudioFormat getCaptureAudioFormat();
-    method public byte[] getTriggerAudio();
+    method @Nullable public android.media.AudioFormat getCaptureAudioFormat();
+    method @Nullable public byte[] getTriggerAudio();
   }
 
   public final class SoundTriggerManager {
-    method public android.media.soundtrigger.SoundTriggerDetector createSoundTriggerDetector(java.util.UUID, android.media.soundtrigger.SoundTriggerDetector.Callback, android.os.Handler);
-    method public void deleteModel(java.util.UUID);
+    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_SOUND_TRIGGER) public android.media.soundtrigger.SoundTriggerDetector createSoundTriggerDetector(java.util.UUID, @NonNull android.media.soundtrigger.SoundTriggerDetector.Callback, @Nullable android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_SOUND_TRIGGER) public void deleteModel(java.util.UUID);
     method public int getDetectionServiceOperationsTimeout();
-    method public android.media.soundtrigger.SoundTriggerManager.Model getModel(java.util.UUID);
-    method public void updateModel(android.media.soundtrigger.SoundTriggerManager.Model);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_SOUND_TRIGGER) public android.media.soundtrigger.SoundTriggerManager.Model getModel(java.util.UUID);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_SOUND_TRIGGER) public void updateModel(android.media.soundtrigger.SoundTriggerManager.Model);
   }
 
   public static class SoundTriggerManager.Model {
@@ -3532,44 +3539,44 @@
   }
 
   public final class TvContract {
-    method public static android.net.Uri buildChannelsUriForInput(java.lang.String, boolean);
-    method public static android.net.Uri buildChannelsUriForInput(java.lang.String, java.lang.String, boolean);
-    field public static final java.lang.String ACTION_CHANNEL_BROWSABLE_REQUESTED = "android.media.tv.action.CHANNEL_BROWSABLE_REQUESTED";
-    field public static final java.lang.String EXTRA_BLOCKED_PACKAGES = "android.media.tv.extra.BLOCKED_PACKAGES";
-    field public static final java.lang.String EXTRA_COLUMN_NAME = "android.media.tv.extra.COLUMN_NAME";
-    field public static final java.lang.String EXTRA_DATA_TYPE = "android.media.tv.extra.DATA_TYPE";
-    field public static final java.lang.String EXTRA_DEFAULT_VALUE = "android.media.tv.extra.DEFAULT_VALUE";
-    field public static final java.lang.String EXTRA_EXISTING_COLUMN_NAMES = "android.media.tv.extra.EXISTING_COLUMN_NAMES";
-    field public static final java.lang.String EXTRA_PACKAGE_NAME = "android.media.tv.extra.PACKAGE_NAME";
-    field public static final java.lang.String EXTRA_RESULT_CODE = "android.media.tv.extra.RESULT_CODE";
-    field public static final java.lang.String METHOD_ADD_COLUMN = "add_column";
-    field public static final java.lang.String METHOD_BLOCK_PACKAGE = "block_package";
-    field public static final java.lang.String METHOD_GET_BLOCKED_PACKAGES = "get_blocked_packages";
-    field public static final java.lang.String METHOD_GET_COLUMNS = "get_columns";
-    field public static final java.lang.String METHOD_UNBLOCK_PACKAGE = "unblock_package";
+    method public static android.net.Uri buildChannelsUriForInput(@Nullable String, boolean);
+    method public static android.net.Uri buildChannelsUriForInput(@Nullable String, @Nullable String, boolean);
+    field public static final String ACTION_CHANNEL_BROWSABLE_REQUESTED = "android.media.tv.action.CHANNEL_BROWSABLE_REQUESTED";
+    field public static final String EXTRA_BLOCKED_PACKAGES = "android.media.tv.extra.BLOCKED_PACKAGES";
+    field public static final String EXTRA_COLUMN_NAME = "android.media.tv.extra.COLUMN_NAME";
+    field public static final String EXTRA_DATA_TYPE = "android.media.tv.extra.DATA_TYPE";
+    field public static final String EXTRA_DEFAULT_VALUE = "android.media.tv.extra.DEFAULT_VALUE";
+    field public static final String EXTRA_EXISTING_COLUMN_NAMES = "android.media.tv.extra.EXISTING_COLUMN_NAMES";
+    field public static final String EXTRA_PACKAGE_NAME = "android.media.tv.extra.PACKAGE_NAME";
+    field public static final String EXTRA_RESULT_CODE = "android.media.tv.extra.RESULT_CODE";
+    field public static final String METHOD_ADD_COLUMN = "add_column";
+    field public static final String METHOD_BLOCK_PACKAGE = "block_package";
+    field public static final String METHOD_GET_BLOCKED_PACKAGES = "get_blocked_packages";
+    field public static final String METHOD_GET_COLUMNS = "get_columns";
+    field public static final String METHOD_UNBLOCK_PACKAGE = "unblock_package";
     field public static final int RESULT_ERROR_INVALID_ARGUMENT = 2; // 0x2
     field public static final int RESULT_ERROR_IO = 1; // 0x1
     field public static final int RESULT_OK = 0; // 0x0
   }
 
   public static final class TvContract.WatchedPrograms implements android.media.tv.TvContract.BaseTvColumns {
-    field public static final java.lang.String COLUMN_CHANNEL_ID = "channel_id";
-    field public static final java.lang.String COLUMN_DESCRIPTION = "description";
-    field public static final java.lang.String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
-    field public static final java.lang.String COLUMN_INTERNAL_SESSION_TOKEN = "session_token";
-    field public static final java.lang.String COLUMN_INTERNAL_TUNE_PARAMS = "tune_params";
-    field public static final java.lang.String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_WATCH_END_TIME_UTC_MILLIS = "watch_end_time_utc_millis";
-    field public static final java.lang.String COLUMN_WATCH_START_TIME_UTC_MILLIS = "watch_start_time_utc_millis";
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/watched_program";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/watched_program";
+    field public static final String COLUMN_CHANNEL_ID = "channel_id";
+    field public static final String COLUMN_DESCRIPTION = "description";
+    field public static final String COLUMN_END_TIME_UTC_MILLIS = "end_time_utc_millis";
+    field public static final String COLUMN_INTERNAL_SESSION_TOKEN = "session_token";
+    field public static final String COLUMN_INTERNAL_TUNE_PARAMS = "tune_params";
+    field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_WATCH_END_TIME_UTC_MILLIS = "watch_end_time_utc_millis";
+    field public static final String COLUMN_WATCH_START_TIME_UTC_MILLIS = "watch_start_time_utc_millis";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/watched_program";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/watched_program";
     field public static final android.net.Uri CONTENT_URI;
   }
 
   public final class TvInputHardwareInfo implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getAudioAddress();
+    method public String getAudioAddress();
     method public int getAudioType();
     method public int getCableConnectionStatus();
     method public int getDeviceId();
@@ -3595,7 +3602,7 @@
 
   public static final class TvInputHardwareInfo.Builder {
     ctor public TvInputHardwareInfo.Builder();
-    method public android.media.tv.TvInputHardwareInfo.Builder audioAddress(java.lang.String);
+    method public android.media.tv.TvInputHardwareInfo.Builder audioAddress(String);
     method public android.media.tv.TvInputHardwareInfo.Builder audioType(int);
     method public android.media.tv.TvInputHardwareInfo build();
     method public android.media.tv.TvInputHardwareInfo.Builder cableConnectionStatus(int);
@@ -3605,79 +3612,79 @@
   }
 
   public final class TvInputInfo implements android.os.Parcelable {
-    method public static deprecated android.media.tv.TvInputInfo createTvInputInfo(android.content.Context, android.content.pm.ResolveInfo, android.hardware.hdmi.HdmiDeviceInfo, java.lang.String, java.lang.String, android.net.Uri) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public static deprecated android.media.tv.TvInputInfo createTvInputInfo(android.content.Context, android.content.pm.ResolveInfo, android.hardware.hdmi.HdmiDeviceInfo, java.lang.String, int, android.graphics.drawable.Icon) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public static deprecated android.media.tv.TvInputInfo createTvInputInfo(android.content.Context, android.content.pm.ResolveInfo, android.media.tv.TvInputHardwareInfo, java.lang.String, android.net.Uri) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public static deprecated android.media.tv.TvInputInfo createTvInputInfo(android.content.Context, android.content.pm.ResolveInfo, android.media.tv.TvInputHardwareInfo, int, android.graphics.drawable.Icon) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method @Deprecated public static android.media.tv.TvInputInfo createTvInputInfo(android.content.Context, android.content.pm.ResolveInfo, android.hardware.hdmi.HdmiDeviceInfo, String, String, android.net.Uri) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method @Deprecated public static android.media.tv.TvInputInfo createTvInputInfo(android.content.Context, android.content.pm.ResolveInfo, android.hardware.hdmi.HdmiDeviceInfo, String, int, android.graphics.drawable.Icon) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method @Deprecated public static android.media.tv.TvInputInfo createTvInputInfo(android.content.Context, android.content.pm.ResolveInfo, android.media.tv.TvInputHardwareInfo, String, android.net.Uri) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+    method @Deprecated public static android.media.tv.TvInputInfo createTvInputInfo(android.content.Context, android.content.pm.ResolveInfo, android.media.tv.TvInputHardwareInfo, int, android.graphics.drawable.Icon) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
     method public android.hardware.hdmi.HdmiDeviceInfo getHdmiDeviceInfo();
     method public boolean isConnectedToHdmiSwitch();
     method public boolean isHardwareInput();
-    method public android.graphics.drawable.Drawable loadIcon(android.content.Context, int);
+    method public android.graphics.drawable.Drawable loadIcon(@NonNull android.content.Context, int);
   }
 
   public static final class TvInputInfo.Builder {
     method public android.media.tv.TvInputInfo.Builder setHdmiDeviceInfo(android.hardware.hdmi.HdmiDeviceInfo);
     method public android.media.tv.TvInputInfo.Builder setIcon(android.graphics.drawable.Icon);
     method public android.media.tv.TvInputInfo.Builder setIcon(android.graphics.drawable.Icon, int);
-    method public android.media.tv.TvInputInfo.Builder setLabel(java.lang.CharSequence);
-    method public android.media.tv.TvInputInfo.Builder setLabel(int);
-    method public android.media.tv.TvInputInfo.Builder setParentId(java.lang.String);
+    method public android.media.tv.TvInputInfo.Builder setLabel(CharSequence);
+    method public android.media.tv.TvInputInfo.Builder setLabel(@StringRes int);
+    method public android.media.tv.TvInputInfo.Builder setParentId(String);
     method public android.media.tv.TvInputInfo.Builder setTvInputHardwareInfo(android.media.tv.TvInputHardwareInfo);
   }
 
   public static final class TvInputInfo.TvInputSettings {
-    method public static java.util.Map<java.lang.String, java.lang.String> getCustomLabels(android.content.Context, int);
+    method public static java.util.Map<java.lang.String,java.lang.String> getCustomLabels(android.content.Context, int);
     method public static java.util.Set<java.lang.String> getHiddenTvInputIds(android.content.Context, int);
-    method public static void putCustomLabels(android.content.Context, java.util.Map<java.lang.String, java.lang.String>, int);
+    method public static void putCustomLabels(android.content.Context, java.util.Map<java.lang.String,java.lang.String>, int);
     method public static void putHiddenTvInputs(android.content.Context, java.util.Set<java.lang.String>, int);
   }
 
   public final class TvInputManager {
-    method public android.media.tv.TvInputManager.Hardware acquireTvInputHardware(int, android.media.tv.TvInputInfo, android.media.tv.TvInputManager.HardwareCallback);
-    method public void addBlockedRating(android.media.tv.TvContentRating);
-    method public boolean captureFrame(java.lang.String, android.view.Surface, android.media.tv.TvStreamConfig);
-    method public java.util.List<android.media.tv.TvStreamConfig> getAvailableTvStreamConfigList(java.lang.String);
-    method public java.util.List<android.media.tv.TvInputHardwareInfo> getHardwareList();
-    method public java.util.List<android.media.tv.TvContentRatingSystemInfo> getTvContentRatingSystemList();
-    method public boolean isSingleSessionActive();
-    method public void notifyPreviewProgramAddedToWatchNext(java.lang.String, long, long);
-    method public void notifyPreviewProgramBrowsableDisabled(java.lang.String, long);
-    method public void notifyWatchNextProgramBrowsableDisabled(java.lang.String, long);
-    method public void releaseTvInputHardware(int, android.media.tv.TvInputManager.Hardware);
-    method public void removeBlockedRating(android.media.tv.TvContentRating);
-    method public void setParentalControlsEnabled(boolean);
+    method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public android.media.tv.TvInputManager.Hardware acquireTvInputHardware(int, android.media.tv.TvInputInfo, android.media.tv.TvInputManager.HardwareCallback);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void addBlockedRating(@NonNull android.media.tv.TvContentRating);
+    method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean captureFrame(String, android.view.Surface, android.media.tv.TvStreamConfig);
+    method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public java.util.List<android.media.tv.TvStreamConfig> getAvailableTvStreamConfigList(String);
+    method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public java.util.List<android.media.tv.TvInputHardwareInfo> getHardwareList();
+    method @RequiresPermission(android.Manifest.permission.READ_CONTENT_RATING_SYSTEMS) public java.util.List<android.media.tv.TvContentRatingSystemInfo> getTvContentRatingSystemList();
+    method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean isSingleSessionActive();
+    method @RequiresPermission(android.Manifest.permission.NOTIFY_TV_INPUTS) public void notifyPreviewProgramAddedToWatchNext(String, long, long);
+    method @RequiresPermission(android.Manifest.permission.NOTIFY_TV_INPUTS) public void notifyPreviewProgramBrowsableDisabled(String, long);
+    method @RequiresPermission(android.Manifest.permission.NOTIFY_TV_INPUTS) public void notifyWatchNextProgramBrowsableDisabled(String, long);
+    method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public void releaseTvInputHardware(int, android.media.tv.TvInputManager.Hardware);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void removeBlockedRating(@NonNull android.media.tv.TvContentRating);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void setParentalControlsEnabled(boolean);
   }
 
   public static final class TvInputManager.Hardware {
-    method public void overrideAudioSink(int, java.lang.String, int, int, int);
+    method public void overrideAudioSink(int, String, int, int, int);
     method public void setStreamVolume(float);
     method public boolean setSurface(android.view.Surface, android.media.tv.TvStreamConfig);
   }
 
-  public static abstract class TvInputManager.HardwareCallback {
+  public abstract static class TvInputManager.HardwareCallback {
     ctor public TvInputManager.HardwareCallback();
     method public abstract void onReleased();
     method public abstract void onStreamConfigChanged(android.media.tv.TvStreamConfig[]);
   }
 
   public abstract class TvInputService extends android.app.Service {
-    method public android.media.tv.TvInputInfo onHardwareAdded(android.media.tv.TvInputHardwareInfo);
-    method public java.lang.String onHardwareRemoved(android.media.tv.TvInputHardwareInfo);
-    method public android.media.tv.TvInputInfo onHdmiDeviceAdded(android.hardware.hdmi.HdmiDeviceInfo);
-    method public java.lang.String onHdmiDeviceRemoved(android.hardware.hdmi.HdmiDeviceInfo);
+    method @Nullable public android.media.tv.TvInputInfo onHardwareAdded(android.media.tv.TvInputHardwareInfo);
+    method @Nullable public String onHardwareRemoved(android.media.tv.TvInputHardwareInfo);
+    method @Nullable public android.media.tv.TvInputInfo onHdmiDeviceAdded(android.hardware.hdmi.HdmiDeviceInfo);
+    method @Nullable public String onHdmiDeviceRemoved(android.hardware.hdmi.HdmiDeviceInfo);
   }
 
-  public static abstract class TvInputService.RecordingSession {
-    method public void notifySessionEvent(java.lang.String, android.os.Bundle);
+  public abstract static class TvInputService.RecordingSession {
+    method public void notifySessionEvent(@NonNull String, android.os.Bundle);
   }
 
-  public static abstract class TvInputService.Session implements android.view.KeyEvent.Callback {
-    method public void notifySessionEvent(java.lang.String, android.os.Bundle);
+  public abstract static class TvInputService.Session implements android.view.KeyEvent.Callback {
+    method public void notifySessionEvent(@NonNull String, android.os.Bundle);
     method public void onSetMain(boolean);
   }
 
-  public static abstract class TvRecordingClient.RecordingCallback {
-    method public void onEvent(java.lang.String, java.lang.String, android.os.Bundle);
+  public abstract static class TvRecordingClient.RecordingCallback {
+    method public void onEvent(String, String, android.os.Bundle);
   }
 
   public class TvStreamConfig implements android.os.Parcelable {
@@ -3704,12 +3711,12 @@
   }
 
   public class TvView extends android.view.ViewGroup {
-    method public void setMain();
-    method public void unblockContent(android.media.tv.TvContentRating);
+    method @RequiresPermission("android.permission.CHANGE_HDMI_CEC_ACTIVE_SOURCE") public void setMain();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void unblockContent(android.media.tv.TvContentRating);
   }
 
-  public static abstract class TvView.TvInputCallback {
-    method public void onEvent(java.lang.String, java.lang.String, android.os.Bundle);
+  public abstract static class TvView.TvInputCallback {
+    method public void onEvent(String, String, android.os.Bundle);
   }
 
 }
@@ -3718,31 +3725,31 @@
 
   public class LogMaker {
     ctor public LogMaker(int);
-    ctor public LogMaker(java.lang.Object[]);
-    method public android.metrics.LogMaker addTaggedData(int, java.lang.Object);
+    ctor public LogMaker(Object[]);
+    method public android.metrics.LogMaker addTaggedData(int, Object);
     method public android.metrics.LogMaker clearCategory();
     method public android.metrics.LogMaker clearPackageName();
     method public android.metrics.LogMaker clearSubtype();
     method public android.metrics.LogMaker clearTaggedData(int);
     method public android.metrics.LogMaker clearType();
-    method public void deserialize(java.lang.Object[]);
+    method public void deserialize(Object[]);
     method public int getCategory();
     method public long getCounterBucket();
-    method public java.lang.String getCounterName();
+    method public String getCounterName();
     method public int getCounterValue();
-    method public java.lang.String getPackageName();
+    method public String getPackageName();
     method public int getProcessId();
     method public int getSubtype();
-    method public java.lang.Object getTaggedData(int);
+    method public Object getTaggedData(int);
     method public long getTimestamp();
     method public int getType();
     method public int getUid();
     method public boolean isLongCounterBucket();
     method public boolean isSubsetOf(android.metrics.LogMaker);
-    method public boolean isValidValue(java.lang.Object);
-    method public java.lang.Object[] serialize();
+    method public boolean isValidValue(Object);
+    method public Object[] serialize();
     method public android.metrics.LogMaker setCategory(int);
-    method public android.metrics.LogMaker setPackageName(java.lang.String);
+    method public android.metrics.LogMaker setPackageName(String);
     method public android.metrics.LogMaker setSubtype(int);
     method public android.metrics.LogMaker setType(int);
   }
@@ -3761,42 +3768,42 @@
 package android.net {
 
   public class ConnectivityManager {
-    method public java.lang.String getCaptivePortalServerUrl();
-    method public boolean isTetheringSupported();
-    method public void setAirplaneMode(boolean);
-    method public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback);
-    method public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback, android.os.Handler);
-    method public void stopTethering(int);
+    method @RequiresPermission(android.Manifest.permission.LOCAL_MAC_ADDRESS) public String getCaptivePortalServerUrl();
+    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public boolean isTetheringSupported();
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void setAirplaneMode(boolean);
+    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback);
+    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback, android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void stopTethering(int);
     field public static final int TETHERING_BLUETOOTH = 2; // 0x2
     field public static final int TETHERING_USB = 1; // 0x1
     field public static final int TETHERING_WIFI = 0; // 0x0
   }
 
-  public static abstract class ConnectivityManager.OnStartTetheringCallback {
+  public abstract static class ConnectivityManager.OnStartTetheringCallback {
     ctor public ConnectivityManager.OnStartTetheringCallback();
     method public void onTetheringFailed();
     method public void onTetheringStarted();
   }
 
   public final class IpSecManager {
-    method public void applyTunnelModeTransform(android.net.IpSecManager.IpSecTunnelInterface, int, android.net.IpSecTransform) throws java.io.IOException;
-    method public android.net.IpSecManager.IpSecTunnelInterface createIpSecTunnelInterface(java.net.InetAddress, java.net.InetAddress, android.net.Network) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
+    method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void applyTunnelModeTransform(@NonNull android.net.IpSecManager.IpSecTunnelInterface, int, @NonNull android.net.IpSecTransform) throws java.io.IOException;
+    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public android.net.IpSecManager.IpSecTunnelInterface createIpSecTunnelInterface(@NonNull java.net.InetAddress, @NonNull java.net.InetAddress, @NonNull android.net.Network) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException;
   }
 
   public static final class IpSecManager.IpSecTunnelInterface implements java.lang.AutoCloseable {
-    method public void addAddress(java.net.InetAddress, int) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void addAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException;
     method public void close();
-    method public java.lang.String getInterfaceName();
-    method public void removeAddress(java.net.InetAddress, int) throws java.io.IOException;
+    method @NonNull public String getInterfaceName();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void removeAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException;
   }
 
   public final class IpSecTransform implements java.lang.AutoCloseable {
-    method public void startNattKeepalive(android.net.IpSecTransform.NattKeepaliveCallback, int, android.os.Handler) throws java.io.IOException;
-    method public void stopNattKeepalive();
+    method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_IPSEC_TUNNELS, "android.permission.PACKET_KEEPALIVE_OFFLOAD"}) public void startNattKeepalive(@NonNull android.net.IpSecTransform.NattKeepaliveCallback, int, @NonNull android.os.Handler) throws java.io.IOException;
+    method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_IPSEC_TUNNELS, "android.permission.PACKET_KEEPALIVE_OFFLOAD"}) public void stopNattKeepalive();
   }
 
   public static class IpSecTransform.Builder {
-    method public android.net.IpSecTransform buildTunnelModeTransform(java.net.InetAddress, android.net.IpSecManager.SecurityParameterIndex) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
+    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public android.net.IpSecTransform buildTunnelModeTransform(@NonNull java.net.InetAddress, @NonNull android.net.IpSecManager.SecurityParameterIndex) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException;
   }
 
   public static class IpSecTransform.NattKeepaliveCallback {
@@ -3811,7 +3818,7 @@
 
   public class LinkAddress implements android.os.Parcelable {
     ctor public LinkAddress(java.net.InetAddress, int);
-    ctor public LinkAddress(java.lang.String);
+    ctor public LinkAddress(String);
   }
 
   public final class LinkProperties implements android.os.Parcelable {
@@ -3819,9 +3826,9 @@
     method public boolean addRoute(android.net.RouteInfo);
     method public void clear();
     method public void setDnsServers(java.util.Collection<java.net.InetAddress>);
-    method public void setDomains(java.lang.String);
+    method public void setDomains(String);
     method public void setHttpProxy(android.net.ProxyInfo);
-    method public void setInterfaceName(java.lang.String);
+    method public void setInterfaceName(String);
     method public void setLinkAddresses(java.util.Collection<android.net.LinkAddress>);
     method public void setMtu(int);
   }
@@ -3852,19 +3859,19 @@
   }
 
   public class NetworkScoreManager {
-    method public boolean clearScores() throws java.lang.SecurityException;
-    method public void disableScoring() throws java.lang.SecurityException;
-    method public java.lang.String getActiveScorerPackage();
-    method public boolean setActiveScorer(java.lang.String) throws java.lang.SecurityException;
-    method public boolean updateScores(android.net.ScoredNetwork[]) throws java.lang.SecurityException;
-    field public static final java.lang.String ACTION_CHANGE_ACTIVE = "android.net.scoring.CHANGE_ACTIVE";
-    field public static final java.lang.String ACTION_CUSTOM_ENABLE = "android.net.scoring.CUSTOM_ENABLE";
-    field public static final java.lang.String ACTION_RECOMMEND_NETWORKS = "android.net.action.RECOMMEND_NETWORKS";
-    field public static final java.lang.String ACTION_SCORER_CHANGED = "android.net.scoring.SCORER_CHANGED";
-    field public static final java.lang.String ACTION_SCORE_NETWORKS = "android.net.scoring.SCORE_NETWORKS";
-    field public static final java.lang.String EXTRA_NETWORKS_TO_SCORE = "networksToScore";
-    field public static final java.lang.String EXTRA_NEW_SCORER = "newScorer";
-    field public static final java.lang.String EXTRA_PACKAGE_NAME = "packageName";
+    method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, "android.permission.REQUEST_NETWORK_SCORES"}) public boolean clearScores() throws java.lang.SecurityException;
+    method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, "android.permission.REQUEST_NETWORK_SCORES"}) public void disableScoring() throws java.lang.SecurityException;
+    method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, "android.permission.REQUEST_NETWORK_SCORES"}) public String getActiveScorerPackage();
+    method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, "android.permission.REQUEST_NETWORK_SCORES"}) public boolean setActiveScorer(String) throws java.lang.SecurityException;
+    method @RequiresPermission(android.Manifest.permission.SCORE_NETWORKS) public boolean updateScores(android.net.ScoredNetwork[]) throws java.lang.SecurityException;
+    field public static final String ACTION_CHANGE_ACTIVE = "android.net.scoring.CHANGE_ACTIVE";
+    field public static final String ACTION_CUSTOM_ENABLE = "android.net.scoring.CUSTOM_ENABLE";
+    field public static final String ACTION_RECOMMEND_NETWORKS = "android.net.action.RECOMMEND_NETWORKS";
+    field public static final String ACTION_SCORER_CHANGED = "android.net.scoring.SCORER_CHANGED";
+    field public static final String ACTION_SCORE_NETWORKS = "android.net.scoring.SCORE_NETWORKS";
+    field public static final String EXTRA_NETWORKS_TO_SCORE = "networksToScore";
+    field public static final String EXTRA_NEW_SCORER = "newScorer";
+    field public static final String EXTRA_PACKAGE_NAME = "packageName";
   }
 
   public class RssiCurve implements android.os.Parcelable {
@@ -3884,15 +3891,15 @@
   public class ScoredNetwork implements android.os.Parcelable {
     ctor public ScoredNetwork(android.net.NetworkKey, android.net.RssiCurve);
     ctor public ScoredNetwork(android.net.NetworkKey, android.net.RssiCurve, boolean);
-    ctor public ScoredNetwork(android.net.NetworkKey, android.net.RssiCurve, boolean, android.os.Bundle);
+    ctor public ScoredNetwork(android.net.NetworkKey, android.net.RssiCurve, boolean, @Nullable android.os.Bundle);
     method public int calculateBadge(int);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
-    field public static final java.lang.String ATTRIBUTES_KEY_BADGING_CURVE = "android.net.attributes.key.BADGING_CURVE";
-    field public static final java.lang.String ATTRIBUTES_KEY_HAS_CAPTIVE_PORTAL = "android.net.attributes.key.HAS_CAPTIVE_PORTAL";
-    field public static final java.lang.String ATTRIBUTES_KEY_RANKING_SCORE_OFFSET = "android.net.attributes.key.RANKING_SCORE_OFFSET";
+    field public static final String ATTRIBUTES_KEY_BADGING_CURVE = "android.net.attributes.key.BADGING_CURVE";
+    field public static final String ATTRIBUTES_KEY_HAS_CAPTIVE_PORTAL = "android.net.attributes.key.HAS_CAPTIVE_PORTAL";
+    field public static final String ATTRIBUTES_KEY_RANKING_SCORE_OFFSET = "android.net.attributes.key.RANKING_SCORE_OFFSET";
     field public static final android.os.Parcelable.Creator<android.net.ScoredNetwork> CREATOR;
-    field public final android.os.Bundle attributes;
+    field @Nullable public final android.os.Bundle attributes;
     field public final boolean meteredHint;
     field public final android.net.NetworkKey networkKey;
     field public final android.net.RssiCurve rssiCurve;
@@ -3905,20 +3912,20 @@
   }
 
   public class VpnService extends android.app.Service {
-    method public static void prepareAndAuthorize(android.content.Context);
+    method @RequiresPermission(android.Manifest.permission.CONTROL_VPN) public static void prepareAndAuthorize(android.content.Context);
   }
 
   public class WebAddress {
-    ctor public WebAddress(java.lang.String) throws android.net.ParseException;
+    ctor public WebAddress(String) throws android.net.ParseException;
   }
 
   public class WifiKey implements android.os.Parcelable {
-    ctor public WifiKey(java.lang.String, java.lang.String);
+    ctor public WifiKey(String, String);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.WifiKey> CREATOR;
-    field public final java.lang.String bssid;
-    field public final java.lang.String ssid;
+    field public final String bssid;
+    field public final String ssid;
   }
 
 }
@@ -3931,10 +3938,10 @@
     method public abstract void onEnrolleeSuccess(int);
     method public abstract void onFailure(int);
     method public abstract void onProgress(int);
-    field public static final int EASY_CONNECT_EVENT_FAILURE = -7; // 0xfffffff9
     field public static final int EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION = -2; // 0xfffffffe
     field public static final int EASY_CONNECT_EVENT_FAILURE_BUSY = -5; // 0xfffffffb
     field public static final int EASY_CONNECT_EVENT_FAILURE_CONFIGURATION = -4; // 0xfffffffc
+    field public static final int EASY_CONNECT_EVENT_FAILURE_GENERIC = -7; // 0xfffffff9
     field public static final int EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK = -9; // 0xfffffff7
     field public static final int EASY_CONNECT_EVENT_FAILURE_INVALID_URI = -1; // 0xffffffff
     field public static final int EASY_CONNECT_EVENT_FAILURE_NOT_COMPATIBLE = -3; // 0xfffffffd
@@ -3945,215 +3952,215 @@
     field public static final int EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT = 0; // 0x0
   }
 
-  public deprecated class RttManager {
-    method public void disableResponder(android.net.wifi.RttManager.ResponderCallback);
-    method public void enableResponder(android.net.wifi.RttManager.ResponderCallback);
-    method public deprecated android.net.wifi.RttManager.Capabilities getCapabilities();
-    method public android.net.wifi.RttManager.RttCapabilities getRttCapabilities();
-    method public void startRanging(android.net.wifi.RttManager.RttParams[], android.net.wifi.RttManager.RttListener);
-    method public void stopRanging(android.net.wifi.RttManager.RttListener);
-    field public static final int BASE = 160256; // 0x27200
-    field public static final int CMD_OP_ABORTED = 160260; // 0x27204
-    field public static final int CMD_OP_DISABLE_RESPONDER = 160262; // 0x27206
-    field public static final int CMD_OP_ENABLE_RESPONDER = 160261; // 0x27205
-    field public static final int CMD_OP_ENALBE_RESPONDER_FAILED = 160264; // 0x27208
-    field public static final int CMD_OP_ENALBE_RESPONDER_SUCCEEDED = 160263; // 0x27207
-    field public static final int CMD_OP_FAILED = 160258; // 0x27202
-    field public static final int CMD_OP_START_RANGING = 160256; // 0x27200
-    field public static final int CMD_OP_STOP_RANGING = 160257; // 0x27201
-    field public static final int CMD_OP_SUCCEEDED = 160259; // 0x27203
-    field public static final java.lang.String DESCRIPTION_KEY = "android.net.wifi.RttManager.Description";
-    field public static final int PREAMBLE_HT = 2; // 0x2
-    field public static final int PREAMBLE_LEGACY = 1; // 0x1
-    field public static final int PREAMBLE_VHT = 4; // 0x4
-    field public static final int REASON_INITIATOR_NOT_ALLOWED_WHEN_RESPONDER_ON = -6; // 0xfffffffa
-    field public static final int REASON_INVALID_LISTENER = -3; // 0xfffffffd
-    field public static final int REASON_INVALID_REQUEST = -4; // 0xfffffffc
-    field public static final int REASON_NOT_AVAILABLE = -2; // 0xfffffffe
-    field public static final int REASON_PERMISSION_DENIED = -5; // 0xfffffffb
-    field public static final int REASON_UNSPECIFIED = -1; // 0xffffffff
-    field public static final int RTT_BW_10_SUPPORT = 2; // 0x2
-    field public static final int RTT_BW_160_SUPPORT = 32; // 0x20
-    field public static final int RTT_BW_20_SUPPORT = 4; // 0x4
-    field public static final int RTT_BW_40_SUPPORT = 8; // 0x8
-    field public static final int RTT_BW_5_SUPPORT = 1; // 0x1
-    field public static final int RTT_BW_80_SUPPORT = 16; // 0x10
-    field public static final deprecated int RTT_CHANNEL_WIDTH_10 = 6; // 0x6
-    field public static final deprecated int RTT_CHANNEL_WIDTH_160 = 3; // 0x3
-    field public static final deprecated int RTT_CHANNEL_WIDTH_20 = 0; // 0x0
-    field public static final deprecated int RTT_CHANNEL_WIDTH_40 = 1; // 0x1
-    field public static final deprecated int RTT_CHANNEL_WIDTH_5 = 5; // 0x5
-    field public static final deprecated int RTT_CHANNEL_WIDTH_80 = 2; // 0x2
-    field public static final deprecated int RTT_CHANNEL_WIDTH_80P80 = 4; // 0x4
-    field public static final deprecated int RTT_CHANNEL_WIDTH_UNSPECIFIED = -1; // 0xffffffff
-    field public static final int RTT_PEER_NAN = 5; // 0x5
-    field public static final int RTT_PEER_P2P_CLIENT = 4; // 0x4
-    field public static final int RTT_PEER_P2P_GO = 3; // 0x3
-    field public static final int RTT_PEER_TYPE_AP = 1; // 0x1
-    field public static final int RTT_PEER_TYPE_STA = 2; // 0x2
-    field public static final deprecated int RTT_PEER_TYPE_UNSPECIFIED = 0; // 0x0
-    field public static final int RTT_STATUS_ABORTED = 8; // 0x8
-    field public static final int RTT_STATUS_FAILURE = 1; // 0x1
-    field public static final int RTT_STATUS_FAIL_AP_ON_DIFF_CHANNEL = 6; // 0x6
-    field public static final int RTT_STATUS_FAIL_BUSY_TRY_LATER = 12; // 0xc
-    field public static final int RTT_STATUS_FAIL_FTM_PARAM_OVERRIDE = 15; // 0xf
-    field public static final int RTT_STATUS_FAIL_INVALID_TS = 9; // 0x9
-    field public static final int RTT_STATUS_FAIL_NOT_SCHEDULED_YET = 4; // 0x4
-    field public static final int RTT_STATUS_FAIL_NO_CAPABILITY = 7; // 0x7
-    field public static final int RTT_STATUS_FAIL_NO_RSP = 2; // 0x2
-    field public static final int RTT_STATUS_FAIL_PROTOCOL = 10; // 0xa
-    field public static final int RTT_STATUS_FAIL_REJECTED = 3; // 0x3
-    field public static final int RTT_STATUS_FAIL_SCHEDULE = 11; // 0xb
-    field public static final int RTT_STATUS_FAIL_TM_TIMEOUT = 5; // 0x5
-    field public static final int RTT_STATUS_INVALID_REQ = 13; // 0xd
-    field public static final int RTT_STATUS_NO_WIFI = 14; // 0xe
-    field public static final int RTT_STATUS_SUCCESS = 0; // 0x0
-    field public static final deprecated int RTT_TYPE_11_MC = 4; // 0x4
-    field public static final deprecated int RTT_TYPE_11_V = 2; // 0x2
-    field public static final int RTT_TYPE_ONE_SIDED = 1; // 0x1
-    field public static final int RTT_TYPE_TWO_SIDED = 2; // 0x2
-    field public static final deprecated int RTT_TYPE_UNSPECIFIED = 0; // 0x0
+  @Deprecated public class RttManager {
+    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void disableResponder(android.net.wifi.RttManager.ResponderCallback);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void enableResponder(android.net.wifi.RttManager.ResponderCallback);
+    method @Deprecated public android.net.wifi.RttManager.Capabilities getCapabilities();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.net.wifi.RttManager.RttCapabilities getRttCapabilities();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startRanging(android.net.wifi.RttManager.RttParams[], android.net.wifi.RttManager.RttListener);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void stopRanging(android.net.wifi.RttManager.RttListener);
+    field @Deprecated public static final int BASE = 160256; // 0x27200
+    field @Deprecated public static final int CMD_OP_ABORTED = 160260; // 0x27204
+    field @Deprecated public static final int CMD_OP_DISABLE_RESPONDER = 160262; // 0x27206
+    field @Deprecated public static final int CMD_OP_ENABLE_RESPONDER = 160261; // 0x27205
+    field @Deprecated public static final int CMD_OP_ENALBE_RESPONDER_FAILED = 160264; // 0x27208
+    field @Deprecated public static final int CMD_OP_ENALBE_RESPONDER_SUCCEEDED = 160263; // 0x27207
+    field @Deprecated public static final int CMD_OP_FAILED = 160258; // 0x27202
+    field @Deprecated public static final int CMD_OP_START_RANGING = 160256; // 0x27200
+    field @Deprecated public static final int CMD_OP_STOP_RANGING = 160257; // 0x27201
+    field @Deprecated public static final int CMD_OP_SUCCEEDED = 160259; // 0x27203
+    field @Deprecated public static final String DESCRIPTION_KEY = "android.net.wifi.RttManager.Description";
+    field @Deprecated public static final int PREAMBLE_HT = 2; // 0x2
+    field @Deprecated public static final int PREAMBLE_LEGACY = 1; // 0x1
+    field @Deprecated public static final int PREAMBLE_VHT = 4; // 0x4
+    field @Deprecated public static final int REASON_INITIATOR_NOT_ALLOWED_WHEN_RESPONDER_ON = -6; // 0xfffffffa
+    field @Deprecated public static final int REASON_INVALID_LISTENER = -3; // 0xfffffffd
+    field @Deprecated public static final int REASON_INVALID_REQUEST = -4; // 0xfffffffc
+    field @Deprecated public static final int REASON_NOT_AVAILABLE = -2; // 0xfffffffe
+    field @Deprecated public static final int REASON_PERMISSION_DENIED = -5; // 0xfffffffb
+    field @Deprecated public static final int REASON_UNSPECIFIED = -1; // 0xffffffff
+    field @Deprecated public static final int RTT_BW_10_SUPPORT = 2; // 0x2
+    field @Deprecated public static final int RTT_BW_160_SUPPORT = 32; // 0x20
+    field @Deprecated public static final int RTT_BW_20_SUPPORT = 4; // 0x4
+    field @Deprecated public static final int RTT_BW_40_SUPPORT = 8; // 0x8
+    field @Deprecated public static final int RTT_BW_5_SUPPORT = 1; // 0x1
+    field @Deprecated public static final int RTT_BW_80_SUPPORT = 16; // 0x10
+    field @Deprecated public static final int RTT_CHANNEL_WIDTH_10 = 6; // 0x6
+    field @Deprecated public static final int RTT_CHANNEL_WIDTH_160 = 3; // 0x3
+    field @Deprecated public static final int RTT_CHANNEL_WIDTH_20 = 0; // 0x0
+    field @Deprecated public static final int RTT_CHANNEL_WIDTH_40 = 1; // 0x1
+    field @Deprecated public static final int RTT_CHANNEL_WIDTH_5 = 5; // 0x5
+    field @Deprecated public static final int RTT_CHANNEL_WIDTH_80 = 2; // 0x2
+    field @Deprecated public static final int RTT_CHANNEL_WIDTH_80P80 = 4; // 0x4
+    field @Deprecated public static final int RTT_CHANNEL_WIDTH_UNSPECIFIED = -1; // 0xffffffff
+    field @Deprecated public static final int RTT_PEER_NAN = 5; // 0x5
+    field @Deprecated public static final int RTT_PEER_P2P_CLIENT = 4; // 0x4
+    field @Deprecated public static final int RTT_PEER_P2P_GO = 3; // 0x3
+    field @Deprecated public static final int RTT_PEER_TYPE_AP = 1; // 0x1
+    field @Deprecated public static final int RTT_PEER_TYPE_STA = 2; // 0x2
+    field @Deprecated public static final int RTT_PEER_TYPE_UNSPECIFIED = 0; // 0x0
+    field @Deprecated public static final int RTT_STATUS_ABORTED = 8; // 0x8
+    field @Deprecated public static final int RTT_STATUS_FAILURE = 1; // 0x1
+    field @Deprecated public static final int RTT_STATUS_FAIL_AP_ON_DIFF_CHANNEL = 6; // 0x6
+    field @Deprecated public static final int RTT_STATUS_FAIL_BUSY_TRY_LATER = 12; // 0xc
+    field @Deprecated public static final int RTT_STATUS_FAIL_FTM_PARAM_OVERRIDE = 15; // 0xf
+    field @Deprecated public static final int RTT_STATUS_FAIL_INVALID_TS = 9; // 0x9
+    field @Deprecated public static final int RTT_STATUS_FAIL_NOT_SCHEDULED_YET = 4; // 0x4
+    field @Deprecated public static final int RTT_STATUS_FAIL_NO_CAPABILITY = 7; // 0x7
+    field @Deprecated public static final int RTT_STATUS_FAIL_NO_RSP = 2; // 0x2
+    field @Deprecated public static final int RTT_STATUS_FAIL_PROTOCOL = 10; // 0xa
+    field @Deprecated public static final int RTT_STATUS_FAIL_REJECTED = 3; // 0x3
+    field @Deprecated public static final int RTT_STATUS_FAIL_SCHEDULE = 11; // 0xb
+    field @Deprecated public static final int RTT_STATUS_FAIL_TM_TIMEOUT = 5; // 0x5
+    field @Deprecated public static final int RTT_STATUS_INVALID_REQ = 13; // 0xd
+    field @Deprecated public static final int RTT_STATUS_NO_WIFI = 14; // 0xe
+    field @Deprecated public static final int RTT_STATUS_SUCCESS = 0; // 0x0
+    field @Deprecated public static final int RTT_TYPE_11_MC = 4; // 0x4
+    field @Deprecated public static final int RTT_TYPE_11_V = 2; // 0x2
+    field @Deprecated public static final int RTT_TYPE_ONE_SIDED = 1; // 0x1
+    field @Deprecated public static final int RTT_TYPE_TWO_SIDED = 2; // 0x2
+    field @Deprecated public static final int RTT_TYPE_UNSPECIFIED = 0; // 0x0
   }
 
-  public deprecated class RttManager.Capabilities {
-    ctor public RttManager.Capabilities();
-    field public int supportedPeerType;
-    field public int supportedType;
+  @Deprecated public class RttManager.Capabilities {
+    ctor @Deprecated public RttManager.Capabilities();
+    field @Deprecated public int supportedPeerType;
+    field @Deprecated public int supportedType;
   }
 
-  public static deprecated class RttManager.ParcelableRttParams implements android.os.Parcelable {
-    field public android.net.wifi.RttManager.RttParams[] mParams;
+  @Deprecated public static class RttManager.ParcelableRttParams implements android.os.Parcelable {
+    field @Deprecated @NonNull public android.net.wifi.RttManager.RttParams[] mParams;
   }
 
-  public static deprecated class RttManager.ParcelableRttResults implements android.os.Parcelable {
-    ctor public RttManager.ParcelableRttResults(android.net.wifi.RttManager.RttResult[]);
-    field public android.net.wifi.RttManager.RttResult[] mResults;
+  @Deprecated public static class RttManager.ParcelableRttResults implements android.os.Parcelable {
+    ctor @Deprecated public RttManager.ParcelableRttResults(android.net.wifi.RttManager.RttResult[]);
+    field @Deprecated public android.net.wifi.RttManager.RttResult[] mResults;
   }
 
-  public static abstract deprecated class RttManager.ResponderCallback {
-    ctor public RttManager.ResponderCallback();
-    method public abstract void onResponderEnableFailure(int);
-    method public abstract void onResponderEnabled(android.net.wifi.RttManager.ResponderConfig);
+  @Deprecated public abstract static class RttManager.ResponderCallback {
+    ctor @Deprecated public RttManager.ResponderCallback();
+    method @Deprecated public abstract void onResponderEnableFailure(int);
+    method @Deprecated public abstract void onResponderEnabled(android.net.wifi.RttManager.ResponderConfig);
   }
 
-  public static deprecated class RttManager.ResponderConfig implements android.os.Parcelable {
-    ctor public RttManager.ResponderConfig();
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.net.wifi.RttManager.ResponderConfig> CREATOR;
-    field public int centerFreq0;
-    field public int centerFreq1;
-    field public int channelWidth;
-    field public int frequency;
-    field public java.lang.String macAddress;
-    field public int preamble;
+  @Deprecated public static class RttManager.ResponderConfig implements android.os.Parcelable {
+    ctor @Deprecated public RttManager.ResponderConfig();
+    method @Deprecated public int describeContents();
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.net.wifi.RttManager.ResponderConfig> CREATOR;
+    field @Deprecated public int centerFreq0;
+    field @Deprecated public int centerFreq1;
+    field @Deprecated public int channelWidth;
+    field @Deprecated public int frequency;
+    field @Deprecated public String macAddress;
+    field @Deprecated public int preamble;
   }
 
-  public static deprecated class RttManager.RttCapabilities implements android.os.Parcelable {
-    ctor public RttManager.RttCapabilities();
-    field public int bwSupported;
-    field public boolean lciSupported;
-    field public boolean lcrSupported;
-    field public int mcVersion;
-    field public boolean oneSidedRttSupported;
-    field public int preambleSupported;
-    field public boolean responderSupported;
-    field public boolean secureRttSupported;
-    field public deprecated boolean supportedPeerType;
-    field public deprecated boolean supportedType;
-    field public boolean twoSided11McRttSupported;
+  @Deprecated public static class RttManager.RttCapabilities implements android.os.Parcelable {
+    ctor @Deprecated public RttManager.RttCapabilities();
+    field @Deprecated public int bwSupported;
+    field @Deprecated public boolean lciSupported;
+    field @Deprecated public boolean lcrSupported;
+    field @Deprecated public int mcVersion;
+    field @Deprecated public boolean oneSidedRttSupported;
+    field @Deprecated public int preambleSupported;
+    field @Deprecated public boolean responderSupported;
+    field @Deprecated public boolean secureRttSupported;
+    field @Deprecated public boolean supportedPeerType;
+    field @Deprecated public boolean supportedType;
+    field @Deprecated public boolean twoSided11McRttSupported;
   }
 
-  public static abstract deprecated interface RttManager.RttListener {
-    method public abstract void onAborted();
-    method public abstract void onFailure(int, java.lang.String);
-    method public abstract void onSuccess(android.net.wifi.RttManager.RttResult[]);
+  @Deprecated public static interface RttManager.RttListener {
+    method @Deprecated public void onAborted();
+    method @Deprecated public void onFailure(int, String);
+    method @Deprecated public void onSuccess(android.net.wifi.RttManager.RttResult[]);
   }
 
-  public static deprecated class RttManager.RttParams {
-    ctor public RttManager.RttParams();
-    field public boolean LCIRequest;
-    field public boolean LCRRequest;
-    field public int bandwidth;
-    field public java.lang.String bssid;
-    field public int burstTimeout;
-    field public int centerFreq0;
-    field public int centerFreq1;
-    field public int channelWidth;
-    field public int deviceType;
-    field public int frequency;
-    field public int interval;
-    field public int numRetriesPerFTMR;
-    field public int numRetriesPerMeasurementFrame;
-    field public int numSamplesPerBurst;
-    field public deprecated int num_retries;
-    field public deprecated int num_samples;
-    field public int numberBurst;
-    field public int preamble;
-    field public int requestType;
-    field public boolean secure;
+  @Deprecated public static class RttManager.RttParams {
+    ctor @Deprecated public RttManager.RttParams();
+    field @Deprecated public boolean LCIRequest;
+    field @Deprecated public boolean LCRRequest;
+    field @Deprecated public int bandwidth;
+    field @Deprecated public String bssid;
+    field @Deprecated public int burstTimeout;
+    field @Deprecated public int centerFreq0;
+    field @Deprecated public int centerFreq1;
+    field @Deprecated public int channelWidth;
+    field @Deprecated public int deviceType;
+    field @Deprecated public int frequency;
+    field @Deprecated public int interval;
+    field @Deprecated public int numRetriesPerFTMR;
+    field @Deprecated public int numRetriesPerMeasurementFrame;
+    field @Deprecated public int numSamplesPerBurst;
+    field @Deprecated public int num_retries;
+    field @Deprecated public int num_samples;
+    field @Deprecated public int numberBurst;
+    field @Deprecated public int preamble;
+    field @Deprecated public int requestType;
+    field @Deprecated public boolean secure;
   }
 
-  public static deprecated class RttManager.RttResult {
-    ctor public RttManager.RttResult();
-    field public android.net.wifi.RttManager.WifiInformationElement LCI;
-    field public android.net.wifi.RttManager.WifiInformationElement LCR;
-    field public java.lang.String bssid;
-    field public int burstDuration;
-    field public int burstNumber;
-    field public int distance;
-    field public int distanceSpread;
-    field public int distanceStandardDeviation;
-    field public deprecated int distance_cm;
-    field public deprecated int distance_sd_cm;
-    field public deprecated int distance_spread_cm;
-    field public int frameNumberPerBurstPeer;
-    field public int measurementFrameNumber;
-    field public int measurementType;
-    field public int negotiatedBurstNum;
-    field public deprecated int requestType;
-    field public int retryAfterDuration;
-    field public int rssi;
-    field public int rssiSpread;
-    field public deprecated int rssi_spread;
-    field public long rtt;
-    field public long rttSpread;
-    field public long rttStandardDeviation;
-    field public deprecated long rtt_ns;
-    field public deprecated long rtt_sd_ns;
-    field public deprecated long rtt_spread_ns;
-    field public int rxRate;
-    field public boolean secure;
-    field public int status;
-    field public int successMeasurementFrameNumber;
-    field public long ts;
-    field public int txRate;
-    field public deprecated int tx_rate;
+  @Deprecated public static class RttManager.RttResult {
+    ctor @Deprecated public RttManager.RttResult();
+    field @Deprecated public android.net.wifi.RttManager.WifiInformationElement LCI;
+    field @Deprecated public android.net.wifi.RttManager.WifiInformationElement LCR;
+    field @Deprecated public String bssid;
+    field @Deprecated public int burstDuration;
+    field @Deprecated public int burstNumber;
+    field @Deprecated public int distance;
+    field @Deprecated public int distanceSpread;
+    field @Deprecated public int distanceStandardDeviation;
+    field @Deprecated public int distance_cm;
+    field @Deprecated public int distance_sd_cm;
+    field @Deprecated public int distance_spread_cm;
+    field @Deprecated public int frameNumberPerBurstPeer;
+    field @Deprecated public int measurementFrameNumber;
+    field @Deprecated public int measurementType;
+    field @Deprecated public int negotiatedBurstNum;
+    field @Deprecated public int requestType;
+    field @Deprecated public int retryAfterDuration;
+    field @Deprecated public int rssi;
+    field @Deprecated public int rssiSpread;
+    field @Deprecated public int rssi_spread;
+    field @Deprecated public long rtt;
+    field @Deprecated public long rttSpread;
+    field @Deprecated public long rttStandardDeviation;
+    field @Deprecated public long rtt_ns;
+    field @Deprecated public long rtt_sd_ns;
+    field @Deprecated public long rtt_spread_ns;
+    field @Deprecated public int rxRate;
+    field @Deprecated public boolean secure;
+    field @Deprecated public int status;
+    field @Deprecated public int successMeasurementFrameNumber;
+    field @Deprecated public long ts;
+    field @Deprecated public int txRate;
+    field @Deprecated public int tx_rate;
   }
 
-  public static deprecated class RttManager.WifiInformationElement {
-    ctor public RttManager.WifiInformationElement();
-    field public byte[] data;
-    field public byte id;
+  @Deprecated public static class RttManager.WifiInformationElement {
+    ctor @Deprecated public RttManager.WifiInformationElement();
+    field @Deprecated public byte[] data;
+    field @Deprecated public byte id;
   }
 
-  public deprecated class WifiConfiguration implements android.os.Parcelable {
-    method public boolean hasNoInternetAccess();
-    method public boolean isEphemeral();
-    method public boolean isNoInternetAccessExpected();
-    field public java.lang.String creatorName;
-    field public int creatorUid;
-    field public java.lang.String lastUpdateName;
-    field public int lastUpdateUid;
-    field public boolean meteredHint;
-    field public int numAssociation;
-    field public int numScorerOverride;
-    field public int numScorerOverrideAndSwitchedNetwork;
-    field public boolean useExternalScores;
+  @Deprecated public class WifiConfiguration implements android.os.Parcelable {
+    method @Deprecated public boolean hasNoInternetAccess();
+    method @Deprecated public boolean isEphemeral();
+    method @Deprecated public boolean isNoInternetAccessExpected();
+    field @Deprecated public String creatorName;
+    field @Deprecated public int creatorUid;
+    field @Deprecated public String lastUpdateName;
+    field @Deprecated public int lastUpdateUid;
+    field @Deprecated public boolean meteredHint;
+    field @Deprecated public int numAssociation;
+    field @Deprecated public int numScorerOverride;
+    field @Deprecated public int numScorerOverrideAndSwitchedNetwork;
+    field @Deprecated public boolean useExternalScores;
   }
 
-  public static class WifiConfiguration.KeyMgmt {
-    field public static final int WPA2_PSK = 4; // 0x4
+  @Deprecated public static class WifiConfiguration.KeyMgmt {
+    field @Deprecated public static final int WPA2_PSK = 4; // 0x4
   }
 
   public class WifiInfo implements android.os.Parcelable {
@@ -4161,77 +4168,77 @@
   }
 
   public class WifiManager {
-    method public void connect(android.net.wifi.WifiConfiguration, android.net.wifi.WifiManager.ActionListener);
-    method public void connect(int, android.net.wifi.WifiManager.ActionListener);
-    method public void disable(int, android.net.wifi.WifiManager.ActionListener);
-    method public void disableEphemeralNetwork(java.lang.String);
-    method public void forget(int, android.net.wifi.WifiManager.ActionListener);
-    method public java.util.List<android.util.Pair<android.net.wifi.WifiConfiguration, java.util.Map<java.lang.Integer, java.util.List<android.net.wifi.ScanResult>>>> getAllMatchingWifiConfigs(java.util.List<android.net.wifi.ScanResult>);
-    method public java.util.Map<android.net.wifi.hotspot2.OsuProvider, java.util.List<android.net.wifi.ScanResult>> getMatchingOsuProviders(java.util.List<android.net.wifi.ScanResult>);
-    method public java.util.Map<android.net.wifi.hotspot2.OsuProvider, android.net.wifi.hotspot2.PasspointConfiguration> getMatchingPasspointConfigsForOsuProviders(java.util.Set<android.net.wifi.hotspot2.OsuProvider>);
-    method public java.util.List<android.net.wifi.WifiConfiguration> getPrivilegedConfiguredNetworks();
-    method public android.net.wifi.WifiConfiguration getWifiApConfiguration();
-    method public int getWifiApState();
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void connect(android.net.wifi.WifiConfiguration, android.net.wifi.WifiManager.ActionListener);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void connect(int, android.net.wifi.WifiManager.ActionListener);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void disable(int, android.net.wifi.WifiManager.ActionListener);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void disableEphemeralNetwork(String);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void forget(int, android.net.wifi.WifiManager.ActionListener);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.List<android.util.Pair<android.net.wifi.WifiConfiguration,java.util.Map<java.lang.Integer,java.util.List<android.net.wifi.ScanResult>>>> getAllMatchingWifiConfigs(@NonNull java.util.List<android.net.wifi.ScanResult>);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.Map<android.net.wifi.hotspot2.OsuProvider,java.util.List<android.net.wifi.ScanResult>> getMatchingOsuProviders(java.util.List<android.net.wifi.ScanResult>);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.Map<android.net.wifi.hotspot2.OsuProvider,android.net.wifi.hotspot2.PasspointConfiguration> getMatchingPasspointConfigsForOsuProviders(@NonNull java.util.Set<android.net.wifi.hotspot2.OsuProvider>);
+    method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_WIFI_STATE, android.Manifest.permission.READ_WIFI_CREDENTIAL}) public java.util.List<android.net.wifi.WifiConfiguration> getPrivilegedConfiguredNetworks();
+    method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public android.net.wifi.WifiConfiguration getWifiApConfiguration();
+    method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public int getWifiApState();
     method public boolean isDeviceToDeviceRttSupported();
     method public boolean isPortableHotspotSupported();
-    method public boolean isWifiApEnabled();
+    method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public boolean isWifiApEnabled();
     method public boolean isWifiScannerSupported();
-    method public void registerNetworkRequestMatchCallback(android.net.wifi.WifiManager.NetworkRequestMatchCallback, android.os.Handler);
-    method public void save(android.net.wifi.WifiConfiguration, android.net.wifi.WifiManager.ActionListener);
-    method public void setDeviceMobilityState(int);
-    method public boolean setWifiApConfiguration(android.net.wifi.WifiConfiguration);
-    method public void startEasyConnectAsConfiguratorInitiator(java.lang.String, int, int, android.os.Handler, android.net.wifi.EasyConnectStatusCallback);
-    method public void startEasyConnectAsEnrolleeInitiator(java.lang.String, android.os.Handler, android.net.wifi.EasyConnectStatusCallback);
-    method public boolean startScan(android.os.WorkSource);
-    method public void startSubscriptionProvisioning(android.net.wifi.hotspot2.OsuProvider, android.net.wifi.hotspot2.ProvisioningCallback, android.os.Handler);
-    method public void stopEasyConnectSession();
-    method public void unregisterNetworkRequestMatchCallback(android.net.wifi.WifiManager.NetworkRequestMatchCallback);
+    method @RequiresPermission("android.permission.NETWORK_SETTINGS") public void registerNetworkRequestMatchCallback(@NonNull android.net.wifi.WifiManager.NetworkRequestMatchCallback, @Nullable android.os.Handler);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void save(android.net.wifi.WifiConfiguration, android.net.wifi.WifiManager.ActionListener);
+    method @RequiresPermission("android.permission.WIFI_SET_DEVICE_MOBILITY_STATE") public void setDeviceMobilityState(int);
+    method @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE) public boolean setWifiApConfiguration(android.net.wifi.WifiConfiguration);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startEasyConnectAsConfiguratorInitiator(@NonNull String, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.EasyConnectStatusCallback);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startEasyConnectAsEnrolleeInitiator(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.EasyConnectStatusCallback);
+    method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public boolean startScan(android.os.WorkSource);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void startSubscriptionProvisioning(android.net.wifi.hotspot2.OsuProvider, android.net.wifi.hotspot2.ProvisioningCallback, @Nullable android.os.Handler);
+    method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void stopEasyConnectSession();
+    method @RequiresPermission("android.permission.NETWORK_SETTINGS") public void unregisterNetworkRequestMatchCallback(@NonNull android.net.wifi.WifiManager.NetworkRequestMatchCallback);
     field public static final int CHANGE_REASON_ADDED = 0; // 0x0
     field public static final int CHANGE_REASON_CONFIG_CHANGE = 2; // 0x2
     field public static final int CHANGE_REASON_REMOVED = 1; // 0x1
-    field public static final java.lang.String CONFIGURED_NETWORKS_CHANGED_ACTION = "android.net.wifi.CONFIGURED_NETWORKS_CHANGE";
+    field public static final String CONFIGURED_NETWORKS_CHANGED_ACTION = "android.net.wifi.CONFIGURED_NETWORKS_CHANGE";
     field public static final int DEVICE_MOBILITY_STATE_HIGH_MVMT = 1; // 0x1
     field public static final int DEVICE_MOBILITY_STATE_LOW_MVMT = 2; // 0x2
     field public static final int DEVICE_MOBILITY_STATE_STATIONARY = 3; // 0x3
     field public static final int DEVICE_MOBILITY_STATE_UNKNOWN = 0; // 0x0
     field public static final int EASY_CONNECT_NETWORK_ROLE_AP = 1; // 0x1
     field public static final int EASY_CONNECT_NETWORK_ROLE_STA = 0; // 0x0
-    field public static final java.lang.String EXTRA_CHANGE_REASON = "changeReason";
-    field public static final java.lang.String EXTRA_MULTIPLE_NETWORKS_CHANGED = "multipleChanges";
-    field public static final java.lang.String EXTRA_PREVIOUS_WIFI_AP_STATE = "previous_wifi_state";
-    field public static final java.lang.String EXTRA_WIFI_AP_STATE = "wifi_state";
-    field public static final java.lang.String EXTRA_WIFI_CONFIGURATION = "wifiConfiguration";
-    field public static final java.lang.String EXTRA_WIFI_CREDENTIAL_EVENT_TYPE = "et";
-    field public static final java.lang.String EXTRA_WIFI_CREDENTIAL_SSID = "ssid";
+    field public static final String EXTRA_CHANGE_REASON = "changeReason";
+    field public static final String EXTRA_MULTIPLE_NETWORKS_CHANGED = "multipleChanges";
+    field public static final String EXTRA_PREVIOUS_WIFI_AP_STATE = "previous_wifi_state";
+    field public static final String EXTRA_WIFI_AP_STATE = "wifi_state";
+    field public static final String EXTRA_WIFI_CONFIGURATION = "wifiConfiguration";
+    field public static final String EXTRA_WIFI_CREDENTIAL_EVENT_TYPE = "et";
+    field public static final String EXTRA_WIFI_CREDENTIAL_SSID = "ssid";
     field public static final int PASSPOINT_HOME_NETWORK = 0; // 0x0
     field public static final int PASSPOINT_ROAMING_NETWORK = 1; // 0x1
-    field public static final java.lang.String WIFI_AP_STATE_CHANGED_ACTION = "android.net.wifi.WIFI_AP_STATE_CHANGED";
+    field public static final String WIFI_AP_STATE_CHANGED_ACTION = "android.net.wifi.WIFI_AP_STATE_CHANGED";
     field public static final int WIFI_AP_STATE_DISABLED = 11; // 0xb
     field public static final int WIFI_AP_STATE_DISABLING = 10; // 0xa
     field public static final int WIFI_AP_STATE_ENABLED = 13; // 0xd
     field public static final int WIFI_AP_STATE_ENABLING = 12; // 0xc
     field public static final int WIFI_AP_STATE_FAILED = 14; // 0xe
-    field public static final java.lang.String WIFI_CREDENTIAL_CHANGED_ACTION = "android.net.wifi.WIFI_CREDENTIAL_CHANGED";
+    field public static final String WIFI_CREDENTIAL_CHANGED_ACTION = "android.net.wifi.WIFI_CREDENTIAL_CHANGED";
     field public static final int WIFI_CREDENTIAL_FORGOT = 1; // 0x1
     field public static final int WIFI_CREDENTIAL_SAVED = 0; // 0x0
   }
 
-  public static abstract interface WifiManager.ActionListener {
-    method public abstract void onFailure(int);
-    method public abstract void onSuccess();
+  public static interface WifiManager.ActionListener {
+    method public void onFailure(int);
+    method public void onSuccess();
   }
 
-  public static abstract interface WifiManager.NetworkRequestMatchCallback {
-    method public abstract void onAbort();
-    method public abstract void onMatch(java.util.List<android.net.wifi.ScanResult>);
-    method public abstract void onUserSelectionCallbackRegistration(android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback);
-    method public abstract void onUserSelectionConnectFailure(android.net.wifi.WifiConfiguration);
-    method public abstract void onUserSelectionConnectSuccess(android.net.wifi.WifiConfiguration);
+  public static interface WifiManager.NetworkRequestMatchCallback {
+    method public void onAbort();
+    method public void onMatch(@NonNull java.util.List<android.net.wifi.ScanResult>);
+    method public void onUserSelectionCallbackRegistration(@NonNull android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback);
+    method public void onUserSelectionConnectFailure(@NonNull android.net.wifi.WifiConfiguration);
+    method public void onUserSelectionConnectSuccess(@NonNull android.net.wifi.WifiConfiguration);
   }
 
-  public static abstract interface WifiManager.NetworkRequestUserSelectionCallback {
-    method public abstract void reject();
-    method public abstract void select(android.net.wifi.WifiConfiguration);
+  public static interface WifiManager.NetworkRequestUserSelectionCallback {
+    method public void reject();
+    method public void select(@NonNull android.net.wifi.WifiConfiguration);
   }
 
   public class WifiNetworkConnectionStatistics implements android.os.Parcelable {
@@ -4246,19 +4253,19 @@
   }
 
   public class WifiScanner {
-    method public deprecated void configureWifiChange(int, int, int, int, int, android.net.wifi.WifiScanner.BssidInfo[]);
-    method public deprecated void configureWifiChange(android.net.wifi.WifiScanner.WifiChangeSettings);
-    method public boolean getScanResults();
-    method public void startBackgroundScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener);
-    method public void startBackgroundScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener, android.os.WorkSource);
-    method public void startScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener);
-    method public void startScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener, android.os.WorkSource);
-    method public deprecated void startTrackingBssids(android.net.wifi.WifiScanner.BssidInfo[], int, android.net.wifi.WifiScanner.BssidListener);
-    method public deprecated void startTrackingWifiChange(android.net.wifi.WifiScanner.WifiChangeListener);
-    method public void stopBackgroundScan(android.net.wifi.WifiScanner.ScanListener);
-    method public void stopScan(android.net.wifi.WifiScanner.ScanListener);
-    method public deprecated void stopTrackingBssids(android.net.wifi.WifiScanner.BssidListener);
-    method public deprecated void stopTrackingWifiChange(android.net.wifi.WifiScanner.WifiChangeListener);
+    method @Deprecated public void configureWifiChange(int, int, int, int, int, android.net.wifi.WifiScanner.BssidInfo[]);
+    method @Deprecated public void configureWifiChange(android.net.wifi.WifiScanner.WifiChangeSettings);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean getScanResults();
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startBackgroundScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startBackgroundScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener, android.os.WorkSource);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener, android.os.WorkSource);
+    method @Deprecated public void startTrackingBssids(android.net.wifi.WifiScanner.BssidInfo[], int, android.net.wifi.WifiScanner.BssidListener);
+    method @Deprecated public void startTrackingWifiChange(android.net.wifi.WifiScanner.WifiChangeListener);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void stopBackgroundScan(android.net.wifi.WifiScanner.ScanListener);
+    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void stopScan(android.net.wifi.WifiScanner.ScanListener);
+    method @Deprecated public void stopTrackingBssids(android.net.wifi.WifiScanner.BssidListener);
+    method @Deprecated public void stopTrackingWifiChange(android.net.wifi.WifiScanner.WifiChangeListener);
     field public static final int MAX_SCAN_PERIOD_MS = 1024000; // 0xfa000
     field public static final int MIN_SCAN_PERIOD_MS = 1000; // 0x3e8
     field public static final int REASON_DUPLICATE_REQEUST = -5; // 0xfffffffb
@@ -4267,7 +4274,7 @@
     field public static final int REASON_NOT_AUTHORIZED = -4; // 0xfffffffc
     field public static final int REASON_SUCCEEDED = 0; // 0x0
     field public static final int REASON_UNSPECIFIED = -1; // 0xffffffff
-    field public static final deprecated int REPORT_EVENT_AFTER_BUFFER_FULL = 0; // 0x0
+    field @Deprecated public static final int REPORT_EVENT_AFTER_BUFFER_FULL = 0; // 0x0
     field public static final int REPORT_EVENT_AFTER_EACH_SCAN = 1; // 0x1
     field public static final int REPORT_EVENT_FULL_SCAN_RESULT = 2; // 0x2
     field public static final int REPORT_EVENT_NO_BATCH = 4; // 0x4
@@ -4280,22 +4287,22 @@
     field public static final int WIFI_BAND_UNSPECIFIED = 0; // 0x0
   }
 
-  public static abstract interface WifiScanner.ActionListener {
-    method public abstract void onFailure(int, java.lang.String);
-    method public abstract void onSuccess();
+  public static interface WifiScanner.ActionListener {
+    method public void onFailure(int, String);
+    method public void onSuccess();
   }
 
-  public static deprecated class WifiScanner.BssidInfo {
-    ctor public WifiScanner.BssidInfo();
-    field public java.lang.String bssid;
-    field public int frequencyHint;
-    field public int high;
-    field public int low;
+  @Deprecated public static class WifiScanner.BssidInfo {
+    ctor @Deprecated public WifiScanner.BssidInfo();
+    field @Deprecated public String bssid;
+    field @Deprecated public int frequencyHint;
+    field @Deprecated public int high;
+    field @Deprecated public int low;
   }
 
-  public static abstract deprecated interface WifiScanner.BssidListener implements android.net.wifi.WifiScanner.ActionListener {
-    method public abstract void onFound(android.net.wifi.ScanResult[]);
-    method public abstract void onLost(android.net.wifi.ScanResult[]);
+  @Deprecated public static interface WifiScanner.BssidListener extends android.net.wifi.WifiScanner.ActionListener {
+    method @Deprecated public void onFound(android.net.wifi.ScanResult[]);
+    method @Deprecated public void onLost(android.net.wifi.ScanResult[]);
   }
 
   public static class WifiScanner.ChannelSpec {
@@ -4303,10 +4310,10 @@
     field public int frequency;
   }
 
-  public static deprecated class WifiScanner.HotlistSettings implements android.os.Parcelable {
-    ctor public WifiScanner.HotlistSettings();
-    field public int apLostThreshold;
-    field public android.net.wifi.WifiScanner.BssidInfo[] bssidInfos;
+  @Deprecated public static class WifiScanner.HotlistSettings implements android.os.Parcelable {
+    ctor @Deprecated public WifiScanner.HotlistSettings();
+    field @Deprecated public int apLostThreshold;
+    field @Deprecated public android.net.wifi.WifiScanner.BssidInfo[] bssidInfos;
   }
 
   public static class WifiScanner.ParcelableScanData implements android.os.Parcelable {
@@ -4329,17 +4336,17 @@
     method public android.net.wifi.ScanResult[] getResults();
   }
 
-  public static abstract interface WifiScanner.ScanListener implements android.net.wifi.WifiScanner.ActionListener {
-    method public abstract void onFullResult(android.net.wifi.ScanResult);
-    method public abstract void onPeriodChanged(int);
-    method public abstract void onResults(android.net.wifi.WifiScanner.ScanData[]);
+  public static interface WifiScanner.ScanListener extends android.net.wifi.WifiScanner.ActionListener {
+    method public void onFullResult(android.net.wifi.ScanResult);
+    method public void onPeriodChanged(int);
+    method public void onResults(android.net.wifi.WifiScanner.ScanData[]);
   }
 
   public static class WifiScanner.ScanSettings implements android.os.Parcelable {
     ctor public WifiScanner.ScanSettings();
     field public int band;
     field public android.net.wifi.WifiScanner.ChannelSpec[] channels;
-    field public boolean ignoreLocationSettings;
+    field @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean ignoreLocationSettings;
     field public int maxPeriodInMs;
     field public int maxScansToCache;
     field public int numBssidsPerScan;
@@ -4348,19 +4355,19 @@
     field public int stepCount;
   }
 
-  public static abstract deprecated interface WifiScanner.WifiChangeListener implements android.net.wifi.WifiScanner.ActionListener {
-    method public abstract void onChanging(android.net.wifi.ScanResult[]);
-    method public abstract void onQuiescence(android.net.wifi.ScanResult[]);
+  @Deprecated public static interface WifiScanner.WifiChangeListener extends android.net.wifi.WifiScanner.ActionListener {
+    method @Deprecated public void onChanging(android.net.wifi.ScanResult[]);
+    method @Deprecated public void onQuiescence(android.net.wifi.ScanResult[]);
   }
 
-  public static deprecated class WifiScanner.WifiChangeSettings implements android.os.Parcelable {
-    ctor public WifiScanner.WifiChangeSettings();
-    field public android.net.wifi.WifiScanner.BssidInfo[] bssidInfos;
-    field public int lostApSampleSize;
-    field public int minApsBreachingThreshold;
-    field public int periodInMs;
-    field public int rssiSampleSize;
-    field public int unchangedSampleSize;
+  @Deprecated public static class WifiScanner.WifiChangeSettings implements android.os.Parcelable {
+    ctor @Deprecated public WifiScanner.WifiChangeSettings();
+    field @Deprecated public android.net.wifi.WifiScanner.BssidInfo[] bssidInfos;
+    field @Deprecated public int lostApSampleSize;
+    field @Deprecated public int minApsBreachingThreshold;
+    field @Deprecated public int periodInMs;
+    field @Deprecated public int rssiSampleSize;
+    field @Deprecated public int unchangedSampleSize;
   }
 
 }
@@ -4368,15 +4375,15 @@
 package android.net.wifi.aware {
 
   public class DiscoverySession implements java.lang.AutoCloseable {
-    method public deprecated android.net.NetworkSpecifier createNetworkSpecifierPmk(android.net.wifi.aware.PeerHandle, byte[]);
+    method @Deprecated public android.net.NetworkSpecifier createNetworkSpecifierPmk(@NonNull android.net.wifi.aware.PeerHandle, @NonNull byte[]);
   }
 
   public static class WifiAwareManager.NetworkSpecifierBuilder {
-    method public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setPmk(byte[]);
+    method @NonNull public android.net.wifi.aware.WifiAwareManager.NetworkSpecifierBuilder setPmk(@NonNull byte[]);
   }
 
   public class WifiAwareSession implements java.lang.AutoCloseable {
-    method public android.net.NetworkSpecifier createNetworkSpecifierPmk(int, byte[], byte[]);
+    method public android.net.NetworkSpecifier createNetworkSpecifierPmk(int, @NonNull byte[], @NonNull byte[]);
   }
 
 }
@@ -4385,7 +4392,7 @@
 
   public final class OsuProvider implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getFriendlyName();
+    method public String getFriendlyName();
     method public android.net.Uri getServerUri();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.net.wifi.hotspot2.OsuProvider> CREATOR;
@@ -4437,17 +4444,17 @@
 package android.net.wifi.rtt {
 
   public static final class RangingRequest.Builder {
-    method public android.net.wifi.rtt.RangingRequest.Builder addResponder(android.net.wifi.rtt.ResponderConfig);
+    method public android.net.wifi.rtt.RangingRequest.Builder addResponder(@NonNull android.net.wifi.rtt.ResponderConfig);
   }
 
   public final class RangingResult implements android.os.Parcelable {
-    method public byte[] getLci();
-    method public byte[] getLcr();
+    method @NonNull public byte[] getLci();
+    method @NonNull public byte[] getLcr();
   }
 
   public final class ResponderConfig implements android.os.Parcelable {
-    ctor public ResponderConfig(android.net.MacAddress, int, boolean, int, int, int, int, int);
-    ctor public ResponderConfig(android.net.wifi.aware.PeerHandle, int, boolean, int, int, int, int, int);
+    ctor public ResponderConfig(@NonNull android.net.MacAddress, int, boolean, int, int, int, int, int);
+    ctor public ResponderConfig(@NonNull android.net.wifi.aware.PeerHandle, int, boolean, int, int, int, int, int);
     method public int describeContents();
     method public static android.net.wifi.rtt.ResponderConfig fromScanResult(android.net.wifi.ScanResult);
     method public static android.net.wifi.rtt.ResponderConfig fromWifiAwarePeerHandleWithDefaults(android.net.wifi.aware.PeerHandle);
@@ -4479,8 +4486,8 @@
   }
 
   public class WifiRttManager {
-    method public void cancelRanging(android.os.WorkSource);
-    method public void startRanging(android.os.WorkSource, android.net.wifi.rtt.RangingRequest, java.util.concurrent.Executor, android.net.wifi.rtt.RangingResultCallback);
+    method @RequiresPermission(allOf={android.Manifest.permission.LOCATION_HARDWARE}) public void cancelRanging(@Nullable android.os.WorkSource);
+    method @RequiresPermission(allOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.CHANGE_WIFI_STATE, android.Manifest.permission.ACCESS_WIFI_STATE}) public void startRanging(@Nullable android.os.WorkSource, @NonNull android.net.wifi.rtt.RangingRequest, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.rtt.RangingResultCallback);
   }
 
 }
@@ -4488,19 +4495,19 @@
 package android.nfc {
 
   public final class NfcAdapter {
-    method public boolean addNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler, java.lang.String[]);
-    method public boolean disable();
-    method public boolean disable(boolean);
-    method public boolean disableNdefPush();
-    method public boolean enable();
-    method public boolean enableNdefPush();
-    method public boolean removeNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler);
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean addNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler, String[]);
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean disable();
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean disable(boolean);
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean disableNdefPush();
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enable();
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enableNdefPush();
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean removeNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler);
     method public void setNdefPushMessage(android.nfc.NdefMessage, android.app.Activity, int);
     field public static final int FLAG_NDEF_PUSH_NO_CONFIRM = 1; // 0x1
   }
 
-  public static abstract interface NfcAdapter.NfcUnlockHandler {
-    method public abstract boolean onUnlockAttempted(android.nfc.Tag);
+  public static interface NfcAdapter.NfcUnlockHandler {
+    method public boolean onUnlockAttempted(android.nfc.Tag);
   }
 
 }
@@ -4508,8 +4515,8 @@
 package android.os {
 
   public class BatteryManager {
-    field public static final java.lang.String EXTRA_EVENTS = "android.os.extra.EVENTS";
-    field public static final java.lang.String EXTRA_EVENT_TIMESTAMP = "android.os.extra.EVENT_TIMESTAMP";
+    field public static final String EXTRA_EVENTS = "android.os.extra.EVENTS";
+    field public static final String EXTRA_EVENT_TIMESTAMP = "android.os.extra.EVENT_TIMESTAMP";
   }
 
   public class Binder implements android.os.IBinder {
@@ -4517,29 +4524,29 @@
     method public static final int getCallingWorkSourceUid();
     method public static final void restoreCallingWorkSource(long);
     method public static final long setCallingWorkSourceUid(int);
-    method public static void setProxyTransactListener(android.os.Binder.ProxyTransactListener);
+    method public static void setProxyTransactListener(@Nullable android.os.Binder.ProxyTransactListener);
   }
 
-  public static abstract interface Binder.ProxyTransactListener {
-    method public abstract void onTransactEnded(java.lang.Object);
-    method public abstract java.lang.Object onTransactStarted(android.os.IBinder, int);
+  public static interface Binder.ProxyTransactListener {
+    method public void onTransactEnded(@Nullable Object);
+    method public Object onTransactStarted(android.os.IBinder, int);
   }
 
   public static class Build.VERSION {
-    field public static final java.lang.String PREVIEW_SDK_FINGERPRINT;
+    field public static final String PREVIEW_SDK_FINGERPRINT;
   }
 
   public final class ConfigUpdate {
-    field public static final java.lang.String ACTION_UPDATE_CARRIER_ID_DB = "android.os.action.UPDATE_CARRIER_ID_DB";
-    field public static final java.lang.String ACTION_UPDATE_CARRIER_PROVISIONING_URLS = "android.intent.action.UPDATE_CARRIER_PROVISIONING_URLS";
-    field public static final java.lang.String ACTION_UPDATE_CONVERSATION_ACTIONS = "android.intent.action.UPDATE_CONVERSATION_ACTIONS";
-    field public static final java.lang.String ACTION_UPDATE_CT_LOGS = "android.intent.action.UPDATE_CT_LOGS";
-    field public static final java.lang.String ACTION_UPDATE_INTENT_FIREWALL = "android.intent.action.UPDATE_INTENT_FIREWALL";
-    field public static final java.lang.String ACTION_UPDATE_LANG_ID = "android.intent.action.UPDATE_LANG_ID";
-    field public static final java.lang.String ACTION_UPDATE_NETWORK_WATCHLIST = "android.intent.action.UPDATE_NETWORK_WATCHLIST";
-    field public static final java.lang.String ACTION_UPDATE_PINS = "android.intent.action.UPDATE_PINS";
-    field public static final java.lang.String ACTION_UPDATE_SMART_SELECTION = "android.intent.action.UPDATE_SMART_SELECTION";
-    field public static final java.lang.String ACTION_UPDATE_SMS_SHORT_CODES = "android.intent.action.UPDATE_SMS_SHORT_CODES";
+    field public static final String ACTION_UPDATE_CARRIER_ID_DB = "android.os.action.UPDATE_CARRIER_ID_DB";
+    field public static final String ACTION_UPDATE_CARRIER_PROVISIONING_URLS = "android.intent.action.UPDATE_CARRIER_PROVISIONING_URLS";
+    field public static final String ACTION_UPDATE_CONVERSATION_ACTIONS = "android.intent.action.UPDATE_CONVERSATION_ACTIONS";
+    field public static final String ACTION_UPDATE_CT_LOGS = "android.intent.action.UPDATE_CT_LOGS";
+    field public static final String ACTION_UPDATE_INTENT_FIREWALL = "android.intent.action.UPDATE_INTENT_FIREWALL";
+    field public static final String ACTION_UPDATE_LANG_ID = "android.intent.action.UPDATE_LANG_ID";
+    field public static final String ACTION_UPDATE_NETWORK_WATCHLIST = "android.intent.action.UPDATE_NETWORK_WATCHLIST";
+    field public static final String ACTION_UPDATE_PINS = "android.intent.action.UPDATE_PINS";
+    field public static final String ACTION_UPDATE_SMART_SELECTION = "android.intent.action.UPDATE_SMART_SELECTION";
+    field public static final String ACTION_UPDATE_SMS_SHORT_CODES = "android.intent.action.UPDATE_SMS_SHORT_CODES";
   }
 
   public class Environment {
@@ -4551,21 +4558,21 @@
   }
 
   public class HidlSupport {
-    method public static boolean deepEquals(java.lang.Object, java.lang.Object);
-    method public static int deepHashCode(java.lang.Object);
+    method public static boolean deepEquals(Object, Object);
+    method public static int deepHashCode(Object);
     method public static int getPidIfSharable();
-    method public static boolean interfacesEqual(android.os.IHwInterface, java.lang.Object);
+    method public static boolean interfacesEqual(android.os.IHwInterface, Object);
   }
 
   public abstract class HwBinder implements android.os.IHwBinder {
     ctor public HwBinder();
     method public static final void configureRpcThreadpool(long, boolean);
     method public static void enableInstrumentation();
-    method public static final android.os.IHwBinder getService(java.lang.String, java.lang.String) throws java.util.NoSuchElementException, android.os.RemoteException;
-    method public static final android.os.IHwBinder getService(java.lang.String, java.lang.String, boolean) throws java.util.NoSuchElementException, android.os.RemoteException;
+    method public static final android.os.IHwBinder getService(String, String) throws java.util.NoSuchElementException, android.os.RemoteException;
+    method public static final android.os.IHwBinder getService(String, String, boolean) throws java.util.NoSuchElementException, android.os.RemoteException;
     method public static final void joinRpcThreadpool();
     method public abstract void onTransact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException;
-    method public final void registerService(java.lang.String) throws android.os.RemoteException;
+    method public final void registerService(String) throws android.os.RemoteException;
     method public final void transact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException;
   }
 
@@ -4585,7 +4592,7 @@
     method public final int getInt32(long);
     method public final long getInt64(long);
     method public final byte getInt8(long);
-    method public final java.lang.String getString(long);
+    method public final String getString(long);
     method public final long handle();
     method public final void putBlob(long, android.os.HwBlob);
     method public final void putBool(long, boolean);
@@ -4603,19 +4610,19 @@
     method public final void putInt8(long, byte);
     method public final void putInt8Array(long, byte[]);
     method public final void putNativeHandle(long, android.os.NativeHandle);
-    method public final void putString(long, java.lang.String);
-    method public static java.lang.Boolean[] wrapArray(boolean[]);
-    method public static java.lang.Long[] wrapArray(long[]);
-    method public static java.lang.Byte[] wrapArray(byte[]);
-    method public static java.lang.Short[] wrapArray(short[]);
-    method public static java.lang.Integer[] wrapArray(int[]);
-    method public static java.lang.Float[] wrapArray(float[]);
-    method public static java.lang.Double[] wrapArray(double[]);
+    method public final void putString(long, String);
+    method public static Boolean[] wrapArray(@NonNull boolean[]);
+    method public static Long[] wrapArray(@NonNull long[]);
+    method public static Byte[] wrapArray(@NonNull byte[]);
+    method public static Short[] wrapArray(@NonNull short[]);
+    method public static Integer[] wrapArray(@NonNull int[]);
+    method public static Float[] wrapArray(@NonNull float[]);
+    method public static Double[] wrapArray(@NonNull double[]);
   }
 
   public class HwParcel {
     ctor public HwParcel();
-    method public final void enforceInterface(java.lang.String);
+    method public final void enforceInterface(String);
     method public final boolean readBool();
     method public final java.util.ArrayList<java.lang.Boolean> readBoolVector();
     method public final android.os.HwBlob readBuffer(long);
@@ -4635,7 +4642,7 @@
     method public final java.util.ArrayList<java.lang.Byte> readInt8Vector();
     method public final android.os.NativeHandle readNativeHandle();
     method public final java.util.ArrayList<android.os.NativeHandle> readNativeHandleVector();
-    method public final java.lang.String readString();
+    method public final String readString();
     method public final java.util.ArrayList<java.lang.String> readStringVector();
     method public final android.os.IHwBinder readStrongBinder();
     method public final void release();
@@ -4657,36 +4664,36 @@
     method public final void writeInt64Vector(java.util.ArrayList<java.lang.Long>);
     method public final void writeInt8(byte);
     method public final void writeInt8Vector(java.util.ArrayList<java.lang.Byte>);
-    method public final void writeInterfaceToken(java.lang.String);
+    method public final void writeInterfaceToken(String);
     method public final void writeNativeHandle(android.os.NativeHandle);
     method public final void writeNativeHandleVector(java.util.ArrayList<android.os.NativeHandle>);
     method public final void writeStatus(int);
-    method public final void writeString(java.lang.String);
+    method public final void writeString(String);
     method public final void writeStringVector(java.util.ArrayList<java.lang.String>);
     method public final void writeStrongBinder(android.os.IHwBinder);
     field public static final int STATUS_SUCCESS = 0; // 0x0
   }
 
-  public static abstract class HwParcel.Status implements java.lang.annotation.Annotation {
+  @IntDef(prefix={"STATUS_"}, value={android.os.HwParcel.STATUS_SUCCESS}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface HwParcel.Status {
   }
 
-  public abstract interface IHwBinder {
-    method public abstract boolean linkToDeath(android.os.IHwBinder.DeathRecipient, long);
-    method public abstract android.os.IHwInterface queryLocalInterface(java.lang.String);
-    method public abstract void transact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException;
-    method public abstract boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient);
+  public interface IHwBinder {
+    method public boolean linkToDeath(android.os.IHwBinder.DeathRecipient, long);
+    method public android.os.IHwInterface queryLocalInterface(String);
+    method public void transact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException;
+    method public boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient);
   }
 
-  public static abstract interface IHwBinder.DeathRecipient {
-    method public abstract void serviceDied(long);
+  public static interface IHwBinder.DeathRecipient {
+    method public void serviceDied(long);
   }
 
-  public abstract interface IHwInterface {
-    method public abstract android.os.IHwBinder asBinder();
+  public interface IHwInterface {
+    method public android.os.IHwBinder asBinder();
   }
 
   public class IncidentManager {
-    method public void reportIncident(android.os.IncidentReportArgs);
+    method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void reportIncident(android.os.IncidentReportArgs);
   }
 
   public final class IncidentReportArgs implements android.os.Parcelable {
@@ -4707,8 +4714,8 @@
 
   public final class NativeHandle implements java.io.Closeable {
     ctor public NativeHandle();
-    ctor public NativeHandle(java.io.FileDescriptor, boolean);
-    ctor public NativeHandle(java.io.FileDescriptor[], int[], boolean);
+    ctor public NativeHandle(@NonNull java.io.FileDescriptor, boolean);
+    ctor public NativeHandle(@NonNull java.io.FileDescriptor[], @NonNull int[], boolean);
     method public void close() throws java.io.IOException;
     method public android.os.NativeHandle dup() throws java.io.IOException;
     method public java.io.FileDescriptor getFileDescriptor();
@@ -4718,11 +4725,11 @@
   }
 
   public final class PowerManager {
-    method public void dream(long);
-    method public int getPowerSaveMode();
-    method public boolean setDynamicPowerSavings(boolean, int);
-    method public boolean setPowerSaveMode(boolean);
-    method public void userActivity(long, int, int);
+    method @RequiresPermission(allOf={android.Manifest.permission.READ_DREAM_STATE, android.Manifest.permission.WRITE_DREAM_STATE}) public void dream(long);
+    method @RequiresPermission(android.Manifest.permission.POWER_SAVER) public int getPowerSaveMode();
+    method @RequiresPermission(android.Manifest.permission.POWER_SAVER) public boolean setDynamicPowerSavings(boolean, int);
+    method @RequiresPermission(anyOf={android.Manifest.permission.DEVICE_POWER, android.Manifest.permission.POWER_SAVER}) public boolean setPowerSaveMode(boolean);
+    method @RequiresPermission(anyOf={android.Manifest.permission.DEVICE_POWER, android.Manifest.permission.USER_ACTIVITY}) public void userActivity(long, int, int);
     field public static final int POWER_SAVER_MODE_DYNAMIC = 1; // 0x1
     field public static final int POWER_SAVER_MODE_PERCENTAGE = 0; // 0x0
     field public static final int USER_ACTIVITY_EVENT_ACCESSIBILITY = 3; // 0x3
@@ -4734,26 +4741,26 @@
   }
 
   public class RecoverySystem {
-    method public static void cancelScheduledUpdate(android.content.Context) throws java.io.IOException;
-    method public static void installPackage(android.content.Context, java.io.File, boolean) throws java.io.IOException;
-    method public static void processPackage(android.content.Context, java.io.File, android.os.RecoverySystem.ProgressListener, android.os.Handler) throws java.io.IOException;
-    method public static void processPackage(android.content.Context, java.io.File, android.os.RecoverySystem.ProgressListener) throws java.io.IOException;
-    method public static void rebootWipeAb(android.content.Context, java.io.File, java.lang.String) throws java.io.IOException;
-    method public static void scheduleUpdateOnBoot(android.content.Context, java.io.File) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void cancelScheduledUpdate(android.content.Context) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void installPackage(android.content.Context, java.io.File, boolean) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void processPackage(android.content.Context, java.io.File, android.os.RecoverySystem.ProgressListener, android.os.Handler) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void processPackage(android.content.Context, java.io.File, android.os.RecoverySystem.ProgressListener) throws java.io.IOException;
+    method @RequiresPermission(allOf={android.Manifest.permission.RECOVERY, android.Manifest.permission.REBOOT}) public static void rebootWipeAb(android.content.Context, java.io.File, String) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void scheduleUpdateOnBoot(android.content.Context, java.io.File) throws java.io.IOException;
     method public static boolean verifyPackageCompatibility(java.io.File) throws java.io.IOException;
   }
 
   public final class RemoteCallback implements android.os.Parcelable {
     ctor public RemoteCallback(android.os.RemoteCallback.OnResultListener);
-    ctor public RemoteCallback(android.os.RemoteCallback.OnResultListener, android.os.Handler);
+    ctor public RemoteCallback(@NonNull android.os.RemoteCallback.OnResultListener, @Nullable android.os.Handler);
     method public int describeContents();
-    method public void sendResult(android.os.Bundle);
+    method public void sendResult(@Nullable android.os.Bundle);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.RemoteCallback> CREATOR;
   }
 
-  public static abstract interface RemoteCallback.OnResultListener {
-    method public abstract void onResult(android.os.Bundle);
+  public static interface RemoteCallback.OnResultListener {
+    method public void onResult(android.os.Bundle);
   }
 
   public final class StatsDimensionsValue implements android.os.Parcelable {
@@ -4763,7 +4770,7 @@
     method public float getFloatValue();
     method public int getIntValue();
     method public long getLongValue();
-    method public java.lang.String getStringValue();
+    method public String getStringValue();
     method public java.util.List<android.os.StatsDimensionsValue> getTupleValueList();
     method public int getValueType();
     method public boolean isValueType(int);
@@ -4778,21 +4785,21 @@
   }
 
   public class SystemProperties {
-    method public static java.lang.String get(java.lang.String);
-    method public static java.lang.String get(java.lang.String, java.lang.String);
-    method public static boolean getBoolean(java.lang.String, boolean);
-    method public static int getInt(java.lang.String, int);
-    method public static long getLong(java.lang.String, long);
+    method @NonNull public static String get(@NonNull String);
+    method @NonNull public static String get(@NonNull String, @Nullable String);
+    method public static boolean getBoolean(@NonNull String, boolean);
+    method public static int getInt(@NonNull String, int);
+    method public static long getLong(@NonNull String, long);
   }
 
   public class SystemUpdateManager {
-    method public android.os.Bundle retrieveSystemUpdateInfo();
-    method public void updateSystemUpdateInfo(android.os.PersistableBundle);
-    field public static final java.lang.String KEY_IS_SECURITY_UPDATE = "is_security_update";
-    field public static final java.lang.String KEY_STATUS = "status";
-    field public static final java.lang.String KEY_TARGET_BUILD_FINGERPRINT = "target_build_fingerprint";
-    field public static final java.lang.String KEY_TARGET_SECURITY_PATCH_LEVEL = "target_security_patch_level";
-    field public static final java.lang.String KEY_TITLE = "title";
+    method @RequiresPermission(anyOf={android.Manifest.permission.READ_SYSTEM_UPDATE_INFO, android.Manifest.permission.RECOVERY}) public android.os.Bundle retrieveSystemUpdateInfo();
+    method @RequiresPermission(android.Manifest.permission.RECOVERY) public void updateSystemUpdateInfo(android.os.PersistableBundle);
+    field public static final String KEY_IS_SECURITY_UPDATE = "is_security_update";
+    field public static final String KEY_STATUS = "status";
+    field public static final String KEY_TARGET_BUILD_FINGERPRINT = "target_build_fingerprint";
+    field public static final String KEY_TARGET_SECURITY_PATCH_LEVEL = "target_security_patch_level";
+    field public static final String KEY_TITLE = "title";
     field public static final int STATUS_IDLE = 1; // 0x1
     field public static final int STATUS_IN_PROGRESS = 3; // 0x3
     field public static final int STATUS_UNKNOWN = 0; // 0x0
@@ -4803,7 +4810,7 @@
 
   public class UpdateEngine {
     ctor public UpdateEngine();
-    method public void applyPayload(java.lang.String, long, long, java.lang.String[]);
+    method public void applyPayload(String, long, long, String[]);
     method public boolean bind(android.os.UpdateEngineCallback, android.os.Handler);
     method public boolean bind(android.os.UpdateEngineCallback);
     method public void cancel();
@@ -4811,7 +4818,7 @@
     method public void resume();
     method public void suspend();
     method public boolean unbind();
-    method public boolean verifyPayloadMetadata(java.lang.String);
+    method public boolean verifyPayloadMetadata(String);
   }
 
   public static final class UpdateEngine.ErrorCodeConstants {
@@ -4853,7 +4860,7 @@
 
   public final class UserHandle implements android.os.Parcelable {
     method public int getIdentifier();
-    method public deprecated boolean isOwner();
+    method @Deprecated public boolean isOwner();
     method public boolean isSystem();
     method public static int myUserId();
     method public static android.os.UserHandle of(int);
@@ -4863,26 +4870,26 @@
   }
 
   public class UserManager {
-    method public boolean canSwitchUsers();
-    method public void clearSeedAccountData();
-    method public android.os.UserHandle getProfileParent(android.os.UserHandle);
-    method public java.lang.String getSeedAccountName();
-    method public android.os.PersistableBundle getSeedAccountOptions();
-    method public java.lang.String getSeedAccountType();
-    method public long[] getSerialNumbersOfUsers(boolean);
-    method public deprecated int getUserRestrictionSource(java.lang.String, android.os.UserHandle);
-    method public java.util.List<android.os.UserManager.EnforcingUser> getUserRestrictionSources(java.lang.String, android.os.UserHandle);
+    method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS}, conditional=true) public boolean canSwitchUsers();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public void clearSeedAccountData();
+    method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public android.os.UserHandle getProfileParent(@NonNull android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String getSeedAccountName();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public android.os.PersistableBundle getSeedAccountOptions();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String getSeedAccountType();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public long[] getSerialNumbersOfUsers(boolean);
+    method @Deprecated @android.os.UserManager.UserRestrictionSource @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public int getUserRestrictionSource(String, android.os.UserHandle);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public java.util.List<android.os.UserManager.EnforcingUser> getUserRestrictionSources(String, android.os.UserHandle);
     method public boolean hasRestrictedProfiles();
-    method public boolean isAdminUser();
-    method public boolean isGuestUser();
-    method public boolean isManagedProfile();
-    method public boolean isManagedProfile(int);
-    method public boolean isPrimaryUser();
-    method public boolean isRestrictedProfile();
-    method public boolean removeUser(android.os.UserHandle);
-    field public static final java.lang.String ACTION_USER_RESTRICTIONS_CHANGED = "android.os.action.USER_RESTRICTIONS_CHANGED";
-    field public static final deprecated java.lang.String DISALLOW_OEM_UNLOCK = "no_oem_unlock";
-    field public static final java.lang.String DISALLOW_RUN_IN_BACKGROUND = "no_run_in_background";
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isAdminUser();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isGuestUser();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isManagedProfile();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isManagedProfile(int);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isPrimaryUser();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isRestrictedProfile();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean removeUser(android.os.UserHandle);
+    field public static final String ACTION_USER_RESTRICTIONS_CHANGED = "android.os.action.USER_RESTRICTIONS_CHANGED";
+    field @Deprecated public static final String DISALLOW_OEM_UNLOCK = "no_oem_unlock";
+    field public static final String DISALLOW_RUN_IN_BACKGROUND = "no_run_in_background";
     field public static final int RESTRICTION_NOT_SET = 0; // 0x0
     field public static final int RESTRICTION_SOURCE_DEVICE_OWNER = 2; // 0x2
     field public static final int RESTRICTION_SOURCE_PROFILE_OWNER = 4; // 0x4
@@ -4892,12 +4899,12 @@
   public static final class UserManager.EnforcingUser implements android.os.Parcelable {
     method public int describeContents();
     method public android.os.UserHandle getUserHandle();
-    method public int getUserRestrictionSource();
+    method @android.os.UserManager.UserRestrictionSource public int getUserRestrictionSource();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.UserManager.EnforcingUser> CREATOR;
   }
 
-  public static abstract class UserManager.UserRestrictionSource implements java.lang.annotation.Annotation {
+  @IntDef(flag=true, prefix={"RESTRICTION_"}, value={android.os.UserManager.RESTRICTION_NOT_SET, android.os.UserManager.RESTRICTION_SOURCE_SYSTEM, android.os.UserManager.RESTRICTION_SOURCE_DEVICE_OWNER, android.os.UserManager.RESTRICTION_SOURCE_PROFILE_OWNER}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface UserManager.UserRestrictionSource {
   }
 
   public class WorkSource implements android.os.Parcelable {
@@ -4906,9 +4913,9 @@
 
   public static final class WorkSource.WorkChain implements android.os.Parcelable {
     ctor public WorkSource.WorkChain();
-    method public android.os.WorkSource.WorkChain addNode(int, java.lang.String);
+    method public android.os.WorkSource.WorkChain addNode(int, @Nullable String);
     method public int describeContents();
-    method public java.lang.String getAttributionTag();
+    method public String getAttributionTag();
     method public int getAttributionUid();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.WorkSource.WorkChain> CREATOR;
@@ -4919,11 +4926,11 @@
 package android.os.storage {
 
   public class StorageManager {
-    method public void allocateBytes(java.util.UUID, long, int) throws java.io.IOException;
-    method public void allocateBytes(java.io.FileDescriptor, long, int) throws java.io.IOException;
-    method public long getAllocatableBytes(java.util.UUID, int) throws java.io.IOException;
+    method @WorkerThread public void allocateBytes(@NonNull java.util.UUID, long, @RequiresPermission int) throws java.io.IOException;
+    method @WorkerThread public void allocateBytes(java.io.FileDescriptor, long, @RequiresPermission int) throws java.io.IOException;
+    method @WorkerThread public long getAllocatableBytes(@NonNull java.util.UUID, @RequiresPermission int) throws java.io.IOException;
     method public static boolean hasIsolatedStorage();
-    field public static final int FLAG_ALLOCATE_AGGRESSIVE = 1; // 0x1
+    field @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE) public static final int FLAG_ALLOCATE_AGGRESSIVE = 1; // 0x1
   }
 
 }
@@ -4931,43 +4938,43 @@
 package android.permission {
 
   public final class PermissionControllerManager {
-    method public void revokeRuntimePermissions(java.util.Map<java.lang.String, java.util.List<java.lang.String>>, boolean, int, java.util.concurrent.Executor, android.permission.PermissionControllerManager.OnRevokeRuntimePermissionsCallback);
+    method @RequiresPermission(android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS) public void revokeRuntimePermissions(@NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>, boolean, int, @NonNull java.util.concurrent.Executor, @NonNull android.permission.PermissionControllerManager.OnRevokeRuntimePermissionsCallback);
     field public static final int REASON_INSTALLER_POLICY_VIOLATION = 2; // 0x2
     field public static final int REASON_MALWARE = 1; // 0x1
   }
 
-  public static abstract class PermissionControllerManager.OnRevokeRuntimePermissionsCallback {
+  public abstract static class PermissionControllerManager.OnRevokeRuntimePermissionsCallback {
     ctor public PermissionControllerManager.OnRevokeRuntimePermissionsCallback();
-    method public abstract void onRevokeRuntimePermissions(java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
+    method public abstract void onRevokeRuntimePermissions(@NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>);
   }
 
   public abstract class PermissionControllerService extends android.app.Service {
     ctor public PermissionControllerService();
     method public final void attachBaseContext(android.content.Context);
     method public final android.os.IBinder onBind(android.content.Intent);
-    method public abstract int onCountPermissionApps(java.util.List<java.lang.String>, boolean, boolean);
-    method public abstract java.util.List<android.permission.RuntimePermissionPresentationInfo> onGetAppPermissions(java.lang.String);
-    method public abstract void onGetRuntimePermissionsBackup(android.os.UserHandle, java.io.OutputStream);
-    method public abstract java.util.List<android.permission.RuntimePermissionUsageInfo> onPermissionUsageResult(boolean, long);
-    method public abstract void onRevokeRuntimePermission(java.lang.String, java.lang.String);
-    method public abstract java.util.Map<java.lang.String, java.util.List<java.lang.String>> onRevokeRuntimePermissions(java.util.Map<java.lang.String, java.util.List<java.lang.String>>, boolean, int, java.lang.String);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.permission.PermissionControllerService";
+    method public abstract int onCountPermissionApps(@NonNull java.util.List<java.lang.String>, boolean, boolean);
+    method @NonNull public abstract java.util.List<android.permission.RuntimePermissionPresentationInfo> onGetAppPermissions(@NonNull String);
+    method public abstract void onGetRuntimePermissionsBackup(@NonNull android.os.UserHandle, @NonNull java.io.OutputStream);
+    method @NonNull public abstract java.util.List<android.permission.RuntimePermissionUsageInfo> onPermissionUsageResult(boolean, long);
+    method public abstract void onRevokeRuntimePermission(@NonNull String, @NonNull String);
+    method @NonNull public abstract java.util.Map<java.lang.String,java.util.List<java.lang.String>> onRevokeRuntimePermissions(@NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>, boolean, int, @NonNull String);
+    field public static final String SERVICE_INTERFACE = "android.permission.PermissionControllerService";
   }
 
   public final class PermissionManager {
-    method public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions();
+    method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions();
   }
 
   public static final class PermissionManager.SplitPermissionInfo {
-    method public java.util.List<java.lang.String> getNewPermissions();
-    method public java.lang.String getSplitPermission();
+    method @NonNull public java.util.List<java.lang.String> getNewPermissions();
+    method @NonNull public String getSplitPermission();
     method public int getTargetSdk();
   }
 
   public final class RuntimePermissionPresentationInfo implements android.os.Parcelable {
-    ctor public RuntimePermissionPresentationInfo(java.lang.CharSequence, boolean, boolean);
+    ctor public RuntimePermissionPresentationInfo(CharSequence, boolean, boolean);
     method public int describeContents();
-    method public java.lang.CharSequence getLabel();
+    method @NonNull public CharSequence getLabel();
     method public boolean isGranted();
     method public boolean isStandard();
     method public void writeToParcel(android.os.Parcel, int);
@@ -4975,10 +4982,10 @@
   }
 
   public final class RuntimePermissionUsageInfo implements android.os.Parcelable {
-    ctor public RuntimePermissionUsageInfo(java.lang.CharSequence, int);
+    ctor public RuntimePermissionUsageInfo(@NonNull CharSequence, int);
     method public int describeContents();
     method public int getAppAccessCount();
-    method public java.lang.CharSequence getName();
+    method @NonNull public CharSequence getName();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.permission.RuntimePermissionUsageInfo> CREATOR;
   }
@@ -4987,22 +4994,22 @@
 
 package android.permissionpresenterservice {
 
-  public abstract deprecated class RuntimePermissionPresenterService extends android.app.Service {
-    ctor public RuntimePermissionPresenterService();
-    method public final void attachBaseContext(android.content.Context);
-    method public final android.os.IBinder onBind(android.content.Intent);
-    method public abstract java.util.List<android.content.pm.permission.RuntimePermissionPresentationInfo> onGetAppPermissions(java.lang.String);
-    method public abstract void onRevokeRuntimePermission(java.lang.String, java.lang.String);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.permissionpresenterservice.RuntimePermissionPresenterService";
+  @Deprecated public abstract class RuntimePermissionPresenterService extends android.app.Service {
+    ctor @Deprecated public RuntimePermissionPresenterService();
+    method @Deprecated public final void attachBaseContext(android.content.Context);
+    method @Deprecated public final android.os.IBinder onBind(android.content.Intent);
+    method @Deprecated public abstract java.util.List<android.content.pm.permission.RuntimePermissionPresentationInfo> onGetAppPermissions(@NonNull String);
+    method @Deprecated public abstract void onRevokeRuntimePermission(@NonNull String, @NonNull String);
+    field @Deprecated public static final String SERVICE_INTERFACE = "android.permissionpresenterservice.RuntimePermissionPresenterService";
   }
 
 }
 
 package android.preference {
 
-  public deprecated class PreferenceManager {
-    method public boolean isStorageCredentialProtected();
-    method public void setStorageCredentialProtected();
+  @Deprecated public class PreferenceManager {
+    method @Deprecated public boolean isStorageCredentialProtected();
+    method @Deprecated public void setStorageCredentialProtected();
   }
 
 }
@@ -5010,21 +5017,21 @@
 package android.print {
 
   public final class PrintManager {
-    method public void addPrintServiceRecommendationsChangeListener(android.print.PrintManager.PrintServiceRecommendationsChangeListener, android.os.Handler);
-    method public void addPrintServicesChangeListener(android.print.PrintManager.PrintServicesChangeListener, android.os.Handler);
-    method public java.util.List<android.printservice.recommendation.RecommendationInfo> getPrintServiceRecommendations();
-    method public java.util.List<android.printservice.PrintServiceInfo> getPrintServices(int);
-    method public void removePrintServiceRecommendationsChangeListener(android.print.PrintManager.PrintServiceRecommendationsChangeListener);
-    method public void removePrintServicesChangeListener(android.print.PrintManager.PrintServicesChangeListener);
+    method @RequiresPermission(android.Manifest.permission.READ_PRINT_SERVICE_RECOMMENDATIONS) public void addPrintServiceRecommendationsChangeListener(@NonNull android.print.PrintManager.PrintServiceRecommendationsChangeListener, @Nullable android.os.Handler);
+    method @RequiresPermission(android.Manifest.permission.READ_PRINT_SERVICES) public void addPrintServicesChangeListener(@NonNull android.print.PrintManager.PrintServicesChangeListener, @Nullable android.os.Handler);
+    method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRINT_SERVICE_RECOMMENDATIONS) public java.util.List<android.printservice.recommendation.RecommendationInfo> getPrintServiceRecommendations();
+    method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRINT_SERVICES) public java.util.List<android.printservice.PrintServiceInfo> getPrintServices(int);
+    method @RequiresPermission(android.Manifest.permission.READ_PRINT_SERVICE_RECOMMENDATIONS) public void removePrintServiceRecommendationsChangeListener(@NonNull android.print.PrintManager.PrintServiceRecommendationsChangeListener);
+    method @RequiresPermission(android.Manifest.permission.READ_PRINT_SERVICES) public void removePrintServicesChangeListener(@NonNull android.print.PrintManager.PrintServicesChangeListener);
     field public static final int ENABLED_SERVICES = 1; // 0x1
   }
 
-  public static abstract interface PrintManager.PrintServiceRecommendationsChangeListener {
-    method public abstract void onPrintServiceRecommendationsChanged();
+  public static interface PrintManager.PrintServiceRecommendationsChangeListener {
+    method public void onPrintServiceRecommendationsChanged();
   }
 
-  public static abstract interface PrintManager.PrintServicesChangeListener {
-    method public abstract void onPrintServicesChanged();
+  public static interface PrintManager.PrintServicesChangeListener {
+    method public void onPrintServicesChanged();
   }
 
 }
@@ -5033,7 +5040,7 @@
 
   public final class PrintServiceInfo implements android.os.Parcelable {
     method public int describeContents();
-    method public android.content.ComponentName getComponentName();
+    method @NonNull public android.content.ComponentName getComponentName();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.printservice.PrintServiceInfo> CREATOR;
   }
@@ -5043,13 +5050,13 @@
 package android.printservice.recommendation {
 
   public final class RecommendationInfo implements android.os.Parcelable {
-    ctor public RecommendationInfo(java.lang.CharSequence, java.lang.CharSequence, java.util.List<java.net.InetAddress>, boolean);
-    ctor public deprecated RecommendationInfo(java.lang.CharSequence, java.lang.CharSequence, int, boolean);
+    ctor public RecommendationInfo(@NonNull CharSequence, @NonNull CharSequence, @NonNull java.util.List<java.net.InetAddress>, boolean);
+    ctor @Deprecated public RecommendationInfo(@NonNull CharSequence, @NonNull CharSequence, @IntRange(from=0) int, boolean);
     method public int describeContents();
-    method public java.util.List<java.net.InetAddress> getDiscoveredPrinters();
-    method public java.lang.CharSequence getName();
+    method @NonNull public java.util.List<java.net.InetAddress> getDiscoveredPrinters();
+    method public CharSequence getName();
     method public int getNumDiscoveredPrinters();
-    method public java.lang.CharSequence getPackageName();
+    method public CharSequence getPackageName();
     method public boolean recommendsMultiVendorService();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.printservice.recommendation.RecommendationInfo> CREATOR;
@@ -5060,8 +5067,8 @@
     method public final android.os.IBinder onBind(android.content.Intent);
     method public abstract void onConnected();
     method public abstract void onDisconnected();
-    method public final void updateRecommendations(java.util.List<android.printservice.recommendation.RecommendationInfo>);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.printservice.recommendation.RecommendationService";
+    method public final void updateRecommendations(@Nullable java.util.List<android.printservice.recommendation.RecommendationInfo>);
+    field public static final String SERVICE_INTERFACE = "android.printservice.recommendation.RecommendationService";
   }
 
 }
@@ -5069,55 +5076,57 @@
 package android.provider {
 
   public static final class ContactsContract.MetadataSync implements android.provider.BaseColumns android.provider.ContactsContract.MetadataSyncColumns {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_metadata";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/contact_metadata";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_metadata";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact_metadata";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String METADATA_AUTHORITY = "com.android.contacts.metadata";
+    field public static final String METADATA_AUTHORITY = "com.android.contacts.metadata";
     field public static final android.net.Uri METADATA_AUTHORITY_URI;
   }
 
-  protected static abstract interface ContactsContract.MetadataSyncColumns {
-    field public static final java.lang.String ACCOUNT_NAME = "account_name";
-    field public static final java.lang.String ACCOUNT_TYPE = "account_type";
-    field public static final java.lang.String DATA = "data";
-    field public static final java.lang.String DATA_SET = "data_set";
-    field public static final java.lang.String DELETED = "deleted";
-    field public static final java.lang.String RAW_CONTACT_BACKUP_ID = "raw_contact_backup_id";
+  protected static interface ContactsContract.MetadataSyncColumns {
+    field public static final String ACCOUNT_NAME = "account_name";
+    field public static final String ACCOUNT_TYPE = "account_type";
+    field public static final String DATA = "data";
+    field public static final String DATA_SET = "data_set";
+    field public static final String DELETED = "deleted";
+    field public static final String RAW_CONTACT_BACKUP_ID = "raw_contact_backup_id";
   }
 
   public static final class ContactsContract.MetadataSyncState implements android.provider.BaseColumns android.provider.ContactsContract.MetadataSyncStateColumns {
-    field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_metadata_sync_state";
-    field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/contact_metadata_sync_state";
+    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/contact_metadata_sync_state";
+    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/contact_metadata_sync_state";
     field public static final android.net.Uri CONTENT_URI;
   }
 
-  protected static abstract interface ContactsContract.MetadataSyncStateColumns {
-    field public static final java.lang.String ACCOUNT_NAME = "account_name";
-    field public static final java.lang.String ACCOUNT_TYPE = "account_type";
-    field public static final java.lang.String DATA_SET = "data_set";
-    field public static final java.lang.String STATE = "state";
+  protected static interface ContactsContract.MetadataSyncStateColumns {
+    field public static final String ACCOUNT_NAME = "account_name";
+    field public static final String ACCOUNT_TYPE = "account_type";
+    field public static final String DATA_SET = "data_set";
+    field public static final String STATE = "state";
   }
 
   public final class DeviceConfig {
-    method public static void addOnPropertyChangedListener(java.lang.String, java.util.concurrent.Executor, android.provider.DeviceConfig.OnPropertyChangedListener);
-    method public static java.lang.String getProperty(java.lang.String, java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public static void addOnPropertyChangedListener(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.provider.DeviceConfig.OnPropertyChangedListener);
+    method @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public static String getProperty(String, String);
     method public static void removeOnPropertyChangedListener(android.provider.DeviceConfig.OnPropertyChangedListener);
-    method public static void resetToDefaults(int, java.lang.String);
-    method public static boolean setProperty(java.lang.String, java.lang.String, java.lang.String, boolean);
-    field public static final java.lang.String NAMESPACE_GAME_DRIVER = "game_driver";
-    field public static final java.lang.String NAMESPACE_INPUT_NATIVE_BOOT = "input_native_boot";
+    method @RequiresPermission(android.Manifest.permission.WRITE_DEVICE_CONFIG) public static void resetToDefaults(int, @Nullable String);
+    method @RequiresPermission(android.Manifest.permission.WRITE_DEVICE_CONFIG) public static boolean setProperty(String, String, String, boolean);
+    field public static final String NAMESPACE_AUTOFILL = "autofill";
+    field public static final String NAMESPACE_CONTENT_CAPTURE = "content_capture";
+    field public static final String NAMESPACE_GAME_DRIVER = "game_driver";
+    field public static final String NAMESPACE_INPUT_NATIVE_BOOT = "input_native_boot";
   }
 
-  public static abstract interface DeviceConfig.OnPropertyChangedListener {
-    method public abstract void onPropertyChanged(java.lang.String, java.lang.String, java.lang.String);
+  public static interface DeviceConfig.OnPropertyChangedListener {
+    method public void onPropertyChanged(String, String, String);
   }
 
   public final class DocumentsContract {
     method public static boolean isManageMode(android.net.Uri);
     method public static android.net.Uri setManageMode(android.net.Uri);
-    field public static final java.lang.String ACTION_DOCUMENT_ROOT_SETTINGS = "android.provider.action.DOCUMENT_ROOT_SETTINGS";
-    field public static final java.lang.String ACTION_MANAGE_DOCUMENT = "android.provider.action.MANAGE_DOCUMENT";
-    field public static final java.lang.String EXTRA_SHOW_ADVANCED = "android.provider.extra.SHOW_ADVANCED";
+    field public static final String ACTION_DOCUMENT_ROOT_SETTINGS = "android.provider.action.DOCUMENT_ROOT_SETTINGS";
+    field public static final String ACTION_MANAGE_DOCUMENT = "android.provider.action.MANAGE_DOCUMENT";
+    field public static final String EXTRA_SHOW_ADVANCED = "android.provider.extra.SHOW_ADVANCED";
   }
 
   public static final class DocumentsContract.Root {
@@ -5130,22 +5139,22 @@
   public abstract class SearchIndexableData {
     ctor public SearchIndexableData();
     ctor public SearchIndexableData(android.content.Context);
-    field public java.lang.String className;
+    field public String className;
     field public android.content.Context context;
     field public boolean enabled;
     field public int iconResId;
-    field public java.lang.String intentAction;
-    field public java.lang.String intentTargetClass;
-    field public java.lang.String intentTargetPackage;
-    field public java.lang.String key;
+    field public String intentAction;
+    field public String intentTargetClass;
+    field public String intentTargetPackage;
+    field public String key;
     field public java.util.Locale locale;
-    field public java.lang.String packageName;
+    field public String packageName;
     field public int rank;
     field public int userId;
   }
 
   public class SearchIndexableResource extends android.provider.SearchIndexableData {
-    ctor public SearchIndexableResource(int, int, java.lang.String, int);
+    ctor public SearchIndexableResource(int, int, String, int);
     ctor public SearchIndexableResource(android.content.Context);
     field public int xmlResId;
   }
@@ -5174,150 +5183,150 @@
     field public static final int COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE = 5; // 0x5
     field public static final int COLUMN_INDEX_XML_RES_RANK = 0; // 0x0
     field public static final int COLUMN_INDEX_XML_RES_RESID = 1; // 0x1
-    field public static final java.lang.String INDEXABLES_RAW = "indexables_raw";
-    field public static final java.lang.String[] INDEXABLES_RAW_COLUMNS;
-    field public static final java.lang.String INDEXABLES_RAW_PATH = "settings/indexables_raw";
-    field public static final java.lang.String INDEXABLES_XML_RES = "indexables_xml_res";
-    field public static final java.lang.String[] INDEXABLES_XML_RES_COLUMNS;
-    field public static final java.lang.String INDEXABLES_XML_RES_PATH = "settings/indexables_xml_res";
-    field public static final java.lang.String NON_INDEXABLES_KEYS = "non_indexables_key";
-    field public static final java.lang.String[] NON_INDEXABLES_KEYS_COLUMNS;
-    field public static final java.lang.String NON_INDEXABLES_KEYS_PATH = "settings/non_indexables_key";
-    field public static final java.lang.String PROVIDER_INTERFACE = "android.content.action.SEARCH_INDEXABLES_PROVIDER";
+    field public static final String INDEXABLES_RAW = "indexables_raw";
+    field public static final String[] INDEXABLES_RAW_COLUMNS;
+    field public static final String INDEXABLES_RAW_PATH = "settings/indexables_raw";
+    field public static final String INDEXABLES_XML_RES = "indexables_xml_res";
+    field public static final String[] INDEXABLES_XML_RES_COLUMNS;
+    field public static final String INDEXABLES_XML_RES_PATH = "settings/indexables_xml_res";
+    field public static final String NON_INDEXABLES_KEYS = "non_indexables_key";
+    field public static final String[] NON_INDEXABLES_KEYS_COLUMNS;
+    field public static final String NON_INDEXABLES_KEYS_PATH = "settings/non_indexables_key";
+    field public static final String PROVIDER_INTERFACE = "android.content.action.SEARCH_INDEXABLES_PROVIDER";
   }
 
   public static class SearchIndexablesContract.BaseColumns {
-    field public static final java.lang.String COLUMN_CLASS_NAME = "className";
-    field public static final java.lang.String COLUMN_ICON_RESID = "iconResId";
-    field public static final java.lang.String COLUMN_INTENT_ACTION = "intentAction";
-    field public static final java.lang.String COLUMN_INTENT_TARGET_CLASS = "intentTargetClass";
-    field public static final java.lang.String COLUMN_INTENT_TARGET_PACKAGE = "intentTargetPackage";
-    field public static final java.lang.String COLUMN_RANK = "rank";
+    field public static final String COLUMN_CLASS_NAME = "className";
+    field public static final String COLUMN_ICON_RESID = "iconResId";
+    field public static final String COLUMN_INTENT_ACTION = "intentAction";
+    field public static final String COLUMN_INTENT_TARGET_CLASS = "intentTargetClass";
+    field public static final String COLUMN_INTENT_TARGET_PACKAGE = "intentTargetPackage";
+    field public static final String COLUMN_RANK = "rank";
   }
 
   public static final class SearchIndexablesContract.NonIndexableKey extends android.provider.SearchIndexablesContract.BaseColumns {
-    field public static final java.lang.String COLUMN_KEY_VALUE = "key";
-    field public static final java.lang.String MIME_TYPE = "vnd.android.cursor.dir/non_indexables_key";
+    field public static final String COLUMN_KEY_VALUE = "key";
+    field public static final String MIME_TYPE = "vnd.android.cursor.dir/non_indexables_key";
   }
 
   public static final class SearchIndexablesContract.RawData extends android.provider.SearchIndexablesContract.BaseColumns {
-    field public static final java.lang.String COLUMN_ENTRIES = "entries";
-    field public static final java.lang.String COLUMN_KEY = "key";
-    field public static final java.lang.String COLUMN_KEYWORDS = "keywords";
-    field public static final java.lang.String COLUMN_SCREEN_TITLE = "screenTitle";
-    field public static final java.lang.String COLUMN_SUMMARY_OFF = "summaryOff";
-    field public static final java.lang.String COLUMN_SUMMARY_ON = "summaryOn";
-    field public static final java.lang.String COLUMN_TITLE = "title";
-    field public static final java.lang.String COLUMN_USER_ID = "user_id";
-    field public static final java.lang.String MIME_TYPE = "vnd.android.cursor.dir/indexables_raw";
+    field public static final String COLUMN_ENTRIES = "entries";
+    field public static final String COLUMN_KEY = "key";
+    field public static final String COLUMN_KEYWORDS = "keywords";
+    field public static final String COLUMN_SCREEN_TITLE = "screenTitle";
+    field public static final String COLUMN_SUMMARY_OFF = "summaryOff";
+    field public static final String COLUMN_SUMMARY_ON = "summaryOn";
+    field public static final String COLUMN_TITLE = "title";
+    field public static final String COLUMN_USER_ID = "user_id";
+    field public static final String MIME_TYPE = "vnd.android.cursor.dir/indexables_raw";
   }
 
   public static final class SearchIndexablesContract.XmlResource extends android.provider.SearchIndexablesContract.BaseColumns {
-    field public static final java.lang.String COLUMN_XML_RESID = "xmlResId";
-    field public static final java.lang.String MIME_TYPE = "vnd.android.cursor.dir/indexables_xml_res";
+    field public static final String COLUMN_XML_RESID = "xmlResId";
+    field public static final String MIME_TYPE = "vnd.android.cursor.dir/indexables_xml_res";
   }
 
   public abstract class SearchIndexablesProvider extends android.content.ContentProvider {
     ctor public SearchIndexablesProvider();
-    method public final int delete(android.net.Uri, java.lang.String, java.lang.String[]);
-    method public java.lang.String getType(android.net.Uri);
+    method public final int delete(android.net.Uri, String, String[]);
+    method public String getType(android.net.Uri);
     method public final android.net.Uri insert(android.net.Uri, android.content.ContentValues);
-    method public android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public abstract android.database.Cursor queryNonIndexableKeys(java.lang.String[]);
-    method public abstract android.database.Cursor queryRawData(java.lang.String[]);
-    method public abstract android.database.Cursor queryXmlResources(java.lang.String[]);
-    method public final int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
+    method public android.database.Cursor query(android.net.Uri, String[], String, String[], String);
+    method public abstract android.database.Cursor queryNonIndexableKeys(String[]);
+    method public abstract android.database.Cursor queryRawData(String[]);
+    method public abstract android.database.Cursor queryXmlResources(String[]);
+    method public final int update(android.net.Uri, android.content.ContentValues, String, String[]);
   }
 
   public final class Settings {
-    field public static final java.lang.String ACTION_ENTERPRISE_PRIVACY_SETTINGS = "android.settings.ENTERPRISE_PRIVACY_SETTINGS";
-    field public static final java.lang.String ACTION_LOCATION_CONTROLLER_EXTRA_PACKAGE_SETTINGS = "android.settings.LOCATION_CONTROLLER_EXTRA_PACKAGE_SETTINGS";
-    field public static final java.lang.String ACTION_SHOW_ADMIN_SUPPORT_DETAILS = "android.settings.SHOW_ADMIN_SUPPORT_DETAILS";
+    field public static final String ACTION_ENTERPRISE_PRIVACY_SETTINGS = "android.settings.ENTERPRISE_PRIVACY_SETTINGS";
+    field public static final String ACTION_LOCATION_CONTROLLER_EXTRA_PACKAGE_SETTINGS = "android.settings.LOCATION_CONTROLLER_EXTRA_PACKAGE_SETTINGS";
+    field public static final String ACTION_SHOW_ADMIN_SUPPORT_DETAILS = "android.settings.SHOW_ADMIN_SUPPORT_DETAILS";
   }
 
   public static final class Settings.Global extends android.provider.Settings.NameValueTable {
-    method public static boolean putString(android.content.ContentResolver, java.lang.String, java.lang.String, java.lang.String, boolean);
-    method public static void resetToDefaults(android.content.ContentResolver, java.lang.String);
-    field public static final java.lang.String APP_STANDBY_ENABLED = "app_standby_enabled";
-    field public static final java.lang.String AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES = "autofill_compat_mode_allowed_packages";
-    field public static final java.lang.String CARRIER_APP_NAMES = "carrier_app_names";
-    field public static final java.lang.String CARRIER_APP_WHITELIST = "carrier_app_whitelist";
-    field public static final java.lang.String DEFAULT_SM_DP_PLUS = "default_sm_dp_plus";
-    field public static final java.lang.String DEVICE_DEMO_MODE = "device_demo_mode";
-    field public static final java.lang.String DEVICE_PROVISIONING_MOBILE_DATA_ENABLED = "device_provisioning_mobile_data";
-    field public static final java.lang.String EUICC_PROVISIONED = "euicc_provisioned";
-    field public static final java.lang.String INSTALL_CARRIER_APP_NOTIFICATION_PERSISTENT = "install_carrier_app_notification_persistent";
-    field public static final java.lang.String INSTALL_CARRIER_APP_NOTIFICATION_SLEEP_MILLIS = "install_carrier_app_notification_sleep_millis";
-    field public static final java.lang.String OTA_DISABLE_AUTOMATIC_UPDATE = "ota_disable_automatic_update";
-    field public static final java.lang.String REQUIRE_PASSWORD_TO_DECRYPT = "require_password_to_decrypt";
-    field public static final java.lang.String SMS_ACCESS_RESTRICTION_ENABLED = "sms_access_restriction_enabled";
-    field public static final java.lang.String THEATER_MODE_ON = "theater_mode_on";
-    field public static final java.lang.String WEBVIEW_MULTIPROCESS = "webview_multiprocess";
-    field public static final java.lang.String WIFI_BADGING_THRESHOLDS = "wifi_badging_thresholds";
-    field public static final java.lang.String WIFI_WAKEUP_ENABLED = "wifi_wakeup_enabled";
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static boolean putString(@NonNull android.content.ContentResolver, @NonNull String, @Nullable String, @Nullable String, boolean);
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static void resetToDefaults(@NonNull android.content.ContentResolver, @Nullable String);
+    field public static final String APP_STANDBY_ENABLED = "app_standby_enabled";
+    field public static final String AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES = "autofill_compat_mode_allowed_packages";
+    field public static final String CARRIER_APP_NAMES = "carrier_app_names";
+    field public static final String CARRIER_APP_WHITELIST = "carrier_app_whitelist";
+    field public static final String DEFAULT_SM_DP_PLUS = "default_sm_dp_plus";
+    field public static final String DEVICE_DEMO_MODE = "device_demo_mode";
+    field public static final String DEVICE_PROVISIONING_MOBILE_DATA_ENABLED = "device_provisioning_mobile_data";
+    field public static final String EUICC_PROVISIONED = "euicc_provisioned";
+    field public static final String INSTALL_CARRIER_APP_NOTIFICATION_PERSISTENT = "install_carrier_app_notification_persistent";
+    field public static final String INSTALL_CARRIER_APP_NOTIFICATION_SLEEP_MILLIS = "install_carrier_app_notification_sleep_millis";
+    field public static final String OTA_DISABLE_AUTOMATIC_UPDATE = "ota_disable_automatic_update";
+    field public static final String REQUIRE_PASSWORD_TO_DECRYPT = "require_password_to_decrypt";
+    field public static final String SMS_ACCESS_RESTRICTION_ENABLED = "sms_access_restriction_enabled";
+    field public static final String THEATER_MODE_ON = "theater_mode_on";
+    field public static final String WEBVIEW_MULTIPROCESS = "webview_multiprocess";
+    field public static final String WIFI_BADGING_THRESHOLDS = "wifi_badging_thresholds";
+    field public static final String WIFI_WAKEUP_ENABLED = "wifi_wakeup_enabled";
   }
 
   public static final class Settings.Secure extends android.provider.Settings.NameValueTable {
-    method public static boolean putString(android.content.ContentResolver, java.lang.String, java.lang.String, java.lang.String, boolean);
-    method public static void resetToDefaults(android.content.ContentResolver, java.lang.String);
-    field public static final java.lang.String ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED = "accessibility_display_magnification_navbar_enabled";
-    field public static final java.lang.String ASSIST_GESTURE_SETUP_COMPLETE = "assist_gesture_setup_complete";
-    field public static final java.lang.String AUTOFILL_FEATURE_FIELD_CLASSIFICATION = "autofill_field_classification";
-    field public static final java.lang.String AUTOFILL_USER_DATA_MAX_CATEGORY_COUNT = "autofill_user_data_max_category_count";
-    field public static final java.lang.String AUTOFILL_USER_DATA_MAX_FIELD_CLASSIFICATION_IDS_SIZE = "autofill_user_data_max_field_classification_size";
-    field public static final java.lang.String AUTOFILL_USER_DATA_MAX_USER_DATA_SIZE = "autofill_user_data_max_user_data_size";
-    field public static final java.lang.String AUTOFILL_USER_DATA_MAX_VALUE_LENGTH = "autofill_user_data_max_value_length";
-    field public static final java.lang.String AUTOFILL_USER_DATA_MIN_VALUE_LENGTH = "autofill_user_data_min_value_length";
-    field public static final java.lang.String COMPLETED_CATEGORY_PREFIX = "suggested.completed_category.";
-    field public static final java.lang.String DOZE_ALWAYS_ON = "doze_always_on";
-    field public static final java.lang.String HUSH_GESTURE_USED = "hush_gesture_used";
-    field public static final java.lang.String INSTANT_APPS_ENABLED = "instant_apps_enabled";
-    field public static final java.lang.String LAST_SETUP_SHOWN = "last_setup_shown";
-    field public static final java.lang.String LOCATION_ACCESS_CHECK_DELAY_MILLIS = "location_access_check_delay_millis";
-    field public static final java.lang.String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS = "location_access_check_interval_millis";
-    field public static final java.lang.String LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS = "lock_screen_allow_private_notifications";
-    field public static final java.lang.String LOCK_SCREEN_SHOW_NOTIFICATIONS = "lock_screen_show_notifications";
-    field public static final java.lang.String MANUAL_RINGER_TOGGLE_COUNT = "manual_ringer_toggle_count";
-    field public static final java.lang.String USER_SETUP_COMPLETE = "user_setup_complete";
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static boolean putString(@NonNull android.content.ContentResolver, @NonNull String, @Nullable String, @Nullable String, boolean);
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static void resetToDefaults(@NonNull android.content.ContentResolver, @Nullable String);
+    field public static final String ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED = "accessibility_display_magnification_navbar_enabled";
+    field public static final String ASSIST_GESTURE_SETUP_COMPLETE = "assist_gesture_setup_complete";
+    field public static final String AUTOFILL_FEATURE_FIELD_CLASSIFICATION = "autofill_field_classification";
+    field public static final String AUTOFILL_USER_DATA_MAX_CATEGORY_COUNT = "autofill_user_data_max_category_count";
+    field public static final String AUTOFILL_USER_DATA_MAX_FIELD_CLASSIFICATION_IDS_SIZE = "autofill_user_data_max_field_classification_size";
+    field public static final String AUTOFILL_USER_DATA_MAX_USER_DATA_SIZE = "autofill_user_data_max_user_data_size";
+    field public static final String AUTOFILL_USER_DATA_MAX_VALUE_LENGTH = "autofill_user_data_max_value_length";
+    field public static final String AUTOFILL_USER_DATA_MIN_VALUE_LENGTH = "autofill_user_data_min_value_length";
+    field public static final String COMPLETED_CATEGORY_PREFIX = "suggested.completed_category.";
+    field public static final String DOZE_ALWAYS_ON = "doze_always_on";
+    field public static final String HUSH_GESTURE_USED = "hush_gesture_used";
+    field public static final String INSTANT_APPS_ENABLED = "instant_apps_enabled";
+    field public static final String LAST_SETUP_SHOWN = "last_setup_shown";
+    field public static final String LOCATION_ACCESS_CHECK_DELAY_MILLIS = "location_access_check_delay_millis";
+    field public static final String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS = "location_access_check_interval_millis";
+    field public static final String LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS = "lock_screen_allow_private_notifications";
+    field public static final String LOCK_SCREEN_SHOW_NOTIFICATIONS = "lock_screen_show_notifications";
+    field public static final String MANUAL_RINGER_TOGGLE_COUNT = "manual_ringer_toggle_count";
+    field public static final String USER_SETUP_COMPLETE = "user_setup_complete";
     field public static final int USER_SETUP_PERSONALIZATION_COMPLETE = 10; // 0xa
     field public static final int USER_SETUP_PERSONALIZATION_NOT_STARTED = 0; // 0x0
     field public static final int USER_SETUP_PERSONALIZATION_PAUSED = 2; // 0x2
     field public static final int USER_SETUP_PERSONALIZATION_STARTED = 1; // 0x1
-    field public static final java.lang.String USER_SETUP_PERSONALIZATION_STATE = "user_setup_personalization_state";
-    field public static final java.lang.String VOLUME_HUSH_GESTURE = "volume_hush_gesture";
+    field public static final String USER_SETUP_PERSONALIZATION_STATE = "user_setup_personalization_state";
+    field public static final String VOLUME_HUSH_GESTURE = "volume_hush_gesture";
   }
 
   public static final class Telephony.Carriers implements android.provider.BaseColumns {
-    field public static final java.lang.String APN_SET_ID = "apn_set_id";
+    field public static final String APN_SET_ID = "apn_set_id";
     field public static final int CARRIER_EDITED = 4; // 0x4
-    field public static final java.lang.String EDITED_STATUS = "edited";
-    field public static final java.lang.String MAX_CONNECTIONS = "max_conns";
-    field public static final java.lang.String MODEM_PERSIST = "modem_cognitive";
-    field public static final java.lang.String MTU = "mtu";
+    field public static final String EDITED_STATUS = "edited";
+    field public static final String MAX_CONNECTIONS = "max_conns";
+    field public static final String MODEM_PERSIST = "modem_cognitive";
+    field public static final String MTU = "mtu";
     field public static final int NO_APN_SET_ID = 0; // 0x0
-    field public static final java.lang.String TIME_LIMIT_FOR_MAX_CONNECTIONS = "max_conns_time";
+    field public static final String TIME_LIMIT_FOR_MAX_CONNECTIONS = "max_conns_time";
     field public static final int UNEDITED = 0; // 0x0
     field public static final int USER_DELETED = 2; // 0x2
-    field public static final java.lang.String USER_EDITABLE = "user_editable";
+    field public static final String USER_EDITABLE = "user_editable";
     field public static final int USER_EDITED = 1; // 0x1
-    field public static final java.lang.String USER_VISIBLE = "user_visible";
-    field public static final java.lang.String WAIT_TIME_RETRY = "wait_time";
+    field public static final String USER_VISIBLE = "user_visible";
+    field public static final String WAIT_TIME_RETRY = "wait_time";
   }
 
   public final class TimeZoneRulesDataContract {
-    field public static final java.lang.String AUTHORITY = "com.android.timezone";
+    field public static final String AUTHORITY = "com.android.timezone";
   }
 
   public static final class TimeZoneRulesDataContract.Operation {
-    field public static final java.lang.String COLUMN_DISTRO_MAJOR_VERSION = "distro_major_version";
-    field public static final java.lang.String COLUMN_DISTRO_MINOR_VERSION = "distro_minor_version";
-    field public static final java.lang.String COLUMN_REVISION = "revision";
-    field public static final java.lang.String COLUMN_RULES_VERSION = "rules_version";
-    field public static final java.lang.String COLUMN_TYPE = "type";
+    field public static final String COLUMN_DISTRO_MAJOR_VERSION = "distro_major_version";
+    field public static final String COLUMN_DISTRO_MINOR_VERSION = "distro_minor_version";
+    field public static final String COLUMN_REVISION = "revision";
+    field public static final String COLUMN_RULES_VERSION = "rules_version";
+    field public static final String COLUMN_TYPE = "type";
     field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String TYPE_INSTALL = "INSTALL";
-    field public static final java.lang.String TYPE_NO_OP = "NOOP";
-    field public static final java.lang.String TYPE_UNINSTALL = "UNINSTALL";
+    field public static final String TYPE_INSTALL = "INSTALL";
+    field public static final String TYPE_NO_OP = "NOOP";
+    field public static final String TYPE_UNINSTALL = "UNINSTALL";
   }
 
 }
@@ -5326,12 +5335,12 @@
 
   public abstract class RoleControllerService extends android.app.Service {
     ctor public RoleControllerService();
-    method public abstract void onAddRoleHolder(java.lang.String, java.lang.String, android.app.role.RoleManagerCallback);
-    method public final android.os.IBinder onBind(android.content.Intent);
-    method public abstract void onClearRoleHolders(java.lang.String, android.app.role.RoleManagerCallback);
-    method public abstract void onGrantDefaultRoles(android.app.role.RoleManagerCallback);
-    method public abstract void onRemoveRoleHolder(java.lang.String, java.lang.String, android.app.role.RoleManagerCallback);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.rolecontrollerservice.RoleControllerService";
+    method public abstract void onAddRoleHolder(@NonNull String, @NonNull String, @NonNull android.app.role.RoleManagerCallback);
+    method @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent);
+    method public abstract void onClearRoleHolders(@NonNull String, @NonNull android.app.role.RoleManagerCallback);
+    method public abstract void onGrantDefaultRoles(@NonNull android.app.role.RoleManagerCallback);
+    method public abstract void onRemoveRoleHolder(@NonNull String, @NonNull String, @NonNull android.app.role.RoleManagerCallback);
+    field public static final String SERVICE_INTERFACE = "android.rolecontrollerservice.RoleControllerService";
   }
 
 }
@@ -5339,15 +5348,15 @@
 package android.security.keystore {
 
   public abstract class AttestationUtils {
-    method public static java.security.cert.X509Certificate[] attestDeviceIds(android.content.Context, int[], byte[]) throws android.security.keystore.DeviceIdAttestationException;
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @NonNull public static java.security.cert.X509Certificate[] attestDeviceIds(android.content.Context, @NonNull int[], @NonNull byte[]) throws android.security.keystore.DeviceIdAttestationException;
     field public static final int ID_TYPE_IMEI = 2; // 0x2
     field public static final int ID_TYPE_MEID = 3; // 0x3
     field public static final int ID_TYPE_SERIAL = 1; // 0x1
   }
 
   public class DeviceIdAttestationException extends java.lang.Exception {
-    ctor public DeviceIdAttestationException(java.lang.String);
-    ctor public DeviceIdAttestationException(java.lang.String, java.lang.Throwable);
+    ctor public DeviceIdAttestationException(String);
+    ctor public DeviceIdAttestationException(String, Throwable);
   }
 
 }
@@ -5355,20 +5364,20 @@
 package android.security.keystore.recovery {
 
   public class DecryptionFailedException extends java.security.GeneralSecurityException {
-    ctor public DecryptionFailedException(java.lang.String);
+    ctor public DecryptionFailedException(String);
   }
 
   public class InternalRecoveryServiceException extends java.security.GeneralSecurityException {
-    ctor public InternalRecoveryServiceException(java.lang.String);
-    ctor public InternalRecoveryServiceException(java.lang.String, java.lang.Throwable);
+    ctor public InternalRecoveryServiceException(String);
+    ctor public InternalRecoveryServiceException(String, Throwable);
   }
 
   public final class KeyChainProtectionParams implements android.os.Parcelable {
     method public void clearSecret();
     method public int describeContents();
-    method public android.security.keystore.recovery.KeyDerivationParams getKeyDerivationParams();
+    method @NonNull public android.security.keystore.recovery.KeyDerivationParams getKeyDerivationParams();
     method public int getLockScreenUiFormat();
-    method public byte[] getSecret();
+    method @NonNull public byte[] getSecret();
     method public int getUserSecretType();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.security.keystore.recovery.KeyChainProtectionParams> CREATOR;
@@ -5380,34 +5389,34 @@
 
   public static class KeyChainProtectionParams.Builder {
     ctor public KeyChainProtectionParams.Builder();
-    method public android.security.keystore.recovery.KeyChainProtectionParams build();
-    method public android.security.keystore.recovery.KeyChainProtectionParams.Builder setKeyDerivationParams(android.security.keystore.recovery.KeyDerivationParams);
+    method @NonNull public android.security.keystore.recovery.KeyChainProtectionParams build();
+    method public android.security.keystore.recovery.KeyChainProtectionParams.Builder setKeyDerivationParams(@NonNull android.security.keystore.recovery.KeyDerivationParams);
     method public android.security.keystore.recovery.KeyChainProtectionParams.Builder setLockScreenUiFormat(int);
-    method public android.security.keystore.recovery.KeyChainProtectionParams.Builder setSecret(byte[]);
+    method public android.security.keystore.recovery.KeyChainProtectionParams.Builder setSecret(@NonNull byte[]);
     method public android.security.keystore.recovery.KeyChainProtectionParams.Builder setUserSecretType(int);
   }
 
   public final class KeyChainSnapshot implements android.os.Parcelable {
     method public int describeContents();
     method public long getCounterId();
-    method public byte[] getEncryptedRecoveryKeyBlob();
-    method public java.util.List<android.security.keystore.recovery.KeyChainProtectionParams> getKeyChainProtectionParams();
+    method @NonNull public byte[] getEncryptedRecoveryKeyBlob();
+    method @NonNull public java.util.List<android.security.keystore.recovery.KeyChainProtectionParams> getKeyChainProtectionParams();
     method public int getMaxAttempts();
-    method public byte[] getServerParams();
+    method @NonNull public byte[] getServerParams();
     method public int getSnapshotVersion();
-    method public java.security.cert.CertPath getTrustedHardwareCertPath();
-    method public java.util.List<android.security.keystore.recovery.WrappedApplicationKey> getWrappedApplicationKeys();
+    method @NonNull public java.security.cert.CertPath getTrustedHardwareCertPath();
+    method @NonNull public java.util.List<android.security.keystore.recovery.WrappedApplicationKey> getWrappedApplicationKeys();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.security.keystore.recovery.KeyChainSnapshot> CREATOR;
   }
 
   public final class KeyDerivationParams implements android.os.Parcelable {
-    method public static android.security.keystore.recovery.KeyDerivationParams createScryptParams(byte[], int);
-    method public static android.security.keystore.recovery.KeyDerivationParams createSha256Params(byte[]);
+    method @NonNull public static android.security.keystore.recovery.KeyDerivationParams createScryptParams(@NonNull byte[], int);
+    method @NonNull public static android.security.keystore.recovery.KeyDerivationParams createSha256Params(@NonNull byte[]);
     method public int describeContents();
     method public int getAlgorithm();
     method public int getMemoryDifficulty();
-    method public byte[] getSalt();
+    method @NonNull public byte[] getSalt();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int ALGORITHM_SCRYPT = 2; // 0x2
     field public static final int ALGORITHM_SHA256 = 1; // 0x1
@@ -5415,55 +5424,59 @@
   }
 
   public class LockScreenRequiredException extends java.security.GeneralSecurityException {
-    ctor public LockScreenRequiredException(java.lang.String);
+    ctor public LockScreenRequiredException(String);
   }
 
   public class RecoveryController {
-    method public android.security.keystore.recovery.RecoverySession createRecoverySession();
-    method public java.security.Key generateKey(java.lang.String) throws android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.LockScreenRequiredException;
-    method public java.util.List<java.lang.String> getAliases() throws android.security.keystore.recovery.InternalRecoveryServiceException;
-    method public static android.security.keystore.recovery.RecoveryController getInstance(android.content.Context);
-    method public java.security.Key getKey(java.lang.String) throws android.security.keystore.recovery.InternalRecoveryServiceException, java.security.UnrecoverableKeyException;
-    method public android.security.keystore.recovery.KeyChainSnapshot getKeyChainSnapshot() throws android.security.keystore.recovery.InternalRecoveryServiceException;
-    method public int[] getRecoverySecretTypes() throws android.security.keystore.recovery.InternalRecoveryServiceException;
-    method public int getRecoveryStatus(java.lang.String) throws android.security.keystore.recovery.InternalRecoveryServiceException;
-    method public java.util.Map<java.lang.String, java.security.cert.X509Certificate> getRootCertificates();
-    method public java.security.Key importKey(java.lang.String, byte[]) throws android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.LockScreenRequiredException;
-    method public void initRecoveryService(java.lang.String, byte[], byte[]) throws java.security.cert.CertificateException, android.security.keystore.recovery.InternalRecoveryServiceException;
-    method public static boolean isRecoverableKeyStoreEnabled(android.content.Context);
-    method public void removeKey(java.lang.String) throws android.security.keystore.recovery.InternalRecoveryServiceException;
-    method public void setRecoverySecretTypes(int[]) throws android.security.keystore.recovery.InternalRecoveryServiceException;
-    method public void setRecoveryStatus(java.lang.String, int) throws android.security.keystore.recovery.InternalRecoveryServiceException;
-    method public void setServerParams(byte[]) throws android.security.keystore.recovery.InternalRecoveryServiceException;
-    method public void setSnapshotCreatedPendingIntent(android.app.PendingIntent) throws android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @NonNull public android.security.keystore.recovery.RecoverySession createRecoverySession();
+    method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public java.security.Key generateKey(@NonNull String) throws android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.LockScreenRequiredException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @NonNull public java.security.Key generateKey(@NonNull String, @Nullable byte[]) throws android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.LockScreenRequiredException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @NonNull public java.util.List<java.lang.String> getAliases() throws android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @NonNull public static android.security.keystore.recovery.RecoveryController getInstance(@NonNull android.content.Context);
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @Nullable public java.security.Key getKey(@NonNull String) throws android.security.keystore.recovery.InternalRecoveryServiceException, java.security.UnrecoverableKeyException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @Nullable public android.security.keystore.recovery.KeyChainSnapshot getKeyChainSnapshot() throws android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @NonNull @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public int[] getRecoverySecretTypes() throws android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public int getRecoveryStatus(@NonNull String) throws android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @NonNull public java.util.Map<java.lang.String,java.security.cert.X509Certificate> getRootCertificates();
+    method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public java.security.Key importKey(@NonNull String, @NonNull byte[]) throws android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.LockScreenRequiredException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @NonNull public java.security.Key importKey(@NonNull String, @NonNull byte[], @Nullable byte[]) throws android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.LockScreenRequiredException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public void initRecoveryService(@NonNull String, @NonNull byte[], @NonNull byte[]) throws java.security.cert.CertificateException, android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public static boolean isRecoverableKeyStoreEnabled(@NonNull android.content.Context);
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public void removeKey(@NonNull String) throws android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public void setRecoverySecretTypes(@NonNull int[]) throws android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public void setRecoveryStatus(@NonNull String, int) throws android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public void setServerParams(@NonNull byte[]) throws android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public void setSnapshotCreatedPendingIntent(@Nullable android.app.PendingIntent) throws android.security.keystore.recovery.InternalRecoveryServiceException;
     field public static final int RECOVERY_STATUS_PERMANENT_FAILURE = 3; // 0x3
     field public static final int RECOVERY_STATUS_SYNCED = 0; // 0x0
     field public static final int RECOVERY_STATUS_SYNC_IN_PROGRESS = 1; // 0x1
   }
 
   public class RecoverySession implements java.lang.AutoCloseable {
-    method public void close();
-    method public java.util.Map<java.lang.String, java.security.Key> recoverKeyChainSnapshot(byte[], java.util.List<android.security.keystore.recovery.WrappedApplicationKey>) throws android.security.keystore.recovery.DecryptionFailedException, android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.SessionExpiredException;
-    method public byte[] start(java.lang.String, java.security.cert.CertPath, byte[], byte[], java.util.List<android.security.keystore.recovery.KeyChainProtectionParams>) throws java.security.cert.CertificateException, android.security.keystore.recovery.InternalRecoveryServiceException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) public void close();
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @NonNull public java.util.Map<java.lang.String,java.security.Key> recoverKeyChainSnapshot(@NonNull byte[], @NonNull java.util.List<android.security.keystore.recovery.WrappedApplicationKey>) throws android.security.keystore.recovery.DecryptionFailedException, android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.SessionExpiredException;
+    method @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @NonNull public byte[] start(@NonNull String, @NonNull java.security.cert.CertPath, @NonNull byte[], @NonNull byte[], @NonNull java.util.List<android.security.keystore.recovery.KeyChainProtectionParams>) throws java.security.cert.CertificateException, android.security.keystore.recovery.InternalRecoveryServiceException;
   }
 
   public class SessionExpiredException extends java.security.GeneralSecurityException {
-    ctor public SessionExpiredException(java.lang.String);
+    ctor public SessionExpiredException(String);
   }
 
   public final class WrappedApplicationKey implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getAlias();
-    method public byte[] getEncryptedKeyMaterial();
+    method @NonNull public String getAlias();
+    method @NonNull public byte[] getEncryptedKeyMaterial();
+    method @Nullable public byte[] getMetadata();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.security.keystore.recovery.WrappedApplicationKey> CREATOR;
   }
 
   public static class WrappedApplicationKey.Builder {
     ctor public WrappedApplicationKey.Builder();
-    method public android.security.keystore.recovery.WrappedApplicationKey build();
-    method public android.security.keystore.recovery.WrappedApplicationKey.Builder setAlias(java.lang.String);
-    method public android.security.keystore.recovery.WrappedApplicationKey.Builder setEncryptedKeyMaterial(byte[]);
+    method @NonNull public android.security.keystore.recovery.WrappedApplicationKey build();
+    method public android.security.keystore.recovery.WrappedApplicationKey.Builder setAlias(@NonNull String);
+    method public android.security.keystore.recovery.WrappedApplicationKey.Builder setEncryptedKeyMaterial(@NonNull byte[]);
+    method public android.security.keystore.recovery.WrappedApplicationKey.Builder setMetadata(@Nullable byte[]);
   }
 
 }
@@ -5472,16 +5485,38 @@
 
   public abstract class AppPredictionService extends android.app.Service {
     ctor public AppPredictionService();
-    method public abstract void onAppTargetEvent(android.app.prediction.AppPredictionSessionId, android.app.prediction.AppTargetEvent);
+    method @MainThread public abstract void onAppTargetEvent(@NonNull android.app.prediction.AppPredictionSessionId, @NonNull android.app.prediction.AppTargetEvent);
     method public final android.os.IBinder onBind(android.content.Intent);
-    method public void onCreatePredictionSession(android.app.prediction.AppPredictionContext, android.app.prediction.AppPredictionSessionId);
-    method public void onDestroyPredictionSession(android.app.prediction.AppPredictionSessionId);
-    method public abstract void onLocationShown(android.app.prediction.AppPredictionSessionId, java.lang.String, java.util.List<android.app.prediction.AppTargetId>);
-    method public abstract void onRequestPredictionUpdate(android.app.prediction.AppPredictionSessionId);
-    method public abstract void onSortAppTargets(android.app.prediction.AppPredictionSessionId, java.util.List<android.app.prediction.AppTarget>, android.os.CancellationSignal, java.util.function.Consumer<java.util.List<android.app.prediction.AppTarget>>);
-    method public void onStartPredictionUpdates();
-    method public void onStopPredictionUpdates();
-    method public final void updatePredictions(android.app.prediction.AppPredictionSessionId, java.util.List<android.app.prediction.AppTarget>);
+    method public void onCreatePredictionSession(@NonNull android.app.prediction.AppPredictionContext, @NonNull android.app.prediction.AppPredictionSessionId);
+    method @MainThread public void onDestroyPredictionSession(@NonNull android.app.prediction.AppPredictionSessionId);
+    method @MainThread public abstract void onLocationShown(@NonNull android.app.prediction.AppPredictionSessionId, @NonNull String, @NonNull java.util.List<android.app.prediction.AppTargetId>);
+    method @MainThread public abstract void onRequestPredictionUpdate(@NonNull android.app.prediction.AppPredictionSessionId);
+    method @MainThread public abstract void onSortAppTargets(@NonNull android.app.prediction.AppPredictionSessionId, @NonNull java.util.List<android.app.prediction.AppTarget>, @NonNull android.os.CancellationSignal, @NonNull java.util.function.Consumer<java.util.List<android.app.prediction.AppTarget>>);
+    method @MainThread public void onStartPredictionUpdates();
+    method @MainThread public void onStopPredictionUpdates();
+    method public final void updatePredictions(@NonNull android.app.prediction.AppPredictionSessionId, @NonNull java.util.List<android.app.prediction.AppTarget>);
+  }
+
+}
+
+package android.service.attention {
+
+  public abstract class AttentionService extends android.app.Service {
+    ctor public AttentionService();
+    method public final android.os.IBinder onBind(android.content.Intent);
+    method public abstract void onCancelAttentionCheck(int);
+    method public abstract void onCheckAttention(int, @NonNull android.service.attention.AttentionService.AttentionCallback);
+    field public static final int ATTENTION_FAILURE_PREEMPTED = 2; // 0x2
+    field public static final int ATTENTION_FAILURE_TIMED_OUT = 3; // 0x3
+    field public static final int ATTENTION_FAILURE_UNKNOWN = 4; // 0x4
+    field public static final int ATTENTION_SUCCESS_ABSENT = 0; // 0x0
+    field public static final int ATTENTION_SUCCESS_PRESENT = 1; // 0x1
+    field public static final String SERVICE_INTERFACE = "android.service.attention.AttentionService";
+  }
+
+  public static final class AttentionService.AttentionCallback {
+    method public void onFailure(int, int);
+    method public void onSuccess(int, int, long);
   }
 
 }
@@ -5490,13 +5525,13 @@
 
   public abstract class AutofillFieldClassificationService extends android.app.Service {
     method public android.os.IBinder onBind(android.content.Intent);
-    method public float[][] onCalculateScores(java.util.List<android.view.autofill.AutofillValue>, java.util.List<java.lang.String>, java.util.List<java.lang.String>, java.lang.String, android.os.Bundle, java.util.Map, java.util.Map);
-    method public deprecated float[][] onGetScores(java.lang.String, android.os.Bundle, java.util.List<android.view.autofill.AutofillValue>, java.util.List<java.lang.String>);
-    field public static final java.lang.String REQUIRED_ALGORITHM_EDIT_DISTANCE = "EDIT_DISTANCE";
-    field public static final java.lang.String REQUIRED_ALGORITHM_EXACT_MATCH = "EXACT_MATCH";
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.autofill.AutofillFieldClassificationService";
-    field public static final java.lang.String SERVICE_META_DATA_KEY_AVAILABLE_ALGORITHMS = "android.autofill.field_classification.available_algorithms";
-    field public static final java.lang.String SERVICE_META_DATA_KEY_DEFAULT_ALGORITHM = "android.autofill.field_classification.default_algorithm";
+    method @Nullable public float[][] onCalculateScores(@NonNull java.util.List<android.view.autofill.AutofillValue>, @NonNull java.util.List<java.lang.String>, @NonNull java.util.List<java.lang.String>, @Nullable String, @Nullable android.os.Bundle, @Nullable java.util.Map, @Nullable java.util.Map);
+    method @Deprecated @Nullable public float[][] onGetScores(@Nullable String, @Nullable android.os.Bundle, @NonNull java.util.List<android.view.autofill.AutofillValue>, @NonNull java.util.List<java.lang.String>);
+    field public static final String REQUIRED_ALGORITHM_EDIT_DISTANCE = "EDIT_DISTANCE";
+    field public static final String REQUIRED_ALGORITHM_EXACT_MATCH = "EXACT_MATCH";
+    field public static final String SERVICE_INTERFACE = "android.service.autofill.AutofillFieldClassificationService";
+    field public static final String SERVICE_META_DATA_KEY_AVAILABLE_ALGORITHMS = "android.autofill.field_classification.available_algorithms";
+    field public static final String SERVICE_META_DATA_KEY_DEFAULT_ALGORITHM = "android.autofill.field_classification.default_algorithm";
   }
 
 }
@@ -5505,25 +5540,25 @@
 
   public abstract class AugmentedAutofillService extends android.app.Service {
     ctor public AugmentedAutofillService();
-    method protected final void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method protected void dump(java.io.PrintWriter, java.lang.String[]);
-    method public void onFillRequest(android.service.autofill.augmented.FillRequest, android.os.CancellationSignal, android.service.autofill.augmented.FillController, android.service.autofill.augmented.FillCallback);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.autofill.augmented.AugmentedAutofillService";
+    method protected final void dump(java.io.FileDescriptor, java.io.PrintWriter, String[]);
+    method protected void dump(@NonNull java.io.PrintWriter, @NonNull String[]);
+    method public void onFillRequest(@NonNull android.service.autofill.augmented.FillRequest, @NonNull android.os.CancellationSignal, @NonNull android.service.autofill.augmented.FillController, @NonNull android.service.autofill.augmented.FillCallback);
+    field public static final String SERVICE_INTERFACE = "android.service.autofill.augmented.AugmentedAutofillService";
   }
 
   public final class FillCallback {
-    method public void onSuccess(android.service.autofill.augmented.FillResponse);
+    method public void onSuccess(@Nullable android.service.autofill.augmented.FillResponse);
   }
 
   public final class FillController {
-    method public void autofill(java.util.List<android.util.Pair<android.view.autofill.AutofillId, android.view.autofill.AutofillValue>>);
+    method public void autofill(@NonNull java.util.List<android.util.Pair<android.view.autofill.AutofillId,android.view.autofill.AutofillValue>>);
   }
 
   public final class FillRequest {
-    method public android.content.ComponentName getActivityComponent();
-    method public android.view.autofill.AutofillId getFocusedId();
-    method public android.view.autofill.AutofillValue getFocusedValue();
-    method public android.service.autofill.augmented.PresentationParams getPresentationParams();
+    method @NonNull public android.content.ComponentName getActivityComponent();
+    method @NonNull public android.view.autofill.AutofillId getFocusedId();
+    method @NonNull public android.view.autofill.AutofillValue getFocusedValue();
+    method @Nullable public android.service.autofill.augmented.PresentationParams getPresentationParams();
     method public int getTaskId();
   }
 
@@ -5536,21 +5571,21 @@
   public static final class FillResponse.Builder {
     ctor public FillResponse.Builder();
     method public android.service.autofill.augmented.FillResponse build();
-    method public android.service.autofill.augmented.FillResponse.Builder setFillWindow(android.service.autofill.augmented.FillWindow);
-    method public android.service.autofill.augmented.FillResponse.Builder setIgnoredIds(java.util.List<android.view.autofill.AutofillId>);
+    method public android.service.autofill.augmented.FillResponse.Builder setFillWindow(@NonNull android.service.autofill.augmented.FillWindow);
+    method public android.service.autofill.augmented.FillResponse.Builder setIgnoredIds(@NonNull java.util.List<android.view.autofill.AutofillId>);
   }
 
   public final class FillWindow implements java.lang.AutoCloseable {
     ctor public FillWindow();
     method public void destroy();
-    method public boolean update(android.service.autofill.augmented.PresentationParams.Area, android.view.View, long);
+    method public boolean update(@NonNull android.service.autofill.augmented.PresentationParams.Area, @NonNull android.view.View, long);
     field public static final long FLAG_METADATA_ADDRESS = 1L; // 0x1L
   }
 
   public abstract class PresentationParams {
     method public int getFlags();
-    method public android.service.autofill.augmented.PresentationParams.Area getFullArea();
-    method public android.service.autofill.augmented.PresentationParams.Area getSuggestionArea();
+    method @Nullable public android.service.autofill.augmented.PresentationParams.Area getFullArea();
+    method @Nullable public android.service.autofill.augmented.PresentationParams.Area getSuggestionArea();
     field public static final int FLAG_HINT_GRAVITY_BOTTOM = 2; // 0x2
     field public static final int FLAG_HINT_GRAVITY_LEFT = 4; // 0x4
     field public static final int FLAG_HINT_GRAVITY_RIGHT = 8; // 0x8
@@ -5559,9 +5594,9 @@
     field public static final int FLAG_HOST_SYSTEM = 32; // 0x20
   }
 
-  public static abstract class PresentationParams.Area {
-    method public android.graphics.Rect getBounds();
-    method public android.service.autofill.augmented.PresentationParams.Area getSubArea(android.graphics.Rect);
+  public abstract static class PresentationParams.Area {
+    method @NonNull public android.graphics.Rect getBounds();
+    method @Nullable public android.service.autofill.augmented.PresentationParams.Area getSubArea(@NonNull android.graphics.Rect);
   }
 
 }
@@ -5571,36 +5606,36 @@
   public abstract class ApnService extends android.app.Service {
     ctor public ApnService();
     method public android.os.IBinder onBind(android.content.Intent);
-    method public abstract java.util.List<android.content.ContentValues> onRestoreApns(int);
+    method @WorkerThread public abstract java.util.List<android.content.ContentValues> onRestoreApns(int);
   }
 
 }
 
 package android.service.contentcapture {
 
-  public final deprecated class ContentCaptureEventsRequest implements android.os.Parcelable {
-    method public int describeContents();
-    method public java.util.List<android.view.contentcapture.ContentCaptureEvent> getEvents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.service.contentcapture.ContentCaptureEventsRequest> CREATOR;
+  @Deprecated public final class ContentCaptureEventsRequest implements android.os.Parcelable {
+    method @Deprecated public int describeContents();
+    method @Deprecated @NonNull public java.util.List<android.view.contentcapture.ContentCaptureEvent> getEvents();
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.service.contentcapture.ContentCaptureEventsRequest> CREATOR;
   }
 
   public abstract class ContentCaptureService extends android.app.Service {
     ctor public ContentCaptureService();
-    method public final java.util.Set<android.content.ComponentName> getContentCaptureDisabledActivities();
-    method public final java.util.Set<java.lang.String> getContentCaptureDisabledPackages();
-    method public void onActivitySnapshot(android.view.contentcapture.ContentCaptureSessionId, android.service.contentcapture.SnapshotData);
+    method @NonNull public final java.util.Set<android.content.ComponentName> getContentCaptureDisabledActivities();
+    method @NonNull public final java.util.Set<java.lang.String> getContentCaptureDisabledPackages();
+    method public void onActivitySnapshot(@NonNull android.view.contentcapture.ContentCaptureSessionId, @NonNull android.service.contentcapture.SnapshotData);
     method public void onConnected();
-    method public void onContentCaptureEvent(android.view.contentcapture.ContentCaptureSessionId, android.view.contentcapture.ContentCaptureEvent);
-    method public deprecated void onContentCaptureEventsRequest(android.view.contentcapture.ContentCaptureSessionId, android.service.contentcapture.ContentCaptureEventsRequest);
-    method public void onCreateContentCaptureSession(android.view.contentcapture.ContentCaptureContext, android.view.contentcapture.ContentCaptureSessionId);
-    method public void onDestroyContentCaptureSession(android.view.contentcapture.ContentCaptureSessionId);
+    method public void onContentCaptureEvent(@NonNull android.view.contentcapture.ContentCaptureSessionId, @NonNull android.view.contentcapture.ContentCaptureEvent);
+    method @Deprecated public void onContentCaptureEventsRequest(@NonNull android.view.contentcapture.ContentCaptureSessionId, @NonNull android.service.contentcapture.ContentCaptureEventsRequest);
+    method public void onCreateContentCaptureSession(@NonNull android.view.contentcapture.ContentCaptureContext, @NonNull android.view.contentcapture.ContentCaptureSessionId);
+    method public void onDestroyContentCaptureSession(@NonNull android.view.contentcapture.ContentCaptureSessionId);
     method public void onDisconnected();
-    method public void onUserDataRemovalRequest(android.view.contentcapture.UserDataRemovalRequest);
-    method public final void setActivityContentCaptureEnabled(android.content.ComponentName, boolean);
-    method public final void setContentCaptureWhitelist(java.util.List<java.lang.String>, java.util.List<android.content.ComponentName>);
-    method public final void setPackageContentCaptureEnabled(java.lang.String, boolean);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.contentcapture.ContentCaptureService";
+    method public void onUserDataRemovalRequest(@NonNull android.view.contentcapture.UserDataRemovalRequest);
+    method public final void setActivityContentCaptureEnabled(@NonNull android.content.ComponentName, boolean);
+    method public final void setContentCaptureWhitelist(@Nullable java.util.List<java.lang.String>, @Nullable java.util.List<android.content.ComponentName>);
+    method public final void setPackageContentCaptureEnabled(@NonNull String, boolean);
+    field public static final String SERVICE_INTERFACE = "android.service.contentcapture.ContentCaptureService";
   }
 
   public final class SnapshotData implements android.os.Parcelable {
@@ -5608,7 +5643,7 @@
     method public android.app.assist.AssistContent getAssistContent();
     method public android.os.Bundle getAssistData();
     method public android.app.assist.AssistStructure getAssistStructure();
-    method public void writeToParcel(android.os.Parcel, int);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.contentcapture.SnapshotData> CREATOR;
   }
 
@@ -5618,11 +5653,11 @@
 
   public abstract class ContentSuggestionsService extends android.app.Service {
     ctor public ContentSuggestionsService();
-    method public abstract void classifyContentSelections(android.app.contentsuggestions.ClassificationsRequest, android.app.contentsuggestions.ContentSuggestionsManager.ClassificationsCallback);
-    method public abstract void notifyInteraction(java.lang.String, android.os.Bundle);
-    method public abstract void processContextImage(int, android.graphics.Bitmap, android.os.Bundle);
-    method public abstract void suggestContentSelections(android.app.contentsuggestions.SelectionsRequest, android.app.contentsuggestions.ContentSuggestionsManager.SelectionsCallback);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.contentsuggestions.ContentSuggestionsService";
+    method public abstract void classifyContentSelections(@NonNull android.app.contentsuggestions.ClassificationsRequest, @NonNull android.app.contentsuggestions.ContentSuggestionsManager.ClassificationsCallback);
+    method public abstract void notifyInteraction(@NonNull String, @NonNull android.os.Bundle);
+    method public abstract void processContextImage(int, @Nullable android.graphics.Bitmap, @NonNull android.os.Bundle);
+    method public abstract void suggestContentSelections(@NonNull android.app.contentsuggestions.SelectionsRequest, @NonNull android.app.contentsuggestions.ContentSuggestionsManager.SelectionsCallback);
+    field public static final String SERVICE_INTERFACE = "android.service.contentsuggestions.ContentSuggestionsService";
   }
 
 }
@@ -5642,15 +5677,15 @@
   public final class EuiccProfileInfo implements android.os.Parcelable {
     method public int describeContents();
     method public android.service.carrier.CarrierIdentifier getCarrierIdentifier();
-    method public java.lang.String getIccid();
-    method public java.lang.String getNickname();
-    method public int getPolicyRules();
-    method public int getProfileClass();
-    method public java.lang.String getProfileName();
-    method public java.lang.String getServiceProviderName();
-    method public int getState();
-    method public java.util.List<android.telephony.UiccAccessRule> getUiccAccessRules();
-    method public boolean hasPolicyRule(int);
+    method public String getIccid();
+    method @Nullable public String getNickname();
+    method @android.service.euicc.EuiccProfileInfo.PolicyRule public int getPolicyRules();
+    method @android.service.euicc.EuiccProfileInfo.ProfileClass public int getProfileClass();
+    method public String getProfileName();
+    method public String getServiceProviderName();
+    method @android.service.euicc.EuiccProfileInfo.ProfileState public int getState();
+    method @Nullable public java.util.List<android.telephony.UiccAccessRule> getUiccAccessRules();
+    method public boolean hasPolicyRule(@android.service.euicc.EuiccProfileInfo.PolicyRule int);
     method public boolean hasPolicyRules();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.euicc.EuiccProfileInfo> CREATOR;
@@ -5665,98 +5700,99 @@
   }
 
   public static final class EuiccProfileInfo.Builder {
-    ctor public EuiccProfileInfo.Builder(java.lang.String);
+    ctor public EuiccProfileInfo.Builder(String);
     ctor public EuiccProfileInfo.Builder(android.service.euicc.EuiccProfileInfo);
     method public android.service.euicc.EuiccProfileInfo build();
     method public android.service.euicc.EuiccProfileInfo.Builder setCarrierIdentifier(android.service.carrier.CarrierIdentifier);
-    method public android.service.euicc.EuiccProfileInfo.Builder setIccid(java.lang.String);
-    method public android.service.euicc.EuiccProfileInfo.Builder setNickname(java.lang.String);
-    method public android.service.euicc.EuiccProfileInfo.Builder setPolicyRules(int);
-    method public android.service.euicc.EuiccProfileInfo.Builder setProfileClass(int);
-    method public android.service.euicc.EuiccProfileInfo.Builder setProfileName(java.lang.String);
-    method public android.service.euicc.EuiccProfileInfo.Builder setServiceProviderName(java.lang.String);
-    method public android.service.euicc.EuiccProfileInfo.Builder setState(int);
-    method public android.service.euicc.EuiccProfileInfo.Builder setUiccAccessRule(java.util.List<android.telephony.UiccAccessRule>);
+    method public android.service.euicc.EuiccProfileInfo.Builder setIccid(String);
+    method public android.service.euicc.EuiccProfileInfo.Builder setNickname(String);
+    method public android.service.euicc.EuiccProfileInfo.Builder setPolicyRules(@android.service.euicc.EuiccProfileInfo.PolicyRule int);
+    method public android.service.euicc.EuiccProfileInfo.Builder setProfileClass(@android.service.euicc.EuiccProfileInfo.ProfileClass int);
+    method public android.service.euicc.EuiccProfileInfo.Builder setProfileName(String);
+    method public android.service.euicc.EuiccProfileInfo.Builder setServiceProviderName(String);
+    method public android.service.euicc.EuiccProfileInfo.Builder setState(@android.service.euicc.EuiccProfileInfo.ProfileState int);
+    method public android.service.euicc.EuiccProfileInfo.Builder setUiccAccessRule(@Nullable java.util.List<android.telephony.UiccAccessRule>);
   }
 
-  public static abstract class EuiccProfileInfo.PolicyRule implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef(flag=true, prefix={"POLICY_RULE_"}, value={android.service.euicc.EuiccProfileInfo.POLICY_RULE_DO_NOT_DISABLE, android.service.euicc.EuiccProfileInfo.POLICY_RULE_DO_NOT_DELETE, android.service.euicc.EuiccProfileInfo.POLICY_RULE_DELETE_AFTER_DISABLING}) public static @interface EuiccProfileInfo.PolicyRule {
   }
 
-  public static abstract class EuiccProfileInfo.ProfileClass implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef(prefix={"PROFILE_CLASS_"}, value={android.service.euicc.EuiccProfileInfo.PROFILE_CLASS_TESTING, android.service.euicc.EuiccProfileInfo.PROFILE_CLASS_PROVISIONING, android.service.euicc.EuiccProfileInfo.PROFILE_CLASS_OPERATIONAL, 0xffffffff}) public static @interface EuiccProfileInfo.ProfileClass {
   }
 
-  public static abstract class EuiccProfileInfo.ProfileState implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef(prefix={"PROFILE_STATE_"}, value={android.service.euicc.EuiccProfileInfo.PROFILE_STATE_DISABLED, android.service.euicc.EuiccProfileInfo.PROFILE_STATE_ENABLED, 0xffffffff}) public static @interface EuiccProfileInfo.ProfileState {
   }
 
   public abstract class EuiccService extends android.app.Service {
     ctor public EuiccService();
-    method public android.os.IBinder onBind(android.content.Intent);
-    method public abstract int onDeleteSubscription(int, java.lang.String);
-    method public abstract android.service.euicc.DownloadSubscriptionResult onDownloadSubscription(int, android.telephony.euicc.DownloadableSubscription, boolean, boolean, android.os.Bundle);
-    method public deprecated int onDownloadSubscription(int, android.telephony.euicc.DownloadableSubscription, boolean, boolean);
+    method @CallSuper public android.os.IBinder onBind(android.content.Intent);
+    method public abstract int onDeleteSubscription(int, String);
+    method public abstract android.service.euicc.DownloadSubscriptionResult onDownloadSubscription(int, @NonNull android.telephony.euicc.DownloadableSubscription, boolean, boolean, @Nullable android.os.Bundle);
+    method @Deprecated public int onDownloadSubscription(int, @NonNull android.telephony.euicc.DownloadableSubscription, boolean, boolean);
     method public abstract int onEraseSubscriptions(int);
     method public abstract android.service.euicc.GetDefaultDownloadableSubscriptionListResult onGetDefaultDownloadableSubscriptionList(int, boolean);
     method public abstract android.service.euicc.GetDownloadableSubscriptionMetadataResult onGetDownloadableSubscriptionMetadata(int, android.telephony.euicc.DownloadableSubscription, boolean);
-    method public abstract java.lang.String onGetEid(int);
-    method public abstract android.telephony.euicc.EuiccInfo onGetEuiccInfo(int);
-    method public abstract android.service.euicc.GetEuiccProfileInfoListResult onGetEuiccProfileInfoList(int);
-    method public abstract int onGetOtaStatus(int);
+    method public abstract String onGetEid(int);
+    method @NonNull public abstract android.telephony.euicc.EuiccInfo onGetEuiccInfo(int);
+    method @NonNull public abstract android.service.euicc.GetEuiccProfileInfoListResult onGetEuiccProfileInfoList(int);
+    method @android.telephony.euicc.EuiccManager.OtaStatus public abstract int onGetOtaStatus(int);
     method public abstract int onRetainSubscriptionsForFactoryReset(int);
     method public abstract void onStartOtaIfNecessary(int, android.service.euicc.EuiccService.OtaStatusChangedCallback);
-    method public abstract int onSwitchToSubscription(int, java.lang.String, boolean);
-    method public abstract int onUpdateSubscriptionNickname(int, java.lang.String, java.lang.String);
-    field public static final java.lang.String ACTION_BIND_CARRIER_PROVISIONING_SERVICE = "android.service.euicc.action.BIND_CARRIER_PROVISIONING_SERVICE";
-    field public static final java.lang.String ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS = "android.service.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS";
-    field public static final java.lang.String ACTION_PROVISION_EMBEDDED_SUBSCRIPTION = "android.service.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION";
-    field public static final deprecated java.lang.String ACTION_RESOLVE_CONFIRMATION_CODE = "android.service.euicc.action.RESOLVE_CONFIRMATION_CODE";
-    field public static final java.lang.String ACTION_RESOLVE_DEACTIVATE_SIM = "android.service.euicc.action.RESOLVE_DEACTIVATE_SIM";
-    field public static final java.lang.String ACTION_RESOLVE_NO_PRIVILEGES = "android.service.euicc.action.RESOLVE_NO_PRIVILEGES";
-    field public static final java.lang.String ACTION_RESOLVE_RESOLVABLE_ERRORS = "android.service.euicc.action.RESOLVE_RESOLVABLE_ERRORS";
-    field public static final java.lang.String CATEGORY_EUICC_UI = "android.service.euicc.category.EUICC_UI";
-    field public static final java.lang.String EUICC_SERVICE_INTERFACE = "android.service.euicc.EuiccService";
-    field public static final java.lang.String EXTRA_RESOLUTION_ALLOW_POLICY_RULES = "android.service.euicc.extra.RESOLUTION_ALLOW_POLICY_RULES";
-    field public static final java.lang.String EXTRA_RESOLUTION_CALLING_PACKAGE = "android.service.euicc.extra.RESOLUTION_CALLING_PACKAGE";
-    field public static final java.lang.String EXTRA_RESOLUTION_CONFIRMATION_CODE = "android.service.euicc.extra.RESOLUTION_CONFIRMATION_CODE";
-    field public static final java.lang.String EXTRA_RESOLUTION_CONFIRMATION_CODE_RETRIED = "android.service.euicc.extra.RESOLUTION_CONFIRMATION_CODE_RETRIED";
-    field public static final java.lang.String EXTRA_RESOLUTION_CONSENT = "android.service.euicc.extra.RESOLUTION_CONSENT";
-    field public static final java.lang.String EXTRA_RESOLVABLE_ERRORS = "android.service.euicc.extra.RESOLVABLE_ERRORS";
+    method public abstract int onSwitchToSubscription(int, @Nullable String, boolean);
+    method public abstract int onUpdateSubscriptionNickname(int, String, String);
+    field public static final String ACTION_BIND_CARRIER_PROVISIONING_SERVICE = "android.service.euicc.action.BIND_CARRIER_PROVISIONING_SERVICE";
+    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 @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 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";
+    field public static final String EXTRA_RESOLUTION_CALLING_PACKAGE = "android.service.euicc.extra.RESOLUTION_CALLING_PACKAGE";
+    field public static final String EXTRA_RESOLUTION_CARD_ID = "android.service.euicc.extra.RESOLUTION_CARD_ID";
+    field public static final String EXTRA_RESOLUTION_CONFIRMATION_CODE = "android.service.euicc.extra.RESOLUTION_CONFIRMATION_CODE";
+    field public static final String EXTRA_RESOLUTION_CONFIRMATION_CODE_RETRIED = "android.service.euicc.extra.RESOLUTION_CONFIRMATION_CODE_RETRIED";
+    field public static final String EXTRA_RESOLUTION_CONSENT = "android.service.euicc.extra.RESOLUTION_CONSENT";
+    field public static final String EXTRA_RESOLVABLE_ERRORS = "android.service.euicc.extra.RESOLVABLE_ERRORS";
     field public static final int RESOLVABLE_ERROR_CONFIRMATION_CODE = 1; // 0x1
     field public static final int RESOLVABLE_ERROR_POLICY_RULES = 2; // 0x2
     field public static final int RESULT_FIRST_USER = 1; // 0x1
     field public static final int RESULT_MUST_DEACTIVATE_SIM = -1; // 0xffffffff
-    field public static final deprecated int RESULT_NEED_CONFIRMATION_CODE = -2; // 0xfffffffe
+    field @Deprecated public static final int RESULT_NEED_CONFIRMATION_CODE = -2; // 0xfffffffe
     field public static final int RESULT_OK = 0; // 0x0
     field public static final int RESULT_RESOLVABLE_ERRORS = -2; // 0xfffffffe
   }
 
-  public static abstract class EuiccService.OtaStatusChangedCallback {
+  public abstract static class EuiccService.OtaStatusChangedCallback {
     ctor public EuiccService.OtaStatusChangedCallback();
     method public abstract void onOtaStatusChanged(int);
   }
 
   public final class GetDefaultDownloadableSubscriptionListResult implements android.os.Parcelable {
-    ctor public GetDefaultDownloadableSubscriptionListResult(int, android.telephony.euicc.DownloadableSubscription[]);
+    ctor public GetDefaultDownloadableSubscriptionListResult(int, @Nullable android.telephony.euicc.DownloadableSubscription[]);
     method public int describeContents();
-    method public java.util.List<android.telephony.euicc.DownloadableSubscription> getDownloadableSubscriptions();
+    method @Nullable public java.util.List<android.telephony.euicc.DownloadableSubscription> getDownloadableSubscriptions();
     method public int getResult();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.euicc.GetDefaultDownloadableSubscriptionListResult> CREATOR;
   }
 
   public final class GetDownloadableSubscriptionMetadataResult implements android.os.Parcelable {
-    ctor public GetDownloadableSubscriptionMetadataResult(int, android.telephony.euicc.DownloadableSubscription);
+    ctor public GetDownloadableSubscriptionMetadataResult(int, @Nullable android.telephony.euicc.DownloadableSubscription);
     method public int describeContents();
-    method public android.telephony.euicc.DownloadableSubscription getDownloadableSubscription();
+    method @Nullable public android.telephony.euicc.DownloadableSubscription getDownloadableSubscription();
     method public int getResult();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.euicc.GetDownloadableSubscriptionMetadataResult> CREATOR;
   }
 
   public final class GetEuiccProfileInfoListResult implements android.os.Parcelable {
-    ctor public GetEuiccProfileInfoListResult(int, android.service.euicc.EuiccProfileInfo[], boolean);
+    ctor public GetEuiccProfileInfoListResult(int, @Nullable android.service.euicc.EuiccProfileInfo[], boolean);
     method public int describeContents();
     method public boolean getIsRemovable();
-    method public java.util.List<android.service.euicc.EuiccProfileInfo> getProfiles();
+    method @Nullable public java.util.List<android.service.euicc.EuiccProfileInfo> getProfiles();
     method public int getResult();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.euicc.GetEuiccProfileInfoListResult> CREATOR;
@@ -5767,40 +5803,40 @@
 package android.service.notification {
 
   public final class Adjustment implements android.os.Parcelable {
-    ctor public Adjustment(java.lang.String, java.lang.String, android.os.Bundle, java.lang.CharSequence, int);
+    ctor public Adjustment(String, String, android.os.Bundle, CharSequence, int);
     ctor protected Adjustment(android.os.Parcel);
     method public int describeContents();
-    method public java.lang.CharSequence getExplanation();
-    method public java.lang.String getKey();
-    method public java.lang.String getPackage();
+    method public CharSequence getExplanation();
+    method public String getKey();
+    method public String getPackage();
     method public android.os.Bundle getSignals();
     method public int getUser();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.notification.Adjustment> CREATOR;
-    field public static final java.lang.String KEY_IMPORTANCE = "key_importance";
-    field public static final java.lang.String KEY_PEOPLE = "key_people";
-    field public static final java.lang.String KEY_SMART_ACTIONS = "key_smart_actions";
-    field public static final java.lang.String KEY_SMART_REPLIES = "key_smart_replies";
-    field public static final java.lang.String KEY_SNOOZE_CRITERIA = "key_snooze_criteria";
-    field public static final java.lang.String KEY_USER_SENTIMENT = "key_user_sentiment";
+    field public static final String KEY_IMPORTANCE = "key_importance";
+    field public static final String KEY_PEOPLE = "key_people";
+    field public static final String KEY_SMART_ACTIONS = "key_smart_actions";
+    field public static final String KEY_SMART_REPLIES = "key_smart_replies";
+    field public static final String KEY_SNOOZE_CRITERIA = "key_snooze_criteria";
+    field public static final String KEY_USER_SENTIMENT = "key_user_sentiment";
   }
 
   public abstract class NotificationAssistantService extends android.service.notification.NotificationListenerService {
     ctor public NotificationAssistantService();
     method public final void adjustNotification(android.service.notification.Adjustment);
     method public final void adjustNotifications(java.util.List<android.service.notification.Adjustment>);
-    method public void onActionInvoked(java.lang.String, android.app.Notification.Action, int);
+    method public void onActionInvoked(@NonNull String, @NonNull android.app.Notification.Action, int);
     method public final android.os.IBinder onBind(android.content.Intent);
-    method public void onNotificationDirectReplied(java.lang.String);
+    method public void onNotificationDirectReplied(@NonNull String);
     method public android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification);
     method public android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification, android.app.NotificationChannel);
-    method public void onNotificationExpansionChanged(java.lang.String, boolean, boolean);
+    method public void onNotificationExpansionChanged(@NonNull String, boolean, boolean);
     method public void onNotificationRemoved(android.service.notification.StatusBarNotification, android.service.notification.NotificationListenerService.RankingMap, android.service.notification.NotificationStats, int);
-    method public abstract void onNotificationSnoozedUntilContext(android.service.notification.StatusBarNotification, java.lang.String);
+    method public abstract void onNotificationSnoozedUntilContext(android.service.notification.StatusBarNotification, String);
     method public void onNotificationsSeen(java.util.List<java.lang.String>);
-    method public void onSuggestedReplySent(java.lang.String, java.lang.CharSequence, int);
-    method public final void unsnoozeNotification(java.lang.String);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationAssistantService";
+    method public void onSuggestedReplySent(@NonNull String, @NonNull CharSequence, int);
+    method public final void unsnoozeNotification(String);
+    field public static final String SERVICE_INTERFACE = "android.service.notification.NotificationAssistantService";
     field public static final int SOURCE_FROM_APP = 0; // 0x0
     field public static final int SOURCE_FROM_ASSISTANT = 1; // 0x1
   }
@@ -5838,12 +5874,12 @@
   }
 
   public final class SnoozeCriterion implements android.os.Parcelable {
-    ctor public SnoozeCriterion(java.lang.String, java.lang.CharSequence, java.lang.CharSequence);
+    ctor public SnoozeCriterion(String, CharSequence, CharSequence);
     ctor protected SnoozeCriterion(android.os.Parcel);
     method public int describeContents();
-    method public java.lang.CharSequence getConfirmation();
-    method public java.lang.CharSequence getExplanation();
-    method public java.lang.String getId();
+    method public CharSequence getConfirmation();
+    method public CharSequence getExplanation();
+    method public String getId();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.notification.SnoozeCriterion> CREATOR;
   }
@@ -5853,11 +5889,11 @@
 package android.service.oemlock {
 
   public class OemLockManager {
-    method public java.lang.String getLockName();
-    method public boolean isOemUnlockAllowedByCarrier();
-    method public boolean isOemUnlockAllowedByUser();
-    method public void setOemUnlockAllowedByCarrier(boolean, byte[]);
-    method public void setOemUnlockAllowedByUser(boolean);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_CARRIER_OEM_UNLOCK_STATE) @Nullable public String getLockName();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_CARRIER_OEM_UNLOCK_STATE) public boolean isOemUnlockAllowedByCarrier();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USER_OEM_UNLOCK_STATE) public boolean isOemUnlockAllowedByUser();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_CARRIER_OEM_UNLOCK_STATE) public void setOemUnlockAllowedByCarrier(boolean, @Nullable byte[]);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_USER_OEM_UNLOCK_STATE) public void setOemUnlockAllowedByUser(boolean);
   }
 
 }
@@ -5865,20 +5901,20 @@
 package android.service.persistentdata {
 
   public class PersistentDataBlockManager {
-    method public int getDataBlockSize();
-    method public int getFlashLockState();
+    method @RequiresPermission("android.permission.ACCESS_PDB_STATE") public int getDataBlockSize();
+    method @RequiresPermission(anyOf={android.Manifest.permission.READ_OEM_UNLOCK_STATE, "android.permission.OEM_UNLOCK_STATE"}) @android.service.persistentdata.PersistentDataBlockManager.FlashLockState public int getFlashLockState();
     method public long getMaximumDataBlockSize();
-    method public deprecated boolean getOemUnlockEnabled();
+    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_OEM_UNLOCK_STATE, "android.permission.OEM_UNLOCK_STATE"}) public boolean getOemUnlockEnabled();
     method public byte[] read();
-    method public deprecated void setOemUnlockEnabled(boolean);
-    method public void wipe();
+    method @Deprecated @RequiresPermission("android.permission.OEM_UNLOCK_STATE") public void setOemUnlockEnabled(boolean);
+    method @RequiresPermission("android.permission.OEM_UNLOCK_STATE") public void wipe();
     method public int write(byte[]);
     field public static final int FLASH_LOCK_LOCKED = 1; // 0x1
     field public static final int FLASH_LOCK_UNKNOWN = -1; // 0xffffffff
     field public static final int FLASH_LOCK_UNLOCKED = 0; // 0x0
   }
 
-  public static abstract class PersistentDataBlockManager.FlashLockState implements java.lang.annotation.Annotation {
+  @IntDef(prefix={"FLASH_LOCK_"}, value={android.service.persistentdata.PersistentDataBlockManager.FLASH_LOCK_UNKNOWN, android.service.persistentdata.PersistentDataBlockManager.FLASH_LOCK_LOCKED, android.service.persistentdata.PersistentDataBlockManager.FLASH_LOCK_UNLOCKED}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PersistentDataBlockManager.FlashLockState {
   }
 
 }
@@ -5886,7 +5922,7 @@
 package android.service.quicksettings {
 
   public class TileService extends android.app.Service {
-    method public final void setStatusIcon(android.graphics.drawable.Icon, java.lang.String);
+    method public final void setStatusIcon(android.graphics.drawable.Icon, String);
   }
 
 }
@@ -5898,9 +5934,9 @@
     method public android.os.IBinder onBind(android.content.Intent);
     method public void onPredictSharingProbabilities(java.util.List<android.service.resolver.ResolverTarget>);
     method public void onTrainRankingModel(java.util.List<android.service.resolver.ResolverTarget>, int);
-    field public static final java.lang.String BIND_PERMISSION = "android.permission.BIND_RESOLVER_RANKER_SERVICE";
-    field public static final java.lang.String HOLD_PERMISSION = "android.permission.PROVIDE_RESOLVER_RANKER_SERVICE";
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.resolver.ResolverRankerService";
+    field public static final String BIND_PERMISSION = "android.permission.BIND_RESOLVER_RANKER_SERVICE";
+    field public static final String HOLD_PERMISSION = "android.permission.PROVIDE_RESOLVER_RANKER_SERVICE";
+    field public static final String SERVICE_INTERFACE = "android.service.resolver.ResolverRankerService";
   }
 
   public final class ResolverTarget implements android.os.Parcelable {
@@ -5928,23 +5964,23 @@
     method public int describeContents();
     method public int getFlags();
     method public android.graphics.drawable.Icon getIcon();
-    method public java.lang.String getId();
+    method public String getId();
     method public android.app.PendingIntent getPendingIntent();
-    method public java.lang.CharSequence getSummary();
-    method public java.lang.CharSequence getTitle();
+    method public CharSequence getSummary();
+    method public CharSequence getTitle();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.settings.suggestions.Suggestion> CREATOR;
     field public static final int FLAG_HAS_BUTTON = 1; // 0x1
   }
 
   public static class Suggestion.Builder {
-    ctor public Suggestion.Builder(java.lang.String);
+    ctor public Suggestion.Builder(String);
     method public android.service.settings.suggestions.Suggestion build();
     method public android.service.settings.suggestions.Suggestion.Builder setFlags(int);
     method public android.service.settings.suggestions.Suggestion.Builder setIcon(android.graphics.drawable.Icon);
     method public android.service.settings.suggestions.Suggestion.Builder setPendingIntent(android.app.PendingIntent);
-    method public android.service.settings.suggestions.Suggestion.Builder setSummary(java.lang.CharSequence);
-    method public android.service.settings.suggestions.Suggestion.Builder setTitle(java.lang.CharSequence);
+    method public android.service.settings.suggestions.Suggestion.Builder setSummary(CharSequence);
+    method public android.service.settings.suggestions.Suggestion.Builder setTitle(CharSequence);
   }
 
   public abstract class SuggestionService extends android.app.Service {
@@ -5961,8 +5997,8 @@
 
   public abstract class FinancialSmsService extends android.app.Service {
     method public android.os.IBinder onBind(android.content.Intent);
-    method public abstract android.database.CursorWindow onGetSmsMessages(android.os.Bundle);
-    field public static final java.lang.String ACTION_FINANCIAL_SERVICE_INTENT = "android.service.sms.action.FINANCIAL_SERVICE_INTENT";
+    method @Nullable public abstract android.database.CursorWindow onGetSmsMessages(@NonNull android.os.Bundle);
+    field public static final String ACTION_FINANCIAL_SERVICE_INTENT = "android.service.sms.action.FINANCIAL_SERVICE_INTENT";
   }
 
 }
@@ -5972,22 +6008,22 @@
   public abstract class TextClassifierService extends android.app.Service {
     ctor public TextClassifierService();
     method public final android.view.textclassifier.TextClassifier getLocalTextClassifier();
-    method public final android.os.IBinder onBind(android.content.Intent);
-    method public abstract void onClassifyText(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.TextClassification.Request, android.os.CancellationSignal, android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextClassification>);
-    method public void onCreateTextClassificationSession(android.view.textclassifier.TextClassificationContext, android.view.textclassifier.TextClassificationSessionId);
-    method public void onDestroyTextClassificationSession(android.view.textclassifier.TextClassificationSessionId);
-    method public void onDetectLanguage(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.TextLanguage.Request, android.os.CancellationSignal, android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextLanguage>);
-    method public abstract void onGenerateLinks(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.TextLinks.Request, android.os.CancellationSignal, android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextLinks>);
-    method public deprecated void onSelectionEvent(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.SelectionEvent);
-    method public void onSuggestConversationActions(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.ConversationActions.Request, android.os.CancellationSignal, android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.ConversationActions>);
-    method public abstract void onSuggestSelection(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.TextSelection.Request, android.os.CancellationSignal, android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextSelection>);
-    method public void onTextClassifierEvent(android.view.textclassifier.TextClassificationSessionId, android.view.textclassifier.TextClassifierEvent);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.textclassifier.TextClassifierService";
+    method @Nullable public final android.os.IBinder onBind(android.content.Intent);
+    method public abstract void onClassifyText(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.TextClassification.Request, @NonNull android.os.CancellationSignal, @NonNull android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextClassification>);
+    method public void onCreateTextClassificationSession(@NonNull android.view.textclassifier.TextClassificationContext, @NonNull android.view.textclassifier.TextClassificationSessionId);
+    method public void onDestroyTextClassificationSession(@NonNull android.view.textclassifier.TextClassificationSessionId);
+    method public void onDetectLanguage(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.TextLanguage.Request, @NonNull android.os.CancellationSignal, @NonNull android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextLanguage>);
+    method public abstract void onGenerateLinks(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.TextLinks.Request, @NonNull android.os.CancellationSignal, @NonNull android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextLinks>);
+    method @Deprecated public void onSelectionEvent(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.SelectionEvent);
+    method public void onSuggestConversationActions(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.ConversationActions.Request, @NonNull android.os.CancellationSignal, @NonNull android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.ConversationActions>);
+    method public abstract void onSuggestSelection(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.TextSelection.Request, @NonNull android.os.CancellationSignal, @NonNull android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextSelection>);
+    method public void onTextClassifierEvent(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.TextClassifierEvent);
+    field public static final String SERVICE_INTERFACE = "android.service.textclassifier.TextClassifierService";
   }
 
-  public static abstract interface TextClassifierService.Callback<T> {
-    method public abstract void onFailure(java.lang.CharSequence);
-    method public abstract void onSuccess(T);
+  public static interface TextClassifierService.Callback<T> {
+    method public void onFailure(CharSequence);
+    method public void onSuccess(T);
   }
 
 }
@@ -5997,8 +6033,8 @@
   public class TrustAgentService extends android.app.Service {
     ctor public TrustAgentService();
     method public final void addEscrowToken(byte[], android.os.UserHandle);
-    method public final deprecated void grantTrust(java.lang.CharSequence, long, boolean);
-    method public final void grantTrust(java.lang.CharSequence, long, int);
+    method @Deprecated public final void grantTrust(CharSequence, long, boolean);
+    method public final void grantTrust(CharSequence, long, int);
     method public final void isEscrowTokenActive(long, android.os.UserHandle);
     method public final android.os.IBinder onBind(android.content.Intent);
     method public boolean onConfigure(java.util.List<android.os.PersistableBundle>);
@@ -6013,14 +6049,14 @@
     method public final void removeEscrowToken(long, android.os.UserHandle);
     method public final void revokeTrust();
     method public final void setManagingTrust(boolean);
-    method public final void showKeyguardErrorMessage(java.lang.CharSequence);
+    method public final void showKeyguardErrorMessage(@NonNull CharSequence);
     method public final void unlockUserWithToken(long, byte[], android.os.UserHandle);
     field public static final int FLAG_GRANT_TRUST_DISMISS_KEYGUARD = 2; // 0x2
     field public static final int FLAG_GRANT_TRUST_INITIATED_BY_USER = 1; // 0x1
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.trust.TrustAgentService";
+    field public static final String SERVICE_INTERFACE = "android.service.trust.TrustAgentService";
     field public static final int TOKEN_STATE_ACTIVE = 1; // 0x1
     field public static final int TOKEN_STATE_INACTIVE = 0; // 0x0
-    field public static final java.lang.String TRUST_AGENT_META_DATA = "android.service.trust.trustagent";
+    field public static final String TRUST_AGENT_META_DATA = "android.service.trust.trustagent";
   }
 
 }
@@ -6036,55 +6072,55 @@
 
 package android.telecom {
 
-  public deprecated class AudioState implements android.os.Parcelable {
-    ctor public AudioState(boolean, int, int);
-    ctor public AudioState(android.telecom.AudioState);
-    ctor public AudioState(android.telecom.CallAudioState);
-    method public static java.lang.String audioRouteToString(int);
-    method public int describeContents();
-    method public int getRoute();
-    method public int getSupportedRouteMask();
-    method public boolean isMuted();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.telecom.AudioState> CREATOR;
-    field public static final int ROUTE_BLUETOOTH = 2; // 0x2
-    field public static final int ROUTE_EARPIECE = 1; // 0x1
-    field public static final int ROUTE_SPEAKER = 8; // 0x8
-    field public static final int ROUTE_WIRED_HEADSET = 4; // 0x4
-    field public static final int ROUTE_WIRED_OR_EARPIECE = 5; // 0x5
+  @Deprecated public class AudioState implements android.os.Parcelable {
+    ctor @Deprecated public AudioState(boolean, int, int);
+    ctor @Deprecated public AudioState(android.telecom.AudioState);
+    ctor @Deprecated public AudioState(android.telecom.CallAudioState);
+    method @Deprecated public static String audioRouteToString(int);
+    method @Deprecated public int describeContents();
+    method @Deprecated public int getRoute();
+    method @Deprecated public int getSupportedRouteMask();
+    method @Deprecated public boolean isMuted();
+    method @Deprecated public void writeToParcel(android.os.Parcel, int);
+    field @Deprecated public static final android.os.Parcelable.Creator<android.telecom.AudioState> CREATOR;
+    field @Deprecated public static final int ROUTE_BLUETOOTH = 2; // 0x2
+    field @Deprecated public static final int ROUTE_EARPIECE = 1; // 0x1
+    field @Deprecated public static final int ROUTE_SPEAKER = 8; // 0x8
+    field @Deprecated public static final int ROUTE_WIRED_HEADSET = 4; // 0x4
+    field @Deprecated public static final int ROUTE_WIRED_OR_EARPIECE = 5; // 0x5
   }
 
   public final class Call {
-    method public deprecated void addListener(android.telecom.Call.Listener);
-    method public deprecated void removeListener(android.telecom.Call.Listener);
-    field public static final deprecated int STATE_PRE_DIAL_WAIT = 8; // 0x8
+    method @Deprecated public void addListener(android.telecom.Call.Listener);
+    method @Deprecated public void removeListener(android.telecom.Call.Listener);
+    field @Deprecated public static final int STATE_PRE_DIAL_WAIT = 8; // 0x8
   }
 
-  public static abstract deprecated class Call.Listener extends android.telecom.Call.Callback {
-    ctor public Call.Listener();
+  @Deprecated public abstract static class Call.Listener extends android.telecom.Call.Callback {
+    ctor @Deprecated public Call.Listener();
   }
 
   public abstract class Conference extends android.telecom.Conferenceable {
-    method public final deprecated android.telecom.AudioState getAudioState();
-    method public final deprecated long getConnectTimeMillis();
+    method @Deprecated public final android.telecom.AudioState getAudioState();
+    method @Deprecated public final long getConnectTimeMillis();
     method public android.telecom.Connection getPrimaryConnection();
-    method public deprecated void onAudioStateChanged(android.telecom.AudioState);
-    method public final deprecated void setConnectTimeMillis(long);
+    method @Deprecated public void onAudioStateChanged(android.telecom.AudioState);
+    method @Deprecated public final void setConnectTimeMillis(long);
   }
 
   public abstract class Connection extends android.telecom.Conferenceable {
-    method public final deprecated android.telecom.AudioState getAudioState();
-    method public deprecated void onAudioStateChanged(android.telecom.AudioState);
+    method @Deprecated public final android.telecom.AudioState getAudioState();
+    method @Deprecated public void onAudioStateChanged(android.telecom.AudioState);
   }
 
   public abstract class InCallService extends android.app.Service {
-    method public deprecated android.telecom.Phone getPhone();
-    method public deprecated void onPhoneCreated(android.telecom.Phone);
-    method public deprecated void onPhoneDestroyed(android.telecom.Phone);
+    method @Deprecated public android.telecom.Phone getPhone();
+    method @Deprecated public void onPhoneCreated(android.telecom.Phone);
+    method @Deprecated public void onPhoneDestroyed(android.telecom.Phone);
   }
 
   public class ParcelableCallAnalytics implements android.os.Parcelable {
-    ctor public ParcelableCallAnalytics(long, long, int, boolean, boolean, int, int, boolean, java.lang.String, boolean, java.util.List<android.telecom.ParcelableCallAnalytics.AnalyticsEvent>, java.util.List<android.telecom.ParcelableCallAnalytics.EventTiming>);
+    ctor public ParcelableCallAnalytics(long, long, int, boolean, boolean, int, int, boolean, String, boolean, java.util.List<android.telecom.ParcelableCallAnalytics.AnalyticsEvent>, java.util.List<android.telecom.ParcelableCallAnalytics.EventTiming>);
     ctor public ParcelableCallAnalytics(android.os.Parcel);
     method public java.util.List<android.telecom.ParcelableCallAnalytics.AnalyticsEvent> analyticsEvents();
     method public int describeContents();
@@ -6092,7 +6128,7 @@
     method public int getCallTechnologies();
     method public int getCallTerminationCode();
     method public int getCallType();
-    method public java.lang.String getConnectionService();
+    method public String getConnectionService();
     method public java.util.List<android.telecom.ParcelableCallAnalytics.EventTiming> getEventTimings();
     method public long getStartTimeMillis();
     method public boolean isAdditionalCall();
@@ -6181,27 +6217,27 @@
     field public static final int UNHOLD_TIMING = 4; // 0x4
   }
 
-  public final deprecated class Phone {
-    method public void addListener(android.telecom.Phone.Listener);
-    method public boolean canAddCall();
-    method public deprecated android.telecom.AudioState getAudioState();
-    method public android.telecom.CallAudioState getCallAudioState();
-    method public java.util.List<android.telecom.Call> getCalls();
-    method public void removeListener(android.telecom.Phone.Listener);
-    method public void requestBluetoothAudio(java.lang.String);
-    method public void setAudioRoute(int);
-    method public void setMuted(boolean);
+  @Deprecated public final class Phone {
+    method @Deprecated public void addListener(android.telecom.Phone.Listener);
+    method @Deprecated public boolean canAddCall();
+    method @Deprecated public android.telecom.AudioState getAudioState();
+    method @Deprecated public android.telecom.CallAudioState getCallAudioState();
+    method @Deprecated public java.util.List<android.telecom.Call> getCalls();
+    method @Deprecated public void removeListener(android.telecom.Phone.Listener);
+    method @Deprecated public void requestBluetoothAudio(String);
+    method @Deprecated public void setAudioRoute(int);
+    method @Deprecated public void setMuted(boolean);
   }
 
-  public static abstract class Phone.Listener {
-    ctor public Phone.Listener();
-    method public deprecated void onAudioStateChanged(android.telecom.Phone, android.telecom.AudioState);
-    method public void onBringToForeground(android.telecom.Phone, boolean);
-    method public void onCallAdded(android.telecom.Phone, android.telecom.Call);
-    method public void onCallAudioStateChanged(android.telecom.Phone, android.telecom.CallAudioState);
-    method public void onCallRemoved(android.telecom.Phone, android.telecom.Call);
-    method public void onCanAddCallChanged(android.telecom.Phone, boolean);
-    method public void onSilenceRinger(android.telecom.Phone);
+  @Deprecated public abstract static class Phone.Listener {
+    ctor @Deprecated public Phone.Listener();
+    method @Deprecated public void onAudioStateChanged(android.telecom.Phone, android.telecom.AudioState);
+    method @Deprecated public void onBringToForeground(android.telecom.Phone, boolean);
+    method @Deprecated public void onCallAdded(android.telecom.Phone, android.telecom.Call);
+    method @Deprecated public void onCallAudioStateChanged(android.telecom.Phone, android.telecom.CallAudioState);
+    method @Deprecated public void onCallRemoved(android.telecom.Phone, android.telecom.Call);
+    method @Deprecated public void onCanAddCallChanged(android.telecom.Phone, boolean);
+    method @Deprecated public void onSilenceRinger(android.telecom.Phone);
   }
 
   public final class PhoneAccount implements android.os.Parcelable {
@@ -6214,25 +6250,25 @@
 
   public class PhoneAccountSuggestionService extends android.app.Service {
     ctor public PhoneAccountSuggestionService();
-    method public void onAccountSuggestionRequest(java.lang.String);
+    method public void onAccountSuggestionRequest(@NonNull String);
     method public android.os.IBinder onBind(android.content.Intent);
-    method public final void suggestPhoneAccounts(java.lang.String, java.util.List<android.telecom.PhoneAccountSuggestion>);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.PhoneAccountSuggestionService";
+    method public final void suggestPhoneAccounts(@NonNull String, @NonNull java.util.List<android.telecom.PhoneAccountSuggestion>);
+    field public static final String SERVICE_INTERFACE = "android.telecom.PhoneAccountSuggestionService";
   }
 
   public final class RemoteConference {
-    method public deprecated void setAudioState(android.telecom.AudioState);
+    method @Deprecated public void setAudioState(android.telecom.AudioState);
   }
 
   public final class RemoteConnection {
-    method public deprecated void setAudioState(android.telecom.AudioState);
+    method @Deprecated public void setAudioState(android.telecom.AudioState);
   }
 
   public final class StatusHints implements android.os.Parcelable {
-    ctor public deprecated StatusHints(android.content.ComponentName, java.lang.CharSequence, int, android.os.Bundle);
-    method public deprecated android.graphics.drawable.Drawable getIcon(android.content.Context);
-    method public deprecated int getIconResId();
-    method public deprecated android.content.ComponentName getPackageName();
+    ctor @Deprecated public StatusHints(android.content.ComponentName, CharSequence, int, android.os.Bundle);
+    method @Deprecated public android.graphics.drawable.Drawable getIcon(android.content.Context);
+    method @Deprecated public int getIconResId();
+    method @Deprecated public android.content.ComponentName getPackageName();
   }
 
   public final class TelecomAnalytics implements android.os.Parcelable {
@@ -6247,7 +6283,7 @@
   public static final class TelecomAnalytics.SessionTiming implements android.os.Parcelable {
     ctor public TelecomAnalytics.SessionTiming(int, long);
     method public int describeContents();
-    method public java.lang.Integer getKey();
+    method public Integer getKey();
     method public long getTime();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telecom.TelecomAnalytics.SessionTiming> CREATOR;
@@ -6272,25 +6308,25 @@
 
   public class TelecomManager {
     method public void addNewUnknownCall(android.telecom.PhoneAccountHandle, android.os.Bundle);
-    method public deprecated void clearAccounts();
+    method @Deprecated public void clearAccounts();
     method public void clearPhoneAccounts();
-    method public android.telecom.TelecomAnalytics dumpAnalytics();
-    method public void enablePhoneAccount(android.telecom.PhoneAccountHandle, boolean);
+    method @RequiresPermission(android.Manifest.permission.DUMP) public android.telecom.TelecomAnalytics dumpAnalytics();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void enablePhoneAccount(android.telecom.PhoneAccountHandle, boolean);
     method public java.util.List<android.telecom.PhoneAccountHandle> getAllPhoneAccountHandles();
     method public java.util.List<android.telecom.PhoneAccount> getAllPhoneAccounts();
     method public int getAllPhoneAccountsCount();
     method public int getCallState();
     method public android.telecom.PhoneAccountHandle getConnectionManager();
-    method public int getCurrentTtyMode();
-    method public deprecated android.content.ComponentName getDefaultPhoneApp();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getCurrentTtyMode();
+    method @Deprecated public android.content.ComponentName getDefaultPhoneApp();
     method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage();
-    method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(java.lang.String);
-    method public boolean isInEmergencyCall();
-    method public boolean isRinging();
-    method public deprecated boolean setDefaultDialer(java.lang.String);
-    field public static final java.lang.String EXTRA_CALL_BACK_INTENT = "android.telecom.extra.CALL_BACK_INTENT";
-    field public static final java.lang.String EXTRA_CLEAR_MISSED_CALLS_INTENT = "android.telecom.extra.CLEAR_MISSED_CALLS_INTENT";
-    field public static final java.lang.String EXTRA_CONNECTION_SERVICE = "android.telecom.extra.CONNECTION_SERVICE";
+    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);
+    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";
     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
@@ -6341,17 +6377,17 @@
   }
 
   public class CarrierConfigManager {
-    method public static android.os.PersistableBundle getDefaultConfig();
-    method public void overrideConfig(int, android.os.PersistableBundle);
-    method public void updateConfigForPhoneId(int, java.lang.String);
-    field public static final java.lang.String KEY_CARRIER_SETUP_APP_STRING = "carrier_setup_app_string";
+    method @NonNull public static android.os.PersistableBundle getDefaultConfig();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void overrideConfig(int, @Nullable android.os.PersistableBundle);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void updateConfigForPhoneId(int, String);
+    field public static final String KEY_CARRIER_SETUP_APP_STRING = "carrier_setup_app_string";
   }
 
   public final class CarrierRestrictionRules implements android.os.Parcelable {
     method public int describeContents();
-    method public java.util.List<android.service.carrier.CarrierIdentifier> getAllowedCarriers();
+    method @NonNull public java.util.List<android.service.carrier.CarrierIdentifier> getAllowedCarriers();
     method public int getDefaultCarrierRestriction();
-    method public java.util.List<android.service.carrier.CarrierIdentifier> getExcludedCarriers();
+    method @NonNull public java.util.List<android.service.carrier.CarrierIdentifier> getExcludedCarriers();
     method public int getMultiSimPolicy();
     method public boolean isAllCarriersAllowed();
     method public void writeToParcel(android.os.Parcel, int);
@@ -6542,19 +6578,19 @@
   }
 
   public class MbmsDownloadSession implements java.lang.AutoCloseable {
-    field public static final java.lang.String MBMS_DOWNLOAD_SERVICE_ACTION = "android.telephony.action.EmbmsDownload";
+    field public static final String MBMS_DOWNLOAD_SERVICE_ACTION = "android.telephony.action.EmbmsDownload";
   }
 
   public class MbmsGroupCallSession implements java.lang.AutoCloseable {
-    field public static final java.lang.String MBMS_GROUP_CALL_SERVICE_ACTION = "android.telephony.action.EmbmsGroupCall";
+    field public static final String MBMS_GROUP_CALL_SERVICE_ACTION = "android.telephony.action.EmbmsGroupCall";
   }
 
   public class MbmsStreamingSession implements java.lang.AutoCloseable {
-    field public static final java.lang.String MBMS_STREAMING_SERVICE_ACTION = "android.telephony.action.EmbmsStreaming";
+    field public static final String MBMS_STREAMING_SERVICE_ACTION = "android.telephony.action.EmbmsStreaming";
   }
 
   public class NetworkRegistrationState implements android.os.Parcelable {
-    ctor public NetworkRegistrationState(int, int, int, int, int, boolean, int[], android.telephony.CellIdentity);
+    ctor public NetworkRegistrationState(int, int, int, int, int, boolean, int[], @Nullable android.telephony.CellIdentity);
     ctor protected NetworkRegistrationState(android.os.Parcel);
     method public int describeContents();
     method public int getAccessNetworkTechnology();
@@ -6587,7 +6623,7 @@
   public abstract class NetworkService extends android.app.Service {
     ctor public NetworkService();
     method protected abstract android.telephony.NetworkService.NetworkServiceProvider createNetworkServiceProvider(int);
-    field public static final java.lang.String NETWORK_SERVICE_INTERFACE = "android.telephony.NetworkService";
+    field public static final String NETWORK_SERVICE_INTERFACE = "android.telephony.NetworkService";
   }
 
   public abstract class NetworkService.NetworkServiceProvider implements java.lang.AutoCloseable {
@@ -6608,8 +6644,8 @@
     field public static final int RESULT_SUCCESS = 0; // 0x0
   }
 
-  public abstract interface NumberVerificationCallback {
-    method public default void onCallReceived(java.lang.String);
+  public interface NumberVerificationCallback {
+    method public default void onCallReceived(@NonNull String);
     method public default void onVerificationFailed(int);
     field public static final int REASON_CONCURRENT_REQUESTS = 4; // 0x4
     field public static final int REASON_IN_ECBM = 5; // 0x5
@@ -6621,9 +6657,9 @@
   }
 
   public final class PhoneNumberRange implements android.os.Parcelable {
-    ctor public PhoneNumberRange(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+    ctor public PhoneNumberRange(@NonNull String, @NonNull String, @NonNull String, @NonNull String);
     method public int describeContents();
-    method public boolean matches(java.lang.String);
+    method public boolean matches(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.PhoneNumberRange> CREATOR;
   }
@@ -6641,7 +6677,7 @@
     field public static final int LISTEN_PRECISE_CALL_STATE = 2048; // 0x800
     field public static final int LISTEN_PRECISE_DATA_CONNECTION_STATE = 4096; // 0x1000
     field public static final int LISTEN_RADIO_POWER_STATE_CHANGED = 8388608; // 0x800000
-    field public static final int LISTEN_SRVCC_STATE_CHANGED = 16384; // 0x4000
+    field @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public static final int LISTEN_SRVCC_STATE_CHANGED = 16384; // 0x4000
     field public static final int LISTEN_VOICE_ACTIVATION_STATE = 131072; // 0x20000
   }
 
@@ -6666,7 +6702,7 @@
 
   public final class PreciseDataConnectionState implements android.os.Parcelable {
     method public int describeContents();
-    method public java.lang.String getDataConnectionApn();
+    method public String getDataConnectionApn();
     method public int getDataConnectionApnTypeBitMask();
     method public int getDataConnectionFailCause();
     method public int getDataConnectionState();
@@ -6774,8 +6810,8 @@
   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 public deprecated java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates(int);
-    method public deprecated android.telephony.NetworkRegistrationState getNetworkRegistrationStates(int, int);
+    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);
     field public static final int ROAMING_TYPE_DOMESTIC = 2; // 0x2
@@ -6785,7 +6821,7 @@
   }
 
   public final class SmsManager {
-    method public void sendMultipartTextMessageWithoutPersisting(java.lang.String, java.lang.String, java.util.List<java.lang.String>, java.util.List<android.app.PendingIntent>, java.util.List<android.app.PendingIntent>);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void sendMultipartTextMessageWithoutPersisting(String, String, java.util.List<java.lang.String>, java.util.List<android.app.PendingIntent>, java.util.List<android.app.PendingIntent>);
     field public static final int RESULT_CANCELLED = 23; // 0x17
     field public static final int RESULT_ENCODING_ERROR = 18; // 0x12
     field public static final int RESULT_ERROR_FDN_CHECK_FAILURE = 6; // 0x6
@@ -6807,7 +6843,7 @@
   }
 
   public class SubscriptionInfo implements android.os.Parcelable {
-    method public java.util.List<android.telephony.UiccAccessRule> getAccessRules();
+    method @Nullable public java.util.List<android.telephony.UiccAccessRule> getAccessRules();
     method public int getCardId();
     method public int getProfileClass();
   }
@@ -6816,8 +6852,8 @@
     method public java.util.List<android.telephony.SubscriptionInfo> getAvailableSubscriptionInfoList();
     method public void requestEmbeddedSubscriptionInfoListRefresh();
     method public void requestEmbeddedSubscriptionInfoListRefresh(int);
-    method public void setDefaultDataSubId(int);
-    method public void setDefaultSmsSubId(int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultDataSubId(int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultSmsSubId(int);
     field 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
@@ -6832,9 +6868,9 @@
   }
 
   public static class SubscriptionPlan.Builder {
-    method public static deprecated android.telephony.SubscriptionPlan.Builder createRecurringDaily(java.time.ZonedDateTime);
-    method public static deprecated android.telephony.SubscriptionPlan.Builder createRecurringMonthly(java.time.ZonedDateTime);
-    method public static deprecated android.telephony.SubscriptionPlan.Builder createRecurringWeekly(java.time.ZonedDateTime);
+    method @Deprecated public static android.telephony.SubscriptionPlan.Builder createRecurringDaily(java.time.ZonedDateTime);
+    method @Deprecated public static android.telephony.SubscriptionPlan.Builder createRecurringMonthly(java.time.ZonedDateTime);
+    method @Deprecated public static android.telephony.SubscriptionPlan.Builder createRecurringWeekly(java.time.ZonedDateTime);
   }
 
   public final class TelephonyHistogram implements android.os.Parcelable {
@@ -6858,87 +6894,88 @@
   }
 
   public class TelephonyManager {
-    method public deprecated void call(java.lang.String, java.lang.String);
-    method public int checkCarrierPrivilegesForPackage(java.lang.String);
-    method public int checkCarrierPrivilegesForPackageAnyPhone(java.lang.String);
-    method public void dial(java.lang.String);
-    method public boolean disableDataConnectivity();
-    method public boolean enableDataConnectivity();
-    method public void enableVideoCalling(boolean);
-    method public java.lang.String getAidForAppType(int);
-    method public deprecated java.util.List<android.service.carrier.CarrierIdentifier> getAllowedCarriers(int);
-    method public int getCardIdForDefaultEuicc();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.CALL_PHONE) public void call(String, String);
+    method public int checkCarrierPrivilegesForPackage(String);
+    method public int checkCarrierPrivilegesForPackageAnyPhone(String);
+    method public void dial(String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean disableDataConnectivity();
+    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 @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List<android.service.carrier.CarrierIdentifier> getAllowedCarriers(int);
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getCardIdForDefaultEuicc();
     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);
-    method public android.telephony.CarrierRestrictionRules getCarrierRestrictionRules();
-    method public java.lang.String getCdmaMdn();
-    method public java.lang.String getCdmaMdn(int);
-    method public java.lang.String getCdmaMin();
-    method public java.lang.String getCdmaMin(int);
-    method public java.lang.String getCdmaPrlVersion();
+    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.CarrierRestrictionRules getCarrierRestrictionRules();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public String getCdmaMdn();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public String getCdmaMdn(int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public String getCdmaMin();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public String getCdmaMin(int);
+    method public String getCdmaPrlVersion();
     method public int getCurrentPhoneType();
     method public int getCurrentPhoneType(int);
-    method public int getDataActivationState();
-    method public deprecated boolean getDataEnabled();
-    method public deprecated boolean getDataEnabled(int);
-    method public boolean getEmergencyCallbackMode();
-    method public java.lang.String getIsimDomain();
-    method public java.lang.String getIsimIst();
-    method public int getPreferredNetworkTypeBitmap();
-    method public int getRadioPowerState();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getDataActivationState();
+    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 @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getPreferredNetworkTypeBitmap();
+    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public int getRadioPowerState();
     method public int getSimApplicationState();
     method public int getSimCardState();
-    method public int getSupportedRadioAccessFamily();
-    method public java.util.List<android.telephony.TelephonyHistogram> getTelephonyHistograms();
-    method public android.telephony.UiccCardInfo[] getUiccCardsInfo();
-    method public android.telephony.UiccSlotInfo[] getUiccSlotsInfo();
-    method public android.os.Bundle getVisualVoicemailSettings();
-    method public int getVoiceActivationState();
-    method public boolean handlePinMmi(java.lang.String);
-    method public boolean handlePinMmiForSubscriber(int, java.lang.String);
-    method public boolean isCurrentPotentialEmergencyNumber(java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getSupportedRadioAccessFamily();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public java.util.List<android.telephony.TelephonyHistogram> getTelephonyHistograms();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.UiccCardInfo[] getUiccCardsInfo();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.UiccSlotInfo[] getUiccSlotsInfo();
+    method @Nullable public android.os.Bundle getVisualVoicemailSettings();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getVoiceActivationState();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean handlePinMmi(String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean handlePinMmiForSubscriber(int, String);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isCurrentPotentialEmergencyNumber(@NonNull String);
     method public boolean isDataConnectivityPossible();
-    method public deprecated boolean isIdle();
-    method public deprecated boolean isOffhook();
-    method public deprecated boolean isRadioOn();
-    method public deprecated boolean isRinging();
-    method public boolean isVideoCallingEnabled();
-    method public deprecated boolean isVisualVoicemailEnabled(android.telecom.PhoneAccountHandle);
+    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle();
+    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook();
+    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRadioOn();
+    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging();
+    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isVideoCallingEnabled();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isVisualVoicemailEnabled(android.telecom.PhoneAccountHandle);
     method public boolean needsOtaServiceProvisioning();
-    method public boolean rebootRadio();
-    method public void requestCellInfoUpdate(android.os.WorkSource, java.util.concurrent.Executor, android.telephony.TelephonyManager.CellInfoCallback);
-    method public void requestNumberVerification(android.telephony.PhoneNumberRange, long, java.util.concurrent.Executor, android.telephony.NumberVerificationCallback);
-    method public boolean resetRadioConfig();
-    method public deprecated int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>);
-    method public void setCarrierDataEnabled(boolean);
-    method public int setCarrierRestrictionRules(android.telephony.CarrierRestrictionRules);
-    method public void setDataActivationState(int);
-    method public deprecated void setDataEnabled(int, boolean);
-    method public void setDataRoamingEnabled(boolean);
-    method public boolean setPreferredNetworkTypeBitmap(int);
-    method public boolean setRadio(boolean);
-    method public boolean setRadioPower(boolean);
-    method public void setSimPowerState(int);
-    method public void setSimPowerStateForSlot(int, int);
-    method public deprecated void setVisualVoicemailEnabled(android.telecom.PhoneAccountHandle, boolean);
-    method public void setVoiceActivationState(int);
-    method public boolean supplyPin(java.lang.String);
-    method public int[] supplyPinReportResult(java.lang.String);
-    method public boolean supplyPuk(java.lang.String, java.lang.String);
-    method public int[] supplyPukReportResult(java.lang.String, java.lang.String);
-    method public boolean switchSlots(int[]);
-    method public void toggleRadioOnOff();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean rebootRadio();
+    method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.MODIFY_PHONE_STATE}) public void requestCellInfoUpdate(@NonNull android.os.WorkSource, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CellInfoCallback);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void requestNumberVerification(@NonNull android.telephony.PhoneNumberRange, long, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.NumberVerificationCallback);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean resetRadioConfig();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setCarrierRestrictionRules(@NonNull android.telephony.CarrierRestrictionRules);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataActivationState(int);
+    method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabled(int, boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setPreferredNetworkTypeBitmap(int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadio(boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadioPower(boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerState(int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerStateForSlot(int, int);
+    method @Deprecated public void setVisualVoicemailEnabled(android.telecom.PhoneAccountHandle, boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoiceActivationState(int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean supplyPin(String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPinReportResult(String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean supplyPuk(String, String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPukReportResult(String, String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean switchSlots(int[]);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void toggleRadioOnOff();
     method public void updateServiceLocation();
-    field public static final java.lang.String ACTION_SIM_APPLICATION_STATE_CHANGED = "android.telephony.action.SIM_APPLICATION_STATE_CHANGED";
-    field public static final java.lang.String ACTION_SIM_CARD_STATE_CHANGED = "android.telephony.action.SIM_CARD_STATE_CHANGED";
-    field public static final java.lang.String ACTION_SIM_SLOT_STATUS_CHANGED = "android.telephony.action.SIM_SLOT_STATUS_CHANGED";
+    field public static final String ACTION_SIM_APPLICATION_STATE_CHANGED = "android.telephony.action.SIM_APPLICATION_STATE_CHANGED";
+    field public static final String ACTION_SIM_CARD_STATE_CHANGED = "android.telephony.action.SIM_CARD_STATE_CHANGED";
+    field public static final String ACTION_SIM_SLOT_STATUS_CHANGED = "android.telephony.action.SIM_SLOT_STATUS_CHANGED";
     field public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; // 0xfffffffe
     field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
     field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0
     field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff
-    field public static final java.lang.String EXTRA_SIM_STATE = "android.telephony.extra.SIM_STATE";
-    field public static final java.lang.String EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL = "android.telephony.extra.VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL";
-    field public static final java.lang.String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";
+    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 int INVALID_CARD_ID = -1; // 0xffffffff
     field public static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000L; // 0xea60L
     field public static final int NETWORK_TYPE_BITMASK_1xRTT = 128; // 0x80
@@ -6981,22 +7018,22 @@
   }
 
   public final class UiccAccessRule implements android.os.Parcelable {
-    ctor public UiccAccessRule(byte[], java.lang.String, long);
+    ctor public UiccAccessRule(byte[], @Nullable String, long);
     method public int describeContents();
     method public int getCarrierPrivilegeStatus(android.content.pm.PackageInfo);
-    method public int getCarrierPrivilegeStatus(android.content.pm.Signature, java.lang.String);
-    method public java.lang.String getCertificateHexString();
-    method public java.lang.String getPackageName();
+    method public int getCarrierPrivilegeStatus(android.content.pm.Signature, String);
+    method public String getCertificateHexString();
+    method @Nullable public String getPackageName();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.UiccAccessRule> CREATOR;
   }
 
   public class UiccCardInfo implements android.os.Parcelable {
-    ctor public UiccCardInfo(boolean, int, java.lang.String, java.lang.String, int);
+    ctor public UiccCardInfo(boolean, int, String, String, int);
     method public int describeContents();
     method public int getCardId();
-    method public java.lang.String getEid();
-    method public java.lang.String getIccId();
+    method public String getEid();
+    method public String getIccId();
     method public int getSlotIndex();
     method public boolean isEuicc();
     method public void writeToParcel(android.os.Parcel, int);
@@ -7004,9 +7041,9 @@
   }
 
   public class UiccSlotInfo implements android.os.Parcelable {
-    ctor public UiccSlotInfo(boolean, boolean, java.lang.String, int, int, boolean);
+    ctor public UiccSlotInfo(boolean, boolean, String, int, int, boolean);
     method public int describeContents();
-    method public java.lang.String getCardId();
+    method public String getCardId();
     method public int getCardStateInfo();
     method public boolean getIsActive();
     method public boolean getIsEuicc();
@@ -7021,7 +7058,7 @@
   }
 
   public abstract class VisualVoicemailService extends android.app.Service {
-    method public static final void sendVisualVoicemailSms(android.content.Context, android.telecom.PhoneAccountHandle, java.lang.String, short, java.lang.String, android.app.PendingIntent);
+    method public static final void sendVisualVoicemailSms(android.content.Context, android.telecom.PhoneAccountHandle, String, short, String, android.app.PendingIntent);
     method public static final void setSmsFilterSettings(android.content.Context, android.telecom.PhoneAccountHandle, android.telephony.VisualVoicemailSmsFilterSettings);
   }
 
@@ -7030,38 +7067,38 @@
 package android.telephony.data {
 
   public final class DataCallResponse implements android.os.Parcelable {
-    ctor public DataCallResponse(int, int, int, int, java.lang.String, java.lang.String, java.util.List<android.net.LinkAddress>, java.util.List<java.net.InetAddress>, java.util.List<java.net.InetAddress>, java.util.List<java.lang.String>, int);
+    ctor public DataCallResponse(int, int, int, int, @Nullable String, @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 public java.util.List<android.net.LinkAddress> getAddresses();
+    method @NonNull public java.util.List<android.net.LinkAddress> getAddresses();
     method public int getCallId();
-    method public java.util.List<java.net.InetAddress> getDnses();
-    method public java.util.List<java.net.InetAddress> getGateways();
-    method public java.lang.String getIfname();
+    method @NonNull public java.util.List<java.net.InetAddress> getDnses();
+    method @NonNull public java.util.List<java.net.InetAddress> getGateways();
+    method @NonNull public String getIfname();
     method public int getMtu();
-    method public java.util.List<java.lang.String> getPcscfs();
+    method @NonNull public java.util.List<java.lang.String> getPcscfs();
     method public int getStatus();
     method public int getSuggestedRetryTime();
-    method public java.lang.String getType();
+    method @NonNull public String getType();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
   }
 
   public final class DataProfile implements android.os.Parcelable {
-    method public java.lang.String getApn();
+    method public String getApn();
     method public int getAuthType();
     method public int getBearerBitmap();
     method public int getMaxConns();
     method public int getMaxConnsTime();
     method public int getMtu();
-    method public java.lang.String getPassword();
+    method public String getPassword();
     method public int getProfileId();
-    method public java.lang.String getProtocol();
-    method public java.lang.String getRoamingProtocol();
+    method public String getProtocol();
+    method public String getRoamingProtocol();
     method public int getSupportedApnTypesBitmap();
     method public int getType();
-    method public java.lang.String getUserName();
+    method public String getUserName();
     method public int getWaitTime();
     method public boolean isEnabled();
     method public boolean isPersistent();
@@ -7074,7 +7111,7 @@
   public abstract class DataService extends android.app.Service {
     ctor public DataService();
     method public abstract android.telephony.data.DataService.DataServiceProvider createDataServiceProvider(int);
-    field public static final java.lang.String DATA_SERVICE_INTERFACE = "android.telephony.data.DataService";
+    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
     field public static final int REQUEST_REASON_SHUTDOWN = 2; // 0x2
@@ -7083,13 +7120,13 @@
   public abstract class DataService.DataServiceProvider implements java.lang.AutoCloseable {
     ctor public DataService.DataServiceProvider(int);
     method public abstract void close();
-    method public void deactivateDataCall(int, int, android.telephony.data.DataServiceCallback);
-    method public void getDataCallList(android.telephony.data.DataServiceCallback);
+    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 void notifyDataCallListChanged(java.util.List<android.telephony.data.DataCallResponse>);
-    method public void setDataProfile(java.util.List<android.telephony.data.DataProfile>, boolean, android.telephony.data.DataServiceCallback);
-    method public void setInitialAttachApn(android.telephony.data.DataProfile, boolean, android.telephony.data.DataServiceCallback);
-    method public void setupDataCall(int, android.telephony.data.DataProfile, boolean, boolean, int, android.net.LinkProperties, android.telephony.data.DataServiceCallback);
+    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);
   }
 
   public class DataServiceCallback {
@@ -7109,7 +7146,7 @@
   public abstract class QualifiedNetworksService extends android.app.Service {
     ctor public QualifiedNetworksService();
     method public abstract android.telephony.data.QualifiedNetworksService.NetworkAvailabilityUpdater createNetworkAvailabilityUpdater(int);
-    field public static final java.lang.String QUALIFIED_NETWORKS_SERVICE_INTERFACE = "android.telephony.data.QualifiedNetworksService";
+    field public static final String QUALIFIED_NETWORKS_SERVICE_INTERFACE = "android.telephony.data.QualifiedNetworksService";
   }
 
   public abstract class QualifiedNetworksService.NetworkAvailabilityUpdater implements java.lang.AutoCloseable {
@@ -7125,7 +7162,7 @@
 
   public final class DownloadableSubscription implements android.os.Parcelable {
     method public java.util.List<android.telephony.UiccAccessRule> getAccessRules();
-    method public java.lang.String getCarrierName();
+    method @Nullable public String getCarrierName();
   }
 
   public static final class DownloadableSubscription.Builder {
@@ -7133,34 +7170,34 @@
     ctor public DownloadableSubscription.Builder(android.telephony.euicc.DownloadableSubscription);
     method public android.telephony.euicc.DownloadableSubscription build();
     method public android.telephony.euicc.DownloadableSubscription.Builder setAccessRules(java.util.List<android.telephony.UiccAccessRule>);
-    method public android.telephony.euicc.DownloadableSubscription.Builder setCarrierName(java.lang.String);
-    method public android.telephony.euicc.DownloadableSubscription.Builder setConfirmationCode(java.lang.String);
-    method public android.telephony.euicc.DownloadableSubscription.Builder setEncodedActivationCode(java.lang.String);
+    method public android.telephony.euicc.DownloadableSubscription.Builder setCarrierName(String);
+    method public android.telephony.euicc.DownloadableSubscription.Builder setConfirmationCode(String);
+    method public android.telephony.euicc.DownloadableSubscription.Builder setEncodedActivationCode(String);
   }
 
   public class EuiccCardManager {
-    method public void authenticateServer(java.lang.String, java.lang.String, byte[], byte[], byte[], byte[], java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
-    method public void cancelSession(java.lang.String, byte[], int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
-    method public void deleteProfile(java.lang.String, java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
-    method public void disableProfile(java.lang.String, java.lang.String, boolean, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
-    method public void listNotifications(java.lang.String, int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.telephony.euicc.EuiccNotification[]>);
-    method public void loadBoundProfilePackage(java.lang.String, byte[], java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
-    method public void prepareDownload(java.lang.String, byte[], byte[], byte[], byte[], java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
-    method public void removeNotificationFromList(java.lang.String, int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
-    method public void requestAllProfiles(java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.service.euicc.EuiccProfileInfo[]>);
-    method public void requestDefaultSmdpAddress(java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.String>);
-    method public void requestEuiccChallenge(java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
-    method public void requestEuiccInfo1(java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
-    method public void requestEuiccInfo2(java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
-    method public void requestProfile(java.lang.String, java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.service.euicc.EuiccProfileInfo>);
-    method public void requestRulesAuthTable(java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.telephony.euicc.EuiccRulesAuthTable>);
-    method public void requestSmdsAddress(java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.String>);
-    method public void resetMemory(java.lang.String, int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
-    method public void retrieveNotification(java.lang.String, int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.telephony.euicc.EuiccNotification>);
-    method public void retrieveNotificationList(java.lang.String, int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.telephony.euicc.EuiccNotification[]>);
-    method public void setDefaultSmdpAddress(java.lang.String, java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
-    method public void setNickname(java.lang.String, java.lang.String, java.lang.String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
-    method public void switchToProfile(java.lang.String, java.lang.String, boolean, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.service.euicc.EuiccProfileInfo>);
+    method public void authenticateServer(String, String, byte[], byte[], byte[], byte[], java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
+    method public void cancelSession(String, byte[], @android.telephony.euicc.EuiccCardManager.CancelReason int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
+    method public void deleteProfile(String, String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
+    method public void disableProfile(String, String, boolean, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
+    method public void listNotifications(String, @android.telephony.euicc.EuiccNotification.Event int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.telephony.euicc.EuiccNotification[]>);
+    method public void loadBoundProfilePackage(String, byte[], java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
+    method public void prepareDownload(String, @Nullable byte[], byte[], byte[], byte[], java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
+    method public void removeNotificationFromList(String, int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
+    method public void requestAllProfiles(String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.service.euicc.EuiccProfileInfo[]>);
+    method public void requestDefaultSmdpAddress(String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.String>);
+    method public void requestEuiccChallenge(String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
+    method public void requestEuiccInfo1(String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
+    method public void requestEuiccInfo2(String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<byte[]>);
+    method public void requestProfile(String, String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.service.euicc.EuiccProfileInfo>);
+    method public void requestRulesAuthTable(String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.telephony.euicc.EuiccRulesAuthTable>);
+    method public void requestSmdsAddress(String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.String>);
+    method public void resetMemory(String, @android.telephony.euicc.EuiccCardManager.ResetOption int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
+    method public void retrieveNotification(String, int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.telephony.euicc.EuiccNotification>);
+    method public void retrieveNotificationList(String, @android.telephony.euicc.EuiccNotification.Event int, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.telephony.euicc.EuiccNotification[]>);
+    method public void setDefaultSmdpAddress(String, String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
+    method public void setNickname(String, String, String, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<java.lang.Void>);
+    method public void switchToProfile(String, String, boolean, java.util.concurrent.Executor, android.telephony.euicc.EuiccCardManager.ResultCallback<android.service.euicc.EuiccProfileInfo>);
     field public static final int CANCEL_REASON_END_USER_REJECTED = 0; // 0x0
     field public static final int CANCEL_REASON_POSTPONED = 1; // 0x1
     field public static final int CANCEL_REASON_PPR_NOT_ALLOWED = 3; // 0x3
@@ -7174,25 +7211,25 @@
     field public static final int RESULT_UNKNOWN_ERROR = -1; // 0xffffffff
   }
 
-  public static abstract class EuiccCardManager.CancelReason implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef(prefix={"CANCEL_REASON_"}, value={android.telephony.euicc.EuiccCardManager.CANCEL_REASON_END_USER_REJECTED, android.telephony.euicc.EuiccCardManager.CANCEL_REASON_POSTPONED, android.telephony.euicc.EuiccCardManager.CANCEL_REASON_TIMEOUT, android.telephony.euicc.EuiccCardManager.CANCEL_REASON_PPR_NOT_ALLOWED}) public static @interface EuiccCardManager.CancelReason {
   }
 
-  public static abstract class EuiccCardManager.ResetOption implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef(flag=true, prefix={"RESET_OPTION_"}, value={android.telephony.euicc.EuiccCardManager.RESET_OPTION_DELETE_OPERATIONAL_PROFILES, android.telephony.euicc.EuiccCardManager.RESET_OPTION_DELETE_FIELD_LOADED_TEST_PROFILES, android.telephony.euicc.EuiccCardManager.RESET_OPTION_RESET_DEFAULT_SMDP_ADDRESS}) public static @interface EuiccCardManager.ResetOption {
   }
 
-  public static abstract interface EuiccCardManager.ResultCallback<T> {
-    method public abstract void onComplete(int, T);
+  public static interface EuiccCardManager.ResultCallback<T> {
+    method public void onComplete(int, T);
   }
 
   public class EuiccManager {
-    method public void continueOperation(android.content.Intent, android.os.Bundle);
-    method public void eraseSubscriptions(android.app.PendingIntent);
-    method public void getDefaultDownloadableSubscriptionList(android.app.PendingIntent);
-    method public void getDownloadableSubscriptionMetadata(android.telephony.euicc.DownloadableSubscription, android.app.PendingIntent);
-    method public int getOtaStatus();
-    field public static final java.lang.String ACTION_OTA_STATUS_CHANGED = "android.telephony.euicc.action.OTA_STATUS_CHANGED";
-    field public static final java.lang.String ACTION_PROFILE_SELECTION = "android.telephony.euicc.action.PROFILE_SELECTION";
-    field public static final java.lang.String ACTION_PROVISION_EMBEDDED_SUBSCRIPTION = "android.telephony.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION";
+    method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void continueOperation(android.content.Intent, android.os.Bundle);
+    method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void eraseSubscriptions(android.app.PendingIntent);
+    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 @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_PROFILE_SELECTION = "android.telephony.euicc.action.PROFILE_SELECTION";
+    field public static final String ACTION_PROVISION_EMBEDDED_SUBSCRIPTION = "android.telephony.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION";
     field public static final int EUICC_ACTIVATION_TYPE_BACKUP = 2; // 0x2
     field public static final int EUICC_ACTIVATION_TYPE_DEFAULT = 1; // 0x1
     field public static final int EUICC_ACTIVATION_TYPE_TRANSFER = 3; // 0x3
@@ -7201,23 +7238,23 @@
     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 java.lang.String EXTRA_ACTIVATION_TYPE = "android.telephony.euicc.extra.ACTIVATION_TYPE";
-    field public static final java.lang.String EXTRA_EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTIONS = "android.telephony.euicc.extra.EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTIONS";
-    field public static final java.lang.String EXTRA_FORCE_PROVISION = "android.telephony.euicc.extra.FORCE_PROVISION";
+    field public static final String EXTRA_ACTIVATION_TYPE = "android.telephony.euicc.extra.ACTIVATION_TYPE";
+    field public static final String EXTRA_EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTIONS = "android.telephony.euicc.extra.EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTIONS";
+    field public static final String EXTRA_FORCE_PROVISION = "android.telephony.euicc.extra.FORCE_PROVISION";
   }
 
-  public static abstract class EuiccManager.OtaStatus implements java.lang.annotation.Annotation {
+  @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 {
   }
 
   public final class EuiccNotification implements android.os.Parcelable {
-    ctor public EuiccNotification(int, java.lang.String, int, byte[]);
+    ctor public EuiccNotification(int, String, @android.telephony.euicc.EuiccNotification.Event int, @Nullable byte[]);
     method public int describeContents();
-    method public byte[] getData();
-    method public int getEvent();
+    method @Nullable public byte[] getData();
+    method @android.telephony.euicc.EuiccNotification.Event public int getEvent();
     method public int getSeq();
-    method public java.lang.String getTargetAddr();
+    method public String getTargetAddr();
     method public void writeToParcel(android.os.Parcel, int);
-    field public static final int ALL_EVENTS = 15; // 0xf
+    field @android.telephony.euicc.EuiccNotification.Event public static final int ALL_EVENTS = 15; // 0xf
     field public static final android.os.Parcelable.Creator<android.telephony.euicc.EuiccNotification> CREATOR;
     field public static final int EVENT_DELETE = 8; // 0x8
     field public static final int EVENT_DISABLE = 4; // 0x4
@@ -7225,13 +7262,13 @@
     field public static final int EVENT_INSTALL = 1; // 0x1
   }
 
-  public static abstract class EuiccNotification.Event implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef(flag=true, prefix={"EVENT_"}, value={android.telephony.euicc.EuiccNotification.EVENT_INSTALL, android.telephony.euicc.EuiccNotification.EVENT_ENABLE, android.telephony.euicc.EuiccNotification.EVENT_DISABLE, android.telephony.euicc.EuiccNotification.EVENT_DELETE}) public static @interface EuiccNotification.Event {
   }
 
   public final class EuiccRulesAuthTable implements android.os.Parcelable {
     method public int describeContents();
-    method public int findIndex(int, android.service.carrier.CarrierIdentifier);
-    method public boolean hasPolicyRuleFlag(int, int);
+    method public int findIndex(@android.service.euicc.EuiccProfileInfo.PolicyRule int, android.service.carrier.CarrierIdentifier);
+    method public boolean hasPolicyRuleFlag(int, @android.telephony.euicc.EuiccRulesAuthTable.PolicyRuleFlag int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.euicc.EuiccRulesAuthTable> CREATOR;
     field public static final int POLICY_RULE_FLAG_CONSENT_REQUIRED = 1; // 0x1
@@ -7243,7 +7280,7 @@
     method public android.telephony.euicc.EuiccRulesAuthTable build();
   }
 
-  public static abstract class EuiccRulesAuthTable.PolicyRuleFlag implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @IntDef(flag=true, prefix={"POLICY_RULE_FLAG_"}, value={android.telephony.euicc.EuiccRulesAuthTable.POLICY_RULE_FLAG_CONSENT_REQUIRED}) public static @interface EuiccRulesAuthTable.PolicyRuleFlag {
   }
 
 }
@@ -7251,10 +7288,10 @@
 package android.telephony.ims {
 
   public final class ImsCallForwardInfo implements android.os.Parcelable {
-    ctor public ImsCallForwardInfo(int, int, int, int, java.lang.String, int);
+    ctor public ImsCallForwardInfo(int, int, int, int, @NonNull String, int);
     method public int describeContents();
     method public int getCondition();
-    method public java.lang.String getNumber();
+    method public String getNumber();
     method public int getServiceClass();
     method public int getStatus();
     method public int getTimeSeconds();
@@ -7279,12 +7316,12 @@
     ctor public ImsCallProfile(int, int);
     ctor public ImsCallProfile(int, int, android.os.Bundle, android.telephony.ims.ImsStreamMediaProfile);
     method public int describeContents();
-    method public java.lang.String getCallExtra(java.lang.String);
-    method public java.lang.String getCallExtra(java.lang.String, java.lang.String);
-    method public boolean getCallExtraBoolean(java.lang.String);
-    method public boolean getCallExtraBoolean(java.lang.String, boolean);
-    method public int getCallExtraInt(java.lang.String);
-    method public int getCallExtraInt(java.lang.String, int);
+    method public String getCallExtra(String);
+    method public String getCallExtra(String, String);
+    method public boolean getCallExtraBoolean(String);
+    method public boolean getCallExtraBoolean(String, boolean);
+    method public int getCallExtraInt(String);
+    method public int getCallExtraInt(String, int);
     method public android.os.Bundle getCallExtras();
     method public int getCallType();
     method public static int getCallTypeFromVideoState(int);
@@ -7300,9 +7337,9 @@
     method public boolean isVideoCall();
     method public boolean isVideoPaused();
     method public static int presentationToOir(int);
-    method public void setCallExtra(java.lang.String, java.lang.String);
-    method public void setCallExtraBoolean(java.lang.String, boolean);
-    method public void setCallExtraInt(java.lang.String, int);
+    method public void setCallExtra(String, String);
+    method public void setCallExtraBoolean(String, boolean);
+    method public void setCallExtraInt(String, int);
     method public void setCallRestrictCause(int);
     method public void setEmergencyCallRouting(int);
     method public void setEmergencyCallTesting(boolean);
@@ -7330,21 +7367,21 @@
     field public static final int DIALSTRING_NORMAL = 0; // 0x0
     field public static final int DIALSTRING_SS_CONF = 1; // 0x1
     field public static final int DIALSTRING_USSD = 2; // 0x2
-    field public static final java.lang.String EXTRA_ADDITIONAL_CALL_INFO = "AdditionalCallInfo";
-    field public static final java.lang.String EXTRA_ADDITIONAL_SIP_INVITE_FIELDS = "android.telephony.ims.extra.ADDITIONAL_SIP_INVITE_FIELDS";
-    field public static final java.lang.String EXTRA_CALL_RAT_TYPE = "CallRadioTech";
-    field public static final java.lang.String EXTRA_CHILD_NUMBER = "ChildNum";
-    field public static final java.lang.String EXTRA_CNA = "cna";
-    field public static final java.lang.String EXTRA_CNAP = "cnap";
-    field public static final java.lang.String EXTRA_CODEC = "Codec";
-    field public static final java.lang.String EXTRA_DIALSTRING = "dialstring";
-    field public static final java.lang.String EXTRA_DISPLAY_TEXT = "DisplayText";
-    field public static final java.lang.String EXTRA_EMERGENCY_CALL = "e_call";
-    field public static final java.lang.String EXTRA_IS_CALL_PULL = "CallPull";
-    field public static final java.lang.String EXTRA_OI = "oi";
-    field public static final java.lang.String EXTRA_OIR = "oir";
-    field public static final java.lang.String EXTRA_REMOTE_URI = "remote_uri";
-    field public static final java.lang.String EXTRA_USSD = "ussd";
+    field public static final String EXTRA_ADDITIONAL_CALL_INFO = "AdditionalCallInfo";
+    field public static final String EXTRA_ADDITIONAL_SIP_INVITE_FIELDS = "android.telephony.ims.extra.ADDITIONAL_SIP_INVITE_FIELDS";
+    field public static final String EXTRA_CALL_RAT_TYPE = "CallRadioTech";
+    field public static final String EXTRA_CHILD_NUMBER = "ChildNum";
+    field public static final String EXTRA_CNA = "cna";
+    field public static final String EXTRA_CNAP = "cnap";
+    field public static final String EXTRA_CODEC = "Codec";
+    field public static final String EXTRA_DIALSTRING = "dialstring";
+    field public static final String EXTRA_DISPLAY_TEXT = "DisplayText";
+    field public static final String EXTRA_EMERGENCY_CALL = "e_call";
+    field public static final String EXTRA_IS_CALL_PULL = "CallPull";
+    field public static final String EXTRA_OI = "oi";
+    field public static final String EXTRA_OIR = "oir";
+    field public static final String EXTRA_REMOTE_URI = "remote_uri";
+    field public static final String EXTRA_USSD = "ussd";
     field public static final int OIR_DEFAULT = 0; // 0x0
     field public static final int OIR_PRESENTATION_NOT_RESTRICTED = 2; // 0x2
     field public static final int OIR_PRESENTATION_PAYPHONE = 4; // 0x4
@@ -7356,6 +7393,7 @@
   }
 
   public class ImsCallSessionListener {
+    method public void callQualityChanged(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);
@@ -7381,7 +7419,7 @@
     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 callSessionRttMessageReceived(java.lang.String);
+    method public void callSessionRttMessageReceived(String);
     method public void callSessionRttModifyRequestReceived(android.telephony.ims.ImsCallProfile);
     method public void callSessionRttModifyResponseReceived(int);
     method public void callSessionSuppServiceReceived(android.telephony.ims.ImsSuppServiceNotification);
@@ -7390,36 +7428,36 @@
     method public void callSessionUpdateFailed(android.telephony.ims.ImsReasonInfo);
     method public void callSessionUpdateReceived(android.telephony.ims.ImsCallProfile);
     method public void callSessionUpdated(android.telephony.ims.ImsCallProfile);
-    method public void callSessionUssdMessageReceived(int, java.lang.String);
+    method public void callSessionUssdMessageReceived(int, String);
   }
 
   public final class ImsConferenceState implements android.os.Parcelable {
     method public int describeContents();
-    method public static int getConnectionStateForStatus(java.lang.String);
+    method public static int getConnectionStateForStatus(String);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.ims.ImsConferenceState> CREATOR;
-    field public static final java.lang.String DISPLAY_TEXT = "display-text";
-    field public static final java.lang.String ENDPOINT = "endpoint";
-    field public static final java.lang.String SIP_STATUS_CODE = "sipstatuscode";
-    field public static final java.lang.String STATUS = "status";
-    field public static final java.lang.String STATUS_ALERTING = "alerting";
-    field public static final java.lang.String STATUS_CONNECTED = "connected";
-    field public static final java.lang.String STATUS_CONNECT_FAIL = "connect-fail";
-    field public static final java.lang.String STATUS_DIALING_IN = "dialing-in";
-    field public static final java.lang.String STATUS_DIALING_OUT = "dialing-out";
-    field public static final java.lang.String STATUS_DISCONNECTED = "disconnected";
-    field public static final java.lang.String STATUS_DISCONNECTING = "disconnecting";
-    field public static final java.lang.String STATUS_MUTED_VIA_FOCUS = "muted-via-focus";
-    field public static final java.lang.String STATUS_ON_HOLD = "on-hold";
-    field public static final java.lang.String STATUS_PENDING = "pending";
-    field public static final java.lang.String STATUS_SEND_ONLY = "sendonly";
-    field public static final java.lang.String STATUS_SEND_RECV = "sendrecv";
-    field public static final java.lang.String USER = "user";
-    field public final java.util.HashMap<java.lang.String, android.os.Bundle> mParticipants;
+    field public static final String DISPLAY_TEXT = "display-text";
+    field public static final String ENDPOINT = "endpoint";
+    field public static final String SIP_STATUS_CODE = "sipstatuscode";
+    field public static final String STATUS = "status";
+    field public static final String STATUS_ALERTING = "alerting";
+    field public static final String STATUS_CONNECTED = "connected";
+    field public static final String STATUS_CONNECT_FAIL = "connect-fail";
+    field public static final String STATUS_DIALING_IN = "dialing-in";
+    field public static final String STATUS_DIALING_OUT = "dialing-out";
+    field public static final String STATUS_DISCONNECTED = "disconnected";
+    field public static final String STATUS_DISCONNECTING = "disconnecting";
+    field public static final String STATUS_MUTED_VIA_FOCUS = "muted-via-focus";
+    field public static final String STATUS_ON_HOLD = "on-hold";
+    field public static final String STATUS_PENDING = "pending";
+    field public static final String STATUS_SEND_ONLY = "sendonly";
+    field public static final String STATUS_SEND_RECV = "sendrecv";
+    field public static final String USER = "user";
+    field public final java.util.HashMap<java.lang.String,android.os.Bundle> mParticipants;
   }
 
   public final class ImsExternalCallState implements android.os.Parcelable {
-    ctor public ImsExternalCallState(java.lang.String, android.net.Uri, android.net.Uri, boolean, int, int, boolean);
+    ctor public ImsExternalCallState(String, android.net.Uri, android.net.Uri, boolean, int, int, boolean);
     method public int describeContents();
     method public android.net.Uri getAddress();
     method public int getCallId();
@@ -7436,26 +7474,26 @@
 
   public class ImsMmTelManager {
     method public static android.telephony.ims.ImsMmTelManager createForSubscriptionId(android.content.Context, int);
-    method public int getVoWiFiModeSetting();
-    method public int getVoWiFiRoamingModeSetting();
-    method public boolean isAdvancedCallingSettingEnabled();
-    method public boolean isAvailable(int, int);
-    method public boolean isCapable(int, int);
-    method public boolean isVoWiFiRoamingSettingEnabled();
-    method public boolean isVoWiFiSettingEnabled();
-    method public boolean isVtSettingEnabled();
-    method public void registerImsRegistrationCallback(java.util.concurrent.Executor, android.telephony.ims.ImsMmTelManager.RegistrationCallback);
-    method public void registerMmTelCapabilityCallback(java.util.concurrent.Executor, android.telephony.ims.ImsMmTelManager.CapabilityCallback);
-    method public void setAdvancedCallingSetting(boolean);
-    method public void setRttCapabilitySetting(boolean);
-    method public void setVoWiFiModeSetting(int);
-    method public void setVoWiFiNonPersistent(boolean, int);
-    method public void setVoWiFiRoamingModeSetting(int);
-    method public void setVoWiFiRoamingSetting(boolean);
-    method public void setVoWiFiSetting(boolean);
-    method public void setVtSetting(boolean);
-    method public void unregisterImsRegistrationCallback(android.telephony.ims.ImsMmTelManager.RegistrationCallback);
-    method public void unregisterMmTelCapabilityCallback(android.telephony.ims.ImsMmTelManager.CapabilityCallback);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getVoWiFiModeSetting();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getVoWiFiRoamingModeSetting();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isAdvancedCallingSettingEnabled();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isAvailable(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isCapable(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVoWiFiRoamingSettingEnabled();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVoWiFiSettingEnabled();
+    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);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerMmTelCapabilityCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsMmTelManager.CapabilityCallback);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setAdvancedCallingSetting(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.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
     field public static final int WIFI_MODE_WIFI_ONLY = 0; // 0x0
     field public static final int WIFI_MODE_WIFI_PREFERRED = 2; // 0x2
@@ -7475,11 +7513,11 @@
   }
 
   public final class ImsReasonInfo implements android.os.Parcelable {
-    ctor public ImsReasonInfo(int, int, java.lang.String);
+    ctor public ImsReasonInfo(int, int, String);
     method public int describeContents();
     method public int getCode();
     method public int getExtraCode();
-    method public java.lang.String getExtraMessage();
+    method public String getExtraMessage();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CODE_ACCESS_CLASS_BLOCKED = 1512; // 0x5e8
     field public static final int CODE_ANSWERED_ELSEWHERE = 1014; // 0x3f6
@@ -7655,7 +7693,7 @@
     field public static final int EXTRA_CODE_CALL_RETRY_BY_SETTINGS = 3; // 0x3
     field public static final int EXTRA_CODE_CALL_RETRY_NORMAL = 1; // 0x1
     field public static final int EXTRA_CODE_CALL_RETRY_SILENT_REDIAL = 2; // 0x2
-    field public static final java.lang.String EXTRA_MSG_SERVICE_NOT_AUTHORIZED = "Forbidden. Not Authorized for Service";
+    field public static final String EXTRA_MSG_SERVICE_NOT_AUTHORIZED = "Forbidden. Not Authorized for Service";
   }
 
   public class ImsService extends android.app.Service {
@@ -7679,7 +7717,7 @@
     method public int getResult();
     method public int getServiceClass();
     method public int getServiceType();
-    method public android.telephony.ims.ImsSsInfo[] getSuppServiceInfo();
+    method @NonNull public android.telephony.ims.ImsSsInfo[] getSuppServiceInfo();
     method public int getTeleserviceType();
     method public boolean isTypeBarring();
     method public boolean isTypeCf();
@@ -7741,18 +7779,18 @@
 
   public static class ImsSsData.Builder {
     ctor public ImsSsData.Builder(int, int, int, int, int);
-    method public android.telephony.ims.ImsSsData build();
-    method public android.telephony.ims.ImsSsData.Builder setCallForwardingInfo(android.telephony.ims.ImsCallForwardInfo[]);
-    method public android.telephony.ims.ImsSsData.Builder setSuppServiceInfo(android.telephony.ims.ImsSsInfo[]);
+    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[]);
   }
 
   public final class ImsSsInfo implements android.os.Parcelable {
-    ctor public deprecated ImsSsInfo(int, java.lang.String);
+    ctor @Deprecated public ImsSsInfo(int, @Nullable String);
     method public int describeContents();
     method public int getClirInterrogationStatus();
     method public int getClirOutgoingState();
-    method public deprecated java.lang.String getIcbNum();
-    method public java.lang.String getIncomingCommunicationBarringNumber();
+    method @Deprecated public String getIcbNum();
+    method public String getIncomingCommunicationBarringNumber();
     method public int getProvisionStatus();
     method public int getStatus();
     method public void writeToParcel(android.os.Parcel, int);
@@ -7775,11 +7813,11 @@
 
   public static class ImsSsInfo.Builder {
     ctor public ImsSsInfo.Builder(int);
-    method public android.telephony.ims.ImsSsInfo build();
-    method public android.telephony.ims.ImsSsInfo.Builder setClirInterrogationStatus(int);
-    method public android.telephony.ims.ImsSsInfo.Builder setClirOutgoingState(int);
-    method public android.telephony.ims.ImsSsInfo.Builder setIncomingCommunicationBarringNumber(java.lang.String);
-    method public android.telephony.ims.ImsSsInfo.Builder setProvisionStatus(int);
+    method @NonNull public android.telephony.ims.ImsSsInfo build();
+    method @NonNull public android.telephony.ims.ImsSsInfo.Builder setClirInterrogationStatus(int);
+    method @NonNull public android.telephony.ims.ImsSsInfo.Builder setClirOutgoingState(int);
+    method @NonNull public android.telephony.ims.ImsSsInfo.Builder setIncomingCommunicationBarringNumber(@NonNull String);
+    method @NonNull public android.telephony.ims.ImsSsInfo.Builder setProvisionStatus(int);
   }
 
   public final class ImsStreamMediaProfile implements android.os.Parcelable {
@@ -7834,15 +7872,15 @@
   }
 
   public final class ImsSuppServiceNotification implements android.os.Parcelable {
-    ctor public ImsSuppServiceNotification(int, int, int, int, java.lang.String, java.lang.String[]);
+    ctor public ImsSuppServiceNotification(int, int, int, int, String, String[]);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.telephony.ims.ImsSuppServiceNotification> CREATOR;
     field public final int code;
-    field public final java.lang.String[] history;
+    field public final String[] history;
     field public final int index;
     field public final int notificationType;
-    field public final java.lang.String number;
+    field public final String number;
     field public final int type;
   }
 
@@ -7868,8 +7906,8 @@
     method public abstract void onRequestCameraCapabilities();
     method public abstract void onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile);
     method public abstract void onSendSessionModifyResponse(android.telecom.VideoProfile);
-    method public abstract void onSetCamera(java.lang.String);
-    method public void onSetCamera(java.lang.String, int);
+    method public abstract void onSetCamera(String);
+    method public void onSetCamera(String, int);
     method public abstract void onSetDeviceOrientation(int);
     method public abstract void onSetDisplaySurface(android.view.Surface);
     method public abstract void onSetPauseImage(android.net.Uri);
@@ -7881,18 +7919,18 @@
 
   public class ProvisioningManager {
     method public static android.telephony.ims.ProvisioningManager createForSubscriptionId(android.content.Context, int);
-    method public int getProvisioningIntValue(int);
-    method public java.lang.String getProvisioningStringValue(int);
-    method public void registerProvisioningChangedCallback(java.util.concurrent.Executor, android.telephony.ims.ProvisioningManager.Callback);
-    method public int setProvisioningIntValue(int, int);
-    method public int setProvisioningStringValue(int, java.lang.String);
-    method public void unregisterProvisioningChangedCallback(android.telephony.ims.ProvisioningManager.Callback);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getProvisioningIntValue(int);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getProvisioningStringValue(int);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerProvisioningChangedCallback(java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.Callback);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setProvisioningIntValue(int, int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setProvisioningStringValue(int, String);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterProvisioningChangedCallback(@NonNull android.telephony.ims.ProvisioningManager.Callback);
   }
 
   public static class ProvisioningManager.Callback {
     ctor public ProvisioningManager.Callback();
     method public void onProvisioningIntChanged(int, int);
-    method public void onProvisioningStringChanged(int, java.lang.String);
+    method public void onProvisioningStringChanged(int, String);
   }
 
 }
@@ -7900,8 +7938,8 @@
 package android.telephony.ims.feature {
 
   public final class CapabilityChangeRequest implements android.os.Parcelable {
-    method public void addCapabilitiesToDisableForTech(int, int);
-    method public void addCapabilitiesToEnableForTech(int, int);
+    method public void addCapabilitiesToDisableForTech(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method public void addCapabilitiesToEnableForTech(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
     method public int describeContents();
     method public java.util.List<android.telephony.ims.feature.CapabilityChangeRequest.CapabilityPair> getCapabilitiesToDisable();
     method public java.util.List<android.telephony.ims.feature.CapabilityChangeRequest.CapabilityPair> getCapabilitiesToEnable();
@@ -7910,8 +7948,8 @@
   }
 
   public static class CapabilityChangeRequest.CapabilityPair {
-    ctor public CapabilityChangeRequest.CapabilityPair(int, int);
-    method public int getCapability();
+    ctor public CapabilityChangeRequest.CapabilityPair(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method @android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability public int getCapability();
     method public int getRadioTech();
   }
 
@@ -7941,44 +7979,44 @@
 
   public class MmTelFeature extends android.telephony.ims.feature.ImsFeature {
     ctor public MmTelFeature();
-    method public void changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy);
-    method public android.telephony.ims.ImsCallProfile createCallProfile(int, int);
-    method public android.telephony.ims.stub.ImsCallSessionImplBase createCallSession(android.telephony.ims.ImsCallProfile);
-    method public android.telephony.ims.stub.ImsEcbmImplBase getEcbm();
-    method public android.telephony.ims.stub.ImsMultiEndpointImplBase getMultiEndpoint();
-    method public android.telephony.ims.stub.ImsSmsImplBase getSmsImplementation();
-    method public android.telephony.ims.stub.ImsUtImplBase getUt();
-    method public final void notifyCapabilitiesStatusChanged(android.telephony.ims.feature.MmTelFeature.MmTelCapabilities);
-    method public final void notifyIncomingCall(android.telephony.ims.stub.ImsCallSessionImplBase, android.os.Bundle);
-    method public final void notifyRejectedCall(android.telephony.ims.ImsCallProfile, android.telephony.ims.ImsReasonInfo);
+    method public void changeEnabledCapabilities(@NonNull android.telephony.ims.feature.CapabilityChangeRequest, @NonNull android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy);
+    method @Nullable public android.telephony.ims.ImsCallProfile createCallProfile(int, int);
+    method @Nullable public android.telephony.ims.stub.ImsCallSessionImplBase createCallSession(@NonNull android.telephony.ims.ImsCallProfile);
+    method @NonNull public android.telephony.ims.stub.ImsEcbmImplBase getEcbm();
+    method @NonNull public android.telephony.ims.stub.ImsMultiEndpointImplBase getMultiEndpoint();
+    method @NonNull public android.telephony.ims.stub.ImsSmsImplBase getSmsImplementation();
+    method @NonNull public android.telephony.ims.stub.ImsUtImplBase getUt();
+    method public final void notifyCapabilitiesStatusChanged(@NonNull android.telephony.ims.feature.MmTelFeature.MmTelCapabilities);
+    method public final void notifyIncomingCall(@NonNull android.telephony.ims.stub.ImsCallSessionImplBase, @NonNull android.os.Bundle);
+    method public final void notifyRejectedCall(@NonNull android.telephony.ims.ImsCallProfile, @NonNull android.telephony.ims.ImsReasonInfo);
     method public final void notifyVoiceMessageCountUpdate(int);
     method public void onFeatureReady();
     method public void onFeatureRemoved();
-    method public boolean queryCapabilityConfiguration(int, int);
+    method public boolean queryCapabilityConfiguration(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
     method public final android.telephony.ims.feature.MmTelFeature.MmTelCapabilities queryCapabilityStatus();
-    method public void setUiTtyMode(int, android.os.Message);
-    method public int shouldProcessCall(java.lang.String[]);
+    method public void setUiTtyMode(int, @Nullable android.os.Message);
+    method @android.telephony.ims.feature.MmTelFeature.ProcessCallResult public int shouldProcessCall(@NonNull String[]);
     field public static final int PROCESS_CALL_CSFB = 1; // 0x1
     field public static final int PROCESS_CALL_IMS = 0; // 0x0
   }
 
   public static class MmTelFeature.MmTelCapabilities extends android.telephony.ims.feature.ImsFeature.Capabilities {
     ctor public MmTelFeature.MmTelCapabilities();
-    ctor public deprecated MmTelFeature.MmTelCapabilities(android.telephony.ims.feature.ImsFeature.Capabilities);
+    ctor @Deprecated public MmTelFeature.MmTelCapabilities(android.telephony.ims.feature.ImsFeature.Capabilities);
     ctor public MmTelFeature.MmTelCapabilities(int);
-    method public final void addCapabilities(int);
-    method public final boolean isCapable(int);
-    method public final void removeCapabilities(int);
+    method public final void addCapabilities(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int);
+    method public final boolean isCapable(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int);
+    method public final void removeCapabilities(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int);
     field public static final int CAPABILITY_TYPE_SMS = 8; // 0x8
     field public static final int CAPABILITY_TYPE_UT = 4; // 0x4
     field public static final int CAPABILITY_TYPE_VIDEO = 2; // 0x2
     field public static final int CAPABILITY_TYPE_VOICE = 1; // 0x1
   }
 
-  public static abstract class MmTelFeature.MmTelCapabilities.MmTelCapability implements java.lang.annotation.Annotation {
+  @IntDef(flag=true, value={android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE, android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO, android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT, android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_SMS}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface MmTelFeature.MmTelCapabilities.MmTelCapability {
   }
 
-  public static abstract class MmTelFeature.ProcessCallResult implements java.lang.annotation.Annotation {
+  @IntDef(flag=true, value={android.telephony.ims.feature.MmTelFeature.PROCESS_CALL_IMS, android.telephony.ims.feature.MmTelFeature.PROCESS_CALL_CSFB}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface MmTelFeature.ProcessCallResult {
   }
 
   public class RcsFeature extends android.telephony.ims.feature.ImsFeature {
@@ -7996,32 +8034,32 @@
     ctor public ImsCallSessionImplBase();
     method public void accept(int, android.telephony.ims.ImsStreamMediaProfile);
     method public void close();
-    method public void deflect(java.lang.String);
-    method public void extendToConference(java.lang.String[]);
-    method public java.lang.String getCallId();
+    method public void deflect(String);
+    method public void extendToConference(String[]);
+    method public String getCallId();
     method public android.telephony.ims.ImsCallProfile getCallProfile();
     method public android.telephony.ims.ImsVideoCallProvider getImsVideoCallProvider();
     method public android.telephony.ims.ImsCallProfile getLocalCallProfile();
-    method public java.lang.String getProperty(java.lang.String);
+    method public String getProperty(String);
     method public android.telephony.ims.ImsCallProfile getRemoteCallProfile();
     method public int getState();
     method public void hold(android.telephony.ims.ImsStreamMediaProfile);
-    method public void inviteParticipants(java.lang.String[]);
+    method public void inviteParticipants(String[]);
     method public boolean isInCall();
     method public boolean isMultiparty();
     method public void merge();
     method public void reject(int);
-    method public void removeParticipants(java.lang.String[]);
+    method public void removeParticipants(String[]);
     method public void resume(android.telephony.ims.ImsStreamMediaProfile);
     method public void sendDtmf(char, android.os.Message);
-    method public void sendRttMessage(java.lang.String);
+    method public void sendRttMessage(String);
     method public void sendRttModifyRequest(android.telephony.ims.ImsCallProfile);
     method public void sendRttModifyResponse(boolean);
-    method public void sendUssd(java.lang.String);
+    method public void sendUssd(String);
     method public void setListener(android.telephony.ims.ImsCallSessionListener);
     method public void setMute(boolean);
-    method public void start(java.lang.String, android.telephony.ims.ImsCallProfile);
-    method public void startConference(java.lang.String[], android.telephony.ims.ImsCallProfile);
+    method public void start(String, android.telephony.ims.ImsCallProfile);
+    method public void startConference(String[], android.telephony.ims.ImsCallProfile);
     method public void startDtmf(char);
     method public void stopDtmf();
     method public void terminate(int);
@@ -8031,7 +8069,7 @@
   }
 
   public static class ImsCallSessionImplBase.State {
-    method public static java.lang.String toString(int);
+    method public static String toString(int);
     field public static final int ESTABLISHED = 4; // 0x4
     field public static final int ESTABLISHING = 3; // 0x3
     field public static final int IDLE = 0; // 0x0
@@ -8047,11 +8085,11 @@
   public class ImsConfigImplBase {
     ctor public ImsConfigImplBase();
     method public int getConfigInt(int);
-    method public java.lang.String getConfigString(int);
+    method public String getConfigString(int);
     method public final void notifyProvisionedValueChanged(int, int);
-    method public final void notifyProvisionedValueChanged(int, java.lang.String);
+    method public final void notifyProvisionedValueChanged(int, String);
     method public int setConfig(int, int);
-    method public int setConfig(int, java.lang.String);
+    method public int setConfig(int, String);
     field public static final int CONFIG_RESULT_FAILED = 1; // 0x1
     field public static final int CONFIG_RESULT_SUCCESS = 0; // 0x0
     field public static final int CONFIG_RESULT_UNKNOWN = -1; // 0xffffffff
@@ -8105,12 +8143,12 @@
     ctor public ImsSmsImplBase();
     method public void acknowledgeSms(int, int, int);
     method public void acknowledgeSmsReport(int, int, int);
-    method public java.lang.String getSmsFormat();
+    method public String getSmsFormat();
     method public void onReady();
     method public final void onSendSmsResult(int, int, int, int) throws java.lang.RuntimeException;
-    method public final void onSmsReceived(int, java.lang.String, byte[]) throws java.lang.RuntimeException;
-    method public final void onSmsStatusReportReceived(int, int, java.lang.String, byte[]) throws java.lang.RuntimeException;
-    method public void sendSms(int, int, java.lang.String, java.lang.String, boolean, byte[]);
+    method public final void onSmsReceived(int, String, byte[]) throws java.lang.RuntimeException;
+    method public final void onSmsStatusReportReceived(int, int, String, byte[]) throws java.lang.RuntimeException;
+    method public void sendSms(int, int, String, String, boolean, byte[]);
     field public static final int DELIVER_STATUS_ERROR_GENERIC = 2; // 0x2
     field public static final int DELIVER_STATUS_ERROR_NO_MEMORY = 3; // 0x3
     field public static final int DELIVER_STATUS_ERROR_REQUEST_NOT_SUPPORTED = 4; // 0x4
@@ -8128,7 +8166,7 @@
     method public void close();
     method public int queryCallBarring(int);
     method public int queryCallBarringForServiceClass(int, int);
-    method public int queryCallForward(int, java.lang.String);
+    method public int queryCallForward(int, String);
     method public int queryCallWaiting();
     method public int queryClip();
     method public int queryClir();
@@ -8136,9 +8174,9 @@
     method public int queryColr();
     method public void setListener(android.telephony.ims.ImsUtListener);
     method public int transact(android.os.Bundle);
-    method public int updateCallBarring(int, int, java.lang.String[]);
-    method public int updateCallBarringForServiceClass(int, int, java.lang.String[], int);
-    method public int updateCallForward(int, int, java.lang.String, int, int);
+    method public int updateCallBarring(int, int, String[]);
+    method public int updateCallBarringForServiceClass(int, int, String[], int);
+    method public int updateCallForward(int, int, String, int, int);
     method public int updateCallWaiting(boolean, int);
     method public int updateClip(boolean);
     method public int updateClir(int);
@@ -8151,15 +8189,15 @@
 package android.telephony.mbms {
 
   public static class DownloadRequest.Builder {
-    method public android.telephony.mbms.DownloadRequest.Builder setServiceId(java.lang.String);
+    method public android.telephony.mbms.DownloadRequest.Builder setServiceId(String);
   }
 
   public final class FileInfo implements android.os.Parcelable {
-    ctor public FileInfo(android.net.Uri, java.lang.String);
+    ctor public FileInfo(android.net.Uri, String);
   }
 
   public final class FileServiceInfo extends android.telephony.mbms.ServiceInfo implements android.os.Parcelable {
-    ctor public FileServiceInfo(java.util.Map<java.util.Locale, java.lang.String>, java.lang.String, java.util.List<java.util.Locale>, java.lang.String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>);
+    ctor public FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>);
   }
 
   public class MbmsDownloadReceiver extends android.content.BroadcastReceiver {
@@ -8173,7 +8211,7 @@
   }
 
   public final class StreamingServiceInfo extends android.telephony.mbms.ServiceInfo implements android.os.Parcelable {
-    ctor public StreamingServiceInfo(java.util.Map<java.util.Locale, java.lang.String>, java.lang.String, java.util.List<java.util.Locale>, java.lang.String, java.util.Date, java.util.Date);
+    ctor public StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date);
   }
 
   public final class UriPathPair implements android.os.Parcelable {
@@ -8192,18 +8230,22 @@
     ctor public MbmsDownloadServiceBase();
     method public int addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) throws android.os.RemoteException;
     method public int addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) throws android.os.RemoteException;
+    method public android.os.IBinder asBinder();
     method public int cancelDownload(android.telephony.mbms.DownloadRequest) throws android.os.RemoteException;
     method public void dispose(int) throws android.os.RemoteException;
     method public int download(android.telephony.mbms.DownloadRequest) throws android.os.RemoteException;
+    method public static String getDefaultTransactionName(int);
+    method public String getTransactionName(int);
     method public int initialize(int, android.telephony.mbms.MbmsDownloadSessionCallback) throws android.os.RemoteException;
-    method public java.util.List<android.telephony.mbms.DownloadRequest> listPendingDownloads(int) throws android.os.RemoteException;
+    method @NonNull public java.util.List<android.telephony.mbms.DownloadRequest> listPendingDownloads(int) throws android.os.RemoteException;
     method public void onAppCallbackDied(int, int);
+    method public boolean onTransact(int, android.os.Parcel, android.os.Parcel, int) throws android.os.RemoteException;
     method public int removeProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) throws android.os.RemoteException;
     method public int removeStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) throws android.os.RemoteException;
     method public int requestDownloadState(android.telephony.mbms.DownloadRequest, android.telephony.mbms.FileInfo) throws android.os.RemoteException;
     method public int requestUpdateFileServices(int, java.util.List<java.lang.String>) throws android.os.RemoteException;
     method public int resetDownloadKnowledge(android.telephony.mbms.DownloadRequest) throws android.os.RemoteException;
-    method public int setTempFileRootDirectory(int, java.lang.String) throws android.os.RemoteException;
+    method public int setTempFileRootDirectory(int, String) throws android.os.RemoteException;
   }
 
   public class MbmsGroupCallServiceBase extends android.app.Service {
@@ -8219,30 +8261,34 @@
 
   public class MbmsStreamingServiceBase extends android.os.Binder {
     ctor public MbmsStreamingServiceBase();
+    method public android.os.IBinder asBinder();
     method public void dispose(int) throws android.os.RemoteException;
-    method public android.net.Uri getPlaybackUri(int, java.lang.String) throws android.os.RemoteException;
+    method public static String getDefaultTransactionName(int);
+    method @Nullable public android.net.Uri getPlaybackUri(int, String) throws android.os.RemoteException;
+    method public String getTransactionName(int);
     method public int initialize(android.telephony.mbms.MbmsStreamingSessionCallback, int) throws android.os.RemoteException;
     method public void onAppCallbackDied(int, int);
+    method public boolean onTransact(int, android.os.Parcel, android.os.Parcel, int) throws android.os.RemoteException;
     method public int requestUpdateStreamingServices(int, java.util.List<java.lang.String>) throws android.os.RemoteException;
-    method public int startStreaming(int, java.lang.String, android.telephony.mbms.StreamingServiceCallback) throws android.os.RemoteException;
-    method public void stopStreaming(int, java.lang.String) throws android.os.RemoteException;
+    method public int startStreaming(int, String, android.telephony.mbms.StreamingServiceCallback) throws android.os.RemoteException;
+    method public void stopStreaming(int, String) throws android.os.RemoteException;
   }
 
   public class VendorUtils {
     ctor public VendorUtils();
-    method public static android.content.ComponentName getAppReceiverFromPackageName(android.content.Context, java.lang.String);
-    field public static final java.lang.String ACTION_CLEANUP = "android.telephony.mbms.action.CLEANUP";
-    field public static final java.lang.String ACTION_DOWNLOAD_RESULT_INTERNAL = "android.telephony.mbms.action.DOWNLOAD_RESULT_INTERNAL";
-    field public static final java.lang.String ACTION_FILE_DESCRIPTOR_REQUEST = "android.telephony.mbms.action.FILE_DESCRIPTOR_REQUEST";
-    field public static final java.lang.String EXTRA_FD_COUNT = "android.telephony.mbms.extra.FD_COUNT";
-    field public static final java.lang.String EXTRA_FINAL_URI = "android.telephony.mbms.extra.FINAL_URI";
-    field public static final java.lang.String EXTRA_FREE_URI_LIST = "android.telephony.mbms.extra.FREE_URI_LIST";
-    field public static final java.lang.String EXTRA_PAUSED_LIST = "android.telephony.mbms.extra.PAUSED_LIST";
-    field public static final java.lang.String EXTRA_PAUSED_URI_LIST = "android.telephony.mbms.extra.PAUSED_URI_LIST";
-    field public static final java.lang.String EXTRA_SERVICE_ID = "android.telephony.mbms.extra.SERVICE_ID";
-    field public static final java.lang.String EXTRA_TEMP_FILES_IN_USE = "android.telephony.mbms.extra.TEMP_FILES_IN_USE";
-    field public static final java.lang.String EXTRA_TEMP_FILE_ROOT = "android.telephony.mbms.extra.TEMP_FILE_ROOT";
-    field public static final java.lang.String EXTRA_TEMP_LIST = "android.telephony.mbms.extra.TEMP_LIST";
+    method public static android.content.ComponentName getAppReceiverFromPackageName(android.content.Context, String);
+    field public static final String ACTION_CLEANUP = "android.telephony.mbms.action.CLEANUP";
+    field public static final String ACTION_DOWNLOAD_RESULT_INTERNAL = "android.telephony.mbms.action.DOWNLOAD_RESULT_INTERNAL";
+    field public static final String ACTION_FILE_DESCRIPTOR_REQUEST = "android.telephony.mbms.action.FILE_DESCRIPTOR_REQUEST";
+    field public static final String EXTRA_FD_COUNT = "android.telephony.mbms.extra.FD_COUNT";
+    field public static final String EXTRA_FINAL_URI = "android.telephony.mbms.extra.FINAL_URI";
+    field public static final String EXTRA_FREE_URI_LIST = "android.telephony.mbms.extra.FREE_URI_LIST";
+    field public static final String EXTRA_PAUSED_LIST = "android.telephony.mbms.extra.PAUSED_LIST";
+    field public static final String EXTRA_PAUSED_URI_LIST = "android.telephony.mbms.extra.PAUSED_URI_LIST";
+    field public static final String EXTRA_SERVICE_ID = "android.telephony.mbms.extra.SERVICE_ID";
+    field public static final String EXTRA_TEMP_FILES_IN_USE = "android.telephony.mbms.extra.TEMP_FILES_IN_USE";
+    field public static final String EXTRA_TEMP_FILE_ROOT = "android.telephony.mbms.extra.TEMP_FILE_ROOT";
+    field public static final String EXTRA_TEMP_LIST = "android.telephony.mbms.extra.TEMP_LIST";
   }
 
 }
@@ -8262,20 +8308,20 @@
 package android.view {
 
   public abstract class Window {
-    method public void addSystemFlags(int);
+    method public void addSystemFlags(@android.view.WindowManager.LayoutParams.SystemFlags int);
   }
 
-  public abstract interface WindowManager implements android.view.ViewManager {
-    method public abstract android.graphics.Region getCurrentImeTouchRegion();
+  public interface WindowManager extends android.view.ViewManager {
+    method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public android.graphics.Region getCurrentImeTouchRegion();
   }
 
   public static class WindowManager.LayoutParams extends android.view.ViewGroup.LayoutParams implements android.os.Parcelable {
     method public final long getUserActivityTimeout();
     method public final void setUserActivityTimeout(long);
-    field public static final int SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS = 524288; // 0x80000
+    field @RequiresPermission(android.Manifest.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS) public static final int SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS = 524288; // 0x80000
   }
 
-  public static abstract class WindowManager.LayoutParams.SystemFlags implements java.lang.annotation.Annotation {
+  @IntDef(flag=true, prefix={"SYSTEM_FLAG_"}, value={android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface WindowManager.LayoutParams.SystemFlags {
   }
 
 }
@@ -8284,7 +8330,7 @@
 
   public final class AccessibilityManager {
     method public int getAccessibilityWindowId(android.os.IBinder);
-    method public void performAccessibilityShortcut();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACCESSIBILITY) public void performAccessibilityShortcut();
   }
 
 }
@@ -8292,13 +8338,13 @@
 package android.view.contentcapture {
 
   public final class ContentCaptureContext implements android.os.Parcelable {
-    method public android.content.ComponentName getActivityComponent();
+    method @Nullable public android.content.ComponentName getActivityComponent();
     method public int getDisplayId();
-    method public android.os.Bundle getExtras();
+    method @Nullable public android.os.Bundle getExtras();
     method public int getFlags();
-    method public android.view.contentcapture.ContentCaptureSessionId getParentSessionId();
+    method @Nullable public android.view.contentcapture.ContentCaptureSessionId getParentSessionId();
     method public int getTaskId();
-    method public android.net.Uri getUri();
+    method @Nullable public android.net.Uri getUri();
     field public static final int FLAG_DISABLED_BY_APP = 1; // 0x1
     field public static final int FLAG_DISABLED_BY_FLAG_SECURE = 2; // 0x2
   }
@@ -8306,11 +8352,11 @@
   public final class ContentCaptureEvent implements android.os.Parcelable {
     method public int describeContents();
     method public long getEventTime();
-    method public int getFlags();
-    method public android.view.autofill.AutofillId getId();
-    method public java.lang.CharSequence getText();
+    method @Nullable public android.view.autofill.AutofillId getId();
+    method @Nullable public java.util.List<android.view.autofill.AutofillId> getIds();
+    method @Nullable public CharSequence getText();
     method public int getType();
-    method public android.view.contentcapture.ViewNode getViewNode();
+    method @Nullable public android.view.contentcapture.ViewNode getViewNode();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.contentcapture.ContentCaptureEvent> CREATOR;
     field public static final int TYPE_VIEW_APPEARED = 1; // 0x1
@@ -8319,18 +8365,18 @@
   }
 
   public final class UserDataRemovalRequest implements android.os.Parcelable {
-    method public java.lang.String getPackageName();
-    method public java.util.List<android.view.contentcapture.UserDataRemovalRequest.UriRequest> getUriRequests();
+    method @NonNull public String getPackageName();
+    method @NonNull public java.util.List<android.view.contentcapture.UserDataRemovalRequest.UriRequest> getUriRequests();
     method public boolean isForEverything();
   }
 
   public final class UserDataRemovalRequest.UriRequest {
-    method public android.net.Uri getUri();
-    method public boolean isRecursive();
+    method @NonNull public android.net.Uri getUri();
+    method @NonNull public boolean isRecursive();
   }
 
   public final class ViewNode extends android.app.assist.AssistStructure.ViewNode {
-    method public android.view.autofill.AutofillId getParentAutofillId();
+    method @Nullable public android.view.autofill.AutofillId getParentAutofillId();
   }
 
 }
@@ -8339,8 +8385,8 @@
 
   public abstract class CookieManager {
     method protected abstract boolean allowFileSchemeCookiesImpl();
-    method public abstract java.lang.String getCookie(java.lang.String, boolean);
-    method public synchronized java.lang.String getCookie(android.net.WebAddress);
+    method public abstract String getCookie(String, boolean);
+    method public String getCookie(android.net.WebAddress);
     method public abstract boolean hasCookies(boolean);
     method protected abstract void setAcceptFileSchemeCookiesImpl(boolean);
   }
@@ -8348,7 +8394,7 @@
   public class FindActionModeCallback implements android.view.ActionMode.Callback android.text.TextWatcher android.view.View.OnClickListener android.webkit.WebView.FindListener {
     ctor public FindActionModeCallback(android.content.Context);
     method public void afterTextChanged(android.text.Editable);
-    method public void beforeTextChanged(java.lang.CharSequence, int, int, int);
+    method public void beforeTextChanged(CharSequence, int, int, int);
     method public void findAll();
     method public void finish();
     method public int getActionModeGlobalBottom();
@@ -8358,9 +8404,9 @@
     method public void onDestroyActionMode(android.view.ActionMode);
     method public void onFindResultReceived(int, int, boolean);
     method public boolean onPrepareActionMode(android.view.ActionMode, android.view.Menu);
-    method public void onTextChanged(java.lang.CharSequence, int, int, int);
-    method public void setText(java.lang.String);
-    method public void setWebView(android.webkit.WebView);
+    method public void onTextChanged(CharSequence, int, int, int);
+    method public void setText(String);
+    method public void setWebView(@NonNull android.webkit.WebView);
     method public void showSoftInput();
     method public void updateMatchCount(int, int, boolean);
   }
@@ -8382,7 +8428,7 @@
   }
 
   public class JsDialogHelper {
-    ctor public JsDialogHelper(android.webkit.JsPromptResult, int, java.lang.String, java.lang.String, java.lang.String);
+    ctor public JsDialogHelper(android.webkit.JsPromptResult, int, String, String, String);
     ctor public JsDialogHelper(android.webkit.JsPromptResult, android.os.Message);
     method public boolean invokeCallback(android.webkit.WebChromeClient, android.webkit.WebView);
     method public void showDialog(android.content.Context);
@@ -8394,7 +8440,7 @@
 
   public class JsPromptResult extends android.webkit.JsResult {
     ctor public JsPromptResult(android.webkit.JsResult.ResultReceiver);
-    method public java.lang.String getStringResult();
+    method public String getStringResult();
   }
 
   public class JsResult {
@@ -8402,28 +8448,28 @@
     method public final boolean getResult();
   }
 
-  public static abstract interface JsResult.ResultReceiver {
-    method public abstract void onJsResultComplete(android.webkit.JsResult);
+  public static interface JsResult.ResultReceiver {
+    method public void onJsResultComplete(android.webkit.JsResult);
   }
 
   public class SslErrorHandler extends android.os.Handler {
     ctor public SslErrorHandler();
   }
 
-  public abstract deprecated class TokenBindingService {
-    ctor public TokenBindingService();
+  @Deprecated public abstract class TokenBindingService {
+    ctor @Deprecated public TokenBindingService();
   }
 
   public class WebChromeClient {
-    method public deprecated void openFileChooser(android.webkit.ValueCallback<android.net.Uri>, java.lang.String, java.lang.String);
+    method @Deprecated public void openFileChooser(android.webkit.ValueCallback<android.net.Uri>, String, String);
   }
 
   public abstract class WebHistoryItem implements java.lang.Cloneable {
-    method public abstract deprecated int getId();
+    method @Deprecated public abstract int getId();
   }
 
-  public abstract deprecated class WebIconDatabase {
-    method public abstract void bulkRequestIconForPageUrl(android.content.ContentResolver, java.lang.String, android.webkit.WebIconDatabase.IconListener);
+  @Deprecated public abstract class WebIconDatabase {
+    method @Deprecated public abstract void bulkRequestIconForPageUrl(android.content.ContentResolver, String, android.webkit.WebIconDatabase.IconListener);
   }
 
   public abstract class WebMessagePort {
@@ -8435,21 +8481,21 @@
   }
 
   public class WebResourceResponse {
-    ctor public WebResourceResponse(boolean, java.lang.String, java.lang.String, int, java.lang.String, java.util.Map<java.lang.String, java.lang.String>, java.io.InputStream);
+    ctor public WebResourceResponse(boolean, String, String, int, String, java.util.Map<java.lang.String,java.lang.String>, java.io.InputStream);
   }
 
   public abstract class WebSettings {
     method public abstract boolean getAcceptThirdPartyCookies();
-    method public abstract deprecated boolean getNavDump();
-    method public abstract deprecated boolean getPluginsEnabled();
-    method public abstract deprecated boolean getUseWebViewBackgroundForOverscrollBackground();
-    method public abstract deprecated int getUserAgent();
+    method @Deprecated public abstract boolean getNavDump();
+    method @Deprecated public abstract boolean getPluginsEnabled();
+    method @Deprecated public abstract boolean getUseWebViewBackgroundForOverscrollBackground();
+    method @Deprecated public abstract int getUserAgent();
     method public abstract boolean getVideoOverlayForEmbeddedEncryptedVideoEnabled();
     method public abstract void setAcceptThirdPartyCookies(boolean);
-    method public abstract deprecated void setNavDump(boolean);
-    method public abstract deprecated void setPluginsEnabled(boolean);
-    method public abstract deprecated void setUseWebViewBackgroundForOverscrollBackground(boolean);
-    method public abstract deprecated void setUserAgent(int);
+    method @Deprecated public abstract void setNavDump(boolean);
+    method @Deprecated public abstract void setPluginsEnabled(boolean);
+    method @Deprecated public abstract void setUseWebViewBackgroundForOverscrollBackground(boolean);
+    method @Deprecated public abstract void setUserAgent(int);
     method public abstract void setVideoOverlayForEmbeddedEncryptedVideoEnabled(boolean);
   }
 
@@ -8458,7 +8504,7 @@
   }
 
   public static class WebStorage.Origin {
-    ctor protected WebStorage.Origin(java.lang.String, long, long);
+    ctor protected WebStorage.Origin(String, long, long);
   }
 
   public class WebView extends android.widget.AbsoluteLayout implements android.view.ViewGroup.OnHierarchyChangeListener android.view.ViewTreeObserver.OnGlobalFocusChangeListener {
@@ -8467,7 +8513,7 @@
 
   public static class WebView.HitTestResult {
     ctor public WebView.HitTestResult();
-    method public void setExtra(java.lang.String);
+    method public void setExtra(String);
     method public void setType(int);
   }
 
@@ -8501,28 +8547,28 @@
   public final class WebViewDelegate {
     method public void addWebViewAssetPath(android.content.Context);
     method public void callDrawGlFunction(android.graphics.Canvas, long);
-    method public void callDrawGlFunction(android.graphics.Canvas, long, java.lang.Runnable);
+    method public void callDrawGlFunction(@NonNull android.graphics.Canvas, long, @Nullable Runnable);
     method public boolean canInvokeDrawGlFunctor(android.view.View);
     method public void detachDrawGlFunctor(android.view.View, long);
-    method public void drawWebViewFunctor(android.graphics.Canvas, int);
+    method public void drawWebViewFunctor(@NonNull android.graphics.Canvas, int);
     method public android.app.Application getApplication();
-    method public java.lang.String getDataDirectorySuffix();
-    method public java.lang.String getErrorString(android.content.Context, int);
-    method public int getPackageId(android.content.res.Resources, java.lang.String);
+    method public String getDataDirectorySuffix();
+    method public String getErrorString(android.content.Context, int);
+    method public int getPackageId(android.content.res.Resources, String);
     method public void invokeDrawGlFunctor(android.view.View, long, boolean);
     method public boolean isMultiProcessEnabled();
     method public boolean isTraceTagEnabled();
     method public void setOnTraceEnabledChangeListener(android.webkit.WebViewDelegate.OnTraceEnabledChangeListener);
   }
 
-  public static abstract interface WebViewDelegate.OnTraceEnabledChangeListener {
-    method public abstract void onTraceEnabledChange(boolean);
+  public static interface WebViewDelegate.OnTraceEnabledChangeListener {
+    method public void onTraceEnabledChange(boolean);
   }
 
   public final class WebViewFactory {
     ctor public WebViewFactory();
     method public static android.content.pm.PackageInfo getLoadedPackageInfo();
-    method public static int loadWebViewNativeLibraryFromPackage(java.lang.String, java.lang.ClassLoader);
+    method public static int loadWebViewNativeLibraryFromPackage(String, ClassLoader);
     method public static void prepareWebViewInZygote();
     field public static final int LIBLOAD_ADDRESS_SPACE_NOT_RESERVED = 2; // 0x2
     field public static final int LIBLOAD_FAILED_JNI_CALL = 7; // 0x7
@@ -8536,217 +8582,217 @@
     field public static final int LIBLOAD_WRONG_PACKAGE_NAME = 1; // 0x1
   }
 
-  public abstract interface WebViewFactoryProvider {
-    method public abstract android.webkit.WebViewProvider createWebView(android.webkit.WebView, android.webkit.WebView.PrivateAccess);
-    method public abstract android.webkit.CookieManager getCookieManager();
-    method public abstract android.webkit.GeolocationPermissions getGeolocationPermissions();
-    method public abstract android.webkit.ServiceWorkerController getServiceWorkerController();
-    method public abstract android.webkit.WebViewFactoryProvider.Statics getStatics();
-    method public abstract deprecated android.webkit.TokenBindingService getTokenBindingService();
-    method public abstract android.webkit.TracingController getTracingController();
-    method public abstract android.webkit.WebIconDatabase getWebIconDatabase();
-    method public abstract android.webkit.WebStorage getWebStorage();
-    method public abstract java.lang.ClassLoader getWebViewClassLoader();
-    method public abstract android.webkit.WebViewDatabase getWebViewDatabase(android.content.Context);
+  public interface WebViewFactoryProvider {
+    method public android.webkit.WebViewProvider createWebView(android.webkit.WebView, android.webkit.WebView.PrivateAccess);
+    method public android.webkit.CookieManager getCookieManager();
+    method public android.webkit.GeolocationPermissions getGeolocationPermissions();
+    method public android.webkit.ServiceWorkerController getServiceWorkerController();
+    method public android.webkit.WebViewFactoryProvider.Statics getStatics();
+    method @Deprecated public android.webkit.TokenBindingService getTokenBindingService();
+    method public android.webkit.TracingController getTracingController();
+    method public android.webkit.WebIconDatabase getWebIconDatabase();
+    method public android.webkit.WebStorage getWebStorage();
+    method public ClassLoader getWebViewClassLoader();
+    method public android.webkit.WebViewDatabase getWebViewDatabase(android.content.Context);
   }
 
-  public static abstract interface WebViewFactoryProvider.Statics {
-    method public abstract void clearClientCertPreferences(java.lang.Runnable);
-    method public abstract void enableSlowWholeDocumentDraw();
-    method public abstract java.lang.String findAddress(java.lang.String);
-    method public abstract void freeMemoryForTests();
-    method public abstract java.lang.String getDefaultUserAgent(android.content.Context);
-    method public abstract android.net.Uri getSafeBrowsingPrivacyPolicyUrl();
-    method public abstract void initSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
-    method public abstract android.net.Uri[] parseFileChooserResult(int, android.content.Intent);
-    method public abstract void setSafeBrowsingWhitelist(java.util.List<java.lang.String>, android.webkit.ValueCallback<java.lang.Boolean>);
-    method public abstract void setWebContentsDebuggingEnabled(boolean);
+  public static interface WebViewFactoryProvider.Statics {
+    method public void clearClientCertPreferences(Runnable);
+    method public void enableSlowWholeDocumentDraw();
+    method public String findAddress(String);
+    method public void freeMemoryForTests();
+    method public String getDefaultUserAgent(android.content.Context);
+    method @NonNull public android.net.Uri getSafeBrowsingPrivacyPolicyUrl();
+    method public void initSafeBrowsing(android.content.Context, android.webkit.ValueCallback<java.lang.Boolean>);
+    method public android.net.Uri[] parseFileChooserResult(int, android.content.Intent);
+    method public void setSafeBrowsingWhitelist(java.util.List<java.lang.String>, android.webkit.ValueCallback<java.lang.Boolean>);
+    method public void setWebContentsDebuggingEnabled(boolean);
   }
 
-  public abstract interface WebViewProvider {
-    method public abstract void addJavascriptInterface(java.lang.Object, java.lang.String);
-    method public abstract boolean canGoBack();
-    method public abstract boolean canGoBackOrForward(int);
-    method public abstract boolean canGoForward();
-    method public abstract boolean canZoomIn();
-    method public abstract boolean canZoomOut();
-    method public abstract android.graphics.Picture capturePicture();
-    method public abstract void clearCache(boolean);
-    method public abstract void clearFormData();
-    method public abstract void clearHistory();
-    method public abstract void clearMatches();
-    method public abstract void clearSslPreferences();
-    method public abstract void clearView();
-    method public abstract android.webkit.WebBackForwardList copyBackForwardList();
-    method public abstract android.print.PrintDocumentAdapter createPrintDocumentAdapter(java.lang.String);
-    method public abstract android.webkit.WebMessagePort[] createWebMessageChannel();
-    method public abstract void destroy();
-    method public abstract void documentHasImages(android.os.Message);
-    method public abstract void dumpViewHierarchyWithProperties(java.io.BufferedWriter, int);
-    method public abstract void evaluateJavaScript(java.lang.String, android.webkit.ValueCallback<java.lang.String>);
-    method public abstract int findAll(java.lang.String);
-    method public abstract void findAllAsync(java.lang.String);
-    method public abstract android.view.View findHierarchyView(java.lang.String, int);
-    method public abstract void findNext(boolean);
-    method public abstract void flingScroll(int, int);
-    method public abstract void freeMemory();
-    method public abstract android.net.http.SslCertificate getCertificate();
-    method public abstract int getContentHeight();
-    method public abstract int getContentWidth();
-    method public abstract android.graphics.Bitmap getFavicon();
-    method public abstract android.webkit.WebView.HitTestResult getHitTestResult();
-    method public abstract java.lang.String[] getHttpAuthUsernamePassword(java.lang.String, java.lang.String);
-    method public abstract java.lang.String getOriginalUrl();
-    method public abstract int getProgress();
-    method public abstract boolean getRendererPriorityWaivedWhenNotVisible();
-    method public abstract int getRendererRequestedPriority();
-    method public abstract float getScale();
-    method public abstract android.webkit.WebViewProvider.ScrollDelegate getScrollDelegate();
-    method public abstract android.webkit.WebSettings getSettings();
-    method public default android.view.textclassifier.TextClassifier getTextClassifier();
-    method public abstract java.lang.String getTitle();
-    method public abstract java.lang.String getTouchIconUrl();
-    method public abstract java.lang.String getUrl();
-    method public abstract android.webkit.WebViewProvider.ViewDelegate getViewDelegate();
-    method public abstract int getVisibleTitleHeight();
-    method public abstract android.webkit.WebChromeClient getWebChromeClient();
-    method public abstract android.webkit.WebViewClient getWebViewClient();
-    method public abstract android.webkit.WebViewRenderer getWebViewRenderer();
-    method public abstract android.webkit.WebViewRendererClient getWebViewRendererClient();
-    method public abstract android.view.View getZoomControls();
-    method public abstract void goBack();
-    method public abstract void goBackOrForward(int);
-    method public abstract void goForward();
-    method public abstract void init(java.util.Map<java.lang.String, java.lang.Object>, boolean);
-    method public abstract void insertVisualStateCallback(long, android.webkit.WebView.VisualStateCallback);
-    method public abstract void invokeZoomPicker();
-    method public abstract boolean isPaused();
-    method public abstract boolean isPrivateBrowsingEnabled();
-    method public abstract void loadData(java.lang.String, java.lang.String, java.lang.String);
-    method public abstract void loadDataWithBaseURL(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public abstract void loadUrl(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
-    method public abstract void loadUrl(java.lang.String);
-    method public abstract void notifyFindDialogDismissed();
-    method public abstract void onPause();
-    method public abstract void onResume();
-    method public abstract boolean overlayHorizontalScrollbar();
-    method public abstract boolean overlayVerticalScrollbar();
-    method public abstract boolean pageDown(boolean);
-    method public abstract boolean pageUp(boolean);
-    method public abstract void pauseTimers();
-    method public abstract void postMessageToMainFrame(android.webkit.WebMessage, android.net.Uri);
-    method public abstract void postUrl(java.lang.String, byte[]);
-    method public abstract void reload();
-    method public abstract void removeJavascriptInterface(java.lang.String);
-    method public abstract void requestFocusNodeHref(android.os.Message);
-    method public abstract void requestImageRef(android.os.Message);
-    method public abstract boolean restorePicture(android.os.Bundle, java.io.File);
-    method public abstract android.webkit.WebBackForwardList restoreState(android.os.Bundle);
-    method public abstract void resumeTimers();
-    method public abstract void savePassword(java.lang.String, java.lang.String, java.lang.String);
-    method public abstract boolean savePicture(android.os.Bundle, java.io.File);
-    method public abstract android.webkit.WebBackForwardList saveState(android.os.Bundle);
-    method public abstract void saveWebArchive(java.lang.String);
-    method public abstract void saveWebArchive(java.lang.String, boolean, android.webkit.ValueCallback<java.lang.String>);
-    method public abstract void setCertificate(android.net.http.SslCertificate);
-    method public abstract void setDownloadListener(android.webkit.DownloadListener);
-    method public abstract void setFindListener(android.webkit.WebView.FindListener);
-    method public abstract void setHorizontalScrollbarOverlay(boolean);
-    method public abstract void setHttpAuthUsernamePassword(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
-    method public abstract void setInitialScale(int);
-    method public abstract void setMapTrackballToArrowKeys(boolean);
-    method public abstract void setNetworkAvailable(boolean);
-    method public abstract void setPictureListener(android.webkit.WebView.PictureListener);
-    method public abstract void setRendererPriorityPolicy(int, boolean);
-    method public default void setTextClassifier(android.view.textclassifier.TextClassifier);
-    method public abstract void setVerticalScrollbarOverlay(boolean);
-    method public abstract void setWebChromeClient(android.webkit.WebChromeClient);
-    method public abstract void setWebViewClient(android.webkit.WebViewClient);
-    method public abstract void setWebViewRendererClient(java.util.concurrent.Executor, android.webkit.WebViewRendererClient);
-    method public abstract boolean showFindDialog(java.lang.String, boolean);
-    method public abstract void stopLoading();
-    method public abstract boolean zoomBy(float);
-    method public abstract boolean zoomIn();
-    method public abstract boolean zoomOut();
+  public interface WebViewProvider {
+    method public void addJavascriptInterface(Object, String);
+    method public boolean canGoBack();
+    method public boolean canGoBackOrForward(int);
+    method public boolean canGoForward();
+    method public boolean canZoomIn();
+    method public boolean canZoomOut();
+    method public android.graphics.Picture capturePicture();
+    method public void clearCache(boolean);
+    method public void clearFormData();
+    method public void clearHistory();
+    method public void clearMatches();
+    method public void clearSslPreferences();
+    method public void clearView();
+    method public android.webkit.WebBackForwardList copyBackForwardList();
+    method public android.print.PrintDocumentAdapter createPrintDocumentAdapter(String);
+    method public android.webkit.WebMessagePort[] createWebMessageChannel();
+    method public void destroy();
+    method public void documentHasImages(android.os.Message);
+    method public void dumpViewHierarchyWithProperties(java.io.BufferedWriter, int);
+    method public void evaluateJavaScript(String, android.webkit.ValueCallback<java.lang.String>);
+    method public int findAll(String);
+    method public void findAllAsync(String);
+    method public android.view.View findHierarchyView(String, int);
+    method public void findNext(boolean);
+    method public void flingScroll(int, int);
+    method public void freeMemory();
+    method public android.net.http.SslCertificate getCertificate();
+    method public int getContentHeight();
+    method public int getContentWidth();
+    method public android.graphics.Bitmap getFavicon();
+    method public android.webkit.WebView.HitTestResult getHitTestResult();
+    method public String[] getHttpAuthUsernamePassword(String, String);
+    method public String getOriginalUrl();
+    method public int getProgress();
+    method public boolean getRendererPriorityWaivedWhenNotVisible();
+    method public int getRendererRequestedPriority();
+    method public float getScale();
+    method public android.webkit.WebViewProvider.ScrollDelegate getScrollDelegate();
+    method public android.webkit.WebSettings getSettings();
+    method @NonNull public default android.view.textclassifier.TextClassifier getTextClassifier();
+    method public String getTitle();
+    method public String getTouchIconUrl();
+    method public String getUrl();
+    method public android.webkit.WebViewProvider.ViewDelegate getViewDelegate();
+    method public int getVisibleTitleHeight();
+    method public android.webkit.WebChromeClient getWebChromeClient();
+    method public android.webkit.WebViewClient getWebViewClient();
+    method public android.webkit.WebViewRenderer getWebViewRenderer();
+    method public android.webkit.WebViewRendererClient getWebViewRendererClient();
+    method public android.view.View getZoomControls();
+    method public void goBack();
+    method public void goBackOrForward(int);
+    method public void goForward();
+    method public void init(java.util.Map<java.lang.String,java.lang.Object>, boolean);
+    method public void insertVisualStateCallback(long, android.webkit.WebView.VisualStateCallback);
+    method public void invokeZoomPicker();
+    method public boolean isPaused();
+    method public boolean isPrivateBrowsingEnabled();
+    method public void loadData(String, String, String);
+    method public void loadDataWithBaseURL(String, String, String, String, String);
+    method public void loadUrl(String, java.util.Map<java.lang.String,java.lang.String>);
+    method public void loadUrl(String);
+    method public void notifyFindDialogDismissed();
+    method public void onPause();
+    method public void onResume();
+    method public boolean overlayHorizontalScrollbar();
+    method public boolean overlayVerticalScrollbar();
+    method public boolean pageDown(boolean);
+    method public boolean pageUp(boolean);
+    method public void pauseTimers();
+    method public void postMessageToMainFrame(android.webkit.WebMessage, android.net.Uri);
+    method public void postUrl(String, byte[]);
+    method public void reload();
+    method public void removeJavascriptInterface(String);
+    method public void requestFocusNodeHref(android.os.Message);
+    method public void requestImageRef(android.os.Message);
+    method public boolean restorePicture(android.os.Bundle, java.io.File);
+    method public android.webkit.WebBackForwardList restoreState(android.os.Bundle);
+    method public void resumeTimers();
+    method public void savePassword(String, String, String);
+    method public boolean savePicture(android.os.Bundle, java.io.File);
+    method public android.webkit.WebBackForwardList saveState(android.os.Bundle);
+    method public void saveWebArchive(String);
+    method public void saveWebArchive(String, boolean, android.webkit.ValueCallback<java.lang.String>);
+    method public void setCertificate(android.net.http.SslCertificate);
+    method public void setDownloadListener(android.webkit.DownloadListener);
+    method public void setFindListener(android.webkit.WebView.FindListener);
+    method public void setHorizontalScrollbarOverlay(boolean);
+    method public void setHttpAuthUsernamePassword(String, String, String, String);
+    method public void setInitialScale(int);
+    method public void setMapTrackballToArrowKeys(boolean);
+    method public void setNetworkAvailable(boolean);
+    method public void setPictureListener(android.webkit.WebView.PictureListener);
+    method public void setRendererPriorityPolicy(int, boolean);
+    method public default void setTextClassifier(@Nullable android.view.textclassifier.TextClassifier);
+    method public void setVerticalScrollbarOverlay(boolean);
+    method public void setWebChromeClient(android.webkit.WebChromeClient);
+    method public void setWebViewClient(android.webkit.WebViewClient);
+    method public void setWebViewRendererClient(@Nullable java.util.concurrent.Executor, @Nullable android.webkit.WebViewRendererClient);
+    method public boolean showFindDialog(String, boolean);
+    method public void stopLoading();
+    method public boolean zoomBy(float);
+    method public boolean zoomIn();
+    method public boolean zoomOut();
   }
 
-  public static abstract interface WebViewProvider.ScrollDelegate {
-    method public abstract int computeHorizontalScrollOffset();
-    method public abstract int computeHorizontalScrollRange();
-    method public abstract void computeScroll();
-    method public abstract int computeVerticalScrollExtent();
-    method public abstract int computeVerticalScrollOffset();
-    method public abstract int computeVerticalScrollRange();
+  public static interface WebViewProvider.ScrollDelegate {
+    method public int computeHorizontalScrollOffset();
+    method public int computeHorizontalScrollRange();
+    method public void computeScroll();
+    method public int computeVerticalScrollExtent();
+    method public int computeVerticalScrollOffset();
+    method public int computeVerticalScrollRange();
   }
 
-  public static abstract interface WebViewProvider.ViewDelegate {
+  public static interface WebViewProvider.ViewDelegate {
     method public default void autofill(android.util.SparseArray<android.view.autofill.AutofillValue>);
-    method public abstract boolean dispatchKeyEvent(android.view.KeyEvent);
-    method public abstract android.view.View findFocus(android.view.View);
-    method public abstract android.view.accessibility.AccessibilityNodeProvider getAccessibilityNodeProvider();
-    method public abstract android.os.Handler getHandler(android.os.Handler);
+    method public boolean dispatchKeyEvent(android.view.KeyEvent);
+    method public android.view.View findFocus(android.view.View);
+    method public android.view.accessibility.AccessibilityNodeProvider getAccessibilityNodeProvider();
+    method public android.os.Handler getHandler(android.os.Handler);
     method public default boolean isVisibleToUserForAutofill(int);
-    method public abstract void onActivityResult(int, int, android.content.Intent);
-    method public abstract void onAttachedToWindow();
+    method public void onActivityResult(int, int, android.content.Intent);
+    method public void onAttachedToWindow();
     method public default boolean onCheckIsTextEditor();
-    method public abstract void onConfigurationChanged(android.content.res.Configuration);
-    method public abstract android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo);
-    method public abstract void onDetachedFromWindow();
-    method public abstract boolean onDragEvent(android.view.DragEvent);
-    method public abstract void onDraw(android.graphics.Canvas);
-    method public abstract void onDrawVerticalScrollBar(android.graphics.Canvas, android.graphics.drawable.Drawable, int, int, int, int);
-    method public abstract void onFinishTemporaryDetach();
-    method public abstract void onFocusChanged(boolean, int, android.graphics.Rect);
-    method public abstract boolean onGenericMotionEvent(android.view.MotionEvent);
-    method public abstract boolean onHoverEvent(android.view.MotionEvent);
-    method public abstract void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
-    method public abstract void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo);
-    method public abstract boolean onKeyDown(int, android.view.KeyEvent);
-    method public abstract boolean onKeyMultiple(int, int, android.view.KeyEvent);
-    method public abstract boolean onKeyUp(int, android.view.KeyEvent);
-    method public abstract void onMeasure(int, int);
+    method public void onConfigurationChanged(android.content.res.Configuration);
+    method public android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo);
+    method public void onDetachedFromWindow();
+    method public boolean onDragEvent(android.view.DragEvent);
+    method public void onDraw(android.graphics.Canvas);
+    method public void onDrawVerticalScrollBar(android.graphics.Canvas, android.graphics.drawable.Drawable, int, int, int, int);
+    method public void onFinishTemporaryDetach();
+    method public void onFocusChanged(boolean, int, android.graphics.Rect);
+    method public boolean onGenericMotionEvent(android.view.MotionEvent);
+    method public boolean onHoverEvent(android.view.MotionEvent);
+    method public void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
+    method public void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo);
+    method public boolean onKeyDown(int, android.view.KeyEvent);
+    method public boolean onKeyMultiple(int, int, android.view.KeyEvent);
+    method public boolean onKeyUp(int, android.view.KeyEvent);
+    method public void onMeasure(int, int);
     method public default void onMovedToDisplay(int, android.content.res.Configuration);
-    method public abstract void onOverScrolled(int, int, boolean, boolean);
+    method public void onOverScrolled(int, int, boolean, boolean);
     method public default void onProvideAutofillVirtualStructure(android.view.ViewStructure, int);
     method public default void onProvideContentCaptureStructure(android.view.ViewStructure, int);
-    method public abstract void onProvideVirtualStructure(android.view.ViewStructure);
-    method public abstract void onScrollChanged(int, int, int, int);
-    method public abstract void onSizeChanged(int, int, int, int);
-    method public abstract void onStartTemporaryDetach();
-    method public abstract boolean onTouchEvent(android.view.MotionEvent);
-    method public abstract boolean onTrackballEvent(android.view.MotionEvent);
-    method public abstract void onVisibilityChanged(android.view.View, int);
-    method public abstract void onWindowFocusChanged(boolean);
-    method public abstract void onWindowVisibilityChanged(int);
-    method public abstract boolean performAccessibilityAction(int, android.os.Bundle);
-    method public abstract boolean performLongClick();
-    method public abstract void preDispatchDraw(android.graphics.Canvas);
-    method public abstract boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean);
-    method public abstract boolean requestFocus(int, android.graphics.Rect);
-    method public abstract void setBackgroundColor(int);
-    method public abstract boolean setFrame(int, int, int, int);
-    method public abstract void setLayerType(int, android.graphics.Paint);
-    method public abstract void setLayoutParams(android.view.ViewGroup.LayoutParams);
-    method public abstract void setOverScrollMode(int);
-    method public abstract void setScrollBarStyle(int);
-    method public abstract boolean shouldDelayChildPressedState();
+    method public void onProvideVirtualStructure(android.view.ViewStructure);
+    method public void onScrollChanged(int, int, int, int);
+    method public void onSizeChanged(int, int, int, int);
+    method public void onStartTemporaryDetach();
+    method public boolean onTouchEvent(android.view.MotionEvent);
+    method public boolean onTrackballEvent(android.view.MotionEvent);
+    method public void onVisibilityChanged(android.view.View, int);
+    method public void onWindowFocusChanged(boolean);
+    method public void onWindowVisibilityChanged(int);
+    method public boolean performAccessibilityAction(int, android.os.Bundle);
+    method public boolean performLongClick();
+    method public void preDispatchDraw(android.graphics.Canvas);
+    method public boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean);
+    method public boolean requestFocus(int, android.graphics.Rect);
+    method public void setBackgroundColor(int);
+    method public boolean setFrame(int, int, int, int);
+    method public void setLayerType(int, android.graphics.Paint);
+    method public void setLayoutParams(android.view.ViewGroup.LayoutParams);
+    method public void setOverScrollMode(int);
+    method public void setScrollBarStyle(int);
+    method public boolean shouldDelayChildPressedState();
   }
 
   public final class WebViewProviderInfo implements android.os.Parcelable {
-    ctor public WebViewProviderInfo(java.lang.String, java.lang.String, boolean, boolean, java.lang.String[]);
+    ctor public WebViewProviderInfo(String, String, boolean, boolean, String[]);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.webkit.WebViewProviderInfo> CREATOR;
     field public final boolean availableByDefault;
-    field public final java.lang.String description;
+    field public final String description;
     field public final boolean isFallback;
-    field public final java.lang.String packageName;
+    field public final String packageName;
     field public final android.content.pm.Signature[] signatures;
   }
 
   public final class WebViewUpdateService {
     method public static android.webkit.WebViewProviderInfo[] getAllWebViewPackages();
-    method public static java.lang.String getCurrentWebViewPackageName();
+    method public static String getCurrentWebViewPackageName();
     method public static android.webkit.WebViewProviderInfo[] getValidWebViewPackages();
   }
 
diff --git a/api/system-removed.txt b/api/system-removed.txt
index 5a7ec8b..22a3fb3 100644
--- a/api/system-removed.txt
+++ b/api/system-removed.txt
@@ -1,7 +1,8 @@
+// Signature format: 2.0
 package android {
 
   public static final class Manifest.permission {
-    field public static final java.lang.String MANAGE_DEVICE_ADMINS = "android.permission.MANAGE_DEVICE_ADMINS";
+    field public static final String MANAGE_DEVICE_ADMINS = "android.permission.MANAGE_DEVICE_ADMINS";
   }
 
 }
@@ -9,11 +10,11 @@
 package android.app {
 
   public class Notification implements android.os.Parcelable {
-    method public static java.lang.Class<? extends android.app.Notification.Style> getNotificationStyleClass(java.lang.String);
+    method public static Class<? extends android.app.Notification.Style> getNotificationStyleClass(String);
   }
 
   public static final class Notification.TvExtender implements android.app.Notification.Extender {
-    method public deprecated java.lang.String getChannel();
+    method @Deprecated public String getChannel();
   }
 
 }
@@ -21,8 +22,8 @@
 package android.app.admin {
 
   public class DevicePolicyManager {
-    method public deprecated java.lang.String getDeviceInitializerApp();
-    method public deprecated android.content.ComponentName getDeviceInitializerComponent();
+    method @Deprecated @Nullable public String getDeviceInitializerApp();
+    method @Deprecated @Nullable public android.content.ComponentName getDeviceInitializerComponent();
   }
 
 }
@@ -30,31 +31,31 @@
 package android.content {
 
   public class Intent implements java.lang.Cloneable android.os.Parcelable {
-    field public static final deprecated java.lang.String ACTION_DEVICE_INITIALIZATION_WIZARD = "android.intent.action.DEVICE_INITIALIZATION_WIZARD";
-    field public static final deprecated java.lang.String ACTION_MASTER_CLEAR = "android.intent.action.MASTER_CLEAR";
-    field public static final deprecated java.lang.String ACTION_SERVICE_STATE = "android.intent.action.SERVICE_STATE";
-    field public static final deprecated java.lang.String EXTRA_CDMA_DEFAULT_ROAMING_INDICATOR = "cdmaDefaultRoamingIndicator";
-    field public static final deprecated java.lang.String EXTRA_CDMA_ROAMING_INDICATOR = "cdmaRoamingIndicator";
-    field public static final deprecated java.lang.String EXTRA_CSS_INDICATOR = "cssIndicator";
-    field public static final deprecated java.lang.String EXTRA_DATA_OPERATOR_ALPHA_LONG = "data-operator-alpha-long";
-    field public static final deprecated java.lang.String EXTRA_DATA_OPERATOR_ALPHA_SHORT = "data-operator-alpha-short";
-    field public static final deprecated java.lang.String EXTRA_DATA_OPERATOR_NUMERIC = "data-operator-numeric";
-    field public static final deprecated java.lang.String EXTRA_DATA_RADIO_TECH = "dataRadioTechnology";
-    field public static final deprecated java.lang.String EXTRA_DATA_REG_STATE = "dataRegState";
-    field public static final deprecated java.lang.String EXTRA_DATA_ROAMING_TYPE = "dataRoamingType";
-    field public static final deprecated java.lang.String EXTRA_EMERGENCY_ONLY = "emergencyOnly";
-    field public static final deprecated java.lang.String EXTRA_IS_DATA_ROAMING_FROM_REGISTRATION = "isDataRoamingFromRegistration";
-    field public static final deprecated java.lang.String EXTRA_IS_USING_CARRIER_AGGREGATION = "isUsingCarrierAggregation";
-    field public static final deprecated java.lang.String EXTRA_LTE_EARFCN_RSRP_BOOST = "LteEarfcnRsrpBoost";
-    field public static final deprecated java.lang.String EXTRA_MANUAL = "manual";
-    field public static final deprecated java.lang.String EXTRA_NETWORK_ID = "networkId";
-    field public static final deprecated java.lang.String EXTRA_OPERATOR_ALPHA_LONG = "operator-alpha-long";
-    field public static final deprecated java.lang.String EXTRA_OPERATOR_ALPHA_SHORT = "operator-alpha-short";
-    field public static final deprecated java.lang.String EXTRA_OPERATOR_NUMERIC = "operator-numeric";
-    field public static final deprecated java.lang.String EXTRA_SYSTEM_ID = "systemId";
-    field public static final deprecated java.lang.String EXTRA_VOICE_RADIO_TECH = "radioTechnology";
-    field public static final deprecated java.lang.String EXTRA_VOICE_REG_STATE = "voiceRegState";
-    field public static final deprecated java.lang.String EXTRA_VOICE_ROAMING_TYPE = "voiceRoamingType";
+    field @Deprecated public static final String ACTION_DEVICE_INITIALIZATION_WIZARD = "android.intent.action.DEVICE_INITIALIZATION_WIZARD";
+    field @Deprecated public static final String ACTION_MASTER_CLEAR = "android.intent.action.MASTER_CLEAR";
+    field @Deprecated public static final String ACTION_SERVICE_STATE = "android.intent.action.SERVICE_STATE";
+    field @Deprecated public static final String EXTRA_CDMA_DEFAULT_ROAMING_INDICATOR = "cdmaDefaultRoamingIndicator";
+    field @Deprecated public static final String EXTRA_CDMA_ROAMING_INDICATOR = "cdmaRoamingIndicator";
+    field @Deprecated public static final String EXTRA_CSS_INDICATOR = "cssIndicator";
+    field @Deprecated public static final String EXTRA_DATA_OPERATOR_ALPHA_LONG = "data-operator-alpha-long";
+    field @Deprecated public static final String EXTRA_DATA_OPERATOR_ALPHA_SHORT = "data-operator-alpha-short";
+    field @Deprecated public static final String EXTRA_DATA_OPERATOR_NUMERIC = "data-operator-numeric";
+    field @Deprecated public static final String EXTRA_DATA_RADIO_TECH = "dataRadioTechnology";
+    field @Deprecated public static final String EXTRA_DATA_REG_STATE = "dataRegState";
+    field @Deprecated public static final String EXTRA_DATA_ROAMING_TYPE = "dataRoamingType";
+    field @Deprecated public static final String EXTRA_EMERGENCY_ONLY = "emergencyOnly";
+    field @Deprecated public static final String EXTRA_IS_DATA_ROAMING_FROM_REGISTRATION = "isDataRoamingFromRegistration";
+    field @Deprecated public static final String EXTRA_IS_USING_CARRIER_AGGREGATION = "isUsingCarrierAggregation";
+    field @Deprecated public static final String EXTRA_LTE_EARFCN_RSRP_BOOST = "LteEarfcnRsrpBoost";
+    field @Deprecated public static final String EXTRA_MANUAL = "manual";
+    field @Deprecated public static final String EXTRA_NETWORK_ID = "networkId";
+    field @Deprecated public static final String EXTRA_OPERATOR_ALPHA_LONG = "operator-alpha-long";
+    field @Deprecated public static final String EXTRA_OPERATOR_ALPHA_SHORT = "operator-alpha-short";
+    field @Deprecated public static final String EXTRA_OPERATOR_NUMERIC = "operator-numeric";
+    field @Deprecated public static final String EXTRA_SYSTEM_ID = "systemId";
+    field @Deprecated public static final String EXTRA_VOICE_RADIO_TECH = "radioTechnology";
+    field @Deprecated public static final String EXTRA_VOICE_REG_STATE = "voiceRegState";
+    field @Deprecated public static final String EXTRA_VOICE_ROAMING_TYPE = "voiceRoamingType";
   }
 
 }
@@ -62,7 +63,7 @@
 package android.media.tv {
 
   public final class TvInputManager {
-    method public android.media.tv.TvInputManager.Hardware acquireTvInputHardware(int, android.media.tv.TvInputManager.HardwareCallback, android.media.tv.TvInputInfo);
+    method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public android.media.tv.TvInputManager.Hardware acquireTvInputHardware(int, android.media.tv.TvInputManager.HardwareCallback, android.media.tv.TvInputInfo);
   }
 
   public static final class TvInputManager.Hardware {
@@ -73,7 +74,7 @@
 
 package android.net.wifi {
 
-  public deprecated class BatchedScanResult implements android.os.Parcelable {
+  @Deprecated public class BatchedScanResult implements android.os.Parcelable {
     ctor public BatchedScanResult();
     ctor public BatchedScanResult(android.net.wifi.BatchedScanResult);
     field public final java.util.List<android.net.wifi.ScanResult> scanResults;
@@ -93,8 +94,8 @@
   }
 
   public final class PowerManager {
-    method public deprecated boolean isScreenBrightnessBoosted();
-    field public static final deprecated java.lang.String ACTION_SCREEN_BRIGHTNESS_BOOST_CHANGED = "android.os.action.SCREEN_BRIGHTNESS_BOOST_CHANGED";
+    method @Deprecated public boolean isScreenBrightnessBoosted();
+    field @Deprecated public static final String ACTION_SCREEN_BRIGHTNESS_BOOST_CHANGED = "android.os.action.SCREEN_BRIGHTNESS_BOOST_CHANGED";
   }
 
 }
@@ -103,10 +104,10 @@
 
   public abstract class NotificationListenerService extends android.app.Service {
     method public android.service.notification.StatusBarNotification[] getActiveNotifications(int);
-    method public android.service.notification.StatusBarNotification[] getActiveNotifications(java.lang.String[], int);
+    method public android.service.notification.StatusBarNotification[] getActiveNotifications(String[], int);
     method public void registerAsSystemService(android.content.Context, android.content.ComponentName, int) throws android.os.RemoteException;
     method public final void setOnNotificationPostedTrim(int);
-    method public final void snoozeNotification(java.lang.String, java.lang.String);
+    method public final void snoozeNotification(String, String);
     method public void unregisterAsSystemService() throws android.os.RemoteException;
     field public static final int TRIM_FULL = 0; // 0x0
     field public static final int TRIM_LIGHT = 1; // 0x1
@@ -122,9 +123,9 @@
 package android.telephony {
 
   public class TelephonyManager {
-    method public deprecated void answerRingingCall();
-    method public deprecated boolean endCall();
-    method public deprecated void silenceRinger();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void answerRingingCall();
+    method @Deprecated @RequiresPermission(android.Manifest.permission.CALL_PHONE) public boolean endCall();
+    method @Deprecated public void silenceRinger();
   }
 
 }
diff --git a/api/test-current.txt b/api/test-current.txt
index e0e0f35..fb25d13 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -1,16 +1,17 @@
+// Signature format: 2.0
 package android {
 
   public static final class Manifest.permission {
-    field public static final java.lang.String ACCESS_NOTIFICATIONS = "android.permission.ACCESS_NOTIFICATIONS";
-    field public static final java.lang.String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING";
-    field public static final java.lang.String BRIGHTNESS_SLIDER_USAGE = "android.permission.BRIGHTNESS_SLIDER_USAGE";
-    field public static final java.lang.String CHANGE_APP_IDLE_STATE = "android.permission.CHANGE_APP_IDLE_STATE";
-    field public static final java.lang.String CONFIGURE_DISPLAY_BRIGHTNESS = "android.permission.CONFIGURE_DISPLAY_BRIGHTNESS";
-    field public static final java.lang.String FORCE_STOP_PACKAGES = "android.permission.FORCE_STOP_PACKAGES";
-    field public static final java.lang.String MANAGE_ACTIVITY_STACKS = "android.permission.MANAGE_ACTIVITY_STACKS";
-    field public static final java.lang.String READ_CELL_BROADCASTS = "android.permission.READ_CELL_BROADCASTS";
-    field public static final java.lang.String REMOVE_TASKS = "android.permission.REMOVE_TASKS";
-    field public static final java.lang.String WRITE_OBB = "android.permission.WRITE_OBB";
+    field public static final String ACCESS_NOTIFICATIONS = "android.permission.ACCESS_NOTIFICATIONS";
+    field public static final String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING";
+    field public static final String BRIGHTNESS_SLIDER_USAGE = "android.permission.BRIGHTNESS_SLIDER_USAGE";
+    field public static final String CHANGE_APP_IDLE_STATE = "android.permission.CHANGE_APP_IDLE_STATE";
+    field public static final String CONFIGURE_DISPLAY_BRIGHTNESS = "android.permission.CONFIGURE_DISPLAY_BRIGHTNESS";
+    field public static final String FORCE_STOP_PACKAGES = "android.permission.FORCE_STOP_PACKAGES";
+    field public static final String MANAGE_ACTIVITY_STACKS = "android.permission.MANAGE_ACTIVITY_STACKS";
+    field public static final String READ_CELL_BROADCASTS = "android.permission.READ_CELL_BROADCASTS";
+    field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS";
+    field public static final String WRITE_OBB = "android.permission.WRITE_OBB";
   }
 
 }
@@ -32,18 +33,18 @@
   }
 
   public class ActivityManager {
-    method public void addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int);
+    method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public void addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int);
     method public void alwaysShowUnsupportedCompileSdkWarning(android.content.ComponentName);
-    method public void forceStopPackage(java.lang.String);
-    method public int getPackageImportance(java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.FORCE_STOP_PACKAGES) public void forceStopPackage(String);
+    method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int getPackageImportance(String);
     method public long getTotalRam();
-    method public int getUidImportance(int);
-    method public void removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener);
-    method public void scheduleApplicationInfoChanged(java.util.List<java.lang.String>, int);
+    method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int getUidImportance(int);
+    method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public void removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener);
+    method @RequiresPermission(android.Manifest.permission.CHANGE_CONFIGURATION) public void scheduleApplicationInfoChanged(java.util.List<java.lang.String>, int);
   }
 
-  public static abstract interface ActivityManager.OnUidImportanceListener {
-    method public abstract void onUidImportance(int, int);
+  public static interface ActivityManager.OnUidImportanceListener {
+    method public void onUidImportance(int, int);
   }
 
   public static class ActivityManager.RunningAppProcessInfo implements android.os.Parcelable {
@@ -51,7 +52,7 @@
   }
 
   public static class ActivityManager.TaskDescription implements android.os.Parcelable {
-    method public java.lang.String getIconFilename();
+    method public String getIconFilename();
     method public int getIconResource();
   }
 
@@ -63,21 +64,21 @@
   }
 
   public class ActivityTaskManager {
-    method public void clearLaunchParamsForPackages(java.util.List<java.lang.String>);
-    method public java.lang.String listAllStacks();
-    method public void moveTaskToStack(int, int, boolean);
-    method public boolean moveTopActivityToPinnedStack(int, android.graphics.Rect);
-    method public void removeStacksInWindowingModes(int[]) throws java.lang.SecurityException;
-    method public void removeStacksWithActivityTypes(int[]) throws java.lang.SecurityException;
-    method public void resizeDockedStack(android.graphics.Rect, android.graphics.Rect);
-    method public void resizeStack(int, android.graphics.Rect) throws java.lang.SecurityException;
-    method public void resizeStack(int, android.graphics.Rect, boolean);
-    method public void resizeTask(int, android.graphics.Rect);
-    method public void setDisplayToSingleTaskInstance(int);
-    method public void setTaskWindowingMode(int, int, boolean) throws java.lang.SecurityException;
-    method public void setTaskWindowingModeSplitScreenPrimary(int, int, boolean, boolean, android.graphics.Rect, boolean) throws java.lang.SecurityException;
-    method public void startSystemLockTaskMode(int);
-    method public void stopSystemLockTaskMode();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void clearLaunchParamsForPackages(java.util.List<java.lang.String>);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public String listAllStacks();
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void moveTaskToStack(int, int, boolean);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public boolean moveTopActivityToPinnedStack(int, android.graphics.Rect);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void removeStacksInWindowingModes(int[]) throws java.lang.SecurityException;
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void removeStacksWithActivityTypes(int[]) throws java.lang.SecurityException;
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void resizeDockedStack(android.graphics.Rect, android.graphics.Rect);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void resizeStack(int, android.graphics.Rect) throws java.lang.SecurityException;
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void resizeStack(int, android.graphics.Rect, boolean);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void resizeTask(int, android.graphics.Rect);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void setDisplayToSingleTaskInstance(int);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void setTaskWindowingMode(int, int, boolean) throws java.lang.SecurityException;
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void setTaskWindowingModeSplitScreenPrimary(int, int, boolean, boolean, android.graphics.Rect, boolean) throws java.lang.SecurityException;
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void startSystemLockTaskMode(int);
+    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void stopSystemLockTaskMode();
     method public static boolean supportsMultiWindow(android.content.Context);
     method public static boolean supportsSplitScreenMultiWindow(android.content.Context);
     field public static final int INVALID_STACK_ID = -1; // 0xffffffff
@@ -90,69 +91,69 @@
   }
 
   public class AppOpsManager {
-    method public void addHistoricalOps(android.app.AppOpsManager.HistoricalOps);
-    method public void clearHistory();
-    method public void getHistoricalOps(int, java.lang.String, java.lang.String[], long, long, java.util.concurrent.Executor, java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>);
-    method public void getHistoricalOpsFromDiskRaw(int, java.lang.String, java.lang.String[], long, long, java.util.concurrent.Executor, java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>);
+    method @RequiresPermission("android.permission.MANAGE_APPOPS") public void addHistoricalOps(@NonNull android.app.AppOpsManager.HistoricalOps);
+    method @RequiresPermission("android.permission.MANAGE_APPOPS") public void clearHistory();
+    method @RequiresPermission("android.permission.GET_APP_OPS_STATS") public void getHistoricalOps(int, @Nullable String, @Nullable String[], long, long, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>);
+    method @RequiresPermission("android.permission.GET_APP_OPS_STATS") public void getHistoricalOpsFromDiskRaw(int, @Nullable String, @Nullable String[], long, long, @Nullable java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>);
     method public static int getNumOps();
-    method public static java.lang.String[] getOpStrs();
-    method public boolean isOperationActive(int, int, java.lang.String);
-    method public void offsetHistory(long);
-    method public static java.lang.String opToPermission(int);
-    method public static int permissionToOpCode(java.lang.String);
-    method public void resetHistoryParameters();
-    method public void setHistoryParameters(int, long, int);
-    method public void setMode(int, int, java.lang.String, int);
-    method public void setUidMode(java.lang.String, int, int);
-    method public void startWatchingActive(int[], android.app.AppOpsManager.OnOpActiveChangedListener);
-    method public void stopWatchingActive(android.app.AppOpsManager.OnOpActiveChangedListener);
-    method public static int strOpToOp(java.lang.String);
+    method public static String[] getOpStrs();
+    method public boolean isOperationActive(int, int, String);
+    method @RequiresPermission("android.permission.MANAGE_APPOPS") public void offsetHistory(long);
+    method public static String opToPermission(int);
+    method public static int permissionToOpCode(String);
+    method @RequiresPermission("android.permission.MANAGE_APPOPS") public void resetHistoryParameters();
+    method @RequiresPermission("android.permission.MANAGE_APPOPS") public void setHistoryParameters(int, long, int);
+    method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setMode(int, int, String, int);
+    method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setUidMode(String, int, int);
+    method public void startWatchingActive(@NonNull int[], @NonNull android.app.AppOpsManager.OnOpActiveChangedListener);
+    method public void stopWatchingActive(@NonNull android.app.AppOpsManager.OnOpActiveChangedListener);
+    method public static int strOpToOp(String);
     field public static final int HISTORICAL_MODE_DISABLED = 0; // 0x0
     field public static final int HISTORICAL_MODE_ENABLED_ACTIVE = 1; // 0x1
     field public static final int HISTORICAL_MODE_ENABLED_PASSIVE = 2; // 0x2
-    field public static final java.lang.String OPSTR_ACCEPT_HANDOVER = "android:accept_handover";
-    field public static final java.lang.String OPSTR_ACCESS_NOTIFICATIONS = "android:access_notifications";
-    field public static final java.lang.String OPSTR_ACTIVATE_VPN = "android:activate_vpn";
-    field public static final java.lang.String OPSTR_ASSIST_SCREENSHOT = "android:assist_screenshot";
-    field public static final java.lang.String OPSTR_ASSIST_STRUCTURE = "android:assist_structure";
-    field public static final java.lang.String OPSTR_AUDIO_ACCESSIBILITY_VOLUME = "android:audio_accessibility_volume";
-    field public static final java.lang.String OPSTR_AUDIO_ALARM_VOLUME = "android:audio_alarm_volume";
-    field public static final java.lang.String OPSTR_AUDIO_BLUETOOTH_VOLUME = "android:audio_bluetooth_volume";
-    field public static final java.lang.String OPSTR_AUDIO_MASTER_VOLUME = "android:audio_master_volume";
-    field public static final java.lang.String OPSTR_AUDIO_MEDIA_VOLUME = "android:audio_media_volume";
-    field public static final java.lang.String OPSTR_AUDIO_NOTIFICATION_VOLUME = "android:audio_notification_volume";
-    field public static final java.lang.String OPSTR_AUDIO_RING_VOLUME = "android:audio_ring_volume";
-    field public static final java.lang.String OPSTR_AUDIO_VOICE_VOLUME = "android:audio_voice_volume";
-    field public static final java.lang.String OPSTR_BIND_ACCESSIBILITY_SERVICE = "android:bind_accessibility_service";
-    field public static final java.lang.String OPSTR_CHANGE_WIFI_STATE = "android:change_wifi_state";
-    field public static final java.lang.String OPSTR_GET_ACCOUNTS = "android:get_accounts";
-    field public static final java.lang.String OPSTR_GPS = "android:gps";
-    field public static final java.lang.String OPSTR_INSTANT_APP_START_FOREGROUND = "android:instant_app_start_foreground";
-    field public static final java.lang.String OPSTR_MANAGE_IPSEC_TUNNELS = "android:manage_ipsec_tunnels";
-    field public static final java.lang.String OPSTR_MUTE_MICROPHONE = "android:mute_microphone";
-    field public static final java.lang.String OPSTR_NEIGHBORING_CELLS = "android:neighboring_cells";
-    field public static final java.lang.String OPSTR_PLAY_AUDIO = "android:play_audio";
-    field public static final java.lang.String OPSTR_POST_NOTIFICATION = "android:post_notification";
-    field public static final java.lang.String OPSTR_PROJECT_MEDIA = "android:project_media";
-    field public static final java.lang.String OPSTR_READ_CLIPBOARD = "android:read_clipboard";
-    field public static final java.lang.String OPSTR_READ_ICC_SMS = "android:read_icc_sms";
-    field public static final java.lang.String OPSTR_RECEIVE_EMERGENCY_BROADCAST = "android:receive_emergency_broadcast";
-    field public static final java.lang.String OPSTR_REQUEST_DELETE_PACKAGES = "android:request_delete_packages";
-    field public static final java.lang.String OPSTR_REQUEST_INSTALL_PACKAGES = "android:request_install_packages";
-    field public static final java.lang.String OPSTR_RUN_ANY_IN_BACKGROUND = "android:run_any_in_background";
-    field public static final java.lang.String OPSTR_RUN_IN_BACKGROUND = "android:run_in_background";
-    field public static final java.lang.String OPSTR_START_FOREGROUND = "android:start_foreground";
-    field public static final java.lang.String OPSTR_TAKE_AUDIO_FOCUS = "android:take_audio_focus";
-    field public static final java.lang.String OPSTR_TAKE_MEDIA_BUTTONS = "android:take_media_buttons";
-    field public static final java.lang.String OPSTR_TOAST_WINDOW = "android:toast_window";
-    field public static final java.lang.String OPSTR_TURN_SCREEN_ON = "android:turn_screen_on";
-    field public static final java.lang.String OPSTR_VIBRATE = "android:vibrate";
-    field public static final java.lang.String OPSTR_WAKE_LOCK = "android:wake_lock";
-    field public static final java.lang.String OPSTR_WIFI_SCAN = "android:wifi_scan";
-    field public static final java.lang.String OPSTR_WRITE_CLIPBOARD = "android:write_clipboard";
-    field public static final java.lang.String OPSTR_WRITE_ICC_SMS = "android:write_icc_sms";
-    field public static final java.lang.String OPSTR_WRITE_SMS = "android:write_sms";
-    field public static final java.lang.String OPSTR_WRITE_WALLPAPER = "android:write_wallpaper";
+    field public static final String OPSTR_ACCEPT_HANDOVER = "android:accept_handover";
+    field public static final String OPSTR_ACCESS_NOTIFICATIONS = "android:access_notifications";
+    field public static final String OPSTR_ACTIVATE_VPN = "android:activate_vpn";
+    field public static final String OPSTR_ASSIST_SCREENSHOT = "android:assist_screenshot";
+    field public static final String OPSTR_ASSIST_STRUCTURE = "android:assist_structure";
+    field public static final String OPSTR_AUDIO_ACCESSIBILITY_VOLUME = "android:audio_accessibility_volume";
+    field public static final String OPSTR_AUDIO_ALARM_VOLUME = "android:audio_alarm_volume";
+    field public static final String OPSTR_AUDIO_BLUETOOTH_VOLUME = "android:audio_bluetooth_volume";
+    field public static final String OPSTR_AUDIO_MASTER_VOLUME = "android:audio_master_volume";
+    field public static final String OPSTR_AUDIO_MEDIA_VOLUME = "android:audio_media_volume";
+    field public static final String OPSTR_AUDIO_NOTIFICATION_VOLUME = "android:audio_notification_volume";
+    field public static final String OPSTR_AUDIO_RING_VOLUME = "android:audio_ring_volume";
+    field public static final String OPSTR_AUDIO_VOICE_VOLUME = "android:audio_voice_volume";
+    field public static final String OPSTR_BIND_ACCESSIBILITY_SERVICE = "android:bind_accessibility_service";
+    field public static final String OPSTR_CHANGE_WIFI_STATE = "android:change_wifi_state";
+    field public static final String OPSTR_GET_ACCOUNTS = "android:get_accounts";
+    field public static final String OPSTR_GPS = "android:gps";
+    field public static final String OPSTR_INSTANT_APP_START_FOREGROUND = "android:instant_app_start_foreground";
+    field public static final String OPSTR_MANAGE_IPSEC_TUNNELS = "android:manage_ipsec_tunnels";
+    field public static final String OPSTR_MUTE_MICROPHONE = "android:mute_microphone";
+    field public static final String OPSTR_NEIGHBORING_CELLS = "android:neighboring_cells";
+    field public static final String OPSTR_PLAY_AUDIO = "android:play_audio";
+    field public static final String OPSTR_POST_NOTIFICATION = "android:post_notification";
+    field public static final String OPSTR_PROJECT_MEDIA = "android:project_media";
+    field public static final String OPSTR_READ_CLIPBOARD = "android:read_clipboard";
+    field public static final String OPSTR_READ_ICC_SMS = "android:read_icc_sms";
+    field public static final String OPSTR_RECEIVE_EMERGENCY_BROADCAST = "android:receive_emergency_broadcast";
+    field public static final String OPSTR_REQUEST_DELETE_PACKAGES = "android:request_delete_packages";
+    field public static final String OPSTR_REQUEST_INSTALL_PACKAGES = "android:request_install_packages";
+    field public static final String OPSTR_RUN_ANY_IN_BACKGROUND = "android:run_any_in_background";
+    field public static final String OPSTR_RUN_IN_BACKGROUND = "android:run_in_background";
+    field public static final String OPSTR_START_FOREGROUND = "android:start_foreground";
+    field public static final String OPSTR_TAKE_AUDIO_FOCUS = "android:take_audio_focus";
+    field public static final String OPSTR_TAKE_MEDIA_BUTTONS = "android:take_media_buttons";
+    field public static final String OPSTR_TOAST_WINDOW = "android:toast_window";
+    field public static final String OPSTR_TURN_SCREEN_ON = "android:turn_screen_on";
+    field public static final String OPSTR_VIBRATE = "android:vibrate";
+    field public static final String OPSTR_WAKE_LOCK = "android:wake_lock";
+    field public static final String OPSTR_WIFI_SCAN = "android:wifi_scan";
+    field public static final String OPSTR_WRITE_CLIPBOARD = "android:write_clipboard";
+    field public static final String OPSTR_WRITE_ICC_SMS = "android:write_icc_sms";
+    field public static final String OPSTR_WRITE_SMS = "android:write_sms";
+    field public static final String OPSTR_WRITE_WALLPAPER = "android:write_wallpaper";
     field public static final int OP_COARSE_LOCATION = 0; // 0x0
     field public static final int OP_RECORD_AUDIO = 27; // 0x1b
     field public static final int OP_SYSTEM_ALERT_WINDOW = 24; // 0x18
@@ -174,7 +175,7 @@
     method public long getForegroundAccessCount();
     method public long getForegroundAccessDuration();
     method public long getForegroundRejectCount();
-    method public java.lang.String getOpName();
+    method @NonNull public String getOpName();
     method public long getRejectCount(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalOp> CREATOR;
@@ -186,11 +187,11 @@
     method public long getBeginTimeMillis();
     method public long getEndTimeMillis();
     method public int getUidCount();
-    method public android.app.AppOpsManager.HistoricalUidOps getUidOps(int);
-    method public android.app.AppOpsManager.HistoricalUidOps getUidOpsAt(int);
-    method public void increaseAccessCount(int, int, java.lang.String, int, long);
-    method public void increaseAccessDuration(int, int, java.lang.String, int, long);
-    method public void increaseRejectCount(int, int, java.lang.String, int, long);
+    method @Nullable public android.app.AppOpsManager.HistoricalUidOps getUidOps(int);
+    method @NonNull public android.app.AppOpsManager.HistoricalUidOps getUidOpsAt(int);
+    method public void increaseAccessCount(int, int, @NonNull String, int, long);
+    method public void increaseAccessDuration(int, int, @NonNull String, int, long);
+    method public void increaseRejectCount(int, int, @NonNull String, int, long);
     method public void offsetBeginAndEndTime(long);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalOps> CREATOR;
@@ -198,26 +199,26 @@
 
   public static final class AppOpsManager.HistoricalPackageOps implements android.os.Parcelable {
     method public int describeContents();
-    method public android.app.AppOpsManager.HistoricalOp getOp(java.lang.String);
-    method public android.app.AppOpsManager.HistoricalOp getOpAt(int);
+    method @Nullable public android.app.AppOpsManager.HistoricalOp getOp(@NonNull String);
+    method @NonNull public android.app.AppOpsManager.HistoricalOp getOpAt(int);
     method public int getOpCount();
-    method public java.lang.String getPackageName();
-    method public void writeToParcel(android.os.Parcel, int);
+    method @NonNull public String getPackageName();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalPackageOps> CREATOR;
   }
 
   public static final class AppOpsManager.HistoricalUidOps implements android.os.Parcelable {
     method public int describeContents();
     method public int getPackageCount();
-    method public android.app.AppOpsManager.HistoricalPackageOps getPackageOps(java.lang.String);
-    method public android.app.AppOpsManager.HistoricalPackageOps getPackageOpsAt(int);
+    method @Nullable public android.app.AppOpsManager.HistoricalPackageOps getPackageOps(@NonNull String);
+    method @NonNull public android.app.AppOpsManager.HistoricalPackageOps getPackageOpsAt(int);
     method public int getUid();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalUidOps> CREATOR;
   }
 
-  public static abstract interface AppOpsManager.OnOpActiveChangedListener {
-    method public abstract void onOpActiveChanged(int, int, java.lang.String, boolean);
+  public static interface AppOpsManager.OnOpActiveChangedListener {
+    method public void onOpActiveChanged(int, int, String, boolean);
   }
 
   public final class NotificationChannel implements android.os.Parcelable {
@@ -247,9 +248,9 @@
 
   public final class UiAutomation {
     method public void destroy();
-    method public android.os.ParcelFileDescriptor[] executeShellCommandRw(java.lang.String);
-    method public deprecated boolean grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
-    method public deprecated boolean revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
+    method public android.os.ParcelFileDescriptor[] executeShellCommandRw(String);
+    method @Deprecated public boolean grantRuntimePermission(String, String, android.os.UserHandle);
+    method @Deprecated public boolean revokeRuntimePermission(String, String, android.os.UserHandle);
   }
 
   public class UiModeManager {
@@ -257,7 +258,7 @@
     method public boolean isUiModeLocked();
   }
 
-  public class WindowConfiguration implements java.lang.Comparable android.os.Parcelable {
+  public class WindowConfiguration implements java.lang.Comparable<android.app.WindowConfiguration> android.os.Parcelable {
     ctor public WindowConfiguration();
     method public int compareTo(android.app.WindowConfiguration);
     method public int describeContents();
@@ -293,17 +294,17 @@
 package android.app.admin {
 
   public class DevicePolicyManager {
-    method public java.lang.CharSequence getDeviceOwnerOrganizationName();
+    method @Nullable public CharSequence getDeviceOwnerOrganizationName();
     method public long getLastBugReportRequestTime();
     method public long getLastNetworkLogRetrievalTime();
     method public long getLastSecurityLogRetrievalTime();
-    method public java.util.List<java.lang.String> getOwnerInstalledCaCerts(android.os.UserHandle);
+    method public java.util.List<java.lang.String> getOwnerInstalledCaCerts(@NonNull android.os.UserHandle);
     method public boolean isCurrentInputMethodSetByOwner();
     method public boolean isDeviceManaged();
-    field public static final java.lang.String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_ALLOWED = "android.account.DEVICE_OR_PROFILE_OWNER_ALLOWED";
-    field public static final java.lang.String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_DISALLOWED = "android.account.DEVICE_OR_PROFILE_OWNER_DISALLOWED";
-    field public static final java.lang.String ACTION_DATA_SHARING_RESTRICTION_APPLIED = "android.app.action.DATA_SHARING_RESTRICTION_APPLIED";
-    field public static final java.lang.String EXTRA_RESTRICTION = "android.app.extra.RESTRICTION";
+    field public static final String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_ALLOWED = "android.account.DEVICE_OR_PROFILE_OWNER_ALLOWED";
+    field public static final String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_DISALLOWED = "android.account.DEVICE_OR_PROFILE_OWNER_DISALLOWED";
+    field public static final String ACTION_DATA_SHARING_RESTRICTION_APPLIED = "android.app.action.DATA_SHARING_RESTRICTION_APPLIED";
+    field public static final String EXTRA_RESTRICTION = "android.app.extra.RESTRICTION";
   }
 
   public static final class SecurityLog.SecurityEvent implements android.os.Parcelable {
@@ -315,10 +316,10 @@
 package android.app.backup {
 
   public class BackupManager {
-    method public android.content.Intent getConfigurationIntent(java.lang.String);
-    method public android.content.Intent getDataManagementIntent(java.lang.String);
-    method public java.lang.String getDataManagementLabel(java.lang.String);
-    method public java.lang.String getDestinationString(java.lang.String);
+    method @RequiresPermission("android.permission.BACKUP") public android.content.Intent getConfigurationIntent(String);
+    method @RequiresPermission("android.permission.BACKUP") public android.content.Intent getDataManagementIntent(String);
+    method @RequiresPermission("android.permission.BACKUP") public String getDataManagementLabel(String);
+    method @RequiresPermission("android.permission.BACKUP") public String getDestinationString(String);
   }
 
 }
@@ -326,16 +327,16 @@
 package android.app.role {
 
   public final class RoleManager {
-    method public void addRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback);
-    method public void clearRoleHoldersAsUser(java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback);
-    method public java.util.List<java.lang.String> getRoleHolders(java.lang.String);
-    method public java.util.List<java.lang.String> getRoleHoldersAsUser(java.lang.String, android.os.UserHandle);
-    method public void removeRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback);
+    method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void addRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
+    method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void clearRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
+    method @NonNull @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public java.util.List<java.lang.String> getRoleHolders(@NonNull String);
+    method @NonNull @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public java.util.List<java.lang.String> getRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle);
+    method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void removeRoleHolderAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
   }
 
-  public abstract interface RoleManagerCallback {
-    method public abstract void onFailure();
-    method public abstract void onSuccess();
+  public interface RoleManagerCallback {
+    method public void onFailure();
+    method public void onSuccess();
   }
 
 }
@@ -347,8 +348,8 @@
   }
 
   public class StorageStatsManager {
-    method public boolean isQuotaSupported(java.util.UUID);
-    method public boolean isReservedSupported(java.util.UUID);
+    method public boolean isQuotaSupported(@NonNull java.util.UUID);
+    method public boolean isReservedSupported(@NonNull java.util.UUID);
   }
 
 }
@@ -364,15 +365,15 @@
 package android.content {
 
   public class ContentProviderClient implements java.lang.AutoCloseable android.content.ContentInterface {
-    method public void setDetectNotResponding(long);
+    method @RequiresPermission(android.Manifest.permission.REMOVE_TASKS) public void setDetectNotResponding(long);
   }
 
   public abstract class ContentResolver implements android.content.ContentInterface {
-    method public static java.lang.String[] getSyncAdapterPackagesForAuthorityAsUser(java.lang.String, int);
+    method public static String[] getSyncAdapterPackagesForAuthorityAsUser(String, int);
   }
 
   public abstract class Context {
-    method public android.content.Context createPackageContextAsUser(java.lang.String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public android.content.Context createPackageContextAsUser(String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
     method public android.os.UserHandle getUser();
     method public int getUserId();
     method public void setAutofillCompatibilityEnabled(boolean);
@@ -400,23 +401,23 @@
 
   public abstract class PackageManager {
     method public abstract boolean arePermissionsIndividuallyControlled();
-    method public abstract java.lang.String getDefaultBrowserPackageNameAsUser(int);
-    method public abstract int getInstallReason(java.lang.String, android.os.UserHandle);
+    method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS_FULL") public abstract String getDefaultBrowserPackageNameAsUser(int);
+    method public abstract int getInstallReason(String, @NonNull android.os.UserHandle);
     method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplicationsAsUser(int, int);
-    method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
-    method public abstract java.lang.String[] getNamesForUids(int[]);
-    method public abstract java.lang.String getPermissionControllerPackageName();
-    method public abstract java.lang.String getServicesSystemSharedLibraryPackageName();
-    method public abstract java.lang.String getSharedSystemSharedLibraryPackageName();
-    method public java.lang.String getWellbeingPackageName();
-    method public abstract void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
-    method public abstract void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
-    field public static final java.lang.String FEATURE_ADOPTABLE_STORAGE = "android.software.adoptable_storage";
-    field public static final java.lang.String FEATURE_FILE_BASED_ENCRYPTION = "android.software.file_based_encryption";
+    method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS_FULL") public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
+    method @Nullable public abstract String[] getNamesForUids(int[]);
+    method public abstract String getPermissionControllerPackageName();
+    method @NonNull public abstract String getServicesSystemSharedLibraryPackageName();
+    method @NonNull public abstract String getSharedSystemSharedLibraryPackageName();
+    method public String getWellbeingPackageName();
+    method @RequiresPermission("android.permission.GRANT_RUNTIME_PERMISSIONS") public abstract void grantRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
+    method @RequiresPermission("android.permission.REVOKE_RUNTIME_PERMISSIONS") public abstract void revokeRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
+    field public static final String FEATURE_ADOPTABLE_STORAGE = "android.software.adoptable_storage";
+    field public static final String FEATURE_FILE_BASED_ENCRYPTION = "android.software.file_based_encryption";
     field public static final int MATCH_FACTORY_ONLY = 2097152; // 0x200000
     field public static final int MATCH_KNOWN_PACKAGES = 4202496; // 0x402000
-    field public static final java.lang.String SYSTEM_SHARED_LIBRARY_SERVICES = "android.ext.services";
-    field public static final java.lang.String SYSTEM_SHARED_LIBRARY_SHARED = "android.ext.shared";
+    field public static final String SYSTEM_SHARED_LIBRARY_SERVICES = "android.ext.services";
+    field public static final String SYSTEM_SHARED_LIBRARY_SHARED = "android.ext.shared";
   }
 
   public class PermissionInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
@@ -426,7 +427,7 @@
     field public static final int PROTECTION_FLAG_SYSTEM_TEXT_CLASSIFIER = 65536; // 0x10000
     field public static final int PROTECTION_FLAG_VENDOR_PRIVILEGED = 32768; // 0x8000
     field public static final int PROTECTION_FLAG_WELLBEING = 131072; // 0x20000
-    field public java.lang.String backgroundPermission;
+    field public String backgroundPermission;
   }
 
   public final class ShortcutInfo implements android.os.Parcelable {
@@ -441,7 +442,7 @@
 
 package android.content.res {
 
-  public final class Configuration implements java.lang.Comparable android.os.Parcelable {
+  public final class Configuration implements java.lang.Comparable<android.content.res.Configuration> android.os.Parcelable {
     field public int assetsSeq;
     field public final android.app.WindowConfiguration windowConfiguration;
   }
@@ -455,14 +456,14 @@
   }
 
   public final class SQLiteDebug {
-    method public static void dump(android.util.Printer, java.lang.String[]);
+    method public static void dump(android.util.Printer, String[]);
     method public static android.database.sqlite.SQLiteDebug.PagerStats getDatabaseInfo();
   }
 
   public static class SQLiteDebug.DbStats {
-    ctor public SQLiteDebug.DbStats(java.lang.String, long, long, int, int, int, int);
-    field public java.lang.String cache;
-    field public java.lang.String dbName;
+    ctor public SQLiteDebug.DbStats(String, long, long, int, int, int, int);
+    field public String cache;
+    field public String dbName;
     field public long dbSize;
     field public int lookaside;
     field public long pageSize;
@@ -477,23 +478,23 @@
   }
 
   public final class SQLiteDirectCursorDriver implements android.database.sqlite.SQLiteCursorDriver {
-    ctor public SQLiteDirectCursorDriver(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String, android.os.CancellationSignal);
+    ctor public SQLiteDirectCursorDriver(android.database.sqlite.SQLiteDatabase, String, String, android.os.CancellationSignal);
     method public void cursorClosed();
     method public void cursorDeactivated();
     method public void cursorRequeried(android.database.Cursor);
-    method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase.CursorFactory, java.lang.String[]);
-    method public void setBindArguments(java.lang.String[]);
+    method public android.database.Cursor query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]);
+    method public void setBindArguments(String[]);
   }
 
   public final class SQLiteGlobal {
-    method public static java.lang.String getDefaultJournalMode();
+    method public static String getDefaultJournalMode();
     method public static int getDefaultPageSize();
-    method public static java.lang.String getDefaultSyncMode();
+    method public static String getDefaultSyncMode();
     method public static int getIdleConnectionTimeout();
     method public static int getJournalSizeLimit();
     method public static int getWALAutoCheckpoint();
     method public static int getWALConnectionPoolSize();
-    method public static java.lang.String getWALSyncMode();
+    method public static String getWALSyncMode();
     method public static boolean isCompatibilityWalSupported();
     method public static int releaseMemory();
   }
@@ -503,16 +504,18 @@
 package android.graphics {
 
   public final class Bitmap implements android.os.Parcelable {
-    method public void eraseColor(long);
+    method public void eraseColor(@ColorLong long);
   }
 
   public final class ImageDecoder implements java.lang.AutoCloseable {
-    method public static android.graphics.ImageDecoder.Source createSource(android.content.res.Resources, java.io.InputStream, int);
+    method @AnyThread @NonNull public static android.graphics.ImageDecoder.Source createSource(android.content.res.Resources, java.io.InputStream, int);
   }
 
   public class Paint {
-    method public void setColor(long);
-    method public void setShadowLayer(float, float, float, long);
+    method @ColorLong public long getColorLong();
+    method @ColorLong public long getShadowLayerColorLong();
+    method public void setColor(@ColorLong long);
+    method public void setShadowLayer(float, float, float, @ColorLong long);
   }
 
 }
@@ -533,7 +536,7 @@
   }
 
   public class ShapeDrawable extends android.graphics.drawable.Drawable {
-    method public void setXfermode(android.graphics.Xfermode);
+    method public void setXfermode(@Nullable android.graphics.Xfermode);
   }
 
 }
@@ -541,7 +544,7 @@
 package android.hardware.camera2 {
 
   public abstract class CameraDevice implements java.lang.AutoCloseable {
-    method public abstract void createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
+    method public abstract void createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, @NonNull java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, @NonNull android.hardware.camera2.CameraCaptureSession.StateCallback, @Nullable android.os.Handler) throws android.hardware.camera2.CameraAccessException;
     field public static final int SESSION_OPERATION_MODE_CONSTRAINED_HIGH_SPEED = 1; // 0x1
     field public static final int SESSION_OPERATION_MODE_NORMAL = 0; // 0x0
     field public static final int SESSION_OPERATION_MODE_VENDOR_START = 32768; // 0x8000
@@ -573,16 +576,16 @@
     field public final long[] luxTimestamps;
     field public final float[] luxValues;
     field public final boolean nightMode;
-    field public final java.lang.String packageName;
+    field public final String packageName;
     field public final float powerBrightnessFactor;
     field public final long timeStamp;
   }
 
   public final class BrightnessConfiguration implements android.os.Parcelable {
     method public int describeContents();
-    method public android.hardware.display.BrightnessCorrection getCorrectionByCategory(int);
-    method public android.hardware.display.BrightnessCorrection getCorrectionByPackageName(java.lang.String);
-    method public android.util.Pair<float[], float[]> getCurve();
+    method @Nullable public android.hardware.display.BrightnessCorrection getCorrectionByCategory(int);
+    method @Nullable public android.hardware.display.BrightnessCorrection getCorrectionByPackageName(String);
+    method public android.util.Pair<float[],float[]> getCurve();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.display.BrightnessConfiguration> CREATOR;
   }
@@ -590,28 +593,28 @@
   public static class BrightnessConfiguration.Builder {
     ctor public BrightnessConfiguration.Builder(float[], float[]);
     method public android.hardware.display.BrightnessConfiguration.Builder addCorrectionByCategory(int, android.hardware.display.BrightnessCorrection);
-    method public android.hardware.display.BrightnessConfiguration.Builder addCorrectionByPackageName(java.lang.String, android.hardware.display.BrightnessCorrection);
+    method public android.hardware.display.BrightnessConfiguration.Builder addCorrectionByPackageName(String, android.hardware.display.BrightnessCorrection);
     method public android.hardware.display.BrightnessConfiguration build();
     method public int getMaxCorrectionsByCategory();
     method public int getMaxCorrectionsByPackageName();
-    method public android.hardware.display.BrightnessConfiguration.Builder setDescription(java.lang.String);
+    method public android.hardware.display.BrightnessConfiguration.Builder setDescription(@Nullable String);
   }
 
   public final class BrightnessCorrection implements android.os.Parcelable {
     method public float apply(float);
-    method public static android.hardware.display.BrightnessCorrection createScaleAndTranslateLog(float, float);
+    method @NonNull public static android.hardware.display.BrightnessCorrection createScaleAndTranslateLog(float, float);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.hardware.display.BrightnessCorrection> CREATOR;
   }
 
   public final class DisplayManager {
-    method public java.util.List<android.hardware.display.AmbientBrightnessDayStats> getAmbientBrightnessStats();
-    method public android.hardware.display.BrightnessConfiguration getBrightnessConfiguration();
-    method public java.util.List<android.hardware.display.BrightnessChangeEvent> getBrightnessEvents();
-    method public android.hardware.display.BrightnessConfiguration getDefaultBrightnessConfiguration();
+    method @RequiresPermission("android.permission.ACCESS_AMBIENT_LIGHT_STATS") public java.util.List<android.hardware.display.AmbientBrightnessDayStats> getAmbientBrightnessStats();
+    method @RequiresPermission(android.Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS) public android.hardware.display.BrightnessConfiguration getBrightnessConfiguration();
+    method @RequiresPermission(android.Manifest.permission.BRIGHTNESS_SLIDER_USAGE) public java.util.List<android.hardware.display.BrightnessChangeEvent> getBrightnessEvents();
+    method @Nullable @RequiresPermission(android.Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS) public android.hardware.display.BrightnessConfiguration getDefaultBrightnessConfiguration();
     method public android.graphics.Point getStableDisplaySize();
-    method public void setBrightnessConfiguration(android.hardware.display.BrightnessConfiguration);
+    method @RequiresPermission(android.Manifest.permission.CONFIGURE_DISPLAY_BRIGHTNESS) public void setBrightnessConfiguration(android.hardware.display.BrightnessConfiguration);
   }
 
 }
@@ -644,10 +647,10 @@
     ctor public GnssMeasurement();
     method public void reset();
     method public void resetAutomaticGainControlLevel();
-    method public deprecated void resetCarrierCycles();
+    method @Deprecated public void resetCarrierCycles();
     method public void resetCarrierFrequencyHz();
-    method public deprecated void resetCarrierPhase();
-    method public deprecated void resetCarrierPhaseUncertainty();
+    method @Deprecated public void resetCarrierPhase();
+    method @Deprecated public void resetCarrierPhaseUncertainty();
     method public void resetCodeType();
     method public void resetSnrInDb();
     method public void set(android.location.GnssMeasurement);
@@ -655,10 +658,10 @@
     method public void setAccumulatedDeltaRangeState(int);
     method public void setAccumulatedDeltaRangeUncertaintyMeters(double);
     method public void setAutomaticGainControlLevelInDb(double);
-    method public deprecated void setCarrierCycles(long);
+    method @Deprecated public void setCarrierCycles(long);
     method public void setCarrierFrequencyHz(float);
-    method public deprecated void setCarrierPhase(double);
-    method public deprecated void setCarrierPhaseUncertainty(double);
+    method @Deprecated public void setCarrierPhase(double);
+    method @Deprecated public void setCarrierPhaseUncertainty(double);
     method public void setCn0DbHz(double);
     method public void setCodeType(int);
     method public void setConstellationType(int);
@@ -695,7 +698,7 @@
   }
 
   public class LocationManager {
-    method public java.lang.String[] getBackgroundThrottlingWhitelist();
+    method public String[] getBackgroundThrottlingWhitelist();
   }
 
 }
@@ -703,7 +706,7 @@
 package android.media {
 
   public final class AudioFocusRequest {
-    method public android.media.AudioManager.OnAudioFocusChangeListener getOnAudioFocusChangeListener();
+    method @Nullable public android.media.AudioManager.OnAudioFocusChangeListener getOnAudioFocusChangeListener();
   }
 
   public final class AudioFormat implements android.os.Parcelable {
@@ -714,8 +717,8 @@
   }
 
   public final class AudioRecordingConfiguration implements android.os.Parcelable {
-    ctor public AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, java.lang.String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]);
-    ctor public AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, java.lang.String);
+    ctor public AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]);
+    ctor public AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String);
   }
 
   public final class BufferingParams implements android.os.Parcelable {
@@ -740,7 +743,7 @@
   }
 
   public static final class VolumeShaper.Configuration.Builder {
-    method public android.media.VolumeShaper.Configuration.Builder setOptionFlags(int);
+    method @NonNull public android.media.VolumeShaper.Configuration.Builder setOptionFlags(int);
   }
 
 }
@@ -769,8 +772,8 @@
     field public static final java.util.UUID EFFECT_TYPE_NULL;
   }
 
-  public static abstract interface AudioEffect.OnParameterChangeListener {
-    method public abstract void onParameterChange(android.media.audiofx.AudioEffect, int, byte[], byte[]);
+  public static interface AudioEffect.OnParameterChangeListener {
+    method public void onParameterChange(android.media.audiofx.AudioEffect, int, byte[], byte[]);
   }
 
 }
@@ -798,7 +801,7 @@
 package android.os {
 
   public class Build {
-    method public static boolean is64BitAbi(java.lang.String);
+    method public static boolean is64BitAbi(String);
   }
 
   public static class Build.VERSION {
@@ -807,8 +810,8 @@
   }
 
   public class DeviceIdleManager {
-    method public java.lang.String[] getSystemPowerWhitelist();
-    method public java.lang.String[] getSystemPowerWhitelistExceptIdle();
+    method @NonNull public String[] getSystemPowerWhitelist();
+    method @NonNull public String[] getSystemPowerWhitelistExceptIdle();
   }
 
   public class Environment {
@@ -821,11 +824,11 @@
     ctor public HwBinder();
     method public static final void configureRpcThreadpool(long, boolean);
     method public static void enableInstrumentation();
-    method public static final android.os.IHwBinder getService(java.lang.String, java.lang.String) throws java.util.NoSuchElementException, android.os.RemoteException;
-    method public static final android.os.IHwBinder getService(java.lang.String, java.lang.String, boolean) throws java.util.NoSuchElementException, android.os.RemoteException;
+    method public static final android.os.IHwBinder getService(String, String) throws java.util.NoSuchElementException, android.os.RemoteException;
+    method public static final android.os.IHwBinder getService(String, String, boolean) throws java.util.NoSuchElementException, android.os.RemoteException;
     method public static final void joinRpcThreadpool();
     method public abstract void onTransact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException;
-    method public final void registerService(java.lang.String) throws android.os.RemoteException;
+    method public final void registerService(String) throws android.os.RemoteException;
     method public final void transact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException;
   }
 
@@ -845,7 +848,7 @@
     method public final int getInt32(long);
     method public final long getInt64(long);
     method public final byte getInt8(long);
-    method public final java.lang.String getString(long);
+    method public final String getString(long);
     method public final long handle();
     method public final void putBlob(long, android.os.HwBlob);
     method public final void putBool(long, boolean);
@@ -863,19 +866,19 @@
     method public final void putInt8(long, byte);
     method public final void putInt8Array(long, byte[]);
     method public final void putNativeHandle(long, android.os.NativeHandle);
-    method public final void putString(long, java.lang.String);
-    method public static java.lang.Boolean[] wrapArray(boolean[]);
-    method public static java.lang.Long[] wrapArray(long[]);
-    method public static java.lang.Byte[] wrapArray(byte[]);
-    method public static java.lang.Short[] wrapArray(short[]);
-    method public static java.lang.Integer[] wrapArray(int[]);
-    method public static java.lang.Float[] wrapArray(float[]);
-    method public static java.lang.Double[] wrapArray(double[]);
+    method public final void putString(long, String);
+    method public static Boolean[] wrapArray(@NonNull boolean[]);
+    method public static Long[] wrapArray(@NonNull long[]);
+    method public static Byte[] wrapArray(@NonNull byte[]);
+    method public static Short[] wrapArray(@NonNull short[]);
+    method public static Integer[] wrapArray(@NonNull int[]);
+    method public static Float[] wrapArray(@NonNull float[]);
+    method public static Double[] wrapArray(@NonNull double[]);
   }
 
   public class HwParcel {
     ctor public HwParcel();
-    method public final void enforceInterface(java.lang.String);
+    method public final void enforceInterface(String);
     method public final boolean readBool();
     method public final java.util.ArrayList<java.lang.Boolean> readBoolVector();
     method public final android.os.HwBlob readBuffer(long);
@@ -895,7 +898,7 @@
     method public final java.util.ArrayList<java.lang.Byte> readInt8Vector();
     method public final android.os.NativeHandle readNativeHandle();
     method public final java.util.ArrayList<android.os.NativeHandle> readNativeHandleVector();
-    method public final java.lang.String readString();
+    method public final String readString();
     method public final java.util.ArrayList<java.lang.String> readStringVector();
     method public final android.os.IHwBinder readStrongBinder();
     method public final void release();
@@ -917,36 +920,36 @@
     method public final void writeInt64Vector(java.util.ArrayList<java.lang.Long>);
     method public final void writeInt8(byte);
     method public final void writeInt8Vector(java.util.ArrayList<java.lang.Byte>);
-    method public final void writeInterfaceToken(java.lang.String);
+    method public final void writeInterfaceToken(String);
     method public final void writeNativeHandle(android.os.NativeHandle);
     method public final void writeNativeHandleVector(java.util.ArrayList<android.os.NativeHandle>);
     method public final void writeStatus(int);
-    method public final void writeString(java.lang.String);
+    method public final void writeString(String);
     method public final void writeStringVector(java.util.ArrayList<java.lang.String>);
     method public final void writeStrongBinder(android.os.IHwBinder);
     field public static final int STATUS_SUCCESS = 0; // 0x0
   }
 
-  public static abstract class HwParcel.Status implements java.lang.annotation.Annotation {
+  @IntDef(prefix={"STATUS_"}, value={android.os.HwParcel.STATUS_SUCCESS}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface HwParcel.Status {
   }
 
-  public abstract interface IHwBinder {
-    method public abstract boolean linkToDeath(android.os.IHwBinder.DeathRecipient, long);
-    method public abstract android.os.IHwInterface queryLocalInterface(java.lang.String);
-    method public abstract void transact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException;
-    method public abstract boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient);
+  public interface IHwBinder {
+    method public boolean linkToDeath(android.os.IHwBinder.DeathRecipient, long);
+    method public android.os.IHwInterface queryLocalInterface(String);
+    method public void transact(int, android.os.HwParcel, android.os.HwParcel, int) throws android.os.RemoteException;
+    method public boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient);
   }
 
-  public static abstract interface IHwBinder.DeathRecipient {
-    method public abstract void serviceDied(long);
+  public static interface IHwBinder.DeathRecipient {
+    method public void serviceDied(long);
   }
 
-  public abstract interface IHwInterface {
-    method public abstract android.os.IHwBinder asBinder();
+  public interface IHwInterface {
+    method public android.os.IHwBinder asBinder();
   }
 
   public class IncidentManager {
-    method public void reportIncident(android.os.IncidentReportArgs);
+    method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void reportIncident(android.os.IncidentReportArgs);
   }
 
   public final class IncidentReportArgs implements android.os.Parcelable {
@@ -972,8 +975,8 @@
 
   public final class NativeHandle implements java.io.Closeable {
     ctor public NativeHandle();
-    ctor public NativeHandle(java.io.FileDescriptor, boolean);
-    ctor public NativeHandle(java.io.FileDescriptor[], int[], boolean);
+    ctor public NativeHandle(@NonNull java.io.FileDescriptor, boolean);
+    ctor public NativeHandle(@NonNull java.io.FileDescriptor[], @NonNull int[], boolean);
     method public void close() throws java.io.IOException;
     method public android.os.NativeHandle dup() throws java.io.IOException;
     method public java.io.FileDescriptor getFileDescriptor();
@@ -983,9 +986,9 @@
   }
 
   public final class PowerManager {
-    method public int getPowerSaveMode();
-    method public boolean setDynamicPowerSavings(boolean, int);
-    method public boolean setPowerSaveMode(boolean);
+    method @RequiresPermission("android.permission.POWER_SAVER") public int getPowerSaveMode();
+    method @RequiresPermission("android.permission.POWER_SAVER") public boolean setDynamicPowerSavings(boolean, int);
+    method @RequiresPermission(anyOf={"android.permission.DEVICE_POWER", "android.permission.POWER_SAVER"}) public boolean setPowerSaveMode(boolean);
     field public static final int POWER_SAVER_MODE_DYNAMIC = 1; // 0x1
     field public static final int POWER_SAVER_MODE_PERCENTAGE = 0; // 0x0
   }
@@ -1001,15 +1004,15 @@
 
   public final class RemoteCallback implements android.os.Parcelable {
     ctor public RemoteCallback(android.os.RemoteCallback.OnResultListener);
-    ctor public RemoteCallback(android.os.RemoteCallback.OnResultListener, android.os.Handler);
+    ctor public RemoteCallback(@NonNull android.os.RemoteCallback.OnResultListener, @Nullable android.os.Handler);
     method public int describeContents();
-    method public void sendResult(android.os.Bundle);
+    method public void sendResult(@Nullable android.os.Bundle);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.RemoteCallback> CREATOR;
   }
 
-  public static abstract interface RemoteCallback.OnResultListener {
-    method public abstract void onResult(android.os.Bundle);
+  public static interface RemoteCallback.OnResultListener {
+    method public void onResult(android.os.Bundle);
   }
 
   public final class StrictMode {
@@ -1025,28 +1028,28 @@
     ctor public StrictMode.ViolationInfo(android.os.Parcel);
     ctor public StrictMode.ViolationInfo(android.os.Parcel, boolean);
     method public int describeContents();
-    method public void dump(android.util.Printer, java.lang.String);
-    method public java.lang.String getStackTrace();
-    method public java.lang.Class<? extends android.os.strictmode.Violation> getViolationClass();
-    method public java.lang.String getViolationDetails();
+    method public void dump(android.util.Printer, String);
+    method public String getStackTrace();
+    method public Class<? extends android.os.strictmode.Violation> getViolationClass();
+    method public String getViolationDetails();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.os.StrictMode.ViolationInfo> CREATOR;
-    field public java.lang.String broadcastIntentAction;
+    field public String broadcastIntentAction;
     field public int durationMillis;
     field public int numAnimationsRunning;
     field public long numInstances;
-    field public java.lang.String[] tags;
+    field public String[] tags;
     field public int violationNumThisLoop;
     field public long violationUptimeMillis;
   }
 
-  public static abstract interface StrictMode.ViolationLogger {
-    method public abstract void log(android.os.StrictMode.ViolationInfo);
+  public static interface StrictMode.ViolationLogger {
+    method public void log(android.os.StrictMode.ViolationInfo);
   }
 
   public class SystemProperties {
-    method public static java.lang.String get(java.lang.String);
-    method public static java.lang.String get(java.lang.String, java.lang.String);
+    method @NonNull public static String get(@NonNull String);
+    method @NonNull public static String get(@NonNull String, @Nullable String);
   }
 
   public final class UserHandle implements android.os.Parcelable {
@@ -1060,13 +1063,13 @@
 
   public class UserManager {
     method public static boolean isSplitSystemUser();
-    field public static final java.lang.String ACTION_USER_RESTRICTIONS_CHANGED = "android.os.action.USER_RESTRICTIONS_CHANGED";
+    field public static final String ACTION_USER_RESTRICTIONS_CHANGED = "android.os.action.USER_RESTRICTIONS_CHANGED";
   }
 
   public abstract class VibrationEffect implements android.os.Parcelable {
     method public static android.os.VibrationEffect get(int);
     method public static android.os.VibrationEffect get(int, boolean);
-    method public static android.os.VibrationEffect get(android.net.Uri, android.content.Context);
+    method @Nullable public static android.os.VibrationEffect get(android.net.Uri, android.content.Context);
     method public abstract long getDuration();
     method protected static int scale(int, float, int);
     field public static final int EFFECT_CLICK = 0; // 0x0
@@ -1119,31 +1122,31 @@
   }
 
   public class VintfObject {
-    method public static java.lang.String[] getHalNamesAndVersions();
-    method public static java.lang.String getSepolicyVersion();
-    method public static java.lang.Long getTargetFrameworkCompatibilityMatrixVersion();
-    method public static java.util.Map<java.lang.String, java.lang.String[]> getVndkSnapshots();
-    method public static java.lang.String[] report();
+    method public static String[] getHalNamesAndVersions();
+    method public static String getSepolicyVersion();
+    method public static Long getTargetFrameworkCompatibilityMatrixVersion();
+    method public static java.util.Map<java.lang.String,java.lang.String[]> getVndkSnapshots();
+    method public static String[] report();
   }
 
   public class VintfRuntimeInfo {
-    method public static java.lang.String getCpuInfo();
-    method public static java.lang.String getHardwareId();
-    method public static java.lang.String getKernelVersion();
-    method public static java.lang.String getNodeName();
-    method public static java.lang.String getOsName();
-    method public static java.lang.String getOsRelease();
-    method public static java.lang.String getOsVersion();
+    method public static String getCpuInfo();
+    method public static String getHardwareId();
+    method public static String getKernelVersion();
+    method public static String getNodeName();
+    method public static String getOsName();
+    method public static String getOsRelease();
+    method public static String getOsVersion();
   }
 
   public class WorkSource implements android.os.Parcelable {
     ctor public WorkSource(int);
     method public boolean add(int);
-    method public boolean add(int, java.lang.String);
-    method public deprecated android.os.WorkSource addReturningNewbs(android.os.WorkSource);
+    method public boolean add(int, String);
+    method @Deprecated public android.os.WorkSource addReturningNewbs(android.os.WorkSource);
     method public int get(int);
-    method public java.lang.String getName(int);
-    method public deprecated android.os.WorkSource[] setReturningDiffs(android.os.WorkSource);
+    method public String getName(int);
+    method @Deprecated public android.os.WorkSource[] setReturningDiffs(android.os.WorkSource);
     method public int size();
   }
 
@@ -1167,12 +1170,13 @@
     field public static final int UNKNOWN_KEY = 0; // 0x0
   }
 
-  public static abstract class HealthKeys.Constant implements java.lang.annotation.Annotation {
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD}) public static @interface HealthKeys.Constant {
+    method public abstract int type();
   }
 
   public static class HealthKeys.Constants {
-    ctor public HealthKeys.Constants(java.lang.Class);
-    method public java.lang.String getDataType();
+    ctor public HealthKeys.Constants(Class);
+    method public String getDataType();
     method public int getIndex(int, int);
     method public int[] getKeys(int);
     method public int getSize(int);
@@ -1194,10 +1198,10 @@
   public class HealthStatsWriter {
     ctor public HealthStatsWriter(android.os.health.HealthKeys.Constants);
     method public void addMeasurement(int, long);
-    method public void addMeasurements(int, java.lang.String, long);
-    method public void addStats(int, java.lang.String, android.os.health.HealthStatsWriter);
+    method public void addMeasurements(int, String, long);
+    method public void addStats(int, String, android.os.health.HealthStatsWriter);
     method public void addTimer(int, int, long);
-    method public void addTimers(int, java.lang.String, android.os.health.TimerStat);
+    method public void addTimers(int, String, android.os.health.TimerStat);
     method public void flattenToParcel(android.os.Parcel);
   }
 
@@ -1210,7 +1214,7 @@
   }
 
   public final class StorageVolume implements android.os.Parcelable {
-    method public java.lang.String getPath();
+    method public String getPath();
   }
 
 }
@@ -1225,14 +1229,14 @@
 package android.permission {
 
   public final class PermissionControllerManager {
-    method public void revokeRuntimePermissions(java.util.Map<java.lang.String, java.util.List<java.lang.String>>, boolean, int, java.util.concurrent.Executor, android.permission.PermissionControllerManager.OnRevokeRuntimePermissionsCallback);
+    method @RequiresPermission("android.permission.REVOKE_RUNTIME_PERMISSIONS") public void revokeRuntimePermissions(@NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>, boolean, int, @NonNull java.util.concurrent.Executor, @NonNull android.permission.PermissionControllerManager.OnRevokeRuntimePermissionsCallback);
     field public static final int REASON_INSTALLER_POLICY_VIOLATION = 2; // 0x2
     field public static final int REASON_MALWARE = 1; // 0x1
   }
 
-  public static abstract class PermissionControllerManager.OnRevokeRuntimePermissionsCallback {
+  public abstract static class PermissionControllerManager.OnRevokeRuntimePermissionsCallback {
     ctor public PermissionControllerManager.OnRevokeRuntimePermissionsCallback();
-    method public abstract void onRevokeRuntimePermissions(java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
+    method public abstract void onRevokeRuntimePermissions(@NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>);
   }
 
 }
@@ -1241,11 +1245,11 @@
 
   public final class PrintJobInfo implements android.os.Parcelable {
     method public float getProgress();
-    method public java.lang.CharSequence getStatus(android.content.pm.PackageManager);
+    method @Nullable public CharSequence getStatus(@NonNull android.content.pm.PackageManager);
   }
 
   public final class PrinterInfo implements android.os.Parcelable {
-    method public android.graphics.drawable.Drawable loadIcon(android.content.Context);
+    method @Nullable public android.graphics.drawable.Drawable loadIcon(@NonNull android.content.Context);
   }
 
 }
@@ -1261,50 +1265,50 @@
   }
 
   public final class MediaStore {
-    method public static void deleteContributedMedia(android.content.Context, java.lang.String, android.os.UserHandle) throws java.io.IOException;
-    method public static long getContributedMediaSize(android.content.Context, java.lang.String, android.os.UserHandle) throws java.io.IOException;
+    method @RequiresPermission("android.permission.CLEAR_APP_USER_DATA") public static void deleteContributedMedia(android.content.Context, String, android.os.UserHandle) throws java.io.IOException;
+    method @RequiresPermission("android.permission.CLEAR_APP_USER_DATA") public static long getContributedMediaSize(android.content.Context, String, android.os.UserHandle) throws java.io.IOException;
   }
 
   public final class Settings {
-    field public static final java.lang.String ACTION_ENTERPRISE_PRIVACY_SETTINGS = "android.settings.ENTERPRISE_PRIVACY_SETTINGS";
+    field public static final String ACTION_ENTERPRISE_PRIVACY_SETTINGS = "android.settings.ENTERPRISE_PRIVACY_SETTINGS";
   }
 
   public static final class Settings.Global extends android.provider.Settings.NameValueTable {
-    field public static final java.lang.String AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES = "autofill_compat_mode_allowed_packages";
-    field public static final java.lang.String AUTOFILL_SMART_SUGGESTION_EMULATION_FLAGS = "autofill_smart_suggestion_emulation_flags";
-    field public static final java.lang.String AUTOMATIC_POWER_SAVER_MODE = "automatic_power_saver_mode";
-    field public static final java.lang.String DYNAMIC_POWER_SAVINGS_DISABLE_THRESHOLD = "dynamic_power_savings_disable_threshold";
-    field public static final java.lang.String DYNAMIC_POWER_SAVINGS_ENABLED = "dynamic_power_savings_enabled";
-    field public static final java.lang.String HIDDEN_API_BLACKLIST_EXEMPTIONS = "hidden_api_blacklist_exemptions";
-    field public static final java.lang.String LOCATION_GLOBAL_KILL_SWITCH = "location_global_kill_switch";
-    field public static final java.lang.String LOW_POWER_MODE = "low_power";
-    field public static final java.lang.String LOW_POWER_MODE_STICKY = "low_power_sticky";
-    field public static final java.lang.String SMS_ACCESS_RESTRICTION_ENABLED = "sms_access_restriction_enabled";
-    field public static final java.lang.String USE_OPEN_WIFI_PACKAGE = "use_open_wifi_package";
+    field public static final String AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES = "autofill_compat_mode_allowed_packages";
+    field public static final String AUTOFILL_SMART_SUGGESTION_EMULATION_FLAGS = "autofill_smart_suggestion_emulation_flags";
+    field public static final String AUTOMATIC_POWER_SAVER_MODE = "automatic_power_saver_mode";
+    field public static final String DYNAMIC_POWER_SAVINGS_DISABLE_THRESHOLD = "dynamic_power_savings_disable_threshold";
+    field public static final String DYNAMIC_POWER_SAVINGS_ENABLED = "dynamic_power_savings_enabled";
+    field public static final String HIDDEN_API_BLACKLIST_EXEMPTIONS = "hidden_api_blacklist_exemptions";
+    field public static final String LOCATION_GLOBAL_KILL_SWITCH = "location_global_kill_switch";
+    field public static final String LOW_POWER_MODE = "low_power";
+    field public static final String LOW_POWER_MODE_STICKY = "low_power_sticky";
+    field public static final String SMS_ACCESS_RESTRICTION_ENABLED = "sms_access_restriction_enabled";
+    field public static final String USE_OPEN_WIFI_PACKAGE = "use_open_wifi_package";
   }
 
   public static final class Settings.Secure extends android.provider.Settings.NameValueTable {
-    method public static void resetToDefaults(android.content.ContentResolver, java.lang.String);
-    field public static final java.lang.String ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED = "accessibility_display_magnification_enabled";
-    field public static final java.lang.String ACCESSIBILITY_SHORTCUT_TARGET_SERVICE = "accessibility_shortcut_target_service";
-    field public static final java.lang.String AUTOFILL_FEATURE_FIELD_CLASSIFICATION = "autofill_field_classification";
-    field public static final java.lang.String AUTOFILL_SERVICE = "autofill_service";
-    field public static final java.lang.String AUTOFILL_USER_DATA_MAX_CATEGORY_COUNT = "autofill_user_data_max_category_count";
-    field public static final java.lang.String AUTOFILL_USER_DATA_MAX_FIELD_CLASSIFICATION_IDS_SIZE = "autofill_user_data_max_field_classification_size";
-    field public static final java.lang.String AUTOFILL_USER_DATA_MAX_USER_DATA_SIZE = "autofill_user_data_max_user_data_size";
-    field public static final java.lang.String AUTOFILL_USER_DATA_MAX_VALUE_LENGTH = "autofill_user_data_max_value_length";
-    field public static final java.lang.String AUTOFILL_USER_DATA_MIN_VALUE_LENGTH = "autofill_user_data_min_value_length";
-    field public static final java.lang.String DISABLED_PRINT_SERVICES = "disabled_print_services";
-    field public static final deprecated java.lang.String ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES = "enabled_notification_policy_access_packages";
-    field public static final java.lang.String LOCATION_ACCESS_CHECK_DELAY_MILLIS = "location_access_check_delay_millis";
-    field public static final java.lang.String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS = "location_access_check_interval_millis";
-    field public static final java.lang.String SYNC_PARENT_SOUNDS = "sync_parent_sounds";
-    field public static final java.lang.String USER_SETUP_COMPLETE = "user_setup_complete";
-    field public static final java.lang.String VOICE_INTERACTION_SERVICE = "voice_interaction_service";
+    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static void resetToDefaults(@NonNull android.content.ContentResolver, @Nullable String);
+    field public static final String ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED = "accessibility_display_magnification_enabled";
+    field public static final String ACCESSIBILITY_SHORTCUT_TARGET_SERVICE = "accessibility_shortcut_target_service";
+    field public static final String AUTOFILL_FEATURE_FIELD_CLASSIFICATION = "autofill_field_classification";
+    field public static final String AUTOFILL_SERVICE = "autofill_service";
+    field public static final String AUTOFILL_USER_DATA_MAX_CATEGORY_COUNT = "autofill_user_data_max_category_count";
+    field public static final String AUTOFILL_USER_DATA_MAX_FIELD_CLASSIFICATION_IDS_SIZE = "autofill_user_data_max_field_classification_size";
+    field public static final String AUTOFILL_USER_DATA_MAX_USER_DATA_SIZE = "autofill_user_data_max_user_data_size";
+    field public static final String AUTOFILL_USER_DATA_MAX_VALUE_LENGTH = "autofill_user_data_max_value_length";
+    field public static final String AUTOFILL_USER_DATA_MIN_VALUE_LENGTH = "autofill_user_data_min_value_length";
+    field public static final String DISABLED_PRINT_SERVICES = "disabled_print_services";
+    field @Deprecated public static final String ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES = "enabled_notification_policy_access_packages";
+    field public static final String LOCATION_ACCESS_CHECK_DELAY_MILLIS = "location_access_check_delay_millis";
+    field public static final String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS = "location_access_check_interval_millis";
+    field @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static final String SYNC_PARENT_SOUNDS = "sync_parent_sounds";
+    field public static final String USER_SETUP_COMPLETE = "user_setup_complete";
+    field public static final String VOICE_INTERACTION_SERVICE = "voice_interaction_service";
   }
 
   public static final class Telephony.Sms.Intents {
-    field public static final java.lang.String SMS_CARRIER_PROVISION_ACTION = "android.provider.Telephony.SMS_CARRIER_PROVISION";
+    field public static final String SMS_CARRIER_PROVISION_ACTION = "android.provider.Telephony.SMS_CARRIER_PROVISION";
   }
 
 }
@@ -1312,7 +1316,7 @@
 package android.security {
 
   public class KeyStoreException extends java.lang.Exception {
-    ctor public KeyStoreException(int, java.lang.String);
+    ctor public KeyStoreException(int, String);
     method public int getErrorCode();
   }
 
@@ -1321,19 +1325,19 @@
 package android.security.keystore {
 
   public abstract class AttestationUtils {
-    method public static java.security.cert.X509Certificate[] attestDeviceIds(android.content.Context, int[], byte[]) throws android.security.keystore.DeviceIdAttestationException;
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") @NonNull public static java.security.cert.X509Certificate[] attestDeviceIds(android.content.Context, @NonNull int[], @NonNull byte[]) throws android.security.keystore.DeviceIdAttestationException;
     field public static final int ID_TYPE_IMEI = 2; // 0x2
     field public static final int ID_TYPE_MEID = 3; // 0x3
     field public static final int ID_TYPE_SERIAL = 1; // 0x1
   }
 
   public class DeviceIdAttestationException extends java.lang.Exception {
-    ctor public DeviceIdAttestationException(java.lang.String);
-    ctor public DeviceIdAttestationException(java.lang.String, java.lang.Throwable);
+    ctor public DeviceIdAttestationException(String);
+    ctor public DeviceIdAttestationException(String, Throwable);
   }
 
   public static final class KeyGenParameterSpec.Builder {
-    method public android.security.keystore.KeyGenParameterSpec.Builder setUniqueIdIncluded(boolean);
+    method @NonNull public android.security.keystore.KeyGenParameterSpec.Builder setUniqueIdIncluded(boolean);
   }
 
   public final class KeyProtection implements java.security.KeyStore.ProtectionParameter {
@@ -1350,41 +1354,41 @@
 
   public abstract class AutofillFieldClassificationService extends android.app.Service {
     method public android.os.IBinder onBind(android.content.Intent);
-    field public static final java.lang.String REQUIRED_ALGORITHM_EDIT_DISTANCE = "EDIT_DISTANCE";
-    field public static final java.lang.String REQUIRED_ALGORITHM_EXACT_MATCH = "EXACT_MATCH";
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.autofill.AutofillFieldClassificationService";
-    field public static final java.lang.String SERVICE_META_DATA_KEY_AVAILABLE_ALGORITHMS = "android.autofill.field_classification.available_algorithms";
-    field public static final java.lang.String SERVICE_META_DATA_KEY_DEFAULT_ALGORITHM = "android.autofill.field_classification.default_algorithm";
+    field public static final String REQUIRED_ALGORITHM_EDIT_DISTANCE = "EDIT_DISTANCE";
+    field public static final String REQUIRED_ALGORITHM_EXACT_MATCH = "EXACT_MATCH";
+    field public static final String SERVICE_INTERFACE = "android.service.autofill.AutofillFieldClassificationService";
+    field public static final String SERVICE_META_DATA_KEY_AVAILABLE_ALGORITHMS = "android.autofill.field_classification.available_algorithms";
+    field public static final String SERVICE_META_DATA_KEY_DEFAULT_ALGORITHM = "android.autofill.field_classification.default_algorithm";
   }
 
   public final class CharSequenceTransformation extends android.service.autofill.InternalTransformation implements android.os.Parcelable android.service.autofill.Transformation {
-    method public void apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int) throws java.lang.Exception;
+    method public void apply(@NonNull android.service.autofill.ValueFinder, @NonNull android.widget.RemoteViews, int) throws java.lang.Exception;
   }
 
   public final class CompositeUserData implements android.os.Parcelable {
-    ctor public CompositeUserData(android.service.autofill.UserData, android.service.autofill.UserData);
+    ctor public CompositeUserData(@Nullable android.service.autofill.UserData, @NonNull android.service.autofill.UserData);
     method public int describeContents();
-    method public java.lang.String[] getCategoryIds();
+    method public String[] getCategoryIds();
     method public android.os.Bundle getDefaultFieldClassificationArgs();
-    method public java.lang.String getFieldClassificationAlgorithm();
-    method public java.lang.String getFieldClassificationAlgorithmForCategory(java.lang.String);
-    method public android.util.ArrayMap<java.lang.String, java.lang.String> getFieldClassificationAlgorithms();
-    method public android.util.ArrayMap<java.lang.String, android.os.Bundle> getFieldClassificationArgs();
-    method public java.lang.String[] getValues();
+    method @Nullable public String getFieldClassificationAlgorithm();
+    method @Nullable public String getFieldClassificationAlgorithmForCategory(@NonNull String);
+    method public android.util.ArrayMap<java.lang.String,java.lang.String> getFieldClassificationAlgorithms();
+    method public android.util.ArrayMap<java.lang.String,android.os.Bundle> getFieldClassificationArgs();
+    method public String[] getValues();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.autofill.CompositeUserData> CREATOR;
   }
 
   public final class CustomDescription implements android.os.Parcelable {
-    method public android.util.SparseArray<android.service.autofill.InternalOnClickAction> getActions();
+    method @Nullable public android.util.SparseArray<android.service.autofill.InternalOnClickAction> getActions();
   }
 
   public final class DateTransformation extends android.service.autofill.InternalTransformation implements android.os.Parcelable android.service.autofill.Transformation {
-    method public void apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int) throws java.lang.Exception;
+    method public void apply(@NonNull android.service.autofill.ValueFinder, @NonNull android.widget.RemoteViews, int) throws java.lang.Exception;
   }
 
   public final class DateValueSanitizer extends android.service.autofill.InternalSanitizer implements android.os.Parcelable android.service.autofill.Sanitizer {
-    method public android.view.autofill.AutofillValue sanitize(android.view.autofill.AutofillValue);
+    method @Nullable public android.view.autofill.AutofillValue sanitize(@NonNull android.view.autofill.AutofillValue);
   }
 
   public final class FillResponse implements android.os.Parcelable {
@@ -1392,52 +1396,52 @@
   }
 
   public final class ImageTransformation extends android.service.autofill.InternalTransformation implements android.os.Parcelable android.service.autofill.Transformation {
-    method public void apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int) throws java.lang.Exception;
+    method public void apply(@NonNull android.service.autofill.ValueFinder, @NonNull android.widget.RemoteViews, int) throws java.lang.Exception;
   }
 
   public abstract class InternalOnClickAction implements android.service.autofill.OnClickAction android.os.Parcelable {
     ctor public InternalOnClickAction();
-    method public abstract void onClick(android.view.ViewGroup);
+    method public abstract void onClick(@NonNull android.view.ViewGroup);
   }
 
   public abstract class InternalSanitizer implements android.os.Parcelable android.service.autofill.Sanitizer {
     ctor public InternalSanitizer();
-    method public abstract android.view.autofill.AutofillValue sanitize(android.view.autofill.AutofillValue);
+    method @Nullable public abstract android.view.autofill.AutofillValue sanitize(@NonNull android.view.autofill.AutofillValue);
   }
 
   public abstract class InternalTransformation implements android.os.Parcelable android.service.autofill.Transformation {
     ctor public InternalTransformation();
-    method public static boolean batchApply(android.service.autofill.ValueFinder, android.widget.RemoteViews, java.util.ArrayList<android.util.Pair<java.lang.Integer, android.service.autofill.InternalTransformation>>);
+    method public static boolean batchApply(@NonNull android.service.autofill.ValueFinder, @NonNull android.widget.RemoteViews, @NonNull java.util.ArrayList<android.util.Pair<java.lang.Integer,android.service.autofill.InternalTransformation>>);
   }
 
   public abstract class InternalValidator implements android.os.Parcelable android.service.autofill.Validator {
     ctor public InternalValidator();
-    method public abstract boolean isValid(android.service.autofill.ValueFinder);
+    method public abstract boolean isValid(@NonNull android.service.autofill.ValueFinder);
   }
 
   public final class LuhnChecksumValidator extends android.service.autofill.InternalValidator implements android.os.Parcelable android.service.autofill.Validator {
-    method public boolean isValid(android.service.autofill.ValueFinder);
+    method public boolean isValid(@NonNull android.service.autofill.ValueFinder);
   }
 
   public final class RegexValidator extends android.service.autofill.InternalValidator implements android.os.Parcelable android.service.autofill.Validator {
-    method public boolean isValid(android.service.autofill.ValueFinder);
+    method public boolean isValid(@NonNull android.service.autofill.ValueFinder);
   }
 
   public final class TextValueSanitizer extends android.service.autofill.InternalSanitizer implements android.os.Parcelable android.service.autofill.Sanitizer {
-    method public android.view.autofill.AutofillValue sanitize(android.view.autofill.AutofillValue);
+    method @Nullable public android.view.autofill.AutofillValue sanitize(@NonNull android.view.autofill.AutofillValue);
   }
 
   public final class UserData implements android.os.Parcelable {
-    method public android.util.ArrayMap<java.lang.String, java.lang.String> getFieldClassificationAlgorithms();
+    method public android.util.ArrayMap<java.lang.String,java.lang.String> getFieldClassificationAlgorithms();
   }
 
-  public abstract interface ValueFinder {
-    method public default java.lang.String findByAutofillId(android.view.autofill.AutofillId);
-    method public abstract android.view.autofill.AutofillValue findRawValueByAutofillId(android.view.autofill.AutofillId);
+  public interface ValueFinder {
+    method @Nullable public default String findByAutofillId(@NonNull android.view.autofill.AutofillId);
+    method @Nullable public android.view.autofill.AutofillValue findRawValueByAutofillId(@NonNull android.view.autofill.AutofillId);
   }
 
   public final class VisibilitySetterAction extends android.service.autofill.InternalOnClickAction implements android.service.autofill.OnClickAction android.os.Parcelable {
-    method public void onClick(android.view.ViewGroup);
+    method public void onClick(@NonNull android.view.ViewGroup);
   }
 
 }
@@ -1446,25 +1450,25 @@
 
   public abstract class AugmentedAutofillService extends android.app.Service {
     ctor public AugmentedAutofillService();
-    method protected final void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method protected void dump(java.io.PrintWriter, java.lang.String[]);
-    method public void onFillRequest(android.service.autofill.augmented.FillRequest, android.os.CancellationSignal, android.service.autofill.augmented.FillController, android.service.autofill.augmented.FillCallback);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.autofill.augmented.AugmentedAutofillService";
+    method protected final void dump(java.io.FileDescriptor, java.io.PrintWriter, String[]);
+    method protected void dump(@NonNull java.io.PrintWriter, @NonNull String[]);
+    method public void onFillRequest(@NonNull android.service.autofill.augmented.FillRequest, @NonNull android.os.CancellationSignal, @NonNull android.service.autofill.augmented.FillController, @NonNull android.service.autofill.augmented.FillCallback);
+    field public static final String SERVICE_INTERFACE = "android.service.autofill.augmented.AugmentedAutofillService";
   }
 
   public final class FillCallback {
-    method public void onSuccess(android.service.autofill.augmented.FillResponse);
+    method public void onSuccess(@Nullable android.service.autofill.augmented.FillResponse);
   }
 
   public final class FillController {
-    method public void autofill(java.util.List<android.util.Pair<android.view.autofill.AutofillId, android.view.autofill.AutofillValue>>);
+    method public void autofill(@NonNull java.util.List<android.util.Pair<android.view.autofill.AutofillId,android.view.autofill.AutofillValue>>);
   }
 
   public final class FillRequest {
-    method public android.content.ComponentName getActivityComponent();
-    method public android.view.autofill.AutofillId getFocusedId();
-    method public android.view.autofill.AutofillValue getFocusedValue();
-    method public android.service.autofill.augmented.PresentationParams getPresentationParams();
+    method @NonNull public android.content.ComponentName getActivityComponent();
+    method @NonNull public android.view.autofill.AutofillId getFocusedId();
+    method @NonNull public android.view.autofill.AutofillValue getFocusedValue();
+    method @Nullable public android.service.autofill.augmented.PresentationParams getPresentationParams();
     method public int getTaskId();
   }
 
@@ -1477,21 +1481,21 @@
   public static final class FillResponse.Builder {
     ctor public FillResponse.Builder();
     method public android.service.autofill.augmented.FillResponse build();
-    method public android.service.autofill.augmented.FillResponse.Builder setFillWindow(android.service.autofill.augmented.FillWindow);
-    method public android.service.autofill.augmented.FillResponse.Builder setIgnoredIds(java.util.List<android.view.autofill.AutofillId>);
+    method public android.service.autofill.augmented.FillResponse.Builder setFillWindow(@NonNull android.service.autofill.augmented.FillWindow);
+    method public android.service.autofill.augmented.FillResponse.Builder setIgnoredIds(@NonNull java.util.List<android.view.autofill.AutofillId>);
   }
 
   public final class FillWindow implements java.lang.AutoCloseable {
     ctor public FillWindow();
     method public void destroy();
-    method public boolean update(android.service.autofill.augmented.PresentationParams.Area, android.view.View, long);
+    method public boolean update(@NonNull android.service.autofill.augmented.PresentationParams.Area, @NonNull android.view.View, long);
     field public static final long FLAG_METADATA_ADDRESS = 1L; // 0x1L
   }
 
   public abstract class PresentationParams {
     method public int getFlags();
-    method public android.service.autofill.augmented.PresentationParams.Area getFullArea();
-    method public android.service.autofill.augmented.PresentationParams.Area getSuggestionArea();
+    method @Nullable public android.service.autofill.augmented.PresentationParams.Area getFullArea();
+    method @Nullable public android.service.autofill.augmented.PresentationParams.Area getSuggestionArea();
     field public static final int FLAG_HINT_GRAVITY_BOTTOM = 2; // 0x2
     field public static final int FLAG_HINT_GRAVITY_LEFT = 4; // 0x4
     field public static final int FLAG_HINT_GRAVITY_RIGHT = 8; // 0x8
@@ -1500,9 +1504,9 @@
     field public static final int FLAG_HOST_SYSTEM = 32; // 0x20
   }
 
-  public static abstract class PresentationParams.Area {
-    method public android.graphics.Rect getBounds();
-    method public android.service.autofill.augmented.PresentationParams.Area getSubArea(android.graphics.Rect);
+  public abstract static class PresentationParams.Area {
+    method @NonNull public android.graphics.Rect getBounds();
+    method @Nullable public android.service.autofill.augmented.PresentationParams.Area getSubArea(@NonNull android.graphics.Rect);
   }
 
 }
@@ -1510,43 +1514,43 @@
 package android.service.notification {
 
   public final class Adjustment implements android.os.Parcelable {
-    ctor public Adjustment(java.lang.String, java.lang.String, android.os.Bundle, java.lang.CharSequence, int);
+    ctor public Adjustment(String, String, android.os.Bundle, CharSequence, int);
     ctor protected Adjustment(android.os.Parcel);
     method public int describeContents();
-    method public java.lang.CharSequence getExplanation();
-    method public java.lang.String getKey();
-    method public java.lang.String getPackage();
+    method public CharSequence getExplanation();
+    method public String getKey();
+    method public String getPackage();
     method public android.os.Bundle getSignals();
     method public int getUser();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.notification.Adjustment> CREATOR;
-    field public static final java.lang.String KEY_IMPORTANCE = "key_importance";
-    field public static final java.lang.String KEY_PEOPLE = "key_people";
-    field public static final java.lang.String KEY_SMART_ACTIONS = "key_smart_actions";
-    field public static final java.lang.String KEY_SMART_REPLIES = "key_smart_replies";
-    field public static final java.lang.String KEY_SNOOZE_CRITERIA = "key_snooze_criteria";
-    field public static final java.lang.String KEY_USER_SENTIMENT = "key_user_sentiment";
+    field public static final String KEY_IMPORTANCE = "key_importance";
+    field public static final String KEY_PEOPLE = "key_people";
+    field public static final String KEY_SMART_ACTIONS = "key_smart_actions";
+    field public static final String KEY_SMART_REPLIES = "key_smart_replies";
+    field public static final String KEY_SNOOZE_CRITERIA = "key_snooze_criteria";
+    field public static final String KEY_USER_SENTIMENT = "key_user_sentiment";
   }
 
-  public abstract deprecated class ConditionProviderService extends android.app.Service {
-    method public boolean isBound();
+  @Deprecated public abstract class ConditionProviderService extends android.app.Service {
+    method @Deprecated public boolean isBound();
   }
 
   public abstract class NotificationAssistantService extends android.service.notification.NotificationListenerService {
     ctor public NotificationAssistantService();
     method public final void adjustNotification(android.service.notification.Adjustment);
     method public final void adjustNotifications(java.util.List<android.service.notification.Adjustment>);
-    method public void onActionInvoked(java.lang.String, android.app.Notification.Action, int);
+    method public void onActionInvoked(@NonNull String, @NonNull android.app.Notification.Action, int);
     method public final android.os.IBinder onBind(android.content.Intent);
-    method public void onNotificationDirectReplied(java.lang.String);
+    method public void onNotificationDirectReplied(@NonNull String);
     method public android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification);
     method public android.service.notification.Adjustment onNotificationEnqueued(android.service.notification.StatusBarNotification, android.app.NotificationChannel);
-    method public void onNotificationExpansionChanged(java.lang.String, boolean, boolean);
-    method public abstract void onNotificationSnoozedUntilContext(android.service.notification.StatusBarNotification, java.lang.String);
+    method public void onNotificationExpansionChanged(@NonNull String, boolean, boolean);
+    method public abstract void onNotificationSnoozedUntilContext(android.service.notification.StatusBarNotification, String);
     method public void onNotificationsSeen(java.util.List<java.lang.String>);
-    method public void onSuggestedReplySent(java.lang.String, java.lang.CharSequence, int);
-    method public final void unsnoozeNotification(java.lang.String);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.notification.NotificationAssistantService";
+    method public void onSuggestedReplySent(@NonNull String, @NonNull CharSequence, int);
+    method public final void unsnoozeNotification(String);
+    field public static final String SERVICE_INTERFACE = "android.service.notification.NotificationAssistantService";
     field public static final int SOURCE_FROM_APP = 0; // 0x0
     field public static final int SOURCE_FROM_ASSISTANT = 1; // 0x1
   }
@@ -1588,12 +1592,12 @@
   }
 
   public final class SnoozeCriterion implements android.os.Parcelable {
-    ctor public SnoozeCriterion(java.lang.String, java.lang.CharSequence, java.lang.CharSequence);
+    ctor public SnoozeCriterion(String, CharSequence, CharSequence);
     ctor protected SnoozeCriterion(android.os.Parcel);
     method public int describeContents();
-    method public java.lang.CharSequence getConfirmation();
-    method public java.lang.CharSequence getExplanation();
-    method public java.lang.String getId();
+    method public CharSequence getConfirmation();
+    method public CharSequence getExplanation();
+    method public String getId();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.service.notification.SnoozeCriterion> CREATOR;
   }
@@ -1611,7 +1615,7 @@
 package android.telecom {
 
   public final class CallAudioState implements android.os.Parcelable {
-    ctor public CallAudioState(boolean, int, int, android.bluetooth.BluetoothDevice, java.util.Collection<android.bluetooth.BluetoothDevice>);
+    ctor public CallAudioState(boolean, int, int, @Nullable android.bluetooth.BluetoothDevice, @NonNull java.util.Collection<android.bluetooth.BluetoothDevice>);
   }
 
   public final class PhoneAccountSuggestion implements android.os.Parcelable {
@@ -1620,10 +1624,10 @@
 
   public class PhoneAccountSuggestionService extends android.app.Service {
     ctor public PhoneAccountSuggestionService();
-    method public void onAccountSuggestionRequest(java.lang.String);
+    method public void onAccountSuggestionRequest(@NonNull String);
     method public android.os.IBinder onBind(android.content.Intent);
-    method public final void suggestPhoneAccounts(java.lang.String, java.util.List<android.telecom.PhoneAccountSuggestion>);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.PhoneAccountSuggestionService";
+    method public final void suggestPhoneAccounts(@NonNull String, @NonNull java.util.List<android.telecom.PhoneAccountSuggestion>);
+    field public static final String SERVICE_INTERFACE = "android.telecom.PhoneAccountSuggestionService";
   }
 
 }
@@ -1631,19 +1635,19 @@
 package android.telephony {
 
   public class CarrierConfigManager {
-    method public void overrideConfig(int, android.os.PersistableBundle);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void overrideConfig(int, @Nullable android.os.PersistableBundle);
   }
 
   public class MbmsDownloadSession implements java.lang.AutoCloseable {
-    field public static final java.lang.String MBMS_DOWNLOAD_SERVICE_OVERRIDE_METADATA = "mbms-download-service-override";
+    field public static final String MBMS_DOWNLOAD_SERVICE_OVERRIDE_METADATA = "mbms-download-service-override";
   }
 
   public class MbmsGroupCallSession implements java.lang.AutoCloseable {
-    field public static final java.lang.String MBMS_GROUP_CALL_SERVICE_OVERRIDE_METADATA = "mbms-group-call-service-override";
+    field public static final String MBMS_GROUP_CALL_SERVICE_OVERRIDE_METADATA = "mbms-group-call-service-override";
   }
 
   public class MbmsStreamingSession implements java.lang.AutoCloseable {
-    field public static final java.lang.String MBMS_STREAMING_SERVICE_OVERRIDE_METADATA = "mbms-streaming-service-override";
+    field public static final String MBMS_STREAMING_SERVICE_OVERRIDE_METADATA = "mbms-streaming-service-override";
   }
 
   public class ServiceState implements android.os.Parcelable {
@@ -1657,8 +1661,8 @@
   public class TelephonyManager {
     method public int getCarrierIdListVersion();
     method public boolean isRttSupported();
-    method public void refreshUiccProfile();
-    method public void setCarrierTestOverride(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void refreshUiccProfile();
+    method public void setCarrierTestOverride(String, String, String, String, String, String, String);
     field public static final int UNKNOWN_CARRIER_ID_LIST_VERSION = -1; // 0xffffffff
   }
 
@@ -1667,19 +1671,19 @@
 package android.telephony.mbms {
 
   public static class DownloadRequest.Builder {
-    method public android.telephony.mbms.DownloadRequest.Builder setServiceId(java.lang.String);
+    method public android.telephony.mbms.DownloadRequest.Builder setServiceId(String);
   }
 
   public final class FileInfo implements android.os.Parcelable {
-    ctor public FileInfo(android.net.Uri, java.lang.String);
+    ctor public FileInfo(android.net.Uri, String);
   }
 
   public final class FileServiceInfo extends android.telephony.mbms.ServiceInfo implements android.os.Parcelable {
-    ctor public FileServiceInfo(java.util.Map<java.util.Locale, java.lang.String>, java.lang.String, java.util.List<java.util.Locale>, java.lang.String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>);
+    ctor public FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>);
   }
 
   public final class StreamingServiceInfo extends android.telephony.mbms.ServiceInfo implements android.os.Parcelable {
-    ctor public StreamingServiceInfo(java.util.Map<java.util.Locale, java.lang.String>, java.lang.String, java.util.List<java.util.Locale>, java.lang.String, java.util.Date, java.util.Date);
+    ctor public StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date);
   }
 
   public final class UriPathPair implements android.os.Parcelable {
@@ -1698,18 +1702,22 @@
     ctor public MbmsDownloadServiceBase();
     method public int addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) throws android.os.RemoteException;
     method public int addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) throws android.os.RemoteException;
+    method public android.os.IBinder asBinder();
     method public int cancelDownload(android.telephony.mbms.DownloadRequest) throws android.os.RemoteException;
     method public void dispose(int) throws android.os.RemoteException;
     method public int download(android.telephony.mbms.DownloadRequest) throws android.os.RemoteException;
+    method public static String getDefaultTransactionName(int);
+    method public String getTransactionName(int);
     method public int initialize(int, android.telephony.mbms.MbmsDownloadSessionCallback) throws android.os.RemoteException;
-    method public java.util.List<android.telephony.mbms.DownloadRequest> listPendingDownloads(int) throws android.os.RemoteException;
+    method @NonNull public java.util.List<android.telephony.mbms.DownloadRequest> listPendingDownloads(int) throws android.os.RemoteException;
     method public void onAppCallbackDied(int, int);
+    method public boolean onTransact(int, android.os.Parcel, android.os.Parcel, int) throws android.os.RemoteException;
     method public int removeProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) throws android.os.RemoteException;
     method public int removeStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) throws android.os.RemoteException;
     method public int requestDownloadState(android.telephony.mbms.DownloadRequest, android.telephony.mbms.FileInfo) throws android.os.RemoteException;
     method public int requestUpdateFileServices(int, java.util.List<java.lang.String>) throws android.os.RemoteException;
     method public int resetDownloadKnowledge(android.telephony.mbms.DownloadRequest) throws android.os.RemoteException;
-    method public int setTempFileRootDirectory(int, java.lang.String) throws android.os.RemoteException;
+    method public int setTempFileRootDirectory(int, String) throws android.os.RemoteException;
   }
 
   public class MbmsGroupCallServiceBase extends android.app.Service {
@@ -1725,30 +1733,34 @@
 
   public class MbmsStreamingServiceBase extends android.os.Binder {
     ctor public MbmsStreamingServiceBase();
+    method public android.os.IBinder asBinder();
     method public void dispose(int) throws android.os.RemoteException;
-    method public android.net.Uri getPlaybackUri(int, java.lang.String) throws android.os.RemoteException;
+    method public static String getDefaultTransactionName(int);
+    method @Nullable public android.net.Uri getPlaybackUri(int, String) throws android.os.RemoteException;
+    method public String getTransactionName(int);
     method public int initialize(android.telephony.mbms.MbmsStreamingSessionCallback, int) throws android.os.RemoteException;
     method public void onAppCallbackDied(int, int);
+    method public boolean onTransact(int, android.os.Parcel, android.os.Parcel, int) throws android.os.RemoteException;
     method public int requestUpdateStreamingServices(int, java.util.List<java.lang.String>) throws android.os.RemoteException;
-    method public int startStreaming(int, java.lang.String, android.telephony.mbms.StreamingServiceCallback) throws android.os.RemoteException;
-    method public void stopStreaming(int, java.lang.String) throws android.os.RemoteException;
+    method public int startStreaming(int, String, android.telephony.mbms.StreamingServiceCallback) throws android.os.RemoteException;
+    method public void stopStreaming(int, String) throws android.os.RemoteException;
   }
 
   public class VendorUtils {
     ctor public VendorUtils();
-    method public static android.content.ComponentName getAppReceiverFromPackageName(android.content.Context, java.lang.String);
-    field public static final java.lang.String ACTION_CLEANUP = "android.telephony.mbms.action.CLEANUP";
-    field public static final java.lang.String ACTION_DOWNLOAD_RESULT_INTERNAL = "android.telephony.mbms.action.DOWNLOAD_RESULT_INTERNAL";
-    field public static final java.lang.String ACTION_FILE_DESCRIPTOR_REQUEST = "android.telephony.mbms.action.FILE_DESCRIPTOR_REQUEST";
-    field public static final java.lang.String EXTRA_FD_COUNT = "android.telephony.mbms.extra.FD_COUNT";
-    field public static final java.lang.String EXTRA_FINAL_URI = "android.telephony.mbms.extra.FINAL_URI";
-    field public static final java.lang.String EXTRA_FREE_URI_LIST = "android.telephony.mbms.extra.FREE_URI_LIST";
-    field public static final java.lang.String EXTRA_PAUSED_LIST = "android.telephony.mbms.extra.PAUSED_LIST";
-    field public static final java.lang.String EXTRA_PAUSED_URI_LIST = "android.telephony.mbms.extra.PAUSED_URI_LIST";
-    field public static final java.lang.String EXTRA_SERVICE_ID = "android.telephony.mbms.extra.SERVICE_ID";
-    field public static final java.lang.String EXTRA_TEMP_FILES_IN_USE = "android.telephony.mbms.extra.TEMP_FILES_IN_USE";
-    field public static final java.lang.String EXTRA_TEMP_FILE_ROOT = "android.telephony.mbms.extra.TEMP_FILE_ROOT";
-    field public static final java.lang.String EXTRA_TEMP_LIST = "android.telephony.mbms.extra.TEMP_LIST";
+    method public static android.content.ComponentName getAppReceiverFromPackageName(android.content.Context, String);
+    field public static final String ACTION_CLEANUP = "android.telephony.mbms.action.CLEANUP";
+    field public static final String ACTION_DOWNLOAD_RESULT_INTERNAL = "android.telephony.mbms.action.DOWNLOAD_RESULT_INTERNAL";
+    field public static final String ACTION_FILE_DESCRIPTOR_REQUEST = "android.telephony.mbms.action.FILE_DESCRIPTOR_REQUEST";
+    field public static final String EXTRA_FD_COUNT = "android.telephony.mbms.extra.FD_COUNT";
+    field public static final String EXTRA_FINAL_URI = "android.telephony.mbms.extra.FINAL_URI";
+    field public static final String EXTRA_FREE_URI_LIST = "android.telephony.mbms.extra.FREE_URI_LIST";
+    field public static final String EXTRA_PAUSED_LIST = "android.telephony.mbms.extra.PAUSED_LIST";
+    field public static final String EXTRA_PAUSED_URI_LIST = "android.telephony.mbms.extra.PAUSED_URI_LIST";
+    field public static final String EXTRA_SERVICE_ID = "android.telephony.mbms.extra.SERVICE_ID";
+    field public static final String EXTRA_TEMP_FILES_IN_USE = "android.telephony.mbms.extra.TEMP_FILES_IN_USE";
+    field public static final String EXTRA_TEMP_FILE_ROOT = "android.telephony.mbms.extra.TEMP_FILE_ROOT";
+    field public static final String EXTRA_TEMP_LIST = "android.telephony.mbms.extra.TEMP_LIST";
   }
 
 }
@@ -1758,8 +1770,8 @@
   public static final class Selection.MemoryTextWatcher implements android.text.TextWatcher {
     ctor public Selection.MemoryTextWatcher();
     method public void afterTextChanged(android.text.Editable);
-    method public void beforeTextChanged(java.lang.CharSequence, int, int, int);
-    method public void onTextChanged(java.lang.CharSequence, int, int, int);
+    method public void beforeTextChanged(CharSequence, int, int, int);
+    method public void onTextChanged(CharSequence, int, int, int);
   }
 
 }
@@ -1774,7 +1786,7 @@
 
 package android.util {
 
-  public final class ArraySet<E> implements java.util.Collection java.util.Set {
+  public final class ArraySet<E> implements java.util.Collection<E> java.util.Set<E> {
     method public E valueAtUnchecked(int);
   }
 
@@ -1785,12 +1797,12 @@
   public final class EncodedBuffer {
     ctor public EncodedBuffer();
     ctor public EncodedBuffer(int);
-    method public void dumpBuffers(java.lang.String);
-    method public static void dumpByteString(java.lang.String, java.lang.String, byte[]);
+    method public void dumpBuffers(String);
+    method public static void dumpByteString(String, String, byte[]);
     method public void editRawFixed32(int, int);
     method public byte[] getBytes(int);
     method public int getChunkCount();
-    method public java.lang.String getDebugString();
+    method public String getDebugString();
     method public int getRawFixed32At(int);
     method public static int getRawVarint32Size(int);
     method public static int getRawVarint64Size(long);
@@ -1826,7 +1838,7 @@
     ctor public ProtoInputStream(byte[]);
     method public int decodeZigZag32(int);
     method public long decodeZigZag64(long);
-    method public java.lang.String dumpDebugData();
+    method public String dumpDebugData();
     method public void end(long);
     method public int getFieldNumber();
     method public int getOffset();
@@ -1839,7 +1851,7 @@
     method public float readFloat(long) throws java.io.IOException;
     method public int readInt(long) throws java.io.IOException;
     method public long readLong(long) throws java.io.IOException;
-    method public java.lang.String readString(long) throws java.io.IOException;
+    method public String readString(long) throws java.io.IOException;
     method public void skip() throws java.io.IOException;
     method public long start(long) throws java.io.IOException;
     field public static final int NO_MORE_FIELDS = -1; // 0xffffffff
@@ -1851,93 +1863,93 @@
     ctor public ProtoOutputStream(java.io.OutputStream);
     ctor public ProtoOutputStream(java.io.FileDescriptor);
     method public static int checkFieldId(long, long);
-    method public void dump(java.lang.String);
+    method public void dump(String);
     method public void end(long);
-    method public deprecated void endObject(long);
-    method public deprecated void endRepeatedObject(long);
+    method @Deprecated public void endObject(long);
+    method @Deprecated public void endRepeatedObject(long);
     method public void flush();
     method public byte[] getBytes();
     method public static long makeFieldId(int, long);
     method public long start(long);
-    method public deprecated long startObject(long);
-    method public deprecated long startRepeatedObject(long);
+    method @Deprecated public long startObject(long);
+    method @Deprecated public long startRepeatedObject(long);
     method public void write(long, double);
     method public void write(long, float);
     method public void write(long, int);
     method public void write(long, long);
     method public void write(long, boolean);
-    method public void write(long, java.lang.String);
+    method public void write(long, String);
     method public void write(long, byte[]);
-    method public deprecated void writeBool(long, boolean);
-    method public deprecated void writeBytes(long, byte[]);
-    method public deprecated void writeDouble(long, double);
-    method public deprecated void writeEnum(long, int);
-    method public deprecated void writeFixed32(long, int);
-    method public deprecated void writeFixed64(long, long);
-    method public deprecated void writeFloat(long, float);
-    method public deprecated void writeInt32(long, int);
-    method public deprecated void writeInt64(long, long);
-    method public deprecated void writeObject(long, byte[]);
-    method public deprecated void writePackedBool(long, boolean[]);
-    method public deprecated void writePackedDouble(long, double[]);
-    method public deprecated void writePackedEnum(long, int[]);
-    method public deprecated void writePackedFixed32(long, int[]);
-    method public deprecated void writePackedFixed64(long, long[]);
-    method public deprecated void writePackedFloat(long, float[]);
-    method public deprecated void writePackedInt32(long, int[]);
-    method public deprecated void writePackedInt64(long, long[]);
-    method public deprecated void writePackedSFixed32(long, int[]);
-    method public deprecated void writePackedSFixed64(long, long[]);
-    method public deprecated void writePackedSInt32(long, int[]);
-    method public deprecated void writePackedSInt64(long, long[]);
-    method public deprecated void writePackedUInt32(long, int[]);
-    method public deprecated void writePackedUInt64(long, long[]);
-    method public deprecated void writeRepeatedBool(long, boolean);
-    method public deprecated void writeRepeatedBytes(long, byte[]);
-    method public deprecated void writeRepeatedDouble(long, double);
-    method public deprecated void writeRepeatedEnum(long, int);
-    method public deprecated void writeRepeatedFixed32(long, int);
-    method public deprecated void writeRepeatedFixed64(long, long);
-    method public deprecated void writeRepeatedFloat(long, float);
-    method public deprecated void writeRepeatedInt32(long, int);
-    method public deprecated void writeRepeatedInt64(long, long);
-    method public deprecated void writeRepeatedObject(long, byte[]);
-    method public deprecated void writeRepeatedSFixed32(long, int);
-    method public deprecated void writeRepeatedSFixed64(long, long);
-    method public deprecated void writeRepeatedSInt32(long, int);
-    method public deprecated void writeRepeatedSInt64(long, long);
-    method public deprecated void writeRepeatedString(long, java.lang.String);
-    method public deprecated void writeRepeatedUInt32(long, int);
-    method public deprecated void writeRepeatedUInt64(long, long);
-    method public deprecated void writeSFixed32(long, int);
-    method public deprecated void writeSFixed64(long, long);
-    method public deprecated void writeSInt32(long, int);
-    method public deprecated void writeSInt64(long, long);
-    method public deprecated void writeString(long, java.lang.String);
+    method @Deprecated public void writeBool(long, boolean);
+    method @Deprecated public void writeBytes(long, byte[]);
+    method @Deprecated public void writeDouble(long, double);
+    method @Deprecated public void writeEnum(long, int);
+    method @Deprecated public void writeFixed32(long, int);
+    method @Deprecated public void writeFixed64(long, long);
+    method @Deprecated public void writeFloat(long, float);
+    method @Deprecated public void writeInt32(long, int);
+    method @Deprecated public void writeInt64(long, long);
+    method @Deprecated public void writeObject(long, byte[]);
+    method @Deprecated public void writePackedBool(long, boolean[]);
+    method @Deprecated public void writePackedDouble(long, double[]);
+    method @Deprecated public void writePackedEnum(long, int[]);
+    method @Deprecated public void writePackedFixed32(long, int[]);
+    method @Deprecated public void writePackedFixed64(long, long[]);
+    method @Deprecated public void writePackedFloat(long, float[]);
+    method @Deprecated public void writePackedInt32(long, int[]);
+    method @Deprecated public void writePackedInt64(long, long[]);
+    method @Deprecated public void writePackedSFixed32(long, int[]);
+    method @Deprecated public void writePackedSFixed64(long, long[]);
+    method @Deprecated public void writePackedSInt32(long, int[]);
+    method @Deprecated public void writePackedSInt64(long, long[]);
+    method @Deprecated public void writePackedUInt32(long, int[]);
+    method @Deprecated public void writePackedUInt64(long, long[]);
+    method @Deprecated public void writeRepeatedBool(long, boolean);
+    method @Deprecated public void writeRepeatedBytes(long, byte[]);
+    method @Deprecated public void writeRepeatedDouble(long, double);
+    method @Deprecated public void writeRepeatedEnum(long, int);
+    method @Deprecated public void writeRepeatedFixed32(long, int);
+    method @Deprecated public void writeRepeatedFixed64(long, long);
+    method @Deprecated public void writeRepeatedFloat(long, float);
+    method @Deprecated public void writeRepeatedInt32(long, int);
+    method @Deprecated public void writeRepeatedInt64(long, long);
+    method @Deprecated public void writeRepeatedObject(long, byte[]);
+    method @Deprecated public void writeRepeatedSFixed32(long, int);
+    method @Deprecated public void writeRepeatedSFixed64(long, long);
+    method @Deprecated public void writeRepeatedSInt32(long, int);
+    method @Deprecated public void writeRepeatedSInt64(long, long);
+    method @Deprecated public void writeRepeatedString(long, String);
+    method @Deprecated public void writeRepeatedUInt32(long, int);
+    method @Deprecated public void writeRepeatedUInt64(long, long);
+    method @Deprecated public void writeSFixed32(long, int);
+    method @Deprecated public void writeSFixed64(long, long);
+    method @Deprecated public void writeSInt32(long, int);
+    method @Deprecated public void writeSInt64(long, long);
+    method @Deprecated public void writeString(long, String);
     method public void writeTag(int, int);
-    method public deprecated void writeUInt32(long, int);
-    method public deprecated void writeUInt64(long, long);
+    method @Deprecated public void writeUInt32(long, int);
+    method @Deprecated public void writeUInt64(long, long);
   }
 
   public class ProtoParseException extends java.lang.RuntimeException {
-    ctor public ProtoParseException(java.lang.String);
+    ctor public ProtoParseException(String);
   }
 
   public abstract class ProtoStream {
     ctor public ProtoStream();
     method public static int convertObjectIdToOrdinal(int);
     method public static int getDepthFromToken(long);
-    method public static java.lang.String getFieldCountString(long);
-    method public static java.lang.String getFieldIdString(long);
-    method public static java.lang.String getFieldTypeString(long);
+    method public static String getFieldCountString(long);
+    method public static String getFieldIdString(long);
+    method public static String getFieldTypeString(long);
     method public static int getObjectIdFromToken(long);
     method public static int getOffsetFromToken(long);
     method public static boolean getRepeatedFromToken(long);
     method public static int getTagSizeFromToken(long);
-    method public static java.lang.String getWireTypeString(int);
+    method public static String getWireTypeString(int);
     method public static long makeFieldId(int, long);
     method public static long makeToken(int, boolean, int, int, int);
-    method public static java.lang.String token2String(long);
+    method public static String token2String(long);
     field public static final long FIELD_COUNT_MASK = 16492674416640L; // 0xf0000000000L
     field public static final long FIELD_COUNT_PACKED = 5497558138880L; // 0x50000000000L
     field public static final long FIELD_COUNT_REPEATED = 2199023255552L; // 0x20000000000L
@@ -1957,7 +1969,7 @@
     field public static final long FIELD_TYPE_INT64 = 12884901888L; // 0x300000000L
     field public static final long FIELD_TYPE_MASK = 1095216660480L; // 0xff00000000L
     field public static final long FIELD_TYPE_MESSAGE = 47244640256L; // 0xb00000000L
-    field protected static final java.lang.String[] FIELD_TYPE_NAMES;
+    field protected static final String[] FIELD_TYPE_NAMES;
     field public static final long FIELD_TYPE_SFIXED32 = 64424509440L; // 0xf00000000L
     field public static final long FIELD_TYPE_SFIXED64 = 68719476736L; // 0x1000000000L
     field public static final int FIELD_TYPE_SHIFT = 32; // 0x20
@@ -1977,7 +1989,7 @@
   }
 
   public class WireTypeMismatchException extends android.util.proto.ProtoParseException {
-    ctor public WireTypeMismatchException(java.lang.String);
+    ctor public WireTypeMismatchException(String);
   }
 
 }
@@ -1990,9 +2002,9 @@
 
   public final class Choreographer {
     method public static long getFrameDelay();
-    method public void postCallback(int, java.lang.Runnable, java.lang.Object);
-    method public void postCallbackDelayed(int, java.lang.Runnable, java.lang.Object, long);
-    method public void removeCallbacks(int, java.lang.Runnable, java.lang.Object);
+    method public void postCallback(int, Runnable, Object);
+    method public void postCallbackDelayed(int, Runnable, Object, long);
+    method public void removeCallbacks(int, Runnable, Object);
     method public static void setFrameDelay(long);
     field public static final int CALLBACK_ANIMATION = 1; // 0x1
   }
@@ -2002,19 +2014,19 @@
   }
 
   public final class InputDevice implements android.os.Parcelable {
-    method public void disable();
-    method public void enable();
+    method @RequiresPermission("android.permission.DISABLE_INPUT_DEVICE") public void disable();
+    method @RequiresPermission("android.permission.DISABLE_INPUT_DEVICE") public void enable();
   }
 
   public class KeyEvent extends android.view.InputEvent implements android.os.Parcelable {
-    method public static java.lang.String actionToString(int);
+    method public static String actionToString(int);
     method public final void setDisplayId(int);
     field public static final int LAST_KEYCODE = 288; // 0x120
   }
 
   public final class KeyboardShortcutGroup implements android.os.Parcelable {
-    ctor public KeyboardShortcutGroup(java.lang.CharSequence, java.util.List<android.view.KeyboardShortcutInfo>, boolean);
-    ctor public KeyboardShortcutGroup(java.lang.CharSequence, boolean);
+    ctor public KeyboardShortcutGroup(@Nullable CharSequence, @NonNull java.util.List<android.view.KeyboardShortcutInfo>, boolean);
+    ctor public KeyboardShortcutGroup(@Nullable CharSequence, boolean);
     method public boolean isSystemGroup();
   }
 
@@ -2024,7 +2036,7 @@
     method public void setDisplayId(int);
   }
 
-  public class View implements android.view.accessibility.AccessibilityEventSource android.graphics.drawable.Drawable.Callback android.view.KeyEvent.Callback {
+  @UiThread public class View implements android.view.accessibility.AccessibilityEventSource android.graphics.drawable.Drawable.Callback android.view.KeyEvent.Callback {
     method public android.view.View getTooltipView();
     method public static boolean isDefaultFocusHighlightEnabled();
     method public boolean isDefaultFocusHighlightNeeded(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
@@ -2049,7 +2061,7 @@
     method public static int getLongPressTooltipHideTimeout();
   }
 
-  public abstract interface WindowManager implements android.view.ViewManager {
+  public interface WindowManager extends android.view.ViewManager {
     method public default void setShouldShowIme(int, boolean);
     method public default void setShouldShowSystemDecors(int, boolean);
     method public default void setShouldShowWithInsecureKeyguard(int, boolean);
@@ -2058,8 +2070,8 @@
   public static class WindowManager.LayoutParams extends android.view.ViewGroup.LayoutParams implements android.os.Parcelable {
     field public static final int ACCESSIBILITY_TITLE_CHANGED = 33554432; // 0x2000000
     field public static final int PRIVATE_FLAG_NO_MOVE_ANIMATION = 64; // 0x40
-    field public java.lang.CharSequence accessibilityTitle;
-    field public int privateFlags;
+    field public CharSequence accessibilityTitle;
+    field @android.view.ViewDebug.ExportedProperty(flagMapping={@android.view.ViewDebug.FlagToString(mask=0x1, equals=0x1, name="FAKE_HARDWARE_ACCELERATED"), @android.view.ViewDebug.FlagToString(mask=0x2, equals=0x2, name="FORCE_HARDWARE_ACCELERATED"), @android.view.ViewDebug.FlagToString(mask=0x4, equals=0x4, name="WANTS_OFFSET_NOTIFICATIONS"), @android.view.ViewDebug.FlagToString(mask=0x10, equals=0x10, name="SHOW_FOR_ALL_USERS"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION, equals=android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION, name="NO_MOVE_ANIMATION"), @android.view.ViewDebug.FlagToString(mask=0x80, equals=0x80, name="COMPATIBLE_WINDOW"), @android.view.ViewDebug.FlagToString(mask=0x100, equals=0x100, name="SYSTEM_ERROR"), @android.view.ViewDebug.FlagToString(mask=0x200, equals=0x200, name="INHERIT_TRANSLUCENT_DECOR"), @android.view.ViewDebug.FlagToString(mask=0x400, equals=0x400, name="KEYGUARD"), @android.view.ViewDebug.FlagToString(mask=0x800, equals=0x800, name="DISABLE_WALLPAPER_TOUCH_EVENTS"), @android.view.ViewDebug.FlagToString(mask=0x1000, equals=0x1000, name="FORCE_STATUS_BAR_VISIBLE_TRANSPARENT"), @android.view.ViewDebug.FlagToString(mask=0x2000, equals=0x2000, name="PRESERVE_GEOMETRY"), @android.view.ViewDebug.FlagToString(mask=0x4000, equals=0x4000, name="FORCE_DECOR_VIEW_VISIBILITY"), @android.view.ViewDebug.FlagToString(mask=0x8000, equals=0x8000, name="WILL_NOT_REPLACE_ON_RELAUNCH"), @android.view.ViewDebug.FlagToString(mask=0x10000, equals=0x10000, name="LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME"), @android.view.ViewDebug.FlagToString(mask=0x20000, equals=0x20000, name="FORCE_DRAW_STATUS_BAR_BACKGROUND"), @android.view.ViewDebug.FlagToString(mask=0x40000, equals=0x40000, name="SUSTAINED_PERFORMANCE_MODE"), @android.view.ViewDebug.FlagToString(mask=0x80000, equals=0x80000, name="HIDE_NON_SYSTEM_OVERLAY_WINDOWS"), @android.view.ViewDebug.FlagToString(mask=0x100000, equals=0x100000, name="IS_ROUNDED_CORNERS_OVERLAY"), @android.view.ViewDebug.FlagToString(mask=0x400000, equals=0x400000, name="IS_SCREEN_DECOR"), @android.view.ViewDebug.FlagToString(mask=0x800000, equals=0x800000, name="STATUS_FORCE_SHOW_NAVIGATION")}) public int privateFlags;
   }
 
 }
@@ -2067,14 +2079,14 @@
 package android.view.accessibility {
 
   public final class AccessibilityManager {
-    method public void addAccessibilityServicesStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener, android.os.Handler);
-    method public java.lang.String getAccessibilityShortcutService();
-    method public void performAccessibilityShortcut();
-    method public void removeAccessibilityServicesStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener);
+    method public void addAccessibilityServicesStateChangeListener(@NonNull android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener, @Nullable android.os.Handler);
+    method @Nullable @RequiresPermission("android.permission.MANAGE_ACCESSIBILITY") public String getAccessibilityShortcutService();
+    method @RequiresPermission("android.permission.MANAGE_ACCESSIBILITY") public void performAccessibilityShortcut();
+    method public void removeAccessibilityServicesStateChangeListener(@NonNull android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener);
   }
 
-  public static abstract interface AccessibilityManager.AccessibilityServicesStateChangeListener {
-    method public abstract void onAccessibilityServicesStateChanged(android.view.accessibility.AccessibilityManager);
+  public static interface AccessibilityManager.AccessibilityServicesStateChangeListener {
+    method public void onAccessibilityServicesStateChanged(android.view.accessibility.AccessibilityManager);
   }
 
   public class AccessibilityNodeInfo implements android.os.Parcelable {
@@ -2083,7 +2095,7 @@
   }
 
   public static final class AccessibilityNodeInfo.TouchDelegateInfo implements android.os.Parcelable {
-    method public long getAccessibilityIdForRegion(android.graphics.Region);
+    method public long getAccessibilityIdForRegion(@NonNull android.graphics.Region);
   }
 
   public final class AccessibilityWindowInfo implements android.os.Parcelable {
@@ -2105,7 +2117,7 @@
 
   public final class AutofillId implements android.os.Parcelable {
     ctor public AutofillId(int);
-    ctor public AutofillId(android.view.autofill.AutofillId, int);
+    ctor public AutofillId(@NonNull android.view.autofill.AutofillId, int);
   }
 
   public final class AutofillManager {
@@ -2122,9 +2134,46 @@
 
 }
 
+package android.view.inspector {
+
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE}) public @interface InspectableNodeName {
+    method public abstract String value();
+  }
+
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD}) public @interface InspectableProperty {
+    method public abstract int attributeId() default android.content.res.Resources.ID_NULL;
+    method public abstract android.view.inspector.InspectableProperty.EnumMap[] enumMapping() default {};
+    method public abstract android.view.inspector.InspectableProperty.FlagMap[] flagMapping() default {};
+    method public abstract boolean hasAttributeId() default true;
+    method public abstract String name() default "";
+    method public abstract android.view.inspector.InspectableProperty.ValueType valueType() default android.view.inspector.InspectableProperty.ValueType.INFERRED;
+  }
+
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE}) public static @interface InspectableProperty.EnumMap {
+    method public abstract String name();
+    method public abstract int value();
+  }
+
+  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE}) public static @interface InspectableProperty.FlagMap {
+    method public abstract int mask() default 0;
+    method public abstract String name();
+    method public abstract int target();
+  }
+
+  public enum InspectableProperty.ValueType {
+    enum_constant public static final android.view.inspector.InspectableProperty.ValueType COLOR;
+    enum_constant public static final android.view.inspector.InspectableProperty.ValueType GRAVITY;
+    enum_constant public static final android.view.inspector.InspectableProperty.ValueType INFERRED;
+    enum_constant public static final android.view.inspector.InspectableProperty.ValueType INT_ENUM;
+    enum_constant public static final android.view.inspector.InspectableProperty.ValueType INT_FLAG;
+    enum_constant public static final android.view.inspector.InspectableProperty.ValueType NONE;
+  }
+
+}
+
 package android.widget {
 
-  public abstract class AbsListView extends android.widget.AdapterView implements android.widget.Filter.FilterListener android.text.TextWatcher android.view.ViewTreeObserver.OnGlobalLayoutListener android.view.ViewTreeObserver.OnTouchModeChangeListener {
+  public abstract class AbsListView extends android.widget.AdapterView<android.widget.ListAdapter> implements android.widget.Filter.FilterListener android.text.TextWatcher android.view.ViewTreeObserver.OnGlobalLayoutListener android.view.ViewTreeObserver.OnTouchModeChangeListener {
     method public final boolean shouldDrawSelector();
   }
 
@@ -2138,19 +2187,19 @@
     field public static final int MODE_SPINNER = 1; // 0x1
   }
 
-  public final class Magnifier {
-    method public android.graphics.Bitmap getContent();
+  @UiThread public final class Magnifier {
+    method @Nullable public android.graphics.Bitmap getContent();
     method public static android.graphics.PointF getMagnifierDefaultSize();
-    method public android.graphics.Bitmap getOriginalContent();
+    method @Nullable public android.graphics.Bitmap getOriginalContent();
     method public void setOnOperationCompleteCallback(android.widget.Magnifier.Callback);
   }
 
-  public static abstract interface Magnifier.Callback {
-    method public abstract void onOperationComplete();
+  public static interface Magnifier.Callback {
+    method public void onOperationComplete();
   }
 
   public class NumberPicker extends android.widget.LinearLayout {
-    method public java.lang.CharSequence getDisplayedValueForCurrentSelection();
+    method public CharSequence getDisplayedValueForCurrentSelection();
   }
 
   public class PopupMenu {
@@ -2161,7 +2210,7 @@
     method public boolean isPopupShowing();
   }
 
-  public class TextClock extends android.widget.TextView {
+  @android.widget.RemoteViews.RemoteView public class TextClock extends android.widget.TextView {
     method public void disableClockTick();
   }
 
@@ -2176,7 +2225,7 @@
   }
 
   public class Toolbar extends android.view.ViewGroup {
-    method public android.view.View getNavigationView();
+    method @Nullable public android.view.View getNavigationView();
   }
 
 }
diff --git a/api/test-removed.txt b/api/test-removed.txt
index e69de29..d802177 100644
--- a/api/test-removed.txt
+++ b/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/cmds/idmap2/idmap2/Scan.cpp b/cmds/idmap2/idmap2/Scan.cpp
index a269ee9..b1ed42a 100644
--- a/cmds/idmap2/idmap2/Scan.cpp
+++ b/cmds/idmap2/idmap2/Scan.cpp
@@ -29,6 +29,7 @@
 #include "idmap2/CommandLineOptions.h"
 #include "idmap2/FileUtils.h"
 #include "idmap2/Idmap.h"
+#include "idmap2/ResourceUtils.h"
 #include "idmap2/Xml.h"
 #include "idmap2/ZipFile.h"
 
@@ -36,14 +37,13 @@
 
 using android::idmap2::CommandLineOptions;
 using android::idmap2::Idmap;
-using android::idmap2::MemoryChunk;
 using android::idmap2::PoliciesToBitmask;
 using android::idmap2::PolicyBitmask;
 using android::idmap2::PolicyFlags;
 using android::idmap2::Result;
-using android::idmap2::Xml;
-using android::idmap2::ZipFile;
+using android::idmap2::utils::ExtractOverlayManifestInfo;
 using android::idmap2::utils::FindFiles;
+using android::idmap2::utils::OverlayManifestInfo;
 
 namespace {
 
@@ -138,46 +138,23 @@
 
   std::vector<InputOverlay> interesting_apks;
   for (const std::string& path : *apk_paths) {
-    std::unique_ptr<const ZipFile> zip = ZipFile::Open(path);
-    if (!zip) {
-      out_error << "error: failed to open " << path << " as a zip file" << std::endl;
+    Result<OverlayManifestInfo> overlay_info =
+        ExtractOverlayManifestInfo(path, out_error,
+                                   /* assert_overlay */ false);
+    if (!overlay_info) {
       return false;
     }
 
-    std::unique_ptr<const MemoryChunk> entry = zip->Uncompress("AndroidManifest.xml");
-    if (!entry) {
-      out_error << "error: failed to uncompress AndroidManifest.xml from " << path << std::endl;
-      return false;
-    }
-
-    std::unique_ptr<const Xml> xml = Xml::Create(entry->buf, entry->size);
-    if (!xml) {
-      out_error << "error: failed to parse AndroidManifest.xml from " << path << std::endl;
+    if (!overlay_info->is_static) {
       continue;
     }
 
-    const auto tag = xml->FindTag("overlay");
-    if (!tag) {
+    if (overlay_info->target_package.empty() ||
+        overlay_info->target_package != target_package_name) {
       continue;
     }
 
-    auto iter = tag->find("isStatic");
-    if (iter == tag->end() || std::stoul(iter->second) == 0U) {
-      continue;
-    }
-
-    iter = tag->find("targetPackage");
-    if (iter == tag->end() || iter->second != target_package_name) {
-      continue;
-    }
-
-    iter = tag->find("priority");
-    if (iter == tag->end()) {
-      continue;
-    }
-
-    const int priority = std::stoi(iter->second);
-    if (priority < 0) {
+    if (overlay_info->priority < 0) {
       continue;
     }
 
@@ -203,7 +180,8 @@
     std::string idmap_path = Idmap::CanonicalIdmapPathFor(output_directory, path);
 
     // Sort the static overlays in ascending priority order
-    InputOverlay input{path, idmap_path, priority, override_policies, ignore_overlayable};
+    InputOverlay input{path, idmap_path, overlay_info->priority, override_policies,
+                       ignore_overlayable};
     interesting_apks.insert(
         std::lower_bound(interesting_apks.begin(), interesting_apks.end(), input), input);
   }
diff --git a/cmds/idmap2/include/idmap2/ResourceUtils.h b/cmds/idmap2/include/idmap2/ResourceUtils.h
index 323796b..22827ac 100644
--- a/cmds/idmap2/include/idmap2/ResourceUtils.h
+++ b/cmds/idmap2/include/idmap2/ResourceUtils.h
@@ -17,6 +17,8 @@
 #ifndef IDMAP2_INCLUDE_IDMAP2_RESOURCEUTILS_H_
 #define IDMAP2_INCLUDE_IDMAP2_RESOURCEUTILS_H_
 
+#include <optional>
+#include <ostream>
 #include <string>
 
 #include "android-base/macros.h"
@@ -24,9 +26,21 @@
 
 #include "idmap2/Idmap.h"
 #include "idmap2/Result.h"
+#include "idmap2/ZipFile.h"
 
 namespace android::idmap2::utils {
 
+struct OverlayManifestInfo {
+  std::string target_package;  // NOLINT(misc-non-private-member-variables-in-classes)
+  std::string target_name;     // NOLINT(misc-non-private-member-variables-in-classes)
+  bool is_static;              // NOLINT(misc-non-private-member-variables-in-classes)
+  int priority = -1;           // NOLINT(misc-non-private-member-variables-in-classes)
+};
+
+Result<OverlayManifestInfo> ExtractOverlayManifestInfo(const std::string& path,
+                                                       std::ostream& out_error,
+                                                       bool assert_overlay = true);
+
 Result<std::string> WARN_UNUSED ResToTypeEntryName(const AssetManager2& am, ResourceId resid);
 
 }  // namespace android::idmap2::utils
diff --git a/cmds/idmap2/libidmap2/Idmap.cpp b/cmds/idmap2/libidmap2/Idmap.cpp
index 2890ae1..5d449e9 100644
--- a/cmds/idmap2/libidmap2/Idmap.cpp
+++ b/cmds/idmap2/libidmap2/Idmap.cpp
@@ -274,17 +274,24 @@
   return std::move(idmap);
 }
 
-bool CheckOverlayable(const LoadedPackage& target_package, PolicyBitmask fulfilled_polices,
-                      ResourceId resid) {
-  const OverlayableInfo* info = target_package.GetOverlayableInfo(resid);
-  if (info == nullptr) {
+bool CheckOverlayable(const LoadedPackage& target_package,
+                      const utils::OverlayManifestInfo& overlay_info,
+                      const PolicyBitmask& fulfilled_polices, const ResourceId& resid) {
+  const OverlayableInfo* overlayable_info = target_package.GetOverlayableInfo(resid);
+  if (overlayable_info == nullptr) {
     // If the resource does not have an overlayable definition, allow the resource to be overlaid.
     // Once overlayable enforcement is turned on, this check will return false.
     return true;
   }
 
+  if (!overlay_info.target_name.empty() && overlay_info.target_name != overlayable_info->name) {
+    // If the overlay supplies a target overlayable name, the resource must belong to the
+    // overlayable defined with the specified name to be overlaid.
+    return false;
+  }
+
   // Enforce policy restrictions if the resource is declared as overlayable.
-  return (info->policy_flags & fulfilled_polices) != 0;
+  return (overlayable_info->policy_flags & fulfilled_polices) != 0;
 }
 
 std::unique_ptr<const Idmap> Idmap::FromApkAssets(
@@ -339,6 +346,12 @@
     return nullptr;
   }
 
+  Result<utils::OverlayManifestInfo> overlay_info =
+      utils::ExtractOverlayManifestInfo(overlay_apk_path, out_error);
+  if (!overlay_info) {
+    return nullptr;
+  }
+
   std::unique_ptr<IdmapHeader> header(new IdmapHeader());
   header->magic_ = kIdmapMagic;
   header->version_ = kIdmapCurrentVersion;
@@ -393,9 +406,8 @@
       continue;
     }
 
-    if (enforce_overlayable && !CheckOverlayable(*target_pkg, fulfilled_policies, target_resid)) {
-      // The resources must be defined as overlayable and the overlay must fulfill at least one
-      // policy enforced on the overlayable resource
+    if (enforce_overlayable &&
+        !CheckOverlayable(*target_pkg, *overlay_info, fulfilled_policies, target_resid)) {
       LOG(WARNING) << "overlay \"" << overlay_apk_path << "\" is not allowed to overlay resource \""
                    << full_name << "\"" << std::endl;
       continue;
diff --git a/cmds/idmap2/libidmap2/ResourceUtils.cpp b/cmds/idmap2/libidmap2/ResourceUtils.cpp
index 04e0ec7..7a984f3 100644
--- a/cmds/idmap2/libidmap2/ResourceUtils.cpp
+++ b/cmds/idmap2/libidmap2/ResourceUtils.cpp
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include <memory>
 #include <string>
 
 #include "androidfw/StringPiece.h"
@@ -21,8 +22,13 @@
 
 #include "idmap2/ResourceUtils.h"
 #include "idmap2/Result.h"
+#include "idmap2/Xml.h"
+#include "idmap2/ZipFile.h"
 
 using android::StringPiece16;
+using android::idmap2::Result;
+using android::idmap2::Xml;
+using android::idmap2::ZipFile;
 using android::util::Utf16ToUtf8;
 
 namespace android::idmap2::utils {
@@ -47,4 +53,63 @@
   return {out};
 }
 
+Result<OverlayManifestInfo> ExtractOverlayManifestInfo(const std::string& path,
+                                                       std::ostream& out_error,
+                                                       bool assert_overlay) {
+  std::unique_ptr<const ZipFile> zip = ZipFile::Open(path);
+  if (!zip) {
+    out_error << "error: failed to open " << path << " as a zip file" << std::endl;
+    return kResultError;
+  }
+
+  std::unique_ptr<const MemoryChunk> entry = zip->Uncompress("AndroidManifest.xml");
+  if (!entry) {
+    out_error << "error: failed to uncompress AndroidManifest.xml from " << path << std::endl;
+    return kResultError;
+  }
+
+  std::unique_ptr<const Xml> xml = Xml::Create(entry->buf, entry->size);
+  if (!xml) {
+    out_error << "error: failed to parse AndroidManifest.xml from " << path << std::endl;
+    return kResultError;
+  }
+
+  OverlayManifestInfo info{};
+  const auto tag = xml->FindTag("overlay");
+  if (!tag) {
+    if (assert_overlay) {
+      out_error << "error: <overlay> missing from AndroidManifest.xml of " << path << std::endl;
+      return kResultError;
+    }
+    return info;
+  }
+
+  auto iter = tag->find("targetPackage");
+  if (iter == tag->end()) {
+    if (assert_overlay) {
+      out_error << "error: android:targetPackage missing from <overlay> of " << path << std::endl;
+      return kResultError;
+    }
+  } else {
+    info.target_package = iter->second;
+  }
+
+  iter = tag->find("targetName");
+  if (iter != tag->end()) {
+    info.target_name = iter->second;
+  }
+
+  iter = tag->find("isStatic");
+  if (iter != tag->end()) {
+    info.is_static = std::stoul(iter->second) != 0U;
+  }
+
+  iter = tag->find("priority");
+  if (iter != tag->end()) {
+    info.priority = std::stoi(iter->second);
+  }
+
+  return info;
+}
+
 }  // namespace android::idmap2::utils
diff --git a/cmds/idmap2/tests/BinaryStreamVisitorTests.cpp b/cmds/idmap2/tests/BinaryStreamVisitorTests.cpp
index 35ec1ff..0e0e25f 100644
--- a/cmds/idmap2/tests/BinaryStreamVisitorTests.cpp
+++ b/cmds/idmap2/tests/BinaryStreamVisitorTests.cpp
@@ -111,43 +111,46 @@
   success = LoadedIdmap::Lookup(header, 0x0002, &entry);  // string/c
   ASSERT_FALSE(success);
 
-  success = LoadedIdmap::Lookup(header, 0x0003, &entry);  // string/not_overlayable
+  success = LoadedIdmap::Lookup(header, 0x0003, &entry);  // string/other
   ASSERT_FALSE(success);
 
-  success = LoadedIdmap::Lookup(header, 0x0004, &entry);  // string/policy_product
+  success = LoadedIdmap::Lookup(header, 0x0004, &entry);  // string/not_overlayable
   ASSERT_FALSE(success);
 
-  success = LoadedIdmap::Lookup(header, 0x0005, &entry);  // string/policy_public
+  success = LoadedIdmap::Lookup(header, 0x0005, &entry);  // string/policy_product
   ASSERT_FALSE(success);
 
-  success = LoadedIdmap::Lookup(header, 0x0006, &entry);  // string/policy_system
+  success = LoadedIdmap::Lookup(header, 0x0006, &entry);  // string/policy_public
   ASSERT_FALSE(success);
 
-  success = LoadedIdmap::Lookup(header, 0x0007, &entry);  // string/policy_system_vendor
+  success = LoadedIdmap::Lookup(header, 0x0007, &entry);  // string/policy_system
   ASSERT_FALSE(success);
 
-  success = LoadedIdmap::Lookup(header, 0x0008, &entry);  // string/str1
+  success = LoadedIdmap::Lookup(header, 0x0008, &entry);  // string/policy_system_vendor
+  ASSERT_FALSE(success);
+
+  success = LoadedIdmap::Lookup(header, 0x0009, &entry);  // string/str1
   ASSERT_TRUE(success);
   ASSERT_EQ(entry, 0x0000);
 
-  success = LoadedIdmap::Lookup(header, 0x0009, &entry);  // string/str2
+  success = LoadedIdmap::Lookup(header, 0x000a, &entry);  // string/str2
   ASSERT_FALSE(success);
 
-  success = LoadedIdmap::Lookup(header, 0x000a, &entry);  // string/str3
+  success = LoadedIdmap::Lookup(header, 0x000b, &entry);  // string/str3
   ASSERT_TRUE(success);
   ASSERT_EQ(entry, 0x0001);
 
-  success = LoadedIdmap::Lookup(header, 0x000b, &entry);  // string/str4
+  success = LoadedIdmap::Lookup(header, 0x000c, &entry);  // string/str4
   ASSERT_TRUE(success);
   ASSERT_EQ(entry, 0x0002);
 
-  success = LoadedIdmap::Lookup(header, 0x000c, &entry);  // string/x
+  success = LoadedIdmap::Lookup(header, 0x000d, &entry);  // string/x
   ASSERT_FALSE(success);
 
-  success = LoadedIdmap::Lookup(header, 0x000d, &entry);  // string/y
+  success = LoadedIdmap::Lookup(header, 0x000e, &entry);  // string/y
   ASSERT_FALSE(success);
 
-  success = LoadedIdmap::Lookup(header, 0x000e, &entry);  // string/z
+  success = LoadedIdmap::Lookup(header, 0x000f, &entry);  // string/z
   ASSERT_FALSE(success);
 }
 
diff --git a/cmds/idmap2/tests/Idmap2BinaryTests.cpp b/cmds/idmap2/tests/Idmap2BinaryTests.cpp
index 0c8f164..4334fa6 100644
--- a/cmds/idmap2/tests/Idmap2BinaryTests.cpp
+++ b/cmds/idmap2/tests/Idmap2BinaryTests.cpp
@@ -115,9 +115,9 @@
   ASSERT_THAT(result, NotNull());
   ASSERT_EQ(result->status, EXIT_SUCCESS) << result->stderr;
   ASSERT_NE(result->stdout.find("0x7f010000 -> 0x7f010000 integer/int1"), std::string::npos);
-  ASSERT_NE(result->stdout.find("0x7f020008 -> 0x7f020000 string/str1"), std::string::npos);
-  ASSERT_NE(result->stdout.find("0x7f02000a -> 0x7f020001 string/str3"), std::string::npos);
-  ASSERT_NE(result->stdout.find("0x7f02000b -> 0x7f020002 string/str4"), std::string::npos);
+  ASSERT_NE(result->stdout.find("0x7f020009 -> 0x7f020000 string/str1"), std::string::npos);
+  ASSERT_NE(result->stdout.find("0x7f02000b -> 0x7f020001 string/str3"), std::string::npos);
+  ASSERT_NE(result->stdout.find("0x7f02000c -> 0x7f020002 string/str4"), std::string::npos);
   ASSERT_EQ(result->stdout.find("00000210:     007f  target package id"), std::string::npos);
 
   // clang-format off
@@ -251,7 +251,7 @@
                           "lookup",
                           "--idmap-path", GetIdmapPath(),
                           "--config", "",
-                          "--resid", "0x7f020008"});  // string/str1
+                          "--resid", "0x7f020009"});  // string/str1
   // clang-format on
   ASSERT_THAT(result, NotNull());
   ASSERT_EQ(result->status, EXIT_SUCCESS) << result->stderr;
diff --git a/cmds/idmap2/tests/IdmapTests.cpp b/cmds/idmap2/tests/IdmapTests.cpp
index c6eb71c..df28918 100644
--- a/cmds/idmap2/tests/IdmapTests.cpp
+++ b/cmds/idmap2/tests/IdmapTests.cpp
@@ -191,7 +191,7 @@
   ASSERT_THAT(idmap->GetHeader(), NotNull());
   ASSERT_EQ(idmap->GetHeader()->GetMagic(), 0x504d4449U);
   ASSERT_EQ(idmap->GetHeader()->GetVersion(), 0x01U);
-  ASSERT_EQ(idmap->GetHeader()->GetTargetCrc(), 0xca2093da);
+  ASSERT_EQ(idmap->GetHeader()->GetTargetCrc(), 0xab7cf70d);
   ASSERT_EQ(idmap->GetHeader()->GetOverlayCrc(), 0xd470336b);
   ASSERT_EQ(idmap->GetHeader()->GetTargetPath().to_string(), target_apk_path);
   ASSERT_EQ(idmap->GetHeader()->GetOverlayPath(), overlay_apk_path);
@@ -217,7 +217,7 @@
   ASSERT_EQ(types[1]->GetTargetTypeId(), 0x02U);
   ASSERT_EQ(types[1]->GetOverlayTypeId(), 0x02U);
   ASSERT_EQ(types[1]->GetEntryCount(), 4U);
-  ASSERT_EQ(types[1]->GetEntryOffset(), 8U);
+  ASSERT_EQ(types[1]->GetEntryOffset(), 9U);
   ASSERT_EQ(types[1]->GetEntry(0), 0x0000U);
   ASSERT_EQ(types[1]->GetEntry(1), kNoEntry);
   ASSERT_EQ(types[1]->GetEntry(2), 0x0001U);
@@ -254,7 +254,7 @@
   ASSERT_EQ(types[0]->GetTargetTypeId(), 0x02U);
   ASSERT_EQ(types[0]->GetOverlayTypeId(), 0x01U);
   ASSERT_EQ(types[0]->GetEntryCount(), 3U);
-  ASSERT_EQ(types[0]->GetEntryOffset(), 5U);
+  ASSERT_EQ(types[0]->GetEntryOffset(), 6U);
   ASSERT_EQ(types[0]->GetEntry(0), 0x0000U);  // string/policy_public
   ASSERT_EQ(types[0]->GetEntry(1), 0x0001U);  // string/policy_system
   ASSERT_EQ(types[0]->GetEntry(2), 0x0002U);  // string/policy_system_vendor
@@ -290,13 +290,14 @@
 
   ASSERT_EQ(types[0]->GetTargetTypeId(), 0x02U);
   ASSERT_EQ(types[0]->GetOverlayTypeId(), 0x01U);
-  ASSERT_EQ(types[0]->GetEntryCount(), 5U);
+  ASSERT_EQ(types[0]->GetEntryCount(), 6U);
   ASSERT_EQ(types[0]->GetEntryOffset(), 3U);
   ASSERT_EQ(types[0]->GetEntry(0), 0x0000U);   // string/not_overlayable
-  ASSERT_EQ(types[0]->GetEntry(1), kNoEntry);  // string/policy_product
-  ASSERT_EQ(types[0]->GetEntry(2), 0x0002U);   // string/policy_public
-  ASSERT_EQ(types[0]->GetEntry(3), 0x0003U);   // string/policy_system
-  ASSERT_EQ(types[0]->GetEntry(4), 0x0004U);   // string/policy_system_vendor
+  ASSERT_EQ(types[0]->GetEntry(1), kNoEntry);  // string/other
+  ASSERT_EQ(types[0]->GetEntry(2), kNoEntry);  // string/policy_product
+  ASSERT_EQ(types[0]->GetEntry(3), 0x0003U);   // string/policy_public
+  ASSERT_EQ(types[0]->GetEntry(4), 0x0004U);   // string/policy_system
+  ASSERT_EQ(types[0]->GetEntry(5), 0x0005U);   // string/policy_system_vendor
 }
 
 TEST(IdmapTests, CreateIdmapFromApkAssetsPolicySystemPublicInvalidIgnoreOverlayable) {
@@ -329,13 +330,14 @@
 
   ASSERT_EQ(types[0]->GetTargetTypeId(), 0x02U);
   ASSERT_EQ(types[0]->GetOverlayTypeId(), 0x01U);
-  ASSERT_EQ(types[0]->GetEntryCount(), 5U);
+  ASSERT_EQ(types[0]->GetEntryCount(), 6U);
   ASSERT_EQ(types[0]->GetEntryOffset(), 3U);
   ASSERT_EQ(types[0]->GetEntry(0), 0x0000U);  // string/not_overlayable
-  ASSERT_EQ(types[0]->GetEntry(1), 0x0001U);  // string/policy_product
-  ASSERT_EQ(types[0]->GetEntry(2), 0x0002U);  // string/policy_public
-  ASSERT_EQ(types[0]->GetEntry(3), 0x0003U);  // string/policy_system
-  ASSERT_EQ(types[0]->GetEntry(4), 0x0004U);  // string/policy_system_vendor
+  ASSERT_EQ(types[0]->GetEntry(1), 0x0001U);  // string/other
+  ASSERT_EQ(types[0]->GetEntry(2), 0x0002U);  // string/policy_product
+  ASSERT_EQ(types[0]->GetEntry(3), 0x0003U);  // string/policy_public
+  ASSERT_EQ(types[0]->GetEntry(4), 0x0004U);  // string/policy_system
+  ASSERT_EQ(types[0]->GetEntry(5), 0x0005U);  // string/policy_system_vendor
 }
 
 TEST(IdmapTests, FailToCreateIdmapFromApkAssetsIfPathTooLong) {
diff --git a/cmds/idmap2/tests/RawPrintVisitorTests.cpp b/cmds/idmap2/tests/RawPrintVisitorTests.cpp
index b58c61a..b1ca125 100644
--- a/cmds/idmap2/tests/RawPrintVisitorTests.cpp
+++ b/cmds/idmap2/tests/RawPrintVisitorTests.cpp
@@ -52,7 +52,7 @@
 
   ASSERT_NE(stream.str().find("00000000: 504d4449  magic\n"), std::string::npos);
   ASSERT_NE(stream.str().find("00000004: 00000001  version\n"), std::string::npos);
-  ASSERT_NE(stream.str().find("00000008: ca2093da  target crc\n"), std::string::npos);
+  ASSERT_NE(stream.str().find("00000008: ab7cf70d  target crc\n"), std::string::npos);
   ASSERT_NE(stream.str().find("0000000c: d470336b  overlay crc\n"), std::string::npos);
   ASSERT_NE(stream.str().find("0000021c: 00000000  0x7f010000 -> 0x7f010000 integer/int1\n"),
             std::string::npos);
diff --git a/cmds/idmap2/tests/data/system-overlay-invalid/AndroidManifest.xml b/cmds/idmap2/tests/data/system-overlay-invalid/AndroidManifest.xml
index 977cd97..ae687d3 100644
--- a/cmds/idmap2/tests/data/system-overlay-invalid/AndroidManifest.xml
+++ b/cmds/idmap2/tests/data/system-overlay-invalid/AndroidManifest.xml
@@ -17,5 +17,6 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     package="test.overlay.system.invalid">
     <overlay
-        android:targetPackage="test.target" />
+        android:targetPackage="test.target"
+        android:targetName="TestResources"/>
 </manifest>
diff --git a/cmds/idmap2/tests/data/system-overlay-invalid/res/values/values.xml b/cmds/idmap2/tests/data/system-overlay-invalid/res/values/values.xml
index 5127707..af1bea1 100644
--- a/cmds/idmap2/tests/data/system-overlay-invalid/res/values/values.xml
+++ b/cmds/idmap2/tests/data/system-overlay-invalid/res/values/values.xml
@@ -20,10 +20,13 @@
     <string name="policy_system_vendor">policy_system_vendor</string>
     <string name="policy_public">policy_public</string>
 
-    <!-- It also requests to overlay a resource that belongs to a policy the overlay does not
-         fulfill.-->
+    <!-- Requests to overlay a resource that belongs to a policy the overlay does not fulfill. -->
     <string name="policy_product">policy_product</string>
 
-    <!-- It also requests to overlay a resource that is not declared as overlayable.-->
+    <!-- Requests to overlay a resource that is not declared as overlayable. -->
     <string name="not_overlayable">not_overlayable</string>
+
+    <!-- Requests to overlay a resource that is defined in an overlayable with a name other than
+         the targetName in the manifest. -->
+    <string name="other">other</string>
 </resources>
diff --git a/cmds/idmap2/tests/data/system-overlay-invalid/system-overlay-invalid.apk b/cmds/idmap2/tests/data/system-overlay-invalid/system-overlay-invalid.apk
index c367f82..710ed90 100644
--- a/cmds/idmap2/tests/data/system-overlay-invalid/system-overlay-invalid.apk
+++ b/cmds/idmap2/tests/data/system-overlay-invalid/system-overlay-invalid.apk
Binary files differ
diff --git a/cmds/idmap2/tests/data/target/res/values/overlayable.xml b/cmds/idmap2/tests/data/target/res/values/overlayable.xml
index de19e6f..02d2563 100644
--- a/cmds/idmap2/tests/data/target/res/values/overlayable.xml
+++ b/cmds/idmap2/tests/data/target/res/values/overlayable.xml
@@ -45,4 +45,8 @@
         <item type="string" name="policy_public" />
     </policy>
 </overlayable>
+
+<overlayable name="OtherResources">
+    <item type="string" name="other" />
+</overlayable>
 </resources>
\ No newline at end of file
diff --git a/cmds/idmap2/tests/data/target/res/values/values.xml b/cmds/idmap2/tests/data/target/res/values/values.xml
index ef9012e..0d337f3 100644
--- a/cmds/idmap2/tests/data/target/res/values/values.xml
+++ b/cmds/idmap2/tests/data/target/res/values/values.xml
@@ -33,4 +33,6 @@
     <string name="policy_system_vendor">policy_system_vendor</string>
     <string name="policy_product">policy_product</string>
     <string name="policy_public">policy_public</string>
+
+    <item type="string" name="other" />
 </resources>
diff --git a/cmds/idmap2/tests/data/target/target.apk b/cmds/idmap2/tests/data/target/target.apk
index 9a6220d..ecbe875 100644
--- a/cmds/idmap2/tests/data/target/target.apk
+++ b/cmds/idmap2/tests/data/target/target.apk
Binary files differ
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index 0a8746a..ef3eac0 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -188,6 +188,11 @@
         BluetoothLinkLayerConnectionEvent bluetooth_link_layer_connection_event = 125;
         BluetoothAclConnectionStateChanged bluetooth_acl_connection_state_changed = 126;
         BluetoothScoConnectionStateChanged bluetooth_sco_connection_state_changed = 127;
+        AppDowngraded app_downgraded = 128;
+        AppOptimizedAfterDowngraded app_optimized_after_downgraded = 129;
+        LowStorageStateChanged low_storage_state_changed = 130;
+        GnssNfwNotificationReported gnss_nfw_notification_reported = 131;
+        GnssConfigurationReported gnss_configuration_reported = 132;
     }
 
     // Pulled events will start at field 10000.
@@ -1787,6 +1792,47 @@
 }
 
 /**
+ * Logs when a volume entered low Storage state.
+ * Logged from:
+ *      frameworks/base/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
+ */
+message LowStorageStateChanged {
+    // Volume that ran out of storage.
+    optional string volume_description = 1;
+
+    enum State {
+        UNKNOWN = 0;
+        OFF = 1;
+        ON = 2;
+    }
+    optional State state = 2;
+}
+
+/**
+ * Logs when an app is downgraded.
+ * Logged from:
+ *      frameworks/base/services/core/java/com/android/server/pm/BackgroundDexOptService.java
+ */
+message AppDowngraded {
+    optional string package_name = 1;
+    // Size of the package (all data) before being downgraded.
+    optional int64 size_in_bytes_before = 2;
+    // Size of the package (all data) after being downgraded.
+    optional int64 size_in_bytes_after = 3;
+
+    optional bool aggressive = 4;
+}
+
+/**
+ * Logs when an app is optimized after being downgraded.
+ * Logged from:
+ *      frameworks/base/services/core/java/com/android/server/pm/BackgroundDexOptService.java
+ */
+message AppOptimizedAfterDowngraded {
+    optional string package_name = 1;
+}
+
+/**
  * Logs when an app crashes.
  * Logged from:
  *      frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -4088,7 +4134,7 @@
     optional int32 notification_id = 2;
 
     // A type which distinguishes different categories of NI request, such as VOICE, UMTS_SUPL etc.
-    optional int32 ni_type = 3;
+    optional android.server.location.GnssNiType ni_type = 3;
 
     // NI requires notification.
     optional bool need_notify = 4;
@@ -4104,7 +4150,7 @@
     optional int32 timeout = 7;
 
     // Default response when timeout.
-    optional int32 default_response = 8;
+    optional android.server.location.GnssUserResponseType default_response = 8;
 
     // String representing the requester of the network inititated location request.
     optional string requestor_id = 9;
@@ -4114,10 +4160,10 @@
     optional string text = 10;
 
     // requestorId decoding scheme.
-    optional int32 requestor_id_encoding = 11;
+    optional android.server.location.GnssNiEncodingType requestor_id_encoding = 11;
 
     // Notification message text decoding scheme.
-    optional int32 text_encoding = 12;
+    optional android.server.location.GnssNiEncodingType text_encoding = 12;
 
     // True if SUPL ES is enabled.
     optional bool is_supl_es_enabled = 13;
@@ -4126,5 +4172,94 @@
     optional bool is_location_enabled = 14;
 
     // GNSS NI responses which define the response in NI structures.
-    optional int32 user_response = 15;
+    optional android.server.location.GnssUserResponseType user_response = 15;
+}
+
+/**
+ * Logs GNSS non-framework (NFW) location notification.
+ *
+ * Logged from:
+ *   frameworks/base/services/core/java/com/android/server/location/GnssLocationProvider.java
+ */
+message GnssNfwNotificationReported {
+    // Package name of the Android proxy application representing the non-framework entity that
+    // requested location. Set to empty string if unknown.
+    optional string proxy_app_package_name = 1;
+
+    // Protocol stack that initiated the non-framework location request.
+    optional android.server.location.NfwProtocolStack protocol_stack = 2;
+
+    // Name of the protocol stack if protocol_stack field is set to OTHER_PROTOCOL_STACK. Otherwise,
+    // set to empty string. This field is opaque to the framework and used for logging purposes.
+    optional string other_protocol_stack_name = 3;
+
+    // Source initiating/receiving the location information.
+    optional android.server.location.NfwRequestor requestor = 4;
+
+    // Identity of the endpoint receiving the location information. For example, carrier name, OEM
+    // name, SUPL SLP/E-SLP FQDN, chipset vendor name, etc. This field is opaque to the framework
+    // and used for logging purposes.
+    optional string requestor_id = 5;
+
+    // Indicates whether location information was provided for this request.
+    optional android.server.location.NfwResponseType response_type = 6;
+
+    // True if the device is in user initiated emergency session.
+    optional bool in_emergency_mode = 7;
+
+    // True if cached location is provided.
+    optional bool is_cached_location = 8;
+
+    // True if proxy app permission mismatch between framework and GNSS HAL.
+    optional bool is_permission_mismatched = 9;
+}
+
+/**
+ * Logs GNSS configuration as defined in IGnssConfiguration.hal.
+ *
+ * Logged from:
+ *   frameworks/base/services/core/java/com/android/server/location/GnssConfiguration.java
+ */
+message GnssConfigurationReported {
+    // SUPL host name.
+    optional string supl_host = 1;
+
+    // SUPL port number.
+    optional int32 supl_port = 2;
+
+    // C2K host name.
+    optional string c2k_host = 3;
+
+    // C2K port number.
+    optional int32 c2k_port = 4;
+
+    // The SUPL version requested by Carrier.
+    optional int32 supl_ver = 5;
+
+    // The SUPL mode.
+    optional android.server.location.SuplMode supl_mode = 6;
+
+    // True if NI emergency SUPL restrictions is enabled.
+    optional bool supl_es = 7;
+
+    // LTE Positioning Profile settings
+    optional android.server.location.LppProfile lpp_profile = 8;
+
+    // Positioning protocol on A-Glonass system.
+    optional android.server.location.GlonassPosProtocol a_glonass_pos_protocol_select = 9;
+
+    // True if emergency PDN is used. Otherwise, regular PDN is used.
+    optional bool use_emergency_pdn_for_emergency_supl= 10;
+
+    // Configurations of how GPS functionalities should be locked when user turns off GPS On setting.
+    optional android.server.location.GpsLock gps_lock = 11;
+
+    // Number of seconds to extend the emergency session duration post emergency call.
+    optional int32 es_extension_sec = 12;
+
+    // The full list of package names of proxy Android applications representing the non-framework
+    // location access entities (on/off the device) for which the framework user has granted
+    // non-framework location access permission. The package names are concatenated in one string
+    // with spaces as separators.
+    optional string enabled_proxy_app_package_name_list = 13;
 }
diff --git a/cmds/statsd/src/metrics/GaugeMetricProducer.cpp b/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
index 67a1a47..c2878f0 100644
--- a/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
+++ b/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
@@ -93,7 +93,8 @@
                                           StatsdStats::kAtomDimensionKeySizeLimitMap.end()
                                   ? StatsdStats::kAtomDimensionKeySizeLimitMap.at(pullTagId).second
                                   : StatsdStats::kDimensionKeySizeHardLimit),
-      mGaugeAtomsPerDimensionLimit(metric.max_num_gauge_atoms_per_bucket()) {
+      mGaugeAtomsPerDimensionLimit(metric.max_num_gauge_atoms_per_bucket()),
+      mSplitBucketForAppUpgrade(metric.split_bucket_for_app_upgrade()) {
     mCurrentSlicedBucket = std::make_shared<DimToGaugeAtomsMap>();
     mCurrentSlicedBucketForAnomaly = std::make_shared<DimToValMap>();
     int64_t bucketSizeMills = 0;
diff --git a/cmds/statsd/src/metrics/GaugeMetricProducer.h b/cmds/statsd/src/metrics/GaugeMetricProducer.h
index a1a5061..df08779 100644
--- a/cmds/statsd/src/metrics/GaugeMetricProducer.h
+++ b/cmds/statsd/src/metrics/GaugeMetricProducer.h
@@ -74,6 +74,9 @@
                           const int64_t version) override {
         std::lock_guard<std::mutex> lock(mMutex);
 
+        if (!mSplitBucketForAppUpgrade) {
+            return;
+        }
         if (eventTimeNs > getCurrentBucketEndTimeNs()) {
             // Flush full buckets on the normal path up to the latest bucket boundary.
             flushIfNeededLocked(eventTimeNs);
@@ -176,11 +179,14 @@
 
     const size_t mGaugeAtomsPerDimensionLimit;
 
+    const bool mSplitBucketForAppUpgrade;
+
     FRIEND_TEST(GaugeMetricProducerTest, TestPulledEventsWithCondition);
     FRIEND_TEST(GaugeMetricProducerTest, TestPulledEventsWithSlicedCondition);
     FRIEND_TEST(GaugeMetricProducerTest, TestPulledEventsNoCondition);
     FRIEND_TEST(GaugeMetricProducerTest, TestPushedEventsWithUpgrade);
     FRIEND_TEST(GaugeMetricProducerTest, TestPulledWithUpgrade);
+    FRIEND_TEST(GaugeMetricProducerTest, TestPulledWithAppUpgradeDisabled);
     FRIEND_TEST(GaugeMetricProducerTest, TestPulledEventsAnomalyDetection);
     FRIEND_TEST(GaugeMetricProducerTest, TestFirstBucket);
     FRIEND_TEST(GaugeMetricProducerTest, TestPullOnTrigger);
diff --git a/cmds/statsd/src/metrics/ValueMetricProducer.cpp b/cmds/statsd/src/metrics/ValueMetricProducer.cpp
index 9a8e3bd..4122d84 100644
--- a/cmds/statsd/src/metrics/ValueMetricProducer.cpp
+++ b/cmds/statsd/src/metrics/ValueMetricProducer.cpp
@@ -105,7 +105,8 @@
       mUseZeroDefaultBase(metric.use_zero_default_base()),
       mHasGlobalBase(false),
       mMaxPullDelayNs(metric.max_pull_delay_sec() > 0 ? metric.max_pull_delay_sec() * NS_PER_SEC
-                                                      : StatsdStats::kPullMaxDelayNs) {
+                                                      : StatsdStats::kPullMaxDelayNs),
+      mSplitBucketForAppUpgrade(metric.split_bucket_for_app_upgrade()) {
     int64_t bucketSizeMills = 0;
     if (metric.has_bucket()) {
         bucketSizeMills = TimeUnitToBucketSizeInMillisGuardrailed(key.GetUid(), metric.bucket());
diff --git a/cmds/statsd/src/metrics/ValueMetricProducer.h b/cmds/statsd/src/metrics/ValueMetricProducer.h
index 4865aee..69eb0af 100644
--- a/cmds/statsd/src/metrics/ValueMetricProducer.h
+++ b/cmds/statsd/src/metrics/ValueMetricProducer.h
@@ -57,6 +57,9 @@
     void notifyAppUpgrade(const int64_t& eventTimeNs, const string& apk, const int uid,
                           const int64_t version) override {
         std::lock_guard<std::mutex> lock(mMutex);
+        if (!mSplitBucketForAppUpgrade) {
+            return;
+        }
         if (mIsPulled && mCondition) {
             pullAndMatchEventsLocked(eventTimeNs - 1);
         }
@@ -185,6 +188,8 @@
 
     const int64_t mMaxPullDelayNs;
 
+    const bool mSplitBucketForAppUpgrade;
+
     FRIEND_TEST(ValueMetricProducerTest, TestPulledEventsNoCondition);
     FRIEND_TEST(ValueMetricProducerTest, TestPulledEventsWithFiltering);
     FRIEND_TEST(ValueMetricProducerTest, TestPulledEventsTakeAbsoluteValueOnReset);
@@ -193,6 +198,7 @@
     FRIEND_TEST(ValueMetricProducerTest, TestPushedEventsWithUpgrade);
     FRIEND_TEST(ValueMetricProducerTest, TestPulledValueWithUpgrade);
     FRIEND_TEST(ValueMetricProducerTest, TestPulledValueWithUpgradeWhileConditionFalse);
+    FRIEND_TEST(ValueMetricProducerTest, TestPulledWithAppUpgradeDisabled);
     FRIEND_TEST(ValueMetricProducerTest, TestPushedEventsWithoutCondition);
     FRIEND_TEST(ValueMetricProducerTest, TestPushedEventsWithCondition);
     FRIEND_TEST(ValueMetricProducerTest, TestAnomalyDetection);
diff --git a/cmds/statsd/src/statsd_config.proto b/cmds/statsd/src/statsd_config.proto
index 381ac32..9d3a669 100644
--- a/cmds/statsd/src/statsd_config.proto
+++ b/cmds/statsd/src/statsd_config.proto
@@ -244,6 +244,8 @@
   optional int64 max_num_gauge_atoms_per_bucket = 11 [default = 10];
 
   optional int32 max_pull_delay_sec = 13 [default = 10];
+
+  optional bool split_bucket_for_app_upgrade = 14 [default = true];
 }
 
 message ValueMetric {
@@ -290,6 +292,8 @@
   optional bool skip_zero_diff_output = 14 [default = true];
 
   optional int32 max_pull_delay_sec = 16 [default = 10];
+
+  optional bool split_bucket_for_app_upgrade = 17 [default = true];
 }
 
 message Alert {
diff --git a/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp b/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp
index 2799107..0ffbb54 100644
--- a/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp
+++ b/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp
@@ -276,8 +276,9 @@
     UidMap uidMap;
     SimpleAtomMatcher atomMatcher;
     atomMatcher.set_atom_id(tagId);
-    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
-        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
     EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
@@ -295,9 +296,8 @@
             }));
 
     GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
-                                      logEventMatcherIndex, eventMatcherWizard,
-                                      tagId, -1, tagId, bucketStartTimeNs, bucketStartTimeNs,
-                                      pullerManager);
+                                      logEventMatcherIndex, eventMatcherWizard, tagId, -1, tagId,
+                                      bucketStartTimeNs, bucketStartTimeNs, pullerManager);
 
     vector<shared_ptr<LogEvent>> allData;
     shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
@@ -337,6 +337,58 @@
                          ->mValue.int_value);
 }
 
+TEST(GaugeMetricProducerTest, TestPulledWithAppUpgradeDisabled) {
+    GaugeMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(ONE_MINUTE);
+    metric.set_max_pull_delay_sec(INT_MAX);
+    metric.set_split_bucket_for_app_upgrade(false);
+    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
+    gaugeFieldMatcher->set_field(tagId);
+    gaugeFieldMatcher->add_child()->set_field(2);
+
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
+        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, _)).WillOnce(Return(false));
+
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
+                                      logEventMatcherIndex, eventMatcherWizard,
+                                      tagId, -1, tagId, bucketStartTimeNs, bucketStartTimeNs,
+                                      pullerManager);
+
+    vector<shared_ptr<LogEvent>> allData;
+    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
+    event->write("some value");
+    event->write(1);
+    event->init();
+    allData.push_back(event);
+    gaugeProducer.onDataPulled(allData);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(1, gaugeProducer.mCurrentSlicedBucket->begin()
+                         ->second.front()
+                         .mFields->begin()
+                         ->mValue.int_value);
+
+    gaugeProducer.notifyAppUpgrade(eventUpgradeTimeNs, "ANY.APP", 1, 1);
+    EXPECT_EQ(0UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
+    EXPECT_EQ(0L, gaugeProducer.mCurrentBucketNum);
+    EXPECT_EQ(bucketStartTimeNs, gaugeProducer.mCurrentBucketStartTimeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(1, gaugeProducer.mCurrentSlicedBucket->begin()
+                         ->second.front()
+                         .mFields->begin()
+                         ->mValue.int_value);
+}
+
 TEST(GaugeMetricProducerTest, TestPulledEventsWithCondition) {
     GaugeMetric metric;
     metric.set_id(metricId);
diff --git a/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp b/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
index 67570fc..9cfe343 100644
--- a/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
+++ b/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
@@ -641,7 +641,8 @@
     valueProducer.notifyAppUpgrade(bucket2StartTimeNs + 150, "ANY.APP", 1, 1);
     EXPECT_EQ(1UL, valueProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
     EXPECT_EQ(bucket2StartTimeNs + 150, valueProducer.mCurrentBucketStartTimeNs);
-    EXPECT_EQ(20L, valueProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY][0].values[0].long_value);
+    EXPECT_EQ(20L,
+              valueProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY][0].values[0].long_value);
 
     allData.clear();
     event = make_shared<LogEvent>(tagId, bucket3StartTimeNs + 1);
@@ -652,7 +653,48 @@
     valueProducer.onDataPulled(allData);
     EXPECT_EQ(1UL, valueProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
     EXPECT_EQ(bucket2StartTimeNs + 150, valueProducer.mCurrentBucketStartTimeNs);
-    EXPECT_EQ(20L, valueProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY][0].values[0].long_value);
+    EXPECT_EQ(20L,
+              valueProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY][0].values[0].long_value);
+}
+
+TEST(ValueMetricProducerTest, TestPulledWithAppUpgradeDisabled) {
+    ValueMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(ONE_MINUTE);
+    metric.mutable_value_field()->set_field(tagId);
+    metric.mutable_value_field()->add_child()->set_field(2);
+    metric.set_max_pull_delay_sec(INT_MAX);
+    metric.set_split_bucket_for_app_upgrade(false);
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, _)).WillOnce(Return(true));
+    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, tagId, bucketStartTimeNs,
+                                      bucketStartTimeNs, pullerManager);
+
+    vector<shared_ptr<LogEvent>> allData;
+    allData.clear();
+    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
+    event->write(tagId);
+    event->write(100);
+    event->init();
+    allData.push_back(event);
+
+    valueProducer.onDataPulled(allData);
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+
+    valueProducer.notifyAppUpgrade(bucket2StartTimeNs + 150, "ANY.APP", 1, 1);
+    EXPECT_EQ(0UL, valueProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
+    EXPECT_EQ(bucketStartTimeNs, valueProducer.mCurrentBucketStartTimeNs);
 }
 
 TEST(ValueMetricProducerTest, TestPulledValueWithUpgradeWhileConditionFalse) {
diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt
index c2e441b..3ec0db4 100644
--- a/config/boot-image-profile.txt
+++ b/config/boot-image-profile.txt
@@ -2768,11 +2768,6 @@
 HPLandroid/hardware/location/GeofenceHardwareService$1;->registerForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
 HPLandroid/hardware/location/GeofenceHardwareService$1;->removeGeofence(II)Z
 HPLandroid/hardware/location/GeofenceHardwareService;->checkPermission(III)V
-HPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;->onAvailabilityChanged(ZLandroid/hardware/location/IActivityRecognitionHardware;)V
-HPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;-><init>()V
-HPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IActivityRecognitionHardwareClient;
-HPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HPLandroid/hardware/location/IActivityRecognitionHardwareClient;->onAvailabilityChanged(ZLandroid/hardware/location/IActivityRecognitionHardware;)V
 HPLandroid/hardware/location/IContextHubCallback$Stub;->asBinder()Landroid/os/IBinder;
 HPLandroid/hardware/location/IContextHubCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HPLandroid/hardware/location/IContextHubService$Stub$Proxy;->findNanoAppOnHub(ILandroid/hardware/location/NanoAppFilter;)[I
@@ -21782,7 +21777,6 @@
 HSPLandroid/hardware/input/TouchCalibration$1;-><init>()V
 HSPLandroid/hardware/input/TouchCalibration;-><init>()V
 HSPLandroid/hardware/input/TouchCalibration;->getAffineTransform()[F
-HSPLandroid/hardware/location/ActivityRecognitionHardware;->isSupported()Z
 HSPLandroid/hardware/location/ContextHubInfo$1;-><init>()V
 HSPLandroid/hardware/location/ContextHubInfo;-><init>(Landroid/hardware/contexthub/V1_0/ContextHub;)V
 HSPLandroid/hardware/location/ContextHubMessage$1;-><init>()V
@@ -21802,13 +21796,6 @@
 HSPLandroid/hardware/location/GeofenceHardwareService;-><init>()V
 HSPLandroid/hardware/location/GeofenceHardwareService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
 HSPLandroid/hardware/location/GeofenceHardwareService;->onCreate()V
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->disableActivityEvent(Ljava/lang/String;I)Z
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->enableActivityEvent(Ljava/lang/String;IJ)Z
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->flush()Z
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->getSupportedActivities()[Ljava/lang/String;
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->isActivitySupported(Ljava/lang/String;)Z
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->registerSink(Landroid/hardware/location/IActivityRecognitionHardwareSink;)Z
-HSPLandroid/hardware/location/IActivityRecognitionHardware;->unregisterSink(Landroid/hardware/location/IActivityRecognitionHardwareSink;)Z
 HSPLandroid/hardware/location/IContextHubCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/hardware/location/IContextHubCallback$Stub$Proxy;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
 HSPLandroid/hardware/location/IContextHubCallback;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
@@ -55650,7 +55637,6 @@
 Landroid/hardware/input/KeyboardLayout$1;
 Landroid/hardware/input/TouchCalibration$1;
 Landroid/hardware/input/TouchCalibration;
-Landroid/hardware/location/ActivityRecognitionHardware;
 Landroid/hardware/location/ContextHubInfo$1;
 Landroid/hardware/location/ContextHubInfo;
 Landroid/hardware/location/ContextHubManager;
@@ -55666,11 +55652,6 @@
 Landroid/hardware/location/GeofenceHardwareRequestParcelable$1;
 Landroid/hardware/location/GeofenceHardwareService$1;
 Landroid/hardware/location/GeofenceHardwareService;
-Landroid/hardware/location/IActivityRecognitionHardware$Stub;
-Landroid/hardware/location/IActivityRecognitionHardware;
-Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;
-Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub;
-Landroid/hardware/location/IActivityRecognitionHardwareClient;
 Landroid/hardware/location/IContextHubCallback$Stub$Proxy;
 Landroid/hardware/location/IContextHubCallback;
 Landroid/hardware/location/IContextHubClient$Stub;
diff --git a/config/hiddenapi-greylist.txt b/config/hiddenapi-greylist.txt
index 02eff0b..13f8dd9 100644
--- a/config/hiddenapi-greylist.txt
+++ b/config/hiddenapi-greylist.txt
@@ -462,8 +462,6 @@
 Landroid/hardware/input/IInputManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputManager;
 Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_injectInputEvent:I
 Landroid/hardware/input/IInputManager;->injectInputEvent(Landroid/view/InputEvent;I)Z
-Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub;-><init>()V
-Landroid/hardware/location/IActivityRecognitionHardwareClient;->onAvailabilityChanged(ZLandroid/hardware/location/IActivityRecognitionHardware;)V
 Landroid/hardware/location/IContextHubService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubService;
 Landroid/hardware/usb/IUsbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/usb/IUsbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsbManager;
diff --git a/config/preloaded-classes b/config/preloaded-classes
index c8a2a9c..cd798ad 100644
--- a/config/preloaded-classes
+++ b/config/preloaded-classes
@@ -1405,10 +1405,7 @@
 android.hardware.input.InputManager$InputDeviceListener
 android.hardware.input.InputManager$InputDeviceListenerDelegate
 android.hardware.input.InputManager$InputDevicesChangedListener
-android.hardware.location.ActivityRecognitionHardware
 android.hardware.location.ContextHubManager
-android.hardware.location.IActivityRecognitionHardware
-android.hardware.location.IActivityRecognitionHardware$Stub
 android.hardware.radio.RadioManager
 android.hardware.soundtrigger.SoundTrigger
 android.hardware.soundtrigger.SoundTrigger$ConfidenceLevel
diff --git a/core/java/android/app/AlertDialog.java b/core/java/android/app/AlertDialog.java
index cf40e06..bfc216a 100644
--- a/core/java/android/app/AlertDialog.java
+++ b/core/java/android/app/AlertDialog.java
@@ -25,6 +25,7 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.res.ResourceId;
+import android.content.res.Resources;
 import android.database.Cursor;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
@@ -465,7 +466,7 @@
          * @param context the parent context
          */
         public Builder(Context context) {
-            this(context, resolveDialogTheme(context, ResourceId.ID_NULL));
+            this(context, resolveDialogTheme(context, Resources.ID_NULL));
         }
 
         /**
diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java
index 4bd935c..088c245 100644
--- a/core/java/android/app/Dialog.java
+++ b/core/java/android/app/Dialog.java
@@ -31,7 +31,7 @@
 import android.content.DialogInterface;
 import android.content.pm.ApplicationInfo;
 import android.content.res.Configuration;
-import android.content.res.ResourceId;
+import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Build;
@@ -183,7 +183,7 @@
 
     Dialog(@NonNull Context context, @StyleRes int themeResId, boolean createContextThemeWrapper) {
         if (createContextThemeWrapper) {
-            if (themeResId == ResourceId.ID_NULL) {
+            if (themeResId == Resources.ID_NULL) {
                 final TypedValue outValue = new TypedValue();
                 context.getTheme().resolveAttribute(R.attr.dialogTheme, outValue, true);
                 themeResId = outValue.resourceId;
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 72819cb..b8d748d 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -384,9 +384,7 @@
         STANDARD_LAYOUTS.add(R.layout.notification_template_material_messaging);
         STANDARD_LAYOUTS.add(R.layout.notification_template_material_media);
         STANDARD_LAYOUTS.add(R.layout.notification_template_material_big_media);
-        STANDARD_LAYOUTS.add(R.layout.notification_template_ambient_header);
         STANDARD_LAYOUTS.add(R.layout.notification_template_header);
-        STANDARD_LAYOUTS.add(R.layout.notification_template_material_ambient);
     }
 
     /**
@@ -4570,9 +4568,7 @@
             if (p.title != null) {
                 contentView.setViewVisibility(R.id.title, View.VISIBLE);
                 contentView.setTextViewText(R.id.title, processTextSpans(p.title));
-                if (!p.ambient) {
-                    setTextViewColorPrimary(contentView, R.id.title, p);
-                }
+                setTextViewColorPrimary(contentView, R.id.title, p);
                 contentView.setViewLayoutWidth(R.id.title, showProgress
                         ? ViewGroup.LayoutParams.WRAP_CONTENT
                         : ViewGroup.LayoutParams.MATCH_PARENT);
@@ -4581,9 +4577,7 @@
                 int textId = showProgress ? com.android.internal.R.id.text_line_1
                         : com.android.internal.R.id.text;
                 contentView.setTextViewText(textId, processTextSpans(p.text));
-                if (!p.ambient) {
-                    setTextViewColorSecondary(contentView, textId, p);
-                }
+                setTextViewColorSecondary(contentView, textId, p);
                 contentView.setViewVisibility(textId, View.VISIBLE);
             }
 
@@ -4842,7 +4836,7 @@
             if (mN.mLargeIcon == null && mN.largeIcon != null) {
                 mN.mLargeIcon = Icon.createWithBitmap(mN.largeIcon);
             }
-            boolean showLargeIcon = mN.mLargeIcon != null && !p.hideLargeIcon && !p.ambient;
+            boolean showLargeIcon = mN.mLargeIcon != null && !p.hideLargeIcon;
             if (showLargeIcon) {
                 contentView.setViewVisibility(R.id.right_icon, View.VISIBLE);
                 contentView.setImageViewIcon(R.id.right_icon, mN.mLargeIcon);
@@ -4856,7 +4850,7 @@
          * @return if the reply icon is visible
          */
         private boolean bindReplyIcon(RemoteViews contentView, StandardTemplateParams p) {
-            boolean actionVisible = !p.hideReplyIcon && !p.ambient;
+            boolean actionVisible = !p.hideReplyIcon;
             Action action = null;
             if (actionVisible) {
                 action = findReplyAction();
@@ -4896,21 +4890,18 @@
         private void bindNotificationHeader(RemoteViews contentView, StandardTemplateParams p) {
             bindSmallIcon(contentView, p);
             bindHeaderAppName(contentView, p);
-            if (!p.ambient) {
-                // Ambient view does not have these
-                bindHeaderText(contentView, p);
-                bindHeaderTextSecondary(contentView, p);
-                bindHeaderChronometerAndTime(contentView, p);
-                bindProfileBadge(contentView, p);
-                bindAlertedIcon(contentView, p);
-            }
+            bindHeaderText(contentView, p);
+            bindHeaderTextSecondary(contentView, p);
+            bindHeaderChronometerAndTime(contentView, p);
+            bindProfileBadge(contentView, p);
+            bindAlertedIcon(contentView, p);
             bindActivePermissions(contentView, p);
             bindExpandButton(contentView, p);
             mN.mUsesStandardHeader = true;
         }
 
         private void bindActivePermissions(RemoteViews contentView, StandardTemplateParams p) {
-            int color = p.ambient ? resolveAmbientColor(p) : getNeutralColor(p);
+            int color = getNeutralColor(p);
             contentView.setDrawableTint(R.id.camera, false, color, PorterDuff.Mode.SRC_ATOP);
             contentView.setDrawableTint(R.id.mic, false, color, PorterDuff.Mode.SRC_ATOP);
             contentView.setDrawableTint(R.id.overlay, false, color, PorterDuff.Mode.SRC_ATOP);
@@ -5021,13 +5012,12 @@
             if (isColorized(p)) {
                 setTextViewColorPrimary(contentView, R.id.app_name_text, p);
             } else {
-                contentView.setTextColor(R.id.app_name_text,
-                        p.ambient ? resolveAmbientColor(p) : getSecondaryTextColor(p));
+                contentView.setTextColor(R.id.app_name_text, getSecondaryTextColor(p));
             }
         }
 
         private boolean isColorized(StandardTemplateParams p) {
-            return p.allowColorization && !p.ambient && mN.isColorized();
+            return p.allowColorization && mN.isColorized();
         }
 
         private void bindSmallIcon(RemoteViews contentView, StandardTemplateParams p) {
@@ -5097,7 +5087,7 @@
             List<Notification.Action> nonContextualActions = filterOutContextualActions(mActions);
 
             int N = nonContextualActions.size();
-            boolean emphazisedMode = mN.fullScreenIntent != null && !p.ambient;
+            boolean emphazisedMode = mN.fullScreenIntent != null;
             big.setBoolean(R.id.actions, "setEmphasizedMode", emphazisedMode);
             if (N > 0) {
                 big.setViewVisibility(R.id.actions_container, View.VISIBLE);
@@ -5122,7 +5112,7 @@
             }
 
             CharSequence[] replyText = mN.extras.getCharSequenceArray(EXTRA_REMOTE_INPUT_HISTORY);
-            if (!p.ambient && validRemoteInput && replyText != null
+            if (validRemoteInput && replyText != null
                     && replyText.length > 0 && !TextUtils.isEmpty(replyText[0])
                     && p.maxRemoteInputHistory > 0) {
                 boolean showSpinner = mN.extras.getBoolean(EXTRA_SHOW_REMOTE_INPUT_SPINNER);
@@ -5239,11 +5229,10 @@
          * Construct a RemoteViews for the final notification header only. This will not be
          * colorized.
          *
-         * @param ambient if true, generate the header for the ambient display layout.
          * @hide
          */
-        public RemoteViews makeNotificationHeader(boolean ambient) {
-            return makeNotificationHeader(mParams.reset().ambient(ambient).fillTextsFrom(this));
+        public RemoteViews makeNotificationHeader() {
+            return makeNotificationHeader(mParams.reset().fillTextsFrom(this));
         }
 
         /**
@@ -5256,8 +5245,7 @@
             // Headers on their own are never colorized
             p.disallowColorization();
             RemoteViews header = new BuilderRemoteViews(mContext.getApplicationInfo(),
-                    p.ambient ? R.layout.notification_template_ambient_header
-                            : R.layout.notification_template_header);
+                    R.layout.notification_template_header);
             resetNotificationHeader(header);
             bindNotificationHeader(header, p);
             return header;
@@ -5269,11 +5257,7 @@
          * @hide
          */
         public RemoteViews makeAmbientNotification() {
-            RemoteViews ambient = applyStandardTemplateWithActions(
-                    R.layout.notification_template_material_ambient,
-                    mParams.reset().ambient(true).fillTextsFrom(this).hasProgress(false),
-                    null /* result */);
-            return ambient;
+            return createHeadsUpContentView(false /* increasedHeight */);
         }
 
         private void hideLine1Text(RemoteViews result) {
@@ -5377,14 +5361,8 @@
             }
             mN.extras = publicExtras;
             RemoteViews view;
-            if (ambient) {
-                publicExtras.putCharSequence(EXTRA_TITLE,
-                        mContext.getString(com.android.internal.R.string.notification_hidden_text));
-                view = makeAmbientNotification();
-            } else{
-                view = makeNotificationHeader(false /* ambient */);
-                view.setBoolean(R.id.notification_header, "setExpandOnlyOnButton", true);
-            }
+            view = makeNotificationHeader();
+            view.setBoolean(R.id.notification_header, "setExpandOnlyOnButton", true);
             mN.extras = savedBundle;
             mN.mLargeIcon = largeIcon;
             mN.largeIcon = largeIconLegacy;
@@ -5404,7 +5382,6 @@
         public RemoteViews makeLowPriorityContentView(boolean useRegularSubtext) {
             StandardTemplateParams p = mParams.reset()
                     .forceDefaultColor()
-                    .ambient(false)
                     .fillTextsFrom(this);
             if (!useRegularSubtext || TextUtils.isEmpty(mParams.summaryText)) {
                 p.summaryText(createSummaryText());
@@ -5495,8 +5472,7 @@
                 if (isColorized(p)) {
                     setTextViewColorPrimary(button, R.id.action0, p);
                 } else if (getRawColor(p) != COLOR_DEFAULT && mTintActionButtons) {
-                    button.setTextColor(R.id.action0,
-                            p.ambient ? resolveAmbientColor(p) : resolveContrastColor(p));
+                    button.setTextColor(R.id.action0, resolveContrastColor(p));
                 }
             }
             button.setIntTag(R.id.action0, R.id.notification_action_index_tag,
@@ -5589,13 +5565,8 @@
         }
 
         private CharSequence processLegacyText(CharSequence charSequence) {
-            return processLegacyText(charSequence, false /* ambient */);
-        }
-
-        private CharSequence processLegacyText(CharSequence charSequence, boolean ambient) {
             boolean isAlreadyLightText = isLegacy() || textColorsNeedInversion();
-            boolean wantLightText = ambient;
-            if (isAlreadyLightText != wantLightText) {
+            if (isAlreadyLightText) {
                 return getColorUtil().invertCharSequenceColors(charSequence);
             } else {
                 return charSequence;
@@ -5609,9 +5580,7 @@
                 StandardTemplateParams p) {
             boolean colorable = !isLegacy() || getColorUtil().isGrayscaleIcon(mContext, smallIcon);
             int color;
-            if (p.ambient) {
-                color = resolveAmbientColor(p);
-            } else if (isColorized(p)) {
+            if (isColorized(p)) {
                 color = getPrimaryTextColor(p);
             } else {
                 color = resolveContrastColor(p);
@@ -5698,17 +5667,6 @@
             return mNeutralColor;
         }
 
-        int resolveAmbientColor(StandardTemplateParams p) {
-            int rawColor = getRawColor(p);
-            if (mCachedAmbientColorIsFor == rawColor && mCachedAmbientColorIsFor != COLOR_INVALID) {
-                return mCachedAmbientColor;
-            }
-            final int contrasted = ContrastColorUtil.resolveAmbientColor(mContext, rawColor);
-
-            mCachedAmbientColorIsFor = rawColor;
-            return mCachedAmbientColor = contrasted;
-        }
-
         /**
          * Apply the unstyled operations and return a new {@link Notification} object.
          * @hide
@@ -10144,7 +10102,6 @@
 
     private static class StandardTemplateParams {
         boolean hasProgress = true;
-        boolean ambient = false;
         CharSequence title;
         CharSequence text;
         CharSequence headerTextSecondary;
@@ -10157,7 +10114,6 @@
 
         final StandardTemplateParams reset() {
             hasProgress = true;
-            ambient = false;
             title = null;
             text = null;
             summaryText = null;
@@ -10213,22 +10169,15 @@
             return this;
         }
 
-        final StandardTemplateParams ambient(boolean ambient) {
-            Preconditions.checkState(title == null && text == null, "must set ambient before text");
-            this.ambient = ambient;
-            return this;
-        }
-
         final StandardTemplateParams fillTextsFrom(Builder b) {
             Bundle extras = b.mN.extras;
-            this.title = b.processLegacyText(extras.getCharSequence(EXTRA_TITLE), ambient);
+            this.title = b.processLegacyText(extras.getCharSequence(EXTRA_TITLE));
 
-            // Big text notifications should contain their content when viewed in ambient mode.
             CharSequence text = extras.getCharSequence(EXTRA_BIG_TEXT);
-            if (!ambient || TextUtils.isEmpty(text)) {
+            if (TextUtils.isEmpty(text)) {
                 text = extras.getCharSequence(EXTRA_TEXT);
             }
-            this.text = b.processLegacyText(text, ambient);
+            this.text = b.processLegacyText(text);
             this.summaryText = extras.getCharSequence(EXTRA_SUB_TEXT);
             return this;
         }
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index 3adafd72..2dc225a 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -439,10 +439,11 @@
             }});
 
         registerService(Context.TEXT_SERVICES_MANAGER_SERVICE, TextServicesManager.class,
-                new StaticServiceFetcher<TextServicesManager>() {
+                new CachedServiceFetcher<TextServicesManager>() {
             @Override
-            public TextServicesManager createService() {
-                return TextServicesManager.getInstance();
+            public TextServicesManager createService(ContextImpl ctx)
+                    throws ServiceNotFoundException {
+                return TextServicesManager.createInstance(ctx);
             }});
 
         registerService(Context.KEYGUARD_SERVICE, KeyguardManager.class,
diff --git a/core/java/android/attention/AttentionManagerInternal.java b/core/java/android/attention/AttentionManagerInternal.java
new file mode 100644
index 0000000..6b7f10e
--- /dev/null
+++ b/core/java/android/attention/AttentionManagerInternal.java
@@ -0,0 +1,73 @@
+/*
+ * 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.attention;
+
+/**
+ * Attention manager local system server interface.
+ *
+ * @hide Only for use within the system server.
+ */
+public abstract class AttentionManagerInternal {
+    /**
+     * Returns {@code true} if attention service is supported on this device.
+     */
+    public abstract boolean isAttentionServiceSupported();
+
+    /**
+     * Checks whether user attention is at the screen and calls in the provided callback.
+     *
+     * @param requestCode   a code associated with the attention check request; this code would be
+     *                      used to call back in {@link AttentionCallbackInternal#onSuccess} and
+     *                      {@link AttentionCallbackInternal#onFailure}
+     * @param timeoutMillis a budget for the attention check; if it takes longer - {@link
+     *                      AttentionCallbackInternal#onFailure} would be called with the {@link
+     *                      android.service.attention.AttentionService#ATTENTION_FAILURE_TIMED_OUT}
+     *                      code
+     * @param callback      a callback for when the attention check has completed
+     * @return {@code true} if the attention check should succeed; {@false} otherwise.
+     */
+    public abstract boolean checkAttention(int requestCode,
+            long timeoutMillis, AttentionCallbackInternal callback);
+
+    /**
+     * Cancels the specified attention check in case it's no longer needed.
+     *
+     * @param requestCode a code provided during {@link #checkAttention}
+     */
+    public abstract void cancelAttentionCheck(int requestCode);
+
+    /** Internal interface for attention callback. */
+    public abstract static class AttentionCallbackInternal {
+        /**
+         * Provides the result of the attention check, if the check was successful.
+         *
+         * @param requestCode a code provided in {@link #checkAttention}
+         * @param result      an int with the result of the check
+         * @param timestamp   a {@code SystemClock.uptimeMillis()} timestamp associated with the
+         *                    attention check
+         */
+        public abstract void onSuccess(int requestCode, int result, long timestamp);
+
+        /**
+         * Provides the explanation for why the attention check had failed.
+         *
+         * @param requestCode a code provided in {@link #checkAttention}
+         * @param error       an int with the reason for failure
+         */
+        public abstract void onFailure(int requestCode, int error);
+    }
+}
diff --git a/core/java/android/bluetooth/BluetoothCodecConfig.java b/core/java/android/bluetooth/BluetoothCodecConfig.java
index 79c0a3a..c9d0ef2 100644
--- a/core/java/android/bluetooth/BluetoothCodecConfig.java
+++ b/core/java/android/bluetooth/BluetoothCodecConfig.java
@@ -114,6 +114,19 @@
         mCodecSpecific4 = codecSpecific4;
     }
 
+    @UnsupportedAppUsage
+    public BluetoothCodecConfig(int codecType) {
+        mCodecType = codecType;
+        mCodecPriority = BluetoothCodecConfig.CODEC_PRIORITY_DEFAULT;
+        mSampleRate = BluetoothCodecConfig.SAMPLE_RATE_NONE;
+        mBitsPerSample = BluetoothCodecConfig.BITS_PER_SAMPLE_NONE;
+        mChannelMode = BluetoothCodecConfig.CHANNEL_MODE_NONE;
+        mCodecSpecific1 = 0;
+        mCodecSpecific2 = 0;
+        mCodecSpecific3 = 0;
+        mCodecSpecific4 = 0;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (o instanceof BluetoothCodecConfig) {
diff --git a/core/java/android/content/pm/CrossProfileApps.java b/core/java/android/content/pm/CrossProfileApps.java
index 740fd7f..b7366f1 100644
--- a/core/java/android/content/pm/CrossProfileApps.java
+++ b/core/java/android/content/pm/CrossProfileApps.java
@@ -18,6 +18,7 @@
 import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
+import android.annotation.UnsupportedAppUsage;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.res.Resources;
@@ -76,9 +77,23 @@
     }
 
     /**
-     * Starts the specified activity of the caller package in the specified profile if the caller
-     * has {@link android.Manifest.permission#INTERACT_ACROSS_PROFILES} permission and
-     * both the caller and target user profiles are in the same user group.
+     * @deprecated use {@link #startActivity(ComponentName, UserHandle)} instead.
+     *
+     * @removed
+     * @hide
+     */
+    @Deprecated
+    @UnsupportedAppUsage
+    public void startAnyActivity(@NonNull ComponentName component, @NonNull UserHandle targetUser) {
+        startActivity(component, targetUser);
+    }
+
+    /**
+     * Starts the specified activity of the caller package in the specified profile. Unlike
+     * {@link #startMainActivity}, this can start any activity of the caller package, not just
+     * the main activity.
+     * The caller must have the {@link android.Manifest.permission#INTERACT_ACROSS_PROFILES}
+     * permission and both the caller and target user profiles must be in the same profile group.
      *
      * @param component The ComponentName of the activity to launch. It must be exported.
      * @param targetUser The UserHandle of the profile, must be one of the users returned by
@@ -88,7 +103,7 @@
      */
     @SystemApi
     @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_PROFILES)
-    public void startAnyActivity(@NonNull ComponentName component, @NonNull UserHandle targetUser) {
+    public void startActivity(@NonNull ComponentName component, @NonNull UserHandle targetUser) {
         try {
             mService.startActivityAsUser(mContext.getIApplicationThread(),
                     mContext.getPackageName(), component, targetUser.getIdentifier(), false);
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index d5c3b26..4b130b2 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -540,6 +540,11 @@
             String targetCompilerFilter, boolean force);
 
     /**
+    * Ask the package manager to compile layouts in the given package.
+    */
+    boolean compileLayouts(String packageName);
+
+    /**
      * Ask the package manager to dump profiles associated with a package.
      */
     void dumpProfiles(String packageName);
diff --git a/core/java/android/content/pm/PackageInfo.java b/core/java/android/content/pm/PackageInfo.java
index b8d7889..6d22277 100644
--- a/core/java/android/content/pm/PackageInfo.java
+++ b/core/java/android/content/pm/PackageInfo.java
@@ -18,14 +18,10 @@
 
 import android.annotation.Nullable;
 import android.annotation.UnsupportedAppUsage;
-import android.apex.ApexInfo;
 import android.os.Build;
 import android.os.Parcel;
 import android.os.Parcelable;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * Overall information about the contents of a package.  This corresponds
  * to all of the information collected from AndroidManifest.xml.
@@ -374,6 +370,14 @@
     public String overlayTarget;
 
     /**
+     * What overlayable set of elements package, if any, this package will overlay.
+     *
+     * Overlayable name defined within the target package, or null.
+     * @hide
+     */
+    public String overlayTargetName;
+
+    /**
      * The overlay category, if any, of this package
      *
      * @hide
@@ -573,15 +577,6 @@
         }
     }
 
-    /**
-     * @hide
-     */
-    public PackageInfo(ApexInfo apexInfo) {
-        packageName = apexInfo.packageName;
-        setLongVersionCode(apexInfo.versionCode);
-        isApex = true;
-    }
-
     private void propagateApplicationInfo(ApplicationInfo appInfo, ComponentInfo[] components) {
         if (components != null) {
             for (ComponentInfo ci : components) {
diff --git a/core/java/android/content/pm/PackageManagerInternal.java b/core/java/android/content/pm/PackageManagerInternal.java
index 359adbd..c7320b0 100644
--- a/core/java/android/content/pm/PackageManagerInternal.java
+++ b/core/java/android/content/pm/PackageManagerInternal.java
@@ -822,4 +822,9 @@
      *            PACKAGE_ROLLBACK_AGENT permission.
      */
     public abstract void setEnableRollbackCode(int token, int enableRollbackCode);
+
+    /**
+     * Ask the package manager to compile layouts in the given package.
+     */
+    public abstract boolean compileLayouts(String packageName);
 }
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index dbf3574..a185c8a 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -689,6 +689,7 @@
         pi.restrictedAccountType = p.mRestrictedAccountType;
         pi.requiredAccountType = p.mRequiredAccountType;
         pi.overlayTarget = p.mOverlayTarget;
+        pi.overlayTargetName = p.mOverlayTargetName;
         pi.overlayCategory = p.mOverlayCategory;
         pi.overlayPriority = p.mOverlayPriority;
         pi.mOverlayIsStatic = p.mOverlayIsStatic;
@@ -2122,6 +2123,8 @@
                         com.android.internal.R.styleable.AndroidManifestResourceOverlay);
                 pkg.mOverlayTarget = sa.getString(
                         com.android.internal.R.styleable.AndroidManifestResourceOverlay_targetPackage);
+                pkg.mOverlayTargetName = sa.getString(
+                        com.android.internal.R.styleable.AndroidManifestResourceOverlay_targetName);
                 pkg.mOverlayCategory = sa.getString(
                         com.android.internal.R.styleable.AndroidManifestResourceOverlay_category);
                 pkg.mOverlayPriority = sa.getInt(
@@ -6730,6 +6733,7 @@
         public String mRequiredAccountType;
 
         public String mOverlayTarget;
+        public String mOverlayTargetName;
         public String mOverlayCategory;
         public int mOverlayPriority;
         public boolean mOverlayIsStatic;
@@ -7253,6 +7257,7 @@
             mRestrictedAccountType = dest.readString();
             mRequiredAccountType = dest.readString();
             mOverlayTarget = dest.readString();
+            mOverlayTargetName = dest.readString();
             mOverlayCategory = dest.readString();
             mOverlayPriority = dest.readInt();
             mOverlayIsStatic = (dest.readInt() == 1);
@@ -7380,6 +7385,7 @@
             dest.writeString(mRestrictedAccountType);
             dest.writeString(mRequiredAccountType);
             dest.writeString(mOverlayTarget);
+            dest.writeString(mOverlayTargetName);
             dest.writeString(mOverlayCategory);
             dest.writeInt(mOverlayPriority);
             dest.writeInt(mOverlayIsStatic ? 1 : 0);
@@ -8484,4 +8490,42 @@
             this.error = error;
         }
     }
+
+    public static PackageInfo generatePackageInfoFromApex(File apexFile, boolean collectCerts)
+            throws PackageParserException {
+        PackageInfo pi = new PackageInfo();
+        // TODO(b/123052859): We should avoid these repeated calls to parseApkLite each time
+        // we want to generate information for APEX modules.
+        PackageParser.ApkLite apk = PackageParser.parseApkLite(apexFile,
+            collectCerts ? PackageParser.PARSE_COLLECT_CERTIFICATES : 0);
+
+        pi.packageName = apk.packageName;
+        pi.setLongVersionCode(apk.getLongVersionCode());
+
+        if (collectCerts) {
+            if (apk.signingDetails.hasPastSigningCertificates()) {
+                // Package has included signing certificate rotation information.  Return
+                // the oldest cert so that programmatic checks keep working even if unaware
+                // of key rotation.
+                pi.signatures = new Signature[1];
+                pi.signatures[0] = apk.signingDetails.pastSigningCertificates[0];
+            } else if (apk.signingDetails.hasSignatures()) {
+                // otherwise keep old behavior
+                int numberOfSigs = apk.signingDetails.signatures.length;
+                pi.signatures = new Signature[numberOfSigs];
+                System.arraycopy(apk.signingDetails.signatures, 0, pi.signatures, 0,
+                    numberOfSigs);
+            }
+
+            if (apk.signingDetails != SigningDetails.UNKNOWN) {
+                // only return a valid SigningInfo if there is signing information to report
+                pi.signingInfo = new SigningInfo(apk.signingDetails);
+            } else {
+                pi.signingInfo = null;
+            }
+        }
+
+        pi.isApex = true;
+        return pi;
+    }
 }
diff --git a/core/java/android/content/pm/PermissionGroupInfo.java b/core/java/android/content/pm/PermissionGroupInfo.java
index 8cf66d8..f21612a 100644
--- a/core/java/android/content/pm/PermissionGroupInfo.java
+++ b/core/java/android/content/pm/PermissionGroupInfo.java
@@ -49,7 +49,7 @@
      * only access while in the foreground.
      *
      * From the "requestDetail" attribute or, if not set, {@link
-     * android.content.res.ResourceId#ID_NULL}.
+     * android.content.res.Resources#ID_NULL}.
      *
      * @hide
      */
@@ -61,7 +61,7 @@
      * access. Also used when requesting both foreground and background access.
      *
      * From the "backgroundRequest" attribute or, if not set, {@link
-     * android.content.res.ResourceId#ID_NULL}.
+     * android.content.res.Resources#ID_NULL}.
      *
      * @hide
      */
@@ -73,7 +73,7 @@
      * background access.
      *
      * From the "backgroundRequestDetail" attribute or, if not set, {@link
-     * android.content.res.ResourceId#ID_NULL}.
+     * android.content.res.Resources#ID_NULL}.
      *
      * @hide
      */
diff --git a/core/java/android/content/pm/ResolveInfo.java b/core/java/android/content/pm/ResolveInfo.java
index 701c5db..894de94 100644
--- a/core/java/android/content/pm/ResolveInfo.java
+++ b/core/java/android/content/pm/ResolveInfo.java
@@ -16,6 +16,7 @@
 
 package android.content.pm;
 
+import android.annotation.SystemApi;
 import android.annotation.UnsupportedAppUsage;
 import android.content.ComponentName;
 import android.content.IntentFilter;
@@ -175,9 +176,12 @@
     public boolean system;
 
     /**
-     * @hide Does the associated IntentFilter comes from a Browser ?
+     * Will be set to {@code true} if the {@link IntentFilter} responsible for intent
+     * resolution is classified as a "browser".
+     *
+     * @hide
      */
-    @UnsupportedAppUsage
+    @SystemApi
     public boolean handleAllWebDataURI;
 
     /** {@hide} */
diff --git a/core/java/android/content/pm/SuspendDialogInfo.java b/core/java/android/content/pm/SuspendDialogInfo.java
index c798c99..53b52f5 100644
--- a/core/java/android/content/pm/SuspendDialogInfo.java
+++ b/core/java/android/content/pm/SuspendDialogInfo.java
@@ -16,7 +16,7 @@
 
 package android.content.pm;
 
-import static android.content.res.ResourceId.ID_NULL;
+import static android.content.res.Resources.ID_NULL;
 
 import android.annotation.DrawableRes;
 import android.annotation.NonNull;
diff --git a/core/java/android/content/res/ResourceId.java b/core/java/android/content/res/ResourceId.java
index adb9cf1..3c7b5fc 100644
--- a/core/java/android/content/res/ResourceId.java
+++ b/core/java/android/content/res/ResourceId.java
@@ -22,12 +22,6 @@
  * @hide
  */
 public final class ResourceId {
-
-    /**
-     * The {@code null} resource ID.
-     */
-    public static final @AnyRes int ID_NULL = 0;
-
     /**
      * Checks whether the integer {@code id} is a valid resource ID, as generated by AAPT.
      * <p>Note that a negative integer is not necessarily an invalid resource ID, and custom
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index dcd6e2e..baf64ad 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -174,7 +174,7 @@
     /** @hide */
     public static int selectSystemTheme(int curTheme, int targetSdkVersion, int orig, int holo,
             int dark, int deviceDefault) {
-        if (curTheme != ResourceId.ID_NULL) {
+        if (curTheme != ID_NULL) {
             return curTheme;
         }
         if (targetSdkVersion < Build.VERSION_CODES.HONEYCOMB) {
diff --git a/core/java/android/content/res/ResourcesImpl.java b/core/java/android/content/res/ResourcesImpl.java
index 77796d9..d8564d5 100644
--- a/core/java/android/content/res/ResourcesImpl.java
+++ b/core/java/android/content/res/ResourcesImpl.java
@@ -855,13 +855,9 @@
             try {
                 if (file.endsWith(".xml")) {
                     if (file.startsWith("res/color/")) {
-                        ColorStateList csl = loadColorStateList(wrapper, value, id, null);
-                        dr = (csl != null ? new ColorStateListDrawable(csl) : null);
+                        dr = loadColorOrXmlDrawable(wrapper, value, id, density, file);
                     } else {
-                        final XmlResourceParser rp = loadXmlResourceParser(
-                                file, id, value.assetCookie, "drawable");
-                        dr = Drawable.createFromXmlForDensity(wrapper, rp, density, null);
-                        rp.close();
+                        dr = loadXmlDrawable(wrapper, value, id, density, file);
                     }
                 } else {
                     final InputStream is = mAssets.openNonAsset(
@@ -915,6 +911,33 @@
         return dr;
     }
 
+    private Drawable loadColorOrXmlDrawable(@NonNull Resources wrapper, @NonNull TypedValue value,
+            int id, int density, String file) {
+        try {
+            ColorStateList csl = loadColorStateList(wrapper, value, id, null);
+            return new ColorStateListDrawable(csl);
+        } catch (NotFoundException originalException) {
+            // If we fail to load as color, try as normal XML drawable
+            try {
+                return loadXmlDrawable(wrapper, value, id, density, file);
+            } catch (Exception ignored) {
+                // If fallback also fails, throw the original exception
+                throw originalException;
+            }
+        }
+    }
+
+    private Drawable loadXmlDrawable(@NonNull Resources wrapper, @NonNull TypedValue value,
+            int id, int density, String file)
+            throws IOException, XmlPullParserException {
+        try (
+                XmlResourceParser rp =
+                        loadXmlResourceParser(file, id, value.assetCookie, "drawable")
+        ) {
+            return Drawable.createFromXmlForDensity(wrapper, rp, density, null);
+        }
+    }
+
     /**
      * Loads a font from XML or resources stream.
      */
diff --git a/core/java/android/hardware/display/ColorDisplayManager.java b/core/java/android/hardware/display/ColorDisplayManager.java
index 0cf2d18..70a9f08 100644
--- a/core/java/android/hardware/display/ColorDisplayManager.java
+++ b/core/java/android/hardware/display/ColorDisplayManager.java
@@ -17,6 +17,8 @@
 package android.hardware.display;
 
 import android.Manifest;
+import android.annotation.IntRange;
+import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
 import android.annotation.SystemService;
@@ -61,16 +63,30 @@
      *
      * @param saturationLevel 0-100 (inclusive), where 100 is full saturation
      * @return whether the saturation level change was applied successfully
-     *
      * @hide
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS)
-    public boolean setSaturationLevel(int saturationLevel) {
+    public boolean setSaturationLevel(@IntRange(from = 0, to = 100) int saturationLevel) {
         return mManager.setSaturationLevel(saturationLevel);
     }
 
     /**
+     * Set the level of color saturation to apply to a specific app.
+     *
+     * @param packageName the package name of the app whose windows should be desaturated
+     * @param saturationLevel 0-100 (inclusive), where 100 is full saturation
+     * @return whether the saturation level change was applied successfully
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS)
+    public boolean setAppSaturationLevel(@NonNull String packageName,
+            @IntRange(from = 0, to = 100) int saturationLevel) {
+        return mManager.setAppSaturationLevel(packageName, saturationLevel);
+    }
+
+    /**
      * Returns {@code true} if Night Display is supported by the device.
      *
      * @hide
@@ -88,6 +104,16 @@
         return context.getResources().getBoolean(R.bool.config_displayWhiteBalanceAvailable);
     }
 
+    /**
+     * Check if the color transforms are color accelerated. Some transforms are experimental only
+     * on non-accelerated platforms due to the performance implications.
+     *
+     * @hide
+     */
+    public static boolean isColorTransformAccelerated(Context context) {
+        return context.getResources().getBoolean(R.bool.config_setColorTransformAccelerated);
+    }
+
     private static class ColorDisplayManagerInternal {
 
         private static ColorDisplayManagerInternal sInstance;
@@ -128,5 +154,13 @@
                 throw e.rethrowFromSystemServer();
             }
         }
+
+        boolean setAppSaturationLevel(String packageName, int saturationLevel) {
+            try {
+                return mCdm.setAppSaturationLevel(packageName, saturationLevel);
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
+        }
     }
 }
diff --git a/core/java/android/hardware/display/IColorDisplayManager.aidl b/core/java/android/hardware/display/IColorDisplayManager.aidl
index 81b82c6..644f510 100644
--- a/core/java/android/hardware/display/IColorDisplayManager.aidl
+++ b/core/java/android/hardware/display/IColorDisplayManager.aidl
@@ -21,4 +21,5 @@
     boolean isDeviceColorManaged();
 
     boolean setSaturationLevel(int saturationLevel);
+    boolean setAppSaturationLevel(String packageName, int saturationLevel);
 }
\ No newline at end of file
diff --git a/core/java/android/hardware/location/ActivityChangedEvent.java b/core/java/android/hardware/location/ActivityChangedEvent.java
deleted file mode 100644
index 16cfe6e..0000000
--- a/core/java/android/hardware/location/ActivityChangedEvent.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package android.hardware.location;
-
-import android.annotation.NonNull;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import java.security.InvalidParameterException;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * A class representing an event for Activity changes.
- *
- * @hide
- */
-public class ActivityChangedEvent implements Parcelable {
-    private final List<ActivityRecognitionEvent> mActivityRecognitionEvents;
-
-    public ActivityChangedEvent(ActivityRecognitionEvent[] activityRecognitionEvents) {
-        if (activityRecognitionEvents == null) {
-            throw new InvalidParameterException(
-                    "Parameter 'activityRecognitionEvents' must not be null.");
-        }
-
-        mActivityRecognitionEvents = Arrays.asList(activityRecognitionEvents);
-    }
-
-    @NonNull
-    public Iterable<ActivityRecognitionEvent> getActivityRecognitionEvents() {
-        return mActivityRecognitionEvents;
-    }
-
-    public static final Creator<ActivityChangedEvent> CREATOR =
-            new Creator<ActivityChangedEvent>() {
-        @Override
-        public ActivityChangedEvent createFromParcel(Parcel source) {
-            int activityRecognitionEventsLength = source.readInt();
-            ActivityRecognitionEvent[] activityRecognitionEvents =
-                    new ActivityRecognitionEvent[activityRecognitionEventsLength];
-            source.readTypedArray(activityRecognitionEvents, ActivityRecognitionEvent.CREATOR);
-
-            return new ActivityChangedEvent(activityRecognitionEvents);
-        }
-
-        @Override
-        public ActivityChangedEvent[] newArray(int size) {
-            return new ActivityChangedEvent[size];
-        }
-    };
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    @Override
-    public void writeToParcel(Parcel parcel, int flags) {
-        ActivityRecognitionEvent[] activityRecognitionEventArray =
-                mActivityRecognitionEvents.toArray(new ActivityRecognitionEvent[0]);
-        parcel.writeInt(activityRecognitionEventArray.length);
-        parcel.writeTypedArray(activityRecognitionEventArray, flags);
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder builder = new StringBuilder("[ ActivityChangedEvent:");
-
-        for (ActivityRecognitionEvent event : mActivityRecognitionEvents) {
-            builder.append("\n    ");
-            builder.append(event.toString());
-        }
-        builder.append("\n]");
-
-        return builder.toString();
-    }
-}
diff --git a/core/java/android/hardware/location/ActivityRecognitionEvent.java b/core/java/android/hardware/location/ActivityRecognitionEvent.java
deleted file mode 100644
index 190030a..0000000
--- a/core/java/android/hardware/location/ActivityRecognitionEvent.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.hardware.location;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-/**
- * A class that represents an Activity Recognition Event.
- *
- * @hide
- */
-public class ActivityRecognitionEvent implements Parcelable {
-    private final String mActivity;
-    private final int mEventType;
-    private final long mTimestampNs;
-
-    public ActivityRecognitionEvent(String activity, int eventType, long timestampNs) {
-        mActivity = activity;
-        mEventType = eventType;
-        mTimestampNs = timestampNs;
-    }
-
-    public String getActivity() {
-        return mActivity;
-    }
-
-    public int getEventType() {
-        return mEventType;
-    }
-
-    public long getTimestampNs() {
-        return mTimestampNs;
-    }
-
-    public static final Creator<ActivityRecognitionEvent> CREATOR =
-            new Creator<ActivityRecognitionEvent>() {
-        @Override
-        public ActivityRecognitionEvent createFromParcel(Parcel source) {
-            String activity = source.readString();
-            int eventType = source.readInt();
-            long timestampNs = source.readLong();
-
-            return new ActivityRecognitionEvent(activity, eventType, timestampNs);
-        }
-
-        @Override
-        public ActivityRecognitionEvent[] newArray(int size) {
-            return new ActivityRecognitionEvent[size];
-        }
-    };
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    @Override
-    public void writeToParcel(Parcel parcel, int flags) {
-        parcel.writeString(mActivity);
-        parcel.writeInt(mEventType);
-        parcel.writeLong(mTimestampNs);
-    }
-
-    @Override
-    public String toString() {
-        return String.format(
-                "Activity='%s', EventType=%s, TimestampNs=%s",
-                mActivity,
-                mEventType,
-                mTimestampNs);
-    }
-}
diff --git a/core/java/android/hardware/location/ActivityRecognitionHardware.java b/core/java/android/hardware/location/ActivityRecognitionHardware.java
deleted file mode 100644
index 8acd1ff..0000000
--- a/core/java/android/hardware/location/ActivityRecognitionHardware.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package android.hardware.location;
-
-import android.Manifest;
-import android.content.Context;
-import android.os.RemoteCallbackList;
-import android.os.RemoteException;
-import android.text.TextUtils;
-import android.util.Log;
-
-/**
- * A class that implements an {@link IActivityRecognitionHardware} backed up by the Activity
- * Recognition HAL.
- *
- * @hide
- */
-public class ActivityRecognitionHardware extends IActivityRecognitionHardware.Stub {
-    private static final String TAG = "ActivityRecognitionHW";
-    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-
-    private static final String HARDWARE_PERMISSION = Manifest.permission.LOCATION_HARDWARE;
-    private static final String ENFORCE_HW_PERMISSION_MESSAGE = "Permission '"
-            + HARDWARE_PERMISSION + "' not granted to access ActivityRecognitionHardware";
-
-    private static final int INVALID_ACTIVITY_TYPE = -1;
-    private static final int NATIVE_SUCCESS_RESULT = 0;
-    private static final int EVENT_TYPE_DISABLED = 0;
-    private static final int EVENT_TYPE_ENABLED = 1;
-
-    /**
-     * Contains the number of supported Event Types.
-     *
-     * NOTE: increment this counter every time a new EVENT_TYPE_ is added to
-     *       com.android.location.provider.ActivityRecognitionProvider
-     */
-    private static final int EVENT_TYPE_COUNT = 3;
-
-    private static ActivityRecognitionHardware sSingletonInstance;
-    private static final Object sSingletonInstanceLock = new Object();
-
-    private final Context mContext;
-    private final int mSupportedActivitiesCount;
-    private final String[] mSupportedActivities;
-    private final int[][] mSupportedActivitiesEnabledEvents;
-    private final SinkList mSinks = new SinkList();
-
-    private static class Event {
-        public int activity;
-        public int type;
-        public long timestamp;
-    }
-
-    private ActivityRecognitionHardware(Context context) {
-        nativeInitialize();
-
-        mContext = context;
-        mSupportedActivities = fetchSupportedActivities();
-        mSupportedActivitiesCount = mSupportedActivities.length;
-        mSupportedActivitiesEnabledEvents = new int[mSupportedActivitiesCount][EVENT_TYPE_COUNT];
-    }
-
-    public static ActivityRecognitionHardware getInstance(Context context) {
-        synchronized (sSingletonInstanceLock) {
-            if (sSingletonInstance == null) {
-                sSingletonInstance = new ActivityRecognitionHardware(context);
-            }
-
-            return sSingletonInstance;
-        }
-    }
-
-    public static boolean isSupported() {
-        return nativeIsSupported();
-    }
-
-    @Override
-    public String[] getSupportedActivities() {
-        checkPermissions();
-        return mSupportedActivities;
-    }
-
-    @Override
-    public boolean isActivitySupported(String activity) {
-        checkPermissions();
-        int activityType = getActivityType(activity);
-        return activityType != INVALID_ACTIVITY_TYPE;
-    }
-
-    @Override
-    public boolean registerSink(IActivityRecognitionHardwareSink sink) {
-        checkPermissions();
-        return mSinks.register(sink);
-    }
-
-    @Override
-    public boolean unregisterSink(IActivityRecognitionHardwareSink sink) {
-        checkPermissions();
-        return mSinks.unregister(sink);
-    }
-
-    @Override
-    public boolean enableActivityEvent(String activity, int eventType, long reportLatencyNs) {
-        checkPermissions();
-
-        int activityType = getActivityType(activity);
-        if (activityType == INVALID_ACTIVITY_TYPE) {
-            return false;
-        }
-
-        int result = nativeEnableActivityEvent(activityType, eventType, reportLatencyNs);
-        if (result == NATIVE_SUCCESS_RESULT) {
-            mSupportedActivitiesEnabledEvents[activityType][eventType] = EVENT_TYPE_ENABLED;
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public boolean disableActivityEvent(String activity, int eventType) {
-        checkPermissions();
-
-        int activityType = getActivityType(activity);
-        if (activityType == INVALID_ACTIVITY_TYPE) {
-            return false;
-        }
-
-        int result = nativeDisableActivityEvent(activityType, eventType);
-        if (result == NATIVE_SUCCESS_RESULT) {
-            mSupportedActivitiesEnabledEvents[activityType][eventType] = EVENT_TYPE_DISABLED;
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public boolean flush() {
-        checkPermissions();
-        int result = nativeFlush();
-        return result == NATIVE_SUCCESS_RESULT;
-    }
-
-    /**
-     * Called by the Activity-Recognition HAL.
-     */
-    private void onActivityChanged(Event[] events) {
-        if (events == null || events.length == 0) {
-            if (DEBUG) Log.d(TAG, "No events to broadcast for onActivityChanged.");
-            return;
-        }
-
-        int eventsLength = events.length;
-        ActivityRecognitionEvent activityRecognitionEventArray[] =
-                new ActivityRecognitionEvent[eventsLength];
-        for (int i = 0; i < eventsLength; ++i) {
-            Event event = events[i];
-            String activityName = getActivityName(event.activity);
-            activityRecognitionEventArray[i] =
-                    new ActivityRecognitionEvent(activityName, event.type, event.timestamp);
-        }
-        ActivityChangedEvent activityChangedEvent =
-                new ActivityChangedEvent(activityRecognitionEventArray);
-
-        int size = mSinks.beginBroadcast();
-        for (int i = 0; i < size; ++i) {
-            IActivityRecognitionHardwareSink sink = mSinks.getBroadcastItem(i);
-            try {
-                sink.onActivityChanged(activityChangedEvent);
-            } catch (RemoteException e) {
-                Log.e(TAG, "Error delivering activity changed event.", e);
-            }
-        }
-        mSinks.finishBroadcast();
-    }
-
-    private String getActivityName(int activityType) {
-        if (activityType < 0 || activityType >= mSupportedActivities.length) {
-            String message = String.format(
-                    "Invalid ActivityType: %d, SupportedActivities: %d",
-                    activityType,
-                    mSupportedActivities.length);
-            Log.e(TAG, message);
-            return null;
-        }
-
-        return mSupportedActivities[activityType];
-    }
-
-    private int getActivityType(String activity) {
-        if (TextUtils.isEmpty(activity)) {
-            return INVALID_ACTIVITY_TYPE;
-        }
-
-        int supportedActivitiesLength = mSupportedActivities.length;
-        for (int i = 0; i < supportedActivitiesLength; ++i) {
-            if (activity.equals(mSupportedActivities[i])) {
-                return i;
-            }
-        }
-
-        return INVALID_ACTIVITY_TYPE;
-    }
-
-    private void checkPermissions() {
-        mContext.enforceCallingPermission(HARDWARE_PERMISSION, ENFORCE_HW_PERMISSION_MESSAGE);
-    }
-
-    private String[] fetchSupportedActivities() {
-        String[] supportedActivities = nativeGetSupportedActivities();
-        if (supportedActivities != null) {
-            return supportedActivities;
-        }
-
-        return new String[0];
-    }
-
-    private class SinkList extends RemoteCallbackList<IActivityRecognitionHardwareSink> {
-        @Override
-        public void onCallbackDied(IActivityRecognitionHardwareSink callback) {
-            int callbackCount = mSinks.getRegisteredCallbackCount();
-            if (DEBUG) Log.d(TAG, "RegisteredCallbackCount: " + callbackCount);
-            if (callbackCount != 0) {
-                return;
-            }
-            // currently there is only one client for this, so if all its sinks have died, we clean
-            // up after them, this ensures that the AR HAL is not out of sink
-            for (int activity = 0; activity < mSupportedActivitiesCount; ++activity) {
-                for (int event = 0; event < EVENT_TYPE_COUNT; ++event) {
-                    disableActivityEventIfEnabled(activity, event);
-                }
-            }
-        }
-
-        private void disableActivityEventIfEnabled(int activityType, int eventType) {
-            if (mSupportedActivitiesEnabledEvents[activityType][eventType] != EVENT_TYPE_ENABLED) {
-                return;
-            }
-
-            int result = nativeDisableActivityEvent(activityType, eventType);
-            mSupportedActivitiesEnabledEvents[activityType][eventType] = EVENT_TYPE_DISABLED;
-            String message = String.format(
-                    "DisableActivityEvent: activityType=%d, eventType=%d, result=%d",
-                    activityType,
-                    eventType,
-                    result);
-            Log.e(TAG, message);
-        }
-    }
-
-    // native bindings
-    static { nativeClassInit(); }
-
-    private static native void nativeClassInit();
-    private static native boolean nativeIsSupported();
-
-    private native void nativeInitialize();
-    private native void nativeRelease();
-    private native String[] nativeGetSupportedActivities();
-    private native int nativeEnableActivityEvent(
-            int activityType,
-            int eventType,
-            long reportLatenceNs);
-    private native int nativeDisableActivityEvent(int activityType, int eventType);
-    private native int nativeFlush();
-}
diff --git a/core/java/android/hardware/location/IActivityRecognitionHardware.aidl b/core/java/android/hardware/location/IActivityRecognitionHardware.aidl
deleted file mode 100644
index bc6b183..0000000
--- a/core/java/android/hardware/location/IActivityRecognitionHardware.aidl
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/license/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.hardware.location;
-
-import android.hardware.location.IActivityRecognitionHardwareSink;
-
-/**
- * Activity Recognition Hardware provider interface.
- * This interface can be used to implement hardware based activity recognition.
- *
- * @hide
- */
-interface IActivityRecognitionHardware {
-    /**
-     * Gets an array of supported activities by hardware.
-     */
-    String[] getSupportedActivities();
-
-    /**
-     * Returns true if the given activity is supported, false otherwise.
-     */
-    boolean isActivitySupported(in String activityType);
-
-    /**
-     * Registers a sink with Hardware Activity-Recognition.
-     */
-    boolean registerSink(in IActivityRecognitionHardwareSink sink);
-
-    /**
-     * Unregisters a sink with Hardware Activity-Recognition.
-     */
-    boolean unregisterSink(in IActivityRecognitionHardwareSink sink);
-
-    /**
-     * Enables tracking of a given activity/event type, if the activity is supported.
-     */
-    boolean enableActivityEvent(in String activityType, int eventType, long reportLatencyNs);
-
-    /**
-     * Disables tracking of a given activity/eventy type.
-     */
-    boolean disableActivityEvent(in String activityType, int eventType);
-
-    /**
-     * Requests hardware for all the activity events detected up to the given point in time.
-     */
-    boolean flush();
-}
\ No newline at end of file
diff --git a/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl b/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl
deleted file mode 100644
index 3fe645c..0000000
--- a/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2015, 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/license/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.hardware.location;
-
-import android.hardware.location.IActivityRecognitionHardware;
-
-/**
- * Activity Recognition Hardware client interface.
- * This interface can be used to receive interfaces to implementations of
- * {@link IActivityRecognitionHardware}.
- *
- * @hide
- */
-oneway interface IActivityRecognitionHardwareClient {
-    /**
-     * Hardware Activity-Recognition availability event.
-     *
-     * @param isSupported whether the platform has hardware support for the feature
-     * @param instance the available instance to provide access to the feature
-     */
-    void onAvailabilityChanged(in boolean isSupported, in IActivityRecognitionHardware instance);
-}
diff --git a/core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl b/core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl
deleted file mode 100644
index 21c8e87..0000000
--- a/core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/license/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.hardware.location;
-
-import android.hardware.location.ActivityChangedEvent;
-
-/**
- * Activity Recognition Hardware provider Sink interface.
- * This interface can be used to implement sinks to receive activity notifications.
- *
- * @hide
- */
-interface IActivityRecognitionHardwareSink {
-    /**
-     * Activity changed event.
-     */
-    void onActivityChanged(in ActivityChangedEvent event);
-}
\ No newline at end of file
diff --git a/core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl b/core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl
deleted file mode 100644
index 12e3117..0000000
--- a/core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/license/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.hardware.location;
-
-import android.hardware.location.IActivityRecognitionHardware;
-
-/**
- * Activity Recognition Hardware watcher. This interface can be used to receive interfaces to
- * implementations of {@link IActivityRecognitionHardware}.
- *
- * @deprecated use {@link IActivityRecognitionHardwareClient} instead.
-
- * @hide
- */
-interface IActivityRecognitionHardwareWatcher {
-    /**
-     * Hardware Activity-Recognition availability event.
-     */
-    void onInstanceChanged(in IActivityRecognitionHardware instance);
-}
diff --git a/core/java/android/net/NetworkSpecifier.java b/core/java/android/net/NetworkSpecifier.java
index be2f955..fcfb720 100644
--- a/core/java/android/net/NetworkSpecifier.java
+++ b/core/java/android/net/NetworkSpecifier.java
@@ -17,7 +17,7 @@
 package android.net;
 
 /**
- * Describes specific properties of a network for use in a {@link NetworkRequest}.
+ * Describes specific properties of a requested network for use in a {@link NetworkRequest}.
  *
  * Applications cannot instantiate this class by themselves, but can obtain instances of
  * subclasses of this class via other APIs.
@@ -49,4 +49,29 @@
     public void assertValidFromUid(int requestorUid) {
         // empty
     }
+
+    /**
+     * Optional method which can be overridden by concrete implementations of NetworkSpecifier to
+     * perform any redaction of information from the NetworkSpecifier, e.g. if it contains
+     * sensitive information. The default implementation simply returns the object itself - i.e.
+     * no information is redacted. A concrete implementation may return a modified (copy) of the
+     * NetworkSpecifier, or even return a null to fully remove all information.
+     * <p>
+     * This method is relevant to NetworkSpecifier objects used by agents - those are shared with
+     * apps by default. Some agents may store sensitive matching information in the specifier,
+     * e.g. a Wi-Fi SSID (which should not be shared since it may leak location). Those classes
+     * can redact to a null. Other agents use the Network Specifier to share public information
+     * with apps - those should not be redacted.
+     * <p>
+     * The default implementation redacts no information.
+     *
+     * @return A NetworkSpecifier object to be passed along to the requesting app.
+     *
+     * @hide
+     */
+    public NetworkSpecifier redact() {
+        // TODO (b/122160111): convert default to null once all platform NetworkSpecifiers
+        // implement this method.
+        return this;
+    }
 }
diff --git a/core/java/android/os/AppZygote.java b/core/java/android/os/AppZygote.java
index 40cbaf7..950f381 100644
--- a/core/java/android/os/AppZygote.java
+++ b/core/java/android/os/AppZygote.java
@@ -34,8 +34,15 @@
 public class AppZygote {
     private static final String LOG_TAG = "AppZygote";
 
+    // UID of the Zygote itself
     private final int mZygoteUid;
 
+    // First UID/GID of the range the AppZygote can setuid()/setgid() to
+    private final int mZygoteUidGidMin;
+
+    // Last UID/GID of the range the AppZygote can setuid()/setgid() to
+    private final int mZygoteUidGidMax;
+
     private final Object mLock = new Object();
 
     /**
@@ -47,9 +54,11 @@
 
     private final ApplicationInfo mAppInfo;
 
-    public AppZygote(ApplicationInfo appInfo, int zygoteUid) {
+    public AppZygote(ApplicationInfo appInfo, int zygoteUid, int uidGidMin, int uidGidMax) {
         mAppInfo = appInfo;
         mZygoteUid = zygoteUid;
+        mZygoteUidGidMin = uidGidMin;
+        mZygoteUidGidMax = uidGidMax;
     }
 
     /**
@@ -104,7 +113,9 @@
                     "app_zygote",  // seInfo
                     abi,  // abi
                     abi, // acceptedAbiList
-                    null);  // instructionSet
+                    null, // instructionSet
+                    mZygoteUidGidMin,
+                    mZygoteUidGidMax);
 
             ZygoteProcess.waitForConnectionToZygote(mZygote.getPrimarySocketAddress());
             // preload application code in the zygote
diff --git a/core/java/android/os/BugreportManager.java b/core/java/android/os/BugreportManager.java
index cbb3909..c5a51f1 100644
--- a/core/java/android/os/BugreportManager.java
+++ b/core/java/android/os/BugreportManager.java
@@ -66,10 +66,14 @@
         @interface BugreportErrorCode {}
 
         /** The input options were invalid */
-        int BUGREPORT_ERROR_INVALID_INPUT = 1;
+        int BUGREPORT_ERROR_INVALID_INPUT = IDumpstateListener.BUGREPORT_ERROR_INVALID_INPUT;
 
         /** A runtime error occured */
-        int BUGREPORT_ERROR_RUNTIME = 2;
+        int BUGREPORT_ERROR_RUNTIME = IDumpstateListener.BUGREPORT_ERROR_RUNTIME_ERROR;
+
+        /** User denied consent to share the bugreport */
+        int BUGREPORT_ERROR_USER_DENIED_CONSENT =
+                IDumpstateListener.BUGREPORT_ERROR_USER_DENIED_CONSENT;
 
         /**
          * Called when taking bugreport resulted in an error.
@@ -108,7 +112,10 @@
         DumpstateListener dsListener = new DumpstateListener(listener);
 
         try {
-            mBinder.startBugreport(bugreportFd, screenshotFd, params.getMode(), dsListener);
+            // Note: mBinder can get callingUid from the binder transaction.
+            mBinder.startBugreport(-1 /* callingUid */,
+                    mContext.getOpPackageName(), bugreportFd, screenshotFd,
+                    params.getMode(), dsListener);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
diff --git a/core/java/android/os/FileUtils.java b/core/java/android/os/FileUtils.java
index e84a518..ca39051 100644
--- a/core/java/android/os/FileUtils.java
+++ b/core/java/android/os/FileUtils.java
@@ -846,7 +846,16 @@
         return contains(dir.getAbsolutePath(), file.getAbsolutePath());
     }
 
-    /** {@hide} */
+    /**
+     * Test if a file lives under the given directory, either as a direct child
+     * or a distant grandchild.
+     * <p>
+     * Both files <em>must</em> have been resolved using
+     * {@link File#getCanonicalFile()} to avoid symlink or path traversal
+     * attacks.
+     *
+     * @hide
+     */
     public static boolean contains(String dirPath, String filePath) {
         if (dirPath.equals(filePath)) {
             return true;
diff --git a/core/java/android/os/ZygoteProcess.java b/core/java/android/os/ZygoteProcess.java
index 251c5ee..ec77821 100644
--- a/core/java/android/os/ZygoteProcess.java
+++ b/core/java/android/os/ZygoteProcess.java
@@ -402,6 +402,8 @@
             argsForZygote.add("--mount-external-full");
         } else if (mountExternal == Zygote.MOUNT_EXTERNAL_INSTALLER) {
             argsForZygote.add("--mount-external-installer");
+        } else if (mountExternal == Zygote.MOUNT_EXTERNAL_LEGACY) {
+            argsForZygote.add("--mount-external-legacy");
         }
 
         argsForZygote.add("--target-sdk-version=" + targetSdkVersion);
@@ -809,6 +811,8 @@
      *                        may be different from <code>abi</code> in case the children
      *                        spawned from this Zygote only communicate using ABI-safe methods.
      * @param instructionSet null-ok the instruction set to use.
+     * @param uidRangeStart The first UID in the range the child zygote may setuid()/setgid() to
+     * @param uidRangeEnd The last UID in the range the child zygote may setuid()/setgid() to
      */
     public ChildZygoteProcess startChildZygote(final String processClass,
                                                final String niceName,
@@ -817,13 +821,17 @@
                                                String seInfo,
                                                String abi,
                                                String acceptedAbiList,
-                                               String instructionSet) {
+                                               String instructionSet,
+                                               int uidRangeStart,
+                                               int uidRangeEnd) {
         // Create an unguessable address in the global abstract namespace.
         final LocalSocketAddress serverAddress = new LocalSocketAddress(
                 processClass + "/" + UUID.randomUUID().toString());
 
         final String[] extraArgs = {Zygote.CHILD_ZYGOTE_SOCKET_NAME_ARG + serverAddress.getName(),
-                                    Zygote.CHILD_ZYGOTE_ABI_LIST_ARG + acceptedAbiList};
+                                    Zygote.CHILD_ZYGOTE_ABI_LIST_ARG + acceptedAbiList,
+                                    Zygote.CHILD_ZYGOTE_UID_RANGE_START + uidRangeStart,
+                                    Zygote.CHILD_ZYGOTE_UID_RANGE_END + uidRangeEnd};
 
         Process.ProcessStartResult result;
         try {
diff --git a/core/java/android/provider/DeviceConfig.java b/core/java/android/provider/DeviceConfig.java
index af8146e..9015703 100644
--- a/core/java/android/provider/DeviceConfig.java
+++ b/core/java/android/provider/DeviceConfig.java
@@ -60,6 +60,24 @@
     public static final String NAMESPACE_GAME_DRIVER = "game_driver";
 
     /**
+     * Namespace for autofill feature that provides suggestions across all apps when
+     * the user interacts with input fields.
+     *
+     * @hide
+     */
+    @SystemApi
+    public static final String NAMESPACE_AUTOFILL = "autofill";
+
+    /**
+     * Namespace for content capture feature used by on-device machine intelligence
+     * to provide suggestions in a privacy-safe manner.
+     *
+     * @hide
+     */
+    @SystemApi
+    public static final String NAMESPACE_CONTENT_CAPTURE = "content_capture";
+
+    /**
      * Namespace for all input-related features that are used at the native level.
      * These features are applied at reboot.
      *
diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java
index cdbc979..3a49986 100644
--- a/core/java/android/provider/MediaStore.java
+++ b/core/java/android/provider/MediaStore.java
@@ -46,6 +46,7 @@
 import android.os.Bundle;
 import android.os.CancellationSignal;
 import android.os.Environment;
+import android.os.FileUtils;
 import android.os.OperationCanceledException;
 import android.os.ParcelFileDescriptor;
 import android.os.RemoteException;
@@ -86,8 +87,10 @@
     /** A content:// style uri to the authority for the media provider */
     public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
 
-    private static final String VOLUME_INTERNAL = "internal";
-    private static final String VOLUME_EXTERNAL = "external";
+    /** {@hide} */
+    public static final String VOLUME_INTERNAL = "internal";
+    /** {@hide} */
+    public static final String VOLUME_EXTERNAL = "external";
 
     /**
      * The method name used by the media scanner and mtp to tell the media provider to
@@ -1027,7 +1030,7 @@
 
         /** @hide */
         public static final Uri getContentUriForPath(String path) {
-            return getContentUri(getVolumeNameForPath(path));
+            return getContentUri(getVolumeName(new File(path)));
         }
 
         /**
@@ -1197,7 +1200,7 @@
 
         /** @hide */
         public static Uri getContentUriForPath(@NonNull String path) {
-            return getContentUri(getVolumeNameForPath(path));
+            return getContentUri(getVolumeName(new File(path)));
         }
 
         /** @hide */
@@ -1211,16 +1214,20 @@
         }
     }
 
-    private static String getVolumeNameForPath(@NonNull String path) {
-        final StorageManager sm = AppGlobals.getInitialApplication()
-                .getSystemService(StorageManager.class);
-        final StorageVolume sv = sm.getStorageVolume(new File(path));
-        if (sv != null) {
-            if (sv.isPrimary()) {
-                return VOLUME_EXTERNAL;
-            } else {
-                return sv.getUuid();
+    /** {@hide} */
+    public static @NonNull String getVolumeName(@NonNull File path) {
+        if (FileUtils.contains(Environment.getStorageDirectory(), path)) {
+            final StorageManager sm = AppGlobals.getInitialApplication()
+                    .getSystemService(StorageManager.class);
+            final StorageVolume sv = sm.getStorageVolume(path);
+            if (sv != null) {
+                if (sv.isPrimary()) {
+                    return VOLUME_EXTERNAL;
+                } else {
+                    return checkArgumentVolumeName(sv.getUuid());
+                }
             }
+            throw new IllegalStateException("Unknown volume at " + path);
         } else {
             return VOLUME_INTERNAL;
         }
@@ -1991,7 +1998,7 @@
              *             access this path.
              */
             public static @Nullable Uri getContentUriForPath(@NonNull String path) {
-                return getContentUri(getVolumeNameForPath(path));
+                return getContentUri(getVolumeName(new File(path)));
             }
 
             /**
@@ -2908,7 +2915,7 @@
         final Set<String> volumeNames = new ArraySet<>();
         volumeNames.add(VOLUME_INTERNAL);
         for (VolumeInfo vi : sm.getVolumes()) {
-            if (vi.isMountedReadable()) {
+            if (vi.isVisibleForUser(UserHandle.myUserId()) && vi.isMountedReadable()) {
                 if (vi.isPrimary()) {
                     volumeNames.add(VOLUME_EXTERNAL);
                 } else {
@@ -2927,14 +2934,41 @@
         if (uri.getAuthority().equals(AUTHORITY) && segments != null && segments.size() > 0) {
             return segments.get(0);
         } else {
-            throw new IllegalArgumentException("Not a media Uri: " + uri);
+            throw new IllegalArgumentException("Missing volume name: " + uri);
         }
     }
 
     /** {@hide} */
+    public static @NonNull String checkArgumentVolumeName(@NonNull String volumeName) {
+        if (TextUtils.isEmpty(volumeName)) {
+            throw new IllegalArgumentException();
+        }
+
+        if (VOLUME_INTERNAL.equals(volumeName)) {
+            return volumeName;
+        } else if (VOLUME_EXTERNAL.equals(volumeName)) {
+            return volumeName;
+        }
+
+        // When not one of the well-known values above, it must be a hex UUID
+        for (int i = 0; i < volumeName.length(); i++) {
+            final char c = volumeName.charAt(i);
+            if (('a' <= c && c <= 'f') || ('A' <= c && c <= 'F')
+                    || ('0' <= c && c <= '9') || (c == '-')) {
+                continue;
+            } else {
+                throw new IllegalArgumentException("Invalid volume name: " + volumeName);
+            }
+        }
+        return volumeName;
+    }
+
+    /** {@hide} */
     public static @NonNull File getVolumePath(@NonNull String volumeName)
             throws FileNotFoundException {
-        Objects.requireNonNull(volumeName);
+        if (TextUtils.isEmpty(volumeName)) {
+            throw new IllegalArgumentException();
+        }
 
         if (VOLUME_INTERNAL.equals(volumeName)) {
             return Environment.getDataDirectory();
@@ -2947,7 +2981,9 @@
         for (VolumeInfo vi : sm.getVolumes()) {
             if (Objects.equals(vi.getFsUuid(), volumeName)) {
                 final File path = vi.getPathForUser(UserHandle.myUserId());
-                if (path == null) {
+                if (path != null) {
+                    return path;
+                } else {
                     throw new FileNotFoundException("Failed to find path for " + vi);
                 }
             }
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index b39d871..d5de13c 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -6026,6 +6026,12 @@
                 ANY_STRING_VALIDATOR;
 
         /**
+         * Indicates which clock face to show on lock screen and AOD while docked.
+         * @hide
+         */
+        private static final String DOCKED_CLOCK_FACE = "docked_clock_face";
+
+        /**
          * Set by the system to track if the user needs to see the call to action for
          * the lockscreen notification policy.
          * @hide
@@ -10952,6 +10958,21 @@
         public static final String DATA_STALL_EVALUATION_TYPE = "data_stall_evaluation_type";
 
         /**
+         * Whether to try cellular data recovery when a bad network is reported.
+         *
+         * @hide
+         */
+        public static final String DATA_STALL_RECOVERY_ON_BAD_NETWORK =
+                "data_stall_recovery_on_bad_network";
+
+        /**
+         * Minumim duration in millisecodns between cellular data recovery attempts
+         *
+         * @hide
+         */
+        public static final String MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS =
+                "min_duration_between_recovery_steps";
+        /**
          * Whether network service discovery is enabled.
          *
          * @hide
diff --git a/core/java/android/security/keystore/recovery/RecoveryController.java b/core/java/android/security/keystore/recovery/RecoveryController.java
index 31a5962..c43a666 100644
--- a/core/java/android/security/keystore/recovery/RecoveryController.java
+++ b/core/java/android/security/keystore/recovery/RecoveryController.java
@@ -533,7 +533,10 @@
      *     service.
      * @throws LockScreenRequiredException if the user does not have a lock screen set. A lock
      *     screen is required to generate recoverable keys.
+     *
+     * @deprecated Use the method {@link #generateKey(String, byte[])} instead.
      */
+    @Deprecated
     @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
     public @NonNull Key generateKey(@NonNull String alias) throws InternalRecoveryServiceException,
             LockScreenRequiredException {
@@ -556,6 +559,47 @@
     }
 
     /**
+     * Generates a recoverable key with the given {@code alias} and {@code metadata}.
+     *
+     * <p>The metadata should contain any data that needs to be cryptographically bound to the
+     * generated key, but does not need to be encrypted by the key. For example, the metadata can
+     * be a byte string describing the algorithms and non-secret parameters to be used with the
+     * key. The supplied metadata can later be obtained via
+     * {@link WrappedApplicationKey#getMetadata()}.
+     *
+     * <p>During the key recovery process, the same metadata has to be supplied via
+     * {@link WrappedApplicationKey.Builder#setMetadata(byte[])}; otherwise, the recovery process
+     * will fail due to the checking of the cryptographic binding. This can help prevent
+     * potential attacks that try to swap key materials on the backup server and trick the
+     * application to use keys with different algorithms or parameters.
+     *
+     * @throws InternalRecoveryServiceException if an unexpected error occurred in the recovery
+     *     service.
+     * @throws LockScreenRequiredException if the user does not have a lock screen set. A lock
+     *     screen is required to generate recoverable keys.
+     */
+    @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
+    public @NonNull Key generateKey(@NonNull String alias, @Nullable byte[] metadata)
+            throws InternalRecoveryServiceException, LockScreenRequiredException {
+        try {
+            String grantAlias = mBinder.generateKeyWithMetadata(alias, metadata);
+            if (grantAlias == null) {
+                throw new InternalRecoveryServiceException("null grant alias");
+            }
+            return getKeyFromGrant(grantAlias);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        } catch (UnrecoverableKeyException e) {
+            throw new InternalRecoveryServiceException("Failed to get key from keystore", e);
+        } catch (ServiceSpecificException e) {
+            if (e.errorCode == ERROR_INSECURE_USER) {
+                throw new LockScreenRequiredException(e.getMessage());
+            }
+            throw wrapUnexpectedServiceSpecificException(e);
+        }
+    }
+
+    /**
      * Imports a 256-bit recoverable AES key with the given {@code alias} and the raw bytes {@code
      * keyBytes}.
      *
@@ -564,7 +608,9 @@
      * @throws LockScreenRequiredException if the user does not have a lock screen set. A lock
      *     screen is required to generate recoverable keys.
      *
+     * @deprecated Use the method {@link #importKey(String, byte[], byte[])} instead.
      */
+    @Deprecated
     @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
     public @NonNull Key importKey(@NonNull String alias, @NonNull byte[] keyBytes)
             throws InternalRecoveryServiceException, LockScreenRequiredException {
@@ -587,6 +633,49 @@
     }
 
     /**
+     * Imports a recoverable 256-bit AES key with the given {@code alias}, the raw bytes {@code
+     * keyBytes}, and the {@code metadata}.
+     *
+     * <p>The metadata should contain any data that needs to be cryptographically bound to the
+     * imported key, but does not need to be encrypted by the key. For example, the metadata can
+     * be a byte string describing the algorithms and non-secret parameters to be used with the
+     * key. The supplied metadata can later be obtained via
+     * {@link WrappedApplicationKey#getMetadata()}.
+     *
+     * <p>During the key recovery process, the same metadata has to be supplied via
+     * {@link WrappedApplicationKey.Builder#setMetadata(byte[])}; otherwise, the recovery process
+     * will fail due to the checking of the cryptographic binding. This can help prevent
+     * potential attacks that try to swap key materials on the backup server and trick the
+     * application to use keys with different algorithms or parameters.
+     *
+     * @throws InternalRecoveryServiceException if an unexpected error occurred in the recovery
+     *     service.
+     * @throws LockScreenRequiredException if the user does not have a lock screen set. A lock
+     *     screen is required to generate recoverable keys.
+     */
+    @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
+    public @NonNull Key importKey(@NonNull String alias, @NonNull byte[] keyBytes,
+            @Nullable byte[] metadata)
+            throws InternalRecoveryServiceException, LockScreenRequiredException {
+        try {
+            String grantAlias = mBinder.importKeyWithMetadata(alias, keyBytes, metadata);
+            if (grantAlias == null) {
+                throw new InternalRecoveryServiceException("Null grant alias");
+            }
+            return getKeyFromGrant(grantAlias);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        } catch (UnrecoverableKeyException e) {
+            throw new InternalRecoveryServiceException("Failed to get key from keystore", e);
+        } catch (ServiceSpecificException e) {
+            if (e.errorCode == ERROR_INSECURE_USER) {
+                throw new LockScreenRequiredException(e.getMessage());
+            }
+            throw wrapUnexpectedServiceSpecificException(e);
+        }
+    }
+
+    /**
      * Gets a key called {@code alias} from the recoverable key store.
      *
      * @param alias The key alias.
diff --git a/core/java/android/security/keystore/recovery/WrappedApplicationKey.java b/core/java/android/security/keystore/recovery/WrappedApplicationKey.java
index ae4448f..dbfd655 100644
--- a/core/java/android/security/keystore/recovery/WrappedApplicationKey.java
+++ b/core/java/android/security/keystore/recovery/WrappedApplicationKey.java
@@ -17,6 +17,7 @@
 package android.security.keystore.recovery;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -41,6 +42,8 @@
     private String mAlias;
     // The only supported format is AES-256 symmetric key.
     private byte[] mEncryptedKeyMaterial;
+    // The optional metadata that's authenticated (but unencrypted) with the key material.
+    private byte[] mMetadata;
 
     // IMPORTANT! PLEASE READ!
     // -----------------------
@@ -80,13 +83,23 @@
          * @param encryptedKeyMaterial The key material
          * @return This builder
          */
-
         public Builder setEncryptedKeyMaterial(@NonNull byte[] encryptedKeyMaterial) {
             mInstance.mEncryptedKeyMaterial = encryptedKeyMaterial;
             return this;
         }
 
         /**
+         * Sets the metadata that is authenticated (but unecrypted) with the key material.
+         *
+         * @param metadata The metadata
+         * @return This builder
+         */
+        public Builder setMetadata(@Nullable byte[] metadata) {
+            mInstance.mMetadata = metadata;
+            return this;
+        }
+
+        /**
          * Creates a new {@link WrappedApplicationKey} instance.
          *
          * @return new instance
@@ -102,9 +115,10 @@
     private WrappedApplicationKey() { }
 
     /**
-     * Deprecated - consider using Builder.
+     * @deprecated Use the builder instead.
      * @hide
      */
+    @Deprecated
     public WrappedApplicationKey(@NonNull String alias, @NonNull byte[] encryptedKeyMaterial) {
         mAlias = Preconditions.checkNotNull(alias);
         mEncryptedKeyMaterial = Preconditions.checkNotNull(encryptedKeyMaterial);
@@ -124,6 +138,11 @@
         return mEncryptedKeyMaterial;
     }
 
+    /** The metadata with the key. */
+    public @Nullable byte[] getMetadata() {
+        return mMetadata;
+    }
+
     public static final Parcelable.Creator<WrappedApplicationKey> CREATOR =
             new Parcelable.Creator<WrappedApplicationKey>() {
                 public WrappedApplicationKey createFromParcel(Parcel in) {
@@ -139,6 +158,7 @@
     public void writeToParcel(Parcel out, int flags) {
         out.writeString(mAlias);
         out.writeByteArray(mEncryptedKeyMaterial);
+        out.writeByteArray(mMetadata);
     }
 
     /**
@@ -147,6 +167,10 @@
     protected WrappedApplicationKey(Parcel in) {
         mAlias = in.readString();
         mEncryptedKeyMaterial = in.createByteArray();
+        // Check if there is still data to be read.
+        if (in.dataAvail() > 0) {
+            mMetadata = in.createByteArray();
+        }
     }
 
     @Override
diff --git a/core/java/android/service/attention/AttentionService.java b/core/java/android/service/attention/AttentionService.java
new file mode 100644
index 0000000..f6e448dc
--- /dev/null
+++ b/core/java/android/service/attention/AttentionService.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.service.attention;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+import android.os.RemoteException;
+
+import com.android.internal.util.Preconditions;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+
+/**
+ * Abstract base class for Attention service.
+ *
+ * <p> An attention service provides attention estimation related features to the system.
+ * The system's default AttentionService implementation is configured in
+ * {@code config_AttentionComponent}. If this config has no value, a stub is returned.
+ *
+ * See: {@link AttentionManagerService}.
+ *
+ * <pre>
+ * {@literal
+ * <service android:name=".YourAttentionService"
+ *          android:permission="android.permission.BIND_ATTENTION_SERVICE">
+ * </service>}
+ * </pre>
+ *
+ * @hide
+ */
+@SystemApi
+public abstract class AttentionService extends Service {
+    /**
+     * The {@link Intent} that must be declared as handled by the service. To be supported, the
+     * service must also require the {@link android.Manifest.permission#BIND_ATTENTION_SERVICE}
+     * permission so that other applications can not abuse it.
+     */
+    public static final String SERVICE_INTERFACE =
+            "android.service.attention.AttentionService";
+
+    /** Attention is absent. */
+    public static final int ATTENTION_SUCCESS_ABSENT = 0;
+
+    /** Attention is present. */
+    public static final int ATTENTION_SUCCESS_PRESENT = 1;
+
+    /** Preempted by other camera user. */
+    public static final int ATTENTION_FAILURE_PREEMPTED = 2;
+
+    /** Preempted by other camera user. */
+    public static final int ATTENTION_FAILURE_TIMED_OUT = 3;
+
+    /** Unknown reasons for failing to determine the attention. */
+    public static final int ATTENTION_FAILURE_UNKNOWN = 4;
+
+    /**
+     * Result codes for when attention check was successful.
+     *
+     * @hide
+     */
+    @IntDef(prefix = {"ATTENTION_SUCCESS_"}, value = {ATTENTION_SUCCESS_ABSENT,
+            ATTENTION_SUCCESS_PRESENT})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface AttentionSuccessCodes {
+    }
+
+    /**
+     * Result codes explaining why attention check was not successful.
+     *
+     * @hide
+     */
+    @IntDef(prefix = {"ATTENTION_FAILURE_"}, value = {ATTENTION_FAILURE_PREEMPTED,
+            ATTENTION_FAILURE_TIMED_OUT, ATTENTION_FAILURE_UNKNOWN})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface AttentionFailureCodes {
+    }
+
+    private final IAttentionService.Stub mBinder = new IAttentionService.Stub() {
+
+        /** {@inheritDoc} */
+        @Override
+        public void checkAttention(int requestCode, IAttentionCallback callback) {
+            Preconditions.checkNotNull(callback);
+            AttentionService.this.onCheckAttention(requestCode, new AttentionCallback(callback));
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        public void cancelAttentionCheck(int requestCode) {
+            AttentionService.this.onCancelAttentionCheck(requestCode);
+        }
+    };
+
+    @Override
+    public final IBinder onBind(Intent intent) {
+        if (SERVICE_INTERFACE.equals(intent.getAction())) {
+            return mBinder;
+        }
+        return null;
+    }
+
+    /**
+     * Checks the user attention and calls into the provided callback.
+     *
+     * @param requestCode an identifier that could be used to cancel the request
+     * @param callback    the callback to return the result to
+     */
+    public abstract void onCheckAttention(int requestCode, @NonNull AttentionCallback callback);
+
+    /** Cancels the attention check for a given request code. */
+    public abstract void onCancelAttentionCheck(int requestCode);
+
+
+    /** Callbacks for AttentionService results. */
+    public static final class AttentionCallback {
+        private final IAttentionCallback mCallback;
+
+        private AttentionCallback(IAttentionCallback callback) {
+            mCallback = callback;
+        }
+
+        /** Returns the result. */
+        public void onSuccess(int requestCode, @AttentionSuccessCodes int result, long timestamp) {
+            try {
+                mCallback.onSuccess(requestCode, result, timestamp);
+            } catch (RemoteException e) {
+                e.rethrowFromSystemServer();
+            }
+        }
+
+        /** Signals a failure. */
+        public void onFailure(int requestCode, @AttentionFailureCodes int error) {
+            try {
+                mCallback.onFailure(requestCode, error);
+            } catch (RemoteException e) {
+                e.rethrowFromSystemServer();
+            }
+        }
+    }
+}
diff --git a/core/java/android/hardware/location/ActivityChangedEvent.aidl b/core/java/android/service/attention/IAttentionCallback.aidl
similarity index 60%
rename from core/java/android/hardware/location/ActivityChangedEvent.aidl
rename to core/java/android/service/attention/IAttentionCallback.aidl
index 21f2445..0e8a1e7 100644
--- a/core/java/android/hardware/location/ActivityChangedEvent.aidl
+++ b/core/java/android/service/attention/IAttentionCallback.aidl
@@ -1,5 +1,5 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
+ /*
+ * 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.
@@ -11,9 +11,17 @@
  * 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
+ * limitations under the License.
  */
 
-package android.hardware.location;
+package android.service.attention;
 
-parcelable ActivityChangedEvent;
\ No newline at end of file
+/**
+ * Callback for onCheckAttention request.
+ *
+ * @hide
+ */
+oneway interface IAttentionCallback {
+    void onSuccess(int requestCode, int result, long timestamp);
+    void onFailure(int requestCode, int error);
+}
diff --git a/core/java/android/service/attention/IAttentionService.aidl b/core/java/android/service/attention/IAttentionService.aidl
new file mode 100644
index 0000000..c3b6f48
--- /dev/null
+++ b/core/java/android/service/attention/IAttentionService.aidl
@@ -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.
+ */
+
+package android.service.attention;
+
+import android.service.attention.IAttentionCallback;
+
+/**
+ * Interface for a concrete implementation to provide to the AttentionManagerService.
+ *
+ * @hide
+ */
+oneway interface IAttentionService {
+    void checkAttention(int requestCode, IAttentionCallback callback);
+    void cancelAttentionCheck(int requestCode);
+}
\ No newline at end of file
diff --git a/core/java/android/service/euicc/EuiccService.java b/core/java/android/service/euicc/EuiccService.java
index 4be1f9c..4dc10cd 100644
--- a/core/java/android/service/euicc/EuiccService.java
+++ b/core/java/android/service/euicc/EuiccService.java
@@ -184,6 +184,12 @@
     public static final String EXTRA_RESOLUTION_CONFIRMATION_CODE_RETRIED =
             "android.service.euicc.extra.RESOLUTION_CONFIRMATION_CODE_RETRIED";
 
+    /**
+     * Intent extra set for resolution requests containing an int indicating the current card Id.
+     */
+    public static final String EXTRA_RESOLUTION_CARD_ID =
+            "android.service.euicc.extra.RESOLUTION_CARD_ID";
+
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(prefix = { "RESULT_" }, value = {
diff --git a/core/java/android/util/Half.java b/core/java/android/util/Half.java
index 5718d99..70d049a 100644
--- a/core/java/android/util/Half.java
+++ b/core/java/android/util/Half.java
@@ -162,6 +162,7 @@
     private static final int FP32_EXPONENT_MASK     = 0xff;
     private static final int FP32_SIGNIFICAND_MASK  = 0x7fffff;
     private static final int FP32_EXPONENT_BIAS     = 127;
+    private static final int FP32_QNAN_MASK         = 0x400000;
 
     private static final int FP32_DENORMAL_MAGIC = 126 << 23;
     private static final float FP32_DENORMAL_FLOAT = Float.intBitsToFloat(FP32_DENORMAL_MAGIC);
@@ -903,6 +904,9 @@
             outM = m << 13;
             if (e == 0x1f) { // Infinite or NaN
                 outE = 0xff;
+                if (outM != 0) { // SNaNs are quieted
+                    outM |= FP32_QNAN_MASK;
+                }
             } else {
                 outE = e - FP16_EXPONENT_BIAS + FP32_EXPONENT_BIAS;
             }
diff --git a/core/java/android/util/TimeUtils.java b/core/java/android/util/TimeUtils.java
index 91bc3eb..e4c8eeb 100644
--- a/core/java/android/util/TimeUtils.java
+++ b/core/java/android/util/TimeUtils.java
@@ -43,6 +43,9 @@
     /** {@hide} */
     private static SimpleDateFormat sLoggingFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
+    /** @hide */
+    public static final SimpleDateFormat sDumpDateFormat =
+            new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
     /**
      * Tries to return a time zone that would have had the specified offset
      * and DST value at the specified moment in the specified country.
@@ -360,4 +363,28 @@
             return sLoggingFormat.format(new Date(millis));
         }
     }
-}
+
+    /**
+     * Dump a currentTimeMillis style timestamp for dumpsys.
+     *
+     * @hide
+     */
+    public static void dumpTime(PrintWriter pw, long time) {
+        pw.print(sDumpDateFormat.format(new Date(time)));
+    }
+
+    /**
+     * Dump a currentTimeMillis style timestamp for dumpsys, with the delta time from now.
+     *
+     * @hide
+     */
+    public static void dumpTimeWithDelta(PrintWriter pw, long time, long now) {
+        pw.print(sDumpDateFormat.format(new Date(time)));
+        if (time == now) {
+            pw.print(" (now)");
+        } else {
+            pw.print(" (");
+            TimeUtils.formatDuration(time, now, pw);
+            pw.print(")");
+        }
+    }}
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index 4ead34e..f58efc9 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -1391,11 +1391,17 @@
          */
         public static final int HDR_TYPE_HLG = 3;
 
+        /**
+         * HDR10+ display.
+         */
+        public static final int HDR_TYPE_HDR10_PLUS = 4;
+
         /** @hide */
         @IntDef(prefix = { "HDR_TYPE_" }, value = {
                 HDR_TYPE_DOLBY_VISION,
                 HDR_TYPE_HDR10,
                 HDR_TYPE_HLG,
+                HDR_TYPE_HDR10_PLUS,
         })
         @Retention(RetentionPolicy.SOURCE)
         public @interface HdrType {}
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
index 9cced4e..f9a46b1 100644
--- a/core/java/android/view/KeyEvent.java
+++ b/core/java/android/view/KeyEvent.java
@@ -818,7 +818,10 @@
     public static final int KEYCODE_THUMBS_UP = 286;
     /** Key code constant: Thumbs down key. Apps can use this to let user downvote content. */
     public static final int KEYCODE_THUMBS_DOWN = 287;
-    /** Key code constant: Consumed by system to switch current viewer profile. */
+    /**
+     * Key code constant: Used to switch current {@link android.accounts.Account} that is
+     * consuming content. May be consumed by system to set account globally.
+     */
     public static final int KEYCODE_PROFILE_SWITCH = 288;
 
     /**
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 32974ac..a1aa06e 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -8219,6 +8219,10 @@
      *   <li>{@link ViewStructure#newHtmlInfoBuilder(String)}
      *   <li>{@link ViewStructure#setHtmlInfo(android.view.ViewStructure.HtmlInfo)}
      *   <li>{@link ViewStructure#setDataIsSensitive(boolean)}
+     *   <li>{@link ViewStructure#setAlpha(float)}
+     *   <li>{@link ViewStructure#setElevation(float)}
+     *   <li>{@link ViewStructure#setTransformation(Matrix)}
+     *
      * </ul>
      */
     public void onProvideContentCaptureStructure(@NonNull ViewStructure structure, int flags) {
@@ -8283,8 +8287,7 @@
 
         structure.setDimens(ignoredParentLeft + mLeft, ignoredParentTop + mTop, mScrollX, mScrollY,
                 mRight - mLeft, mBottom - mTop);
-        if (viewFor == VIEW_STRUCTURE_FOR_ASSIST
-                || viewFor == VIEW_STRUCTURE_FOR_CONTENT_CAPTURE) {
+        if (viewFor == VIEW_STRUCTURE_FOR_ASSIST) {
             if (!hasIdentityMatrix()) {
                 structure.setTransformation(getMatrix());
             }
@@ -9028,11 +9031,12 @@
         if (session == null) return;
 
         if (appeared) {
-            if (!isLaidOut() || !isVisibleToUser()
+            if (!isLaidOut() || getVisibility() != VISIBLE
                     || (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0) {
                 if (Log.isLoggable(CONTENT_CAPTURE_LOG_TAG, Log.VERBOSE)) {
                     Log.v(CONTENT_CAPTURE_LOG_TAG, "Ignoring 'appeared' on " + this + ": laid="
-                            + isLaidOut() + ", visible=" + isVisibleToUser()
+                            + isLaidOut() + ", visibleToUser=" + isVisibleToUser()
+                            + ", visible=" + (getVisibility() == VISIBLE)
                             + ": alreadyNotifiedAppeared="
                             + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0));
                 }
diff --git a/core/java/android/view/contentcapture/ChildContentCaptureSession.java b/core/java/android/view/contentcapture/ChildContentCaptureSession.java
index 0b39c3a..63c21f3 100644
--- a/core/java/android/view/contentcapture/ChildContentCaptureSession.java
+++ b/core/java/android/view/contentcapture/ChildContentCaptureSession.java
@@ -88,9 +88,8 @@
     }
 
     @Override
-    void internalNotifyViewTextChanged(@NonNull AutofillId id, @Nullable CharSequence text,
-            int flags) {
-        getMainCaptureSession().notifyViewTextChanged(mId, id, text, flags);
+    void internalNotifyViewTextChanged(@NonNull AutofillId id, @Nullable CharSequence text) {
+        getMainCaptureSession().notifyViewTextChanged(mId, id, text);
     }
 
     @Override
diff --git a/core/java/android/view/contentcapture/ContentCaptureEvent.java b/core/java/android/view/contentcapture/ContentCaptureEvent.java
index 0d06430..43963c3 100644
--- a/core/java/android/view/contentcapture/ContentCaptureEvent.java
+++ b/core/java/android/view/contentcapture/ContentCaptureEvent.java
@@ -21,6 +21,7 @@
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.util.Log;
 import android.view.autofill.AutofillId;
 
 import com.android.internal.util.Preconditions;
@@ -28,11 +29,15 @@
 import java.io.PrintWriter;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.List;
 
 /** @hide */
 @SystemApi
 public final class ContentCaptureEvent implements Parcelable {
 
+    private static final String TAG = ContentCaptureEvent.class.getSimpleName();
+
     /** @hide */
     public static final int TYPE_SESSION_FINISHED = -2;
     /** @hide */
@@ -46,9 +51,11 @@
     public static final int TYPE_VIEW_APPEARED = 1;
 
     /**
-     * Called when a node has been removed from the screen and is not visible to the user anymore.
+     * Called when one or more nodes have been removed from the screen and is not visible to the
+     * user anymore.
      *
-     * <p>The id of the node is available through {@link #getId()}.
+     * <p>To get the id(s), first call {@link #getIds()} - if it returns {@code null}, then call
+     * {@link #getId()}.
      */
     public static final int TYPE_VIEW_DISAPPEARED = 2;
 
@@ -74,29 +81,23 @@
     private final @NonNull String mSessionId;
     private final int mType;
     private final long mEventTime;
-    private final int mFlags;
     private @Nullable AutofillId mId;
+    private @Nullable ArrayList<AutofillId> mIds;
     private @Nullable ViewNode mNode;
     private @Nullable CharSequence mText;
     private @Nullable String mParentSessionId;
     private @Nullable ContentCaptureContext mClientContext;
 
     /** @hide */
-    public ContentCaptureEvent(@NonNull String sessionId, int type, long eventTime, int flags) {
+    public ContentCaptureEvent(@NonNull String sessionId, int type, long eventTime) {
         mSessionId = sessionId;
         mType = type;
         mEventTime = eventTime;
-        mFlags = flags;
-    }
-
-    /** @hide */
-    public ContentCaptureEvent(@NonNull String sessionId, int type, int flags) {
-        this(sessionId, type, System.currentTimeMillis(), flags);
     }
 
     /** @hide */
     public ContentCaptureEvent(@NonNull String sessionId, int type) {
-        this(sessionId, type, /* flags= */ 0);
+        this(sessionId, type, System.currentTimeMillis());
     }
 
     /** @hide */
@@ -105,6 +106,27 @@
         return this;
     }
 
+    private void setAutofillIds(@NonNull ArrayList<AutofillId> ids) {
+        mIds = Preconditions.checkNotNull(ids);
+    }
+
+    /**
+     * Adds an autofill id to the this event, merging the single id into a list if necessary.
+     * @hide */
+    public ContentCaptureEvent addAutofillId(@NonNull AutofillId id) {
+        if (mIds == null) {
+            mIds = new ArrayList<>();
+            if (mId == null) {
+                Log.w(TAG, "addAutofillId(" + id + ") called without an initial id");
+            } else {
+                mIds.add(mId);
+                mId = null;
+            }
+        }
+        mIds.add(id);
+        return this;
+    }
+
     /**
      * Used by {@link #TYPE_SESSION_STARTED} and {@link #TYPE_SESSION_FINISHED}.
      *
@@ -183,16 +205,6 @@
     }
 
     /**
-     * Gets optional flags associated with the event.
-     *
-     * @return either {@code 0} or
-     * {@link android.view.contentcapture.ContentCaptureSession#FLAG_USER_INPUT}.
-     */
-    public int getFlags() {
-        return mFlags;
-    }
-
-    /**
      * Gets the whole metadata of the node associated with the event.
      *
      * <p>Only set on {@link #TYPE_VIEW_APPEARED} events.
@@ -205,7 +217,9 @@
     /**
      * Gets the {@link AutofillId} of the node associated with the event.
      *
-     * <p>Only set on {@link #TYPE_VIEW_DISAPPEARED} and {@link #TYPE_VIEW_TEXT_CHANGED} events.
+     * <p>Only set on {@link #TYPE_VIEW_DISAPPEARED} (when the event contains just one node - if
+     * it contains more than one, this method returns {@code null} and the actual ids should be
+     * retrived by {@link #getIds()}) and {@link #TYPE_VIEW_TEXT_CHANGED} events.
      */
     @Nullable
     public AutofillId getId() {
@@ -213,6 +227,17 @@
     }
 
     /**
+     * Gets the {@link AutofillId AutofillIds} of the nodes associated with the event.
+     *
+     * <p>Only set on {@link #TYPE_VIEW_DISAPPEARED}, when the event contains more than one node
+     * (if it contains just one node, it's returned by {@link #getId()} instead.
+     */
+    @Nullable
+    public List<AutofillId> getIds() {
+        return mIds;
+    }
+
+    /**
      * Gets the current text of the node associated with the event.
      *
      * <p>Only set on {@link #TYPE_VIEW_TEXT_CHANGED} events.
@@ -226,12 +251,12 @@
     public void dump(@NonNull PrintWriter pw) {
         pw.print("type="); pw.print(getTypeAsString(mType));
         pw.print(", time="); pw.print(mEventTime);
-        if (mFlags > 0) {
-            pw.print(", flags="); pw.print(mFlags);
-        }
         if (mId != null) {
             pw.print(", id="); pw.print(mId);
         }
+        if (mIds != null) {
+            pw.print(", ids="); pw.print(mIds);
+        }
         if (mNode != null) {
             pw.print(", mNode.id="); pw.print(mNode.getAutofillId());
         }
@@ -255,12 +280,12 @@
         if (mType == TYPE_SESSION_STARTED && mParentSessionId != null) {
             string.append(", parent=").append(mParentSessionId);
         }
-        if (mFlags > 0) {
-            string.append(", flags=").append(mFlags);
-        }
         if (mId != null) {
             string.append(", id=").append(mId);
         }
+        if (mIds != null) {
+            string.append(", ids=").append(mIds);
+        }
         if (mNode != null) {
             final String className = mNode.getClassName();
             if (mNode != null) {
@@ -281,8 +306,8 @@
         parcel.writeString(mSessionId);
         parcel.writeInt(mType);
         parcel.writeLong(mEventTime);
-        parcel.writeInt(mFlags);
         parcel.writeParcelable(mId, flags);
+        parcel.writeTypedList(mIds);
         ViewNode.writeToParcel(parcel, mNode, flags);
         parcel.writeCharSequence(mText);
         if (mType == TYPE_SESSION_STARTED || mType == TYPE_SESSION_FINISHED) {
@@ -301,13 +326,15 @@
             final String sessionId = parcel.readString();
             final int type = parcel.readInt();
             final long eventTime  = parcel.readLong();
-            final int flags = parcel.readInt();
-            final ContentCaptureEvent event =
-                    new ContentCaptureEvent(sessionId, type, eventTime, flags);
+            final ContentCaptureEvent event = new ContentCaptureEvent(sessionId, type, eventTime);
             final AutofillId id = parcel.readParcelable(null);
             if (id != null) {
                 event.setAutofillId(id);
             }
+            final ArrayList<AutofillId> ids = parcel.createTypedArrayList(AutofillId.CREATOR);
+            if (ids != null) {
+                event.setAutofillIds(ids);
+            }
             final ViewNode node = ViewNode.readFromParcel(parcel);
             if (node != null) {
                 event.setViewNode(node);
diff --git a/core/java/android/view/contentcapture/ContentCaptureSession.java b/core/java/android/view/contentcapture/ContentCaptureSession.java
index 7fb1fdd..b620ab1 100644
--- a/core/java/android/view/contentcapture/ContentCaptureSession.java
+++ b/core/java/android/view/contentcapture/ContentCaptureSession.java
@@ -51,12 +51,6 @@
     private static final String TAG = ContentCaptureSession.class.getSimpleName();
 
     /**
-     * Used on {@link #notifyViewTextChanged(AutofillId, CharSequence, int)} to indicate that the
-     * text change was caused by user input (for example, through IME).
-     */
-    public static final int FLAG_USER_INPUT = 0x1;
-
-    /**
      * Initial state, when there is no session.
      *
      * @hide
@@ -363,8 +357,8 @@
         Preconditions.checkArgument(!ArrayUtils.isEmpty(virtualIds), "virtual ids cannot be empty");
         if (!isContentCaptureEnabled()) return;
 
-        // TODO(b/121050915): create a new VIEWS_DISAPPEARED event type, which could also be used
-        // to batch delete non-virtual views
+        // TODO(b/123036895): use a internalNotifyViewsDisappeared that optimizes how the event is
+        // parcelized
         for (int id : virtualIds) {
             internalNotifyViewDisappeared(new AutofillId(hostId, id, getIdAsInt()));
         }
@@ -375,8 +369,7 @@
      *
      * @param id of the node.
      * @param text new text.
-     * @param flags either {@code 0} or {@link #FLAG_USER_INPUT} when the value was explicitly
-     * changed by the user (for example, through the keyboard).
+     * @param flags currently ignored.
      */
     public final void notifyViewTextChanged(@NonNull AutofillId id, @Nullable CharSequence text,
             int flags) {
@@ -384,11 +377,11 @@
 
         if (!isContentCaptureEnabled()) return;
 
-        internalNotifyViewTextChanged(id, text, flags);
+        internalNotifyViewTextChanged(id, text);
     }
 
-    abstract void internalNotifyViewTextChanged(@NonNull AutofillId id, @Nullable CharSequence text,
-            int flags);
+    abstract void internalNotifyViewTextChanged(@NonNull AutofillId id,
+            @Nullable CharSequence text);
 
     /**
      * Creates a {@link ViewStructure} for a "standard" view.
diff --git a/core/java/android/view/contentcapture/MainContentCaptureSession.java b/core/java/android/view/contentcapture/MainContentCaptureSession.java
index f0778fa..103d7e6 100644
--- a/core/java/android/view/contentcapture/MainContentCaptureSession.java
+++ b/core/java/android/view/contentcapture/MainContentCaptureSession.java
@@ -286,6 +286,9 @@
             mEvents = new ArrayList<>(MAX_BUFFER_SIZE);
         }
 
+        // Some type of events can be merged together
+        boolean addEvent = true;
+
         if (!mEvents.isEmpty() && eventType == TYPE_VIEW_TEXT_CHANGED) {
             final ContentCaptureEvent lastEvent = mEvents.get(mEvents.size() - 1);
 
@@ -297,10 +300,24 @@
                             + event.getText());
                 }
                 lastEvent.setText(event.getText());
-            } else {
-                mEvents.add(event);
+                addEvent = false;
             }
-        } else {
+        }
+
+        if (!mEvents.isEmpty() && eventType == TYPE_VIEW_DISAPPEARED) {
+            final ContentCaptureEvent lastEvent = mEvents.get(mEvents.size() - 1);
+            if (lastEvent.getType() == TYPE_VIEW_DISAPPEARED
+                    && event.getSessionId().equals(lastEvent.getSessionId())) {
+                if (VERBOSE) {
+                    Log.v(TAG, "Buffering TYPE_VIEW_DISAPPEARED events for session "
+                            + lastEvent.getSessionId());
+                }
+                lastEvent.addAutofillId(event.getId());
+                addEvent = false;
+            }
+        }
+
+        if (addEvent) {
             mEvents.add(event);
         }
 
@@ -473,9 +490,8 @@
     }
 
     @Override
-    void internalNotifyViewTextChanged(@NonNull AutofillId id, @Nullable CharSequence text,
-            int flags) {
-        notifyViewTextChanged(mId, id, text, flags);
+    void internalNotifyViewTextChanged(@NonNull AutofillId id, @Nullable CharSequence text) {
+        notifyViewTextChanged(mId, id, text);
     }
 
     @Override
@@ -516,9 +532,9 @@
     }
 
     void notifyViewTextChanged(@NonNull String sessionId, @NonNull AutofillId id,
-            @Nullable CharSequence text, int flags) {
+            @Nullable CharSequence text) {
         mHandler.sendMessage(obtainMessage(MainContentCaptureSession::handleSendEvent, this,
-                new ContentCaptureEvent(sessionId, TYPE_VIEW_TEXT_CHANGED, flags).setAutofillId(id)
+                new ContentCaptureEvent(sessionId, TYPE_VIEW_TEXT_CHANGED).setAutofillId(id)
                         .setText(text), /* forceFlush= */ false));
     }
 
diff --git a/core/java/android/view/contentcapture/ViewNode.java b/core/java/android/view/contentcapture/ViewNode.java
index ddfecb0..cbc946b 100644
--- a/core/java/android/view/contentcapture/ViewNode.java
+++ b/core/java/android/view/contentcapture/ViewNode.java
@@ -45,7 +45,6 @@
 public final class ViewNode extends AssistStructure.ViewNode {
 
     private static final String TAG = ViewNode.class.getSimpleName();
-    private static final boolean VERBOSE = false;
 
     private static final long FLAGS_HAS_TEXT = 1L << 0;
     private static final long FLAGS_HAS_COMPLEX_TEXT = 1L << 1;
@@ -69,21 +68,18 @@
     private static final long FLAGS_SELECTED = 1L << 20;
     private static final long FLAGS_ACTIVATED = 1L << 21;
     private static final long FLAGS_OPAQUE = 1L << 22;
-    private static final long FLAGS_HAS_MATRIX = 1L << 23;
-    private static final long FLAGS_HAS_ELEVATION = 1L << 24;
-    private static final long FLAGS_HAS_ALPHA = 1L << 25;
-    private static final long FLAGS_HAS_CONTENT_DESCRIPTION = 1L << 26;
-    private static final long FLAGS_HAS_EXTRAS = 1L << 27;
-    private static final long FLAGS_HAS_LOCALE_LIST = 1L << 28;
-    private static final long FLAGS_HAS_INPUT_TYPE = 1L << 29;
-    private static final long FLAGS_HAS_MIN_TEXT_EMS = 1L << 30;
-    private static final long FLAGS_HAS_MAX_TEXT_EMS = 1L << 31;
-    private static final long FLAGS_HAS_MAX_TEXT_LENGTH = 1L << 32;
-    private static final long FLAGS_HAS_TEXT_ID_ENTRY = 1L << 33;
-    private static final long FLAGS_HAS_AUTOFILL_TYPE = 1L << 34;
-    private static final long FLAGS_HAS_AUTOFILL_VALUE = 1L << 35;
-    private static final long FLAGS_HAS_AUTOFILL_HINTS = 1L << 36;
-    private static final long FLAGS_HAS_AUTOFILL_OPTIONS = 1L << 37;
+    private static final long FLAGS_HAS_CONTENT_DESCRIPTION = 1L << 23;
+    private static final long FLAGS_HAS_EXTRAS = 1L << 24;
+    private static final long FLAGS_HAS_LOCALE_LIST = 1L << 25;
+    private static final long FLAGS_HAS_INPUT_TYPE = 1L << 26;
+    private static final long FLAGS_HAS_MIN_TEXT_EMS = 1L << 27;
+    private static final long FLAGS_HAS_MAX_TEXT_EMS = 1L << 28;
+    private static final long FLAGS_HAS_MAX_TEXT_LENGTH = 1L << 29;
+    private static final long FLAGS_HAS_TEXT_ID_ENTRY = 1L << 30;
+    private static final long FLAGS_HAS_AUTOFILL_TYPE = 1L << 31;
+    private static final long FLAGS_HAS_AUTOFILL_VALUE = 1L << 32;
+    private static final long FLAGS_HAS_AUTOFILL_HINTS = 1L << 33;
+    private static final long FLAGS_HAS_AUTOFILL_OPTIONS = 1L << 34;
 
     /** Flags used to optimize what's written to the parcel */
     private long mFlags;
@@ -103,9 +99,6 @@
     private int mScrollY;
     private int mWidth;
     private int mHeight;
-    private Matrix mMatrix;
-    private float mElevation;
-    private float mAlpha = 1.0f;
     private CharSequence mContentDescription;
     private Bundle mExtras;
     private LocaleList mLocaleList;
@@ -165,18 +158,6 @@
             mScrollX = parcel.readInt();
             mScrollY = parcel.readInt();
         }
-        if ((nodeFlags & FLAGS_HAS_MATRIX) != 0) {
-            mMatrix = new Matrix();
-            final float[] tmpMatrix = new float[9];
-            parcel.readFloatArray(tmpMatrix);
-            mMatrix.setValues(tmpMatrix);
-        }
-        if ((nodeFlags & FLAGS_HAS_ELEVATION) != 0) {
-            mElevation = parcel.readFloat();
-        }
-        if ((nodeFlags & FLAGS_HAS_ALPHA) != 0) {
-            mAlpha = parcel.readFloat();
-        }
         if ((nodeFlags & FLAGS_HAS_CONTENT_DESCRIPTION) != 0) {
             mContentDescription = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel);
         }
@@ -355,21 +336,6 @@
     }
 
     @Override
-    public Matrix getTransformation() {
-        return mMatrix;
-    }
-
-    @Override
-    public float getElevation() {
-        return mElevation;
-    }
-
-    @Override
-    public float getAlpha() {
-        return mAlpha;
-    }
-
-    @Override
     public CharSequence getContentDescription() {
         return mContentDescription;
     }
@@ -509,15 +475,6 @@
         if (mScrollX != 0 || mScrollY != 0) {
             nodeFlags |= FLAGS_HAS_SCROLL;
         }
-        if (mMatrix != null) {
-            nodeFlags |= FLAGS_HAS_MATRIX;
-        }
-        if (mElevation != 0) {
-            nodeFlags |= FLAGS_HAS_ELEVATION;
-        }
-        if (mAlpha != 1.0f) {
-            nodeFlags |= FLAGS_HAS_ALPHA;
-        }
         if (mContentDescription != null) {
             nodeFlags |= FLAGS_HAS_CONTENT_DESCRIPTION;
         }
@@ -591,18 +548,6 @@
             parcel.writeInt(mScrollX);
             parcel.writeInt(mScrollY);
         }
-        if ((nodeFlags & FLAGS_HAS_MATRIX) != 0) {
-            //TODO(b/122484602): use a singleton tmpMatrix (if logic is not moved to superclass)
-            final float[] tmpMatrix = new float[9];
-            mMatrix.getValues(tmpMatrix);
-            parcel.writeFloatArray(tmpMatrix);
-        }
-        if ((nodeFlags & FLAGS_HAS_ELEVATION) != 0) {
-            parcel.writeFloat(mElevation);
-        }
-        if ((nodeFlags & FLAGS_HAS_ALPHA) != 0) {
-            parcel.writeFloat(mAlpha);
-        }
         if ((nodeFlags & FLAGS_HAS_CONTENT_DESCRIPTION) != 0) {
             TextUtils.writeToParcel(mContentDescription, parcel, 0);
         }
@@ -702,21 +647,17 @@
 
         @Override
         public void setTransformation(Matrix matrix) {
-            if (matrix == null) {
-                mNode.mMatrix = null;
-            } else {
-                mNode.mMatrix = new Matrix(matrix);
-            }
+            Log.w(TAG, "setTransformation() is not supported");
         }
 
         @Override
         public void setElevation(float elevation) {
-            mNode.mElevation = elevation;
+            Log.w(TAG, "setElevation() is not supported");
         }
 
         @Override
         public void setAlpha(float alpha) {
-            mNode.mAlpha = alpha;
+            Log.w(TAG, "setAlpha() is not supported");
         }
 
         @Override
diff --git a/core/java/android/view/inputmethod/EditorInfo.java b/core/java/android/view/inputmethod/EditorInfo.java
index 28d9fcf..f99afe6 100644
--- a/core/java/android/view/inputmethod/EditorInfo.java
+++ b/core/java/android/view/inputmethod/EditorInfo.java
@@ -16,11 +16,15 @@
 
 package android.view.inputmethod;
 
+import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL;
+
 import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
 import android.os.Bundle;
 import android.os.LocaleList;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.os.UserHandle;
 import android.text.InputType;
 import android.text.TextUtils;
 import android.util.Printer;
@@ -472,6 +476,26 @@
     public String[] contentMimeTypes = null;
 
     /**
+     * If not {@code null}, this editor needs to talk to IMEs that run for the specified user, no
+     * matter what user ID the calling process has.
+     *
+     * <p>Note: This field is silently ignored when:</p>
+     * <ul>
+     *     <li>{@link android.view.inputmethod.InputMethodSystemProperty#PER_PROFILE_IME_ENABLED} is
+     *     {@code false}.</li>
+     *     <li>{@link android.view.inputmethod.InputMethodSystemProperty#MULTI_CLIENT_IME_ENABLED}
+     *     is {@code true}.</li>
+     * </ul>
+     *
+     * <p>Note also that pseudo handles such as {@link UserHandle#ALL} are not supported.</p>
+     *
+     * @hide
+     */
+    @RequiresPermission(INTERACT_ACROSS_USERS_FULL)
+    @Nullable
+    public UserHandle targetInputMethodUser = null;
+
+    /**
      * Ensure that the data in this EditorInfo is compatible with an application
      * that was developed against the given target API version.  This can
      * impact the following input types:
@@ -527,6 +551,9 @@
         pw.println(prefix + "extras=" + extras);
         pw.println(prefix + "hintLocales=" + hintLocales);
         pw.println(prefix + "contentMimeTypes=" + Arrays.toString(contentMimeTypes));
+        if (targetInputMethodUser != null) {
+            pw.println(prefix + "targetInputMethodUserId=" + targetInputMethodUser.getIdentifier());
+        }
     }
 
     /**
@@ -556,6 +583,7 @@
             LocaleList.getEmptyLocaleList().writeToParcel(dest, flags);
         }
         dest.writeStringArray(contentMimeTypes);
+        UserHandle.writeToParcel(targetInputMethodUser, dest);
     }
 
     /**
@@ -582,6 +610,7 @@
                     LocaleList hintLocales = LocaleList.CREATOR.createFromParcel(source);
                     res.hintLocales = hintLocales.isEmpty() ? null : hintLocales;
                     res.contentMimeTypes = source.readStringArray();
+                    res.targetInputMethodUser = UserHandle.readFromParcel(source);
                     return res;
                 }
 
diff --git a/core/java/android/view/inspector/InspectableNodeName.java b/core/java/android/view/inspector/InspectableNodeName.java
index ea94ad4..7b9a507 100644
--- a/core/java/android/view/inspector/InspectableNodeName.java
+++ b/core/java/android/view/inspector/InspectableNodeName.java
@@ -19,6 +19,8 @@
 import static java.lang.annotation.ElementType.TYPE;
 import static java.lang.annotation.RetentionPolicy.SOURCE;
 
+import android.annotation.TestApi;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
@@ -39,6 +41,7 @@
  */
 @Target({TYPE})
 @Retention(SOURCE)
+@TestApi
 public @interface InspectableNodeName {
     /**
      * The display name for nodes of this type.
diff --git a/core/java/android/view/inspector/InspectableProperty.java b/core/java/android/view/inspector/InspectableProperty.java
index e2a763e..355ff1d 100644
--- a/core/java/android/view/inspector/InspectableProperty.java
+++ b/core/java/android/view/inspector/InspectableProperty.java
@@ -20,7 +20,8 @@
 import static java.lang.annotation.ElementType.TYPE;
 import static java.lang.annotation.RetentionPolicy.SOURCE;
 
-import android.content.res.ResourceId;
+import android.annotation.TestApi;
+import android.content.res.Resources;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
@@ -40,6 +41,7 @@
  */
 @Target({METHOD})
 @Retention(SOURCE)
+@TestApi
 public @interface InspectableProperty {
     /**
      * The name of the property.
@@ -57,16 +59,16 @@
      * If left as {ID_NULL}, and {@link #hasAttributeId()} is true, the attribute ID will be
      * inferred from {@link #name()}.
      *
-     * @return The attribute ID of the property or {@link ResourceId#ID_NULL}
+     * @return The attribute ID of the property or {@link Resources#ID_NULL}
      */
-    int attributeId() default ResourceId.ID_NULL;
+    int attributeId() default Resources.ID_NULL;
 
     /**
      * If this property has an attribute ID.
      *
      * Set to false if the annotated property does not have an attribute ID, that is, it is not
      * inflated from an XML attribute. This will prevent the automatic inference of the attribute
-     * ID if {@link #attributeId()} is set to {@link ResourceId#ID_NULL}.
+     * ID if {@link #attributeId()} is set to {@link Resources#ID_NULL}.
      *
      * @return Whether to infer an attribute ID if not supplied
      */
@@ -86,7 +88,6 @@
      *
      * @return An array of {@link EnumMap}, empty if not applicable
      * @see android.annotation.IntDef
-     * @see IntEnumMapping
      */
     EnumMap[] enumMapping() default {};
 
@@ -109,6 +110,7 @@
      */
     @Target({TYPE})
     @Retention(SOURCE)
+    @TestApi
     @interface EnumMap {
         /**
          * The string name of this enumeration value.
@@ -133,6 +135,7 @@
      */
     @Target({TYPE})
     @Retention(SOURCE)
+    @TestApi
     @interface FlagMap {
         /**
          * The string name of this flag.
@@ -167,15 +170,22 @@
      *
      * @hide
      */
+    @TestApi
     enum ValueType {
         /**
          * No special handling, property is considered to be a numeric value.
+         *
+         * @hide
          */
+        @TestApi
         NONE,
 
         /**
          * The default the annotation processor infers the value type from context.
+         *
+         * @hide
          */
+        @TestApi
         INFERRED,
 
         /**
@@ -184,7 +194,9 @@
          * This is inferred if {@link #enumMapping()} is specified.
          *
          * @see EnumMap
+         * @hide
          */
+        @TestApi
         INT_ENUM,
 
         /**
@@ -193,7 +205,9 @@
          * This is inferred if {@link #flagMapping()} is specified.
          *
          * @see FlagMap
+         * @hide
          */
+        @TestApi
         INT_FLAG,
 
         /**
@@ -203,7 +217,9 @@
          * {@link android.annotation.ColorLong} on the getter method.
          *
          * @see android.graphics.Color
+         * @hide
          */
+        @TestApi
         COLOR,
 
         /**
@@ -212,7 +228,9 @@
          * This type is not inferred, and is non-trivial to represent using {@link FlagMap}.
          *
          * @see android.view.Gravity
+         * @hide
          */
+        @TestApi
         GRAVITY
     }
 }
diff --git a/core/java/android/view/textservice/SpellCheckerSession.java b/core/java/android/view/textservice/SpellCheckerSession.java
index 9733701..f553ca5 100644
--- a/core/java/android/view/textservice/SpellCheckerSession.java
+++ b/core/java/android/view/textservice/SpellCheckerSession.java
@@ -27,7 +27,6 @@
 
 import com.android.internal.textservice.ISpellCheckerSession;
 import com.android.internal.textservice.ISpellCheckerSessionListener;
-import com.android.internal.textservice.ITextServicesManager;
 import com.android.internal.textservice.ITextServicesSessionListener;
 
 import dalvik.system.CloseGuard;
@@ -96,7 +95,7 @@
     private static final int MSG_ON_GET_SUGGESTION_MULTIPLE_FOR_SENTENCE = 2;
 
     private final InternalListener mInternalListener;
-    private final ITextServicesManager mTextServicesManager;
+    private final TextServicesManager mTextServicesManager;
     private final SpellCheckerInfo mSpellCheckerInfo;
     @UnsupportedAppUsage
     private final SpellCheckerSessionListener mSpellCheckerSessionListener;
@@ -124,7 +123,7 @@
      * @hide
      */
     public SpellCheckerSession(
-            SpellCheckerInfo info, ITextServicesManager tsm, SpellCheckerSessionListener listener) {
+            SpellCheckerInfo info, TextServicesManager tsm, SpellCheckerSessionListener listener) {
         if (info == null || listener == null || tsm == null) {
             throw new NullPointerException();
         }
@@ -166,12 +165,8 @@
      */
     public void close() {
         mGuard.close();
-        try {
-            mSpellCheckerSessionListenerImpl.close();
-            mTextServicesManager.finishSpellCheckerService(mSpellCheckerSessionListenerImpl);
-        } catch (RemoteException e) {
-            // do nothing
-        }
+        mSpellCheckerSessionListenerImpl.close();
+        mTextServicesManager.finishSpellCheckerService(mSpellCheckerSessionListenerImpl);
     }
 
     /**
diff --git a/core/java/android/view/textservice/TextServicesManager.java b/core/java/android/view/textservice/TextServicesManager.java
index 5dc8b19..9ff64d9 100644
--- a/core/java/android/view/textservice/TextServicesManager.java
+++ b/core/java/android/view/textservice/TextServicesManager.java
@@ -16,16 +16,20 @@
 
 package android.view.textservice;
 
+import android.annotation.NonNull;
 import android.annotation.SystemService;
 import android.annotation.UnsupportedAppUsage;
+import android.annotation.UserIdInt;
 import android.content.Context;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.ServiceManager.ServiceNotFoundException;
+import android.os.UserHandle;
 import android.util.Log;
 import android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener;
 
+import com.android.internal.textservice.ISpellCheckerSessionListener;
 import com.android.internal.textservice.ITextServicesManager;
 
 import java.util.Locale;
@@ -67,17 +71,41 @@
     private static final String TAG = TextServicesManager.class.getSimpleName();
     private static final boolean DBG = false;
 
+    /**
+     * @deprecated Do not use. Just kept because of {@link UnsupportedAppUsage} in
+     * {@link #getInstance()}.
+     */
+    @Deprecated
     private static TextServicesManager sInstance;
 
     private final ITextServicesManager mService;
 
-    private TextServicesManager() throws ServiceNotFoundException {
+    @UserIdInt
+    private final int mUserId;
+
+    private TextServicesManager(@UserIdInt int userId) throws ServiceNotFoundException {
         mService = ITextServicesManager.Stub.asInterface(
                 ServiceManager.getServiceOrThrow(Context.TEXT_SERVICES_MANAGER_SERVICE));
+        mUserId = userId;
     }
 
     /**
-     * Retrieve the global TextServicesManager instance, creating it if it doesn't already exist.
+     * The factory method of {@link TextServicesManager}.
+     *
+     * @param context {@link Context} from which {@link TextServicesManager} should be instantiated.
+     * @return {@link TextServicesManager} that is associated with {@link Context#getUserId()}.
+     * @throws ServiceNotFoundException When {@link TextServicesManager} is not available.
+     * @hide
+     */
+    @NonNull
+    public static TextServicesManager createInstance(@NonNull Context context)
+            throws ServiceNotFoundException {
+        return new TextServicesManager(context.getUserId());
+    }
+
+    /**
+     * @deprecated Do not use. Just kept because of {@link UnsupportedAppUsage} in
+     * {@link #getInstance()}.
      * @hide
      */
     @UnsupportedAppUsage
@@ -85,7 +113,7 @@
         synchronized (TextServicesManager.class) {
             if (sInstance == null) {
                 try {
-                    sInstance = new TextServicesManager();
+                    sInstance = new TextServicesManager(UserHandle.myUserId());
                 } catch (ServiceNotFoundException e) {
                     throw new IllegalStateException(e);
                 }
@@ -136,7 +164,7 @@
 
         final SpellCheckerInfo sci;
         try {
-            sci = mService.getCurrentSpellChecker(null);
+            sci = mService.getCurrentSpellChecker(mUserId, null);
         } catch (RemoteException e) {
             return null;
         }
@@ -174,9 +202,9 @@
         if (subtypeInUse == null) {
             return null;
         }
-        final SpellCheckerSession session = new SpellCheckerSession(sci, mService, listener);
+        final SpellCheckerSession session = new SpellCheckerSession(sci, this, listener);
         try {
-            mService.getSpellCheckerService(sci.getId(), subtypeInUse.getLocale(),
+            mService.getSpellCheckerService(mUserId, sci.getId(), subtypeInUse.getLocale(),
                     session.getTextServicesSessionListener(),
                     session.getSpellCheckerSessionListener(), bundle);
         } catch (RemoteException e) {
@@ -191,7 +219,7 @@
     @UnsupportedAppUsage
     public SpellCheckerInfo[] getEnabledSpellCheckers() {
         try {
-            final SpellCheckerInfo[] retval = mService.getEnabledSpellCheckers();
+            final SpellCheckerInfo[] retval = mService.getEnabledSpellCheckers(mUserId);
             if (DBG) {
                 Log.d(TAG, "getEnabledSpellCheckers: " + (retval != null ? retval.length : "null"));
             }
@@ -208,7 +236,7 @@
     public SpellCheckerInfo getCurrentSpellChecker() {
         try {
             // Passing null as a locale for ICS
-            return mService.getCurrentSpellChecker(null);
+            return mService.getCurrentSpellChecker(mUserId, null);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -221,7 +249,7 @@
     public SpellCheckerSubtype getCurrentSpellCheckerSubtype(
             boolean allowImplicitlySelectedSubtype) {
         try {
-            return mService.getCurrentSpellCheckerSubtype(allowImplicitlySelectedSubtype);
+            return mService.getCurrentSpellCheckerSubtype(mUserId, allowImplicitlySelectedSubtype);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -233,7 +261,15 @@
     @UnsupportedAppUsage
     public boolean isSpellCheckerEnabled() {
         try {
-            return mService.isSpellCheckerEnabled();
+            return mService.isSpellCheckerEnabled(mUserId);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    void finishSpellCheckerService(ISpellCheckerSessionListener listener) {
+        try {
+            mService.finishSpellCheckerService(mUserId, listener);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
diff --git a/core/java/android/webkit/WebViewClient.java b/core/java/android/webkit/WebViewClient.java
index 300bb6f..090640e 100644
--- a/core/java/android/webkit/WebViewClient.java
+++ b/core/java/android/webkit/WebViewClient.java
@@ -379,11 +379,16 @@
 
     /**
      * Notify the host application that an SSL error occurred while loading a
-     * resource. The host application must call either handler.cancel() or
-     * handler.proceed(). Note that the decision may be retained for use in
+     * resource. The host application must call either {@link SslErrorHandler#cancel} or
+     * {@link SslErrorHandler#proceed}. Note that the decision may be retained for use in
      * response to future SSL errors. The default behavior is to cancel the
      * load.
      * <p>
+     * This API is only called for recoverable SSL certificate errors. In the case of
+     * non-recoverable errors (such as when the server fails the client), WebView will call {@link
+     * #onReceivedError(WebView, WebResourceRequest, WebResourceError)} with {@link
+     * #ERROR_FAILED_SSL_HANDSHAKE}.
+     * <p>
      * Applications are advised not to prompt the user about SSL errors, as
      * the user is unlikely to be able to make an informed security decision
      * and WebView does not provide any UI for showing the details of the
@@ -391,10 +396,10 @@
      * <p>
      * Application overrides of this method may display custom error pages or
      * silently log issues, but it is strongly recommended to always call
-     * handler.cancel() and never allow proceeding past errors.
+     * {@link SslErrorHandler#cancel} and never allow proceeding past errors.
      *
      * @param view The WebView that is initiating the callback.
-     * @param handler An SslErrorHandler object that will handle the user's
+     * @param handler An {@link SslErrorHandler} that will handle the user's
      *            response.
      * @param error The SSL error object.
      */
diff --git a/core/java/android/webkit/WebViewZygote.java b/core/java/android/webkit/WebViewZygote.java
index 9f7aa6a..29b3b3c 100644
--- a/core/java/android/webkit/WebViewZygote.java
+++ b/core/java/android/webkit/WebViewZygote.java
@@ -160,7 +160,9 @@
                     "webview_zygote",  // seInfo
                     sPackage.applicationInfo.primaryCpuAbi,  // abi
                     TextUtils.join(",", Build.SUPPORTED_ABIS),
-                    null);  // instructionSet
+                    null, // instructionSet
+                    Process.FIRST_ISOLATED_UID,
+                    Process.LAST_ISOLATED_UID);
 
             // All the work below is usually done by LoadedApk, but the zygote can't talk to
             // PackageManager or construct a LoadedApk since it's single-threaded pre-fork, so
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index 3c32bb2..55364ec 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -2394,6 +2394,17 @@
         }
     }
 
+    /**
+     * Called when {@link TextView#mTextOperationUser} has changed.
+     *
+     * <p>Any user-specific resources need to be refreshed here.</p>
+     */
+    final void onTextOperationUserChanged() {
+        if (mSpellChecker != null) {
+            mSpellChecker.resetSession();
+        }
+    }
+
     protected void stopTextActionMode() {
         if (mTextActionMode != null) {
             // This will hide the mSelectionModifierCursorController
diff --git a/core/java/android/widget/SpellChecker.java b/core/java/android/widget/SpellChecker.java
index fc1172e..d4aad75 100644
--- a/core/java/android/widget/SpellChecker.java
+++ b/core/java/android/widget/SpellChecker.java
@@ -16,7 +16,7 @@
 
 package android.widget;
 
-import android.content.Context;
+import android.annotation.Nullable;
 import android.text.Editable;
 import android.text.Selection;
 import android.text.Spanned;
@@ -93,6 +93,7 @@
     // concurrently due to the asynchronous nature of onGetSuggestions.
     private WordIterator mWordIterator;
 
+    @Nullable
     private TextServicesManager mTextServicesManager;
 
     private Runnable mSpellRunnable;
@@ -114,12 +115,12 @@
         mCookie = hashCode();
     }
 
-    private void resetSession() {
+    void resetSession() {
         closeSession();
 
-        mTextServicesManager = (TextServicesManager) mTextView.getContext().
-                getSystemService(Context.TEXT_SERVICES_MANAGER_SERVICE);
+        mTextServicesManager = mTextView.getTextServicesManagerForUser();
         if (mCurrentLocale == null
+                || mTextServicesManager == null
                 || mTextView.length() == 0
                 || !mTextServicesManager.isSpellCheckerEnabled()
                 || mTextServicesManager.getCurrentSpellCheckerSubtype(true) == null) {
@@ -226,7 +227,8 @@
             start = 0;
             end = mTextView.getText().length();
         } else {
-            final boolean spellCheckerActivated = mTextServicesManager.isSpellCheckerEnabled();
+            final boolean spellCheckerActivated =
+                    mTextServicesManager != null && mTextServicesManager.isSpellCheckerEnabled();
             if (isSessionActive != spellCheckerActivated) {
                 // Spell checker has been turned of or off since last spellCheck
                 resetSession();
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 0d16998..1085e5d 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -16,6 +16,7 @@
 
 package android.widget;
 
+import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL;
 import static android.view.accessibility.AccessibilityNodeInfo.EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH;
 import static android.view.accessibility.AccessibilityNodeInfo.EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX;
 import static android.view.accessibility.AccessibilityNodeInfo.EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY;
@@ -31,6 +32,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.Px;
+import android.annotation.RequiresPermission;
 import android.annotation.Size;
 import android.annotation.StringRes;
 import android.annotation.StyleRes;
@@ -45,10 +47,10 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.UndoManager;
+import android.content.pm.PackageManager;
 import android.content.res.ColorStateList;
 import android.content.res.CompatibilityInfo;
 import android.content.res.Configuration;
-import android.content.res.ResourceId;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.content.res.XmlResourceParser;
@@ -74,7 +76,9 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.ParcelableParcel;
+import android.os.Process;
 import android.os.SystemClock;
+import android.os.UserHandle;
 import android.provider.Settings;
 import android.text.BoringLayout;
 import android.text.DynamicLayout;
@@ -195,6 +199,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Locale;
+import java.util.Objects;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Consumer;
@@ -786,6 +791,19 @@
 
     private InputFilter[] mFilters = NO_FILTERS;
 
+    /**
+     * {@link UserHandle} that represents the logical owner of the text. {@code null} when it is
+     * the same as {@link Process#myUserHandle()}.
+     *
+     * <p>Most of applications should not worry about this. Some privileged apps that host UI for
+     * other apps may need to set this so that the system can use right user's resources and
+     * services such as input methods and spell checkers.</p>
+     *
+     * @see #setTextOperationUser(UserHandle)
+     */
+    @Nullable
+    private UserHandle mTextOperationUser;
+
     private volatile Locale mCurrentSpellCheckerLocaleCache;
 
     // It is possible to have a selection even when mEditor is null (programmatically set, like when
@@ -889,7 +907,7 @@
     // sanitize autofill requests.
     private boolean mTextSetFromXmlOrResourceId = false;
     // Resource id used to set the text.
-    private @StringRes int mTextId = ResourceId.ID_NULL;
+    private @StringRes int mTextId = Resources.ID_NULL;
     //
     // End of autofill-related attributes
 
@@ -1180,7 +1198,7 @@
 
                 case com.android.internal.R.styleable.TextView_text:
                     textIsSetFromXml = true;
-                    mTextId = a.getResourceId(attr, ResourceId.ID_NULL);
+                    mTextId = a.getResourceId(attr, Resources.ID_NULL);
                     text = a.getText(attr);
                     break;
 
@@ -8325,6 +8343,7 @@
                 outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_ENTER_ACTION;
             }
             outAttrs.hintText = mHint;
+            outAttrs.targetInputMethodUser = mTextOperationUser;
             if (mText instanceof Editable) {
                 InputConnection ic = new EditableInputConnection(this);
                 outAttrs.initialSelStart = getSelectionStart();
@@ -10902,6 +10921,55 @@
     }
 
     /**
+     * Associate {@link UserHandle} who is considered to be the logical owner of the text shown in
+     * this {@link TextView}.
+     *
+     * <p>Most of applications should not worry about this.  Some privileged apps that host UI for
+     * other apps may need to set this so that the system can user right user's resources and
+     * services such as input methods and spell checkers.</p>
+     *
+     * @param user {@link UserHandle} who is considered to be the owner of the text shown in this
+     *        {@link TextView}. {@code null} to reset {@link #mTextOperationUser}.
+     * @hide
+     */
+    @RequiresPermission(INTERACT_ACROSS_USERS_FULL)
+    public final void setTextOperationUser(@Nullable UserHandle user) {
+        if (Objects.equals(mTextOperationUser, user)) {
+            return;
+        }
+        if (user != null && !Process.myUserHandle().equals(user)) {
+            // Just for preventing people from accidentally using this hidden API without
+            // the required permission.  The same permission is also checked in the system server.
+            if (getContext().checkSelfPermission(INTERACT_ACROSS_USERS_FULL)
+                    != PackageManager.PERMISSION_GRANTED) {
+                throw new SecurityException("INTERACT_ACROSS_USERS_FULL is required."
+                        + " userId=" + user.getIdentifier()
+                        + " callingUserId" + UserHandle.myUserId());
+            }
+        }
+        mTextOperationUser = user;
+        // Invalidate some resources
+        mCurrentSpellCheckerLocaleCache = null;
+        if (mEditor != null) {
+            mEditor.onTextOperationUserChanged();
+        }
+    }
+
+    @Nullable
+    final TextServicesManager getTextServicesManagerForUser() {
+        if (mTextOperationUser == null) {
+            return getContext().getSystemService(TextServicesManager.class);
+        }
+        try {
+            return getContext().createPackageContextAsUser(
+                    "android", 0 /* flags */, mTextOperationUser)
+                    .getSystemService(TextServicesManager.class);
+        } catch (PackageManager.NameNotFoundException e) {
+            return null;
+        }
+    }
+
+    /**
      * This is a temporary method. Future versions may support multi-locale text.
      * Caveat: This method may not return the latest text services locale, but this should be
      * acceptable and it's more important to make this method asynchronous.
@@ -10973,8 +11041,10 @@
 
     @UnsupportedAppUsage
     private void updateTextServicesLocaleLocked() {
-        final TextServicesManager textServicesManager = (TextServicesManager)
-                mContext.getSystemService(Context.TEXT_SERVICES_MANAGER_SERVICE);
+        final TextServicesManager textServicesManager = getTextServicesManagerForUser();
+        if (textServicesManager == null) {
+            return;
+        }
         final SpellCheckerSubtype subtype = textServicesManager.getCurrentSpellCheckerSubtype(true);
         final Locale locale;
         if (subtype != null) {
@@ -11031,7 +11101,7 @@
             if (viewFor == VIEW_STRUCTURE_FOR_AUTOFILL) {
                 structure.setDataIsSensitive(!mTextSetFromXmlOrResourceId);
             }
-            if (mTextId != ResourceId.ID_NULL) {
+            if (mTextId != Resources.ID_NULL) {
                 try {
                     structure.setTextIdEntry(getResources().getResourceEntryName(mTextId));
                 } catch (Resources.NotFoundException e) {
diff --git a/core/java/com/android/internal/app/SuspendedAppActivity.java b/core/java/com/android/internal/app/SuspendedAppActivity.java
index 498de53..70935d4 100644
--- a/core/java/com/android/internal/app/SuspendedAppActivity.java
+++ b/core/java/com/android/internal/app/SuspendedAppActivity.java
@@ -16,7 +16,7 @@
 
 package com.android.internal.app;
 
-import static android.content.res.ResourceId.ID_NULL;
+import static android.content.res.Resources.ID_NULL;
 
 import android.Manifest;
 import android.app.AlertDialog;
diff --git a/core/java/com/android/internal/os/ChildZygoteInit.java b/core/java/com/android/internal/os/ChildZygoteInit.java
index f90cd02..a052a3b 100644
--- a/core/java/com/android/internal/os/ChildZygoteInit.java
+++ b/core/java/com/android/internal/os/ChildZygoteInit.java
@@ -15,6 +15,7 @@
  */
 package com.android.internal.os;
 
+import android.os.Process;
 import android.system.ErrnoException;
 import android.system.Os;
 import android.system.OsConstants;
@@ -49,6 +50,22 @@
         return null;
     }
 
+    static int parseIntFromArg(String[] argv, String desiredArg) {
+        int value = -1;
+        for (String arg : argv) {
+            if (arg.startsWith(desiredArg)) {
+                String valueStr = arg.substring(arg.indexOf('=') + 1);
+                try {
+                    value = Integer.parseInt(valueStr);
+                } catch (NumberFormatException e) {
+                    throw new IllegalArgumentException("Invalid int argument: "
+                            + valueStr, e);
+                }
+            }
+        }
+        return value;
+    }
+
     /**
      * Starts a ZygoteServer and listens for requests
      *
@@ -72,6 +89,27 @@
             throw new RuntimeException("Failed to set PR_SET_NO_NEW_PRIVS", ex);
         }
 
+        int uidGidMin = parseIntFromArg(args, Zygote.CHILD_ZYGOTE_UID_RANGE_START);
+        int uidGidMax = parseIntFromArg(args, Zygote.CHILD_ZYGOTE_UID_RANGE_END);
+        if (uidGidMin == -1 || uidGidMax == -1) {
+            throw new RuntimeException("Couldn't parse UID range start/end");
+        }
+        if (uidGidMin > uidGidMax) {
+            throw new RuntimeException("Passed in UID range is invalid, min > max.");
+        }
+
+        // Verify the UIDs are in the isolated UID range, as that's the only thing that we should
+        // be forking right now
+        if (!Process.isIsolated(uidGidMin) || !Process.isIsolated(uidGidMax)) {
+            throw new RuntimeException("Passed in UID range does not map to isolated processes.");
+        }
+
+        /**
+         * Install a seccomp filter that ensure this Zygote can only setuid()/setgid()
+         * to the passed in range.
+         */
+        Zygote.nativeInstallSeccompUidGidFilter(uidGidMin, uidGidMax);
+
         final Runnable caller;
         try {
             server.registerServerSocketAtAbstractName(socketName);
diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java
index d720c68..705bae4 100644
--- a/core/java/com/android/internal/os/Zygote.java
+++ b/core/java/com/android/internal/os/Zygote.java
@@ -82,6 +82,11 @@
     /** Read-write external storage should be mounted. */
     public static final int MOUNT_EXTERNAL_WRITE = IVold.REMOUNT_MODE_WRITE;
     /**
+     * Mount mode for apps that are already installed on the device before the isolated_storage
+     * feature is enabled.
+     */
+    public static final int MOUNT_EXTERNAL_LEGACY = IVold.REMOUNT_MODE_LEGACY;
+    /**
      * Mount mode for package installers which should give them access to
      * all obb dirs in addition to their package sandboxes
      */
@@ -104,6 +109,20 @@
      */
     public static final String CHILD_ZYGOTE_ABI_LIST_ARG = "--abi-list=";
 
+    /**
+     * An extraArg passed when a zygote process is forking a child-zygote, specifying the
+     * start of the UID range the children of the Zygote may setuid()/setgid() to. This
+     * will be enforced with a seccomp filter.
+     */
+    public static final String CHILD_ZYGOTE_UID_RANGE_START = "--uid-range-start=";
+
+    /**
+     * An extraArg passed when a zygote process is forking a child-zygote, specifying the
+     * end of the UID range the children of the Zygote may setuid()/setgid() to. This
+     * will be enforced with a seccomp filter.
+     */
+    public static final String CHILD_ZYGOTE_UID_RANGE_END = "--uid-range-end=";
+
     private Zygote() {}
 
     /** Called for some security initialization before any fork. */
@@ -222,6 +241,13 @@
     native protected static void nativeAllowFileAcrossFork(String path);
 
     /**
+     * Installs a seccomp filter that limits setresuid()/setresgid() to the passed-in range
+     * @param uidGidMin The smallest allowed uid/gid
+     * @param uidGidMax The largest allowed uid/gid
+     */
+    native protected static void nativeInstallSeccompUidGidFilter(int uidGidMin, int uidGidMax);
+
+    /**
      * Zygote unmount storage space on initializing.
      * This method is called once.
      */
diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java
index 5990d72..ced798c 100644
--- a/core/java/com/android/internal/os/ZygoteConnection.java
+++ b/core/java/com/android/internal/os/ZygoteConnection.java
@@ -688,8 +688,10 @@
                     mountExternal = Zygote.MOUNT_EXTERNAL_WRITE;
                 } else if (arg.equals("--mount-external-full")) {
                     mountExternal = Zygote.MOUNT_EXTERNAL_FULL;
-                }  else if (arg.equals("--mount-external-installer")) {
+                } else if (arg.equals("--mount-external-installer")) {
                     mountExternal = Zygote.MOUNT_EXTERNAL_INSTALLER;
+                } else if (arg.equals("--mount-external-legacy")) {
+                    mountExternal = Zygote.MOUNT_EXTERNAL_LEGACY;
                 } else if (arg.equals("--query-abi-list")) {
                     abiListQuery = true;
                 } else if (arg.equals("--get-pid")) {
diff --git a/core/java/com/android/internal/textservice/ITextServicesManager.aidl b/core/java/com/android/internal/textservice/ITextServicesManager.aidl
index 20f2aa0..8022949 100644
--- a/core/java/com/android/internal/textservice/ITextServicesManager.aidl
+++ b/core/java/com/android/internal/textservice/ITextServicesManager.aidl
@@ -29,12 +29,13 @@
  * @hide
  */
 interface ITextServicesManager {
-    SpellCheckerInfo getCurrentSpellChecker(String locale);
-    SpellCheckerSubtype getCurrentSpellCheckerSubtype(boolean allowImplicitlySelectedSubtype);
-    oneway void getSpellCheckerService(String sciId, in String locale,
+    SpellCheckerInfo getCurrentSpellChecker(int userId, String locale);
+    SpellCheckerSubtype getCurrentSpellCheckerSubtype(int userId,
+            boolean allowImplicitlySelectedSubtype);
+    oneway void getSpellCheckerService(int userId, String sciId, in String locale,
             in ITextServicesSessionListener tsListener,
             in ISpellCheckerSessionListener scListener, in Bundle bundle);
-    oneway void finishSpellCheckerService(in ISpellCheckerSessionListener listener);
-    boolean isSpellCheckerEnabled();
-    SpellCheckerInfo[] getEnabledSpellCheckers();
+    oneway void finishSpellCheckerService(int userId, in ISpellCheckerSessionListener listener);
+    boolean isSpellCheckerEnabled(int userId);
+    SpellCheckerInfo[] getEnabledSpellCheckers(int userId);
 }
diff --git a/core/java/com/android/internal/view/InputBindResult.java b/core/java/com/android/internal/view/InputBindResult.java
index 901cfe3..9fe49b4 100644
--- a/core/java/com/android/internal/view/InputBindResult.java
+++ b/core/java/com/android/internal/view/InputBindResult.java
@@ -127,8 +127,10 @@
          */
         int ERROR_IME_NOT_CONNECTED = 8;
         /**
-         * Indicates that the caller is not the foreground user (or does not have
-         * {@link android.Manifest.permission#INTERACT_ACROSS_USERS_FULL} permission).
+         * Indicates that the caller is not the foreground user, does not have
+         * {@link android.Manifest.permission#INTERACT_ACROSS_USERS_FULL} permission, or the user
+         * specified in {@link android.view.inputmethod.EditorInfo#targetInputMethodUser} is not
+         * running.
          */
         int ERROR_INVALID_USER = 9;
         /**
diff --git a/core/java/com/android/internal/widget/ILockSettings.aidl b/core/java/com/android/internal/widget/ILockSettings.aidl
index 591f15f..9a77802 100644
--- a/core/java/com/android/internal/widget/ILockSettings.aidl
+++ b/core/java/com/android/internal/widget/ILockSettings.aidl
@@ -62,7 +62,9 @@
             in byte[] recoveryServiceCertFile, in byte[] recoveryServiceSigFile);
     KeyChainSnapshot getKeyChainSnapshot();
     String generateKey(String alias);
+    String generateKeyWithMetadata(String alias, in byte[] metadata);
     String importKey(String alias, in byte[] keyBytes);
+    String importKeyWithMetadata(String alias, in byte[] keyBytes, in byte[] metadata);
     String getKey(String alias);
     void removeKey(String alias);
     void setSnapshotCreatedPendingIntent(in PendingIntent intent);
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index 088e13f..5be70ef 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -185,7 +185,6 @@
         "android_hardware_UsbDevice.cpp",
         "android_hardware_UsbDeviceConnection.cpp",
         "android_hardware_UsbRequest.cpp",
-        "android_hardware_location_ActivityRecognitionHardware.cpp",
         "android_util_FileObserver.cpp",
         "android/opengl/poly_clip.cpp", // TODO: .arm
         "android/opengl/util.cpp",
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 1092222..a586dc1 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -101,7 +101,6 @@
 extern int register_android_hardware_UsbDevice(JNIEnv *env);
 extern int register_android_hardware_UsbDeviceConnection(JNIEnv *env);
 extern int register_android_hardware_UsbRequest(JNIEnv *env);
-extern int register_android_hardware_location_ActivityRecognitionHardware(JNIEnv* env);
 
 extern int register_android_media_AudioEffectDescriptor(JNIEnv *env);
 extern int register_android_media_AudioRecord(JNIEnv *env);
@@ -1457,7 +1456,6 @@
     REG_JNI(register_android_hardware_UsbDevice),
     REG_JNI(register_android_hardware_UsbDeviceConnection),
     REG_JNI(register_android_hardware_UsbRequest),
-    REG_JNI(register_android_hardware_location_ActivityRecognitionHardware),
     REG_JNI(register_android_media_AudioEffectDescriptor),
     REG_JNI(register_android_media_AudioSystem),
     REG_JNI(register_android_media_AudioRecord),
diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp
index bc49771..e2e3042 100644
--- a/core/jni/android/graphics/Paint.cpp
+++ b/core/jni/android/graphics/Paint.cpp
@@ -557,8 +557,9 @@
         return result;
     }
 
-    // FIXME: Should this be FastNative?
-    static void setColorLong(JNIEnv* env, jobject clazz, jlong paintHandle, jobject jColorSpace,
+    // FIXME: Make this CriticalNative when we no longer need to use JNIEnv. b/122514935 will allow
+    // passing the SkColorSpace directly from JNI.
+    static void setColor(JNIEnv* env, jobject clazz, jlong paintHandle, jobject jColorSpace,
             jfloat r, jfloat g, jfloat b, jfloat a) {
         sk_sp<SkColorSpace> cs = GraphicsJNI::getNativeColorSpace(env, jColorSpace);
         if (GraphicsJNI::hasException(env)) {
@@ -569,9 +570,11 @@
         reinterpret_cast<Paint*>(paintHandle)->setColor4f(color, cs.get());
     }
 
-    static void setShadowLayerLong(JNIEnv* env, jobject clazz, jlong paintHandle, jfloat radius,
-                                   jfloat dx, jfloat dy, jobject jColorSpace,
-                                   jfloat r, jfloat g, jfloat b, jfloat a) {
+    // FIXME: Make this CriticalNative when we no longer need to use JNIEnv. b/122514935 will allow
+    // passing the SkColorSpace directly from JNI.
+    static void setShadowLayer(JNIEnv* env, jobject clazz, jlong paintHandle, jfloat radius,
+                               jfloat dx, jfloat dy, jobject jColorSpace,
+                               jfloat r, jfloat g, jfloat b, jfloat a) {
         sk_sp<SkColorSpace> cs = GraphicsJNI::getNativeColorSpace(env, jColorSpace);
         if (GraphicsJNI::hasException(env)) {
             return;
@@ -784,22 +787,6 @@
         obj->setStyle(style);
     }
 
-    static jint getColor(jlong paintHandle) {
-        int color;
-        color = reinterpret_cast<Paint*>(paintHandle)->getColor();
-        return static_cast<jint>(color);
-    }
-
-    static jint getAlpha(jlong paintHandle) {
-        int alpha;
-        alpha = reinterpret_cast<Paint*>(paintHandle)->getAlpha();
-        return static_cast<jint>(alpha);
-    }
-
-    static void setColor(jlong paintHandle, jint color) {
-        reinterpret_cast<Paint*>(paintHandle)->setColor(color);
-    }
-
     static void setAlpha(jlong paintHandle, jint a) {
         reinterpret_cast<Paint*>(paintHandle)->setAlpha(a);
     }
@@ -1047,18 +1034,6 @@
         return SkScalarToFloat(Paint::kStdStrikeThru_Thickness * textSize);
     }
 
-    static void setShadowLayer(jlong paintHandle, jfloat radius,
-                               jfloat dx, jfloat dy, jint color) {
-        Paint* paint = reinterpret_cast<Paint*>(paintHandle);
-        if (radius <= 0) {
-            paint->setLooper(nullptr);
-        }
-        else {
-            SkScalar sigma = android::uirenderer::Blur::convertRadiusToSigma(radius);
-            paint->setLooper(SkBlurDrawLooper::Make((SkColor)color, sigma, dx, dy));
-        }
-    }
-
     static jboolean hasShadowLayer(jlong paintHandle) {
         Paint* paint = reinterpret_cast<Paint*>(paintHandle);
         return paint->getLooper() && paint->getLooper()->asABlurShadow(nullptr);
@@ -1107,9 +1082,9 @@
     {"nGetRunAdvance", "(J[CIIIIZI)F", (void*) PaintGlue::getRunAdvance___CIIIIZI_F},
     {"nGetOffsetForAdvance", "(J[CIIIIZF)I",
             (void*) PaintGlue::getOffsetForAdvance___CIIIIZF_I},
-    {"nSetColor","(JLandroid/graphics/ColorSpace;FFFF)V", (void*) PaintGlue::setColorLong},
+    {"nSetColor","(JLandroid/graphics/ColorSpace;FFFF)V", (void*) PaintGlue::setColor},
     {"nSetShadowLayer", "(JFFFLandroid/graphics/ColorSpace;FFFF)V",
-            (void*)PaintGlue::setShadowLayerLong},
+            (void*)PaintGlue::setShadowLayer},
 
     // --------------- @FastNative ----------------------
 
@@ -1139,9 +1114,6 @@
     {"nSetDither","(JZ)V", (void*) PaintGlue::setDither},
     {"nGetStyle","(J)I", (void*) PaintGlue::getStyle},
     {"nSetStyle","(JI)V", (void*) PaintGlue::setStyle},
-    {"nGetColor","(J)I", (void*) PaintGlue::getColor},
-    {"nSetColor","(JI)V", (void*) PaintGlue::setColor},
-    {"nGetAlpha","(J)I", (void*) PaintGlue::getAlpha},
     {"nSetAlpha","(JI)V", (void*) PaintGlue::setAlpha},
     {"nGetStrokeWidth","(J)F", (void*) PaintGlue::getStrokeWidth},
     {"nSetStrokeWidth","(JF)V", (void*) PaintGlue::setStrokeWidth},
@@ -1182,7 +1154,6 @@
     {"nGetUnderlineThickness","(J)F", (void*) PaintGlue::getUnderlineThickness},
     {"nGetStrikeThruPosition","(J)F", (void*) PaintGlue::getStrikeThruPosition},
     {"nGetStrikeThruThickness","(J)F", (void*) PaintGlue::getStrikeThruThickness},
-    {"nSetShadowLayer", "(JFFFI)V", (void*)PaintGlue::setShadowLayer},
     {"nHasShadowLayer", "(J)Z", (void*)PaintGlue::hasShadowLayer},
     {"nEqualsForTextMeasurement", "(JJ)Z", (void*)PaintGlue::equalsForTextMeasurement},
 };
diff --git a/core/jni/android_app_NativeActivity.cpp b/core/jni/android_app_NativeActivity.cpp
index b2d3651..21369f9 100644
--- a/core/jni/android_app_NativeActivity.cpp
+++ b/core/jni/android_app_NativeActivity.cpp
@@ -286,6 +286,7 @@
                                      sdkVersion,
                                      pathStr.c_str(),
                                      classLoader,
+                                     nullptr,
                                      libraryPath,
                                      &needs_native_bridge,
                                      &nativeloader_error_msg);
diff --git a/core/jni/android_hardware_location_ActivityRecognitionHardware.cpp b/core/jni/android_hardware_location_ActivityRecognitionHardware.cpp
deleted file mode 100644
index 1c9ab94..0000000
--- a/core/jni/android_hardware_location_ActivityRecognitionHardware.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "ActivityRecognitionHardware"
-
-#include <jni.h>
-#include <nativehelper/JNIHelp.h>
-
-#include <android_runtime/AndroidRuntime.h>
-#include <android_runtime/Log.h>
-
-// #include <hardware/activity_recognition.h>
-// The activity recognition HAL is being deprecated. This means -
-//    i) Android framework code shall not depend on activity recognition
-//       being provided through the activity_recognition.h interface.
-//   ii) activity recognition HAL will not be binderized as the other HALs.
-//
-
-/**
- * Initializes the ActivityRecognitionHardware class from the native side.
- */
-static void class_init(JNIEnv* /*env*/, jclass /*clazz*/) {
-    ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
-          __FUNCTION__);
-}
-
-/**
- * Initializes and connect the callbacks handlers in the HAL.
- */
-static void initialize(JNIEnv* /*env*/, jobject /*obj*/) {
-    ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
-          __FUNCTION__);
-}
-
-/**
- * De-initializes the ActivityRecognitionHardware from the native side.
- */
-static void release(JNIEnv* /*env*/, jobject /*obj*/) {
-    ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
-          __FUNCTION__);
-}
-
-/**
- * Returns true if ActivityRecognition HAL is supported, false otherwise.
- */
-static jboolean is_supported(JNIEnv* /*env*/, jclass /*clazz*/) {
-    ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
-          __FUNCTION__);
-    return JNI_FALSE;
-}
-
-/**
- * Gets an array representing the supported activities.
- */
-static jobjectArray get_supported_activities(JNIEnv* /*env*/, jobject /*obj*/) {
-    ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
-          __FUNCTION__);
-    return NULL;
-}
-
-/**
- * Enables a given activity event to be actively monitored.
- */
-static int enable_activity_event(
-        JNIEnv* /*env*/,
-        jobject /*obj*/,
-        jint /*activity_handle*/,
-        jint /*event_type*/,
-        jlong /*report_latency_ns*/) {
-    ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
-          __FUNCTION__);
-    return android::NO_INIT;
-}
-
-/**
- * Disables a given activity event from being actively monitored.
- */
-static int disable_activity_event(
-        JNIEnv* /*env*/,
-        jobject /*obj*/,
-        jint /*activity_handle*/,
-        jint /*event_type*/) {
-    ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
-          __FUNCTION__);
-    return android::NO_INIT;
-}
-
-/**
- * Request flush for al batch buffers.
- */
-static int flush(JNIEnv* /*env*/, jobject /*obj*/) {
-    ALOGE("activity_recognition HAL is deprecated. %s is effectively a no-op",
-          __FUNCTION__);
-    return android::NO_INIT;
-}
-
-
-static const JNINativeMethod sMethods[] = {
-    // {"name", "signature", (void*) functionPointer },
-    { "nativeClassInit", "()V", (void*) class_init },
-    { "nativeInitialize", "()V", (void*) initialize },
-    { "nativeRelease", "()V", (void*) release },
-    { "nativeIsSupported", "()Z", (void*) is_supported },
-    { "nativeGetSupportedActivities", "()[Ljava/lang/String;", (void*) get_supported_activities },
-    { "nativeEnableActivityEvent", "(IIJ)I", (void*) enable_activity_event },
-    { "nativeDisableActivityEvent", "(II)I", (void*) disable_activity_event },
-    { "nativeFlush", "()I", (void*) flush },
-};
-
-/**
- * Registration method invoked in JNI load.
- */
-int register_android_hardware_location_ActivityRecognitionHardware(JNIEnv* env) {
-    return jniRegisterNativeMethods(
-            env,
-            "android/hardware/location/ActivityRecognitionHardware",
-            sMethods,
-            NELEM(sMethods));
-}
diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp
index 80560f8..9e32206 100644
--- a/core/jni/android_media_AudioSystem.cpp
+++ b/core/jni/android_media_AudioSystem.cpp
@@ -487,7 +487,8 @@
 }
 
 static jint
-android_media_AudioSystem_setDeviceConnectionState(JNIEnv *env, jobject thiz, jint device, jint state, jstring device_address, jstring device_name)
+android_media_AudioSystem_setDeviceConnectionState(JNIEnv *env, jobject thiz, jint device, jint state, jstring device_address, jstring device_name,
+                                                   jint codec __unused)
 {
     const char *c_address = env->GetStringUTFChars(device_address, NULL);
     const char *c_name = env->GetStringUTFChars(device_name, NULL);
@@ -510,7 +511,8 @@
 }
 
 static jint
-android_media_AudioSystem_handleDeviceConfigChange(JNIEnv *env, jobject thiz, jint device, jstring device_address, jstring device_name)
+android_media_AudioSystem_handleDeviceConfigChange(JNIEnv *env, jobject thiz, jint device, jstring device_address, jstring device_name,
+                                                   jint codec __unused)
 {
     const char *c_address = env->GetStringUTFChars(device_address, NULL);
     const char *c_name = env->GetStringUTFChars(device_name, NULL);
@@ -2004,7 +2006,7 @@
     std::vector<media::MicrophoneInfo> microphones;
     status_t status = AudioSystem::getMicrophones(&microphones);
     if (status != NO_ERROR) {
-        ALOGE_IF(status != NO_ERROR, "AudioSystem::getMicrophones error %d", status);
+        ALOGE("AudioSystem::getMicrophones error %d", status);
         jStatus = nativeToJavaStatus(status);
         return jStatus;
     }
@@ -2026,6 +2028,36 @@
 }
 
 static jint
+android_media_AudioSystem_getHwOffloadEncodingFormatsSupportedForA2DP(
+                        JNIEnv *env, jobject thiz, jobject jEncodingFormatList)
+{
+    ALOGV("%s", __FUNCTION__);
+    jint jStatus = AUDIO_JAVA_SUCCESS;
+    if (!env->IsInstanceOf(jEncodingFormatList, gArrayListClass)) {
+        ALOGE("%s: jEncodingFormatList not an ArrayList", __FUNCTION__);
+        return (jint)AUDIO_JAVA_BAD_VALUE;
+    }
+    std::vector<audio_format_t> encodingFormats;
+    //FIXME: enable when native implementaiton is merged
+    //status_t status = AudioSystem::getHwOffloadEncodingFormatsSupportedForA2DP(
+    //                      &encodingFormats);
+    status_t status = NO_ERROR;
+    if (status != NO_ERROR) {
+        ALOGE("%s: error %d", __FUNCTION__, status);
+        jStatus = nativeToJavaStatus(status);
+        return jStatus;
+    }
+
+    for (size_t i = 0; i < encodingFormats.size(); i++) {
+        ScopedLocalRef<jobject> jEncodingFormat(
+            env, env->NewObject(gIntegerClass, gIntegerCstor, encodingFormats[i]));
+        env->CallBooleanMethod(jEncodingFormatList, gArrayListMethods.add,
+                               jEncodingFormat.get());
+    }
+    return jStatus;
+}
+
+static jint
 android_media_AudioSystem_getSurroundFormats(JNIEnv *env, jobject thiz,
                                              jobject jSurroundFormats, jboolean reported)
 {
@@ -2142,9 +2174,9 @@
     {"isSourceActive",      "(I)Z",     (void *)android_media_AudioSystem_isSourceActive},
     {"newAudioSessionId",   "()I",      (void *)android_media_AudioSystem_newAudioSessionId},
     {"newAudioPlayerId",    "()I",      (void *)android_media_AudioSystem_newAudioPlayerId},
-    {"setDeviceConnectionState", "(IILjava/lang/String;Ljava/lang/String;)I", (void *)android_media_AudioSystem_setDeviceConnectionState},
+    {"setDeviceConnectionState", "(IILjava/lang/String;Ljava/lang/String;I)I", (void *)android_media_AudioSystem_setDeviceConnectionState},
     {"getDeviceConnectionState", "(ILjava/lang/String;)I",  (void *)android_media_AudioSystem_getDeviceConnectionState},
-    {"handleDeviceConfigChange", "(ILjava/lang/String;Ljava/lang/String;)I", (void *)android_media_AudioSystem_handleDeviceConfigChange},
+    {"handleDeviceConfigChange", "(ILjava/lang/String;Ljava/lang/String;I)I", (void *)android_media_AudioSystem_handleDeviceConfigChange},
     {"setPhoneState",       "(I)I",     (void *)android_media_AudioSystem_setPhoneState},
     {"setForceUse",         "(II)I",    (void *)android_media_AudioSystem_setForceUse},
     {"getForceUse",         "(I)I",     (void *)android_media_AudioSystem_getForceUse},
@@ -2197,6 +2229,8 @@
     {"setAssistantUid", "(I)I", (void *)android_media_AudioSystem_setAssistantUid},
     {"setA11yServicesUids", "([I)I", (void *)android_media_AudioSystem_setA11yServicesUids},
     {"isHapticPlaybackSupported", "()Z", (void *)android_media_AudioSystem_isHapticPlaybackSupported},
+    {"getHwOffloadEncodingFormatsSupportedForA2DP", "(Ljava/util/ArrayList;)I",
+                    (void*)android_media_AudioSystem_getHwOffloadEncodingFormatsSupportedForA2DP},
 };
 
 static const JNINativeMethod gEventHandlerMethods[] = {
diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp
index 798825f..26a474c 100644
--- a/core/jni/android_util_Process.cpp
+++ b/core/jni/android_util_Process.cpp
@@ -22,12 +22,12 @@
 #include <utils/Log.h>
 #include <binder/IPCThreadState.h>
 #include <binder/IServiceManager.h>
-#include <cutils/sched_policy.h>
 #include <utils/String8.h>
 #include <utils/Vector.h>
 #include <meminfo/procmeminfo.h>
 #include <meminfo/sysmeminfo.h>
 #include <processgroup/processgroup.h>
+#include <processgroup/sched_policy.h>
 
 #include <string>
 #include <vector>
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index 9e449a2..e81b627 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -62,13 +62,13 @@
 #include <android-base/stringprintf.h>
 #include <cutils/fs.h>
 #include <cutils/multiuser.h>
-#include <cutils/sched_policy.h>
 #include <private/android_filesystem_config.h>
 #include <utils/String8.h>
 #include <selinux/android.h>
 #include <seccomp_policy.h>
 #include <stats_event_list.h>
 #include <processgroup/processgroup.h>
+#include <processgroup/sched_policy.h>
 
 #include "core_jni_helpers.h"
 #include <nativehelper/JNIHelp.h>
@@ -95,6 +95,7 @@
 static pid_t gSystemServerPid = 0;
 
 static const char kIsolatedStorage[] = "persist.sys.isolated_storage";
+static const char kIsolatedStorageSnapshot[] = "sys.isolated_storage_snapshot";
 static const char kZygoteClassName[] = "com/android/internal/os/Zygote";
 static jclass gZygoteClass;
 static jmethodID gCallPostForkSystemServerHooks;
@@ -108,8 +109,9 @@
   MOUNT_EXTERNAL_DEFAULT = 1,
   MOUNT_EXTERNAL_READ = 2,
   MOUNT_EXTERNAL_WRITE = 3,
-  MOUNT_EXTERNAL_INSTALLER = 4,
-  MOUNT_EXTERNAL_FULL = 5,
+  MOUNT_EXTERNAL_LEGACY = 4,
+  MOUNT_EXTERNAL_INSTALLER = 5,
+  MOUNT_EXTERNAL_FULL = 6,
 };
 
 // Must match values in com.android.internal.os.Zygote.
@@ -312,7 +314,7 @@
   mallopt(M_DECAY_TIME, 1);
 }
 
-static void SetUpSeccompFilter(uid_t uid) {
+static void SetUpSeccompFilter(uid_t uid, bool is_child_zygote) {
   if (!g_is_security_enforced) {
     ALOGI("seccomp disabled by setenforce 0");
     return;
@@ -320,7 +322,14 @@
 
   // Apply system or app filter based on uid.
   if (uid >= AID_APP_START) {
-    set_app_seccomp_filter();
+    if (is_child_zygote) {
+      // set_app_zygote_seccomp_filter();
+      // TODO(b/111434506) install the filter; for now, install the app filter
+      // which is more restrictive.
+      set_app_seccomp_filter();
+    } else {
+      set_app_seccomp_filter();
+    }
   } else {
     set_system_seccomp_filter();
   }
@@ -539,9 +548,10 @@
         return true;
     }
 
-    if (GetBoolProperty(kIsolatedStorage, false)) {
-        if (mount_mode == MOUNT_EXTERNAL_FULL) {
-            storageSource = "/mnt/runtime/write";
+    if (GetBoolProperty(kIsolatedStorageSnapshot, GetBoolProperty(kIsolatedStorage, false))) {
+        if (mount_mode == MOUNT_EXTERNAL_FULL || mount_mode == MOUNT_EXTERNAL_LEGACY) {
+            storageSource = (mount_mode == MOUNT_EXTERNAL_FULL)
+                    ? "/mnt/runtime/full" : "/mnt/runtime/write";
             if (TEMP_FAILURE_RETRY(mount(storageSource.string(), "/storage",
                     NULL, MS_BIND | MS_REC | MS_SLAVE, NULL)) == -1) {
                 *error_msg = CREATE_ERROR("Failed to mount %s to /storage: %s",
@@ -1005,7 +1015,7 @@
   // alternative is to call prctl(PR_SET_NO_NEW_PRIVS, 1) afterward, but that
   // breaks SELinux domain transition (see b/71859146).  As the result,
   // privileged syscalls used below still need to be accessible in app process.
-  SetUpSeccompFilter(uid);
+  SetUpSeccompFilter(uid, is_child_zygote);
 
   if (setresuid(uid, uid, uid) == -1) {
     fail_fn(CREATE_ERROR("setresuid(%d) failed: %s", uid, strerror(errno)));
@@ -1304,6 +1314,23 @@
     UnmountTree("/storage");
 }
 
+static void com_android_internal_os_Zygote_nativeInstallSeccompUidGidFilter(
+        JNIEnv* env, jclass, jint uidGidMin, jint uidGidMax) {
+  if (!g_is_security_enforced) {
+    ALOGI("seccomp disabled by setenforce 0");
+    return;
+  }
+
+  // TODO(b/111434506) install the filter
+
+  /*
+  bool installed = install_setuidgid_seccomp_filter(uidGidMin, uidGidMax);
+  if (!installed) {
+      RuntimeAbort(env, __LINE__, "Could not install setuid/setgid seccomp filter.");
+  }
+  */
+}
+
 static const JNINativeMethod gMethods[] = {
     { "nativeSecurityInit", "()V",
       (void *) com_android_internal_os_Zygote_nativeSecurityInit },
@@ -1317,7 +1344,9 @@
     { "nativeUnmountStorageOnInit", "()V",
       (void *) com_android_internal_os_Zygote_nativeUnmountStorageOnInit },
     { "nativePreApplicationInit", "()V",
-      (void *) com_android_internal_os_Zygote_nativePreApplicationInit }
+      (void *) com_android_internal_os_Zygote_nativePreApplicationInit },
+    { "nativeInstallSeccompUidGidFilter", "(II)V",
+      (void *) com_android_internal_os_Zygote_nativeInstallSeccompUidGidFilter }
 };
 
 int register_com_android_internal_os_Zygote(JNIEnv* env) {
diff --git a/core/proto/android/app/settings_enums.proto b/core/proto/android/app/settings_enums.proto
index 4538508..f68c760 100644
--- a/core/proto/android/app/settings_enums.proto
+++ b/core/proto/android/app/settings_enums.proto
@@ -2175,4 +2175,8 @@
 
     // OPEN: Settings > System > Input & Gesture > Tap to check
     SETTINGS_GESTURE_TAP_SCREEN = 1626;
+
+    // OPEN: Settings > Network & internet > Click Mobile network to land on a page with a list of
+    // SIM/eSIM subscriptions.
+    MOBILE_NETWORK_LIST = 1627;
 }
diff --git a/core/proto/android/server/location/enums.proto b/core/proto/android/server/location/enums.proto
index b6dc589..943ff18 100644
--- a/core/proto/android/server/location/enums.proto
+++ b/core/proto/android/server/location/enums.proto
@@ -28,3 +28,105 @@
     GPS_SIGNAL_QUALITY_POOR = 0;
     GPS_SIGNAL_QUALITY_GOOD = 1;
 }
+
+// A type which distinguishes different categories of NI request, such as VOICE, UMTS_SUPL etc.
+enum GnssNiType {
+    VOICE = 1;
+    UMTS_SUPL = 2;
+    UMTS_CTRL_PLANE = 3;
+    EMERGENCY_SUPL = 4;
+};
+
+// GNSS NI responses, used to define the response in NI structures.
+enum GnssUserResponseType {
+    RESPONSE_ACCEPT = 1;
+    RESPONSE_DENY = 2;
+    RESPONSE_NORESP = 3;
+};
+
+// GNSS NI data encoding scheme.
+enum GnssNiEncodingType {
+    ENC_NONE = 0;
+    ENC_SUPL_GSM_DEFAULT = 1;
+    ENC_SUPL_UTF8 = 2;
+    ENC_SUPL_UCS2 = 3;
+    ENC_UNKNOWN = -1;
+};
+
+// Protocol stack that initiated the non-framework location request.
+enum NfwProtocolStack {
+    // Cellular control plane requests.
+    CTRL_PLANE = 0;
+    // All types of SUPL requests.
+    SUPL = 1;
+    // All types of requests from IMS.
+    IMS = 10;
+    // All types of requests from SIM.
+    SIM = 11;
+    // Requests from other protocol stacks.
+    OTHER_PROTOCOL_STACK = 100;
+};
+
+// Source initiating/receiving the location information.
+enum NfwRequestor  {
+    // Wireless service provider.
+    CARRIER = 0;
+    // Device manufacturer.
+    OEM = 10;
+    // Modem chipset vendor.
+    MODEM_CHIPSET_VENDOR = 11;
+    // GNSS chipset vendor.
+    GNSS_CHIPSET_VENDOR = 12;
+    // Other chipset vendor.
+    OTHER_CHIPSET_VENDOR = 13;
+    // Automobile client.
+    AUTOMOBILE_CLIENT = 20;
+    // Other sources.
+    OTHER_REQUESTOR = 100;
+};
+
+// Indicates whether location information was provided for this request.
+enum NfwResponseType {
+    // Request rejected because framework has not given permission for this use case.
+    REJECTED = 0;
+    // Request accepted but could not provide location because of a failure.
+    ACCEPTED_NO_LOCATION_PROVIDED = 1;
+    // Request accepted and location provided.
+    ACCEPTED_LOCATION_PROVIDED = 2;
+};
+
+// The SUPL mode.
+enum SuplMode {
+    // Mobile Station Based.
+    MSB = 0x01;
+    // Mobile Station Assisted.
+    MSA = 0x02;
+};
+
+// Enum that hold the bit masks for various LTE Positioning Profile settings (LPP_PROFILE
+// configuration parameter). If none of the bits in the enum are set, the default setting is
+// Radio Resource Location Protocol(RRLP).
+enum LppProfile {
+    // Enable LTE Positioning Protocol user plane.
+    USER_PLANE = 0x01;
+    // Enable LTE Positioning Protocol Control plane.
+    CONTROL_PLANE = 0x02;
+};
+
+// Positioning protocol on A-Glonass system.
+enum GlonassPosProtocol {
+    // Radio Resource Control(RRC) control-plane.
+    RRC_CPLANE = 0x01;
+    // Radio Resource Location user-plane.
+    RRLP_CPLANE = 0x02;
+    // LTE Positioning Protocol User plane.
+    LPP_UPLANE = 0x04;
+};
+
+// Configurations of how GPS functionalities should be locked when user turns off GPS On setting.
+enum GpsLock {
+    // Lock Mobile Originated GPS functionalitues.
+    MO = 0x01;
+    // Lock Network Initiated GPS functionalities.
+    NI = 0x02;
+};
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index f3e3241..ea0c8e2 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -2210,8 +2210,9 @@
     <permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"
         android:protectionLevel="signature|installer" />
 
-    <!-- @SystemApi Allows an application to start an activity within its managed profile from
-         the personal profile.
+    <!-- @SystemApi Allows an application to start its own activities, but on a different profile
+         associated with the user. For example, an application running on the main profile of a user
+         can start an activity on a managed profile of that user.
          This permission is not available to third party applications.
          @hide -->
     <permission android:name="android.permission.INTERACT_ACROSS_PROFILES"
@@ -3056,6 +3057,15 @@
     <permission android:name="android.permission.BIND_TEXT_SERVICE"
         android:protectionLevel="signature" />
 
+    <!-- @SystemApi Must be required by a AttentionService
+         to ensure that only the system can bind to it.
+         <p>Protection level: signature
+         @hide
+    -->
+    <permission android:name="android.permission.BIND_ATTENTION_SERVICE"
+                android:protectionLevel="signature" />
+    <uses-permission android:name="android.permission.BIND_ATTENTION_SERVICE" />
+
     <!-- Must be required by a {@link android.net.VpnService},
          to ensure that only the system can bind to it.
          <p>Protection level: signature
@@ -4755,6 +4765,11 @@
                  android:permission="android.permission.BIND_JOB_SERVICE" >
         </service>
 
+        <service android:name="com.android.server.ZramWriteback"
+                 android:exported="false"
+                 android:permission="android.permission.BIND_JOB_SERVICE" >
+        </service>
+
         <service android:name="com.android.server.backup.FullBackupJob"
                  android:exported="true"
                  android:permission="android.permission.BIND_JOB_SERVICE" >
diff --git a/core/res/res/layout/notification_template_ambient_header.xml b/core/res/res/layout/notification_template_ambient_header.xml
deleted file mode 100644
index be5d9b4..0000000
--- a/core/res/res/layout/notification_template_ambient_header.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 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.
-  -->
-
-<!-- hack to work around <include /> not being supported at the top level -->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:paddingStart="@dimen/notification_extra_margin_ambient"
-    android:paddingEnd="@dimen/notification_extra_margin_ambient"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content">
-    <include
-        layout="@layout/notification_template_header"
-        android:theme="@style/Theme.DeviceDefault.Notification.Ambient"/>
-</FrameLayout>
diff --git a/core/res/res/layout/notification_template_material_ambient.xml b/core/res/res/layout/notification_template_material_ambient.xml
deleted file mode 100644
index 2c6064e..0000000
--- a/core/res/res/layout/notification_template_material_ambient.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 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.
-  -->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/status_bar_latest_event_content"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:tag="ambient"
-    android:paddingStart="@dimen/notification_extra_margin_ambient"
-    android:paddingEnd="@dimen/notification_extra_margin_ambient"
-    >
-    <include layout="@layout/notification_template_ambient_header"
-             android:theme="@style/Theme.DeviceDefault.Notification.Ambient" />
-
-    <LinearLayout
-            android:id="@+id/notification_action_list_margin_target"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="top"
-            android:layout_marginTop="@dimen/notification_content_margin_top"
-            android:layout_marginBottom="@dimen/notification_action_list_height"
-            android:paddingTop="4dp"
-            android:paddingBottom="6dp"
-            android:clipToPadding="false"
-            android:orientation="vertical">
-
-        <LinearLayout
-            android:id="@+id/notification_main_column"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_gravity="top"
-            android:layout_weight="1"
-            android:paddingStart="@dimen/notification_content_margin_start"
-            android:paddingEnd="@dimen/notification_content_margin_end"
-            android:clipToPadding="false"
-            android:minHeight="@dimen/notification_min_content_height"
-            android:orientation="vertical"
-            >
-            <TextView android:id="@+id/title"
-                android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:gravity="top|center_horizontal"
-                android:singleLine="true"
-                android:ellipsize="marquee"
-                android:fadingEdge="horizontal"
-                android:textSize="@dimen/notification_ambient_title_text_size"
-                android:textColor="#ffffffff"
-            />
-            <TextView android:id="@+id/text"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:textAppearance="@style/TextAppearance.DeviceDefault.Notification"
-                android:singleLine="false"
-                android:layout_weight="1"
-                android:gravity="top|center_horizontal"
-                android:visibility="gone"
-                android:textSize="@dimen/notification_ambient_text_size"
-                android:textColor="#eeffffff"
-                android:layout_marginTop="4dp"
-                android:ellipsize="end"
-                android:maxLines="3"
-            />
-        </LinearLayout>
-        <FrameLayout android:id="@+id/actions_container"
-                     android:layout_width="match_parent"
-                     android:layout_height="wrap_content"
-                     android:layout_gravity="bottom">
-            <com.android.internal.widget.NotificationActionListLayout
-                android:id="@+id/actions"
-                android:layout_width="match_parent"
-                android:layout_height="@dimen/notification_action_list_height"
-                android:paddingEnd="4dp"
-                android:orientation="horizontal"
-                android:gravity="center"
-                android:visibility="gone"
-            />
-        </FrameLayout>
-    </LinearLayout>
-</FrameLayout>
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index c4616c5..770a82e 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Laat die program toe om liggings in jou mediaversameling te lees."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Die program <xliff:g id="APP">%s</xliff:g> wil staaf."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometriese hardeware is nie beskikbaar nie"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Stawing is gekanselleer"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nie herken nie"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Stawing is gekanselleer"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Gedeeltelike vingerafdruk is bespeur. Probeer asseblief weer."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Kon nie vingerafdruk verwerk nie. Probeer asseblief weer."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Vingerafdruksensor is vuil. Maak dit skoon en probeer weer."</string>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 25c23b2..8ec7cd0 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"መተግበሪያው አካባቢዎችን ከሚዲያ ስብስብዎ እንዲያነብብ ያስችለዋል።"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"መተግበሪያ <xliff:g id="APP">%s</xliff:g> ማረጋገጥ ይፈልጋል"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"ባዮሜትራዊ ሃርድዌር አይገኝም"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"ማረጋገጥ ተሰርዟል"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"አልታወቀም"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"ማረጋገጥ ተሰርዟል"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ከፊል የጣት አሻራ ተገኝቷል። እባክዎ እንደገና ይሞክሩ።"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ጣት አሻራን መስራት አልተቻለም። እባክዎ እንደገና ይሞክሩ።"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"የጣት አሻራ ዳሳሽ ቆሽሿል። እባክዎ ያጽዱት እና እንደገና ይሞክሩ።"</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ካሜራ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ማይክሮፎን"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"በማያዎ ላይ በሌሎች መተግበሪያዎች ላይ በማሳየት ላይ"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"የዕለት ተዕለት ሁነታ መረጃ ማሳወቂያዎች"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"ባትሪ ከተለመደው ኃይል መሙላት በፊት ሊያልቅ ይችላል"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"የባትሪ ቆጣቢ የባትሪ ዕድሜን ለማራዘም ገብሯል።"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"በመጫን ላይ"</string>
 </resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 25902bb..8d7b801 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -545,11 +545,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"للسماح للتطبيق بقراءة المواقع من مجموعة الوسائط التابعة لك."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"يتطلَّب التطبيق <xliff:g id="APP">%s</xliff:g> المصادقة."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"معدّات المقاييس الحيوية غير متاحة."</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"تم إلغاء المصادقة."</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"لم يتم التعرف عليها."</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"تم إلغاء المصادقة."</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"تم اكتشاف بصمة الإصبع بشكل جزئي؛ يرجى إعادة المحاولة."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"تعذرت معالجة بصمة الإصبع. يُرجى إعادة المحاولة."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"جهاز استشعار بصمات الأصابع متسخ، يرجى تنظيفه وإعادة المحاولة."</string>
@@ -1542,7 +1540,7 @@
     <string name="vpn_lockdown_config" msgid="8151951501116759194">"‏تغيير إعدادات الشبكة أو الشبكة الافتراضية الخاصة (VPN)"</string>
     <string name="upload_file" msgid="2897957172366730416">"اختيار ملف"</string>
     <string name="no_file_chosen" msgid="6363648562170759465">"لم يتم اختيار أي ملف"</string>
-    <string name="reset" msgid="2448168080964209908">"إعادة تعيين"</string>
+    <string name="reset" msgid="2448168080964209908">"إعادة الضبط"</string>
     <string name="submit" msgid="1602335572089911941">"إرسال"</string>
     <string name="car_mode_disable_notification_title" msgid="5704265646471239078">"تطبيق القيادة قيد التشغيل"</string>
     <string name="car_mode_disable_notification_message" msgid="7647248420931129377">"انقر للخروج من تطبيق القيادة."</string>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 12d9677..74a4584 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"এপক আপোনাৰ মিডিয়া সংগ্ৰহৰ অৱস্থান পঢ়িবলৈ দিয়ে।"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> এপে বিশ্বাসযোগ্যতাৰ প্ৰমাণ কৰিব বিচাৰে।"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"বায়োমেট্ৰিক হাৰ্ডৱেৰ উপলব্ধ নহয়"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"বিশ্বাসযোগ্যতাৰ প্ৰমাণীকৰণ বাতিল কৰা হৈছে"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"চিনাক্ত কৰিব পৰা নাই"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"বিশ্বাসযোগ্যতাৰ প্ৰমাণীকৰণ বাতিল কৰা হৈছে"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ফিংগাৰপ্ৰিণ্ট আংশিকভাৱে চিনাক্ত কৰা হৈছে। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক৷"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ফিগাৰপ্ৰিণ্টৰ প্ৰক্ৰিয়া সম্পাদন কৰিবপৰা নগ\'ল। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক৷"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ফিংগাৰপ্ৰিণ্ট ছেন্সৰটো লেতেৰা হৈ আছে। অনুগ্ৰহ কৰি পৰিষ্কাৰ কৰি আকৌ চেষ্টা কৰক।"</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"কেমেৰা"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"মাইক্ৰ\'ফ\'ন"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"স্ক্ৰীণত অইন এপৰ ওপৰত দেখুৱাওক"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"ৰুটিন ম’ডৰ তথ্য জাননী"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"চ্চাৰ্জ কৰাৰ সচৰাচৰ সময়ৰ আগতেই বেটাৰি শেষ হ’ব পাৰে"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"বেটাৰিৰ খৰচ কমাবলৈ বেটাৰি সঞ্চয়কাৰী অন কৰা হৈছে"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"ল’ড হৈ আছে"</string>
 </resources>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index 1bcce98..c941704 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Tətbiqin media kolleksiyanızdan məkanları oxumasına icazə verin."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> doğrulamaq istəyir."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrik proqram əlçatan deyil"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Doğrulama ləğv edildi"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Tanınmır"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Doğrulama ləğv edildi"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Barmaq qismən müəyyən olundu. Lütfən, yenidən cəhd edin."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Barmaq izi tanınmadı. Lütfən, yenidən cəhd edin."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Barmaq izi sensoru çirklidir. Lütfən, təmizləyin və yenidən cəhd edin."</string>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index 57ee03d..7de4e9e 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -536,11 +536,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Dozvoljava aplikaciji da čita lokacije iz medijske kolekcije."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplikacija <xliff:g id="APP">%s</xliff:g> želi da potvrdi vaš identitet."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrijski hardver nije dostupan"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Potvrda identiteta je otkazana"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nije prepoznato"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Potvrda identiteta je otkazana"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Otkriven je delimični otisak prsta. Probajte ponovo."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nije uspela obrada otiska prsta. Probajte ponovo."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzor za otiske prstiju je prljav. Očistite ga i pokušajte ponovo."</string>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 77de542..4f98eaa 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -539,11 +539,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Праграма зможа паказваць месцазнаходжанне ў калекцыі мультымедыя."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Праграма \"<xliff:g id="APP">%s</xliff:g>\" патрабуе аўтэнтыфікацыі."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Біяметрычнае абсталяванне недаступнае"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Аўтэнтыфікацыя скасавана"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Не распазнана"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Аўтэнтыфікацыя скасавана"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Выяўлена частка адбіткаў пальцаў. Паспрабуйце яшчэ раз."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Не атрымалася апрацаваць адбітак пальца. Паспрабуйце яшчэ раз."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Датчык адбіткаў пальцаў брудны. Ачысціце яго і паспрабуйце яшчэ раз."</string>
@@ -2049,11 +2047,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Мікрафон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"паказваецца паверх іншых праграм на экране"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Апавяшчэнне з інфармацыяй пра ўсталяваны рэжым"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Акумулятар можа разрадзіцца хутчэй, чым прыйдзе час звычайнай зарадкі"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Каб павялічыць тэрмін работы акумулятара, уключаны рэжым эканоміі зараду"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Загрузка"</string>
 </resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index a360eae..704dc52 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Разрешава на приложението да чете местоположенията от мултимедийната ви колекция."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Приложението <xliff:g id="APP">%s</xliff:g> изисква удостоверяване."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Биометричният хардуер не е налице"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Удостоверяването бе анулирано"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Не е разпознато"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Удостоверяването бе анулирано"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Открит е частичен отпечатък. Моля, опитайте отново."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Отпечатъкът не можа да се обработи. Моля, опитайте отново."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Сензорът за отпечатъци е мръсен. Моля, почистете го и опитайте отново."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"се показва върху други приложения на екрана"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Известие с информация за режима на поредица"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Батерията може да се изтощи преди обичайното зареждане"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Режимът за запазване на батерията е активиран с цел удължаване на живота на батерията"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Зарежда се"</string>
 </resources>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index ea53d19..b6ab1e6 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"আপনার মিডিয়া সংগ্রহ থেকে লোকেশন দেখতে অ্যাপকে অনুমতি দিন।"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> অ্যাপ্লিকেশন যাচাই করতে চাইছে।"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"বায়োমেট্রিক হার্ডওয়্যার পাওয়া যাবে না"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"যাচাইকরণ বাতিল হয়েছে"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"স্বীকৃত নয়"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"যাচাইকরণ বাতিল হয়েছে"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"আঙ্গুলের ছাপ আংশিক শনাক্ত করা হয়েছে৷ অনুগ্রহ করে আবার চেষ্টা করুন৷"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"আঙ্গুলের ছাপ প্রক্রিয়া করা যায়নি৷ অনুগ্রহ করে আবার চেষ্টা করুন৷"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"আঙ্গুলের ছাপ নেওয়ার সেন্সরটি অপরিস্কার৷ অনুগ্রহ করে পরিষ্কার করে আবার চেষ্টা করুন৷"</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ক্যামেরা"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"মাইক্রোফোন"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"স্ক্রিনে অন্যান্য অ্যাপের উপরে দেখানো হচ্ছে"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"রুটিন মোডের তথ্য সংক্রান্ত বিজ্ঞপ্তি"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"সাধারণত যখন চার্জ দেন, তার আগে চার্জ শেষ হয়ে যেতে পারে"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"ডিভাইস বেশিক্ষণ চালু রাখতে ব্যাটারি সেভার চালু করা হয়েছে"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"লোড হচ্ছে"</string>
 </resources>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index a3d2ac3..ab0df69 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -155,9 +155,9 @@
     <string name="httpErrorOk" msgid="1191919378083472204">"Uredu"</string>
     <string name="httpError" msgid="7956392511146698522">"Došlo je do greške na mreži."</string>
     <string name="httpErrorLookup" msgid="4711687456111963163">"Pronalaženje URL-a nije uspjelo."</string>
-    <string name="httpErrorUnsupportedAuthScheme" msgid="6299980280442076799">"Shema za provjeru vjerodostojnosti stranice nije podržana."</string>
-    <string name="httpErrorAuth" msgid="1435065629438044534">"Došlo je do greške prilikom provjere vjerodostojnosti."</string>
-    <string name="httpErrorProxyAuth" msgid="1788207010559081331">"Došlo je do greške prilikom provjere vjerodostojnosti preko proksi servera."</string>
+    <string name="httpErrorUnsupportedAuthScheme" msgid="6299980280442076799">"Shema za autentifikaciju stranice nije podržana."</string>
+    <string name="httpErrorAuth" msgid="1435065629438044534">"Došlo je do greške prilikom autentifikacije."</string>
+    <string name="httpErrorProxyAuth" msgid="1788207010559081331">"Došlo je do greške prilikom autentifikacije preko proksi servera."</string>
     <string name="httpErrorConnect" msgid="8714273236364640549">"Povezivanje sa serverom nije uspjelo."</string>
     <string name="httpErrorIO" msgid="2340558197489302188">"Veza sa serverom nije uspostavljena. Pokušajte ponovo kasnije."</string>
     <string name="httpErrorTimeout" msgid="4743403703762883954">"Vrijeme za uspostavljanje veze sa serverom je isteklo."</string>
@@ -519,7 +519,7 @@
     <string name="permlab_manageFingerprint" msgid="5640858826254575638">"upravljanje hardverom za otiske prstiju"</string>
     <string name="permdesc_manageFingerprint" msgid="178208705828055464">"Omogućava aplikaciji da koristi metode za dodavanje i brisanje šablona otisaka prstiju za upotrebu."</string>
     <string name="permlab_useFingerprint" msgid="3150478619915124905">"korištenje hardvera za otiske prstiju"</string>
-    <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Omogućava aplikaciji da za provjeru vjerodostojnosti koristi hardver za otiske prstiju"</string>
+    <string name="permdesc_useFingerprint" msgid="9165097460730684114">"Omogućava aplikaciji da za autentifikaciju koristi hardver za otiske prstiju"</string>
     <string name="permlab_audioRead" msgid="6617225220728465565">"čitanje muzičke kolekcije"</string>
     <string name="permdesc_audioRead" msgid="5034032570243484805">"Omogućava aplikaciji da čita vašu muzičku kolekciju."</string>
     <string name="permlab_audioWrite" msgid="2661772059799779292">"izmjena muzičke kolekcije"</string>
@@ -536,11 +536,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Omogućava aplikaciji da čita lokacije iz vaše kolekcije medija."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplikacija <xliff:g id="APP">%s</xliff:g> traži autentifikaciju."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrijski hardver nije dostupan"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autentifikacija je otkazana"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nije prepoznato"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autentifikacija je otkazana"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Otkriven je djelomičan otisak prsta. Pokušajte ponovo."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nije uspjela obrada otiska prsta. Pokušajte ponovo."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzor za otisak prsta je prljav. Očistite ga i pokušajte ponovo."</string>
@@ -1645,7 +1643,7 @@
     <string name="kg_invalid_puk" msgid="3638289409676051243">"Ponovo unesite ispravan PUK kôd. Ponovljeni pokušaji će trajno onemogućiti SIM."</string>
     <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN-ovi se ne poklapaju"</string>
     <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Previše pokušaja otključavanja pomoću uzorka"</string>
-    <string name="kg_login_instructions" msgid="1100551261265506448">"Da otključate, prijavite se sa svojim Google računom."</string>
+    <string name="kg_login_instructions" msgid="1100551261265506448">"Da otključate, prijavite se pomoću svog Google računa."</string>
     <string name="kg_login_username_hint" msgid="5718534272070920364">"Korisničko ime (adresa e-pošte)"</string>
     <string name="kg_login_password_hint" msgid="9057289103827298549">"Lozinka"</string>
     <string name="kg_login_submit_button" msgid="5355904582674054702">"Prijava"</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 1b1335d..e53f85e 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permet que l\'aplicació llegeixi les ubicacions de les teves col·leccions multimèdia."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"L\'aplicació <xliff:g id="APP">%s</xliff:g> vol que t\'autentiquis."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Maquinari biomètric no disponible"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"S\'ha cancel·lat l\'autenticació"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"No s\'ha reconegut"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"S\'ha cancel·lat l\'autenticació"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"S\'ha detectat una empremta digital parcial. Torna-ho a provar."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"No s\'ha pogut processar l\'empremta digital. Torna-ho a provar."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"El sensor d\'empremtes digitals està brut. Neteja\'l i torna-ho a provar."</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 6a65be3..55719e5 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -539,11 +539,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Umožňuje aplikaci číst místa z vaší sbírky médií."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplikace <xliff:g id="APP">%s</xliff:g> potřebuje provést ověření."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrický hardware není k dispozici"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Ověření bylo zrušeno"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nerozpoznáno"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Ověření bylo zrušeno"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Byla zjištěna jen část otisku prstu. Zkuste to znovu."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Zpracování otisku prstu se nezdařilo. Zkuste to znovu."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzor otisků prstů je znečištěn. Vyčistěte jej a zkuste to znovu."</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index ae50f32..a5ddc78 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Tillader, at appen kan læse placeringer fra din mediesamling."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g>-appen kræver din godkendelse."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrisk hardware er ikke tilgængelig"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Godkendelsen blev annulleret"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Ikke genkendt"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Godkendelsen blev annulleret"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Der blev registreret et delvist fingeraftryk. Prøv igen."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Fingeraftrykket kunne ikke behandles. Prøv igen."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sensoren til registrering af fingeraftryk er beskidt. Tør den af, og prøv igen."</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 895eaa1..205b373 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Ermöglicht der App, Standorte aus deiner Mediensammlung abzurufen."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> möchte, dass du dich authentifizierst."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrische Hardware nicht verfügbar"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Authentifizierung abgebrochen"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nicht erkannt"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Authentifizierung abgebrochen"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Fingerabdruck teilweise erkannt. Bitte versuche es noch einmal."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Fingerabdruck konnte nicht verarbeitet werden. Bitte versuche es noch einmal."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerabdrucksensor ist verschmutzt. Reinige ihn und versuche es noch einmal."</string>
@@ -679,7 +677,7 @@
     <string name="policydesc_encryptedStorage" msgid="2637732115325316992">"Anforderung, dass gespeicherte App-Daten verschlüsselt werden"</string>
     <string name="policylab_disableCamera" msgid="6395301023152297826">"Kameras deaktivieren"</string>
     <string name="policydesc_disableCamera" msgid="2306349042834754597">"Nutzung sämtlicher Gerätekameras unterbinden"</string>
-    <string name="policylab_disableKeyguardFeatures" msgid="8552277871075367771">"Einige Funktionen der Displaysperre deaktivieren"</string>
+    <string name="policylab_disableKeyguardFeatures" msgid="8552277871075367771">"Displaysperre teilweise deaktivieren"</string>
     <string name="policydesc_disableKeyguardFeatures" msgid="2044755691354158439">"Verwendung einiger Funktionen der Displaysperre verhindern"</string>
   <string-array name="phoneTypes">
     <item msgid="8901098336658710359">"Privat"</item>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 441435b..e4e7a76 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Επιτρέπει στην εφαρμογή να διαβάσει τοποθεσίες από τη συλλογή πολυμέσων σας."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Η εφαρμογή <xliff:g id="APP">%s</xliff:g> επιθυμεί έλεγχο ταυτότητας."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Δεν υπάρχει διαθέσιμος βιομετρικός εξοπλισμός"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Ο έλεγχος ταυτότητας ακυρώθηκε"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Δεν αναγνωρίστηκε"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Ο έλεγχος ταυτότητας ακυρώθηκε"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Εντοπίστηκε μερικό μοναδικό χαρακτηριστικό. Δοκιμάστε ξανά."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Δεν ήταν δυνατή η επεξεργασία του μοναδικού χαρακτηριστικού. Δοκιμάστε ξανά."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Ο αισθητήρας μοναδικού χαρακτηριστικού δεν είναι καθαρός. Καθαρίστε τον και δοκιμάστε ξανά."</string>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 8b49cf1..7dd3da2 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Allows the app to read locations from your media collection."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Application <xliff:g id="APP">%s</xliff:g> wants to authenticate."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometric hardware unavailable"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Authentication cancelled"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Not recognised"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Authentication cancelled"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microphone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"displaying over other apps on your screen"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Routine Mode info notification"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Battery may run out before usual charge"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Battery Saver activated to extend battery life"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Loading"</string>
 </resources>
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index 888bc26..21f6f1f 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Allows the app to read locations from your media collection."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Application <xliff:g id="APP">%s</xliff:g> wants to authenticate."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometric hardware unavailable"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Authentication cancelled"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Not recognised"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Authentication cancelled"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microphone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"displaying over other apps on your screen"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Routine Mode info notification"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Battery may run out before usual charge"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Battery Saver activated to extend battery life"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Loading"</string>
 </resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 8b49cf1..7dd3da2 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Allows the app to read locations from your media collection."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Application <xliff:g id="APP">%s</xliff:g> wants to authenticate."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometric hardware unavailable"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Authentication cancelled"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Not recognised"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Authentication cancelled"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microphone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"displaying over other apps on your screen"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Routine Mode info notification"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Battery may run out before usual charge"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Battery Saver activated to extend battery life"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Loading"</string>
 </resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 8b49cf1..7dd3da2 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Allows the app to read locations from your media collection."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Application <xliff:g id="APP">%s</xliff:g> wants to authenticate."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometric hardware unavailable"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Authentication cancelled"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Not recognised"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Authentication cancelled"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microphone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"displaying over other apps on your screen"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Routine Mode info notification"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Battery may run out before usual charge"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Battery Saver activated to extend battery life"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Loading"</string>
 </resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index e821fca..dc0a132 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite que la app lea las ubicaciones de tu colección de contenido multimedia."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"La aplicación de <xliff:g id="APP">%s</xliff:g> quiere autenticarte"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"No hay hardware biométrico disponible"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Se canceló la autenticación"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"No se reconoció"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Se canceló la autenticación"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"La huella digital se detectó parcialmente. Vuelve a intentarlo."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"No se pudo procesar la huella digital. Vuelve a intentarlo."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"El sensor de huellas digitales está sucio. Limpia el sensor y vuelve a intentarlo."</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 3f93565..c819bb6 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite que la aplicación lea las ubicaciones de tu colección de contenido multimedia."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> solicita tu autenticación."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Hardware biométrico no disponible"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autenticación cancelada"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"No se reconoce"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autenticación cancelada"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Se ha detectado una huella digital parcial. Vuelve a intentarlo."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"No se ha podido procesar la huella digital. Vuelve a intentarlo."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"El sensor de huellas digitales está sucio. Límpialo y vuelve a intentarlo."</string>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 466ead0..f1c4106 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Võimaldab rakendusel lugeda teie meediakogus olevaid asukohti."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Rakendus <xliff:g id="APP">%s</xliff:g> soovib autentimist."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biomeetriline riistvara ei ole saadaval"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autentimine tühistati"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Ei tuvastatud"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autentimine tühistati"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Tuvastati osaline sõrmejälg. Proovige uuesti."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Sõrmejälge ei õnnestunud töödelda. Proovige uuesti."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sõrmejäljeandur on must. Puhastage see ja proovige uuesti."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kaamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"teie ekraanil muude rakenduste peal kuvamine"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Rutiinirežiimi teabe märguanne"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Aku võib enne tavapärast laadimist tühjaks saada"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Akusäästja aktiveeriti aku tööea pikendamiseks"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Laadimine"</string>
 </resources>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index c478bab..c361164 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Multimedia-edukien bildumako kokapena irakurtzea baimentzen die aplikazioei."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> aplikazioak autentifikatu egin nahi du."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Hardware biometrikoa ez dago erabilgarri"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Utzi da autentifikazioa"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Ez da ezagutu"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Utzi egin da autentifikazioa"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Hatz-marka digitala ez da osorik hauteman. Saiatu berriro."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Ezin izan da prozesatu hatz-marka. Saiatu berriro."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Hatz-marka digitalen sentsorea zikina dago. Garbi ezazu, eta saiatu berriro."</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index c38f1d2..5bf81fa 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"به برنامه اجازه می‌دهد مکان‌ها را از مجموعه رسانه‌تان بخواند."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"برنامه <xliff:g id="APP">%s</xliff:g> می‌خواهد احراز هویت کند."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"سخت‌افزار زیست‌سنجی دردسترس نیست"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"احراز هویت لغو شد"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"شناسایی نشد"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"احراز هویت لغو شد"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"بخشی از اثر انگشت شناسایی شد. لطفاً دوباره امتحان کنید."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"اثرانگشت پردازش نشد. لطفاً دوباره امتحان کنید."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"حسگر اثر انگشت کثیف است. لطفاً آن را تمیز کنید و دوباره امتحان نمایید."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"دوربین"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"میکروفون"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"نمایش روی برنامه‌های دیگر در صفحه‌نمایش"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"اعلان اطلاعات حالت روال معمول"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"ممکن است شارژ باتری قبل از شارژ معمول تمام شود"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"جهت افزایش عمر باتری، بهینه‌سازی باتری فعال شد"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"درحال بارگیری"</string>
 </resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index ac6d8dc..9e2fde5 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Antaa sovelluksen lukea mediakokoelmasi sijainteja."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> pyytää todentamista"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrinen laitteisto ei käytettävissä"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Todennus peruutettu"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Ei tunnistettu"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Todennus peruutettu"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Sormenjälki havaittiin vain osittain. Yritä uudelleen."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Sormenjäljen käsittely epäonnistui. Yritä uudelleen."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sormenjälkitunnistin on likainen. Puhdista tunnistin ja yritä uudelleen."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofoni"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"näkyy näytöllä muiden sovellusten päällä"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Ohjelmatilan tietoilmoitus"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Akku saattaa loppua ennen normaalia latausaikaa"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Virransäästö otettu käyttöön akunkeston pidentämiseksi"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Ladataan"</string>
 </resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 8383078..3b841d5 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Autorise l\'application à lire les positions indiquées dans votre collection multimédia."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> vous demande de vous authentifier."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Matériel biométrique indisponible"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Authentification annulée"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Données biométriques non reconnues"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Authentification annulée"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Empreinte digitale partielle détectée. Veuillez essayer de nouveau."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Impossible de traiter les empreintes digitales. Veuillez essayer de nouveau."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Le capteur d\'empreintes digitales est sale. Veuillez le nettoyer et essayer de nouveau."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Appareil photo"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microphone"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"superpose du contenu par-dessus d\'autres applications à l\'écran"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Notification d\'information du mode Routine"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"La pile pourrait s\'épuiser avant la charge habituelle"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Le mode Économiseur de pile est activé afin de prolonger l\'autonomie"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Chargement en cours…"</string>
 </resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 3e87d88..28df3bf 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Autorise l\'application à consulter des positions issues de votre bibliothèque multimédia."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"L\'application <xliff:g id="APP">%s</xliff:g> veut vous authentifier."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Matériel biométrique indisponible"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Authentification annulée"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Non reconnu"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Authentification annulée"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Empreinte numérique partiellement détectée. Veuillez réessayer."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Impossible de reconnaître l\'empreinte numérique. Veuillez réessayer."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Le lecteur d\'empreintes numériques est sale. Veuillez le nettoyer, puis réessayer."</string>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index 1e78401..339f0f4f 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite que a aplicación lea as localizacións da túa colección multimedia."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"A aplicación <xliff:g id="APP">%s</xliff:g> quere que te autentiques."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"O hardware biométrico non está dispoñible"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Cancelouse a autenticación"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Non se recoñeceu"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Cancelouse a autenticación"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Detectouse unha impresión dixital parcial. Téntao de novo."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Non se puido procesar a impresión dixital. Téntao de novo."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impresión dixital está sucio. Límpao e téntao de novo."</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Cámara"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Micrófono"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"mostrando outras aplicacións na pantalla"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Notificación da información do modo de rutina"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"A batería pode esgotarse antes do habitual"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Para ampliar a duración da batería activouse a función Aforro de batería"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Cargando"</string>
 </resources>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 958183d..2124759 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"એપને તમારા મીડિયા સંગ્રહમાંથી સ્થાનો વાંચવાની મંજૂરી આપે છે."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> ઍપ પ્રમાણીકરણ કરવા માગે છે."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"બાયોમેટ્રિક હાર્ડવેર ઉપલબ્ધ નથી"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"પ્રમાણીકરણ રદ કર્યું"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"ઓળખાયેલ નથી"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"પ્રમાણીકરણ રદ કર્યું"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"આંશિક ફિંગરપ્રિન્ટ મળી. કૃપા કરીને ફરી પ્રયાસ કરો."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ફિંગરપ્રિન્ટ પ્રક્રિયા કરી શકાઈ નથી. કૃપા કરીને ફરી પ્રયાસ કરો."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ફિંગરપ્રિન્ટ સેન્સર ગંદું છે. કૃપા કરીને સાફ કરો અને ફરી પ્રયાસ કરો."</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"કૅમેરા"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"માઇક્રોફોન"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"આ તમારી સ્ક્રીન પર અન્ય ઍપની ઉપર દેખાશે"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"રૂટિન મોડની માહિતીનું નોટિફિકેશન"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"સામાન્ય રીતે ચાર્જ કરવાના સમય પહેલાં બૅટરી સમાપ્ત થઈ શકે છે"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"બૅટરી આવરદા વધારવા માટે બૅટરી સેવર ચાલુ કર્યું"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"લોડિંગ"</string>
 </resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 6a247af..db89c3e 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"इससे ऐप्लिकेशन को आपके मीडिया संग्रह से जगह की जानकारी एक्सेस करने की अनुमति दी जाती है."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"ऐप्लिकेशन <xliff:g id="APP">%s</xliff:g> पुष्टि करना चाहता है."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"बायोमेट्रिक हार्डवेयर उपलब्ध नहीं है"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"प्रमाणीकरण रद्द किया गया"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"पहचान नहीं हो पाई"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"प्रमाणीकरण रद्द किया गया"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"आंशिक फ़िंगरप्रिंट की पहचान की गई. कृपया पुनः प्रयास करें."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"फ़िंगरप्रिंट संसाधित नहीं हो सका. कृपया पुन: प्रयास करें."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"फ़िंगरप्रिंट सेंसर गंदा है. कृपया साफ़ करें और फिर कोशिश करें."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"कैमरा"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"माइक्रोफ़ोन"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"आपकी स्क्रीन पर, इस्तेमाल हो रहे दूसरे ऐप्लिकेशन के ऊपर दिखाया जा रहा है"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"रूटीन मोड जानकारी की सूचना"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"बैटरी आम तौर पर जितने समय चलती है, उससे पहले खत्म हो सकती है"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"बैटरी लाइफ़ बढ़ाने के लिए \'बैटरी सेवर\' चालू हो गया है"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"प्राेफ़ाइल लोड हो रही है"</string>
 </resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 92fdbba..4cd699b 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -536,11 +536,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Omogućuje aplikaciji čitanje lokacija iz vaše medijske zbirke."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplikacija <xliff:g id="APP">%s</xliff:g> traži autentifikaciju."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrijski hardver nije dostupan"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autentifikacija otkazana"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nije prepoznato"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autentifikacija otkazana"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Otkriven je djelomični otisak prsta. Pokušajte ponovo."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Obrada otiska prsta nije uspjela. Pokušajte ponovo."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzor otiska prsta nije čist. Očistite ga i pokušajte ponovo."</string>
@@ -2014,11 +2012,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Fotoaparat"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"prikazuje se preko drugih aplikacija na zaslonu"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Obavještavanje o informacijama u Rutinskom načinu rada"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Baterija se može isprazniti prije uobičajenog vremena punjenja"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Štednja baterije aktivirana je kako bi se produljilo trajanje baterije"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Učitavanje"</string>
 </resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index c04d4fe..3d2ed09 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Engedélyezi az alkalmazásnak a helyek médiagyűjteményből való olvasását."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"A(z) <xliff:g id="APP">%s</xliff:g> alkalmazás hitelesítést kér."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrikus hardver nem áll rendelkezésre"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Hitelesítés megszakítva"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nem ismerhető fel"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Hitelesítés megszakítva"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"A rendszer az ujjlenyomatnak csak egy részletét érzékelte. Próbálkozzon újra."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nem sikerült feldolgozni az ujjlenyomatot. Próbálkozzon újra."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Az ujjlenyomat-olvasó koszos. Tisztítsa meg, majd próbálkozzon újra."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"megjelenítés a képernyőn lévő egyéb alkalmazások előtt"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Információs értesítés a rutinmódról"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Előfordulhat, hogy az akkumulátor lemerül a szokásos töltési időszak előtt"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Akkumulátorkímélő mód aktiválva az akkumulátor üzemidejének növelése érdekében"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Betöltés"</string>
 </resources>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index 84280ac..e873140 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Թույլ է տալիս հավելվածին ճանաչել տեղադրության մասին տվյալները ձեր մեդիա բովանդակության հավաքածուից:"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> հավելվածը նույնականացում է հարցում"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Կենսաչափական սարքը հասանելի չէ"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Նույնականացումը չեղարկվեց"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Չհաջողվեց ճանաչել"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Նույնականացումը չեղարկվեց"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Մատնահետքը հայտնաբերվել է մասամբ: Փորձեք նորից:"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Չհաջողվեց մշակել մատնահետքը: Նորից փորձեք:"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Մատնահետքերի սենսորն աղտոտված է: Մաքրեք այն և փորձեք նորից:"</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Տեսախցիկ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Խոսափող"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ցուցադրվում է մյուս հավելվածների վերևում"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Ծանուցում լիցքավորման մասին"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Մարտկոցի լիցքը կարող է սովորականից շուտ սպառվել"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Մարտկոցի կյանքը երկարացնելու համար ակտիվացվել է մարտկոցի տնտեսման ռեժիմը"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Բեռնում"</string>
 </resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 905d3f2..299305f 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Mengizinkan aplikasi untuk membaca lokasi dari koleksi media Anda."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplikasi <xliff:g id="APP">%s</xliff:g> meminta autentikasi."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Hardware biometrik tidak tersedia"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autentikasi dibatalkan"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Tidak dikenali"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autentikasi dibatalkan"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Sebagian sidik jari terdeteksi. Coba lagi."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Tidak dapat memproses sidik jari. Coba lagi."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sensor sidik jari kotor. Bersihkan dan coba lagi."</string>
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index 432fc7e..94030bb 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Leyfir forritinu að lesa staðsetningar úr efnissafninu þínu."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> forritið vill staðfestingu."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Lífkennavélbúnaður ekki tiltækur"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Hætt við auðkenningu"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Þekktist ekki"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Hætt við auðkenningu"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Hluti fingrafars greindist. Reyndu aftur."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Ekki var hægt að vinna úr fingrafarinu. Reyndu aftur."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingrafaraskynjarinn er óhreinn. Hreinsaðu hann og reyndu aftur."</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index d76049d..3be8acb 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Consente all\'app di leggere le posizioni dalla tua raccolta multimediale."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"L\'app <xliff:g id="APP">%s</xliff:g> richiede l\'autenticazione."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Hardware biometrico non disponibile"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autenticazione annullata"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Non riconosciuto"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autenticazione annullata"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Rilevata impronta digitale parziale. Riprova."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Impossibile elaborare l\'impronta digitale. Riprova."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Il sensore di impronte digitali è sporco. Puliscilo e riprova."</string>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index df9631e..d3cdd09 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -539,11 +539,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"מאפשרת לאפליקציה לקרוא מיקומים מאוסף המדיה שלך."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"האפליקציה <xliff:g id="APP">%s</xliff:g> רוצה לבצע אימות."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"חומרה ביומטרית לא זמינה"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"האימות בוטל"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"לא זוהתה"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"האימות בוטל"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"זוהתה טביעת אצבע חלקית. נסה שוב."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"לא ניתן היה לעבד את טביעת האצבע. נסה שוב."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"החיישן של טביעות האצבעות מלוכלך. נקה אותו ונסה שוב."</string>
@@ -2049,11 +2047,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"מצלמה"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"מיקרופון"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"תצוגה מעל אפליקציות אחרות במסך"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"התראת מידע לגבי מצב שגרתי"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"הסוללה עלולה להתרוקן לפני המועד הרגיל של הטעינה"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"תכונת החיסכון בסוללה הופעלה כדי להאריך את חיי הסוללה"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"בטעינה"</string>
 </resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 991ef13..583ed78 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"メディア コレクションの位置情報の読み取りをアプリに許可します。"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"アプリ <xliff:g id="APP">%s</xliff:g> が認証を求めています。"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"生体認証ハードウェアが利用できません"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"認証をキャンセルしました"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"認識されませんでした"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"認証をキャンセルしました"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"指紋を一部しか検出できませんでした。もう一度お試しください。"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"指紋を処理できませんでした。もう一度お試しください。"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指紋認証センサーに汚れがあります。汚れを落としてもう一度お試しください。"</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"カメラ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"マイク"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"画面の他のアプリの上に重ねて表示"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"ルーティン モード情報の通知"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"通常の充電を行う前に電池が切れる可能性があります"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"電池を長持ちさせるため、バッテリー セーバーが有効になりました"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"読み込んでいます"</string>
 </resources>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index cfce254..2356fd4 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"აპი შეძლებს მდებარეობების გაცნობას თქვენი მედიაკოლექციიდან."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"აპლიკაცია <xliff:g id="APP">%s</xliff:g> ითხოვს ავტორიზაციას."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"ბიომეტრიული აპარატურა მიუწვდომელია"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"ავტორიზაცია გაუქმდა"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"არ არის ამოცნობილი"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"ავტორიზაცია გაუქმდა"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"აღმოჩენილია თითის ნაწილობრივი ანაბეჭდი. გთხოვთ, სცადოთ ხელახლა."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"თითის ანაბეჭდი ვერ მუშავდება. გთხოვთ, სცადოთ ხელახლა."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"თითის ანაბეჭდის სენსორი დაბინძურებულია. გთხოვთ, გაასუფთაოთ და სცადოთ ხელახლა."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"კამერა"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"მიკროფონი"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"სხვა აპების გადაფარვით ჩანს თქვენს ეკრანზე"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"რუტინის რეჟიმის საინფორმაციო შეტყობინება"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"ბატარეა შეიძლება დაჯდეს დატენის ჩვეულ დრომდე"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"ბატარეის დამზოგი გააქტიურდა ბატარეის მუშაობის გასახანგრძლივლებლად"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"იტვირთება"</string>
 </resources>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index fb70fa9..f714ebe 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Қолданбаға медиамазмұн жинағынан геодеректерді оқуға мүмкіндік береді."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> қолданбасына аутентификация қажет."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Биометрикалық жабдық жоқ"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Аутентификациядан бас тартылды."</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Танылмады"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Аутентификациядан бас тартылды."</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Саусақ ізі ішінара анықталды. Әрекетті қайталаңыз."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Саусақ ізін өңдеу мүмкін емес. Әрекетті қайталаңыз."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Саусақ ізі сенсоры лас. Тазалап, әрекетті қайталаңыз."</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"экранда басқа қолданбалардың үстінен көрсету"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Режим туралы хабарландыру"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Батарея заряды азаюы мүмкін"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Батарея ұзаққа жетуі үшін, Battery Saver іске қосылды"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Жүктелуде"</string>
 </resources>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 9cc64ab..aa1adc8 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"អនុញ្ញាតឱ្យ​កម្មវិធី​អាន​ទីតាំង​ពីបណ្ដុំ​មេឌៀ​របស់​អ្នក។"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"កម្មវិធី <xliff:g id="APP">%s</xliff:g> ចង់​ធ្វើ​កា​រផ្ទៀងផ្ទាត់។"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"មិនអាច​ប្រើឧបករណ៍​ស្កេន​ស្នាមម្រាមដៃ​បានទេ"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"បាន​បោះបង់​ការ​ផ្ទៀងផ្ទាត់"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"មិនអាចសម្គាល់បានទេ"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"បាន​បោះបង់​ការ​ផ្ទៀងផ្ទាត់"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"បានផ្តិតយកស្នាមម្រាមដៃមិនពេញលក្ខណៈ។ សូមព្យាយាមម្តងទៀត។"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"មិនអាចដំណើរការស្នាមម្រាមដៃបានទេ។ សូមព្យាយាមម្តងទៀត។"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ឧបករណ៍ផ្តិតម្រាមដៃប្រលាក់ហើយ។ សូមសម្អាត ហើយព្យាយាមម្តងទៀត។"</string>
@@ -1981,11 +1979,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"កាមេរ៉ា"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"មីក្រូហ្វូន"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"កំពុងបង្ហាញ​ពីលើកម្មវិធីផ្សេងទៀត​នៅលើអេក្រង់​របស់អ្នក"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"ការ​ជូនដំណឹង​ព័ត៌មាន​របស់​មុខងារ​ទម្លាប់"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"ថ្ម​អាច​នឹង​អស់ មុនពេល​សាកថ្មធម្មតា"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"បាន​បើក​ដំណើរការកម្មវិធី​សន្សំ​ថ្ម ដើម្បីបង្កើនកម្រិត​ថាមពល​​ថ្ម"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"កំពុងផ្ទុក"</string>
 </resources>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index d6cde26..f33e297 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"ನಿಮ್ಮ ಮೀಡಿಯಾ ಸಂಗ್ರಹಣೆಯಿಂದ ಸ್ಥಳಗಳನ್ನು ಓದಲು ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> ಆ್ಯಪ್‌ಗೆ ದೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"ಬಯೋಮೆಟ್ರಿಕ್ ಹಾರ್ಡ್‌ವೇರ್‌ ಲಭ್ಯವಿಲ್ಲ"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"ಪ್ರಮಾಣೀಕರಣವನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"ಗುರುತಿಸಲಾಗಿಲ್ಲ"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"ಪ್ರಮಾಣೀಕರಣವನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ಭಾಗಶಃ ಬೆರಳಚ್ಚು ಪತ್ತೆಯಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ಬೆರಳಚ್ಚು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ಬೆರಳಚ್ಚು ಸೆನ್ಸಾರ್ ಕೊಳೆಯಾಗಿದೆ. ದಯವಿಟ್ಟು ಅದನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ಕ್ಯಾಮರಾ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ಮೈಕ್ರೋಫೋನ್‌"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಮೂಲಕ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"ದೈನಂದಿನ ಸ್ಥಿತಿಯ ಮಾಹಿತಿಯ ಅಧಿಸೂಚನೆ"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"ಚಾರ್ಜ್‌ಗೆ ಮೊದಲೆ ಬ್ಯಾಟರಿ ಮುಗಿದು ಬಿಡಬಹುದು"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"ಬ್ಯಾಟರಿ ಅವಧಿ ಹೆಚ್ಚಿಸಲು ಬ್ಯಾಟರಿ ಸೇವರ್ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"ಲೋಡ್ ಆಗುತ್ತಿದೆ"</string>
 </resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 05ab555..0e725a3 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"앱에서 미디어 컬렉션의 위치를 읽도록 허용합니다."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> 애플리케이션에서 인증을 요청합니다"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"생체 인식 하드웨어를 사용할 수 없음"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"인증이 취소되었습니다."</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"인식할 수 없음"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"인증이 취소되었습니다."</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"지문이 일부만 인식되었습니다. 다시 시도해 주세요."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"지문을 인식할 수 없습니다. 다시 시도해 주세요."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"지문 센서를 깨끗이 닦고 다시 시도하세요."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"카메라"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"마이크"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"화면에서 다른 앱 위에 표시"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"루틴 모드 정보 알림"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"평소에 충전하는 시간 전에 배터리가 소진될 수 있습니다."</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"배터리 수명을 연장하기 위해 배터리 세이버가 활성화되었습니다."</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"로드 중"</string>
 </resources>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index 88f0ef2..3e3ef6a 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Колдонмого медиа жыйнагыңыз сакталган жерлерди окууга мүмкүнчүлүк берет."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> колдонмосунда аутентификациядан өтүңүз."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Биометрикалык аппарат жеткиликсиз"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Аныктыгын текшерүү жокко чыгарылды"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Таанылган жок"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Аныктыгын текшерүү жокко чыгарылды"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Манжа изи жарым-жартылай аныкталды. Кайра аракет кылыңыз."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Манжа изи иштелбей койду. Кайра аракет кылыңыз."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Манжа изинин сенсору кирдеп калган. Тазалап, кайра аракет кылыңыз."</string>
@@ -1981,11 +1979,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"экрандагы башка терезелердин үстүнөн көрсөтүлүүдө"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Режимдин адаттагы билдирмеси"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Батарея кубаттоого чейин отуруп калышы мүмкүн"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Батареянын отуруп калбашы үчүн Батареяны үнөмдөгүч режими иштетилди"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Жүктөлүүдө"</string>
 </resources>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index 7a5ab96..a63cd59 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"ອະນຸຍາດໃຫ້ແອັບອ່ານສະຖານທີ່ຈາກຄໍເລັກຊັນມີເດຍຂອງທ່ານ."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"ແອັບພລິເຄຊັນ <xliff:g id="APP">%s</xliff:g> ຕ້ອງການກວດຮັບຮອງຄວາມຖືກຕ້ອງ."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"ຮາດແວຊີວະມິຕິບໍ່ສາມາດໃຊ້ໄດ້"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"ຍົກເລີກການຮັບຮອງຄວາມຖືກຕ້ອງແລ້ວ"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"ບໍ່ຮັບຮູ້"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"ຍົກເລີກການຮັບຮອງຄວາມຖືກຕ້ອງແລ້ວ"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ກວດ​ພົບ​ລາຍ​ນີ້ວ​ມື​ບາງ​ສ່ວນ​ແລ້ວ. ກະ​ລຸ​ນາ​ລອງ​ໃໝ່​ອີກ."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ບໍ່​ສາ​ມາດ​ດຳ​ເນີນ​ການ​ລາຍ​ນີ້ວ​ມື​ໄດ້. ກະ​ລຸ​ນາ​ລອງ​ໃໝ່​ອີກ."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ເຊັນ​ເຊີ​ລາຍ​ນີ້ວ​ມື​ເປື້ອນ. ກະ​ລຸ​ນາ​ທຳ​ຄວາມ​ສະ​ອາດ ແລະ​ລອງ​ໃໝ່​ອີກ."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ກ້ອງ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ໄມໂຄຣໂຟນ"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ສະແດງຜົນບັງແອັບອື່ນຢູ່ໜ້າຈໍຂອງທ່ານ"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"ການແຈ້ງເຕືອນຂໍ້ມູນໂໝດກິດຈະວັດປະຈຳວັນ"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"ແບັດເຕີຣີອາດໝົດກ່ອນການສາກຕາມປົກກະຕິ"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"ເປີດຕົວປະຢັດແບັດເຕີຣີເພື່ອຂະຫຍາຍອາຍຸແບັດເຕີຣີ"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"ກຳລັງໂຫລດ"</string>
 </resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 90ed406..0c0887b 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -539,11 +539,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Programai leidžiama skaityti vietoves iš medijos kolekcijos."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Programa „<xliff:g id="APP">%s</xliff:g>“ nori jus autentifikuoti."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrinė aparatinė įranga nepasiekiama"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autentifikavimas atšauktas"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Neatpažinta"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autentifikavimas atšauktas"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Aptiktas dalinis piršto antspaudas. Bandykite dar kartą."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nepavyko apdoroti piršto antspaudo. Bandykite dar kartą."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Piršto antspaudo jutiklis purvinas. Nuvalykite ir bandykite dar kartą."</string>
@@ -2049,11 +2047,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Fotoaparatas"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofonas"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"rodo virš kitų programų jūsų ekrane"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Veiksmų sekos režimo informacijos pranešimas"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Akumuliatoriaus energija gali išsekti prieš įprastą įkrovimą"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Akumuliatoriaus tausojimo priemonė suaktyvinta, kad akumuliatorius veiktų ilgiau"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Įkeliama"</string>
 </resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index e58b462..b802fee 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -536,11 +536,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Ļauj lietotnei lasīt atrašanās vietas no jūsu multivides kolekcijas."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Lietotne <xliff:g id="APP">%s</xliff:g> pieprasa autentificēt."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrisko datu aparatūra nav pieejama"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autentifikācija ir atcelta"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Dati nav atpazīti"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autentifikācija ir atcelta"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Noteikts daļējs pirksta nospiedums. Lūdzu, mēģiniet vēlreiz."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nevarēja apstrādāt pirksta nospiedumu. Lūdzu, mēģiniet vēlreiz."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Pirkstu nospiedumu sensors ir netīrs. Lūdzu, notīriet to un mēģiniet vēlreiz."</string>
@@ -2014,11 +2012,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofons"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"rāda pāri citām lietotnēm jūsu ekrānā"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Informatīvs paziņojums par akumulatoru"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Akumulators var izlādēties pirms parastā uzlādes laika"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Aktivizēts akumulatora jaudas taupīšanas režīms, lai palielinātu akumulatora darbības ilgumu"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Ielāde"</string>
 </resources>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index 8bede29..9c66edc 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Дозволува апликацијата да чита локации од вашата збирка на аудиовизуелни содржини."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Апликацијата <xliff:g id="APP">%s</xliff:g> сака да ве провери."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Биометрискиот хардвер е недостапен"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Проверката е откажана"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Непознат"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Проверката е откажана"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Откриен е делумен отпечаток. Обидете се повторно."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Отпечатокот не можеше да се обработи. Обидете се повторно."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Сензорот за отпечатоци е валкан. Исчистете го и обидете се повторно."</string>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index 190341b..76d2daf 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"നിങ്ങളുടെ മീഡിയ ശേഖരത്തിൽ നിന്നും ലൊക്കേഷനുകൾ റീഡ് ചെയ്യുന്നതിന് ആപ്പിനെ അനുവദിക്കുന്നു."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> ആപ്പിന് നിങ്ങളെ പരിശോധിച്ചുറപ്പിക്കണം."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"ബയോമെട്രിക് ഹാർ‌ഡ്‌വെയർ ലഭ്യമല്ല"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"പരിശോധിച്ചുറപ്പിക്കൽ റദ്ദാക്കി"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"തിരിച്ചറിഞ്ഞില്ല"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"പരിശോധിച്ചുറപ്പിക്കൽ റദ്ദാക്കി"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"വിരലടയാളം ഭാഗികമായി തിരിച്ചറിഞ്ഞു. വീണ്ടും ശ്രമിക്കുക."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"വിരലടയാളം പ്രോസസ്സ് ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുക."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"വിരലടയാള സെൻസറിന് വൃത്തിയില്ല. അത് ശുചിയാക്കി വീണ്ടും ശ്രമിക്കുക."</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ക്യാമറ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"മൈക്രോഫോൺ"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"നിങ്ങളുടെ സ്‌ക്രീനിലെ മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ പ്രദർശിപ്പിക്കുന്നു"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"ദിനചര്യ മോഡ് വിവരത്തെ കുറിച്ചുള്ള അറിയിപ്പ്"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"സാധാരണയുള്ളതിലും നേരത്തെ ബാറ്ററിയുടെ ചാർജ് തീർന്നേക്കാം"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"ബാറ്ററി ലൈഫ് വര്‍ദ്ധിപ്പിക്കാൻ, ബാറ്ററി ലാഭിക്കൽ സജീവമാക്കി"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"ലോഡ് ചെയ്യുന്നു"</string>
 </resources>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index f22974d..1e2746c 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Таны медиа цуглуулгаас байршлыг унших зөвшөөрлийг аппад олгодог."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> апп баталгаажуулахыг хүсэж байна."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Биометрийн техник хангамж боломжгүй байна"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Нотолгоог цуцаллаа"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Таниагүй"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Нотолгоог цуцаллаа"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Хурууны хээг дутуу уншуулсан байна. Дахин оролдоно уу."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Хурууны хээ боловсруулж чадахгүй байна. Дахин оролдоно уу."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Хурууны хээ мэдрэгч бохирдсон байна. Та цэвэрлэсний дараагаар дахин оролдоно уу."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камер"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"таны дэлгэцэд бусад аппын дээр харуулж байна"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Хэвшлийн горимын мэдээллийн мэдэгдэл"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Батарей ихэвчлэн цэнэглэдэг хугацаанаас өмнө дуусаж болзошгүй"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Батарейны ажиллах хугацааг уртасгахын тулд Батарей хэмнэгчийг идэвхжүүллээ"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Ачаалж байна"</string>
 </resources>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 1792887..240a3bf 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"अॅपला तुमच्या मीडिया संग्रहामध्येील स्थाने वाचण्यासाठी अनुमती देते."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"अॅप्लिकेशन <xliff:g id="APP">%s</xliff:g>ला ऑथेंटिकेट करायचे आहे."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"बायोमेट्रिक हार्डवेअर उपलब्ध नाही"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"ऑथेंटिकेशन रद्द केले"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"ओळखले नाही"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"ऑथेंटिकेशन रद्द केले"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"आंशिक फिंगरप्रिंट आढळली. कृपया पुन्हा प्रयत्न करा."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"फिंगरप्रिंटवर प्रक्रिया करणे शक्य झाले नाही. कृपया पुन्हा प्रयत्न करा."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"फिंगरप्रिंट सेन्सर खराब आहे. कृपया साफ करा आणि पुन्हा प्रयत्न करा."</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"कॅमेरा"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"मायक्रोफोन"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"तुमच्‍या स्‍क्रीनवर इतर अॅप्‍सवर डिस्‍प्‍ले करत आहे"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"दिनक्रम मोडची माहिती सूचना"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"चार्जिंगची सामान्य पातळी गाठेपर्यंत कदाचित बॅटरी संपू शकते"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"बॅटरी लाइफ वाढवण्यासाठी बॅटरी सेव्हर सुरू केला आहे"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"लोड होत आहे"</string>
 </resources>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 1055ca6..c3c863a 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Membenarkan apl membaca lokasi daripada koleksi media anda."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplikasi <xliff:g id="APP">%s</xliff:g> mahu membuat pengesahan."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Perkakasan biometrik tidak tersedia"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Pengesahan dibatalkan"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Tidak dikenali"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Pengesahan dibatalkan"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Cap jari separa dikesan. Sila cuba lagi."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Tidak dapat memproses cap jari. Sila cuba lagi."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Penderia cap jari kotor. Sila bersihkan dan cuba lagi."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"dipaparkan di atas apl lain pada skrin anda"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Pemberitahuan maklumat Mod Rutin"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Bateri mungkin habis sebelum pengecasan biasa"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Penjimat Bateri diaktifkan untuk memanjangkan hayat bateri"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Memuatkan"</string>
 </resources>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index 651affc..c036730 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"အက်ပ်အား သင့်မီဒီယာစုစည်းမှုမှ တည်နေရာများကို ဖတ်ခွင့်ပေးသည်။"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"အပလီကေးရှင်း <xliff:g id="APP">%s</xliff:g> က အထောက်အထားစိစစ်လိုသည်။"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"ဇီဝအချက်အလက်သုံး ကွန်ပျူတာစက်ပစ္စည်း မရရှိနိုင်ပါ"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"အထောက်အထားစိစစ်ခြင်းကို ပယ်ဖျက်လိုက်သည်"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"မသိပါ"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"အထောက်အထားစိစစ်ခြင်းကို ပယ်ဖျက်လိုက်သည်"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"လက်ဗွေရဦ တစ်ပိုင်းတစ်စ တွေ့ရှိသည်။ ကျေးဇူးပြု၍ ထပ်မံကြိုးစားပါ။"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"လက်ဗွေရာယူခြင်း မဆောင်ရွက်နိုင်ပါ။ ထပ်မံကြိုးစားပါ။"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"လက်ဗွေရာဖတ်ကိရိယာ ညစ်ပေနေသည်။ ကျေးဇူးပြု၍ ရှင်းလင်းကာ ထပ်မံကြိုးစားပါ။"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 1f70767..e479834 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Lar appen lese posisjoner fra mediesamlingen din."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Appen <xliff:g id="APP">%s</xliff:g> vil autentisere."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrisk maskinvare er utilgjengelig"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autentiseringen er avbrutt"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Ikke gjenkjent"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autentiseringen er avbrutt"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Deler av fingeravtrykket er registrert. Prøv på nytt."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Kunne ikke registrere fingeravtrykket. Prøv på nytt."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingeravtrykksensoren er skitten. Rengjør den og prøv på nytt."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"vises over andre apper på skjermen"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Varsel med informasjon om rutinemodus"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Batteriet kan gå tomt før den vanlige ladingen"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Batterisparing er aktivert for å forlenge batterilevetiden"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Laster inn"</string>
 </resources>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index d278fbe..b892255 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"यसले अनुप्रयोगलाई तपाईंको मिडिया सङ्ग्रहका स्थानहरू पढ्न दिन्छ।"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"अनुप्रयोग <xliff:g id="APP">%s</xliff:g> ले प्रमाणीकरण गर्न चाहन्छ।"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"बायोमेट्रिक हार्डवेयर उपलब्ध छैन"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"प्रमाणीकरण रद्द गरियो"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"पहिचान भएन"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"प्रमाणीकरण रद्द गरियो"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"आंशिक औठाछाप पत्ता लाग्यो। कृपया फेरि प्रयास गर्नुहोस्।"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"औठाछाप प्रशोधन गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"औँठाछाप सेन्सर फोहोर छ। कृपया सफा गरेर फेरि प्रयास गर्नुहोस्।"</string>
@@ -1985,11 +1983,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"क्यामेरा"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"माइक्रोफोन"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"तपाईंको स्क्रिनका अन्य अनुप्रयोगहरूमा प्रदर्शन गरिँदै छ"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"दिनचर्या मोडको जानकारीमूलक सूचना"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"प्रायः चार्ज गर्ने समय हुनुभन्दा पहिले नै ब्याट्री सकिन सक्छ"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"ब्याट्रीको आयु बढाउन ब्याट्री सेभर सक्रिय गरियो"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"लोड गर्दै"</string>
 </resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 752fbc2..c552f00 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Hiermee sta je de app toe locaties van je mediacollectie te bekijken."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"App <xliff:g id="APP">%s</xliff:g> wil een verificatie uitvoeren."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrische hardware niet beschikbaar"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Verificatie geannuleerd"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Niet herkend"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Verificatie geannuleerd"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Gedeeltelijke vingerafdruk gedetecteerd. Probeer het opnieuw."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Kan vingerafdruk niet verwerken. Probeer het opnieuw."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"De vingerafdruksensor moet worden schoongemaakt. Probeer het daarna opnieuw."</string>
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index f2c0f62..57d39ce 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"ଆପଣଙ୍କ ମିଡିଆ ସଂଗ୍ରହ ଠାରୁ ଅବସ୍ଥାନଗୁଡିକୁ ପଢିବାକୁ ଆପ୍‍ ଅନୁମତି ଦେଇଥାଏ।"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"ଆପ୍ଲିକେସନ୍ <xliff:g id="APP">%s</xliff:g> ପ୍ରମାଣିତକୃତ କରିବାକୁ ଚାହୁଁଛି।"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"ବାୟୋମେଟ୍ରିକ୍‌ ହାର୍ଡୱେର୍‌ ଉପଲବ୍ଧ ନାହିଁ"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"ପ୍ରାମାଣିକତାକୁ ବାତିଲ୍ କରାଯାଇଛି"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"ଚିହ୍ନଟ ହେଲାନାହିଁ"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"ପ୍ରାମାଣିକତାକୁ ବାତିଲ୍ କରାଯାଇଛି"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ଆଙ୍ଗୁଠି ଚିହ୍ନ ଆଂଶିକ ଚିହ୍ନଟ ହେଲା। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ଆଙ୍ଗୁଠି ଚିହ୍ନ ପ୍ରୋସେସ୍‍ କରାଯାଇପାରିଲା ନାହିଁ। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ଆଙ୍ଗୁଠି ଚିହ୍ନ ସେନ୍ସର୍‍ ମଇଳା ହୋଇଯାଇଛି। ଦୟାକରି ସଫା କରନ୍ତୁ ଓ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"କ୍ୟାମେରା"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ମାଇକ୍ରୋଫୋନ୍"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ଆପଣଙ୍କ ସ୍କ୍ରୀନ୍ ଉପରେ ଥିବା ଅନ୍ୟ ଆପ୍‌ ଉପରେ ଦେଖାଦେବ"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"ନିୟମିତ ମୋଡ୍‍ ସୂଚନା ବିଜ୍ଞପ୍ତି"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"ସାଧାରଣ ଭାବରେ ଚାର୍ଜ୍ କରିବା ପୂର୍ବରୁ ବ୍ୟାଟେରୀ ସରିଯାଇପାରେ"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"ବ୍ୟାଟେରୀର ସମୟକୁ ବଢ଼ାଇବା ପାଇଁ ବ୍ୟଟେରୀ ସେଭର୍‍କୁ କାର୍ଯ୍ୟକାରୀ କରାଯାଇଛି"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"ଲୋଡ୍ ହେଉଛି"</string>
 </resources>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index 266b226..85afacb 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਮੀਡੀਆ ਸੰਗ੍ਰਹਿ ਦੇ ਟਿਕਾਣਿਆਂ ਨੂੰ ਪੜ੍ਹਨ ਦਿੰਦੀ ਹੈ।"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"ਐਪਲੀਕੇਸ਼ਨ <xliff:g id="APP">%s</xliff:g> ਪ੍ਰਮਾਣੀਕਰਨ ਕਰਨਾ ਚਾਹੁੰਦੀ ਹੈ।"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"ਬਾਇਓਮੈਟ੍ਰਿਕ ਹਾਰਡਵੇਅਰ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"ਪ੍ਰਮਾਣੀਕਰਨ ਰੱਦ ਕੀਤਾ ਗਿਆ"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"ਪਛਾਣ ਨਹੀਂ ਹੋਈ"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"ਪ੍ਰਮਾਣੀਕਰਨ ਰੱਦ ਕੀਤਾ ਗਿਆ"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ਅਧੂਰਾ ਫਿੰਗਰਪ੍ਰਿਟ ਮਿਲਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨਹੀਂ ਕਰ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੰਵੇਦਕ ਗੰਦਾ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਇਸਨੂੰ ਸਾਫ਼ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"ਕੈਮਰਾ"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ਮਾਈਕ੍ਰੋਫ਼ੋਨ"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ \'ਤੇ ਹੋਰਾਂ ਐਪਾਂ ਉੱਪਰ ਦਿਖਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"ਨਿਯਮਬੱਧ ਮੋਡ ਦੀ ਜਾਣਕਾਰੀ ਵਾਲੀ ਸੂਚਨਾ"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"ਬੈਟਰੀ ਚਾਰਜ ਕਰਨ ਦੇ ਮਿੱਥੇ ਸਮੇਂ ਤੋਂ ਪਹਿਲਾਂ ਸ਼ਾਇਦ ਬੈਟਰੀ ਖਤਮ ਹੋ ਜਾਵੇ"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"ਬੈਟਰੀ ਲਾਈਫ਼ ਵਧਾਉਣ ਲਈ ਬੈਟਰੀ ਸੇਵਰ ਚਾਲੂ ਕੀਤਾ ਗਿਆ"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
 </resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index a86d5a6..08d56e4 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -539,11 +539,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Zezwala aplikacji na odczytywanie lokalizacji z kolekcji multimediów."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplikacja <xliff:g id="APP">%s</xliff:g> wymaga uwierzytelnienia."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Sprzęt biometryczny niedostępny"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Anulowano uwierzytelnianie"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nie rozpoznano"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Anulowano uwierzytelnianie"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Odcisk palca został odczytany tylko częściowo. Spróbuj ponownie."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nie udało się przetworzyć odcisku palca. Spróbuj ponownie."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Czytnik linii papilarnych jest zabrudzony. Wyczyść go i spróbuj ponownie."</string>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 44f8478..38368d3 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite que o app leia os locais na sua coleção de mídias."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"O app <xliff:g id="APP">%s</xliff:g> está solicitando autenticação."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Hardware biométrico indisponível"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autenticação cancelada"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Não reconhecido"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autenticação cancelada"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Impressão digital parcial detectada. Tente novamente."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Não foi possível processar a impressão digital. Tente novamente."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impressão digital está sujo. Limpe-o e tente novamente."</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index f7ffa1d..67fe5b6 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite que a aplicação leia as localizações a partir da sua coleção de multimédia."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"A aplicação <xliff:g id="APP">%s</xliff:g> pretende uma autenticação"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Hardware biométrico indisponível."</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autenticação cancelada"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Não reconhecido."</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autenticação cancelada"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Impressão digital detetada. Tente novamente."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Não foi possível processar a impressão digital. Tente novamente."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impressões digitais está sujo. Limpe-o e tente novamente."</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 44f8478..38368d3 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite que o app leia os locais na sua coleção de mídias."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"O app <xliff:g id="APP">%s</xliff:g> está solicitando autenticação."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Hardware biométrico indisponível"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autenticação cancelada"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Não reconhecido"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autenticação cancelada"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Impressão digital parcial detectada. Tente novamente."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Não foi possível processar a impressão digital. Tente novamente."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impressão digital está sujo. Limpe-o e tente novamente."</string>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index f3303c4..501d7cc 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -536,11 +536,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Permite aplicației să citească locațiile din colecția dvs. media."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplicația <xliff:g id="APP">%s</xliff:g> dorește să se autentifice."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Hardware biometric indisponibil"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autentificarea a fost anulată"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nu este recunoscut"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autentificarea a fost anulată"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"S-a detectat parțial amprenta. Încercați din nou."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Amprenta nu a putut fi procesată. Încercați din nou."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzorul pentru amprente este murdar. Curățați-l și încercați din nou."</string>
@@ -2014,11 +2012,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Cameră foto"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Microfon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"se afișează peste alte aplicații de pe ecran"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Notificare pentru informații despre modul Rutină"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Bateria se poate descărca înainte de încărcarea obișnuită"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Economisirea bateriei este activată pentru a prelungi durata de funcționare a bateriei"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Se încarcă"</string>
 </resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index fde1c5d..8cb2d69 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -539,11 +539,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Приложение получит доступ к геоданным в вашей медиаколлекции."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Приложение \"<xliff:g id="APP">%s</xliff:g>\" запрашивает аутентификацию"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Биометрическое оборудование недоступно"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Аутентификация отменена"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Не распознано"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Аутентификация отменена"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Отсканирована только часть пальца. Повторите попытку."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Не удалось распознать отпечаток. Повторите попытку."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Очистите сканер и повторите попытку."</string>
@@ -2049,11 +2047,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Микрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"показ поверх других окон"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Уведомление о батарее"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Батарея может разрядиться"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Чтобы увеличить время работы от батареи, был включен режим энергосбережения."</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Загрузка"</string>
 </resources>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index baa0387..4163033 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"ඔබගේ මාධ්‍ය එකතුවෙන් ස්ථාන කියවීමට යෙදුමට ඉඩ දෙයි."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> යෙදුම වෙත සත්‍යාපනය කිරීමට අවශ්‍යයි."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"ජීවමිතික දෘඪාංග ලබා ගත නොහැකිය"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"සත්‍යාපනය අවලංගු කළා"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"හඳුනා නොගන්නා ලදී"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"සත්‍යාපනය අවලංගු කළා"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ඇඟිලි සලකුණ අඩ වශයෙන් අනාවරණය කර ගැනිණි. කරුණාකර නැවත උත්සාහ කරන්න."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ඇඟිලි සලකුණ පිරිසැකසීමට නොහැකි විය. කරුණාකර නැවත උත්සාහ කරන්න."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ඇඟිලි සලකුණු සංවේදකය අපිරිසිදුයි. කරුණාකර පිරිසිදු කර නැවත උත්සාහ කරන්න."</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 2942537..8905d2a 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -539,11 +539,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Umožňuje aplikácii čítať polohy zo zbierky médií."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplikácia <xliff:g id="APP">%s</xliff:g> chce overiť totožnosť"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrický hardvér nie je k dispozícii"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Overenie bolo zrušené"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nerozpoznané"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Overenie bolo zrušené"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Podarilo sa rozpoznať iba časť odtlačku prsta. Skúste to znova."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Odtlačok prsta sa nepodarilo spracovať. Skúste to znova."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Snímač odtlačkov je špinavý. Vyčistite ho a skúste to znova."</string>
@@ -2049,11 +2047,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Fotoaparát"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofón"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"sa zobrazuje cez ďalšie aplikácie na obrazovke"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Upozornenie s informáciami o rutinnom režime"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Batéria sa môže vybiť pred obvyklým nabitím"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Bol aktivovaný šetrič batérie na predĺženie výdrže batérie"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Načítava sa"</string>
 </resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index d3f0872..9c20748 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -539,11 +539,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Aplikaciji omogoča branje lokacij v predstavnostni zbirki."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplikacija <xliff:g id="APP">%s</xliff:g> želi preveriti pristnost."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Strojna oprema za biometrične podatke ni na voljo"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Preverjanje pristnosti je preklicano"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Ni prepoznano"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Preverjanje pristnosti je preklicano"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Zaznan delni prstni odtis. Poskusite znova."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Prstnega odtisa ni bilo mogoče obdelati. Poskusite znova."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Tipalo prstnih odtisov je umazano. Očistite ga in poskusite znova."</string>
@@ -2049,11 +2047,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Fotoaparat"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"prekriva druge aplikacije na zaslonu"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Rutinsko informativno obvestilo o načinu delovanja"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Akumulator se bo morda izpraznil, preden ga običajno priključite na polnjenje"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Vklopilo se je varčevanje z energijo akumulatorja za podaljšanje časa delovanja akumulatorja"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Nalaganje"</string>
 </resources>
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index 89afb1a..222b1d2 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Lejon aplikacionin të lexojë vendndodhjet nga koleksioni yt i medias."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Aplikacioni <xliff:g id="APP">%s</xliff:g> dëshiron të vërtetojë."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Nuk ofrohet harduer biometrik"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Vërtetimi u anulua"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Nuk njihet"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Vërtetimi u anulua"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"U zbulua një gjurmë gishti e pjesshme. Provo përsëri."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Gjurma e gishtit nuk mund të përpunohej. Provo përsëri."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sensori i gjurmës së gishtit nuk është i pastër. Pastroje dhe provo përsëri."</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 19f88cf..58fde19 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -536,11 +536,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Дозвољава апликацији да чита локације из медијске колекције."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Апликација <xliff:g id="APP">%s</xliff:g> жели да потврди ваш идентитет."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Биометријски хардвер није доступан"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Потврда идентитета је отказана"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Није препознато"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Потврда идентитета је отказана"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Откривен је делимични отисак прста. Пробајте поново."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Није успела обрада отиска прста. Пробајте поново."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Сензор за отиске прстију је прљав. Очистите га и покушајте поново."</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index fcae364..2412f64 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Tillåter att appen läser av platser i din mediesamling."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Appen <xliff:g id="APP">%s</xliff:g> vill autentisera"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrisk maskinvara är inte tillgänglig"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autentiseringen avbröts"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Identifierades inte"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autentiseringen avbröts"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Ofullständigt fingeravtryck. Försök igen."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Det gick inte att bearbeta fingeravtrycket. Försök igen."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingeravtryckssensorn är smutsig. Rengör den och försök igen."</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index be7c301..2e2904d 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Inaruhusu programu kusoma maeneo kwenye mkusanyiko wa vipengee vyako."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Programu ya <xliff:g id="APP">%s</xliff:g> inataka kuthibitishwa."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Maunzi ya bayometriki hayapatikani"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Imeghairi uthibitishaji"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Hayatambuliki"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Imeghairi uthibitishaji"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Kitambuzi kimegundua sehemu ya kitambulisho. Tafadhali jaribu tena."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Haikuweza kuchakata kitambulisho. Tafadhali jaribu tena."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Kitambuzi alama ya kidole ni kichafu. Tafadhali kisafishe na ujaribu tena."</string>
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index 117f071..b3c2ebf 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"உங்களின் மீடியா தொகுப்பிலிருந்து இடங்களை அறிந்துகொள்ள ஆப்ஸை அனுமதிக்கும்."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g>ஐப் பயன்படுத்த அங்கீகாரத்தை உறுதிசெய்க."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"பயோமெட்ரிக் வன்பொருள் இல்லை"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"அங்கீகரிப்பு ரத்தானது"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"அடையாளங்காணபடவில்லை"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"அங்கீகரிப்பு ரத்தானது"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"கைரேகையை ஓரளவுதான் கண்டறிய முடிந்தது. மீண்டும் முயலவும்."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"கைரேகையைச் செயலாக்க முடியவில்லை. மீண்டும் முயலவும்."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"கைரேகை உணர்வியில் தூசி உள்ளது. சுத்தம் செய்து, முயலவும்."</string>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 654585d..5d8c0a8 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"మీ మీడియా సేకరణ నుండి స్థానాలను చదవడానికి యాప్‌ను అనుమతిస్తుంది."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"అప్లికేషన్ <xliff:g id="APP">%s</xliff:g>కు ప్రమాణీకరణ అవసరం."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"బయోమెట్రిక్ హార్డ్‌వేర్‌ అందుబాటులో లేదు"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"ప్రమాణీకరణ రద్దు చేయబడింది"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"గుర్తించలేదు"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"ప్రమాణీకరణ రద్దు చేయబడింది"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"పాక్షిక వేలిముద్ర గుర్తించబడింది. దయచేసి మళ్లీ ప్రయత్నించండి."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"వేలిముద్రను ప్రాసెస్ చేయడం సాధ్యపడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"వేలిముద్ర సెన్సార్ మురికిగా ఉంది. దయచేసి శుభ్రపరిచి, మళ్లీ ప్రయత్నించండి."</string>
@@ -1528,7 +1526,7 @@
     <string name="action_menu_overflow_description" msgid="2295659037509008453">"మరిన్ని ఎంపికలు"</string>
     <string name="action_bar_home_description_format" msgid="7965984360903693903">"%1$s, %2$s"</string>
     <string name="action_bar_home_subtitle_description_format" msgid="6985546530471780727">"%1$s, %2$s, %3$s"</string>
-    <string name="storage_internal" msgid="3570990907910199483">"అంతర్గత భాగస్వామ్య నిల్వ"</string>
+    <string name="storage_internal" msgid="3570990907910199483">"షేర్ చేయబడిన అంతర్గత నిల్వ"</string>
     <string name="storage_sd_card" msgid="3282948861378286745">"SD కార్డు"</string>
     <string name="storage_sd_card_label" msgid="6347111320774379257">"<xliff:g id="MANUFACTURER">%s</xliff:g> SD కార్డ్"</string>
     <string name="storage_usb_drive" msgid="6261899683292244209">"USB డ్రైవ్"</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"కెమెరా"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"మైక్రోఫోన్"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"మీ స్క్రీన్‌పై ఇతర యాప్‌ల ద్వారా ప్రదర్శించబడుతోంది"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"రొటీన్ మోడ్ సమాచార నోటిఫికేషన్"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"మామూలుగా ఛార్జ్ చేసేలోపు బ్యాటరీ ఖాళీ కావచ్చు"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"బ్యాటరీ జీవితకాలాన్ని పెంచడానికి బ్యాటరీ సేవర్ యాక్టివేట్ చేయబడింది"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"లోడవుతోంది"</string>
 </resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index ca8f529..427793a 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"อนุญาตให้แอปอ่านตำแหน่งจากคอลเล็กชันสื่อของคุณ"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"แอปพลิเคชัน <xliff:g id="APP">%s</xliff:g> ต้องการตรวจสอบสิทธิ์"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"ฮาร์ดแวร์ไบโอเมตริกไม่พร้อมใช้งาน"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"ยกเลิกการตรวจสอบสิทธิ์แล้ว"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"ไม่รู้จัก"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"ยกเลิกการตรวจสอบสิทธิ์แล้ว"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"ตรวจพบลายนิ้วมือเพียงบางส่วน โปรดลองอีกครั้ง"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ไม่สามารถประมวลผลลายนิ้วมือได้ โปรดลองอีกครั้ง"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"เซ็นเซอร์ลายนิ้วมือไม่สะอาด โปรดทำความสะอาดและลองอีกครั้ง"</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"กล้อง"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"ไมโครโฟน"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"แสดงทับแอปอื่นๆ บนหน้าจอ"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"การแจ้งเตือนข้อมูลโหมดกิจวัตร"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"แบตเตอรี่อาจหมดก่อนการชาร์จปกติ"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"เปิดใช้งานโหมดประหยัดแบตเตอรี่แล้วเพื่อยืดอายุการใช้งานแบตเตอรี่"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"กำลังโหลด"</string>
 </resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 31d906f..cd4818f6 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Pinapayagan ang app na basahin ang mga lokasyon mula sa iyong koleksyon ng media."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Gustong mag-authenticate ng app na <xliff:g id="APP">%s</xliff:g>."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Walang biometric hardware"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Nakansela ang pag-authenticate"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Hindi nakilala"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Nakansela ang pag-authenticate"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Hindi buo ang natukoy na fingerprint. Pakisubukang muli."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Hindi maproseso ang fingerprint. Pakisubukang muli."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Marumi ang sensor ng fingerprint. Pakilinis at subukang muli."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Camera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikropono"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ipinapakita sa ibabaw ng ibang app sa iyong screen"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Notification ng impormasyon ng Routine Mode"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Maaaring maubos ang baterya bago ang karaniwang pag-charge"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Na-activate ang Pangtipid sa Baterya para patagalin ang buhay ng baterya"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Naglo-load"</string>
 </resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 75b19a9..92d3ba6 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Uygulamanın medya koleksiyonunuzdaki konumları okumasına izin verir."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> uygulaması kimlik doğrulamak istiyor."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biyometrik donanım kullanılamıyor"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Kimlik doğrulama iptal edildi"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Tanınmadı"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Kimlik doğrulama iptal edildi"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Parmak izinin tümü algılanamadı. Lütfen tekrar deneyin."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Parmak izi işlenemedi. Lütfen tekrar deneyin."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Parmak izi sensörü kirli. Lütfen temizleyin ve tekrar deneyin."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Kamera"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Mikrofon"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"ekranınızdaki diğer uygulamaların üzerinde görüntüleniyor"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Rutin Modu bilgi bildirimi"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Pil normal şarjdan önce bitebilir"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Pilin ömrünü uzatmak için Pil Tasarrufu etkinleştirildi"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Yükleniyor"</string>
 </resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 933d04a..80927ae 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -539,11 +539,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Додаток зможе розпізнавати геодані з вашої колекції медіа-вмісту."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Для додатка <xliff:g id="APP">%s</xliff:g> потрібна автентифікація."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Біометричне апаратне забезпечення недоступне"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Автентифікацію скасовано"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Не розпізнано"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Автентифікацію скасовано"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Відбиток розпізнано частково. Повторіть спробу."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Не вдалось обробити відбиток. Повторіть спробу."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Датчик відбитків забруднився. Очистьте його та повторіть спробу."</string>
@@ -2049,11 +2047,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Камера"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Мікрофон"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"показ поверх інших додатків на екрані"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Сповіщення про послідовнсть дій"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Акумулятор може розрядитися раніше ніж зазвичай"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Режим економії заряду акумулятора активовано для збільшення часу його роботи"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Завантаження"</string>
 </resources>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index 20f7621..9c99929 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"ایپ کو آپ کی میڈيا کے مجموعے سے مقامات پڑھنے کی اجازت دیتا ہے۔"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"ایپلیکیشن <xliff:g id="APP">%s</xliff:g> تصدیق کرنا چاہتی ہے۔"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"بایومیٹرک ہارڈ ویئر دستیاب نہیں ہے"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"تصدیق کا عمل منسوخ ہو گیا"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"تسلیم شدہ نہیں ہے"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"تصدیق کا عمل منسوخ ہو گیا"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"جزوی فنگر پرنٹ کی شناخت ہوئی۔ براہ کرم دوبارہ کوشش کریں۔"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"فنگر پرنٹ پر کارروائی نہیں کی جا سکی۔ براہ کرم دوبارہ کوشش کریں۔"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"فنگر پرنٹ سینسر گندا ہے۔ براہ کرم صاف کریں اور دوبارہ کوشش کریں۔"</string>
@@ -1980,11 +1978,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"کیمرا"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"مائیکروفون"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"آپ کی اسکرین پر دیگر ایپس پر دکھایا جا رہا ہے"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"روٹین موڈ معلومات کی اطلاع"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"معمول چارج سے پہلے بیٹری ختم ہو سکتی ہے"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"بیٹری لائف کو بڑھانے کے لیے بیٹری سیور کو فعال کر دیا گیا ہے"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"لوڈ ہو رہا ہے"</string>
 </resources>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index 3f20dc1..1b9982a 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Ilovaga multimedia to‘plamingizdan joylashuv axborotini o‘qishga ruxsat beradi."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g> ilovasi qurilma qulfini ochmoqchi."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Biometrik sensor ishlamayapti"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Autentifikatsiya bekor qilindi"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Aniqlanmadi"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Autentifikatsiya bekor qilindi"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Barmoq izi qisman aniqlandi. Qayta urinib ko‘ring."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Barmoq izi aniqlanmadi. Qayta urinib ko‘ring."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Barmoq izi skaneri kirlangan. Uni tozalab, keyin qayta urinib ko‘ring."</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 19c3913..ca283aa 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Cho phép ứng dụng này đọc vị trí từ bộ sưu tập phương tiện của bạn."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Ứng dụng <xliff:g id="APP">%s</xliff:g> muốn xác thực."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"Không có phần cứng sinh trắc học"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Đã hủy xác thực"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Không nhận dạng được"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Đã hủy xác thực"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Đã phát hiện được một phần vân tay. Vui lòng thử lại."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Không thể xử lý vân tay. Vui lòng thử lại."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Cảm biến vân tay bị bẩn. Hãy làm sạch và thử lại."</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"Máy ảnh"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"Micrô"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"hiển thị qua các ứng dụng khác trên màn hình của bạn"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"Thông báo cung cấp thông tin về chế độ sạc thông thường"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"Pin có thể hết trước khi sạc bình thường"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"Trình tiết kiệm pin được kích hoạt để kéo dài thời lượng pin"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"Đang tải"</string>
 </resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 6720132..c280ea8 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"允许该应用从您的媒体收藏中读取位置信息。"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"<xliff:g id="APP">%s</xliff:g>应用需要进行身份验证。"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"生物识别硬件无法使用"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"身份验证已取消"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"无法识别"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"身份验证已取消"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"仅检测到部分指纹,请重试。"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"无法处理指纹,请重试。"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指纹传感器有脏污。请擦拭干净,然后重试。"</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"相机"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"麦克风"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"显示在屏幕上其他应用的上层"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"日常安排模式信息通知"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"电池电量可能会在您平时的充电时间之前耗尽"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"已启用省电模式以延长电池续航时间"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"正在加载"</string>
 </resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 701e266..c2167b5 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"允許應用程式讀取媒體集的位置。"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"「<xliff:g id="APP">%s</xliff:g>」應用程式需要驗證。"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"無法使用生物識別硬件"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"已取消驗證"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"未能識別"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"已取消驗證"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"只偵測到部分指紋。請再試一次。"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"無法處理指紋。請再試一次。"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指紋感應器不乾淨。請清潔後再試一次。"</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"相機"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"麥克風"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"顯示在畫面上的其他應用程式上層"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"「日常安排模式」資料通知"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"電量可能會在日常充電前耗盡"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"「省電模式」已啟用,以便延長電池壽命"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"正在載入"</string>
 </resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 24a51bd..231a7e9 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"允許應用程式讀取你的媒體收藏的位置資訊。"</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"「<xliff:g id="APP">%s</xliff:g>」應用程式需要驗證使用者身分。"</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"無法使用生物特徵辨識硬體"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"已取消驗證"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"無法辨識"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"已取消驗證"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"僅偵測到部分指紋,請再試一次。"</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"無法處理指紋,請再試一次。"</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指紋感應器有髒汙。請清潔感應器,然後再試一次。"</string>
@@ -1979,11 +1977,8 @@
     <string name="notification_appops_camera_active" msgid="5050283058419699771">"相機"</string>
     <string name="notification_appops_microphone_active" msgid="4335305527588191730">"麥克風"</string>
     <string name="notification_appops_overlay_active" msgid="633813008357934729">"顯示在畫面上的其他應用程式上層"</string>
-    <!-- no translation found for dynamic_mode_notification_channel_name (2348803891571320452) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_title (508815255807182035) -->
-    <skip />
-    <!-- no translation found for dynamic_mode_notification_summary (2541166298550402690) -->
-    <skip />
+    <string name="dynamic_mode_notification_channel_name" msgid="2348803891571320452">"日常安排模式資訊通知"</string>
+    <string name="dynamic_mode_notification_title" msgid="508815255807182035">"電池電力可能會在你平常的充電時間前耗盡"</string>
+    <string name="dynamic_mode_notification_summary" msgid="2541166298550402690">"已啟用節約耗電量模式以延長電池續航力"</string>
     <string name="car_loading_profile" msgid="3545132581795684027">"載入中"</string>
 </resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index f819945..0f570b0 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -533,11 +533,9 @@
     <string name="permdesc_mediaLocation" msgid="2237023389178865130">"Ivumela uhlelo lokusebenza ukuthi lifunde izindawo kusukela kuqoqo lakho lemidiya."</string>
     <string name="biometric_dialog_default_title" msgid="4229778503907743328">"Uhlelo lokusebenza lwe-<xliff:g id="APP">%s</xliff:g> lifuna ukufakazela ubuqiniso."</string>
     <string name="biometric_error_hw_unavailable" msgid="645781226537551036">"I-Biometric hardware ayitholakali"</string>
-    <!-- no translation found for biometric_error_user_canceled (2260175018114348727) -->
-    <skip />
+    <string name="biometric_error_user_canceled" msgid="2260175018114348727">"Ukufakazela ubuqiniso kukhanseliwe"</string>
     <string name="biometric_not_recognized" msgid="5770511773560736082">"Akwaziwa"</string>
-    <!-- no translation found for biometric_error_canceled (349665227864885880) -->
-    <skip />
+    <string name="biometric_error_canceled" msgid="349665227864885880">"Ukufakazela ubuqiniso kukhanseliwe"</string>
     <string name="fingerprint_acquired_partial" msgid="735082772341716043">"Izigxivizo zeminwe ezincane zitholiwe. Sicela uzame futhi."</string>
     <string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Ayikwazanga ukucubungula izigxivizo zeminwe. Sicela uzame futhi."</string>
     <string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Inzwa yezigxivizo zeminwe ingcolile. Sicela uyihlanze uphinde uzame futhi."</string>
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index b15f72e..8ef264a 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -2797,6 +2797,9 @@
         <attr name="requiredSystemPropertyName" format="string" />
         <!-- @hide This shouldn't be public. -->
         <attr name="requiredSystemPropertyValue" format="string" />
+
+        <!-- The name of the overlayable whose resources will be overlaid. -->
+        <attr name="targetName" />
     </declare-styleable>
 
     <!-- Declaration of an {@link android.content.Intent} object in XML.  May
diff --git a/core/res/res/values/colors_device_defaults.xml b/core/res/res/values/colors_device_defaults.xml
index ded916f..824b4b5 100644
--- a/core/res/res/values/colors_device_defaults.xml
+++ b/core/res/res/values/colors_device_defaults.xml
@@ -43,6 +43,6 @@
     <color name="error_color_device_default_dark">@color/error_color_material_dark</color>
     <color name="error_color_device_default_light">@color/error_color_material_light</color>
 
-    <color name="list_divider_color_light">#64000000</color>
+    <color name="list_divider_color_light">#ffdadce0</color>
     <color name="list_divider_color_dark">#85ffffff</color>
 </resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 64fdc02..5995640 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -639,6 +639,9 @@
     <!-- Integer indicating RSSI boost given to current network -->
     <integer translatable="false" name="config_wifi_framework_current_network_boost">16</integer>
 
+    <!-- Integer delay in milliseconds before set wlan interface up during watchdog recovery -->
+    <integer translatable="false" name="config_wifi_framework_recovery_timeout_delay">2000</integer>
+
     <!-- Integer indicating how to handle beacons with uninitialized RSSI value of 0 -->
     <integer translatable="false" name="config_wifi_framework_scan_result_rssi_level_patchup_value">-85</integer>
 
@@ -1740,19 +1743,6 @@
          config_enableGeofenceOverlay is false. -->
     <string name="config_geofenceProviderPackageName" translatable="false">@null</string>
 
-    <!-- Whether to enable Hardware Activity-Recognition overlay which allows Hardware
-         Activity-Recognition to be replaced by an app at run-time. When disabled, only the
-         config_activityRecognitionHardwarePackageName package will be searched for
-         its implementation, otherwise packages whose signature matches the
-         signatures of config_locationProviderPackageNames will be searched, and
-         the service with the highest version number will be picked. Anyone who
-         wants to disable the overlay mechanism can set it to false.
-         -->
-    <bool name="config_enableActivityRecognitionHardwareOverlay" translatable="false">true</bool>
-    <!-- Package name providing Hardware Activity-Recognition API support. Used only when
-         config_enableActivityRecognitionHardwareOverlay is false. -->
-    <string name="config_activityRecognitionHardwarePackageName" translatable="false">@null</string>
-
     <!-- Package name(s) containing location provider support.
          These packages can contain services implementing location providers,
          such as the Geocode Provider, Network Location Provider, and
@@ -3449,7 +3439,7 @@
          See android.view.textclassifier.TextClassificationManager.
     -->
     <string name="config_defaultTextClassifierPackage" translatable="false"></string>
-    
+
     <!-- The package name for the default wellbeing app.
          This package must be trusted, as it has the permissions to control other applications
          on the device.
@@ -3457,6 +3447,12 @@
      -->
     <string name="config_defaultWellbeingPackage" translatable="false"></string>
 
+    <!-- The component name for the default system attention service.
+         This service must be trusted, as it can be activated without explicit consent of the user.
+         See android.attention.AttentionManagerService.
+    -->
+    <string name="config_defaultAttentionService" translatable="false"></string>
+
     <!-- The package name for the system's content capture service.
          This service must be trusted, as it can be activated without explicit consent of the user.
          If no service with the specified name exists on the device, content capture will be
@@ -3729,4 +3725,7 @@
 
     <!-- If the sensor that silences alerts is available or not. -->
     <bool name="config_silenceSensorAvailable">false</bool>
+
+    <!-- Enable Zram writeback feature to allow unused pages in zram be written to flash. -->
+    <bool name="config_zramWriteback">false</bool>
 </resources>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 05a156b..c870683 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -194,9 +194,6 @@
     <!-- The margin for text at the end of the image view for media notifications -->
     <dimen name="notification_media_image_margin_end">72dp</dimen>
 
-    <!-- The additional margin on the sides of the ambient view. -->
-    <dimen name="notification_extra_margin_ambient">16dp</dimen>
-
     <!-- The height of the notification action list -->
     <dimen name="notification_action_list_height">60dp</dimen>
 
@@ -233,9 +230,6 @@
     <!-- The bottom padding for the notification header -->
     <dimen name="notification_header_padding_bottom">16dp</dimen>
 
-    <!-- The margin at the top of the notification header when dozing. -->
-    <dimen name="notification_header_margin_top_ambient">3dp</dimen>
-
     <!-- The margin at the bottom of the notification header. -->
     <dimen name="notification_header_margin_bottom">0dp</dimen>
 
@@ -400,11 +394,6 @@
     <dimen name="notification_title_text_size">14sp</dimen>
     <!-- Size of smaller notification text (see TextAppearance.StatusBar.EventContent.Line2, Info, Time) -->
     <dimen name="notification_subtext_size">12sp</dimen>
-    <!-- Size of notification text (see TextAppearance.StatusBar.EventContent) -->
-    <dimen name="notification_ambient_text_size">16sp</dimen>
-    <!-- Size of notification text titles (see TextAppearance.StatusBar.EventContent.Title) -->
-    <dimen name="notification_ambient_title_text_size">24sp</dimen>
-
     <!-- Top padding for notifications in the standard layout. -->
     <dimen name="notification_top_pad">10dp</dimen>
 
diff --git a/core/res/res/values/styles_device_defaults.xml b/core/res/res/values/styles_device_defaults.xml
index 200ef2f..79afe69 100644
--- a/core/res/res/values/styles_device_defaults.xml
+++ b/core/res/res/values/styles_device_defaults.xml
@@ -271,9 +271,6 @@
     <style name="TextAppearance.DeviceDefault.Notification.Info" parent="TextAppearance.Material.Notification.Info">
         <item name="fontFamily">@string/config_bodyFontFamily</item>
     </style>
-    <style name="TextAppearance.DeviceDefault.Notification.Info.Ambient" parent="TextAppearance.Material.Notification.Info.Ambient">
-        <item name="fontFamily">@string/config_bodyFontFamily</item>
-    </style>
     <style name="TextAppearance.DeviceDefault.Widget" parent="TextAppearance.Material.Widget">
         <item name="fontFamily">@string/config_bodyFontFamily</item>
     </style>
diff --git a/core/res/res/values/styles_material.xml b/core/res/res/values/styles_material.xml
index 5a7199d..63ac0e6 100644
--- a/core/res/res/values/styles_material.xml
+++ b/core/res/res/values/styles_material.xml
@@ -487,10 +487,6 @@
 
     <style name="TextAppearance.Material.Notification.Time" parent="TextAppearance.Material.Notification.Info" />
 
-    <style name="TextAppearance.Material.Notification.Info.Ambient">
-        <item name="textSize">@dimen/notification_text_size</item>
-    </style>
-
     <style name="TextAppearance.Material.Notification.Emphasis">
         <item name="textColor">#66000000</item>
     </style>
@@ -1308,10 +1304,5 @@
         <item name="gravity">top</item>
     </style>
 
-    <style name="Notification.Header.Ambient">
-        <item name="layout_marginTop">@dimen/notification_header_margin_top_ambient</item>
-        <item name="gravity">top|center_horizontal</item>
-    </style>
-
 
 </resources>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 9317cff..53c33a3 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -422,6 +422,7 @@
   <java-symbol type="integer" name="config_wifi_framework_network_switch_tx_packet_threshold" />
   <java-symbol type="integer" name="config_wifi_framework_network_switch_rx_packet_threshold" />
   <java-symbol type="integer" name="config_wifi_framework_current_network_boost" />
+  <java-symbol type="integer" name="config_wifi_framework_recovery_timeout_delay" />
   <java-symbol type="integer" name="config_bluetooth_max_advertisers" />
   <java-symbol type="integer" name="config_bluetooth_max_scan_filters" />
   <java-symbol type="integer" name="config_bluetooth_max_connected_audio_devices" />
@@ -1852,7 +1853,6 @@
   <java-symbol type="bool" name="config_enableNightMode" />
   <java-symbol type="bool" name="config_tintNotificationActionButtons" />
   <java-symbol type="bool" name="config_dozeAfterScreenOffByDefault" />
-  <java-symbol type="bool" name="config_enableActivityRecognitionHardwareOverlay" />
   <java-symbol type="bool" name="config_enableFusedLocationOverlay" />
   <java-symbol type="bool" name="config_enableHardwareFlpOverlay" />
   <java-symbol type="bool" name="config_enableGeocoderOverlay" />
@@ -2021,7 +2021,6 @@
   <java-symbol type="string" name="car_mode_disable_notification_title" />
   <java-symbol type="string" name="chooser_wallpaper" />
   <java-symbol type="string" name="config_datause_iface" />
-  <java-symbol type="string" name="config_activityRecognitionHardwarePackageName" />
   <java-symbol type="string" name="config_fusedLocationProviderPackageName" />
   <java-symbol type="string" name="config_hardwareFlpPackageName" />
   <java-symbol type="string" name="config_geocoderProviderPackageName" />
@@ -3076,8 +3075,6 @@
 
   <java-symbol type="dimen" name="config_appTransitionAnimationDurationScaleDefault" />
 
-  <java-symbol type="layout" name="notification_template_material_ambient" />
-
   <!-- Network Recommendation -->
   <java-symbol type="string" name="config_defaultNetworkRecommendationProviderPackage" />
 
@@ -3237,8 +3234,6 @@
   <java-symbol type="string" name="time_picker_text_input_mode_description"/>
   <java-symbol type="string" name="time_picker_radial_mode_description"/>
 
-  <java-symbol type="layout" name="notification_template_ambient_header" />
-
   <!-- resolver activity -->
   <java-symbol type="drawable" name="resolver_icon_placeholder" />
 
@@ -3287,6 +3282,7 @@
   <java-symbol type="string" name="config_defaultAugmentedAutofillService" />
   <java-symbol type="string" name="config_defaultAppPredictionService" />
   <java-symbol type="string" name="config_defaultContentSuggestionsService" />
+  <java-symbol type="string" name="config_defaultAttentionService" />
 
   <java-symbol type="string" name="notification_channel_foreground_service" />
   <java-symbol type="string" name="foreground_service_app_in_background" />
@@ -3542,4 +3538,6 @@
 
   <java-symbol type="bool" name="config_skipSensorAvailable" />
   <java-symbol type="bool" name="config_silenceSensorAvailable" />
+
+  <java-symbol type="bool" name="config_zramWriteback" />
 </resources>
diff --git a/core/res/res/values/themes_device_defaults.xml b/core/res/res/values/themes_device_defaults.xml
index d60313a..75a727b 100644
--- a/core/res/res/values/themes_device_defaults.xml
+++ b/core/res/res/values/themes_device_defaults.xml
@@ -1711,8 +1711,4 @@
         <item name="notificationHeaderTextAppearance">@style/TextAppearance.DeviceDefault.Notification.Info</item>
     </style>
 
-    <style name="Theme.DeviceDefault.Notification.Ambient" parent="@style/Theme.Material.Notification.Ambient">
-        <item name="notificationHeaderTextAppearance">@style/TextAppearance.DeviceDefault.Notification.Info.Ambient</item>
-    </style>
-
 </resources>
diff --git a/core/res/res/values/themes_material.xml b/core/res/res/values/themes_material.xml
index ccaf041..6b7698e 100644
--- a/core/res/res/values/themes_material.xml
+++ b/core/res/res/values/themes_material.xml
@@ -1341,14 +1341,6 @@
         <item name="notificationHeaderIconSize">@dimen/notification_header_icon_size</item>
     </style>
 
-    <!-- Theme for inflating ambient notification -->
-    <style name="Theme.Material.Notification.Ambient">
-        <item name="notificationHeaderStyle">@style/Notification.Header.Ambient</item>
-        <item name="notificationHeaderTextAppearance">@style/TextAppearance.Material.Notification.Info.Ambient</item>
-        <item name="notificationHeaderAppNameVisibility">gone</item>
-        <item name="notificationHeaderIconSize">@dimen/notification_header_icon_size_ambient</item>
-    </style>
-
     <!-- Default theme for Settings and activities launched from Settings. -->
     <style name="Theme.Material.Settings" parent="Theme.Material.Light.LightStatusBar">
         <item name="homeAsUpIndicator">@drawable/ic_ab_back_material_settings</item>
diff --git a/core/tests/BroadcastRadioTests/Android.mk b/core/tests/BroadcastRadioTests/Android.mk
index 24f0cf0..6b0484e 100644
--- a/core/tests/BroadcastRadioTests/Android.mk
+++ b/core/tests/BroadcastRadioTests/Android.mk
@@ -25,7 +25,7 @@
 # LOCAL_SDK_VERSION := current
 LOCAL_PRIVATE_PLATFORM_APIS := true
 
-LOCAL_STATIC_JAVA_LIBRARIES := compatibility-device-util android-support-test testng
+LOCAL_STATIC_JAVA_LIBRARIES := compatibility-device-util androidx.test.rules testng
 
 LOCAL_JAVA_LIBRARIES := android.test.base
 
diff --git a/core/tests/BroadcastRadioTests/AndroidManifest.xml b/core/tests/BroadcastRadioTests/AndroidManifest.xml
index d9b5522..ce12cc9 100644
--- a/core/tests/BroadcastRadioTests/AndroidManifest.xml
+++ b/core/tests/BroadcastRadioTests/AndroidManifest.xml
@@ -24,7 +24,7 @@
     </application>
 
     <instrumentation
-        android:name="android.support.test.runner.AndroidJUnitRunner"
+        android:name="androidx.test.runner.AndroidJUnitRunner"
         android:targetPackage="android.hardware.radio.tests"
         android:label="Tests for Broadcast Radio APIs" >
     </instrumentation>
diff --git a/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/functional/RadioTunerTest.java b/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/functional/RadioTunerTest.java
index fdaba08..d2bd1e1 100644
--- a/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/functional/RadioTunerTest.java
+++ b/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/functional/RadioTunerTest.java
@@ -15,22 +15,29 @@
  */
 package android.hardware.radio.tests.functional;
 
+import static org.junit.Assert.*;
+import static org.junit.Assume.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.after;
+import static org.mockito.Mockito.atLeast;
+import static org.mockito.Mockito.atMost;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.testng.Assert.assertThrows;
+
 import android.Manifest;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.hardware.radio.ProgramSelector;
 import android.hardware.radio.RadioManager;
 import android.hardware.radio.RadioTuner;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.util.Log;
 
-import java.lang.reflect.Constructor;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -41,19 +48,10 @@
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 
-import static org.junit.Assert.*;
-import static org.junit.Assume.*;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Mockito.after;
-import static org.mockito.Mockito.atLeast;
-import static org.mockito.Mockito.atMost;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.timeout;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.testng.Assert.assertThrows;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * A test for broadcast radio API.
diff --git a/core/tests/coretests/README b/core/tests/coretests/README
index ea282a0..34beb45 100644
--- a/core/tests/coretests/README
+++ b/core/tests/coretests/README
@@ -30,9 +30,9 @@
 
   adb install -r ${ANDROID_PRODUCT_OUT}/data/app/FrameworksCoreTests/FrameworksCoreTests.apk
   adb shell am instrument -w \
-    com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner
+    com.android.frameworks.coretests/androidx.test.runner.AndroidJUnitRunner
 
-To run a tests within a specific package, add the following argument AFTER -w:
+To run a tests within a specific package, add -e AFTER -w and before the runner class:
 
     -e package android.content.pm
 
diff --git a/core/tests/coretests/res/color/drawable_in_color_dir_invalid.xml b/core/tests/coretests/res/color/drawable_in_color_dir_invalid.xml
new file mode 100644
index 0000000..8d630b0
--- /dev/null
+++ b/core/tests/coretests/res/color/drawable_in_color_dir_invalid.xml
@@ -0,0 +1,21 @@
+<?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.
+-->
+
+<!-- This drawable is purposely in the color directory to test a backwards compatible fallback. -->
+<layer-list
+    xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@android:id/icon" android:drawable="@string/app_name" />
+</layer-list>
\ No newline at end of file
diff --git a/core/tests/coretests/res/color/drawable_in_color_dir_valid.xml b/core/tests/coretests/res/color/drawable_in_color_dir_valid.xml
new file mode 100644
index 0000000..d140475
--- /dev/null
+++ b/core/tests/coretests/res/color/drawable_in_color_dir_valid.xml
@@ -0,0 +1,22 @@
+<?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.
+-->
+
+<!-- This drawable is purposely in the color directory to test a backwards compatible fallback. -->
+<layer-list
+    xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@android:id/background" android:drawable="@drawable/test32x24" />
+    <item android:id="@android:id/icon" android:drawable="@drawable/test16x12" />
+</layer-list>
\ No newline at end of file
diff --git a/core/tests/coretests/res/raw/com_android_tzdata.apex b/core/tests/coretests/res/raw/com_android_tzdata.apex
new file mode 100644
index 0000000..72294de
--- /dev/null
+++ b/core/tests/coretests/res/raw/com_android_tzdata.apex
Binary files differ
diff --git a/core/tests/coretests/src/android/content/pm/PackageParserTest.java b/core/tests/coretests/src/android/content/pm/PackageParserTest.java
index be1b1ce..c5454a6 100644
--- a/core/tests/coretests/src/android/content/pm/PackageParserTest.java
+++ b/core/tests/coretests/src/android/content/pm/PackageParserTest.java
@@ -330,6 +330,28 @@
     }
 
     /**
+     * Copies a specified {@code resourceId} to a file. Returns a non-null file if the copy
+     * succeeded, or {@code null} otherwise.
+     */
+    File copyRawResourceToFile(String baseName, int resourceId) throws Exception {
+        // Copy the resource to a file.
+        Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
+        InputStream is = context.getResources().openRawResource(resourceId);
+        File outFile = null;
+        try {
+            outFile = new File(context.getFilesDir(), baseName);
+            assertTrue(FileUtils.copyToFile(is, outFile));
+            return outFile;
+        } catch (Exception e) {
+            if (outFile != null) {
+                outFile.delete();
+            }
+
+            return null;
+        }
+    }
+
+    /**
      * Attempts to parse a package.
      *
      * APKs are put into coretests/apks/packageparser_*.
@@ -340,14 +362,14 @@
     Package parsePackage(String apkFileName, int apkResourceId,
             Function<Package, Package> converter) throws Exception {
         // Copy the resource to a file.
-        Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
-        File outFile = new File(context.getFilesDir(), apkFileName);
+        File outFile = null;
         try {
-            InputStream is = context.getResources().openRawResource(apkResourceId);
-            assertTrue(FileUtils.copyToFile(is, outFile));
+            outFile = copyRawResourceToFile(apkFileName, apkResourceId);
             return converter.apply(new PackageParser().parsePackage(outFile, 0 /* flags */));
         } finally {
-            outFile.delete();
+            if (outFile != null) {
+                outFile.delete();
+            }
         }
     }
 
@@ -498,4 +520,20 @@
                         "android.permission.READ_CONTACTS"),
                 secondChild.requestedPermissions);
     }
+
+    @Test
+    public void testApexPackageInfoGeneration() throws Exception {
+        File apexFile = copyRawResourceToFile("com.android.tzdata.apex",
+                R.raw.com_android_tzdata);
+        PackageInfo pi = PackageParser.generatePackageInfoFromApex(apexFile, false);
+        assertEquals("com.google.android.tzdata", pi.packageName);
+        assertEquals(1, pi.getLongVersionCode());
+        assertNull(pi.signingInfo);
+
+        pi = PackageParser.generatePackageInfoFromApex(apexFile, true);
+        assertEquals("com.google.android.tzdata", pi.packageName);
+        assertEquals(1, pi.getLongVersionCode());
+        assertNotNull(pi.signingInfo);
+        assertTrue(pi.signingInfo.getApkContentsSigners().length > 0);
+    }
 }
diff --git a/core/tests/coretests/src/android/content/res/ResourcesDrawableTest.java b/core/tests/coretests/src/android/content/res/ResourcesDrawableTest.java
new file mode 100644
index 0000000..c4df88b
--- /dev/null
+++ b/core/tests/coretests/src/android/content/res/ResourcesDrawableTest.java
@@ -0,0 +1,81 @@
+/*
+ * 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.content.res;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import android.content.Context;
+import android.graphics.drawable.ColorStateListDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.frameworks.coretests.R;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class ResourcesDrawableTest {
+
+    @Test
+    public void testLoadColorAsDrawable() {
+        Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
+        Resources resources = context.getResources();
+        Drawable drawable = resources.getDrawable(R.color.color1);
+        assertTrue(drawable instanceof ColorStateListDrawable);
+    }
+
+    @Test
+    public void testLoadColorAsDrawableFailureThrowsOriginalException() throws Throwable {
+        Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
+        Resources resources = context.getResources();
+
+        Exception exception = null;
+
+        try {
+            resources.getDrawable(R.color.drawable_in_color_dir_invalid);
+        } catch (Exception e) {
+            exception = e;
+        }
+
+        assertNotNull(
+                "Loading drawable_in_color_dir_invalid should throw an exception",
+                exception
+        );
+
+        assertEquals(
+                "Can't find ColorStateList from drawable resource ID #0x"
+                        + Integer.toHexString(R.color.drawable_in_color_dir_invalid),
+                exception.getCause().getCause().getMessage()
+        );
+    }
+
+    @Test
+    public void testLoadNormalDrawableInColorDir() {
+        Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
+        Resources resources = context.getResources();
+        Drawable drawable = resources.getDrawable(R.color.drawable_in_color_dir_valid);
+        assertTrue(drawable instanceof LayerDrawable);
+    }
+}
diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
index 93af013..0fb1c7c 100644
--- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java
+++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
@@ -199,6 +199,7 @@
                     Settings.Global.DATA_STALL_CONSECUTIVE_DNS_TIMEOUT_THRESHOLD,
                     Settings.Global.DATA_STALL_EVALUATION_TYPE,
                     Settings.Global.DATA_STALL_MIN_EVALUATE_INTERVAL,
+                    Settings.Global.DATA_STALL_RECOVERY_ON_BAD_NETWORK,
                     Settings.Global.DATA_STALL_VALID_DNS_TIME_THRESHOLD,
                     Settings.Global.DEBUG_APP,
                     Settings.Global.DEBUG_VIEW_ATTRIBUTES,
@@ -312,6 +313,7 @@
                     Settings.Global.MDC_INITIAL_MAX_RETRY,
                     Settings.Global.MHL_INPUT_SWITCHING_ENABLED,
                     Settings.Global.MHL_POWER_CHARGE_ENABLED,
+                    Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS,
                     Settings.Global.MOBILE_DATA, // Candidate for backup?
                     Settings.Global.MOBILE_DATA_ALWAYS_ON,
                     Settings.Global.MODE_RINGER,
diff --git a/core/tests/coretests/src/android/security/keystore/recovery/KeyChainSnapshotTest.java b/core/tests/coretests/src/android/security/keystore/recovery/KeyChainSnapshotTest.java
index 2a962c2..37fe22f 100644
--- a/core/tests/coretests/src/android/security/keystore/recovery/KeyChainSnapshotTest.java
+++ b/core/tests/coretests/src/android/security/keystore/recovery/KeyChainSnapshotTest.java
@@ -45,6 +45,7 @@
     private static final int USER_SECRET_TYPE = KeyChainProtectionParams.TYPE_LOCKSCREEN;
     private static final String KEY_ALIAS = "steph";
     private static final byte[] KEY_MATERIAL = new byte[] { 3, 5, 7, 9, 1 };
+    private static final byte[] KEY_METADATA = new byte[] { 5, 3, 11, 13 };
     private static final CertPath CERT_PATH = TestData.getThmCertPath();
 
     @Test
@@ -100,6 +101,7 @@
         WrappedApplicationKey wrappedApplicationKey = snapshot.getWrappedApplicationKeys().get(0);
         assertEquals(KEY_ALIAS, wrappedApplicationKey.getAlias());
         assertArrayEquals(KEY_MATERIAL, wrappedApplicationKey.getEncryptedKeyMaterial());
+        assertArrayEquals(KEY_METADATA, wrappedApplicationKey.getMetadata());
     }
 
     @Test
@@ -166,6 +168,7 @@
         WrappedApplicationKey wrappedApplicationKey = snapshot.getWrappedApplicationKeys().get(0);
         assertEquals(KEY_ALIAS, wrappedApplicationKey.getAlias());
         assertArrayEquals(KEY_MATERIAL, wrappedApplicationKey.getEncryptedKeyMaterial());
+        assertArrayEquals(KEY_METADATA, wrappedApplicationKey.getMetadata());
     }
 
     private static KeyChainSnapshot createKeyChainSnapshot() throws Exception {
@@ -197,6 +200,7 @@
         return new WrappedApplicationKey.Builder()
                 .setAlias(KEY_ALIAS)
                 .setEncryptedKeyMaterial(KEY_MATERIAL)
+                .setMetadata(KEY_METADATA)
                 .build();
     }
 
diff --git a/core/tests/coretests/src/android/security/keystore/recovery/WrappedApplicationKeyTest.java b/core/tests/coretests/src/android/security/keystore/recovery/WrappedApplicationKeyTest.java
index 8522e62..aec54e1 100644
--- a/core/tests/coretests/src/android/security/keystore/recovery/WrappedApplicationKeyTest.java
+++ b/core/tests/coretests/src/android/security/keystore/recovery/WrappedApplicationKeyTest.java
@@ -35,6 +35,7 @@
 
     private static final String ALIAS = "karlin";
     private static final byte[] KEY_MATERIAL = new byte[] { 0, 1, 2, 3, 4 };
+    private static final byte[] METADATA = new byte[] {3, 2, 1, 0};
 
     private Parcel mParcel;
 
@@ -59,8 +60,18 @@
     }
 
     @Test
+    public void build_setsMetadata_nonNull() {
+        assertArrayEquals(METADATA, buildTestKeyWithMetadata(METADATA).getMetadata());
+    }
+
+    @Test
+    public void build_setsMetadata_null() {
+        assertArrayEquals(null, buildTestKeyWithMetadata(null).getMetadata());
+    }
+
+    @Test
     public void writeToParcel_writesAliasToParcel() {
-        buildTestKey().writeToParcel(mParcel, /*flags=*/ 0);
+        buildTestKeyWithMetadata(/*metadata=*/ null).writeToParcel(mParcel, /*flags=*/ 0);
 
         mParcel.setDataPosition(0);
         WrappedApplicationKey readFromParcel =
@@ -70,7 +81,7 @@
 
     @Test
     public void writeToParcel_writesKeyMaterial() {
-        buildTestKey().writeToParcel(mParcel, /*flags=*/ 0);
+        buildTestKeyWithMetadata(/*metadata=*/ null).writeToParcel(mParcel, /*flags=*/ 0);
 
         mParcel.setDataPosition(0);
         WrappedApplicationKey readFromParcel =
@@ -78,10 +89,48 @@
         assertArrayEquals(KEY_MATERIAL, readFromParcel.getEncryptedKeyMaterial());
     }
 
+    @Test
+    public void writeToParcel_writesMetadata_nonNull() {
+        buildTestKeyWithMetadata(METADATA).writeToParcel(mParcel, /*flags=*/ 0);
+
+        mParcel.setDataPosition(0);
+        WrappedApplicationKey readFromParcel =
+                WrappedApplicationKey.CREATOR.createFromParcel(mParcel);
+        assertArrayEquals(METADATA, readFromParcel.getMetadata());
+    }
+
+    @Test
+    public void writeToParcel_writesMetadata_null() {
+        buildTestKeyWithMetadata(/*metadata=*/ null).writeToParcel(mParcel, /*flags=*/ 0);
+
+        mParcel.setDataPosition(0);
+        WrappedApplicationKey readFromParcel =
+                WrappedApplicationKey.CREATOR.createFromParcel(mParcel);
+        assertArrayEquals(null, readFromParcel.getMetadata());
+    }
+
+    @Test
+    public void writeToParcel_writesMetadata_absent() {
+        buildTestKey().writeToParcel(mParcel, /*flags=*/ 0);
+
+        mParcel.setDataPosition(0);
+        WrappedApplicationKey readFromParcel =
+                WrappedApplicationKey.CREATOR.createFromParcel(mParcel);
+        assertArrayEquals(null, readFromParcel.getMetadata());
+    }
+
     private WrappedApplicationKey buildTestKey() {
         return new WrappedApplicationKey.Builder()
                 .setAlias(ALIAS)
                 .setEncryptedKeyMaterial(KEY_MATERIAL)
                 .build();
     }
+
+    private WrappedApplicationKey buildTestKeyWithMetadata(byte[] metadata) {
+        return new WrappedApplicationKey.Builder()
+                .setAlias(ALIAS)
+                .setEncryptedKeyMaterial(KEY_MATERIAL)
+                .setMetadata(metadata)
+                .build();
+    }
 }
diff --git a/core/tests/coretests/src/android/view/contentcapture/ContentCaptureSessionTest.java b/core/tests/coretests/src/android/view/contentcapture/ContentCaptureSessionTest.java
index 05c0df7..ff97aa1 100644
--- a/core/tests/coretests/src/android/view/contentcapture/ContentCaptureSessionTest.java
+++ b/core/tests/coretests/src/android/view/contentcapture/ContentCaptureSessionTest.java
@@ -151,7 +151,7 @@
         }
 
         @Override
-        void internalNotifyViewTextChanged(AutofillId id, CharSequence text, int flags) {
+        void internalNotifyViewTextChanged(AutofillId id, CharSequence text) {
             throw new UnsupportedOperationException("should not have been called");
         }
     }
diff --git a/core/tests/coretests/src/android/view/contentcapture/ViewNodeTest.java b/core/tests/coretests/src/android/view/contentcapture/ViewNodeTest.java
index 099f41d..eadde62 100644
--- a/core/tests/coretests/src/android/view/contentcapture/ViewNodeTest.java
+++ b/core/tests/coretests/src/android/view/contentcapture/ViewNodeTest.java
@@ -181,6 +181,14 @@
         structure.setDataIsSensitive(true);
 
         assertThat(structure.getTempRect()).isNull();
+
+        // Graphic properties
+        structure.setElevation(6.66f);
+        assertThat(node.getElevation()).isWithin(1.0e-10f).of(0f);
+        structure.setAlpha(66.6f);
+        assertThat(node.getAlpha()).isWithin(1.0e-10f).of(1.0f);
+        structure.setTransformation(Matrix.IDENTITY_MATRIX);
+        assertThat(node.getTransformation()).isNull();
     }
 
     @Test
@@ -279,11 +287,6 @@
         structure.setAutofillOptions(new String[] { "Maybe" });
         structure.setAutofillValue(AutofillValue.forText("Malkovich"));
 
-        // Graphic properties
-        structure.setElevation(6.66f);
-        structure.setAlpha(66.6f);
-        structure.setTransformation(Matrix.IDENTITY_MATRIX);
-
         // Extra text properties
         structure.setMinTextEms(6);
         structure.setMaxTextLength(66);
@@ -340,11 +343,6 @@
         assertThat(node.getAutofillOptions()).asList().containsExactly("Maybe").inOrder();
         assertThat(node.getAutofillValue().getTextValue()).isEqualTo("Malkovich");
 
-        // Graphic properties
-        assertThat(node.getElevation()).isWithin(1.0e-10f).of(6.66f);
-        assertThat(node.getAlpha()).isWithin(1.0e-10f).of(66.6f);
-        assertThat(node.getTransformation()).isEqualTo(Matrix.IDENTITY_MATRIX);
-
         // Extra text properties
         assertThat(node.getMinTextEms()).isEqualTo(6);
         assertThat(node.getMaxTextLength()).isEqualTo(66);
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyAndException/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyAndException/Android.mk
index d161059..cc2d8d2 100644
--- a/core/tests/hosttests/test-apps/MultiDexLegacyAndException/Android.mk
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyAndException/Android.mk
@@ -38,16 +38,11 @@
 
 LOCAL_MIN_SDK_VERSION := 8
 
-LOCAL_JACK_FLAGS := -D jack.dex.output.policy=minimal-multidex \
-     -D jack.dex.output.multidex.legacy=true
-
 include $(BUILD_PACKAGE)
 
-ifndef LOCAL_JACK_ENABLED
-$(mainDexList): $(full_classes_pre_proguard_jar) | $(MAINDEXCLASSES)
+$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS)
 	$(hide) mkdir -p $(dir $@)
-	$(MAINDEXCLASSES) $< 1>$@
+	PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@
 	echo "com/android/multidexlegacyandexception/Test.class" >> $@
 
 $(built_dex_intermediate): $(mainDexList)
-endif
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/Android.mk
index cf8fc92..c577eef 100644
--- a/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/Android.mk
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestApp/Android.mk
@@ -38,9 +38,9 @@
 
 include $(BUILD_PACKAGE)
 
-$(mainDexList): $(full_classes_pre_proguard_jar) | $(MAINDEXCLASSES)
+$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS)
 	$(hide) mkdir -p $(dir $@)
-	$(MAINDEXCLASSES) $< 1>$@
+	PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@
 	echo "com/android/multidexlegacytestapp/Test.class" >> $@
 
 $(built_dex_intermediate): $(mainDexList)
@@ -69,9 +69,9 @@
 
 include $(BUILD_PACKAGE)
 
-$(mainDexList2): $(full_classes_pre_proguard_jar) | $(MAINDEXCLASSES)
+$(mainDexList2): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS)
 	$(hide) mkdir -p $(dir $@)
-	$(MAINDEXCLASSES) $< 1>$@
+	PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@
 	echo "com/android/multidexlegacytestapp/Test.class" >> $@
 
 $(built_dex_intermediate): $(mainDexList2)
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.mk
index 2ce50b3..da40940 100644
--- a/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.mk
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyTestServices/Android.mk
@@ -30,14 +30,13 @@
 	$(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),$(LOCAL_IS_HOST_MODULE),common)/maindex.list
 
 LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex
-LOCAL_JACK_FLAGS := -D jack.dex.output.policy=minimal-multidex -D jack.dex.output.multidex.legacy=true
 
 LOCAL_DEX_PREOPT := false
 
 include $(BUILD_PACKAGE)
 
-$(mainDexList): $(full_classes_pre_proguard_jar) | $(MAINDEXCLASSES)
+$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS)
 	$(hide) mkdir -p $(dir $@)
-	$(MAINDEXCLASSES) $< 1>$@
+	PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@
 
 $(built_dex_intermediate): $(mainDexList)
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/Android.mk
index 8b0c750..665e22d 100644
--- a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/Android.mk
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v1/Android.mk
@@ -35,9 +35,9 @@
 
 include $(BUILD_PACKAGE)
 
-$(mainDexList): $(full_classes_pre_proguard_jar) | $(MAINDEXCLASSES)
+$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS)
 	$(hide) mkdir -p $(dir $@)
-	$(MAINDEXCLASSES) $< 1>$@
+	PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@
 	echo "com/android/framework/multidexlegacyversionedtestapp/MultiDexUpdateTest.class" >> $@
 
 $(built_dex_intermediate): $(mainDexList)
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/Android.mk
index a36c993..c827fa8 100644
--- a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/Android.mk
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v2/Android.mk
@@ -35,9 +35,9 @@
 
 include $(BUILD_PACKAGE)
 
-$(mainDexList): $(full_classes_pre_proguard_jar) | $(MAINDEXCLASSES)
+$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS)
 	$(hide) mkdir -p $(dir $@)
-	$(MAINDEXCLASSES) $< 1>$@
+	PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@
 	echo "com/android/framework/multidexlegacyversionedtestapp/MultiDexUpdateTest.class" >> $@
 
 $(built_dex_intermediate): $(mainDexList)
diff --git a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/Android.mk b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/Android.mk
index 6b7418c..3d6ad7d 100644
--- a/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/Android.mk
+++ b/core/tests/hosttests/test-apps/MultiDexLegacyVersionedTestApp_v3/Android.mk
@@ -35,9 +35,9 @@
 
 include $(BUILD_PACKAGE)
 
-$(mainDexList): $(full_classes_pre_proguard_jar) | $(MAINDEXCLASSES)
+$(mainDexList): $(full_classes_pre_proguard_jar) $(MAINDEXCLASSES) $(PROGUARD_DEPS)
 	$(hide) mkdir -p $(dir $@)
-	$(MAINDEXCLASSES) $< 1>$@
+	PROGUARD_HOME=$(PROGUARD_HOME) $(MAINDEXCLASSES) $< 1>$@
 	echo "com/android/framework/multidexlegacyversionedtestapp/MultiDexUpdateTest.class" >> $@
 
 $(built_dex_intermediate): $(mainDexList)
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java
index cbb780d..54e1abc 100644
--- a/graphics/java/android/graphics/Paint.java
+++ b/graphics/java/android/graphics/Paint.java
@@ -68,26 +68,27 @@
                 Paint.class.getClassLoader(), nGetNativeFinalizer(), NATIVE_PAINT_SIZE);
     }
 
-    private ColorFilter mColorFilter;
-    private MaskFilter  mMaskFilter;
-    private PathEffect  mPathEffect;
-    private Shader      mShader;
+    @ColorLong private long mColor;
+    private ColorFilter     mColorFilter;
+    private MaskFilter      mMaskFilter;
+    private PathEffect      mPathEffect;
+    private Shader          mShader;
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
-    private Typeface    mTypeface;
-    private Xfermode    mXfermode;
+    private Typeface        mTypeface;
+    private Xfermode        mXfermode;
 
-    private boolean     mHasCompatScaling;
-    private float       mCompatScaling;
-    private float       mInvCompatScaling;
+    private boolean         mHasCompatScaling;
+    private float           mCompatScaling;
+    private float           mInvCompatScaling;
 
-    private LocaleList  mLocales;
-    private String      mFontFeatureSettings;
-    private String      mFontVariationSettings;
+    private LocaleList      mLocales;
+    private String          mFontFeatureSettings;
+    private String          mFontVariationSettings;
 
-    private float mShadowLayerRadius;
-    private float mShadowLayerDx;
-    private float mShadowLayerDy;
-    private int mShadowLayerColor;
+    private float           mShadowLayerRadius;
+    private float           mShadowLayerDx;
+    private float           mShadowLayerDy;
+    @ColorLong private long mShadowLayerColor;
 
     private static final Object sCacheLock = new Object();
 
@@ -505,6 +506,7 @@
         //        ? HINTING_OFF : HINTING_ON);
         mCompatScaling = mInvCompatScaling = 1;
         setTextLocales(LocaleList.getAdjustedDefault());
+        mColor = Color.pack(Color.BLACK);
     }
 
     /**
@@ -530,6 +532,7 @@
         // setHinting(DisplayMetrics.DENSITY_DEVICE >= DisplayMetrics.DENSITY_TV
         //        ? HINTING_OFF : HINTING_ON);
 
+        mColor = Color.pack(Color.BLACK);
         mColorFilter = null;
         mMaskFilter = null;
         mPathEffect = null;
@@ -551,7 +554,7 @@
         mShadowLayerRadius = 0.0f;
         mShadowLayerDx = 0.0f;
         mShadowLayerDy = 0.0f;
-        mShadowLayerColor = 0;
+        mShadowLayerColor = Color.pack(0);
     }
 
     /**
@@ -572,6 +575,7 @@
      * {@link Paint}.
      */
     private void setClassVariablesFrom(Paint paint) {
+        mColor = paint.mColor;
         mColorFilter = paint.mColorFilter;
         mMaskFilter = paint.mMaskFilter;
         mPathEffect = paint.mPathEffect;
@@ -949,7 +953,7 @@
     }
 
     /**
-     * Return the paint's color. Note that the color is a 32bit value
+     * Return the paint's color in sRGB. Note that the color is a 32bit value
      * containing alpha as well as r,g,b. This 32bit value is not premultiplied,
      * meaning that its alpha can be any value, regardless of the values of
      * r,g,b. See the Color class for more details.
@@ -958,7 +962,25 @@
      */
     @ColorInt
     public int getColor() {
-        return nGetColor(mNativePaint);
+        return Color.toArgb(mColor);
+    }
+
+    /**
+     * Return the paint's color. Note that the color is a long with an encoded
+     * {@link ColorSpace} as well as alpha and r,g,b. These values are not
+     * premultiplied, meaning that alpha can be any value, regardless of the
+     * values of r,g,b. See the {@link Color} class for more details.
+     *
+     * @see Color for APIs that help manipulate a color long.
+     *
+     * @return the paint's color (and alpha).
+     *
+     * @hide pending API approval
+     */
+    @TestApi
+    @ColorLong
+    public long getColorLong() {
+        return mColor;
     }
 
     /**
@@ -970,7 +992,7 @@
      * @param color The new color (including alpha) to set in the paint.
      */
     public void setColor(@ColorInt int color) {
-        nSetColor(mNativePaint, color);
+        setColor(Color.pack(color));
     }
 
     /**
@@ -996,6 +1018,7 @@
         float a = Color.alpha(color);
 
         nSetColor(mNativePaint, cs, r, g, b, a);
+        mColor = color;
     }
 
     /**
@@ -1006,7 +1029,7 @@
      * @return the alpha component of the paint's color.
      */
     public int getAlpha() {
-        return nGetAlpha(mNativePaint);
+        return Math.round(Color.alpha(mColor) * 255.0f);
     }
 
     /**
@@ -1017,6 +1040,13 @@
      * @param a set the alpha component [0..255] of the paint's color.
      */
     public void setAlpha(int a) {
+        // FIXME: No need to unpack this. Instead, just update the alpha bits.
+        // b/122959599
+        ColorSpace cs = Color.colorSpace(mColor);
+        float r = Color.red(mColor);
+        float g = Color.green(mColor);
+        float b = Color.blue(mColor);
+        mColor = Color.pack(r, g, b, a * (1.0f / 255), cs);
         nSetAlpha(mNativePaint, a);
     }
 
@@ -1398,12 +1428,7 @@
      * opaque, or the alpha from the shadow color if not.
      */
     public void setShadowLayer(float radius, float dx, float dy, @ColorInt int shadowColor) {
-        mShadowLayerRadius = radius;
-        mShadowLayerDx = dx;
-        mShadowLayerDy = dy;
-        mShadowLayerColor = shadowColor;
-        // FIXME: Share a single native method with the ColorLong version.
-        nSetShadowLayer(mNativePaint, radius, dx, dy, shadowColor);
+        setShadowLayer(radius, dx, dy, Color.pack(shadowColor));
     }
 
     /**
@@ -1435,7 +1460,7 @@
         mShadowLayerRadius = radius;
         mShadowLayerDx = dx;
         mShadowLayerDy = dy;
-        mShadowLayerColor = Color.toArgb(shadowColor);
+        mShadowLayerColor = shadowColor;
     }
 
     /**
@@ -1482,8 +1507,20 @@
     /**
      * Returns the color of the shadow layer.
      * @see #setShadowLayer(float,float,float,int)
+     * @see #setShadowLayer(float,float,float,long)
      */
     public @ColorInt int getShadowLayerColor() {
+        return Color.toArgb(mShadowLayerColor);
+    }
+
+    /**
+     * Returns the color of the shadow layer.
+     * @see #setShadowLayer(float,float,float,int)
+     * @see #setShadowLayer(float,float,float,long)
+     * @hide pending API approval
+     */
+    @TestApi
+    public @ColorLong long getShadowLayerColorLong() {
         return mShadowLayerColor;
     }
 
@@ -3074,12 +3111,6 @@
     @CriticalNative
     private static native void nSetFilterBitmap(long paintPtr, boolean filter);
     @CriticalNative
-    private static native int nGetColor(long paintPtr);
-    @CriticalNative
-    private static native void nSetColor(long paintPtr, @ColorInt int color);
-    @CriticalNative
-    private static native int nGetAlpha(long paintPtr);
-    @CriticalNative
     private static native void nSetStrikeThruText(long paintPtr, boolean strikeThruText);
     @CriticalNative
     private static native boolean nIsElegantTextHeight(long paintPtr);
diff --git a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
index e6e6b0e..cfbb995 100644
--- a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
@@ -100,7 +100,8 @@
             mSurfaceColorSpace, &props));
 
     SkiaPipeline::updateLighting(lightGeometry, lightInfo);
-    renderFrame(*layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface);
+    renderFrame(*layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface,
+            SkMatrix::I());
     layerUpdateQueue->clear();
 
     // Draw visual debugging features
diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.cpp b/libs/hwui/pipeline/skia/SkiaPipeline.cpp
index d7faaf7..df82243 100644
--- a/libs/hwui/pipeline/skia/SkiaPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaPipeline.cpp
@@ -312,7 +312,8 @@
 
 void SkiaPipeline::renderFrame(const LayerUpdateQueue& layers, const SkRect& clip,
                                const std::vector<sp<RenderNode>>& nodes, bool opaque,
-                               const Rect& contentDrawBounds, sk_sp<SkSurface> surface) {
+                               const Rect& contentDrawBounds, sk_sp<SkSurface> surface,
+                               const SkMatrix& preTransform) {
     renderVectorDrawableCache();
 
     // draw all layers up front
@@ -323,12 +324,12 @@
     std::unique_ptr<SkPictureRecorder> recorder;
     SkCanvas* canvas = tryCapture(surface.get());
 
-    renderFrameImpl(layers, clip, nodes, opaque, contentDrawBounds, canvas);
+    renderFrameImpl(layers, clip, nodes, opaque, contentDrawBounds, canvas, preTransform);
 
     endCapture(surface.get());
 
     if (CC_UNLIKELY(Properties::debugOverdraw)) {
-        renderOverdraw(layers, clip, nodes, contentDrawBounds, surface);
+        renderOverdraw(layers, clip, nodes, contentDrawBounds, surface, preTransform);
     }
 
     ATRACE_NAME("flush commands");
@@ -344,9 +345,11 @@
 
 void SkiaPipeline::renderFrameImpl(const LayerUpdateQueue& layers, const SkRect& clip,
                                    const std::vector<sp<RenderNode>>& nodes, bool opaque,
-                                   const Rect& contentDrawBounds, SkCanvas* canvas) {
+                                   const Rect& contentDrawBounds, SkCanvas* canvas,
+                                   const SkMatrix& preTransform) {
     SkAutoCanvasRestore saver(canvas, true);
-    canvas->androidFramework_setDeviceClipRestriction(clip.roundOut());
+    canvas->androidFramework_setDeviceClipRestriction(preTransform.mapRect(clip).roundOut());
+    canvas->concat(preTransform);
 
     // STOPSHIP: Revert, temporary workaround to clear always F16 frame buffer for b/74976293
     if (!opaque || getSurfaceColorType() == kRGBA_F16_SkColorType) {
@@ -486,7 +489,8 @@
 
 void SkiaPipeline::renderOverdraw(const LayerUpdateQueue& layers, const SkRect& clip,
                                   const std::vector<sp<RenderNode>>& nodes,
-                                  const Rect& contentDrawBounds, sk_sp<SkSurface> surface) {
+                                  const Rect& contentDrawBounds, sk_sp<SkSurface> surface,
+                                  const SkMatrix& preTransform) {
     // Set up the overdraw canvas.
     SkImageInfo offscreenInfo = SkImageInfo::MakeA8(surface->width(), surface->height());
     sk_sp<SkSurface> offscreen = surface->makeSurface(offscreenInfo);
@@ -496,7 +500,7 @@
     // each time a pixel would have been drawn.
     // Pass true for opaque so we skip the clear - the overdrawCanvas is already zero
     // initialized.
-    renderFrameImpl(layers, clip, nodes, true, contentDrawBounds, &overdrawCanvas);
+    renderFrameImpl(layers, clip, nodes, true, contentDrawBounds, &overdrawCanvas, preTransform);
     sk_sp<SkImage> counts = offscreen->makeImageSnapshot();
 
     // Draw overdraw colors to the canvas.  The color filter will convert counts to colors.
diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.h b/libs/hwui/pipeline/skia/SkiaPipeline.h
index 94a699b..cf6f5b2 100644
--- a/libs/hwui/pipeline/skia/SkiaPipeline.h
+++ b/libs/hwui/pipeline/skia/SkiaPipeline.h
@@ -53,7 +53,8 @@
 
     void renderFrame(const LayerUpdateQueue& layers, const SkRect& clip,
                      const std::vector<sp<RenderNode>>& nodes, bool opaque,
-                     const Rect& contentDrawBounds, sk_sp<SkSurface> surface);
+                     const Rect& contentDrawBounds, sk_sp<SkSurface> surface,
+                     const SkMatrix& preTransform);
 
     std::vector<VectorDrawableRoot*>* getVectorDrawables() { return &mVectorDrawables; }
 
@@ -116,7 +117,8 @@
 private:
     void renderFrameImpl(const LayerUpdateQueue& layers, const SkRect& clip,
                          const std::vector<sp<RenderNode>>& nodes, bool opaque,
-                         const Rect& contentDrawBounds, SkCanvas* canvas);
+                         const Rect& contentDrawBounds, SkCanvas* canvas,
+                         const SkMatrix& preTransform);
 
     /**
      *  Debugging feature.  Draws a semi-transparent overlay on each pixel, indicating
@@ -124,7 +126,7 @@
      */
     void renderOverdraw(const LayerUpdateQueue& layers, const SkRect& clip,
                         const std::vector<sp<RenderNode>>& nodes, const Rect& contentDrawBounds,
-                        sk_sp<SkSurface>);
+                        sk_sp<SkSurface> surface, const SkMatrix& preTransform);
 
     /**
      *  Render mVectorDrawables into offscreen buffers.
diff --git a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp
index b9aae98..53495a7 100644
--- a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp
@@ -58,7 +58,8 @@
         return Frame(-1, -1, 0);
     }
 
-    Frame frame(backBuffer->width(), backBuffer->height(), mVkManager.getAge(mVkSurface));
+    Frame frame(mVkSurface->windowWidth(), mVkSurface->windowHeight(),
+                mVkManager.getAge(mVkSurface));
     return frame;
 }
 
@@ -73,7 +74,8 @@
         return false;
     }
     SkiaPipeline::updateLighting(lightGeometry, lightInfo);
-    renderFrame(*layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, backBuffer);
+    renderFrame(*layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds,
+            backBuffer, mVkSurface->preTransform());
     ShaderCache::get().onVkFrameFlushed(mRenderThread.getGrContext());
     layerUpdateQueue->clear();
 
diff --git a/libs/hwui/renderthread/VulkanManager.cpp b/libs/hwui/renderthread/VulkanManager.cpp
index 6c540f6..5c6cb9a 100644
--- a/libs/hwui/renderthread/VulkanManager.cpp
+++ b/libs/hwui/renderthread/VulkanManager.cpp
@@ -480,6 +480,32 @@
     return backbuffer;
 }
 
+static SkMatrix getPreTransformMatrix(int width, int height,
+                                      VkSurfaceTransformFlagBitsKHR transform) {
+    switch (transform) {
+        case VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR:
+            return SkMatrix::I();
+        case VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR:
+            return SkMatrix::MakeAll(0, -1, height, 1, 0, 0, 0, 0, 1);
+        case VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR:
+            return SkMatrix::MakeAll(-1, 0, width, 0, -1, height, 0, 0, 1);
+        case VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR:
+            return SkMatrix::MakeAll(0, 1, 0, -1, 0, width, 0, 0, 1);
+        case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR:
+            return SkMatrix::MakeAll(-1, 0, width, 0, 1, 0, 0, 0, 1);
+        case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR:
+            return SkMatrix::MakeAll(0, -1, height, -1, 0, width, 0, 0, 1);
+        case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR:
+            return SkMatrix::MakeAll(1, 0, 0, 0, -1, height, 0, 0, 1);
+        case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR:
+            return SkMatrix::MakeAll(0, 1, 0, 1, 0, 0, 0, 0, 1);
+        default:
+            LOG_ALWAYS_FATAL("Unsupported pre transform of swapchain.");
+    }
+    return SkMatrix::I();
+}
+
+
 SkSurface* VulkanManager::getBackbufferSurface(VulkanSurface** surfaceOut) {
     // Recreate VulkanSurface, if ANativeWindow has been resized.
     VulkanSurface* surface = *surfaceOut;
@@ -516,7 +542,7 @@
         // maybe use attach somehow? but need a Window
         return nullptr;
     }
-    if (VK_ERROR_OUT_OF_DATE_KHR == res) {
+    if (VK_ERROR_OUT_OF_DATE_KHR == res || VK_SUBOPTIMAL_KHR == res) {
         // tear swapchain down and try again
         if (!createSwapchain(surface)) {
             return nullptr;
@@ -595,6 +621,10 @@
     }
     backendRT.setVkImageLayout(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL);
 
+    surface->mPreTransform = getPreTransformMatrix(surface->windowWidth(),
+                                                   surface->windowHeight(),
+                                                   surface->mTransform);
+
     surface->mBackbuffer = std::move(skSurface);
     return surface->mBackbuffer.get();
 }
@@ -749,6 +779,17 @@
         return false;
     }
 
+    if (!SkToBool(caps.supportedTransforms & VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR)) {
+        return false;
+    }
+    VkSurfaceTransformFlagBitsKHR transform;
+    if (SkToBool(caps.supportedTransforms & caps.currentTransform) &&
+        !SkToBool(caps.currentTransform & VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR)) {
+        transform = caps.currentTransform;
+    } else {
+        transform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR;
+    }
+
     VkExtent2D extent = caps.currentExtent;
     // clamp width; to handle currentExtent of -1 and  protect us from broken hints
     if (extent.width < caps.minImageExtent.width) {
@@ -760,6 +801,16 @@
         extent.height = caps.minImageExtent.height;
     }
     SkASSERT(extent.height <= caps.maxImageExtent.height);
+
+    VkExtent2D swapExtent = extent;
+    if (transform == VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR ||
+        transform == VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR ||
+        transform == VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR ||
+        transform == VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR) {
+        swapExtent.width = extent.height;
+        swapExtent.height = extent.width;
+    }
+
     surface->mWindowWidth = extent.width;
     surface->mWindowHeight = extent.height;
 
@@ -775,7 +826,7 @@
                                    VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
                                    VK_IMAGE_USAGE_TRANSFER_DST_BIT;
     SkASSERT((caps.supportedUsageFlags & usageFlags) == usageFlags);
-    SkASSERT(caps.supportedTransforms & caps.currentTransform);
+
     SkASSERT(caps.supportedCompositeAlpha &
              (VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR | VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR));
     VkCompositeAlphaFlagBitsKHR composite_alpha =
@@ -822,7 +873,7 @@
     swapchainCreateInfo.minImageCount = imageCount;
     swapchainCreateInfo.imageFormat = surfaceFormat;
     swapchainCreateInfo.imageColorSpace = colorSpace;
-    swapchainCreateInfo.imageExtent = extent;
+    swapchainCreateInfo.imageExtent = swapExtent;
     swapchainCreateInfo.imageArrayLayers = 1;
     swapchainCreateInfo.imageUsage = usageFlags;
 
@@ -837,7 +888,7 @@
         swapchainCreateInfo.pQueueFamilyIndices = nullptr;
     }
 
-    swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR;
+    swapchainCreateInfo.preTransform = transform;
     swapchainCreateInfo.compositeAlpha = composite_alpha;
     swapchainCreateInfo.presentMode = mode;
     swapchainCreateInfo.clipped = true;
@@ -848,6 +899,8 @@
         return false;
     }
 
+    surface->mTransform = transform;
+
     // destroy the old swapchain
     if (swapchainCreateInfo.oldSwapchain != VK_NULL_HANDLE) {
         mDeviceWaitIdle(mDevice);
@@ -857,7 +910,7 @@
         mDestroySwapchainKHR(mDevice, swapchainCreateInfo.oldSwapchain, nullptr);
     }
 
-    createBuffers(surface, surfaceFormat, extent);
+    createBuffers(surface, surfaceFormat, swapExtent);
 
     // The window content is not updated (frozen) until a buffer of the window size is received.
     // This prevents temporary stretching of the window after it is resized, but before the first
diff --git a/libs/hwui/renderthread/VulkanManager.h b/libs/hwui/renderthread/VulkanManager.h
index 105ee09..b06eb82 100644
--- a/libs/hwui/renderthread/VulkanManager.h
+++ b/libs/hwui/renderthread/VulkanManager.h
@@ -45,6 +45,14 @@
 
     sk_sp<SkSurface> getBackBufferSurface() { return mBackbuffer; }
 
+    // The width and height are are the logical width and height for when submitting draws to the
+    // surface. In reality if the window is rotated the underlying VkImage may have the width and
+    // height swapped.
+    int windowWidth() const { return mWindowWidth; }
+    int windowHeight() const { return mWindowHeight; }
+
+    SkMatrix& preTransform() { return mPreTransform; }
+
 private:
     friend class VulkanManager;
     struct BackbufferInfo {
@@ -84,6 +92,8 @@
     sk_sp<SkColorSpace> mColorSpace;
     SkColorSpace::Gamut mColorGamut;
     SkColorType mColorType;
+    VkSurfaceTransformFlagBitsKHR mTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR;
+    SkMatrix mPreTransform;
 };
 
 // This class contains the shared global Vulkan objects, such as VkInstance, VkDevice and VkQueue,
diff --git a/libs/hwui/tests/unit/SkiaPipelineTests.cpp b/libs/hwui/tests/unit/SkiaPipelineTests.cpp
index 3c06dab..e86cf42 100644
--- a/libs/hwui/tests/unit/SkiaPipelineTests.cpp
+++ b/libs/hwui/tests/unit/SkiaPipelineTests.cpp
@@ -51,7 +51,8 @@
     auto surface = SkSurface::MakeRasterN32Premul(1, 1);
     surface->getCanvas()->drawColor(SK_ColorBLUE, SkBlendMode::kSrcOver);
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), SK_ColorBLUE);
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), SK_ColorRED);
 }
 
@@ -83,7 +84,8 @@
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), SK_ColorBLUE);
 
     // drawFrame will crash if "SkiaPipeline::onPrepareTree" did not clean invalid VD pointer
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), SK_ColorRED);
 }
 
@@ -104,10 +106,12 @@
     auto surface = SkSurface::MakeRasterN32Premul(2, 2);
     surface->getCanvas()->drawColor(SK_ColorBLUE, SkBlendMode::kSrcOver);
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), SK_ColorBLUE);
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, true, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, true, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), SK_ColorBLUE);
     ASSERT_EQ(TestUtils::getColor(surface, 0, 1), SK_ColorGREEN);
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, false, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, false, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), (unsigned int)SK_ColorTRANSPARENT);
     ASSERT_EQ(TestUtils::getColor(surface, 0, 1), SK_ColorGREEN);
 }
@@ -126,7 +130,8 @@
     auto surface = SkSurface::MakeRasterN32Premul(2, 2);
     surface->getCanvas()->drawColor(SK_ColorBLUE, SkBlendMode::kSrcOver);
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), SK_ColorBLUE);
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, true, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, true, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), SK_ColorBLUE);
     ASSERT_EQ(TestUtils::getColor(surface, 1, 0), SK_ColorBLUE);
     ASSERT_EQ(TestUtils::getColor(surface, 0, 1), SK_ColorRED);
@@ -198,32 +203,38 @@
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), SK_ColorBLUE);
 
     // Single draw, should be white.
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), SK_ColorWHITE);
 
     // 1 Overdraw, should be blue blended onto white.
     renderNodes.push_back(whiteNode);
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), (unsigned)0xffd0d0ff);
 
     // 2 Overdraw, should be green blended onto white
     renderNodes.push_back(whiteNode);
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), (unsigned)0xffd0ffd0);
 
     // 3 Overdraw, should be pink blended onto white.
     renderNodes.push_back(whiteNode);
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), (unsigned)0xffffc0c0);
 
     // 4 Overdraw, should be red blended onto white.
     renderNodes.push_back(whiteNode);
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), (unsigned)0xffff8080);
 
     // 5 Overdraw, should be red blended onto white.
     renderNodes.push_back(whiteNode);
-    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, renderNodes, opaque, contentDrawBounds, surface,
+            SkMatrix::I());
     ASSERT_EQ(TestUtils::getColor(surface, 0, 0), (unsigned)0xffff8080);
 }
 
@@ -308,7 +319,8 @@
     SkRect dirty = SkRect::MakeWH(800, 600);
     auto pipeline = std::make_unique<SkiaOpenGLPipeline>(renderThread);
     sk_sp<DeferLayer<DeferTestCanvas>> surface(new DeferLayer<DeferTestCanvas>());
-    pipeline->renderFrame(layerUpdateQueue, dirty, nodes, true, contentDrawBounds, surface);
+    pipeline->renderFrame(layerUpdateQueue, dirty, nodes, true, contentDrawBounds, surface,
+            SkMatrix::I());
     EXPECT_EQ(4, surface->canvas()->mDrawCounter);
 }
 
@@ -339,7 +351,43 @@
     auto pipeline = std::make_unique<SkiaOpenGLPipeline>(renderThread);
     sk_sp<DeferLayer<ClippedTestCanvas>> surface(new DeferLayer<ClippedTestCanvas>());
     pipeline->renderFrame(layerUpdateQueue, dirty, nodes, true,
-                          SkRect::MakeWH(CANVAS_WIDTH, CANVAS_HEIGHT), surface);
+                          SkRect::MakeWH(CANVAS_WIDTH, CANVAS_HEIGHT), surface, SkMatrix::I());
+    EXPECT_EQ(1, surface->canvas()->mDrawCounter);
+}
+
+// Test renderFrame with a dirty clip and a pre-transform matrix.
+RENDERTHREAD_SKIA_PIPELINE_TEST(SkiaPipeline, clipped_rotated) {
+    static const int CANVAS_WIDTH = 200;
+    static const int CANVAS_HEIGHT = 100;
+    static const SkMatrix rotateMatrix = SkMatrix::MakeAll(0, -1, CANVAS_HEIGHT, 1, 0, 0, 0, 0, 1);
+    static const SkRect dirty = SkRect::MakeLTRB(10, 20, 20, 40);
+    class ClippedTestCanvas : public SkCanvas {
+    public:
+        ClippedTestCanvas() : SkCanvas(CANVAS_WIDTH, CANVAS_HEIGHT) {}
+        void onDrawImage(const SkImage*, SkScalar dx, SkScalar dy, const SkPaint*) override {
+            EXPECT_EQ(0, mDrawCounter++);
+            // Expect clip to be rotated.
+            EXPECT_EQ(SkRect::MakeLTRB(CANVAS_HEIGHT - dirty.fTop - dirty.height(), dirty.fLeft,
+                    CANVAS_HEIGHT - dirty.fTop, dirty.fLeft + dirty.width()),
+                    TestUtils::getClipBounds(this));
+            EXPECT_EQ(rotateMatrix, getTotalMatrix());
+        }
+        int mDrawCounter = 0;
+    };
+
+    std::vector<sp<RenderNode>> nodes;
+    nodes.push_back(TestUtils::createSkiaNode(
+            0, 0, CANVAS_WIDTH, CANVAS_HEIGHT,
+            [](RenderProperties& props, SkiaRecordingCanvas& canvas) {
+                sk_sp<Bitmap> bitmap(TestUtils::createBitmap(CANVAS_WIDTH, CANVAS_HEIGHT));
+                canvas.drawBitmap(*bitmap, 0, 0, nullptr);
+            }));
+
+    LayerUpdateQueue layerUpdateQueue;
+    auto pipeline = std::make_unique<SkiaOpenGLPipeline>(renderThread);
+    sk_sp<DeferLayer<ClippedTestCanvas>> surface(new DeferLayer<ClippedTestCanvas>());
+    pipeline->renderFrame(layerUpdateQueue, dirty, nodes, true,
+                          SkRect::MakeWH(CANVAS_WIDTH, CANVAS_HEIGHT), surface, rotateMatrix);
     EXPECT_EQ(1, surface->canvas()->mDrawCounter);
 }
 
@@ -369,7 +417,7 @@
     auto pipeline = std::make_unique<SkiaOpenGLPipeline>(renderThread);
     sk_sp<DeferLayer<ClipReplaceTestCanvas>> surface(new DeferLayer<ClipReplaceTestCanvas>());
     pipeline->renderFrame(layerUpdateQueue, dirty, nodes, true,
-                          SkRect::MakeWH(CANVAS_WIDTH, CANVAS_HEIGHT), surface);
+                          SkRect::MakeWH(CANVAS_WIDTH, CANVAS_HEIGHT), surface, SkMatrix::I());
     EXPECT_EQ(1, surface->canvas()->mDrawCounter);
 }
 
diff --git a/libs/usb/api/current.txt b/libs/usb/api/current.txt
index 8488db5..f17b65a 100644
--- a/libs/usb/api/current.txt
+++ b/libs/usb/api/current.txt
@@ -1,12 +1,13 @@
+// Signature format: 2.0
 package com.android.future.usb {
 
   public class UsbAccessory {
-    method public java.lang.String getDescription();
-    method public java.lang.String getManufacturer();
-    method public java.lang.String getModel();
-    method public java.lang.String getSerial();
-    method public java.lang.String getUri();
-    method public java.lang.String getVersion();
+    method public String getDescription();
+    method public String getManufacturer();
+    method public String getModel();
+    method public String getSerial();
+    method public String getUri();
+    method public String getVersion();
   }
 
   public class UsbManager {
@@ -16,9 +17,9 @@
     method public boolean hasPermission(com.android.future.usb.UsbAccessory);
     method public android.os.ParcelFileDescriptor openAccessory(com.android.future.usb.UsbAccessory);
     method public void requestPermission(com.android.future.usb.UsbAccessory, android.app.PendingIntent);
-    field public static final java.lang.String ACTION_USB_ACCESSORY_ATTACHED = "android.hardware.usb.action.USB_ACCESSORY_ATTACHED";
-    field public static final java.lang.String ACTION_USB_ACCESSORY_DETACHED = "android.hardware.usb.action.USB_ACCESSORY_DETACHED";
-    field public static final java.lang.String EXTRA_PERMISSION_GRANTED = "permission";
+    field public static final String ACTION_USB_ACCESSORY_ATTACHED = "android.hardware.usb.action.USB_ACCESSORY_ATTACHED";
+    field public static final String ACTION_USB_ACCESSORY_DETACHED = "android.hardware.usb.action.USB_ACCESSORY_DETACHED";
+    field public static final String EXTRA_PERMISSION_GRANTED = "permission";
   }
 
 }
diff --git a/libs/usb/api/removed.txt b/libs/usb/api/removed.txt
index e69de29..d802177 100644
--- a/libs/usb/api/removed.txt
+++ b/libs/usb/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/libs/usb/api/system-current.txt b/libs/usb/api/system-current.txt
index e69de29..d802177 100644
--- a/libs/usb/api/system-current.txt
+++ b/libs/usb/api/system-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/libs/usb/api/system-removed.txt b/libs/usb/api/system-removed.txt
index e69de29..d802177 100644
--- a/libs/usb/api/system-removed.txt
+++ b/libs/usb/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/libs/usb/api/test-current.txt b/libs/usb/api/test-current.txt
index e69de29..d802177 100644
--- a/libs/usb/api/test-current.txt
+++ b/libs/usb/api/test-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/libs/usb/api/test-removed.txt b/libs/usb/api/test-removed.txt
index e69de29..d802177 100644
--- a/libs/usb/api/test-removed.txt
+++ b/libs/usb/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/location/java/android/location/GnssSingleSatCorrection.java b/location/java/android/location/GnssSingleSatCorrection.java
index 6c757f9..3922d2f 100644
--- a/location/java/android/location/GnssSingleSatCorrection.java
+++ b/location/java/android/location/GnssSingleSatCorrection.java
@@ -16,11 +16,14 @@
 
 package android.location;
 
+import android.annotation.FloatRange;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import com.android.internal.util.Preconditions;
+
 /**
  * A container with measurement corrections for a single visible satellite
  *
@@ -31,9 +34,9 @@
 
     /**
      * Bit mask for {@link #mSingleSatCorrectionFlags} indicating the presence of {@link
-     * #mSatIsLos}.
+     * #mProbSatIsLos}.
      */
-    public static final int HAS_SAT_IS_LOS_MASK = 1 << 0;
+    public static final int HAS_PROB_SAT_IS_LOS_MASK = 1 << 0;
 
     /**
      * Bit mask for {@link #mSingleSatCorrectionFlags} indicating the presence of {@link
@@ -78,9 +81,11 @@
     private float mCarrierFrequencyHz;
 
     /**
-     * True if the satellite is estimated to be in Line-of-Sight condition at the given location.
+     * The probability that the satellite is estimated to be in Line-of-Sight condition at the given
+     * location.
      */
-    private boolean mSatIsLos;
+    @FloatRange(from = 0f, to = 1f)
+    private float mProbSatIsLos;
 
     /**
      * Excess path length to be subtracted from pseudorange before using it in calculating location.
@@ -103,7 +108,7 @@
         mSatId = builder.mSatId;
         mConstellationType = builder.mConstellationType;
         mCarrierFrequencyHz = builder.mCarrierFrequencyHz;
-        mSatIsLos = builder.mSatIsLos;
+        mProbSatIsLos = builder.mProbSatIsLos;
         mExcessPathLengthMeters = builder.mExcessPathLengthMeters;
         mExcessPathLengthUncertaintyMeters = builder.mExcessPathLengthUncertaintyMeters;
         mReflectingPlane = builder.mReflectingPlane;
@@ -152,9 +157,13 @@
         return mCarrierFrequencyHz;
     }
 
-    /** True if the satellite is line-of-sight */
-    public boolean isSatelliteLineOfSight() {
-        return mSatIsLos;
+    /**
+     * Returns the probability that the satellite is in line-of-sight condition at the given
+     * location.
+     */
+    @FloatRange(from = 0f, to = 1f)
+    public float getProbSatIsLos() {
+        return mProbSatIsLos;
     }
 
     /**
@@ -180,9 +189,9 @@
         return mReflectingPlane;
     }
 
-    /** Returns {@code true} if {@link #isSatelliteLineOfSight()} is valid. */
+    /** Returns {@code true} if {@link #getProbSatIsLos()} is valid. */
     public boolean hasSatelliteLineOfSight() {
-        return (mSingleSatCorrectionFlags & HAS_SAT_IS_LOS_MASK) != 0;
+        return (mSingleSatCorrectionFlags & HAS_PROB_SAT_IS_LOS_MASK) != 0;
     }
 
     /** Returns {@code true} if {@link #getExcessPathLengthMeters()} is valid. */
@@ -215,7 +224,7 @@
                                     .setConstellationType(parcel.readInt())
                                     .setSatId(parcel.readInt())
                                     .setCarrierFrequencyHz(parcel.readFloat())
-                                    .setSatIsLos(parcel.readBoolean())
+                                    .setProbSatIsLos(parcel.readFloat())
                                     .setExcessPathLengthMeters(parcel.readFloat())
                                     .setExcessPathLengthUncertaintyMeters(parcel.readFloat())
                                     .setReflectingPlane(
@@ -239,7 +248,7 @@
         builder.append(String.format(format, "ConstellationType = ", mConstellationType));
         builder.append(String.format(format, "SatId = ", mSatId));
         builder.append(String.format(format, "CarrierFrequencyHz = ", mCarrierFrequencyHz));
-        builder.append(String.format(format, "SatIsLos = ", mSatIsLos));
+        builder.append(String.format(format, "ProbSatIsLos = ", mProbSatIsLos));
         builder.append(String.format(format, "ExcessPathLengthMeters = ", mExcessPathLengthMeters));
         builder.append(
                 String.format(
@@ -256,7 +265,7 @@
         parcel.writeInt(mConstellationType);
         parcel.writeInt(mSatId);
         parcel.writeFloat(mCarrierFrequencyHz);
-        parcel.writeBoolean(mSatIsLos);
+        parcel.writeFloat(mProbSatIsLos);
         parcel.writeFloat(mExcessPathLengthMeters);
         parcel.writeFloat(mExcessPathLengthUncertaintyMeters);
         mReflectingPlane.writeToParcel(parcel, flags);
@@ -274,7 +283,7 @@
         private int mConstellationType;
         private int mSatId;
         private float mCarrierFrequencyHz;
-        private boolean mSatIsLos;
+        private float mProbSatIsLos;
         private float mExcessPathLengthMeters;
         private float mExcessPathLengthUncertaintyMeters;
         private GnssReflectingPlane mReflectingPlane;
@@ -303,10 +312,16 @@
             return this;
         }
 
-        /** Sets the line=of-sight state of the satellite */
-        public Builder setSatIsLos(boolean satIsLos) {
-            mSatIsLos = satIsLos;
-            mSingleSatCorrectionFlags = (byte) (mSingleSatCorrectionFlags | HAS_SAT_IS_LOS_MASK);
+        /**
+         * Sets the line-of-sight probability of the satellite at the given location in the range
+         * between 0 and 1.
+         */
+        public Builder setProbSatIsLos(@FloatRange(from = 0f, to = 1f) float probSatIsLos) {
+            Preconditions.checkArgumentInRange(probSatIsLos, 0, 1,
+                    "probSatIsLos should be between 0 and 1.");
+            mProbSatIsLos = probSatIsLos;
+            mSingleSatCorrectionFlags =
+                    (byte) (mSingleSatCorrectionFlags | HAS_PROB_SAT_IS_LOS_MASK);
             return this;
         }
 
diff --git a/location/lib/api/current.txt b/location/lib/api/current.txt
index 10c3447..c721218 100644
--- a/location/lib/api/current.txt
+++ b/location/lib/api/current.txt
@@ -1,27 +1,28 @@
+// Signature format: 2.0
 package com.android.location.provider {
 
-  public abstract deprecated class FusedProvider {
-    ctor public FusedProvider();
-    method public android.os.IBinder getBinder();
+  @Deprecated public abstract class FusedProvider {
+    ctor @Deprecated public FusedProvider();
+    method @Deprecated public android.os.IBinder getBinder();
   }
 
   public abstract class LocationProviderBase {
-    ctor public LocationProviderBase(java.lang.String, com.android.location.provider.ProviderPropertiesUnbundled);
+    ctor public LocationProviderBase(String, com.android.location.provider.ProviderPropertiesUnbundled);
     method public android.os.IBinder getBinder();
     method public boolean isEnabled();
-    method protected deprecated void onDisable();
-    method protected void onDump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
-    method protected deprecated void onEnable();
-    method protected deprecated int onGetStatus(android.os.Bundle);
-    method protected deprecated long onGetStatusUpdateTime();
+    method @Deprecated protected void onDisable();
+    method protected void onDump(java.io.FileDescriptor, java.io.PrintWriter, String[]);
+    method @Deprecated protected void onEnable();
+    method @Deprecated protected int onGetStatus(android.os.Bundle);
+    method @Deprecated protected long onGetStatusUpdateTime();
     method protected void onInit();
-    method protected boolean onSendExtraCommand(java.lang.String, android.os.Bundle);
+    method protected boolean onSendExtraCommand(@Nullable String, @Nullable android.os.Bundle);
     method protected abstract void onSetRequest(com.android.location.provider.ProviderRequestUnbundled, android.os.WorkSource);
     method public void reportLocation(android.location.Location);
     method public void setEnabled(boolean);
     method public void setProperties(com.android.location.provider.ProviderPropertiesUnbundled);
-    field public static final java.lang.String EXTRA_NO_GPS_LOCATION = "noGPSLocation";
-    field public static final java.lang.String FUSED_PROVIDER = "fused";
+    field public static final String EXTRA_NO_GPS_LOCATION = "noGPSLocation";
+    field public static final String FUSED_PROVIDER = "fused";
   }
 
   public final class LocationRequestUnbundled {
diff --git a/location/lib/api/removed.txt b/location/lib/api/removed.txt
index e69de29..d802177 100644
--- a/location/lib/api/removed.txt
+++ b/location/lib/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/location/lib/api/system-current.txt b/location/lib/api/system-current.txt
index e69de29..d802177 100644
--- a/location/lib/api/system-current.txt
+++ b/location/lib/api/system-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/location/lib/api/system-removed.txt b/location/lib/api/system-removed.txt
index e69de29..d802177 100644
--- a/location/lib/api/system-removed.txt
+++ b/location/lib/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/location/lib/api/test-current.txt b/location/lib/api/test-current.txt
index e69de29..d802177 100644
--- a/location/lib/api/test-current.txt
+++ b/location/lib/api/test-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/location/lib/api/test-removed.txt b/location/lib/api/test-removed.txt
index e69de29..d802177 100644
--- a/location/lib/api/test-removed.txt
+++ b/location/lib/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/location/lib/java/com/android/location/provider/ActivityChangedEvent.java b/location/lib/java/com/android/location/provider/ActivityChangedEvent.java
deleted file mode 100644
index 843dd67..0000000
--- a/location/lib/java/com/android/location/provider/ActivityChangedEvent.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.location.provider;
-
-import android.annotation.NonNull;
-
-import java.security.InvalidParameterException;
-import java.util.List;
-
-/**
- * A class representing an event for Activity changes.
- * @hide
- */
-public class ActivityChangedEvent {
-    private final List<ActivityRecognitionEvent> mActivityRecognitionEvents;
-
-    public ActivityChangedEvent(List<ActivityRecognitionEvent> activityRecognitionEvents) {
-        if (activityRecognitionEvents == null) {
-            throw new InvalidParameterException(
-                    "Parameter 'activityRecognitionEvents' must not be null.");
-        }
-
-        mActivityRecognitionEvents = activityRecognitionEvents;
-    }
-
-    @NonNull
-    public Iterable<ActivityRecognitionEvent> getActivityRecognitionEvents() {
-        return mActivityRecognitionEvents;
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder builder = new StringBuilder("[ ActivityChangedEvent:");
-
-        for (ActivityRecognitionEvent event : mActivityRecognitionEvents) {
-            builder.append("\n    ");
-            builder.append(event.toString());
-        }
-        builder.append("\n]");
-
-        return builder.toString();
-    }
-}
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionEvent.java b/location/lib/java/com/android/location/provider/ActivityRecognitionEvent.java
deleted file mode 100644
index e54dea4..0000000
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionEvent.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.location.provider;
-
-/**
- * A class that represents an Activity Recognition Event.
- * @hide
- */
-public class ActivityRecognitionEvent {
-    private final String mActivity;
-    private final int mEventType;
-    private final long mTimestampNs;
-
-    public ActivityRecognitionEvent(String activity, int eventType, long timestampNs) {
-        mActivity = activity;
-        mEventType = eventType;
-        mTimestampNs = timestampNs;
-    }
-
-    public String getActivity() {
-        return mActivity;
-    }
-
-    public int getEventType() {
-        return mEventType;
-    }
-
-    public long getTimestampNs() {
-        return mTimestampNs;
-    }
-
-    @Override
-    public String toString() {
-        String eventString;
-        switch (mEventType) {
-            case ActivityRecognitionProvider.EVENT_TYPE_ENTER:
-                eventString = "Enter";
-                break;
-            case ActivityRecognitionProvider.EVENT_TYPE_EXIT:
-                eventString = "Exit";
-                break;
-            case ActivityRecognitionProvider.EVENT_TYPE_FLUSH_COMPLETE:
-                eventString = "FlushComplete";
-                break;
-            default:
-                eventString = "<Invalid>";
-                break;
-        }
-
-        return String.format(
-                "Activity='%s', EventType=%s(%s), TimestampNs=%s",
-                mActivity,
-                eventString,
-                mEventType,
-                mTimestampNs);
-    }
-}
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java
deleted file mode 100644
index 0eff7d3..0000000
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.location.provider;
-
-import com.android.internal.util.Preconditions;
-
-import android.hardware.location.IActivityRecognitionHardware;
-import android.hardware.location.IActivityRecognitionHardwareSink;
-import android.os.RemoteException;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-
-/**
- * A class that exposes {@link IActivityRecognitionHardware} functionality to unbundled services.
- * @hide
- */
-public final class ActivityRecognitionProvider {
-    private final IActivityRecognitionHardware mService;
-    private final HashSet<Sink> mSinkSet = new HashSet<>();
-
-    // the following constants must remain in sync with activity_recognition.h
-
-    public static final String ACTIVITY_IN_VEHICLE = "android.activity_recognition.in_vehicle";
-    public static final String ACTIVITY_ON_BICYCLE = "android.activity_recognition.on_bicycle";
-    public static final String ACTIVITY_WALKING = "android.activity_recognition.walking";
-    public static final String ACTIVITY_RUNNING = "android.activity_recognition.running";
-    public static final String ACTIVITY_STILL = "android.activity_recognition.still";
-    public static final String ACTIVITY_TILTING = "android.activity_recognition.tilting";
-
-    // NOTE: when adding an additional EVENT_TYPE_, EVENT_TYPE_COUNT needs to be updated in
-    // android.hardware.location.ActivityRecognitionHardware
-    public static final int EVENT_TYPE_FLUSH_COMPLETE = 0;
-    public static final int EVENT_TYPE_ENTER = 1;
-    public static final int EVENT_TYPE_EXIT = 2;
-
-    // end constants activity_recognition.h
-
-    /**
-     * Used to receive Activity-Recognition events.
-     */
-    public interface Sink {
-        void onActivityChanged(ActivityChangedEvent event);
-    }
-
-    public ActivityRecognitionProvider(IActivityRecognitionHardware service)
-            throws RemoteException {
-        Preconditions.checkNotNull(service);
-        mService = service;
-        mService.registerSink(new SinkTransport());
-    }
-
-    public String[] getSupportedActivities() throws RemoteException {
-        return mService.getSupportedActivities();
-    }
-
-    public boolean isActivitySupported(String activity) throws RemoteException {
-        return mService.isActivitySupported(activity);
-    }
-
-    public void registerSink(Sink sink) {
-        Preconditions.checkNotNull(sink);
-        synchronized (mSinkSet) {
-            mSinkSet.add(sink);
-        }
-    }
-
-    // TODO: if this functionality is exposed to 3rd party developers, handle unregistration (here
-    // and in the service) of all sinks while failing to disable all events
-    public void unregisterSink(Sink sink) {
-        Preconditions.checkNotNull(sink);
-        synchronized (mSinkSet) {
-            mSinkSet.remove(sink);
-        }
-    }
-
-    public boolean enableActivityEvent(String activity, int eventType, long reportLatencyNs)
-            throws RemoteException {
-        return mService.enableActivityEvent(activity, eventType, reportLatencyNs);
-    }
-
-    public boolean disableActivityEvent(String activity, int eventType) throws RemoteException {
-        return mService.disableActivityEvent(activity, eventType);
-    }
-
-    public boolean flush() throws RemoteException {
-        return mService.flush();
-    }
-
-    private final class SinkTransport extends IActivityRecognitionHardwareSink.Stub {
-        @Override
-        public void onActivityChanged(android.hardware.location.ActivityChangedEvent event) {
-            Collection<Sink> sinks;
-            synchronized (mSinkSet) {
-                if (mSinkSet.isEmpty()) {
-                    return;
-                }
-                sinks = new ArrayList<>(mSinkSet);
-            }
-
-            // translate the event from platform internal and GmsCore types
-            ArrayList<ActivityRecognitionEvent> gmsEvents = new ArrayList<>();
-            for (android.hardware.location.ActivityRecognitionEvent reportingEvent
-                    : event.getActivityRecognitionEvents()) {
-                ActivityRecognitionEvent gmsEvent = new ActivityRecognitionEvent(
-                        reportingEvent.getActivity(),
-                        reportingEvent.getEventType(),
-                        reportingEvent.getTimestampNs());
-                gmsEvents.add(gmsEvent);
-            }
-            ActivityChangedEvent gmsEvent = new ActivityChangedEvent(gmsEvents);
-
-            for (Sink sink : sinks) {
-                sink.onActivityChanged(gmsEvent);
-            }
-        }
-    }
-}
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java
deleted file mode 100644
index 326d901..0000000
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.location.provider;
-
-import android.annotation.NonNull;
-import android.hardware.location.IActivityRecognitionHardware;
-import android.hardware.location.IActivityRecognitionHardwareClient;
-import android.os.Binder;
-import android.os.IBinder;
-import android.os.Process;
-import android.os.RemoteException;
-import android.util.Log;
-
-/**
- * A client class for interaction with an Activity-Recognition provider.
- * @hide
- */
-public abstract class ActivityRecognitionProviderClient {
-    private static final String TAG = "ArProviderClient";
-
-    protected ActivityRecognitionProviderClient() {}
-
-    private IActivityRecognitionHardwareClient.Stub mClient =
-            new IActivityRecognitionHardwareClient.Stub() {
-                @Override
-                public void onAvailabilityChanged(
-                        boolean isSupported,
-                        IActivityRecognitionHardware instance) {
-                    int callingUid = Binder.getCallingUid();
-                    if (callingUid != Process.SYSTEM_UID) {
-                        Log.d(TAG, "Ignoring calls from non-system server. Uid: " + callingUid);
-                        return;
-                    }
-                    ActivityRecognitionProvider provider;
-                    try {
-                        provider = isSupported ? new ActivityRecognitionProvider(instance) : null;
-                    } catch (RemoteException e) {
-                        Log.e(TAG, "Error creating Hardware Activity-Recognition Provider.", e);
-                        return;
-                    }
-                    onProviderChanged(isSupported, provider);
-                }
-            };
-
-    /**
-     * Gets the binder needed to interact with proxy provider in the platform.
-     */
-    @NonNull
-    public IBinder getBinder() {
-        return mClient;
-    }
-
-    /**
-     * Called when a change in the availability of {@link ActivityRecognitionProvider} is detected.
-     *
-     * @param isSupported whether the platform supports the provider natively
-     * @param instance the available provider's instance
-     */
-    public abstract void onProviderChanged(
-            boolean isSupported,
-            ActivityRecognitionProvider instance);
-}
diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java
deleted file mode 100644
index 42f77b4..0000000
--- a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.location.provider;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.hardware.location.IActivityRecognitionHardware;
-import android.hardware.location.IActivityRecognitionHardwareWatcher;
-import android.os.Binder;
-import android.os.IBinder;
-import android.os.Process;
-import android.os.RemoteException;
-import android.util.Log;
-
-/**
- * A watcher class for Activity-Recognition instances.
- *
- * @deprecated use {@link ActivityRecognitionProviderClient} instead.
- * @hide
- */
-@Deprecated
-public class ActivityRecognitionProviderWatcher {
-    private static final String TAG = "ActivityRecognitionProviderWatcher";
-
-    private static ActivityRecognitionProviderWatcher sWatcher;
-    private static final Object sWatcherLock = new Object();
-
-    private ActivityRecognitionProvider mActivityRecognitionProvider;
-
-    private ActivityRecognitionProviderWatcher() {}
-
-    public static ActivityRecognitionProviderWatcher getInstance() {
-        synchronized (sWatcherLock) {
-            if (sWatcher == null) {
-                sWatcher = new ActivityRecognitionProviderWatcher();
-            }
-            return sWatcher;
-        }
-    }
-
-    private IActivityRecognitionHardwareWatcher.Stub mWatcherStub =
-            new IActivityRecognitionHardwareWatcher.Stub() {
-        @Override
-        public void onInstanceChanged(IActivityRecognitionHardware instance) {
-            int callingUid = Binder.getCallingUid();
-            if (callingUid != Process.SYSTEM_UID) {
-                Log.d(TAG, "Ignoring calls from non-system server. Uid: " + callingUid);
-                return;
-            }
-
-            try {
-                mActivityRecognitionProvider = new ActivityRecognitionProvider(instance);
-            } catch (RemoteException e) {
-                Log.e(TAG, "Error creating Hardware Activity-Recognition", e);
-            }
-        }
-    };
-
-    /**
-     * Gets the binder needed to interact with proxy provider in the platform.
-     */
-    @NonNull
-    public IBinder getBinder() {
-        return mWatcherStub;
-    }
-
-    /**
-     * Gets an object that supports the functionality of {@link ActivityRecognitionProvider}.
-     *
-     * @return Non-null value if the functionality is supported by the platform, false otherwise.
-     */
-    @Nullable
-    public ActivityRecognitionProvider getActivityRecognitionProvider() {
-        return mActivityRecognitionProvider;
-    }
-}
diff --git a/location/tests/locationtests/src/android/location/GnssMeasurementCorrectionsTest.java b/location/tests/locationtests/src/android/location/GnssMeasurementCorrectionsTest.java
index c18d58f..d6227bb 100644
--- a/location/tests/locationtests/src/android/location/GnssMeasurementCorrectionsTest.java
+++ b/location/tests/locationtests/src/android/location/GnssMeasurementCorrectionsTest.java
@@ -59,7 +59,7 @@
         assertEquals(GnssStatus.CONSTELLATION_GPS, singleSatCorrection.getConstellationType());
         assertEquals(11, singleSatCorrection.getSatId());
         assertEquals(1575430000f, singleSatCorrection.getCarrierFrequencyHz());
-        assertEquals(false, singleSatCorrection.isSatelliteLineOfSight());
+        assertEquals(0.9f, singleSatCorrection.getProbSatIsLos());
         assertEquals(50.0f, singleSatCorrection.getExcessPathLengthMeters());
         assertEquals(55.0f, singleSatCorrection.getExcessPathLengthUncertaintyMeters());
         GnssReflectingPlane reflectingPlane = singleSatCorrection.getReflectingPlane();
@@ -88,7 +88,7 @@
                 .setConstellationType(GnssStatus.CONSTELLATION_GPS)
                 .setSatId(11)
                 .setCarrierFrequencyHz(1575430000f)
-                .setSatIsLos(false)
+                .setProbSatIsLos(0.9f)
                 .setExcessPathLengthMeters(50.0f)
                 .setExcessPathLengthUncertaintyMeters(55.0f)
                 .setReflectingPlane(generateTestReflectingPlane());
diff --git a/location/tests/locationtests/src/android/location/GnssSingleSatCorrectionsTest.java b/location/tests/locationtests/src/android/location/GnssSingleSatCorrectionsTest.java
index 2e54ae4..f358806 100644
--- a/location/tests/locationtests/src/android/location/GnssSingleSatCorrectionsTest.java
+++ b/location/tests/locationtests/src/android/location/GnssSingleSatCorrectionsTest.java
@@ -44,7 +44,7 @@
         assertEquals(GnssStatus.CONSTELLATION_GALILEO, singleSatCorrection.getConstellationType());
         assertEquals(12, singleSatCorrection.getSatId());
         assertEquals(1575420000f, singleSatCorrection.getCarrierFrequencyHz());
-        assertEquals(true, singleSatCorrection.isSatelliteLineOfSight());
+        assertEquals(0.1f, singleSatCorrection.getProbSatIsLos());
         assertEquals(10.0f, singleSatCorrection.getExcessPathLengthMeters());
         assertEquals(5.0f, singleSatCorrection.getExcessPathLengthUncertaintyMeters());
         GnssReflectingPlane reflectingPlane = singleSatCorrection.getReflectingPlane();
@@ -58,7 +58,7 @@
                 .setConstellationType(singleSatCorr.getConstellationType())
                 .setSatId(singleSatCorr.getSatId())
                 .setCarrierFrequencyHz(singleSatCorr.getCarrierFrequencyHz())
-                .setSatIsLos(singleSatCorr.isSatelliteLineOfSight())
+                .setProbSatIsLos(singleSatCorr.getProbSatIsLos())
                 .setExcessPathLengthMeters(singleSatCorr.getExcessPathLengthMeters())
                 .setExcessPathLengthUncertaintyMeters(
                         singleSatCorr.getExcessPathLengthUncertaintyMeters())
@@ -72,7 +72,7 @@
                         .setConstellationType(GnssStatus.CONSTELLATION_GALILEO)
                         .setSatId(12)
                         .setCarrierFrequencyHz(1575420000f)
-                        .setSatIsLos(true)
+                        .setProbSatIsLos(0.1f)
                         .setExcessPathLengthMeters(10.0f)
                         .setExcessPathLengthUncertaintyMeters(5.0f)
                         .setReflectingPlane(GnssReflectingPlaneTest.generateTestReflectingPlane());
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 30b5480..b7f042b 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -28,6 +28,7 @@
 import android.annotation.UnsupportedAppUsage;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
+import android.bluetooth.BluetoothCodecConfig;
 import android.bluetooth.BluetoothDevice;
 import android.content.ComponentName;
 import android.content.Context;
@@ -3802,6 +3803,12 @@
     public static final int DEVICE_IN_HDMI =
                                     AudioSystem.DEVICE_IN_HDMI;
     /** @hide
+     * The audio input device code for HDMI ARC
+     */
+    public static final int DEVICE_IN_HDMI_ARC =
+                                    AudioSystem.DEVICE_IN_HDMI_ARC;
+
+    /** @hide
      * The audio input device code for telephony voice RX path
      */
     public static final int DEVICE_IN_TELEPHONY_RX =
@@ -4047,6 +4054,36 @@
         }
     }
 
+     /**
+     * Indicate A2DP source or sink active device change and eventually suppress
+     * the {@link AudioManager.ACTION_AUDIO_BECOMING_NOISY} intent.
+     * @param device Bluetooth device connected/disconnected
+     * @param state  new connection state (BluetoothProfile.STATE_xxx)
+     * @param profile profile for the A2DP device
+     * (either {@link android.bluetooth.BluetoothProfile.A2DP} or
+     * {@link android.bluetooth.BluetoothProfile.A2DP_SINK})
+     * @param a2dpVolume New volume for the connecting device. Does nothing if
+     * disconnecting. Pass value -1 in case you want this field to be ignored
+     * @param suppressNoisyIntent if true the
+     * {@link AudioManager.ACTION_AUDIO_BECOMING_NOISY} intent will not be sent.
+     * @return a delay in ms that the caller should wait before broadcasting
+     * BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED intent.
+     * {@hide}
+     */
+    public int handleBluetoothA2dpActiveDeviceChange(
+                BluetoothDevice device, int state, int profile,
+                boolean suppressNoisyIntent, int a2dpVolume) {
+        final IAudioService service = getService();
+        int delay = 0;
+        try {
+            delay = service.handleBluetoothA2dpActiveDeviceChange(device,
+                state, profile, suppressNoisyIntent, a2dpVolume);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+        return delay;
+    }
+
     /** {@hide} */
     public IRingtonePlayer getRingtonePlayer() {
         try {
@@ -4910,6 +4947,34 @@
         return microphones;
     }
 
+    /**
+     * Returns a list of audio formats that corresponds to encoding formats
+     * supported on offload path for A2DP playback.
+     *
+     * @return a list of {@link BluetoothCodecConfig} objects containing encoding formats
+     * supported for offload A2DP playback
+     * @hide
+     */
+    public List<BluetoothCodecConfig> getHwOffloadEncodingFormatsSupportedForA2DP() {
+        ArrayList<Integer> formatsList = new ArrayList<Integer>();
+        ArrayList<BluetoothCodecConfig> codecConfigList = new ArrayList<BluetoothCodecConfig>();
+
+        int status = AudioSystem.getHwOffloadEncodingFormatsSupportedForA2DP(formatsList);
+        if (status != AudioManager.SUCCESS) {
+            Log.e(TAG, "getHwOffloadEncodingFormatsSupportedForA2DP failed:" + status);
+            return codecConfigList;
+        }
+
+        for (Integer format : formatsList) {
+            int btSourceCodec = AudioSystem.audioFormatToBluetoothSourceCodec(format);
+            if (btSourceCodec
+                    != BluetoothCodecConfig.SOURCE_CODEC_TYPE_INVALID) {
+                codecConfigList.add(new BluetoothCodecConfig(btSourceCodec));
+            }
+        }
+        return codecConfigList;
+    }
+
     // Since we need to calculate the changes since THE LAST NOTIFICATION, and not since the
     // (unpredictable) last time updateAudioPortCache() was called by someone, keep a list
     // of the ports that exist at the time of the last notification.
diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java
index de73649..2848b89 100644
--- a/media/java/android/media/AudioSystem.java
+++ b/media/java/android/media/AudioSystem.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.UnsupportedAppUsage;
+import android.bluetooth.BluetoothCodecConfig;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.media.audiofx.AudioEffect;
@@ -140,6 +141,29 @@
         }
     }
 
+    /* Formats for A2DP codecs, must match system/audio-base.h audio_format_t */
+    public static final int AUDIO_FORMAT_INVALID        = 0xFFFFFFFF;
+    public static final int AUDIO_FORMAT_DEFAULT        = 0;
+    public static final int AUDIO_FORMAT_AAC            = 0x04000000;
+    public static final int AUDIO_FORMAT_SBC            = 0x1F000000;
+    public static final int AUDIO_FORMAT_APTX           = 0x20000000;
+    public static final int AUDIO_FORMAT_APTX_HD        = 0x21000000;
+    public static final int AUDIO_FORMAT_LDAC           = 0x23000000;
+
+    /**
+     * Convert audio format enum values to Bluetooth codec values
+     */
+    public static int audioFormatToBluetoothSourceCodec(int audioFormat) {
+        switch (audioFormat) {
+            case AUDIO_FORMAT_AAC: return BluetoothCodecConfig.SOURCE_CODEC_TYPE_AAC;
+            case AUDIO_FORMAT_SBC: return BluetoothCodecConfig.SOURCE_CODEC_TYPE_SBC;
+            case AUDIO_FORMAT_APTX: return BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX;
+            case AUDIO_FORMAT_APTX_HD: return BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_HD;
+            case AUDIO_FORMAT_LDAC: return BluetoothCodecConfig.SOURCE_CODEC_TYPE_LDAC;
+            default: return BluetoothCodecConfig.SOURCE_CODEC_TYPE_INVALID;
+        }
+    }
+
     /* Routing bits for the former setRouting/getRouting API */
     /** @deprecated */
     @Deprecated public static final int ROUTE_EARPIECE          = (1 << 0);
@@ -542,6 +566,7 @@
     public static final int DEVICE_IN_PROXY = DEVICE_BIT_IN | 0x1000000;
     public static final int DEVICE_IN_USB_HEADSET = DEVICE_BIT_IN | 0x2000000;
     public static final int DEVICE_IN_BLUETOOTH_BLE = DEVICE_BIT_IN | 0x4000000;
+    public static final int DEVICE_IN_HDMI_ARC = DEVICE_BIT_IN | 0x8000000;
     public static final int DEVICE_IN_ECHO_REFERENCE = DEVICE_BIT_IN | 0x10000000;
     @UnsupportedAppUsage
     public static final int DEVICE_IN_DEFAULT = DEVICE_BIT_IN | DEVICE_BIT_DEFAULT;
@@ -570,6 +595,7 @@
                                              DEVICE_IN_PROXY |
                                              DEVICE_IN_USB_HEADSET |
                                              DEVICE_IN_BLUETOOTH_BLE |
+                                             DEVICE_IN_HDMI_ARC |
                                              DEVICE_IN_ECHO_REFERENCE |
                                              DEVICE_IN_DEFAULT);
     public static final int DEVICE_IN_ALL_SCO = DEVICE_IN_BLUETOOTH_SCO_HEADSET;
@@ -647,6 +673,7 @@
     public static final String DEVICE_IN_USB_HEADSET_NAME = "usb_headset";
     public static final String DEVICE_IN_BLUETOOTH_BLE_NAME = "bt_ble";
     public static final String DEVICE_IN_ECHO_REFERENCE_NAME = "echo_reference";
+    public static final String DEVICE_IN_HDMI_ARC_NAME = "hdmi_arc";
 
     @UnsupportedAppUsage
     public static String getOutputDeviceName(int device)
@@ -767,6 +794,8 @@
             return DEVICE_IN_BLUETOOTH_BLE_NAME;
         case DEVICE_IN_ECHO_REFERENCE:
             return DEVICE_IN_ECHO_REFERENCE_NAME;
+        case DEVICE_IN_HDMI_ARC:
+            return DEVICE_IN_HDMI_ARC_NAME;
         case DEVICE_IN_DEFAULT:
         default:
             return Integer.toString(device);
@@ -860,12 +889,14 @@
      */
     @UnsupportedAppUsage
     public static native int setDeviceConnectionState(int device, int state,
-                                                      String device_address, String device_name);
+                                                      String device_address, String device_name,
+                                                      int codecFormat);
     @UnsupportedAppUsage
     public static native int getDeviceConnectionState(int device, String device_address);
     public static native int handleDeviceConfigChange(int device,
                                                       String device_address,
-                                                      String device_name);
+                                                      String device_name,
+                                                      int codecFormat);
     @UnsupportedAppUsage
     public static native int setPhoneState(int state);
     @UnsupportedAppUsage
@@ -950,6 +981,12 @@
     public static native int getSurroundFormats(Map<Integer, Boolean> surroundFormats,
                                                 boolean reported);
 
+    /**
+     * Returns a list of audio formats (codec) supported on the A2DP offload path.
+     */
+    public static native int getHwOffloadEncodingFormatsSupportedForA2DP(
+            ArrayList<Integer> formatList);
+
     public static native int setSurroundFormatEnabled(int audioFormat, boolean enabled);
 
     /**
diff --git a/media/java/android/media/Controller2Link.java b/media/java/android/media/Controller2Link.java
index a62db5f..d11f776 100644
--- a/media/java/android/media/Controller2Link.java
+++ b/media/java/android/media/Controller2Link.java
@@ -16,6 +16,7 @@
 
 package android.media;
 
+import android.os.Binder;
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -102,6 +103,15 @@
         }
     }
 
+    /** Interface method for IMediaController2.notifyPlaybackActiveChanged */
+    public void notifyPlaybackActiveChanged(int seq, boolean playbackActive) {
+        try {
+            mIController.notifyPlaybackActiveChanged(seq, playbackActive);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
     /** Interface method for IMediaController2.sendSessionCommand */
     public void sendSessionCommand(int seq, Session2Command command, Bundle args,
             ResultReceiver resultReceiver) {
@@ -135,6 +145,11 @@
         mController.onDisconnected(seq);
     }
 
+    /** Stub implementation for IMediaController2.notifyPlaybackActiveChanged */
+    public void onPlaybackActiveChanged(int seq, boolean playbackActive) {
+        mController.onPlaybackActiveChanged(seq, playbackActive);
+    }
+
     /** Stub implementation for IMediaController2.sendSessionCommand */
     public void onSessionCommand(int seq, Session2Command command, Bundle args,
             ResultReceiver resultReceiver) {
@@ -149,23 +164,53 @@
     private class Controller2Stub extends IMediaController2.Stub {
         @Override
         public void notifyConnected(int seq, Bundle connectionResult) {
-            Controller2Link.this.onConnected(seq, connectionResult);
+            final long token = Binder.clearCallingIdentity();
+            try {
+                Controller2Link.this.onConnected(seq, connectionResult);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
         }
 
         @Override
         public void notifyDisconnected(int seq) {
-            Controller2Link.this.onDisconnected(seq);
+            final long token = Binder.clearCallingIdentity();
+            try {
+                Controller2Link.this.onDisconnected(seq);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+
+        @Override
+        public void notifyPlaybackActiveChanged(int seq, boolean playbackActive) {
+            final long token = Binder.clearCallingIdentity();
+            try {
+                Controller2Link.this.onPlaybackActiveChanged(seq, playbackActive);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
         }
 
         @Override
         public void sendSessionCommand(int seq, Session2Command command, Bundle args,
                 ResultReceiver resultReceiver) {
-            Controller2Link.this.onSessionCommand(seq, command, args, resultReceiver);
+            final long token = Binder.clearCallingIdentity();
+            try {
+                Controller2Link.this.onSessionCommand(seq, command, args, resultReceiver);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
         }
 
         @Override
         public void cancelSessionCommand(int seq) {
-            Controller2Link.this.onCancelCommand(seq);
+            final long token = Binder.clearCallingIdentity();
+            try {
+                Controller2Link.this.onCancelCommand(seq);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
         }
     }
 }
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index 9fbd7ea..14bdab9 100644
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -155,6 +155,9 @@
 
     void handleBluetoothA2dpDeviceConfigChange(in BluetoothDevice device);
 
+    int handleBluetoothA2dpActiveDeviceChange(in BluetoothDevice device,
+            int state, int profile, boolean suppressNoisyIntent, int a2dpVolume);
+
     AudioRoutesInfo startWatchingRoutes(in IAudioRoutesObserver observer);
 
     boolean isCameraSoundForced();
diff --git a/media/java/android/media/IMediaController2.aidl b/media/java/android/media/IMediaController2.aidl
index ca5394f..42c6e70 100644
--- a/media/java/android/media/IMediaController2.aidl
+++ b/media/java/android/media/IMediaController2.aidl
@@ -31,8 +31,9 @@
 oneway interface IMediaController2 {
     void notifyConnected(int seq, in Bundle connectionResult) = 0;
     void notifyDisconnected(int seq) = 1;
+    void notifyPlaybackActiveChanged(int seq, boolean playbackActive) = 2;
     void sendSessionCommand(int seq, in Session2Command command, in Bundle args,
-            in ResultReceiver resultReceiver) = 2;
-    void cancelSessionCommand(int seq) = 3;
-    // Next Id : 4
+            in ResultReceiver resultReceiver) = 3;
+    void cancelSessionCommand(int seq) = 4;
+    // Next Id : 5
 }
diff --git a/media/java/android/media/ImageReader.java b/media/java/android/media/ImageReader.java
index 8ec0e35..9ac147b 100644
--- a/media/java/android/media/ImageReader.java
+++ b/media/java/android/media/ImageReader.java
@@ -150,7 +150,7 @@
      * consumer end-points. For example, if the application intends to send the images to
      * {@link android.media.MediaCodec} or {@link android.media.MediaRecorder} for hardware video
      * encoding, the format and usage flag combination needs to be
-     * {@link ImageFormat#PRIVATE PRIVATE} and {@link HardwareBuffer#USAGE0_VIDEO_ENCODE}. When an
+     * {@link ImageFormat#PRIVATE PRIVATE} and {@link HardwareBuffer#USAGE_VIDEO_ENCODE}. When an
      * {@link ImageReader} object is created with a valid size and such format/usage flag
      * combination, the application can send the {@link Image images} to an {@link ImageWriter} that
      * is created with the input {@link android.view.Surface} provided by the
@@ -173,7 +173,7 @@
      * ImageReaders using other format such as {@link ImageFormat#YUV_420_888 YUV_420_888}.
      * </p>
      * <p>
-     * Note that not all format and usage flag combination is supported by the
+     * Note that not all format and usage flag combinations are supported by the
      * {@link ImageReader}. Below are the supported combinations by the {@link ImageReader}
      * (assuming the consumer end-points support the such image consumption, e.g., hardware video
      * encoding).
@@ -186,13 +186,13 @@
      *   <td>non-{@link android.graphics.ImageFormat#PRIVATE PRIVATE} formats defined by
      *   {@link android.graphics.ImageFormat ImageFormat} or
      *   {@link android.graphics.PixelFormat PixelFormat}</td>
-     *   <td>{@link HardwareBuffer#USAGE0_CPU_READ} or
-     *   {@link HardwareBuffer#USAGE0_CPU_READ_OFTEN}</td>
+     *   <td>{@link HardwareBuffer#USAGE_CPU_READ_RARELY} or
+     *   {@link HardwareBuffer#USAGE_CPU_READ_OFTEN}</td>
      * </tr>
      * <tr>
      *   <td>{@link android.graphics.ImageFormat#PRIVATE}</td>
-     *   <td>{@link HardwareBuffer#USAGE0_VIDEO_ENCODE} or
-     *   {@link HardwareBuffer#USAGE0_GPU_SAMPLED_IMAGE}, or combined</td>
+     *   <td>{@link HardwareBuffer#USAGE_VIDEO_ENCODE} or
+     *   {@link HardwareBuffer#USAGE_GPU_SAMPLED_IMAGE}, or combined</td>
      * </tr>
      * </table>
      * Using other combinations may result in {@link IllegalArgumentException}.
@@ -208,11 +208,10 @@
      *            become available for access through {@link #acquireLatestImage()} or
      *            {@link #acquireNextImage()}. Must be greater than 0.
      * @param usage The intended usage of the images produced by this ImageReader. It needs
-     *            to be one of the Usage0 defined by {@link HardwareBuffer}, or an
+     *            to be one of the Usage defined by {@link HardwareBuffer}, or an
      *            {@link IllegalArgumentException} will be thrown.
      * @see Image
      * @see HardwareBuffer
-     * @hide
      */
     public static ImageReader newInstance(int width, int height, int format, int maxImages,
             long usage) {
diff --git a/media/java/android/media/ImageWriter.java b/media/java/android/media/ImageWriter.java
index 4c0153f..dd09afc 100644
--- a/media/java/android/media/ImageWriter.java
+++ b/media/java/android/media/ImageWriter.java
@@ -168,7 +168,6 @@
      *            {@link ImageFormat} or {@link PixelFormat}.
      *
      * @return a new ImageWriter instance.
-     * @hide
      */
     public static ImageWriter newInstance(Surface surface, int maxImages, int format) {
         if (!ImageFormat.isPublicFormat(format) && !PixelFormat.isPublicFormat(format)) {
diff --git a/media/java/android/media/MediaConstants.java b/media/java/android/media/MediaConstants.java
index 5a5747a..65b6f55 100644
--- a/media/java/android/media/MediaConstants.java
+++ b/media/java/android/media/MediaConstants.java
@@ -26,6 +26,7 @@
     // Bundle key for Parcelable
     static final String KEY_SESSION2LINK = "android.media.key.SESSION2LINK";
     static final String KEY_ALLOWED_COMMANDS = "android.media.key.ALLOWED_COMMANDS";
+    static final String KEY_PLAYBACK_ACTIVE = "android.media.key.PLAYBACK_ACTIVE";
 
     private MediaConstants() {
     }
diff --git a/media/java/android/media/MediaController2.java b/media/java/android/media/MediaController2.java
index 165ea41..7c5335b 100644
--- a/media/java/android/media/MediaController2.java
+++ b/media/java/android/media/MediaController2.java
@@ -19,6 +19,7 @@
 import static android.media.MediaConstants.KEY_ALLOWED_COMMANDS;
 import static android.media.MediaConstants.KEY_PACKAGE_NAME;
 import static android.media.MediaConstants.KEY_PID;
+import static android.media.MediaConstants.KEY_PLAYBACK_ACTIVE;
 import static android.media.MediaConstants.KEY_SESSION2LINK;
 import static android.media.Session2Command.RESULT_ERROR_UNKNOWN_ERROR;
 import static android.media.Session2Command.RESULT_INFO_SKIPPED;
@@ -30,7 +31,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
-import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -82,6 +82,8 @@
     private ArrayMap<ResultReceiver, Integer> mPendingCommands;
     //@GuardedBy("mLock")
     private ArraySet<Integer> mRequestedCommandSeqNumbers;
+    //@GuardedBy("mLock")
+    private boolean mPlaybackActive;
 
     /**
      * Create a {@link MediaController2} from the {@link Session2Token}.
@@ -160,6 +162,18 @@
     }
 
     /**
+     * Returns whether the session's playback is active.
+     *
+     * @return {@code true} if playback active. {@code false} otherwise.
+     * @see ControllerCallback#onPlaybackActiveChanged(MediaController2, boolean)
+     */
+    public boolean isPlaybackActive() {
+        synchronized (mLock) {
+            return mPlaybackActive;
+        }
+    }
+
+    /**
      * Sends a session command to the session
      * <p>
      * @param command the session command
@@ -221,89 +235,82 @@
 
     // Called by Controller2Link.onConnected
     void onConnected(int seq, Bundle connectionResult) {
-        final long token = Binder.clearCallingIdentity();
-        try {
-            Session2Link sessionBinder = connectionResult.getParcelable(KEY_SESSION2LINK);
-            Session2CommandGroup allowedCommands =
-                    connectionResult.getParcelable(KEY_ALLOWED_COMMANDS);
-            if (DEBUG) {
-                Log.d(TAG, "notifyConnected sessionBinder=" + sessionBinder
-                        + ", allowedCommands=" + allowedCommands);
-            }
-            if (sessionBinder == null || allowedCommands == null) {
-                // Connection rejected.
-                close();
-                return;
-            }
-            synchronized (mLock) {
-                mSessionBinder = sessionBinder;
-                mAllowedCommands = allowedCommands;
-                // Implementation for the local binder is no-op,
-                // so can be used without worrying about deadlock.
-                sessionBinder.linkToDeath(mDeathRecipient, 0);
-                mConnectedToken = new Session2Token(mSessionToken.getUid(), TYPE_SESSION,
-                        mSessionToken.getPackageName(), sessionBinder);
-            }
-            mCallbackExecutor.execute(() -> {
-                mCallback.onConnected(MediaController2.this, allowedCommands);
-            });
-        } finally {
-            Binder.restoreCallingIdentity(token);
+        Session2Link sessionBinder = connectionResult.getParcelable(KEY_SESSION2LINK);
+        Session2CommandGroup allowedCommands =
+                connectionResult.getParcelable(KEY_ALLOWED_COMMANDS);
+        boolean playbackActive = connectionResult.getBoolean(KEY_PLAYBACK_ACTIVE);
+        if (DEBUG) {
+            Log.d(TAG, "notifyConnected sessionBinder=" + sessionBinder
+                    + ", allowedCommands=" + allowedCommands);
         }
+        if (sessionBinder == null || allowedCommands == null) {
+            // Connection rejected.
+            close();
+            return;
+        }
+        synchronized (mLock) {
+            mSessionBinder = sessionBinder;
+            mAllowedCommands = allowedCommands;
+            mPlaybackActive = playbackActive;
+
+            // Implementation for the local binder is no-op,
+            // so can be used without worrying about deadlock.
+            sessionBinder.linkToDeath(mDeathRecipient, 0);
+            mConnectedToken = new Session2Token(mSessionToken.getUid(), TYPE_SESSION,
+                    mSessionToken.getPackageName(), sessionBinder);
+        }
+        mCallbackExecutor.execute(() -> {
+            mCallback.onConnected(MediaController2.this, allowedCommands);
+        });
     }
 
     // Called by Controller2Link.onDisconnected
     void onDisconnected(int seq) {
-        final long token = Binder.clearCallingIdentity();
-        try {
-            // close() will call mCallback.onDisconnected
-            close();
-        } finally {
-            Binder.restoreCallingIdentity(token);
+        // close() will call mCallback.onDisconnected
+        close();
+    }
+
+    // Called by Controller2Link.onPlaybackActiveChanged
+    void onPlaybackActiveChanged(int seq, boolean playbackActive) {
+        synchronized (mLock) {
+            mPlaybackActive = playbackActive;
         }
+        mCallbackExecutor.execute(() -> {
+            mCallback.onPlaybackActiveChanged(MediaController2.this, playbackActive);
+        });
     }
 
     // Called by Controller2Link.onSessionCommand
     void onSessionCommand(int seq, Session2Command command, Bundle args,
             @Nullable ResultReceiver resultReceiver) {
-        final long token = Binder.clearCallingIdentity();
-        try {
-            synchronized (mLock) {
-                mRequestedCommandSeqNumbers.add(seq);
-            }
-            mCallbackExecutor.execute(() -> {
-                boolean isCanceled;
-                synchronized (mLock) {
-                    isCanceled = !mRequestedCommandSeqNumbers.remove(seq);
-                }
-                if (isCanceled) {
-                    resultReceiver.send(RESULT_INFO_SKIPPED, null);
-                    return;
-                }
-                Session2Command.Result result = mCallback.onSessionCommand(
-                        MediaController2.this, command, args);
-                if (resultReceiver != null) {
-                    if (result == null) {
-                        throw new RuntimeException("onSessionCommand shouldn't return null");
-                    } else {
-                        resultReceiver.send(result.getResultCode(), result.getResultData());
-                    }
-                }
-            });
-        } finally {
-            Binder.restoreCallingIdentity(token);
+        synchronized (mLock) {
+            mRequestedCommandSeqNumbers.add(seq);
         }
+        mCallbackExecutor.execute(() -> {
+            boolean isCanceled;
+            synchronized (mLock) {
+                isCanceled = !mRequestedCommandSeqNumbers.remove(seq);
+            }
+            if (isCanceled) {
+                resultReceiver.send(RESULT_INFO_SKIPPED, null);
+                return;
+            }
+            Session2Command.Result result = mCallback.onSessionCommand(
+                    MediaController2.this, command, args);
+            if (resultReceiver != null) {
+                if (result == null) {
+                    throw new RuntimeException("onSessionCommand shouldn't return null");
+                } else {
+                    resultReceiver.send(result.getResultCode(), result.getResultData());
+                }
+            }
+        });
     }
 
     // Called by Controller2Link.onSessionCommand
     void onCancelCommand(int seq) {
-        final long token = Binder.clearCallingIdentity();
-        try {
-            synchronized (mLock) {
-                mRequestedCommandSeqNumbers.remove(seq);
-            }
-        } finally {
-            Binder.restoreCallingIdentity(token);
+        synchronized (mLock) {
+            mRequestedCommandSeqNumbers.remove(seq);
         }
     }
 
@@ -393,6 +400,17 @@
         public void onDisconnected(@NonNull MediaController2 controller) {}
 
         /**
+         * Called when the playback of the session's playback activeness is changed.
+         *
+         * @param controller the controller for this event
+         * @param playbackActive {@code true} if the session's playback is active.
+         *                       {@code false} otherwise.
+         * @see MediaController2#isPlaybackActive()
+         */
+        public void onPlaybackActiveChanged(@NonNull MediaController2 controller,
+                boolean playbackActive) {}
+
+        /**
          * Called when the connected session sent a session command.
          *
          * @param controller the controller for this event
diff --git a/media/java/android/media/MediaDrm.java b/media/java/android/media/MediaDrm.java
index 75b3915..bfc10da5 100644
--- a/media/java/android/media/MediaDrm.java
+++ b/media/java/android/media/MediaDrm.java
@@ -1285,7 +1285,7 @@
 
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({HDCP_LEVEL_UNKNOWN, HDCP_NONE, HDCP_V1, HDCP_V2,
-                        HDCP_V2_1, HDCP_V2_2, HDCP_NO_DIGITAL_OUTPUT})
+                        HDCP_V2_1, HDCP_V2_2, HDCP_V2_3, HDCP_NO_DIGITAL_OUTPUT})
     public @interface HdcpLevel {}
 
 
@@ -1321,6 +1321,11 @@
     public static final int HDCP_V2_2 = 5;
 
     /**
+     *  HDCP version 2.3 Type 1.
+     */
+    public static final int HDCP_V2_3 = 6;
+
+    /**
      * No digital output, implicitly secure
      */
     public static final int HDCP_NO_DIGITAL_OUTPUT = Integer.MAX_VALUE;
diff --git a/media/java/android/media/MediaSession2.java b/media/java/android/media/MediaSession2.java
index 04999ca..3adac72 100644
--- a/media/java/android/media/MediaSession2.java
+++ b/media/java/android/media/MediaSession2.java
@@ -19,6 +19,7 @@
 import static android.media.MediaConstants.KEY_ALLOWED_COMMANDS;
 import static android.media.MediaConstants.KEY_PACKAGE_NAME;
 import static android.media.MediaConstants.KEY_PID;
+import static android.media.MediaConstants.KEY_PLAYBACK_ACTIVE;
 import static android.media.MediaConstants.KEY_SESSION2LINK;
 import static android.media.Session2Command.RESULT_ERROR_UNKNOWN_ERROR;
 import static android.media.Session2Command.RESULT_INFO_SKIPPED;
@@ -87,6 +88,8 @@
 
     //@GuardedBy("mLock")
     private boolean mClosed;
+    //@GuardedBy("mLock")
+    private boolean mPlaybackActive;
 
     MediaSession2(@NonNull Context context, @NonNull String id, PendingIntent sessionActivity,
             @NonNull Executor callbackExecutor, @NonNull SessionCallback callback) {
@@ -215,6 +218,35 @@
         controller.cancelSessionCommand(token);
     }
 
+    /**
+     * Sets whether the playback is active (i.e. playing something)
+     *
+     * @param playbackActive {@code true} if the playback active, {@code false} otherwise.
+     **/
+    public void setPlaybackActive(boolean playbackActive) {
+        synchronized (mLock) {
+            if (mPlaybackActive == playbackActive) {
+                return;
+            }
+            mPlaybackActive = playbackActive;
+        }
+        List<ControllerInfo> controllerInfos = getConnectedControllers();
+        for (ControllerInfo controller : controllerInfos) {
+            controller.notifyPlaybackActiveChanged(playbackActive);
+        }
+    }
+
+    /**
+     * Returns whehther the playback is active (i.e. playing something)
+     *
+     * @return {@code true} if the playback active, {@code false} otherwise.
+     */
+    public boolean isPlaybackActive() {
+        synchronized (mLock) {
+            return mPlaybackActive;
+        }
+    }
+
     boolean isClosed() {
         synchronized (mLock) {
             return mClosed;
@@ -275,6 +307,7 @@
                 connectionResult.putParcelable(KEY_SESSION2LINK, mSessionStub);
                 connectionResult.putParcelable(KEY_ALLOWED_COMMANDS,
                         controllerInfo.mAllowedCommands);
+                connectionResult.putBoolean(KEY_PLAYBACK_ACTIVE, isPlaybackActive());
 
                 // Double check if session is still there, because close() can be called in
                 // another thread.
@@ -591,6 +624,16 @@
             }
         }
 
+        void notifyPlaybackActiveChanged(boolean playbackActive) {
+            if (mControllerBinder == null) return;
+
+            try {
+                mControllerBinder.notifyPlaybackActiveChanged(getNextSeqNumber(), playbackActive);
+            } catch (RuntimeException e) {
+                // Controller may be died prematurely.
+            }
+        }
+
         void sendSessionCommand(Session2Command command, Bundle args,
                 ResultReceiver resultReceiver) {
             if (mControllerBinder == null) return;
diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp
index 8336459..42c5b05 100644
--- a/media/jni/android_media_MediaDrm.cpp
+++ b/media/jni/android_media_MediaDrm.cpp
@@ -159,6 +159,7 @@
     jint kHdcpV2;
     jint kHdcpV2_1;
     jint kHdcpV2_2;
+    jint kHdcpV2_3;
     jint kHdcpNoOutput;
 } gHdcpLevels;
 
@@ -774,6 +775,8 @@
     gHdcpLevels.kHdcpV2_1 = env->GetStaticIntField(clazz, field);
     GET_STATIC_FIELD_ID(field, clazz, "HDCP_V2_2", "I");
     gHdcpLevels.kHdcpV2_2 = env->GetStaticIntField(clazz, field);
+    GET_STATIC_FIELD_ID(field, clazz, "HDCP_V2_3", "I");
+    gHdcpLevels.kHdcpV2_3 = env->GetStaticIntField(clazz, field);
     GET_STATIC_FIELD_ID(field, clazz, "HDCP_NO_DIGITAL_OUTPUT", "I");
     gHdcpLevels.kHdcpNoOutput = env->GetStaticIntField(clazz, field);
 
@@ -1390,6 +1393,8 @@
         return gHdcpLevels.kHdcpV2_1;
     case DrmPlugin::kHdcpV2_2:
         return gHdcpLevels.kHdcpV2_2;
+    case DrmPlugin::kHdcpV2_3:
+        return gHdcpLevels.kHdcpV2_3;
     case DrmPlugin::kHdcpNoOutput:
         return gHdcpLevels.kHdcpNoOutput;
     }
diff --git a/media/jni/android_mtp_MtpDatabase.cpp b/media/jni/android_mtp_MtpDatabase.cpp
index 56b85b5..06a7182 100644
--- a/media/jni/android_mtp_MtpDatabase.cpp
+++ b/media/jni/android_mtp_MtpDatabase.cpp
@@ -708,6 +708,24 @@
             int type = dataTypes[i];
             packet.putUInt16(type);
 
+            if (type == MTP_TYPE_STR) {
+                jstring value = (jstring)env->GetObjectArrayElement(stringValuesArray, i);
+                const char *valueStr = (value ? env->GetStringUTFChars(value, NULL) : NULL);
+                if (valueStr) {
+                    packet.putString(valueStr);
+                    env->ReleaseStringUTFChars(value, valueStr);
+                } else {
+                    packet.putEmptyString();
+                }
+                env->DeleteLocalRef(value);
+                continue;
+            }
+
+            if (!longValues) {
+                ALOGE("bad longValuesArray value in MyMtpDatabase::getObjectPropertyList");
+                continue;
+            }
+
             switch (type) {
                 case MTP_TYPE_INT8:
                     packet.putInt8(longValues[i]);
@@ -739,18 +757,6 @@
                 case MTP_TYPE_UINT128:
                     packet.putUInt128(longValues[i]);
                     break;
-                case MTP_TYPE_STR: {
-                    jstring value = (jstring)env->GetObjectArrayElement(stringValuesArray, i);
-                    const char *valueStr = (value ? env->GetStringUTFChars(value, NULL) : NULL);
-                    if (valueStr) {
-                        packet.putString(valueStr);
-                        env->ReleaseStringUTFChars(value, valueStr);
-                    } else {
-                        packet.putEmptyString();
-                    }
-                    env->DeleteLocalRef(value);
-                    break;
-                }
                 default:
                     ALOGE("bad or unsupported data type in MtpDatabase::getObjectPropertyList");
                     break;
diff --git a/media/lib/remotedisplay/api/current.txt b/media/lib/remotedisplay/api/current.txt
index e69de29..d802177 100644
--- a/media/lib/remotedisplay/api/current.txt
+++ b/media/lib/remotedisplay/api/current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/remotedisplay/api/removed.txt b/media/lib/remotedisplay/api/removed.txt
index e69de29..d802177 100644
--- a/media/lib/remotedisplay/api/removed.txt
+++ b/media/lib/remotedisplay/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/remotedisplay/api/system-current.txt b/media/lib/remotedisplay/api/system-current.txt
index 69bbd35..3619fcf 100644
--- a/media/lib/remotedisplay/api/system-current.txt
+++ b/media/lib/remotedisplay/api/system-current.txt
@@ -1,17 +1,18 @@
+// Signature format: 2.0
 package com.android.media.remotedisplay {
 
   public class RemoteDisplay {
-    ctor public RemoteDisplay(java.lang.String, java.lang.String);
-    method public java.lang.String getDescription();
-    method public java.lang.String getId();
-    method public java.lang.String getName();
+    ctor public RemoteDisplay(String, String);
+    method public String getDescription();
+    method public String getId();
+    method public String getName();
     method public int getPresentationDisplayId();
     method public int getStatus();
     method public int getVolume();
     method public int getVolumeHandling();
     method public int getVolumeMax();
-    method public void setDescription(java.lang.String);
-    method public void setName(java.lang.String);
+    method public void setDescription(String);
+    method public void setName(String);
     method public void setPresentationDisplayId(int);
     method public void setStatus(int);
     method public void setVolume(int);
@@ -29,7 +30,7 @@
   public abstract class RemoteDisplayProvider {
     ctor public RemoteDisplayProvider(android.content.Context);
     method public void addDisplay(com.android.media.remotedisplay.RemoteDisplay);
-    method public com.android.media.remotedisplay.RemoteDisplay findRemoteDisplay(java.lang.String);
+    method public com.android.media.remotedisplay.RemoteDisplay findRemoteDisplay(String);
     method public android.os.IBinder getBinder();
     method public final android.content.Context getContext();
     method public int getDiscoveryMode();
@@ -45,7 +46,7 @@
     field public static final int DISCOVERY_MODE_ACTIVE = 2; // 0x2
     field public static final int DISCOVERY_MODE_NONE = 0; // 0x0
     field public static final int DISCOVERY_MODE_PASSIVE = 1; // 0x1
-    field public static final java.lang.String SERVICE_INTERFACE = "com.android.media.remotedisplay.RemoteDisplayProvider";
+    field public static final String SERVICE_INTERFACE = "com.android.media.remotedisplay.RemoteDisplayProvider";
   }
 
 }
diff --git a/media/lib/remotedisplay/api/system-removed.txt b/media/lib/remotedisplay/api/system-removed.txt
index e69de29..d802177 100644
--- a/media/lib/remotedisplay/api/system-removed.txt
+++ b/media/lib/remotedisplay/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/remotedisplay/api/test-current.txt b/media/lib/remotedisplay/api/test-current.txt
index e69de29..d802177 100644
--- a/media/lib/remotedisplay/api/test-current.txt
+++ b/media/lib/remotedisplay/api/test-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/remotedisplay/api/test-removed.txt b/media/lib/remotedisplay/api/test-removed.txt
index e69de29..d802177 100644
--- a/media/lib/remotedisplay/api/test-removed.txt
+++ b/media/lib/remotedisplay/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/signer/api/current.txt b/media/lib/signer/api/current.txt
index 4aa912d..c9298dd 100644
--- a/media/lib/signer/api/current.txt
+++ b/media/lib/signer/api/current.txt
@@ -1,9 +1,10 @@
+// Signature format: 2.0
 package com.android.mediadrm.signer {
 
   public final class MediaDrmSigner {
-    method public static com.android.mediadrm.signer.MediaDrmSigner.CertificateRequest getCertificateRequest(android.media.MediaDrm, int, java.lang.String);
+    method public static com.android.mediadrm.signer.MediaDrmSigner.CertificateRequest getCertificateRequest(android.media.MediaDrm, int, String);
     method public static com.android.mediadrm.signer.MediaDrmSigner.Certificate provideCertificateResponse(android.media.MediaDrm, byte[]) throws android.media.DeniedByServerException;
-    method public static byte[] signRSA(android.media.MediaDrm, byte[], java.lang.String, byte[], byte[]);
+    method public static byte[] signRSA(android.media.MediaDrm, byte[], String, byte[], byte[]);
     field public static final int CERTIFICATE_TYPE_X509 = 1; // 0x1
   }
 
@@ -14,7 +15,7 @@
 
   public static final class MediaDrmSigner.CertificateRequest {
     method public byte[] getData();
-    method public java.lang.String getDefaultUrl();
+    method public String getDefaultUrl();
   }
 
 }
diff --git a/media/lib/signer/api/removed.txt b/media/lib/signer/api/removed.txt
index e69de29..d802177 100644
--- a/media/lib/signer/api/removed.txt
+++ b/media/lib/signer/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/signer/api/system-current.txt b/media/lib/signer/api/system-current.txt
index e69de29..d802177 100644
--- a/media/lib/signer/api/system-current.txt
+++ b/media/lib/signer/api/system-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/signer/api/system-removed.txt b/media/lib/signer/api/system-removed.txt
index e69de29..d802177 100644
--- a/media/lib/signer/api/system-removed.txt
+++ b/media/lib/signer/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/signer/api/test-current.txt b/media/lib/signer/api/test-current.txt
index e69de29..d802177 100644
--- a/media/lib/signer/api/test-current.txt
+++ b/media/lib/signer/api/test-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/signer/api/test-removed.txt b/media/lib/signer/api/test-removed.txt
index e69de29..d802177 100644
--- a/media/lib/signer/api/test-removed.txt
+++ b/media/lib/signer/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/tvremote/api/current.txt b/media/lib/tvremote/api/current.txt
index eea9e9c..1086d58 100644
--- a/media/lib/tvremote/api/current.txt
+++ b/media/lib/tvremote/api/current.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package com.android.media.tv.remoteprovider {
 
   public abstract class TvRemoteProvider {
@@ -7,14 +8,14 @@
     method public android.os.IBinder getBinder();
     method public final android.content.Context getContext();
     method public void onInputBridgeConnected(android.os.IBinder);
-    method public void openRemoteInputBridge(android.os.IBinder, java.lang.String, int, int, int) throws java.lang.RuntimeException;
+    method public void openRemoteInputBridge(android.os.IBinder, String, int, int, int) throws java.lang.RuntimeException;
     method public void sendKeyDown(android.os.IBinder, int) throws java.lang.RuntimeException;
     method public void sendKeyUp(android.os.IBinder, int) throws java.lang.RuntimeException;
     method public void sendPointerDown(android.os.IBinder, int, int, int) throws java.lang.RuntimeException;
     method public void sendPointerSync(android.os.IBinder) throws java.lang.RuntimeException;
     method public void sendPointerUp(android.os.IBinder, int) throws java.lang.RuntimeException;
     method public void sendTimestamp(android.os.IBinder, long) throws java.lang.RuntimeException;
-    field public static final java.lang.String SERVICE_INTERFACE = "com.android.media.tv.remoteprovider.TvRemoteProvider";
+    field public static final String SERVICE_INTERFACE = "com.android.media.tv.remoteprovider.TvRemoteProvider";
   }
 
 }
diff --git a/media/lib/tvremote/api/removed.txt b/media/lib/tvremote/api/removed.txt
index e69de29..d802177 100644
--- a/media/lib/tvremote/api/removed.txt
+++ b/media/lib/tvremote/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/tvremote/api/system-current.txt b/media/lib/tvremote/api/system-current.txt
index e69de29..d802177 100644
--- a/media/lib/tvremote/api/system-current.txt
+++ b/media/lib/tvremote/api/system-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/tvremote/api/system-removed.txt b/media/lib/tvremote/api/system-removed.txt
index e69de29..d802177 100644
--- a/media/lib/tvremote/api/system-removed.txt
+++ b/media/lib/tvremote/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/tvremote/api/test-current.txt b/media/lib/tvremote/api/test-current.txt
index e69de29..d802177 100644
--- a/media/lib/tvremote/api/test-current.txt
+++ b/media/lib/tvremote/api/test-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/lib/tvremote/api/test-removed.txt b/media/lib/tvremote/api/test-removed.txt
index e69de29..d802177 100644
--- a/media/lib/tvremote/api/test-removed.txt
+++ b/media/lib/tvremote/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/media/tests/players/Android.mk b/media/tests/players/Android.mk
index 35aba4d..ee9d850 100644
--- a/media/tests/players/Android.mk
+++ b/media/tests/players/Android.mk
@@ -25,7 +25,7 @@
     liblog
 
 LOCAL_MODULE:= invoke_mock_media_player
-LOCAL_MODULE_TAGS := tests eng
+LOCAL_MODULE_TAGS := tests
 
 LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
 
diff --git a/nfc-extras/api/current.txt b/nfc-extras/api/current.txt
index 066b7b5..47ccddf 100644
--- a/nfc-extras/api/current.txt
+++ b/nfc-extras/api/current.txt
@@ -1,44 +1,45 @@
+// Signature format: 2.0
 package com.android.nfc_extras {
 
   public class EeAlreadyOpenException extends com.android.nfc_extras.EeIOException {
     ctor public EeAlreadyOpenException();
-    ctor public EeAlreadyOpenException(java.lang.String);
+    ctor public EeAlreadyOpenException(String);
   }
 
   public class EeExternalFieldException extends com.android.nfc_extras.EeIOException {
     ctor public EeExternalFieldException();
-    ctor public EeExternalFieldException(java.lang.String);
+    ctor public EeExternalFieldException(String);
   }
 
   public class EeIOException extends java.io.IOException {
     ctor public EeIOException();
-    ctor public EeIOException(java.lang.String);
+    ctor public EeIOException(String);
   }
 
   public class EeInitializationException extends com.android.nfc_extras.EeIOException {
     ctor public EeInitializationException();
-    ctor public EeInitializationException(java.lang.String);
+    ctor public EeInitializationException(String);
   }
 
   public class EeListenModeException extends com.android.nfc_extras.EeIOException {
     ctor public EeListenModeException();
-    ctor public EeListenModeException(java.lang.String);
+    ctor public EeListenModeException(String);
   }
 
   public class EeNfcDisabledException extends com.android.nfc_extras.EeIOException {
     ctor public EeNfcDisabledException();
-    ctor public EeNfcDisabledException(java.lang.String);
+    ctor public EeNfcDisabledException(String);
   }
 
   public final class NfcAdapterExtras {
     method public void authenticate(byte[]);
     method public static com.android.nfc_extras.NfcAdapterExtras get(android.nfc.NfcAdapter);
     method public com.android.nfc_extras.NfcAdapterExtras.CardEmulationRoute getCardEmulationRoute();
-    method public java.lang.String getDriverName();
+    method public String getDriverName();
     method public com.android.nfc_extras.NfcExecutionEnvironment getEmbeddedExecutionEnvironment();
     method public void setCardEmulationRoute(com.android.nfc_extras.NfcAdapterExtras.CardEmulationRoute);
-    field public static final java.lang.String ACTION_RF_FIELD_OFF_DETECTED = "com.android.nfc_extras.action.RF_FIELD_OFF_DETECTED";
-    field public static final java.lang.String ACTION_RF_FIELD_ON_DETECTED = "com.android.nfc_extras.action.RF_FIELD_ON_DETECTED";
+    field public static final String ACTION_RF_FIELD_OFF_DETECTED = "com.android.nfc_extras.action.RF_FIELD_OFF_DETECTED";
+    field public static final String ACTION_RF_FIELD_ON_DETECTED = "com.android.nfc_extras.action.RF_FIELD_ON_DETECTED";
   }
 
   public static final class NfcAdapterExtras.CardEmulationRoute {
@@ -53,7 +54,7 @@
     method public void close() throws java.io.IOException;
     method public void open() throws com.android.nfc_extras.EeIOException;
     method public byte[] transceive(byte[]) throws java.io.IOException;
-    field public static final java.lang.String ACTION_AID_SELECTED = "com.android.nfc_extras.action.AID_SELECTED";
+    field public static final String ACTION_AID_SELECTED = "com.android.nfc_extras.action.AID_SELECTED";
   }
 
 }
diff --git a/nfc-extras/api/removed.txt b/nfc-extras/api/removed.txt
index e69de29..d802177 100644
--- a/nfc-extras/api/removed.txt
+++ b/nfc-extras/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/nfc-extras/api/system-current.txt b/nfc-extras/api/system-current.txt
index e69de29..d802177 100644
--- a/nfc-extras/api/system-current.txt
+++ b/nfc-extras/api/system-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/nfc-extras/api/system-removed.txt b/nfc-extras/api/system-removed.txt
index e69de29..d802177 100644
--- a/nfc-extras/api/system-removed.txt
+++ b/nfc-extras/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/nfc-extras/api/test-current.txt b/nfc-extras/api/test-current.txt
index e69de29..d802177 100644
--- a/nfc-extras/api/test-current.txt
+++ b/nfc-extras/api/test-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/nfc-extras/api/test-removed.txt b/nfc-extras/api/test-removed.txt
index e69de29..d802177 100644
--- a/nfc-extras/api/test-removed.txt
+++ b/nfc-extras/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/obex/api/current.txt b/obex/api/current.txt
index 1cd562f..f142bc8 100644
--- a/obex/api/current.txt
+++ b/obex/api/current.txt
@@ -1,3 +1,4 @@
+// Signature format: 2.0
 package javax.obex {
 
   public class ObexPacket {
diff --git a/obex/api/removed.txt b/obex/api/removed.txt
index e69de29..d802177 100644
--- a/obex/api/removed.txt
+++ b/obex/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/obex/api/system-current.txt b/obex/api/system-current.txt
index e69de29..d802177 100644
--- a/obex/api/system-current.txt
+++ b/obex/api/system-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/obex/api/system-removed.txt b/obex/api/system-removed.txt
index e69de29..d802177 100644
--- a/obex/api/system-removed.txt
+++ b/obex/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/obex/api/test-current.txt b/obex/api/test-current.txt
index e69de29..d802177 100644
--- a/obex/api/test-current.txt
+++ b/obex/api/test-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/obex/api/test-removed.txt b/obex/api/test-removed.txt
index e69de29..d802177 100644
--- a/obex/api/test-removed.txt
+++ b/obex/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/packages/SettingsLib/EntityHeaderWidgets/res/layout/app_view.xml b/packages/SettingsLib/EntityHeaderWidgets/res/layout/app_view.xml
index fcafa31..9604512 100644
--- a/packages/SettingsLib/EntityHeaderWidgets/res/layout/app_view.xml
+++ b/packages/SettingsLib/EntityHeaderWidgets/res/layout/app_view.xml
@@ -22,6 +22,8 @@
     android:layout_weight="1"
     android:layout_marginEnd="16dp"
     android:gravity="center"
+    android:clickable="true"
+    android:background="?android:attr/selectableItemBackground"
     android:orientation="vertical">
 
     <ImageView
diff --git a/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntitiesHeaderController.java b/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntitiesHeaderController.java
index 8ccf89f..73cb8db 100644
--- a/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntitiesHeaderController.java
+++ b/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntitiesHeaderController.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
@@ -32,23 +31,9 @@
 import androidx.annotation.VisibleForTesting;
 
 /**
- * This is used to initialize view which was inflated
+ * This class is used to initialize view which was inflated
  * from {@link R.xml.app_entities_header.xml}.
  *
- * <p>The view looks like below.
- *
- * <pre>
- * --------------------------------------------------------------
- * |                     Header title                           |
- * --------------------------------------------------------------
- * |    App1 icon       |   App2 icon        |   App3 icon      |
- * |    App1 title      |   App2 title       |   App3 title     |
- * |    App1 summary    |   App2 summary     |   App3 summary   |
- * |-------------------------------------------------------------
- * |                     Header details                         |
- * --------------------------------------------------------------
- * </pre>
- *
  * <p>How to use AppEntitiesHeaderController?
  *
  * <p>1. Add a {@link LayoutPreference} in layout XML file.
@@ -66,13 +51,20 @@
  * View headerView = ((LayoutPreference) screen.findPreference("app_entities_header"))
  *         .findViewById(R.id.app_entities_header);
  *
+ * final AppEntityInfo appEntityInfo = new AppEntityInfo.Builder()
+ *         .setIcon(icon)
+ *         .setTitle(title)
+ *         .setSummary(summary)
+ *         .setOnClickListener(view -> doSomething())
+ *         .build();
+ *
  * AppEntitiesHeaderController.newInstance(context, headerView)
  *         .setHeaderTitleRes(R.string.xxxxx)
  *         .setHeaderDetailsRes(R.string.xxxxx)
  *         .setHeaderDetailsClickListener(onClickListener)
- *         .setAppEntity(0, icon, "app title", "app summary")
- *         .setAppEntity(1, icon, "app title", "app summary")
- *         .setAppEntity(2, icon, "app title", "app summary")
+ *         .setAppEntity(0, appEntityInfo)
+ *         .setAppEntity(1, appEntityInfo)
+ *         .setAppEntity(2, appEntityInfo)
  *         .apply();
  * </pre>
  */
@@ -81,13 +73,13 @@
     private static final String TAG = "AppEntitiesHeaderCtl";
 
     @VisibleForTesting
-    static final int MAXIMUM_APPS = 3;
+    public static final int MAXIMUM_APPS = 3;
 
     private final Context mContext;
     private final TextView mHeaderTitleView;
     private final Button mHeaderDetailsView;
 
-    private final AppEntity[] mAppEntities;
+    private final AppEntityInfo[] mAppEntityInfos;
     private final View[] mAppEntityViews;
     private final ImageView[] mAppIconViews;
     private final TextView[] mAppTitleViews;
@@ -100,7 +92,7 @@
     /**
      * Creates a new instance of the controller.
      *
-     * @param context the Context the view is running in
+     * @param context               the Context the view is running in
      * @param appEntitiesHeaderView view was inflated from <code>app_entities_header</code>
      */
     public static AppEntitiesHeaderController newInstance(@NonNull Context context,
@@ -113,7 +105,7 @@
         mHeaderTitleView = appEntitiesHeaderView.findViewById(R.id.header_title);
         mHeaderDetailsView = appEntitiesHeaderView.findViewById(R.id.header_details);
 
-        mAppEntities = new AppEntity[MAXIMUM_APPS];
+        mAppEntityInfos = new AppEntityInfo[MAXIMUM_APPS];
         mAppIconViews = new ImageView[MAXIMUM_APPS];
         mAppTitleViews = new TextView[MAXIMUM_APPS];
         mAppSummaryViews = new TextView[MAXIMUM_APPS];
@@ -162,16 +154,13 @@
     /**
      * Set an app entity at a specified position view.
      *
-     * @param index the index at which the specified view is to be inserted
-     * @param icon the icon of app entity
-     * @param titleRes the title of app entity
-     * @param summaryRes the summary of app entity
+     * @param index         the index at which the specified view is to be inserted
+     * @param appEntityInfo the information of an app entity
      * @return this {@code AppEntitiesHeaderController} object
      */
-    public AppEntitiesHeaderController setAppEntity(int index, @NonNull Drawable icon,
-            @Nullable CharSequence titleRes, @Nullable CharSequence summaryRes) {
-        final AppEntity appEntity = new AppEntity(icon, titleRes, summaryRes);
-        mAppEntities[index] = appEntity;
+    public AppEntitiesHeaderController setAppEntity(int index,
+            @NonNull AppEntityInfo appEntityInfo) {
+        mAppEntityInfos[index] = appEntityInfo;
         return this;
     }
 
@@ -182,7 +171,7 @@
      * @return this {@code AppEntitiesHeaderController} object
      */
     public AppEntitiesHeaderController removeAppEntity(int index) {
-        mAppEntities[index] = null;
+        mAppEntityInfos[index] = null;
         return this;
     }
 
@@ -237,31 +226,23 @@
     }
 
     private void bindAppEntityView(int index) {
-        final AppEntity appEntity = mAppEntities[index];
-        mAppEntityViews[index].setVisibility(appEntity != null ? View.VISIBLE : View.GONE);
+        final AppEntityInfo appEntityInfo = mAppEntityInfos[index];
+        mAppEntityViews[index].setVisibility(appEntityInfo != null ? View.VISIBLE : View.GONE);
 
-        if (appEntity != null) {
-            mAppIconViews[index].setImageDrawable(appEntity.icon);
+        if (appEntityInfo != null) {
+            mAppEntityViews[index].setOnClickListener(appEntityInfo.getClickListener());
 
+            mAppIconViews[index].setImageDrawable(appEntityInfo.getIcon());
+
+            final CharSequence title = appEntityInfo.getTitle();
             mAppTitleViews[index].setVisibility(
-                    TextUtils.isEmpty(appEntity.title) ? View.INVISIBLE : View.VISIBLE);
-            mAppTitleViews[index].setText(appEntity.title);
+                    TextUtils.isEmpty(title) ? View.INVISIBLE : View.VISIBLE);
+            mAppTitleViews[index].setText(title);
 
+            final CharSequence summary = appEntityInfo.getSummary();
             mAppSummaryViews[index].setVisibility(
-                    TextUtils.isEmpty(appEntity.summary) ? View.INVISIBLE : View.VISIBLE);
-            mAppSummaryViews[index].setText(appEntity.summary);
-        }
-    }
-
-    private static class AppEntity {
-        public final Drawable icon;
-        public final CharSequence title;
-        public final CharSequence summary;
-
-        AppEntity(Drawable appIcon, CharSequence appTitle, CharSequence appSummary) {
-            icon = appIcon;
-            title = appTitle;
-            summary = appSummary;
+                    TextUtils.isEmpty(summary) ? View.INVISIBLE : View.VISIBLE);
+            mAppSummaryViews[index].setText(summary);
         }
     }
 }
diff --git a/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntityInfo.java b/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntityInfo.java
new file mode 100644
index 0000000..1e55f2e
--- /dev/null
+++ b/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntityInfo.java
@@ -0,0 +1,129 @@
+/*
+ * 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 com.android.settingslib.widget;
+
+import android.graphics.drawable.Drawable;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+/**
+ * AppEntityInfo is responsible for storing app information shown in {@link R.xml.app_view.xml}.
+ */
+public class AppEntityInfo {
+
+    private final Drawable mIcon;
+    private final CharSequence mTitle;
+    private final CharSequence mSummary;
+    private final View.OnClickListener mClickListener;
+
+    /**
+     * Gets the drawable for the icon of app entity.
+     *
+     * @return the drawable for the icon of app entity.
+     */
+    public Drawable getIcon() {
+        return mIcon;
+    }
+
+    /**
+     * Gets the text for the title of app enitity.
+     *
+     * @return the text for the title of app enitity.
+     */
+    public CharSequence getTitle() {
+        return mTitle;
+    }
+
+    /**
+     * Gets the text for the summary of app enitity.
+     *
+     * @return the text for the summary of app enitity.
+     */
+    public CharSequence getSummary() {
+        return mSummary;
+    }
+
+    /**
+     * Gets the click listener for the app entity view.
+     *
+     * @return click listener for the app entity view.
+     */
+    public View.OnClickListener getClickListener() {
+        return mClickListener;
+    }
+
+    private AppEntityInfo(Builder builder) {
+        mIcon = builder.mIcon;
+        mTitle = builder.mTitle;
+        mSummary = builder.mSummary;
+        mClickListener = builder.mClickListener;
+    }
+
+    /**
+     * Builder class for {@link AppEntityInfo}
+     */
+    public static class Builder {
+
+        private Drawable mIcon;
+        private CharSequence mTitle;
+        private CharSequence mSummary;
+        private View.OnClickListener mClickListener;
+
+        /**
+         * Creates an instance of a {@link AppEntityInfo} based on the current builder settings.
+         *
+         * @return The {@link AppEntityInfo}.
+         */
+        public AppEntityInfo build() {
+            return new AppEntityInfo(this);
+        }
+
+        /**
+         * Sets the drawable for the icon.
+         */
+        public Builder setIcon(@NonNull Drawable icon) {
+            mIcon = icon;
+            return this;
+        }
+
+        /**
+         * Sets the text for the title.
+         */
+        public Builder setTitle(@Nullable CharSequence title) {
+            mTitle = title;
+            return this;
+        }
+
+        /**
+         * Sets the text for the summary.
+         */
+        public Builder setSummary(@Nullable CharSequence summary) {
+            mSummary = summary;
+            return this;
+        }
+
+        /**
+         * Sets the click listener for app entity view.
+         */
+        public Builder setOnClickListener(@Nullable View.OnClickListener clickListener) {
+            mClickListener = clickListener;
+            return this;
+        }
+    }
+}
diff --git a/packages/SettingsLib/SearchWidget/res/values-fa/strings.xml b/packages/SettingsLib/SearchWidget/res/values-fa/strings.xml
index 3787005..237d62e 100644
--- a/packages/SettingsLib/SearchWidget/res/values-fa/strings.xml
+++ b/packages/SettingsLib/SearchWidget/res/values-fa/strings.xml
@@ -17,5 +17,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="search_menu" msgid="1604061903696928905">"تنظیمات جستجو"</string>
+    <string name="search_menu" msgid="1604061903696928905">"جستجوی تنظیمات"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index ac34a99e..080fcc2 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Outomaties deur %1$s gekoppel"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Outomaties deur netwerkgraderingverskaffer gekoppel"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Gekoppel via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Beskikbaar via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Gekoppel, geen internet nie"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Geen internet nie"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Aanmelding word vereis"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Toegangspunt is tydelik vol"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Gekoppel via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Beskikbaar via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Baie stadig"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Stadig"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index 9405b7d..53d1c4d 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"በ%1$s በኩል በራስ-ሰር ተገናኝቷል"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"በአውታረ መረብ ደረጃ ሰጪ አቅራቢ በኩል በራስ-ሰር ተገናኝቷል"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"በ%1$s በኩል መገናኘት"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"በ%1$s በኩል የሚገኝ"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"ተገናኝቷል፣ ምንም በይነመረብ የለም"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ምንም በይነመረብ የለም"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"ወደ መለያ መግባት ያስፈልጋል"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"የመዳረሻ ነጥብ ለጊዜው ሞልቷል"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"በ%1$s በኩል ተገናኝቷል"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"በ%1$s በኩል የሚገኝ"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"በጣም ቀርፋፋ"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"አዘግይ"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"እሺ"</string>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 8ffd7a9..81755a7 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"‏تم الاتصال تلقائيًا عبر %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"تم الاتصال تلقائيًا عبر مقدم خدمة تقييم الشبكة"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"‏تم الاتصال عبر %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"‏متوفرة عبر %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"متصلة ولكن بلا إنترنت"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"لا يتوفر اتصال إنترنت."</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"يلزم تسجيل الدخول"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"نقطة الدخول ممتلئة مؤقتًا"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"‏تم الاتصال عبر %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"‏متوفرة عبر %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"بطيئة جدًا"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"بطيئة"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"موافق"</string>
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index 3ad13bd..6cb0c3e 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s মাধ্যমেদি স্বয়ংক্ৰিয়ভাৱে সংযোগ কৰা হৈছে"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"নেটৱৰ্ক ৰেটিং প্ৰদানকাৰীৰ জৰিয়তে স্বয়ং সংয়োগ কৰা হ’ল"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s-ৰ মাধ্যমেদি সংযোগ কৰা হৈছে"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$sৰ মাধ্যমেৰে উপলব্ধ"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"সংযোজিত, ইণ্টাৰনেট নাই"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ইণ্টাৰনেট সংযোগ নাই"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"ছাইন ইন কৰা দৰকাৰী"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"একচেছ পইণ্ট কিছু সময়ৰ বাবে পূৰ্ণ হৈ আছে"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$sৰ যোগেৰে সংযোজিত"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$sৰ মাধ্যমেৰে উপলব্ধ"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"অতি লেহেম"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"লেহেমীয়া"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ঠিক"</string>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index daa9c8f..d30834f2 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s üzərindən avtomatik qoşuldu"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Avtomatik olaraq şəbəkə reytinq provayderi ilə qoşuludur"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s vasitəsilə qoşuludur"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s vasitəsilə əlçatandır"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Qoşuludur, internet yoxdur"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"İnternet yoxdur"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Giriş tələb olunur"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Giriş nöqtəsi müvəqqəti olaraq doludur"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s ilə qoşuludur"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s vasitəsilə əlçatandır"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Çox Yavaş"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Yavaş"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index 44f14df..427daab 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatski povezano preko %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatski povezano preko dobavljača ocene mreže"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Veza je uspostavljena preko pristupne tačke %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Dostupna je preko pristupne tačke %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Veza je uspostavljena, nema interneta"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Nema interneta"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Treba da se prijavite"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Pristupna tačka je privremeno zauzeta"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Povezano preko %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Dostupno preko %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Veoma spora"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Spora"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Potvrdi"</string>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index 2dcdd37..a156caf 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Аўтаматычна падключана праз %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Аўтаматычна падключана праз пастаўшчыка паслугі ацэнкі сеткі"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Падлучана праз %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Даступна праз %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Падключана, без доступу да інтэрнэту"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Не падключана да інтэрнэту"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Трэба выканаць уваход"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Пункт доступу часова заняты"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Падлучана праз %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Даступна праз %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Вельмі павольная"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Павольная"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ОК"</string>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index 1e2f0f4..8333646 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Автоматично е установена връзка чрез %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Автоматично е установена връзка чрез доставчик на услуги за оценяване на мрежите"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Установена е връзка през „%1$s“"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Мрежата е достъпна през „%1$s“"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Установена е връзка – няма достъп до интернет"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Няма връзка с интернет"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Изисква се вход в профила"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Точката за достъп временно е пълна"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Установена е връзка през %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Мрежата е достъпна през %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Много бавна"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Бавна"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ОK"</string>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index 4ec893b..c7b3afea 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"স্বয়ংক্রিয়ভাবে %1$s এর মাধ্যমে কানেক্ট হয়েছে"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"নেটওয়ার্কের রেটিং প্রদানকারীর মাধ্যমে অটোমেটিক কানেক্ট"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s মাধ্যমে কানেক্ট হয়েছে"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s এর মাধ্যমে উপলব্ধ"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"কানেক্ট, ইন্টারনেট নেই"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ইন্টারনেট কানেকশন নেই"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"সাইন-ইন করা দরকার"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"এই মুহূর্তে অ্যাক্সেস পয়েন্টের কোনও কানেকশন ফাঁকা নেই"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s এর মাধ্যমে কানেক্ট হয়েছে"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s এর মাধ্যমে পাওয়া যাচ্ছে"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"খুব ধীরে"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"ধীরে"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ঠিক আছে"</string>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index a0a0e2a..715a8a5 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -27,7 +27,7 @@
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Greška u konfiguraciji IP-a"</string>
     <string name="wifi_disabled_by_recommendation_provider" msgid="5168315140978066096">"Niste povezani zbog slabog kvaliteta mreže"</string>
     <string name="wifi_disabled_wifi_failure" msgid="3081668066612876581">"Greška pri povezivanju na WiFi"</string>
-    <string name="wifi_disabled_password_failure" msgid="8659805351763133575">"Problem pri provjeri vjerodostojnosti."</string>
+    <string name="wifi_disabled_password_failure" msgid="8659805351763133575">"Problem pri autentifikaciji."</string>
     <string name="wifi_cant_connect" msgid="5410016875644565884">"Nije se moguće povezati"</string>
     <string name="wifi_cant_connect_to_ap" msgid="1222553274052685331">"Nije se moguće povezati na aplikaciju \'<xliff:g id="AP_NAME">%1$s</xliff:g>\'"</string>
     <string name="wifi_check_password_try_again" msgid="516958988102584767">"Provjerite lozinku i pokušajte ponovo"</string>
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatski povezano koristeći %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatski povezano putem ocjenjivača mreže"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Povezani preko %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Dostupan preko %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Povezano, nema interneta"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Nema internetske veze"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Potrebna je prijava"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Pristupna tačka je privremeno puna"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Povezano koristeći %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Dostupna koristeći %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Veoma sporo"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Sporo"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"UREDU"</string>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index 0bd6a1b..56f55dd 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Connectada automàticament a través de: %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Connectada automàticament a través d\'un proveïdor de valoració de xarxes"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Connectada mitjançant %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Disponible mitjançant %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Connectada, sense Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Sense connexió a Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Cal iniciar la sessió"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"El punt d\'accés està temporalment ple"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Connectat mitjançant %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Disponible mitjançant %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Molt lenta"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lenta"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Correcta"</string>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index 69c22ec..edbb358 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automaticky připojeno přes poskytovatele %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automaticky připojeno přes poskytovatele hodnocení sítí"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Připojeno prostřednictvím %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Dostupné prostřednictvím %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Připojeno, není k dispozici internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Nejste připojeni k internetu"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Je vyžadováno přihlášení"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Přístupový bod je dočasně zaplněn"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Připojeno prostřednictvím %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Dostupné prostřednictvím %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Velmi pomalá"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Pomalá"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index 077258a..1d34579 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatisk tilsluttet via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatisk forbundet via udbyder af netværksvurdering"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Tilsluttet via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Tilgængelig via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Tilsluttet – intet internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Intet internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Login er påkrævet"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Adgangspunktet er midlertidigt fuldt"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Tilsluttet via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Tilgængelig via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Meget langsom"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Langsom"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index c4e03ad..1abc359 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatisch über %1$s verbunden"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatisch über Anbieter von Netzwerkbewertungen verbunden"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Über %1$s verbunden"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Verfügbar über %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Verbunden, kein Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Kein Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Anmeldung erforderlich"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Zugangspunkt vorübergehend voll belegt"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Über %1$s verbunden"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Verfügbar über %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Sehr langsam"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Langsam"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 642e862..eb57558 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Συνδέθηκε αυτόματα μέσω %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Συνδέθηκε αυτόματα μέσω παρόχου αξιολόγησης δικτύου"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Συνδέθηκε μέσω %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Διαθέσιμο μέσω %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Συνδέθηκε, χωρίς σύνδεση στο διαδίκτυο"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Δεν υπάρχει σύνδεση στο διαδίκτυο"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Απαιτείται σύνδεση"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Το σημείο πρόσβασης είναι προσωρινά πλήρες"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Συνδέθηκε μέσω %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Διαθέσιμο μέσω %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Πολύ αργή"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Αργή"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ΟΚ"</string>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index 0cdfaf2..1f74d9b1 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatically connected via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatically connected via network rating provider"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Connected via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Available via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Connected, no Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"No Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Sign-in required"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Access point temporarily full"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Connected via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Available via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Very slow"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Slow"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml
index 0cdfaf2..1f74d9b1 100644
--- a/packages/SettingsLib/res/values-en-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-en-rCA/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatically connected via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatically connected via network rating provider"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Connected via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Available via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Connected, no Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"No Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Sign-in required"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Access point temporarily full"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Connected via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Available via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Very slow"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Slow"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index 0cdfaf2..1f74d9b1 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatically connected via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatically connected via network rating provider"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Connected via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Available via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Connected, no Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"No Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Sign-in required"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Access point temporarily full"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Connected via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Available via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Very slow"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Slow"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index 0cdfaf2..1f74d9b1 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatically connected via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatically connected via network rating provider"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Connected via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Available via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Connected, no Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"No Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Sign-in required"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Access point temporarily full"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Connected via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Available via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Very slow"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Slow"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-en-rXC/strings.xml b/packages/SettingsLib/res/values-en-rXC/strings.xml
index eda4d1b..082a331 100644
--- a/packages/SettingsLib/res/values-en-rXC/strings.xml
+++ b/packages/SettingsLib/res/values-en-rXC/strings.xml
@@ -38,13 +38,50 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‎‎‏‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‏‏‎‏‎‎‏‏‎‏‏‎‏‎Automatically connected via %1$s‎‏‎‎‏‎"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‎‎Automatically connected via network rating provider‎‏‎‎‏‎"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‏‎‎‏‎‎‏‎‏‎‏‎‎‎‏‏‏‎‎‏‎‏‏‎‏‏‎‏‎‏‏‎Connected via %1$s‎‏‎‎‏‎"</string>
+    <string name="ssid_by_passpoint_provider" msgid="7898171424140673315">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‎‎‏‎‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‏‏‎<xliff:g id="SSID">%1$s</xliff:g>‎‏‎‎‏‏‏‎ by ‎‏‎‎‏‏‎<xliff:g id="PASSPOINTPROVIDER">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="available_via_passpoint" msgid="1617440946846329613">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‏‏‎‏‎Available via %1$s‎‏‎‎‏‎"</string>
+    <string name="tap_to_set_up" msgid="2468970825530423314">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‎‏‏‏‎‎‎‏‎‏‏‏‏‏‎‎‎‏‎‎‏‏‏‏‎‎‎‏‎‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎Tap to set up‎‏‎‎‏‎"</string>
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‎‏‎‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎Connected, no internet‎‏‎‎‏‎"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‎‎‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎No internet‎‏‎‎‏‎"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‏‏‎‏‎‎‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‏‎‏‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‏‎‏‏‏‎‏‎‎‎Sign in required‎‏‎‎‏‎"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‏‏‏‎‏‎Access point temporarily full‎‏‎‎‏‎"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎Connected via %1$s‎‏‎‎‏‎"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‏‏‎‎‎‏‏‎‎‎‏‎‎‎‎‏‎‎‏‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎Available via %1$s‎‏‎‎‏‎"</string>
+    <string name="osu_failure_ap_connection" msgid="598977488344424542">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎Connection failed‎‏‎‎‏‎"</string>
+    <string name="osu_failure_server_url_invalid" msgid="2237477219243136714">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‎‎‏‏‏‎‏‏‎‏‎‏‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‏‎‏‏‎‏‏‎‎‏‎‏‎‎Invalid OSU server URL‎‏‎‎‏‎"</string>
+    <string name="osu_failure_server_connection" msgid="8192988165059982174">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‎‏‎‎‏‏‎‎‏‏‎‏‎‏‏‏‏‎‎OSU server connection failed‎‏‎‎‏‎"</string>
+    <string name="osu_failure_server_validation" msgid="4631649978129606823">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‎‎‏‎‏‎‎‏‏‏‎OSU server validation failed‎‏‎‎‏‎"</string>
+    <string name="osu_failure_service_provider_verification" msgid="4854091521439785597">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‎‎‎‏‎‏‎‏‎‎‏‎‏‎‏‎‏‎‎‏‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‏‎‏‎Invalid OSU server certificate‎‏‎‎‏‎"</string>
+    <string name="osu_failure_provisioning_aborted" msgid="424627208135320329">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‏‎‏‎‎‎‎‏‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‎‎‎‏‎‎‏‎Provisioning aborted‎‏‎‎‏‎"</string>
+    <string name="osu_failure_provisioning_not_available" msgid="3021783729256985432">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‏‎‎‎‎Provisioning not available‎‏‎‎‏‎"</string>
+    <string name="osu_failure_invalid_server_url" msgid="8548886196179435758">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‏‎‎‏‎‎‎‎‏‎‎‎‎‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎Invalid OSU server URL‎‏‎‎‏‎"</string>
+    <string name="osu_failure_unexpected_command_type" msgid="8245921319866603904">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‎‎‎‎‎‎‎‎Unexpected command type‎‏‎‎‏‎"</string>
+    <string name="osu_failure_unexpected_soap_message_type" msgid="2255897608510053065">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‏‎‎‏‎‎‏‎Unexpected SOAP message type‎‏‎‎‏‎"</string>
+    <string name="osu_failure_soap_message_exchange" msgid="4357358438685987192">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‎‎SOAP message exchange failed‎‏‎‎‏‎"</string>
+    <string name="osu_failure_start_redirect_listener" msgid="4292769407279548482">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‎‎‏‎‎‏‏‏‏‎‎‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‎‏‎‎Redirect listener failed to start‎‏‎‎‏‎"</string>
+    <string name="osu_failure_timed_out_redirect_listener" msgid="3168657820278807508">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎‎‎Timed out waiting for redirect‎‏‎‎‏‎"</string>
+    <string name="osu_failure_no_osu_activity_found" msgid="4593038891437878675">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‎‏‏‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎No OSU activity found‎‏‎‎‏‎"</string>
+    <string name="osu_failure_unexpected_soap_message_status" msgid="6568467710235256675">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‎‏‎‏‏‎‎‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‏‏‎Unexpected SOAP message status‎‏‎‎‏‎"</string>
+    <string name="osu_failure_no_pps_mo" msgid="850567403039076835">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‏‎‏‎‎‏‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‏‎Failed to find PPS-MO‎‏‎‎‏‎"</string>
+    <string name="osu_failure_no_aaa_server_trust_root_node" msgid="8961455873459838456">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‏‎‎‎‏‎‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‎Failed to find trust root node for AAA server‎‏‎‎‏‎"</string>
+    <string name="osu_failure_no_remediation_server_trust_root_node" msgid="5041179688081545244">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‎Failed to find trust root node for remediation server‎‏‎‎‏‎"</string>
+    <string name="osu_failure_no_policy_server_trust_root_node" msgid="6617290380940513539">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‏‎‏‎‎‎‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‏‎‎‎‎‎‎‏‏‎Failed to find trust root node for policy server‎‏‎‎‏‎"</string>
+    <string name="osu_failure_retrieve_trust_root_certificates" msgid="1499136256195528265">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‎‏‎Failed to retrieve trust root certificates‎‏‎‎‏‎"</string>
+    <string name="osu_failure_no_aaa_trust_root_certificate" msgid="1904322497042226984">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‎‏‏‎‎‎‎‎‏‏‎‎‏‏‏‎‎‎‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎Failed to find trust root certificate for AAA server‎‏‎‎‏‎"</string>
+    <string name="osu_failure_add_passpoint_configuration" msgid="2173557755811446047">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‎‎‎‎‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎Failed to add PassPoint configuration‎‏‎‎‏‎"</string>
+    <string name="osu_failure_osu_provider_not_found" msgid="6616172862116673082">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‎‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎‏‏‎‎‎‏‏‏‎‏‎‎Failed to find an OSU provider‎‏‎‎‏‎"</string>
+    <string name="osu_status_ap_connecting" msgid="5296821043003441437">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‎‎‏‎‎‎‎‏‎‏‏‎‏‎‏‎‏‏‎‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‏‎‎‎‎‎‏‎‎‎‏‏‏‎‏‎Connecting‎‏‎‎‏‎"</string>
+    <string name="osu_status_ap_connected" msgid="3777289375683170728">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎Connected‎‏‎‎‏‎"</string>
+    <string name="osu_status_server_connecting" msgid="8499785407540355867">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‎‎‏‏‎‏‏‎Connecting to OSU server‎‏‎‎‏‎"</string>
+    <string name="osu_status_server_validated" msgid="3158727184762596355">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‎OSU server validated‎‏‎‎‏‎"</string>
+    <string name="osu_status_server_connected" msgid="8382024481520158168">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‎‏‎‏‏‏‎‏‏‎‎‎‎Connected to OSU server‎‏‎‎‏‎"</string>
+    <string name="osu_status_init_soap_exchange" msgid="8628063888912101981">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‎‏‎Initial SOAP exchange‎‏‎‎‏‎"</string>
+    <string name="osu_status_waiting_for_redirect_response" msgid="2343016207837053197">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎Waiting for redirect response‎‏‎‎‏‎"</string>
+    <string name="osu_status_redirect_response_received" msgid="5323368411922609405">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‎‏‎Received redirect response‎‏‎‎‏‎"</string>
+    <string name="osu_status_second_soap_exchange" msgid="7115332266758483909">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‏‎‏‎Second SOAP exchange‎‏‎‎‏‎"</string>
+    <string name="osu_status_third_soap_exchange" msgid="8460901783597440766">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‎‏‏‎‎‏‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎Third SOAP exchange‎‏‎‎‏‎"</string>
+    <string name="osu_status_retrieving_trust_root_certs" msgid="1563445892926269689">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎Retrieving trust root certificates‎‏‎‎‏‎"</string>
+    <string name="osu_provisioning_complete" msgid="5120178802493970149">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‏‏‎‎‏‎‏‎Provisioning complete‎‏‎‎‏‎"</string>
     <string name="speed_label_very_slow" msgid="1867055264243608530">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‎‎‏‏‎‏‏‏‏‎‏‏‏‎‏‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‎‏‎‎Very Slow‎‏‎‎‏‎"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‏‎‎‎‏‎‎‎‏‎‏‎‏‏‏‎‏‏‎Slow‎‏‎‎‏‎"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‏‎‏‏‎‏‏‏‎‏‏‏‏‎‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‏‎‎OK‎‏‎‎‏‎"</string>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index bd3d1b7..795ad9c 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Conexión automática mediante %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Conectado automáticamente mediante proveedor de calificación de red"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Conexión a través de %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Disponible a través de %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Conectado pero sin conexión a Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Sin Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Acceso obligatorio"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"El punto de acceso está completo temporalmente"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Conexión a través de %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Disponible a través de %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Muy lenta"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lenta"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Aceptar"</string>
@@ -144,7 +218,7 @@
     <string name="tts_settings_title" msgid="1237820681016639683">"Salida de texto a voz"</string>
     <string name="tts_default_rate_title" msgid="6030550998379310088">"Velocidad de voz"</string>
     <string name="tts_default_rate_summary" msgid="4061815292287182801">"Velocidad en la que se habla el texto"</string>
-    <string name="tts_default_pitch_title" msgid="6135942113172488671">"Sonido"</string>
+    <string name="tts_default_pitch_title" msgid="6135942113172488671">"Tono"</string>
     <string name="tts_default_pitch_summary" msgid="1944885882882650009">"Afecta el tono de la voz sintetizada"</string>
     <string name="tts_default_lang_title" msgid="8018087612299820556">"Idioma"</string>
     <string name="tts_lang_use_system" msgid="2679252467416513208">"Usar el idioma del sistema"</string>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index 94f88eb..669871f 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Conectada automáticamente a través de %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Conectado automáticamente a través de un proveedor de valoración de redes"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Conectado a través de %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Disponible a través de %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Conexión sin Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Sin Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Debes iniciar sesión"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Punto de acceso temporalmente lleno"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Conectado a través de %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Disponible a través de %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Muy lenta"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lenta"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Aceptable"</string>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index 31527dc..0c9d28e 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Ühendus loodi automaatselt teenusega %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Ühendus loodi automaatselt võrgukvaliteedi hinnangute pakkuja kaudu"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Ühendatud üksuse %1$s kaudu"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Saadaval üksuse %1$s kaudu"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Ühendatud, Interneti-ühendus puudub"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Interneti-ühendus puudub"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Nõutav on sisselogimine"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Pääsupunkt on ajutiselt täis"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Ühendatud operaatori %1$s kaudu"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Saadaval operaatori %1$s kaudu"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Väga aeglane"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Aeglane"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Hea"</string>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index dd77284..2687d1d 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s bidez automatikoki konektatuta"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatikoki konektatuta sareen balorazioen hornitzailearen bidez"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s bidez konektatuta"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s bidez erabilgarri"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Konektatuta; ezin da atzitu Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Ez dago Interneteko konexiorik"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Saioa hasi behar da"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Sarbide-puntua beteta dago aldi baterako"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s bidez konektatuta"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s bidez erabilgarri"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Oso motela"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Motela"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Ados"</string>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 57f8960..ec6200f 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"‏اتصال خودکار ازطریق %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"اتصال خودکار ازطریق ارائه‌دهنده رتبه‌بندی شبکه"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"‏متصل از طریق %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"‏در دسترس از طریق %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"متصل، بدون اینترنت"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"عدم دسترسی به اینترنت"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"ورود به سیستم لازم است"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"ظرفیت نقطه دسترسی موقتاً تکمیل شده است"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"‏متصل ازطریق %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"‏در دسترس ازطریق %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"بسیار آهسته"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"آهسته"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"تأیید"</string>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index 922d8d3..174caef 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automaattinen yhteys muodostettu palvelun %1$s kautta"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Yhdistetty automaattisesti verkon arviointipalvelun kautta"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Yhdistetty seuraavan kautta: %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Käytettävissä seuraavan kautta: %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Yhdistetty, ei internetyhteyttä"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Ei internetyhteyttä"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Sisäänkirjautuminen vaaditaan"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Yhteyspiste tilapäisesti täynnä"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Yhdistetty, verkko: %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Käytettävissä, verkko: %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Hyvin hidas"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Hidas"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index 765a80f..f189d77 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatiquement connecté par %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Connecté automatiquement par le fournisseur d\'avis sur le réseau"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Connecté par %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Accessible par %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Connecté, aucun accès à Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Aucune connexion Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Connexion requise"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Le point d\'accès est temporairement plein"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Connecté par %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Accessible par %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Très lente"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lente"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index 198b922..97cc5aa 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Connecté automatiquement via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Connecté automatiquement via un fournisseur d\'évaluation de l\'état du réseau"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Connecté via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Disponible via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Connecté, aucun accès à Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Aucun accès à Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Connexion requise"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Point d\'accès temporairement plein"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Connecté via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Disponible via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Très lente"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lente"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Correct"</string>
@@ -372,10 +446,10 @@
     <string name="power_remaining_duration_only_enhanced" msgid="4189311599812296592">"Temps restant en fonction de votre utilisation : environ <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
     <string name="power_discharging_duration_enhanced" msgid="1992003260664804080">"Temps restant en fonction de votre utilisation (<xliff:g id="LEVEL">%2$s</xliff:g>) : environ <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
     <string name="power_remaining_duration_only_short" msgid="3463575350656389957">"Temps restant : <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
-    <string name="power_discharge_by_enhanced" msgid="2095821536747992464">"Temps restant estimé en fonction de votre utilisation : <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
-    <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Temps restant estimé en fonction de votre utilisation : <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_discharge_by" msgid="6453537733650125582">"Temps restant estimé : <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
-    <string name="power_discharge_by_only" msgid="107616694963545745">"Temps restant estimé : <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <string name="power_discharge_by_enhanced" msgid="2095821536747992464">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g> en fonction de votre utilisation (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+    <string name="power_discharge_by_only_enhanced" msgid="2175151772952365149">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g> en fonction de votre utilisation"</string>
+    <string name="power_discharge_by" msgid="6453537733650125582">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+    <string name="power_discharge_by_only" msgid="107616694963545745">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="1372817269546888804">"Jusqu\'à <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index de5e7e41..fb63a9d 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Conectouse automaticamente a través de %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Conectada automaticamente a través dun provedor de valoración de rede"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Conectado a través de %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Dispoñible a través de %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Conexión sen Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Non hai conexión a Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"É obrigatorio iniciar sesión"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"O punto de acceso está temporalmente cheo"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Conectado a través de %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Dispoñible a través de %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Moi lenta"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lenta"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Aceptar"</string>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index 993eed1..54fa7d1 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s દ્વારા સ્વત: કનેક્ટ થયેલ"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"નેટવર્ક રેટિંગ પ્રદાતા દ્વારા આપમેળે કનેક્ટ થયું"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s દ્વારા કનેક્ટ થયેલ"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s દ્વારા ઉપલબ્ધ"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"કનેક્ટ કર્યું, કોઈ ઇન્ટરનેટ નથી"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ઇન્ટરનેટ ઍક્સેસ નથી"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"સાઇન ઇન આવશ્યક"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"ઍક્સેસ પૉઇન્ટ અસ્થાયીરૂપે ભરાયેલ છે"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s દ્વારા કનેક્ટ થયેલ"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s દ્વારા ઉપલબ્ધ"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"ખૂબ જ ધીમી"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"ધીમી"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ઓકે"</string>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index faf551e..0aba3f6 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s के ज़रिए ऑटोमैटिक रूप से कनेक्ट है"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"नेटवर्क रेटिंग प्रदाता के ज़रिए अपने आप कनेक्ट है"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s के द्वारा उपलब्ध"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s के द्वारा उपलब्ध"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"कनेक्ट हो गया है, लेकिन इंटरनेट नहीं है"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"इंटरनेट कनेक्शन नहीं है"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"साइन इन करना ज़रूरी है"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"एक्सेस प्वाइंट फ़िलहाल भरा हुआ है"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s के ज़रिए कनेक्ट"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s के ज़रिए उपलब्ध"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"अत्‍यधिक धीमी"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"धीमी"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ठीक है"</string>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index 5f04b65..5a48ffd 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatski povezan putem %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatski povezan putem ocjenjivača mreže"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Povezano putem %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Dostupno putem %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Povezano, bez interneta"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Nema interneta"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Obavezna prijava"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Pristupna je točka privremeno puna"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Povezano putem mreže %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Dostupno putem mreže %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Vrlo sporo"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Sporo"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"U redu"</string>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index 7469c1a..1fa7f6a 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatikusan csatlakozott a következőn keresztül: %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatikusan csatlakozott a hálózatértékelés szolgáltatóján keresztül"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Csatlakozva a következőn keresztül: %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Elérhető a következőn keresztül: %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Csatlakozva, nincs internet-hozzáférés"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Nincs internetkapcsolat"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Bejelentkezést igényel"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"A hozzáférési pont átmenetileg megtelt"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Csatlakozva a következőn keresztül: %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Elérhető a következőn keresztül: %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Nagyon lassú"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lassú"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Rendben"</string>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index b27bb7e..02a24fe 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Ավտոմատ կերպով կապակցվել է %1$s-ի միջոցով"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Ավտոմատ կերպով միացել է ցանցի վարկանիշի ծառայության մատակարարի միջոցով"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Կապակցված է %1$s-ի միջոցով"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Հասանելի է %1$s-ի միջոցով"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Միացված է, սակայն ինտերնետ կապ չկա"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Ինտերնետ կապ չկա"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Անհրաժեշտ է մուտք գործել"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Հասանելիության կետը ժամանակավորապես լիքն է"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Միացված է %1$s-ի միջոցով"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Հասանելի է %1$s-ի միջոցով"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Շատ դանդաղ"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Դանդաղ"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Հաստատել"</string>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index 342a505..6b901ff 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Tersambung otomatis melalui %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Otomatis tersambung melalui penyedia rating jaringan"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Terhubung melalui %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Tersedia melalui %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Tersambung, tidak ada internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Tidak ada internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Perlu login"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Titik akses penuh untuk sementara"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Tersambung melalui %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Tersedia melalui %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Sangat Lambat"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lambat"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Oke"</string>
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index 8f1b9a1..ae31d6b 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Sjálfkrafa tengt um %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Sjálfkrafa tengt um netgæðaveitu"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Tengt í gegnum %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Í boði í gegnum %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Tengt, enginn netaðgangur"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Engin nettenging"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Innskráningar krafist"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Aðgangsstaður tímabundið fullur"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Tengt í gegnum %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Í boði í gegnum %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Mjög hægt"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Hægt"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Í lagi"</string>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index 6600ca2..44acbcb 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Collegato automaticamente tramite %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Collegato automaticamente tramite fornitore di servizi di valutazione rete"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Collegato tramite %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Disponibile tramite %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Connesso, senza Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Nessuna connessione a Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Accesso richiesto"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Punto di accesso momentaneamente al completo"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Connesso tramite %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Disponibile tramite %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Molto lenta"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lenta"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index a8da0b1..5ae1321 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"‏מחובר אוטומטית דרך %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"מחובר אוטומטית דרך ספק של דירוג רשת"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"‏מחובר דרך %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"‏זמינה דרך %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"מחובר. אין אינטרנט"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"אין אינטרנט"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"נדרשת כניסה"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"נקודת הגישה מלאה באופן זמני"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"‏מחובר לרשת של %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"‏זמינה דרך %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"איטית מאוד"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"איטית"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"אישור"</string>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index ea62637..25308cf 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s 経由で自動的に接続しています"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"ネットワーク評価プロバイダ経由で自動的に接続しています"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s経由で接続"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s経由で使用可能"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"接続済み、インターネット接続なし"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"インターネット未接続"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"ログインが必要"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"アクセス ポイントが一時的にいっぱいです"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s 経由で接続済み"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s 経由で使用可能"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"とても遅い"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"遅い"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index bd88435..b38dcc6 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"ავტომატურად დაკავშირდა %1$s-ის მეშვეობით"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"ავტომატურად დაკავშირდა ქსელის ხარისხის შეფასების პროვაიდერის მეშვეობით"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s-ით დაკავშირებული"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"ხელმისაწვდომია %1$s-ით"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"დაკავშირებულია, ინტერნეტის გარეშე"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ინტერნეტ-კავშირი არ არის"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"აუცილებელია სისტემაში შესვლა"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"წვდომის წერტილი დროებით გადატვირთულია"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s-ით დაკავშირებული"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"ხელმისაწვდომია %1$s-ით"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"ძალიან ნელი"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"ნელი"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"კარგი"</string>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index d22b139..54087a0 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s арқылы автоматты қосылды"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Желі рейтингі провайдері арқылы автоматты түрде қосылған"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s арқылы қосылған"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s арқылы қолжетімді"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Қосылған, интернет жоқ"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Интернетпен байланыс жоқ"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Есептік жазбаға кіру керек"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Кіру нүктесі уақытша бос емес"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s арқылы қосылды"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s арқылы қолжетімді"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Өте баяу"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Баяу"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Жарайды"</string>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index d516db9..3fc609f 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"បានភ្ជាប់ដោយស្វ័យប្រវត្តិតាមរយៈ %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"បានភ្ជាប់​ដោយស្វ័យប្រវត្តិ​តាម​រយៈក្រុមហ៊ុនផ្តល់​ការ​វាយ​តម្លៃលើ​បណ្តាញ"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"បានភ្ជាប់តាមរយៈ %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"មានតាមរយៈ %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"បាន​ភ្ជាប់ ប៉ុន្តែ​គ្មាន​អ៊ីនធឺណិត​ទេ"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"គ្មាន​អ៊ីនធឺណិតទេ"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"តម្រូវ​ឱ្យ​ចូល​គណនី"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"ចំណុចចូលប្រើពេញជាបណ្តោះអាសន្ន"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"បានភ្ជាប់តាមរយៈ %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"មានតាមរយៈ %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"យឺតណាស់"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"យឺត"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"យល់ព្រម"</string>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index 94a711c..bc1150d 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s ಮೂಲಕ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"ನೆಟ್‌ವರ್ಕ್ ರೇಟಿಂಗ್ ಒದಗಿಸುವವರ ಮೂಲಕ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s ಮೂಲಕ ಸಂಪರ್ಕಗೊಂಡಿದೆ"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s ಮೂಲಕ ಲಭ್ಯವಿದೆ"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ, ಇಂಟರ್ನೆಟ್ ಇಲ್ಲ"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ಇಂಟರ್ನೆಟ್ ಇಲ್ಲ"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"ಸೈನ್ ಇನ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"ಪ್ರವೇಶ ಕೇಂದ್ರ ತಾತ್ಕಾಲಿಕವಾಗಿ ಭರ್ತಿಯಾಗಿದೆ"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s ಮೂಲಕ ಸಂಪರ್ಕಗೊಂಡಿದೆ"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s ಮೂಲಕ ಲಭ್ಯವಿದೆ"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"ತುಂಬಾ ನಿಧಾನವಾಗಿದೆ"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"ನಿಧಾನ"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ಸರಿ"</string>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 0b4125f..035c24b 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s을(를) 통해 자동으로 연결됨"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"네트워크 평가 제공업체를 통해 자동으로 연결됨"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s을(를) 통해 연결됨"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s을(를) 통해 사용 가능"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"연결됨, 인터넷 사용 불가"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"인터넷 연결 없음"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"로그인 필요"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"액세스 포인트가 일시적으로 가득 참"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s을(를) 통해 연결됨"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s을(를) 통해 사용 가능"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"매우 느림"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"느림"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"보통"</string>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index 42dc97e..8a68c78 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s аркылуу автоматтык түрдө туташты"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Тармактар рейтингинин автору аркылуу автоматтык түрдө туташты"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s аркылуу жеткиликтүү"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s аркылуу жеткиликтүү"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Туташып турат, Интернет жок"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Интернет жок"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Аккаунтка кирүү талап кылынат"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Байланыш түйүнүнө өтө көп түзмөк туташып турат"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s аркылуу туташты"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s аркылуу иштейт"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Өтө жай"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Жай"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Жарайт"</string>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index 0505a5d..009f44f 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"ເຊື່ອມຕໍ່ຜ່ານທາງ %1$s ໂດຍອັດຕະໂນມັດ"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"ເຊື່ອມຕໍ່ກັບອັດຕະໂນມັດແລ້ວຜ່ານຜູ້ໃຫ້ບໍລິການຄະແນນເຄືອຂ່າຍ"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"​ເຊື່ອມຕໍ່​ຜ່ານ %1$s ​ແລ້ວ"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"ມີ​ໃຫ້​ຜ່ານ %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"ເຊື່ອມຕໍ່ແລ້ວ, ບໍ່ມີອິນເຕີເນັດ"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ບໍ່ມີອິນເຕີເນັດ"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"ຈຳເປັນຕ້ອງເຂົ້າສູ່ລະບົບ"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"ຈຸດການເຂົ້າເຖິງເຕັມຊົ່ວຄາວ"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"ເຊື່ອມຕໍ່ຜ່ານ %1$s ແລ້ວ"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"ໃຊ້ໄດ້ຜ່ານ %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"ຊ້າຫຼາຍ"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"ຊ້າ"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ຕົກລົງ"</string>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index e1412e7..f08a78b 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatiškai prisijungta naudojant „%1$s“"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatiškai prisijungta naudojant tinklo įvertinimo paslaugos teikėjo paslaugomis"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Prisijungta naudojant „%1$s“"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Pasiekiama naudojant „%1$s“"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Prisijungta, nėra interneto"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Nėra interneto ryšio"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Reikia prisijungti"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Prieigos taškas laikinai visiškai užimtas"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Prisijungta naudojant „%1$s“"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Pasiekiama naudojant „%1$s“"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Labai lėtas"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lėtas"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Gerai"</string>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 5082775..c768d11 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automātiski savienots, izmantojot %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automātiski izveidots savienojums, izmantojot tīkla vērtējuma sniedzēju"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Savienots, izmantojot %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Pieejams, izmantojot %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Savienojums izveidots, nav piekļuves internetam"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Nav piekļuves internetam"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Nepieciešama pierakstīšanās"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Piekļuves punkts īslaicīgi ir pilns"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Savienojums izveidots, izmantojot %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Pieejams, izmantojot %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Ļoti lēns"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lēns"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Labi"</string>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index 99cf468..85430a6 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Автоматски поврзано преку %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Автоматски поврзано преку оператор за оценување мрежа"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Поврзано преку %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Достапно преку %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Поврзана, нема интернет"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Нема интернет"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Потребно е најавување"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Пристапната точка привремено е преоптоварена"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Поврзано преку %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Достапно преку %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Многу бавна"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Бавна"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Во ред"</string>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index a0222ad..c3438dc 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s വഴി സ്വയമേവ ബന്ധിപ്പിച്ചു"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"നെറ്റ്‌വർക്ക് റേറ്റിംഗ് ദാതാവുമായി സ്വയം കണക്‌റ്റുചെയ്‌തു"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s വഴി ബന്ധിപ്പിച്ചു"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s വഴി ലഭ്യം"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"കണക്റ്റ് ചെയ്‌തു, ഇന്റർനെറ്റ് ഇല്ല"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ഇന്റർനെറ്റ് ഇല്ല"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"സൈൻ ഇൻ ചെയ്യേണ്ടത് ആവശ്യമാണ്"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"ആക്‌സസ് പോയിന്റ് താൽക്കാലികമായി നിറഞ്ഞിരിക്കുന്നു"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s വഴി ബന്ധിപ്പിച്ചു"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s വഴി ലഭ്യം"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"വളരെ കുറഞ്ഞ വേഗത്തിൽ"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"കുറഞ്ഞ വേഗത്തിൽ"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ശരി"</string>
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index 5b2acac..7c8aa8b 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s-р автоматаар холбогдсон"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Сүлжээний үнэлгээ үзүүлэгчээр автоматаар холбогдох"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s-р холбогдсон"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s-р боломжтой"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Холбогдсон хэдий ч интернет алга"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Интернэт алга"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Нэвтрэх шаардлагатай"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Хандах цэг түр хугацаанд дүүрсэн байна"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s-р холбогдсон"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s-р боломжтой"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Маш удаан"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Удаан"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ЗА"</string>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index 891ada8..3ab2a4b 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s द्वारे स्वयंचलितपणे कनेक्ट केले"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"नेटवर्क रेटिंग प्रदात्याद्वारे स्वयंचलितपणे कनेक्ट केले"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s द्वारे कनेक्‍ट केले"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s द्वारे उपलब्‍ध"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"कनेक्‍ट केले, इंटरनेट नाही"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"इंटरनेट नाही"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"साइन इन करणे आवश्यक आहे"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"अॅक्सेस पॉइंट तात्पुरते भरलेले"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s ने कनेक्‍ट केले"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s ने उपलब्‍ध"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"खूप हळू"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"हळू"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ठीक आहे"</string>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index 8030c3e..5459b80 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Disambungkan secara automatik melalui %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Disambungkan secara automatik melalui pembekal penilaian rangkaian"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Disambungkan melalui %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Tersedia melalui %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Disambungkan, tiada Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Tiada Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Log masuk diperlukan"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Titik akses penuh buat sementara waktu"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Disambungkan melalui %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Tersedia melalui %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Sangat Perlahan"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Perlahan"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index c543974..254de2a 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s မှတစ်ဆင့် အလိုအလျောက် ချိတ်ဆက်ထားပါသည်"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"ကွန်ရက်အဆင့်သတ်မှတ်ပေးသူ မှတစ်ဆင့် အလိုအလျောက် ချိတ်ဆက်ထားပါသည်"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s မှတစ်ဆင့် ချိတ်ဆက်ထားသည်"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s မှတစ်ဆင့်ရနိုင်သည်"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"ချိတ်ဆက်ထားသည်၊ အင်တာနက်မရှိ"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"အင်တာနက် မရှိပါ"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"လက်မှတ်ထိုးဝင်ရန် လိုအပ်သည်"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"ကွန်ရက်ချိတ်ဆက်မှု ယာယီပြည့်နေသည်"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s မှတစ်ဆင့် ချိတ်ဆက်ထားသည်"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s မှတစ်ဆင့် ရနိုင်သည်"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"အလွန်နှေး"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"နှေး"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index c4ad033..5d5568f 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatisk tilkoblet via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatisk tilkoblet via leverandør av nettverksvurdering"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Tilkoblet via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Tilgjengelig via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Tilkoblet – ingen Internett-tilgang"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Ingen internettilkobling"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Pålogging kreves"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Tilgangspunktet er midlertidig fullt"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Tilkoblet via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Tilgjengelig via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Veldig treg"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Treg"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Ok"</string>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index f67e05c..f63e9d7 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s मार्फत् स्वतः जडान गरिएको"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"नेटवर्कको दर्जा प्रदायक मार्फत स्वत: जडान गरिएको"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s मार्फत जडित"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s मार्फत उपलब्ध"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"जडान गरियो तर इन्टरनेट छैन"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"इन्टरनेटमाथिको पहुँच छैन"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"साइन इन गर्न आवश्यक छ"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"पहुँचसम्बन्धी स्थान अस्थायी रूपमा भरिएको छ"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s मार्फत जडान गरियो"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s मार्फत उपलब्ध"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"धेरै ढिलो"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"बिस्तारै"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ठिक छ"</string>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index d2fd4e24..798dc7c 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatisch verbonden via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatisch verbonden via provider van netwerkbeoordelingen"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Verbonden via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Beschikbaar via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Verbonden, geen internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Geen internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Inloggen vereist"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Toegangspunt tijdelijk vol"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Verbonden via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Beschikbaar via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Zeer langzaam"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Langzaam"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Redelijk"</string>
@@ -144,7 +218,7 @@
     <string name="tts_settings_title" msgid="1237820681016639683">"Spraakuitvoer"</string>
     <string name="tts_default_rate_title" msgid="6030550998379310088">"Spreeksnelheid"</string>
     <string name="tts_default_rate_summary" msgid="4061815292287182801">"Snelheid waarmee de tekst wordt gesproken"</string>
-    <string name="tts_default_pitch_title" msgid="6135942113172488671">"Hoogte"</string>
+    <string name="tts_default_pitch_title" msgid="6135942113172488671">"Toonhoogte"</string>
     <string name="tts_default_pitch_summary" msgid="1944885882882650009">"Is van invloed op de toon van de synthetisch gegenereerde spraak"</string>
     <string name="tts_default_lang_title" msgid="8018087612299820556">"Taal"</string>
     <string name="tts_lang_use_system" msgid="2679252467416513208">"Systeemtaal gebruiken"</string>
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index bed22a7..9491af3 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s ମାଧ୍ୟମରେ ଅଟୋମେଟିକାଲୀ ସଂଯୁକ୍ତ"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"ନେଟୱର୍କ ମୂଲ୍ୟାୟନ ପ୍ରଦାତାଙ୍କ ମାଧ୍ୟମରେ ଅଟୋମେଟିକାଲ୍ୟ ସଂଯୁକ୍ତ"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s ମାଧ୍ୟମରେ ସଂଯୁକ୍ତ"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s ମାଧ୍ୟମରେ ଉପଲବ୍ଧ"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"ସଂଯୁକ୍ତ, ଇଣ୍ଟର୍‌ନେଟ୍‌ ନାହିଁ"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"କୌଣସି ଇଣ୍ଟରନେଟ୍‌ ନାହିଁ"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"ସାଇନ୍-ଇନ୍ ଆବଶ୍ୟକ"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"ଆକ୍ସେସ୍ ପଏଣ୍ଟ ସାମୟିକ ଭାବେ ପୂର୍ଣ୍ଣ"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s ମାଧ୍ୟମରେ ସଂଯୁକ୍ତ"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s ମାଧ୍ୟମରେ ଉପଲବ୍ଧ"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"ବହୁତ ମନ୍ଥର"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"କମ୍‌ ବେଗ"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ଠିକ୍‌ ଅଛି"</string>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index 1c2a947..eadc554 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s ਰਾਹੀਂ ਆਪਣੇ-ਆਪ ਕਨੈਕਟ ਹੋਇਆ"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"ਨੈੱਟਵਰਕ ਰੇਟਿੰਗ ਪ੍ਰਦਾਨਕ ਰਾਹੀਂ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਕਨੈਕਟ ਹੋਇਆ"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s ਰਾਹੀਂ ਕਨੈਕਟ ਕੀਤਾ"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s ਰਾਹੀਂ ਉਪਲਬਧ"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"ਕਨੈਕਟ ਕੀਤਾ, ਕੋਈ ਇੰਟਰਨੈੱਟ ਨਹੀਂ"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ਇੰਟਰਨੈੱਟ ਨਹੀਂ"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"ਸਾਈਨ-ਇਨ ਲੋੜੀਂਦਾ ਹੈ"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"ਐਕਸੈੱਸ ਪੁਆਇੰਟ ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਸੰਪੂਰਨ ਰੁਝੇਂਵੇਂ ਵਿੱਚ ਹੈ"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s ਰਾਹੀਂ ਕਨੈਕਟ ਕੀਤਾ"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s ਰਾਹੀਂ ਉਪਲਬਧ"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"ਬਹੁਤ ਹੌਲੀ"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"ਹੌਲੀ"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ਠੀਕ ਹੈ"</string>
@@ -142,7 +216,7 @@
     <string name="launch_defaults_none" msgid="4241129108140034876">"ਕੋਈ ਡਿਫੌਲਟਸ ਸੈਟ ਨਹੀਂ ਕੀਤੇ"</string>
     <string name="tts_settings" msgid="8186971894801348327">"ਲਿਖਤ ਤੋਂ ਬੋਲੀ ਸੈਟਿੰਗਾਂ"</string>
     <string name="tts_settings_title" msgid="1237820681016639683">"ਲਿਖਤ-ਤੋਂ-ਬੋਲੀ ਆਊਟਪੁੱਟ"</string>
-    <string name="tts_default_rate_title" msgid="6030550998379310088">"ਸਪੀਚ ਰੇਟ"</string>
+    <string name="tts_default_rate_title" msgid="6030550998379310088">"ਬੋਲਣ ਦੀ ਗਤੀ"</string>
     <string name="tts_default_rate_summary" msgid="4061815292287182801">"ਸਪੀਡ ਜਿਸਤੇ ਟੈਕਸਟ ਬੋਲਿਆ ਜਾਂਦਾ ਹੈ"</string>
     <string name="tts_default_pitch_title" msgid="6135942113172488671">"ਪਿਚ"</string>
     <string name="tts_default_pitch_summary" msgid="1944885882882650009">"ਬਣਾਵਟੀ ਬੋਲੀ ਦੇ ਲਹਿਜੇ \'ਤੇ ਅਸਰ ਪਾਉਂਦੀ ਹੈ"</string>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 1a0a30d..f94308a 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatycznie połączono przez: %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatycznie połączono przez dostawcę ocen jakości sieci"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Połączono przez %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Dostępne przez %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Połączono, brak internetu"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Brak internetu"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Musisz się zalogować"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Punkt dostępu jest tymczasowo zajęty"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Połączono przez: %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Dostępna przez: %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Bardzo wolna"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Wolna"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 2795d47..f1b043b 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Conectado automaticamente via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Conectado automaticamente via provedor de avaliação de rede"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Conectado via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Disponível via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Conectada, sem Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Sem Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"É necessário fazer login"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Ponto de acesso temporariamente cheio"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Conectado via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Disponível via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Muito lenta"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lenta"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Ok"</string>
@@ -142,9 +216,9 @@
     <string name="launch_defaults_none" msgid="4241129108140034876">"Nenhum padrão definido"</string>
     <string name="tts_settings" msgid="8186971894801348327">"Configurações da conversão de texto em voz"</string>
     <string name="tts_settings_title" msgid="1237820681016639683">"Conversão de texto em voz"</string>
-    <string name="tts_default_rate_title" msgid="6030550998379310088">"Taxa de fala"</string>
+    <string name="tts_default_rate_title" msgid="6030550998379310088">"Velocidade da fala"</string>
     <string name="tts_default_rate_summary" msgid="4061815292287182801">"Velocidade em que o texto é falado"</string>
-    <string name="tts_default_pitch_title" msgid="6135942113172488671">"Tom da fala"</string>
+    <string name="tts_default_pitch_title" msgid="6135942113172488671">"Tom de voz"</string>
     <string name="tts_default_pitch_summary" msgid="1944885882882650009">"Afeta o tom da voz sintetizada"</string>
     <string name="tts_default_lang_title" msgid="8018087612299820556">"Idioma"</string>
     <string name="tts_lang_use_system" msgid="2679252467416513208">"Usar idioma do sistema"</string>
@@ -166,8 +240,8 @@
     <string name="tts_engine_settings_button" msgid="1030512042040722285">"Iniciar configurações do mecanismo"</string>
     <string name="tts_engine_preference_section_title" msgid="448294500990971413">"Mecanismo preferencial"</string>
     <string name="tts_general_section_title" msgid="4402572014604490502">"Gerais"</string>
-    <string name="tts_reset_speech_pitch_title" msgid="5789394019544785915">"Redefinir o tom da fala"</string>
-    <string name="tts_reset_speech_pitch_summary" msgid="8700539616245004418">"Redefinir o tom no qual o texto é falado para o padrão."</string>
+    <string name="tts_reset_speech_pitch_title" msgid="5789394019544785915">"Redefinir o tom de voz"</string>
+    <string name="tts_reset_speech_pitch_summary" msgid="8700539616245004418">"Redefinir o tom de voz para o padrão."</string>
   <string-array name="tts_rate_entries">
     <item msgid="6695494874362656215">"Muito devagar"</item>
     <item msgid="4795095314303559268">"Devagar"</item>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index fd15210..b0694d1 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Ligado automaticamente através de %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Ligado automaticamente através do fornecedor de classificação de rede"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Ligado através de %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Disponível através de %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Ligado, sem Internet."</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Sem Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"É necessário iniciar sessão"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Ponto de acesso temporariamente cheio"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Ligado através de %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Disponível através de %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Muito lenta"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lenta"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 2795d47..f1b043b 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Conectado automaticamente via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Conectado automaticamente via provedor de avaliação de rede"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Conectado via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Disponível via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Conectada, sem Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Sem Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"É necessário fazer login"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Ponto de acesso temporariamente cheio"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Conectado via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Disponível via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Muito lenta"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lenta"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Ok"</string>
@@ -142,9 +216,9 @@
     <string name="launch_defaults_none" msgid="4241129108140034876">"Nenhum padrão definido"</string>
     <string name="tts_settings" msgid="8186971894801348327">"Configurações da conversão de texto em voz"</string>
     <string name="tts_settings_title" msgid="1237820681016639683">"Conversão de texto em voz"</string>
-    <string name="tts_default_rate_title" msgid="6030550998379310088">"Taxa de fala"</string>
+    <string name="tts_default_rate_title" msgid="6030550998379310088">"Velocidade da fala"</string>
     <string name="tts_default_rate_summary" msgid="4061815292287182801">"Velocidade em que o texto é falado"</string>
-    <string name="tts_default_pitch_title" msgid="6135942113172488671">"Tom da fala"</string>
+    <string name="tts_default_pitch_title" msgid="6135942113172488671">"Tom de voz"</string>
     <string name="tts_default_pitch_summary" msgid="1944885882882650009">"Afeta o tom da voz sintetizada"</string>
     <string name="tts_default_lang_title" msgid="8018087612299820556">"Idioma"</string>
     <string name="tts_lang_use_system" msgid="2679252467416513208">"Usar idioma do sistema"</string>
@@ -166,8 +240,8 @@
     <string name="tts_engine_settings_button" msgid="1030512042040722285">"Iniciar configurações do mecanismo"</string>
     <string name="tts_engine_preference_section_title" msgid="448294500990971413">"Mecanismo preferencial"</string>
     <string name="tts_general_section_title" msgid="4402572014604490502">"Gerais"</string>
-    <string name="tts_reset_speech_pitch_title" msgid="5789394019544785915">"Redefinir o tom da fala"</string>
-    <string name="tts_reset_speech_pitch_summary" msgid="8700539616245004418">"Redefinir o tom no qual o texto é falado para o padrão."</string>
+    <string name="tts_reset_speech_pitch_title" msgid="5789394019544785915">"Redefinir o tom de voz"</string>
+    <string name="tts_reset_speech_pitch_summary" msgid="8700539616245004418">"Redefinir o tom de voz para o padrão."</string>
   <string-array name="tts_rate_entries">
     <item msgid="6695494874362656215">"Muito devagar"</item>
     <item msgid="4795095314303559268">"Devagar"</item>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index ecdd003..032fceb 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Conectată automat prin %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Conectată automat prin furnizor de evaluări ale rețelei"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Conectată prin %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Disponibilă prin %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Conectată, fără internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Fără conexiune la internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Trebuie să vă conectați"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Punctul de acces este temporar plin"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Conectată prin %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Disponibilă prin %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Foarte lentă"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Lentă"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Bine"</string>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index 74075c5..a280285 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Автоматически подключено к %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Автоматически подключено через автора рейтинга сетей"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Подключено к %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Доступно через %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Подключено, без доступа к Интернету"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Нет подключения к Интернету"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Требуется выполнить вход."</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"К точке доступа подключено слишком много устройств"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Подключено к %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Доступно через %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Очень медленная"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Медленная"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ОК"</string>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index fc90db5..c143c76 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s හරහා ස්වයංක්‍රියව සම්බන්ධ විය"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"ජාල ශ්‍රේණිගත සපයන්නා හරහා ස්වයංක්‍රියව සම්බන්ධ විය"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s හරහා සම්බන්ධ විය"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s හරහා ලබා ගැනීමට හැකිය"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"සම්බන්ධයි, අන්තර්ජාලය නැත"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"අන්තර්ජාලය නැත"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"පිරීම අවශ්‍යයි"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"ප්‍රවේශ ලක්ෂ්‍ය තාවකාලිකව පිරී ඇත"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s හරහා සම්බන්ධ විය"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s හරහා ලබා ගැනීමට හැකිය"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"ඉතා මන්දගාමී"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"මන්දගාමී"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"හරි"</string>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index ed51f55..b41d5d3 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automaticky pripojené prostredníctvom %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automaticky pripojené prostredníctvom poskytovateľa hodnotenia siete"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Pripojené prostredníctvom %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"K dispozícii prostredníctvom %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Pripojené, žiadny internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Žiadny internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Vyžaduje sa prihlásenie"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Prístupový bod je dočasne plný"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Pripojené prostredníctvom operátora %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"K dispozícii prostredníctvom operátora %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Veľmi nízka"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Nízka"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index ad47f75..298acb9 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Samodejno vzpostavljena povezava prek: %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Samodejno vzpostavljena povezava prek ponudnika ocenjevanja omrežij"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Vzpostavljena povezava prek: %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Na voljo prek: %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Vzpostavljena povezava, brez interneta"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Brez internetne povezave"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Zahtevana je prijava"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Dostopna točka je trenutno zasedena"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Vzpostavljena povezava prek: %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Na voljo prek: %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Zelo počasna"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Počasna"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"V redu"</string>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index f8f491b..569b4d9 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Lidhur automatikisht përmes %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Lidhur automatikisht nëpërmjet ofruesit të vlerësimit të rrjetit"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"E lidhur përmes %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"E mundshme përmes %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"U lidh, por nuk ka internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Nuk ka internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Kërkohet identifikimi"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Pika e qasjes është përkohësisht plot"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"E lidhur përmes %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"E disponueshme përmes %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Shumë e ulët"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"E ngadaltë"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Në rregull"</string>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index 3fe40f9..bf5e311 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Аутоматски повезано преко %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Аутоматски повезано преко добављача оцене мреже"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Веза је успостављена преко приступне тачке %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Доступна је преко приступне тачке %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Веза је успостављена, нема интернета"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Нема интернета"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Треба да се пријавите"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Приступна тачка је привремено заузета"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Повезано преко %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Доступно преко %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Веома спора"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Спора"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Потврди"</string>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index 186395e..6e004df 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Automatiskt ansluten via %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Automatiskt ansluten via leverantör av nätverksbetyg"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Anslutet via %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Tillgängligt via %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Ansluten, inget internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Inget internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Inloggning krävs"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Åtkomstpunkten har inga platser över för tillfället"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Anslutet via %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Tillgängligt via %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Mycket långsam"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Långsam"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Okej"</string>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index 03e0c3a..bf03476 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Imeunganishwa kiotomatiki kupitia %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Imeunganishwa kiotomatiki kupitia mtoa huduma wa ukadiriaji wa mtandao"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Imeunganishwa kupitia %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Inapatikana kupitia %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Imeunganishwa, hakuna intaneti"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Hakuna intaneti"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Unahitaji kuingia katika akaunti"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Lango la mtandao lina shughuli nyingi kwa sasa"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Imeunganishwa kupitia %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Inapatikana kupitia %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Polepole Sana"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Polepole"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Sawa"</string>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index 0efd285..58e5967 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s மூலம் தானாக இணைக்கப்பட்டது"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"நெட்வொர்க் மதிப்பீடு வழங்குநரால் தானாக இணைக்கப்பட்டது"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s வழியாக இணைக்கப்பட்டது"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s வழியாகக் கிடைக்கிறது"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"இணைக்கப்பட்டுள்ளது, ஆனால் இண்டர்நெட் இல்லை"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"இணைய இணைப்பு இல்லை"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"உள்நுழைய வேண்டும்"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"தற்காலிகமாக அணுகல் புள்ளி நிரம்பியுள்ளது"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s வழியாக இணைக்கப்பட்டது"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s வழியாகக் கிடைக்கிறது"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"மிகவும் வேகம் குறைவானது"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"வேகம் குறைவு"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"சரி"</string>
diff --git a/packages/SettingsLib/res/values-te/arrays.xml b/packages/SettingsLib/res/values-te/arrays.xml
index ddb40ce..5d79065 100644
--- a/packages/SettingsLib/res/values-te/arrays.xml
+++ b/packages/SettingsLib/res/values-te/arrays.xml
@@ -173,7 +173,7 @@
     <item msgid="2850427388488887328">"కెర్నెల్ మాత్రమే"</item>
   </string-array>
   <string-array name="select_logpersist_summaries">
-    <item msgid="2216470072500521830">"ఆఫ్ చేయి"</item>
+    <item msgid="2216470072500521830">"ఆఫ్"</item>
     <item msgid="172978079776521897">"అన్ని లాగ్ బఫర్‌లు"</item>
     <item msgid="3873873912383879240">"అన్నీ కానీ రేడియో లాగ్ బఫర్‌లు"</item>
     <item msgid="8489661142527693381">"కెర్నెల్ లాగ్ బఫర్ మాత్రమే"</item>
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index 2caa2ef..9d1b23e 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s ద్వారా స్వయంచాలకంగా కనెక్ట్ చేయబడింది"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"నెట్‌వర్క్ రేటింగ్ ప్రదాత ద్వారా స్వయంచాలకంగా కనెక్ట్ చేయబడింది"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s ద్వారా కనెక్ట్ చేయబడింది"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s ద్వారా అందుబాటులో ఉంది"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"కనెక్ట్ చేయబడింది, ఇంటర్నెట్ లేదు"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ఇంటర్నెట్ లేదు"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"సైన్ ఇన్ చేయాలి"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"యాక్సెస్ పాయింట్ తాత్కాలికంగా నిండుకుంది"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s ద్వారా కనెక్ట్ చేయబడింది"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s ద్వారా అందుబాటులో ఉంది"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"చాలా నెమ్మది"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"నెమ్మది"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"సరే"</string>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index 03bf354..ddd9aae 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"เชื่อมต่ออัตโนมัติผ่าน %1$s แล้ว"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"เชื่อมต่ออัตโนมัติผ่านผู้ให้บริการการจัดอันดับเครือข่าย"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"เชื่อมต่อผ่าน %1$s แล้ว"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"พร้อมใช้งานผ่านทาง %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"เชื่อมต่อแล้ว ไม่พบอินเทอร์เน็ต"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"ไม่มีอินเทอร์เน็ต"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"ต้องลงชื่อเข้าใช้"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"จุดเข้าใช้งานเต็มชั่วคราว"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"เชื่อมต่อผ่าน %1$s แล้ว"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"พร้อมใช้งานผ่านทาง %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"ช้ามาก"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"ช้า"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ตกลง"</string>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index 3f5cca2..6445480 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Awtomatikong nakakonekta sa pamamagitan ng %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Awtomatikong nakakonekta sa pamamagitan ng provider ng rating ng network"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Nakakonekta sa pamamagitan ng %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Available sa pamamagitan ng %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Nakakonekta, walang internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Walang internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Kinakailangang mag-sign in"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Pansamantalang puno ang access point"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Nakakonekta sa pamamagitan ng %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Available sa pamamagitan ng %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Napakabagal"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Mabagal"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index b0a782a..c3a3ff2 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s üzerinden otomatik olarak bağlı"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Ağ derecelendirme sağlayıcı aracılığıyla otomatik olarak bağlandı"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s üzerinden bağlı"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s üzerinden kullanılabilir"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Bağlı, internet yok"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"İnternet yok"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Oturum açılması gerekiyor"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Erişim noktası geçici olarak dolu"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s üzerinden bağlı"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s üzerinden kullanılabilir"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Çok Yavaş"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Yavaş"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Tamam"</string>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index 2b63573..a28dc18 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Автоматично під’єднано через %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Автоматично під’єднано через постачальника оцінки якості мережі"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Під’єднано через %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Доступ через %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Під’єднано, але немає доступу до Інтернету"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Немає Інтернету"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Потрібно ввійти в обліковий запис"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Точка доступу тимчасово переповнена"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Під’єднано через мережу %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Доступ через мережу %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Дуже повільна"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Повільна"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ОК"</string>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index d7123a6..397f4b2 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"‏‎%1$s کے ذریعے از خود منسلک کردہ"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"نیٹ ورک درجہ بندی کے فراہم کنندہ کے ذریعے از خود منسلک"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"‏منسلک بذریعہ ‎%1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"‏دستیاب بذریعہ ‎%1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"منسلک، انٹرنیٹ نہیں ہے"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"انٹرنیٹ نہیں ہے"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"سائن ان درکار ہے"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"رسائی پوائنٹ عارضی طور پر فُل ہے"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"‏منسلک بذریعہ ‎%1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"‏دستیاب بذریعہ ‎%1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"بہت سست"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"سست"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"ٹھیک ہے"</string>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index 51156d7..5f214ce 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"%1$s orqali avtomatik ulandi"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Tarmoqlar reytingi muallifi orqali avtomatik ulandi"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s orqali ulangan"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s orqali ishlaydi"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Ulangan, lekin internet aloqasi yo‘q"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Internet yo‘q"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Hisob bilan kirish zarur"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Internet kirish nuqtasi vaqtinchalik to‘lgan"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"%1$s orqali ulangan"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"%1$s orqali ishlaydi"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Juda sekin"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Sekin"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"OK"</string>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index 13a9322..e019953 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Tự động được kết nối qua %1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Tự động được kết nối qua nhà cung cấp dịch vụ xếp hạng mạng"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Được kết nối qua %1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Có sẵn qua %1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Đã kết nối, không có Internet"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Không có Internet"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Yêu cầu đăng nhập"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Điểm truy cập tạm thời đã đạt đến giới hạn số lượng thiết bị truy cập."</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Được kết nối qua %1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Có sẵn qua %1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Rất chậm"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Chậm"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"Khá tốt"</string>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index 866c143..fd0d36e 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"已通过%1$s自动连接"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"已自动连接(通过网络评分服务提供方)"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"已通过%1$s连接"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"可通过%1$s连接"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"已连接,但无法访问互联网"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"无法访问互联网"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"必须登录"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"接入点暂时满载"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"已通过%1$s连接"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"可通过%1$s连接"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"很慢"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"慢"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"良好"</string>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index f63ba3a..024299b 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"已透過 %1$s 自動連線"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"已透過網絡評分供應商自動連線"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"已透過 %1$s 連線"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"可透過 %1$s 連線"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"已連線,但沒有互聯網"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"沒有互聯網連線"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"必須登入"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"存取點暫時已滿"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"已透過 %1$s 連線"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"可透過 %1$s 連線"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"非常慢"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"慢"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"良好"</string>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index 93592a79..146ffac 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"已透過 %1$s 自動連線"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"已透過網路評分供應商自動連線"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"已透過 %1$s 連線"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"可透過 %1$s 使用"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"已連線,沒有網際網路"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"沒有網際網路連線"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"必須登入"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"存取點暫時滿載"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"已透過 %1$s 連線"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"可透過 %1$s 使用"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"非常慢"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"慢"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"確定"</string>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index dd2f3d8..fc7b9b4 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -38,13 +38,87 @@
     <string name="connected_via_network_scorer" msgid="5713793306870815341">"Ixhumeke ngokuzenzakalela nge-%1$s"</string>
     <string name="connected_via_network_scorer_default" msgid="7867260222020343104">"Kuxhunywe ngokuzenzakalelayo ngomhlinzeki wesilinganiso wenethiwekhi"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Kuxhumeke nge-%1$s"</string>
+    <!-- no translation found for ssid_by_passpoint_provider (7898171424140673315) -->
+    <skip />
     <string name="available_via_passpoint" msgid="1617440946846329613">"Iyatholakala nge-%1$s"</string>
+    <!-- no translation found for tap_to_set_up (2468970825530423314) -->
+    <skip />
     <string name="wifi_connected_no_internet" msgid="8202906332837777829">"Kuxhunyiwe, ayikho i-inthanethi"</string>
     <string name="wifi_status_no_internet" msgid="5784710974669608361">"Ayikho i-inthanethi"</string>
     <string name="wifi_status_sign_in_required" msgid="123517180404752756">"Ukungena ngemvume kuyadingeka"</string>
     <string name="wifi_ap_unable_to_handle_new_sta" msgid="5348824313514404541">"Iphoyinti lokufinyelela ligcwele okwesikhashana"</string>
     <string name="connected_via_carrier" msgid="7583780074526041912">"Kuxhumeke nge-%1$s"</string>
     <string name="available_via_carrier" msgid="1469036129740799053">"Iyatholakala nge-%1$s"</string>
+    <!-- no translation found for osu_failure_ap_connection (598977488344424542) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_url_invalid (2237477219243136714) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_connection (8192988165059982174) -->
+    <skip />
+    <!-- no translation found for osu_failure_server_validation (4631649978129606823) -->
+    <skip />
+    <!-- no translation found for osu_failure_service_provider_verification (4854091521439785597) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_aborted (424627208135320329) -->
+    <skip />
+    <!-- no translation found for osu_failure_provisioning_not_available (3021783729256985432) -->
+    <skip />
+    <!-- no translation found for osu_failure_invalid_server_url (8548886196179435758) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_command_type (8245921319866603904) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_type (2255897608510053065) -->
+    <skip />
+    <!-- no translation found for osu_failure_soap_message_exchange (4357358438685987192) -->
+    <skip />
+    <!-- no translation found for osu_failure_start_redirect_listener (4292769407279548482) -->
+    <skip />
+    <!-- no translation found for osu_failure_timed_out_redirect_listener (3168657820278807508) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_osu_activity_found (4593038891437878675) -->
+    <skip />
+    <!-- no translation found for osu_failure_unexpected_soap_message_status (6568467710235256675) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_pps_mo (850567403039076835) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_server_trust_root_node (8961455873459838456) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_remediation_server_trust_root_node (5041179688081545244) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_policy_server_trust_root_node (6617290380940513539) -->
+    <skip />
+    <!-- no translation found for osu_failure_retrieve_trust_root_certificates (1499136256195528265) -->
+    <skip />
+    <!-- no translation found for osu_failure_no_aaa_trust_root_certificate (1904322497042226984) -->
+    <skip />
+    <!-- no translation found for osu_failure_add_passpoint_configuration (2173557755811446047) -->
+    <skip />
+    <!-- no translation found for osu_failure_osu_provider_not_found (6616172862116673082) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connecting (5296821043003441437) -->
+    <skip />
+    <!-- no translation found for osu_status_ap_connected (3777289375683170728) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connecting (8499785407540355867) -->
+    <skip />
+    <!-- no translation found for osu_status_server_validated (3158727184762596355) -->
+    <skip />
+    <!-- no translation found for osu_status_server_connected (8382024481520158168) -->
+    <skip />
+    <!-- no translation found for osu_status_init_soap_exchange (8628063888912101981) -->
+    <skip />
+    <!-- no translation found for osu_status_waiting_for_redirect_response (2343016207837053197) -->
+    <skip />
+    <!-- no translation found for osu_status_redirect_response_received (5323368411922609405) -->
+    <skip />
+    <!-- no translation found for osu_status_second_soap_exchange (7115332266758483909) -->
+    <skip />
+    <!-- no translation found for osu_status_third_soap_exchange (8460901783597440766) -->
+    <skip />
+    <!-- no translation found for osu_status_retrieving_trust_root_certs (1563445892926269689) -->
+    <skip />
+    <!-- no translation found for osu_provisioning_complete (5120178802493970149) -->
+    <skip />
     <string name="speed_label_very_slow" msgid="1867055264243608530">"Phansi kakhulu"</string>
     <string name="speed_label_slow" msgid="813109590815810235">"Phansi"</string>
     <string name="speed_label_okay" msgid="2331665440671174858">"KULUNGILE"</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
index 180b77e..8cb252e 100644
--- a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
@@ -66,6 +66,7 @@
     private INetworkStatsSession mSession;
     private Callback mCallback;
     private NetworkNameProvider mNetworkController;
+    private int mSubscriptionId;
 
     public DataUsageController(Context context) {
         mContext = context;
@@ -75,6 +76,7 @@
                 ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
         mPolicyManager = NetworkPolicyManager.from(mContext);
         mNetworkStatsManager = context.getSystemService(NetworkStatsManager.class);
+        mSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     }
 
     public void setNetworkController(NetworkNameProvider networkController) {
@@ -82,6 +84,15 @@
     }
 
     /**
+     * By default this class will just get data usage information for the default data subscription,
+     * but this method can be called to require it to use an explicit subscription id which may be
+     * different from the default one (this is useful for the case of multi-SIM devices).
+     */
+    public void setSubscriptionId(int subscriptionId) {
+        mSubscriptionId = subscriptionId;
+    }
+
+    /**
      * Returns the default warning level in bytes.
      */
     public long getDefaultWarningLevel() {
@@ -99,7 +110,7 @@
     }
 
     public DataUsageInfo getDataUsageInfo() {
-        final String subscriberId = getActiveSubscriberId(mContext);
+        final String subscriberId = getActiveSubscriberId();
         if (subscriberId == null) {
             return warn("no subscriber id");
         }
@@ -164,7 +175,8 @@
     private long getUsageLevel(NetworkTemplate template, long start, long end) {
         try {
             final Bucket bucket = mNetworkStatsManager.querySummaryForDevice(
-                getNetworkType(template), getActiveSubscriberId(mContext), start, end);
+                    getNetworkType(template), getActiveSubscriberId(),
+                    start, end);
             if (bucket != null) {
                 return bucket.getRxBytes() + bucket.getTxBytes();
             }
@@ -237,10 +249,13 @@
         }
     }
 
-    private static String getActiveSubscriberId(Context context) {
-        final TelephonyManager tele = TelephonyManager.from(context);
-        final String actualSubscriberId = tele.getSubscriberId(
-                SubscriptionManager.getDefaultDataSubscriptionId());
+    private String getActiveSubscriberId() {
+        final TelephonyManager tele = TelephonyManager.from(mContext);
+        int subscriptionId = mSubscriptionId;
+        if (subscriptionId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            subscriptionId = SubscriptionManager.getDefaultDataSubscriptionId();
+        }
+        final String actualSubscriberId = tele.getSubscriberId(subscriptionId);
         return actualSubscriberId;
     }
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java
index acf99a2..220463b 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java
@@ -45,6 +45,7 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.shadows.ShadowSubscriptionManager;
 
 @RunWith(RobolectricTestRunner.class)
 public class DataUsageControllerTest {
@@ -73,7 +74,9 @@
                 new NetworkStatsHistory(DateUtils.DAY_IN_MILLIS /* bucketDuration */));
         doReturn(mNetworkStatsHistory)
                 .when(mSession).getHistoryForNetwork(any(NetworkTemplate.class), anyInt());
-        doReturn(SUB_ID).when(mTelephonyManager).getSubscriberId(anyInt());
+        final int defaultSubscriptionId = 1234;
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(defaultSubscriptionId);
+        doReturn(SUB_ID).when(mTelephonyManager).getSubscriberId(eq(defaultSubscriptionId));
     }
 
     @Test
@@ -107,4 +110,39 @@
         assertThat(mController.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard()))
                 .isEqualTo(receivedBytes + transmittedBytes);
     }
+
+    @Test
+    public void getDataUsageInfo_hasUsageData_shouldReturnCorrectUsageForExplicitSubId()
+            throws Exception {
+        // First setup a stats bucket for the default subscription / subscriber ID.
+        final long defaultSubRx = 1234567L;
+        final long defaultSubTx = 123456L;
+        final NetworkStats.Bucket defaultSubscriberBucket = mock(NetworkStats.Bucket.class);
+        when(defaultSubscriberBucket.getRxBytes()).thenReturn(defaultSubRx);
+        when(defaultSubscriberBucket.getTxBytes()).thenReturn(defaultSubTx);
+        when(mNetworkStatsManager.querySummaryForDevice(eq(ConnectivityManager.TYPE_MOBILE),
+                eq(SUB_ID), eq(0L)/* startTime */, anyLong() /* endTime */)).thenReturn(
+                defaultSubscriberBucket);
+
+        // Now setup a stats bucket for a different, non-default subscription / subscriber ID.
+        final long nonDefaultSubRx = 7654321L;
+        final long nonDefaultSubTx = 654321L;
+        final NetworkStats.Bucket nonDefaultSubscriberBucket = mock(NetworkStats.Bucket.class);
+        when(nonDefaultSubscriberBucket.getRxBytes()).thenReturn(nonDefaultSubRx);
+        when(nonDefaultSubscriberBucket.getTxBytes()).thenReturn(nonDefaultSubTx);
+        final int explictSubscriptionId = 55;
+        final String subscriberId2 = "Test Subscriber 2";
+        when(mNetworkStatsManager.querySummaryForDevice(eq(ConnectivityManager.TYPE_MOBILE),
+                eq(subscriberId2), eq(0L)/* startTime */, anyLong() /* endTime */)).thenReturn(
+                nonDefaultSubscriberBucket);
+        doReturn(subscriberId2).when(mTelephonyManager).getSubscriberId(explictSubscriptionId);
+
+        // Now verify that when we're asking for stats on the non-default subscription, we get
+        // the data back for that subscription and *not* the default one.
+        mController.setSubscriptionId(explictSubscriptionId);
+
+        assertThat(mController.getHistoricalUsageLevel(
+                NetworkTemplate.buildTemplateMobileAll(subscriberId2))).isEqualTo(
+                nonDefaultSubRx + nonDefaultSubTx);
+    }
 }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AppEntitiesHeaderControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AppEntitiesHeaderControllerTest.java
index c3bc8da..8c18c35 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AppEntitiesHeaderControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AppEntitiesHeaderControllerTest.java
@@ -19,7 +19,6 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
-import android.graphics.drawable.Drawable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageView;
@@ -43,18 +42,24 @@
     public final ExpectedException thrown = ExpectedException.none();
 
     private Context mContext;
-    private Drawable mIcon;
     private View mAppEntitiesHeaderView;
     private AppEntitiesHeaderController mController;
+    private AppEntityInfo mAppEntityInfo;
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
         mAppEntitiesHeaderView = LayoutInflater.from(mContext).inflate(
                 R.layout.app_entities_header, null /* root */);
-        mIcon = mContext.getDrawable(R.drawable.ic_menu);
         mController = AppEntitiesHeaderController.newInstance(mContext,
                 mAppEntitiesHeaderView);
+        mAppEntityInfo = new AppEntityInfo.Builder()
+                .setIcon(mContext.getDrawable(R.drawable.ic_menu))
+                .setTitle(TITLE)
+                .setSummary(SUMMARY)
+                .setOnClickListener(v -> {
+                })
+                .build();
     }
 
     @Test
@@ -91,26 +96,26 @@
     public void setAppEntity_indexLessThanZero_shouldThrowArrayIndexOutOfBoundsException() {
         thrown.expect(ArrayIndexOutOfBoundsException.class);
 
-        mController.setAppEntity(-1, mIcon, TITLE, SUMMARY);
+        mController.setAppEntity(-1, mAppEntityInfo);
     }
 
     @Test
     public void asetAppEntity_indexGreaterThanMaximum_shouldThrowArrayIndexOutOfBoundsException() {
         thrown.expect(ArrayIndexOutOfBoundsException.class);
 
-        mController.setAppEntity(AppEntitiesHeaderController.MAXIMUM_APPS + 1, mIcon, TITLE,
-                SUMMARY);
+        mController.setAppEntity(AppEntitiesHeaderController.MAXIMUM_APPS + 1, mAppEntityInfo);
     }
 
     @Test
     public void setAppEntity_addAppToIndex0_shouldShowAppView1() {
-        mController.setAppEntity(0, mIcon, TITLE, SUMMARY).apply();
+        mController.setAppEntity(0, mAppEntityInfo).apply();
         final View app1View = mAppEntitiesHeaderView.findViewById(R.id.app1_view);
         final ImageView appIconView = app1View.findViewById(R.id.app_icon);
         final TextView appTitle = app1View.findViewById(R.id.app_title);
         final TextView appSummary = app1View.findViewById(R.id.app_summary);
 
         assertThat(app1View.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(app1View.hasOnClickListeners()).isTrue();
         assertThat(appIconView.getDrawable()).isNotNull();
         assertThat(appTitle.getText()).isEqualTo(TITLE);
         assertThat(appSummary.getText()).isEqualTo(SUMMARY);
@@ -118,13 +123,14 @@
 
     @Test
     public void setAppEntity_addAppToIndex1_shouldShowAppView2() {
-        mController.setAppEntity(1, mIcon, TITLE, SUMMARY).apply();
+        mController.setAppEntity(1, mAppEntityInfo).apply();
         final View app2View = mAppEntitiesHeaderView.findViewById(R.id.app2_view);
         final ImageView appIconView = app2View.findViewById(R.id.app_icon);
         final TextView appTitle = app2View.findViewById(R.id.app_title);
         final TextView appSummary = app2View.findViewById(R.id.app_summary);
 
         assertThat(app2View.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(app2View.hasOnClickListeners()).isTrue();
         assertThat(appIconView.getDrawable()).isNotNull();
         assertThat(appTitle.getText()).isEqualTo(TITLE);
         assertThat(appSummary.getText()).isEqualTo(SUMMARY);
@@ -132,13 +138,14 @@
 
     @Test
     public void setAppEntity_addAppToIndex2_shouldShowAppView3() {
-        mController.setAppEntity(2, mIcon, TITLE, SUMMARY).apply();
+        mController.setAppEntity(2, mAppEntityInfo).apply();
         final View app3View = mAppEntitiesHeaderView.findViewById(R.id.app3_view);
         final ImageView appIconView = app3View.findViewById(R.id.app_icon);
         final TextView appTitle = app3View.findViewById(R.id.app_title);
         final TextView appSummary = app3View.findViewById(R.id.app_summary);
 
         assertThat(app3View.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(app3View.hasOnClickListeners()).isTrue();
         assertThat(appIconView.getDrawable()).isNotNull();
         assertThat(appTitle.getText()).isEqualTo(TITLE);
         assertThat(appSummary.getText()).isEqualTo(SUMMARY);
@@ -146,8 +153,8 @@
 
     @Test
     public void removeAppEntity_removeIndex0_shouldNotShowAppView1() {
-        mController.setAppEntity(0, mIcon, TITLE, SUMMARY)
-                .setAppEntity(1, mIcon, TITLE, SUMMARY).apply();
+        mController.setAppEntity(0, mAppEntityInfo)
+                .setAppEntity(1, mAppEntityInfo).apply();
         final View app1View = mAppEntitiesHeaderView.findViewById(R.id.app1_view);
         final View app2View = mAppEntitiesHeaderView.findViewById(R.id.app2_view);
 
@@ -162,9 +169,9 @@
 
     @Test
     public void clearAllAppEntities_shouldNotShowAllAppViews() {
-        mController.setAppEntity(0, mIcon, TITLE, SUMMARY)
-                .setAppEntity(1, mIcon, TITLE, SUMMARY)
-                .setAppEntity(2, mIcon, TITLE, SUMMARY).apply();
+        mController.setAppEntity(0, mAppEntityInfo)
+                .setAppEntity(1, mAppEntityInfo)
+                .setAppEntity(2, mAppEntityInfo).apply();
         final View app1View = mAppEntitiesHeaderView.findViewById(R.id.app1_view);
         final View app2View = mAppEntitiesHeaderView.findViewById(R.id.app2_view);
         final View app3View = mAppEntitiesHeaderView.findViewById(R.id.app3_view);
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 5153f9e..5105ff4 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -84,6 +84,8 @@
 import com.android.server.LocalServices;
 import com.android.server.SystemConfig;
 
+import com.google.android.collect.Sets;
+
 import java.io.File;
 import java.io.FileDescriptor;
 import java.io.FileNotFoundException;
@@ -957,12 +959,12 @@
         UserManagerInternal userManager = LocalServices.getService(UserManagerInternal.class);
         userManager.addUserRestrictionsListener((int userId, Bundle newRestrictions,
                 Bundle prevRestrictions) -> {
+            Set<String> changedRestrictions = getRestrictionDiff(prevRestrictions, newRestrictions);
             // We are changing the settings affected by restrictions to their current
             // value with a forced update to ensure that all cross profile dependencies
             // are taken into account. Also make sure the settings update to.. the same
             // value passes the security checks, so clear binder calling id.
-            if (newRestrictions.getBoolean(UserManager.DISALLOW_SHARE_LOCATION)
-                    != prevRestrictions.getBoolean(UserManager.DISALLOW_SHARE_LOCATION)) {
+            if (changedRestrictions.contains(UserManager.DISALLOW_SHARE_LOCATION)) {
                 final long identity = Binder.clearCallingIdentity();
                 try {
                     synchronized (mLock) {
@@ -976,11 +978,8 @@
                     Binder.restoreCallingIdentity(identity);
                 }
             }
-            if (newRestrictions.getBoolean(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES)
-                    != prevRestrictions.getBoolean(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES) ||
-                    newRestrictions.getBoolean(
-                            UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY)
-                    != prevRestrictions.getBoolean(
+            if (changedRestrictions.contains(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES)
+                    || changedRestrictions.contains(
                             UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY)) {
                 final long identity = Binder.clearCallingIdentity();
                 try {
@@ -994,8 +993,7 @@
                     Binder.restoreCallingIdentity(identity);
                 }
             }
-            if (newRestrictions.getBoolean(UserManager.DISALLOW_DEBUGGING_FEATURES)
-                    != prevRestrictions.getBoolean(UserManager.DISALLOW_DEBUGGING_FEATURES)) {
+            if (changedRestrictions.contains(UserManager.DISALLOW_DEBUGGING_FEATURES)) {
                 final long identity = Binder.clearCallingIdentity();
                 try {
                     synchronized (mLock) {
@@ -1008,8 +1006,7 @@
                     Binder.restoreCallingIdentity(identity);
                 }
             }
-            if (newRestrictions.getBoolean(UserManager.ENSURE_VERIFY_APPS)
-                    != prevRestrictions.getBoolean(UserManager.ENSURE_VERIFY_APPS)) {
+            if (changedRestrictions.contains(UserManager.ENSURE_VERIFY_APPS)) {
                 final long identity = Binder.clearCallingIdentity();
                 try {
                     synchronized (mLock) {
@@ -1028,8 +1025,7 @@
                     Binder.restoreCallingIdentity(identity);
                 }
             }
-            if (newRestrictions.getBoolean(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
-                    != prevRestrictions.getBoolean(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
+            if (changedRestrictions.contains(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
                 final long identity = Binder.clearCallingIdentity();
                 try {
                     synchronized (mLock) {
@@ -1046,6 +1042,20 @@
         });
     }
 
+    private static Set<String> getRestrictionDiff(Bundle prevRestrictions, Bundle newRestrictions) {
+        Set<String> restrictionNames = Sets.newArraySet();
+        restrictionNames.addAll(prevRestrictions.keySet());
+        restrictionNames.addAll(newRestrictions.keySet());
+        Set<String> diff = Sets.newArraySet();
+        for (String restrictionName : restrictionNames) {
+            if (prevRestrictions.getBoolean(restrictionName) != newRestrictions.getBoolean(
+                    restrictionName)) {
+                diff.add(restrictionName);
+            }
+        }
+        return diff;
+    }
+
     private Setting getConfigSetting(String name) {
         if (DEBUG) {
             Slog.v(LOG_TAG, "getConfigSetting(" + name + ")");
diff --git a/packages/SystemUI/res-keyguard/values/dimens.xml b/packages/SystemUI/res-keyguard/values/dimens.xml
index 9245c30..e2ba23e 100644
--- a/packages/SystemUI/res-keyguard/values/dimens.xml
+++ b/packages/SystemUI/res-keyguard/values/dimens.xml
@@ -47,8 +47,6 @@
     <dimen name="bottom_text_spacing_digital">0dp</dimen>
     <!-- Slice subtitle -->
     <dimen name="widget_label_font_size">16dp</dimen>
-    <!-- Slice offset when pulsing -->
-    <dimen name="widget_pulsing_bottom_padding">48dp</dimen>
     <!-- Clock without header -->
     <dimen name="widget_big_font_size">64dp</dimen>
     <!-- Clock with header -->
diff --git a/packages/SystemUI/res/layout/dock_info_overlay.xml b/packages/SystemUI/res/layout/dock_info_overlay.xml
new file mode 100644
index 0000000..430143c
--- /dev/null
+++ b/packages/SystemUI/res/layout/dock_info_overlay.xml
@@ -0,0 +1,19 @@
+<?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.
+  -->
+
+<!-- empty stub -->
+<merge />
diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml
index 75c0ec3..7d403b2 100644
--- a/packages/SystemUI/res/layout/status_bar_expanded.xml
+++ b/packages/SystemUI/res/layout/status_bar_expanded.xml
@@ -43,6 +43,8 @@
         android:clipToPadding="false"
         android:clipChildren="false">
 
+        <include layout="@layout/dock_info_overlay" />
+
         <FrameLayout
             android:id="@+id/qs_frame"
             android:layout="@layout/qs_panel"
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 5a00b45..ab0bbe1 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -66,9 +66,7 @@
     <item name="status_bar_icon_scale_factor" format="float" type="dimen">1.0</item>
 
     <dimen name="group_overflow_number_size">@*android:dimen/notification_text_size</dimen>
-    <dimen name="group_overflow_number_size_dark">16sp</dimen>
     <dimen name="group_overflow_number_padding">@*android:dimen/notification_content_margin_end</dimen>
-    <dimen name="group_overflow_number_extra_padding_dark">@*android:dimen/notification_extra_margin_ambient</dimen>
 
     <!-- max height of a notification such that the content can still fade out when closing -->
     <dimen name="max_notification_fadeout_height">100dp</dimen>
@@ -94,9 +92,6 @@
     <!-- Height of a large notification in the status bar -->
     <dimen name="notification_max_height">294dp</dimen>
 
-    <!-- Height of an ambient notification on ambient display -->
-    <dimen name="notification_ambient_height">400dp</dimen>
-
     <!-- Height of a heads up notification in the status bar for legacy custom views -->
     <dimen name="notification_max_heads_up_height_legacy">128dp</dimen>
 
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index 22a0b36..fa675b7 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -64,48 +64,16 @@
         <item name="hybridNotificationTextStyle">@style/hybrid_notification_text</item>
     </style>
 
-    <style name="HybridNotification.Ambient">
-        <item name="hybridNotificationStyle">@style/hybrid_notification_ambient</item>
-        <item name="hybridNotificationTitleStyle">@style/hybrid_notification_title_ambient</item>
-        <item name="hybridNotificationTextStyle">@style/hybrid_notification_text_ambient</item>
-    </style>
-
-    <style name="hybrid_notification_ambient">
-        <item name="android:paddingStart">@*android:dimen/notification_extra_margin_ambient</item>
-        <item name="android:paddingEnd">@*android:dimen/notification_extra_margin_ambient</item>
-        <item name="android:orientation">vertical</item>
-    </style>
-
     <style name="hybrid_notification">
         <item name="android:paddingStart">@*android:dimen/notification_content_margin_start</item>
         <item name="android:paddingEnd">12dp</item>
     </style>
 
-    <style name="hybrid_notification_title_ambient">
-        <item name="android:layout_marginTop">@*android:dimen/notification_header_margin_top_ambient</item>
-        <item name="android:paddingStart">@*android:dimen/notification_content_margin_start</item>
-        <item name="android:paddingEnd">@*android:dimen/notification_content_margin_end</item>
-        <item name="android:textAppearance">@*android:style/Notification.Header.Ambient</item>
-        <item name="android:layout_gravity">top|center_horizontal</item>
-        <item name="android:textSize">@*android:dimen/notification_ambient_title_text_size</item>
-        <item name="android:textColor">#ffffffff</item>
-    </style>
-
     <style name="hybrid_notification_title">
         <item name="android:paddingEnd">4dp</item>
         <item name="android:textAppearance">@*android:style/TextAppearance.Material.Notification.Title</item>
     </style>
 
-    <style name="hybrid_notification_text_ambient">
-        <item name="android:paddingStart">@*android:dimen/notification_content_margin_start</item>
-        <item name="android:paddingEnd">@*android:dimen/notification_content_margin_end</item>
-        <item name="android:textSize">@*android:dimen/notification_ambient_text_size</item>
-        <item name="android:textColor">#eeffffff</item>
-        <item name="android:gravity">top|center_horizontal</item>
-        <item name="android:ellipsize">end</item>
-        <item name="android:maxLines">3</item>
-    </style>
-
     <style name="hybrid_notification_text"
            parent="@*android:style/Widget.Material.Notification.Text">
         <item name="android:paddingEnd">4dp</item>
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordView.java
index 3296c10..64c5b17 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordView.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.graphics.Rect;
+import android.os.UserHandle;
 import android.text.Editable;
 import android.text.InputType;
 import android.text.TextUtils;
@@ -79,6 +80,7 @@
 
     @Override
     protected void resetState() {
+        mPasswordEntry.setTextOperationUser(UserHandle.of(KeyguardUpdateMonitor.getCurrentUser()));
         mSecurityMessageDisplay.setMessage("");
         final boolean wasDisabled = mPasswordEntry.isEnabled();
         // Don't set enabled password entry & showSoftInput when PasswordEntry is invisible or in
@@ -174,6 +176,7 @@
                 Context.INPUT_METHOD_SERVICE);
 
         mPasswordEntry = findViewById(getPasswordTextViewId());
+        mPasswordEntry.setTextOperationUser(UserHandle.of(KeyguardUpdateMonitor.getCurrentUser()));
         mPasswordEntryDisabler = new TextViewInputDisabler(mPasswordEntry);
         mPasswordEntry.setKeyListener(TextKeyListener.getInstance());
         mPasswordEntry.setInputType(InputType.TYPE_CLASS_TEXT
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
index 669e6ff..bac7844 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
@@ -90,7 +90,7 @@
      */
     private Runnable mContentChangeListener;
     private Slice mSlice;
-    private boolean mPulsing;
+    private boolean mHasHeader;
 
     public KeyguardSliceView(Context context) {
         this(context, null, 0);
@@ -150,10 +150,18 @@
         Dependency.get(ConfigurationController.class).removeCallback(this);
     }
 
+    /**
+     * Returns whether the current visible slice has a title/header.
+     */
+    public boolean hasHeader() {
+        return mHasHeader;
+    }
+
     private void showSlice() {
         Trace.beginSection("KeyguardSliceView#showSlice");
-        if (mPulsing || mSlice == null) {
+        if (mSlice == null) {
             mRow.setVisibility(GONE);
+            mHasHeader = false;
             if (mContentChangeListener != null) {
                 mContentChangeListener.run();
             }
@@ -162,7 +170,7 @@
 
         ListContent lc = new ListContent(getContext(), mSlice);
         SliceContent headerContent = lc.getHeader();
-        boolean hasHeader = headerContent != null
+        mHasHeader = headerContent != null
                 && !headerContent.getSliceItem().hasHint(HINT_LIST_ITEM);
         List<SliceContent> subItems = new ArrayList<>();
         for (int i = 0; i < lc.getRowItems().size(); i++) {
@@ -177,7 +185,7 @@
         mClickActions.clear();
         final int subItemsCount = subItems.size();
         final int blendedColor = getTextColor();
-        final int startIndex = hasHeader ? 1 : 0; // First item is header; skip it
+        final int startIndex = mHasHeader ? 1 : 0; // First item is header; skip it
         mRow.setVisibility(subItemsCount > 0 ? VISIBLE : GONE);
         for (int i = startIndex; i < subItemsCount; i++) {
             RowContent rc = (RowContent) subItems.get(i);
@@ -189,7 +197,7 @@
                 button = new KeyguardSliceButton(mContext);
                 button.setTextColor(blendedColor);
                 button.setTag(itemTag);
-                final int viewIndex = i - (hasHeader ? 1 : 0);
+                final int viewIndex = i - (mHasHeader ? 1 : 0);
                 mRow.addView(button, viewIndex);
             }
 
@@ -234,18 +242,6 @@
         Trace.endSection();
     }
 
-    public void setPulsing(boolean pulsing, boolean animate) {
-        mPulsing = pulsing;
-        LayoutTransition transition = getLayoutTransition();
-        if (!animate) {
-            setLayoutTransition(null);
-        }
-        showSlice();
-        if (!animate) {
-            setLayoutTransition(transition);
-        }
-    }
-
     public void setDarkAmount(float darkAmount) {
         mDarkAmount = darkAmount;
         mRow.setDarkAmount(darkAmount);
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
index 7ae4c41..bb549ad 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
@@ -72,7 +72,6 @@
 
     private ArraySet<View> mVisibleInDoze;
     private boolean mPulsing;
-    private boolean mWasPulsing;
     private float mDarkAmount = 0;
     private int mTextColor;
     private int mLastLayoutHeight;
@@ -210,7 +209,7 @@
     private void onSliceContentChanged() {
         LinearLayout.LayoutParams layoutParams =
                 (LinearLayout.LayoutParams) mClockView.getLayoutParams();
-        layoutParams.bottomMargin = mPulsing ? mSmallClockPadding : 0;
+        layoutParams.bottomMargin = mKeyguardSlice.hasHeader() ? mSmallClockPadding : 0;
         mClockView.setLayoutParams(layoutParams);
     }
 
@@ -220,16 +219,16 @@
     @Override
     public void onLayoutChange(View view, int left, int top, int right, int bottom,
             int oldLeft, int oldTop, int oldRight, int oldBottom) {
-        int heightOffset = mPulsing || mWasPulsing ? 0 : getHeight() - mLastLayoutHeight;
+        boolean smallClock = mKeyguardSlice.hasHeader();
+        int heightOffset = smallClock ? 0 : getHeight() - mLastLayoutHeight;
         long duration = KeyguardSliceView.DEFAULT_ANIM_DURATION;
-        long delay = mPulsing || mWasPulsing ? 0 : duration / 4;
-        mWasPulsing = false;
+        long delay = smallClock ? 0 : duration / 4;
 
         boolean shouldAnimate = mKeyguardSlice.getLayoutTransition() != null
                 && mKeyguardSlice.getLayoutTransition().isRunning();
         if (view == mClockView) {
-            float clockScale = mPulsing ? mSmallClockScale : 1;
-            Paint.Style style = mPulsing ? Paint.Style.FILL_AND_STROKE : Paint.Style.FILL;
+            float clockScale = smallClock ? mSmallClockScale : 1;
+            Paint.Style style = smallClock ? Paint.Style.FILL_AND_STROKE : Paint.Style.FILL;
             mClockView.animate().cancel();
             if (shouldAnimate) {
                 mClockView.setY(oldTop + heightOffset);
@@ -434,15 +433,11 @@
         }
     }
 
-    public void setPulsing(boolean pulsing, boolean animate) {
+    public void setPulsing(boolean pulsing) {
         if (mPulsing == pulsing) {
             return;
         }
-        if (mPulsing) {
-            mWasPulsing = true;
-        }
         mPulsing = pulsing;
-        mKeyguardSlice.setPulsing(pulsing, animate);
         updateDozeVisibleViews();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
index bd9ca1a..9ef9c94 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
@@ -65,12 +65,12 @@
     private static final String TAG = "NotificationShelf";
     private static final long SHELF_IN_TRANSLATION_DURATION = 200;
 
-    private boolean mDark;
     private NotificationIconContainer mShelfIcons;
     private int[] mTmp = new int[2];
     private boolean mHideBackground;
     private int mIconAppearTopPadding;
     private int mShelfAppearTranslation;
+    private float mDarkShelfPadding;
     private int mStatusBarHeight;
     private int mStatusBarPaddingStart;
     private AmbientState mAmbientState;
@@ -140,6 +140,7 @@
         mStatusBarPaddingStart = res.getDimensionPixelOffset(R.dimen.status_bar_padding_start);
         mPaddingBetweenElements = res.getDimensionPixelSize(R.dimen.notification_divider_height);
         mShelfAppearTranslation = res.getDimensionPixelSize(R.dimen.shelf_appear_translation);
+        mDarkShelfPadding = res.getDimensionPixelSize(R.dimen.widget_bottom_separator_padding);
 
         ViewGroup.LayoutParams layoutParams = getLayoutParams();
         layoutParams.height = res.getDimensionPixelOffset(R.dimen.notification_shelf_height);
@@ -165,11 +166,11 @@
 
     @Override
     public void setDark(boolean dark, boolean fade, long delay) {
-        super.setDark(dark, fade, delay);
         if (mDark == dark) return;
-        mDark = dark;
+        super.setDark(dark, fade, delay);
         mShelfIcons.setDark(dark, fade, delay);
         updateInteractiveness();
+        updateOutline();
     }
 
     /**
@@ -218,10 +219,9 @@
 
             float awakenTranslation = Math.max(Math.min(viewEnd, maxShelfEnd) - viewState.height,
                     getFullyClosedTranslation());
-            float darkTranslation = mAmbientState.getDarkTopPadding();
             float yRatio = mAmbientState.hasPulsingNotifications() ?
                     0 : mAmbientState.getDarkAmount();
-            viewState.yTranslation = MathUtils.lerp(awakenTranslation, darkTranslation, yRatio);
+            viewState.yTranslation = awakenTranslation + mDarkShelfPadding * yRatio;
             viewState.zTranslation = ambientState.getBaseZHeight();
             // For the small display size, it's not enough to make the icon not covered by
             // the top cutout so the denominator add the height of cutout.
@@ -763,18 +763,14 @@
         }
     }
 
-    public boolean hidesBackground() {
-        return mHideBackground;
-    }
-
     @Override
     protected boolean needsOutline() {
-        return !mHideBackground && super.needsOutline();
+        return !mHideBackground && !mDark && super.needsOutline();
     }
 
     @Override
     protected boolean shouldHideBackground() {
-        return super.shouldHideBackground() || mHideBackground;
+        return super.shouldHideBackground() || mHideBackground || mDark;
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
index 8b0a682..c34d567 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
@@ -105,7 +105,7 @@
     private final DoubleTapHelper mDoubleTapHelper;
 
     private boolean mDimmed;
-    private boolean mDark;
+    protected boolean mDark;
 
     protected int mBgTint = NO_COLOR;
     private float mBgAlpha = 1f;
@@ -140,7 +140,6 @@
     private FalsingManager mFalsingManager;
 
     private float mNormalBackgroundVisibilityAmount;
-    private ValueAnimator mFadeInFromDarkAnimator;
     private float mDimmedBackgroundFadeInAmount = -1;
     private ValueAnimator.AnimatorUpdateListener mBackgroundVisibilityUpdater
             = new ValueAnimator.AnimatorUpdateListener() {
@@ -150,22 +149,6 @@
             mDimmedBackgroundFadeInAmount = mBackgroundDimmed.getAlpha();
         }
     };
-    private AnimatorListenerAdapter mFadeInEndListener = new AnimatorListenerAdapter() {
-        @Override
-        public void onAnimationEnd(Animator animation) {
-            super.onAnimationEnd(animation);
-            mFadeInFromDarkAnimator = null;
-            mDimmedBackgroundFadeInAmount = -1;
-            updateBackground();
-        }
-    };
-    private ValueAnimator.AnimatorUpdateListener mUpdateOutlineListener
-            = new ValueAnimator.AnimatorUpdateListener() {
-        @Override
-        public void onAnimationUpdate(ValueAnimator animation) {
-            updateOutlineAlpha();
-        }
-    };
     private FakeShadowView mFakeShadow;
     private int mCurrentBackgroundTint;
     private int mTargetTint;
@@ -465,22 +448,11 @@
         mDark = dark;
         updateBackground();
         updateBackgroundTint(false);
-        if (!dark && fade && !shouldHideBackground()) {
-            fadeInFromDark(delay);
-        }
-        updateOutlineAlpha();
     }
 
     private void updateOutlineAlpha() {
-        if (mDark) {
-            setOutlineAlpha(0f);
-            return;
-        }
         float alpha = NotificationStackScrollLayout.BACKGROUND_ALPHA_DIMMED;
         alpha = (alpha + (1.0f - alpha) * mNormalBackgroundVisibilityAmount);
-        if (mFadeInFromDarkAnimator != null) {
-            alpha *= mFadeInFromDarkAnimator.getAnimatedFraction();
-        }
         setOutlineAlpha(alpha);
     }
 
@@ -638,36 +610,6 @@
     }
 
     /**
-     * Fades in the background when exiting dark mode.
-     */
-    private void fadeInFromDark(long delay) {
-        final View background = mDimmed ? mBackgroundDimmed : mBackgroundNormal;
-        background.setAlpha(0f);
-        mBackgroundVisibilityUpdater.onAnimationUpdate(null);
-        background.animate()
-                .alpha(1f)
-                .setDuration(DARK_ANIMATION_LENGTH)
-                .setStartDelay(delay)
-                .setInterpolator(Interpolators.ALPHA_IN)
-                .setListener(new AnimatorListenerAdapter() {
-                    @Override
-                    public void onAnimationCancel(Animator animation) {
-                        // Jump state if we are cancelled
-                        background.setAlpha(1f);
-                    }
-                })
-                .setUpdateListener(mBackgroundVisibilityUpdater)
-                .start();
-        mFadeInFromDarkAnimator = TimeAnimator.ofFloat(0.0f, 1.0f);
-        mFadeInFromDarkAnimator.setDuration(DARK_ANIMATION_LENGTH);
-        mFadeInFromDarkAnimator.setStartDelay(delay);
-        mFadeInFromDarkAnimator.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN);
-        mFadeInFromDarkAnimator.addListener(mFadeInEndListener);
-        mFadeInFromDarkAnimator.addUpdateListener(mUpdateOutlineListener);
-        mFadeInFromDarkAnimator.start();
-    }
-
-    /**
      * Fades the background when the dimmed state changes.
      */
     private void fadeDimmedBackground() {
@@ -708,9 +650,7 @@
             public void onAnimationEnd(Animator animation) {
                 updateBackground();
                 mBackgroundAnimator = null;
-                if (mFadeInFromDarkAnimator == null) {
-                    mDimmedBackgroundFadeInAmount = -1;
-                }
+                mDimmedBackgroundFadeInAmount = -1;
             }
         });
         mBackgroundAnimator.addUpdateListener(mBackgroundVisibilityUpdater);
@@ -736,7 +676,7 @@
             mBackgroundNormal.setVisibility(mActivated ? VISIBLE : INVISIBLE);
         } else if (mDimmed) {
             // When groups are animating to the expanded state from the lockscreen, show the
-            // normal background instead of the dimmed background
+            // normal background instead of the dimmed background.
             final boolean dontShowDimmed = isGroupExpansionChanging() && isChildInGroup();
             mBackgroundDimmed.setVisibility(dontShowDimmed ? View.INVISIBLE : View.VISIBLE);
             mBackgroundNormal.setVisibility((mActivated || dontShowDimmed)
@@ -760,7 +700,7 @@
     }
 
     protected boolean shouldHideBackground() {
-        return mDark;
+        return false;
     }
 
     private void cancelFadeAnimations() {
@@ -1023,14 +963,11 @@
 
     /**
      * @param withTint should a possible tint be factored in?
-     * @param withOverRide should the value be interpolated with {@link #mOverrideTint}
+     * @param withOverride should the value be interpolated with {@link #mOverrideTint}
      * @return the calculated background color
      */
-    private int calculateBgColor(boolean withTint, boolean withOverRide) {
-        if (withTint && mDark) {
-            return getContext().getColor(R.color.notification_material_background_dark_color);
-        }
-        if (withOverRide && mOverrideTint != NO_COLOR) {
+    private int calculateBgColor(boolean withTint, boolean withOverride) {
+        if (withOverride && mOverrideTint != NO_COLOR) {
             int defaultTint = calculateBgColor(withTint, false);
             return NotificationUtils.interpolateColors(defaultTint, mOverrideTint, mOverrideAmount);
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
index df0189f..296c061 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
@@ -132,7 +132,6 @@
     }
 
     private LayoutListener mLayoutListener;
-    private boolean mDark;
     private boolean mLowPriorityStateUpdated;
     private final NotificationInflater mNotificationInflater;
     private int mIconTransformContentShift;
@@ -146,7 +145,6 @@
     private int mNotificationMinHeight;
     private int mNotificationMinHeightLarge;
     private int mNotificationMaxHeight;
-    private int mNotificationAmbientHeight;
     private int mIncreasedPaddingBetweenElements;
     private int mNotificationLaunchHeight;
     private boolean mMustStayOnScreen;
@@ -677,8 +675,7 @@
         if (headsUpWrapper != null) {
             headsUpHeight = Math.max(headsUpHeight, headsUpWrapper.getMinLayoutHeight());
         }
-        layout.setHeights(minHeight, headsUpHeight, mNotificationMaxHeight,
-                mNotificationAmbientHeight);
+        layout.setHeights(minHeight, headsUpHeight, mNotificationMaxHeight, headsUpHeight);
     }
 
     public StatusBarNotification getStatusBarNotification() {
@@ -1647,8 +1644,6 @@
                 R.dimen.notification_min_height_increased);
         mNotificationMaxHeight = NotificationUtils.getFontScaledHeight(mContext,
                 R.dimen.notification_max_height);
-        mNotificationAmbientHeight = NotificationUtils.getFontScaledHeight(mContext,
-                R.dimen.notification_ambient_height);
         mMaxHeadsUpHeightBeforeN = NotificationUtils.getFontScaledHeight(mContext,
                 R.dimen.notification_max_heads_up_height_legacy);
         mMaxHeadsUpHeightBeforeP = NotificationUtils.getFontScaledHeight(mContext,
@@ -2008,8 +2003,10 @@
 
     @Override
     public void setDark(boolean dark, boolean fade, long delay) {
+        if (mDark == dark) {
+            return;
+        }
         super.setDark(dark, fade, delay);
-        mDark = dark;
         if (!mIsAmbientPulsing) {
             // Only fade the showing view of the pulsing notification.
             fade = false;
@@ -2018,9 +2015,6 @@
         if (showing != null) {
             showing.setDark(dark, fade, delay);
         }
-        if (mIsSummaryWithChildren) {
-            mChildrenContainer.setDark(dark, fade, delay);
-        }
         updateShelfIconColor();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridGroupManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridGroupManager.java
index 33badaf..90ff4a7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridGroupManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/HybridGroupManager.java
@@ -39,14 +39,10 @@
     private final NotificationDozeHelper mDozer;
     private final ViewGroup mParent;
 
-    private float mOverflowNumberSizeDark;
-    private int mOverflowNumberPaddingDark;
     private float mOverflowNumberSize;
     private int mOverflowNumberPadding;
 
     private int mOverflowNumberColor;
-    private int mOverflowNumberColorDark;
-    private float mDarkAmount = 0f;
 
     public HybridGroupManager(Context ctx, ViewGroup parent) {
         mContext = ctx;
@@ -59,12 +55,8 @@
         Resources res = mContext.getResources();
         mOverflowNumberSize = res.getDimensionPixelSize(
                 R.dimen.group_overflow_number_size);
-        mOverflowNumberSizeDark = res.getDimensionPixelSize(
-                R.dimen.group_overflow_number_size_dark);
         mOverflowNumberPadding = res.getDimensionPixelSize(
                 R.dimen.group_overflow_number_padding);
-        mOverflowNumberPaddingDark = mOverflowNumberPadding + res.getDimensionPixelSize(
-                R.dimen.group_overflow_number_extra_padding_dark);
     }
 
     private HybridNotificationView inflateHybridViewWithStyle(int style) {
@@ -86,13 +78,11 @@
     }
 
     private void updateOverFlowNumberColor(TextView numberView) {
-        numberView.setTextColor(NotificationUtils.interpolateColors(
-                mOverflowNumberColor, mOverflowNumberColorDark, mDarkAmount));
+        numberView.setTextColor(mOverflowNumberColor);
     }
 
-    public void setOverflowNumberColor(TextView numberView, int colorRegular, int colorDark) {
+    public void setOverflowNumberColor(TextView numberView, int colorRegular) {
         mOverflowNumberColor = colorRegular;
-        mOverflowNumberColorDark = colorDark;
         if (numberView != null) {
             updateOverFlowNumberColor(numberView);
         }
@@ -107,7 +97,7 @@
     public HybridNotificationView bindAmbientFromNotification(HybridNotificationView reusableView,
             Notification notification) {
         return bindFromNotificationWithStyle(reusableView, notification,
-                R.style.HybridNotification_Ambient);
+                R.style.HybridNotification);
     }
 
     private HybridNotificationView bindFromNotificationWithStyle(
@@ -150,6 +140,11 @@
                 R.plurals.notification_group_overflow_description, number), number);
 
         reusableView.setContentDescription(contentDescription);
+        reusableView.setTextSize(TypedValue.COMPLEX_UNIT_PX, mOverflowNumberSize);
+        reusableView.setPaddingRelative(reusableView.getPaddingStart(),
+                reusableView.getPaddingTop(), mOverflowNumberPadding,
+                reusableView.getPaddingBottom());
+        updateOverFlowNumberColor(reusableView);
         return reusableView;
     }
 
@@ -163,16 +158,4 @@
         }
         return titleView;
     }
-
-    public void setOverflowNumberDark(TextView view, boolean dark, boolean fade, long delay) {
-        mDozer.setIntensityDark((f)->{
-            mDarkAmount = f;
-            updateOverFlowNumberColor(view);
-        }, dark, fade, delay, view);
-        view.setTextSize(TypedValue.COMPLEX_UNIT_PX,
-                dark ? mOverflowNumberSizeDark : mOverflowNumberSize);
-        int paddingEnd = dark ? mOverflowNumberPaddingDark : mOverflowNumberPadding;
-        view.setPaddingRelative(view.getPaddingStart(), view.getPaddingTop(), paddingEnd,
-                view.getPaddingBottom());
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java
index cbec37e..1b5013d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java
@@ -75,7 +75,6 @@
     private int mIntrinsicPadding;
     private int mExpandAnimationTopChange;
     private ExpandableNotificationRow mExpandingNotification;
-    private int mDarkTopPadding;
     private float mDarkAmount;
     private boolean mAppearing;
 
@@ -351,7 +350,8 @@
     }
 
     public boolean hasPulsingNotifications() {
-        return mPulsing;
+        return mPulsing && mAmbientPulseManager != null
+                && mAmbientPulseManager.hasNotifications();
     }
 
     public void setPulsing(boolean hasPulsing) {
@@ -458,14 +458,6 @@
         return mDarkAmount != 0;
     }
 
-    public void setDarkTopPadding(int darkTopPadding) {
-        mDarkTopPadding = darkTopPadding;
-    }
-
-    public int getDarkTopPadding() {
-        return mDarkTopPadding;
-    }
-
     public void setAppearing(boolean appearing) {
         mAppearing = appearing;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
index 5118036..8ffada4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java
@@ -316,7 +316,7 @@
         StatusBarNotification notification = mContainingNotification.getStatusBarNotification();
         final Notification.Builder builder = Notification.Builder.recoverBuilder(getContext(),
                 notification.getNotification());
-        RemoteViews header = builder.makeNotificationHeader(false /* ambient */);
+        RemoteViews header = builder.makeNotificationHeader();
         if (mNotificationHeader == null) {
             mNotificationHeader = (NotificationHeaderView) header.apply(getContext(), this);
             final View expandButton = mNotificationHeader.findViewById(
@@ -344,7 +344,7 @@
             builder = Notification.Builder.recoverBuilder(getContext(),
                     notification.getNotification());
         }
-        header = builder.makeNotificationHeader(true /* ambient */);
+        header = builder.makeNotificationHeader();
         if (mNotificationHeaderAmbient == null) {
             mNotificationHeaderAmbient = (ViewGroup) header.apply(getContext(), this);
             mNotificationHeaderWrapperAmbient = NotificationViewWrapper.wrap(getContext(),
@@ -1171,12 +1171,6 @@
         return mIsLowPriority && !mContainingNotification.isExpanded();
     }
 
-    public void setDark(boolean dark, boolean fade, long delay) {
-        if (mOverflowNumber != null) {
-            mHybridGroupManager.setOverflowNumberDark(mOverflowNumber, dark, fade, delay);
-        }
-    }
-
     public void reInflateViews(OnClickListener listener, StatusBarNotification notification) {
         if (mNotificationHeader != null) {
             removeView(mNotificationHeader);
@@ -1227,8 +1221,7 @@
 
     public void onNotificationUpdated() {
         mHybridGroupManager.setOverflowNumberColor(mOverflowNumber,
-                mContainingNotification.getNotificationColor(),
-                mContainingNotification.getNotificationColorAmbient());
+                mContainingNotification.getNotificationColor());
     }
 
     public int getPositionInLinearLayout(View childInGroup) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java
index 9418601..c5ab9f6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManager.java
@@ -18,6 +18,7 @@
 
 import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.NUM_SECTIONS;
 
+import com.android.systemui.statusbar.AmbientPulseManager;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
@@ -26,26 +27,34 @@
 
 import java.util.HashSet;
 
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
 /**
  * A class that manages the roundness for notification views
  */
-class NotificationRoundnessManager implements OnHeadsUpChangedListener {
+@Singleton
+class NotificationRoundnessManager implements OnHeadsUpChangedListener,
+        AmbientPulseManager.OnAmbientChangedListener {
 
+    private final ActivatableNotificationView[] mFirstInSectionViews;
+    private final ActivatableNotificationView[] mLastInSectionViews;
+    private final ActivatableNotificationView[] mTmpFirstInSectionViews;
+    private final ActivatableNotificationView[] mTmpLastInSectionViews;
     private boolean mExpanded;
-    private ActivatableNotificationView[] mFirstInSectionViews;
-    private ActivatableNotificationView[] mLastInSectionViews;
-    private ActivatableNotificationView[] mTmpFirstInSectionViews;
-    private ActivatableNotificationView[] mTmpLastInSectionViews;
     private HashSet<ExpandableView> mAnimatedChildren;
     private Runnable mRoundingChangedCallback;
     private ExpandableNotificationRow mTrackedHeadsUp;
+    private ActivatableNotificationView mTrackedAmbient;
     private float mAppearFraction;
 
-    NotificationRoundnessManager() {
+    @Inject
+    NotificationRoundnessManager(AmbientPulseManager ambientPulseManager) {
         mFirstInSectionViews = new ActivatableNotificationView[NUM_SECTIONS];
         mLastInSectionViews = new ActivatableNotificationView[NUM_SECTIONS];
         mTmpFirstInSectionViews = new ActivatableNotificationView[NUM_SECTIONS];
         mTmpLastInSectionViews = new ActivatableNotificationView[NUM_SECTIONS];
+        ambientPulseManager.addListener(this);
     }
 
     @Override
@@ -63,6 +72,17 @@
         updateView(row, false /* animate */);
     }
 
+    @Override
+    public void onAmbientStateChanged(NotificationEntry entry, boolean isPulsing) {
+        ActivatableNotificationView row = entry.getRow();
+        if (isPulsing) {
+            mTrackedAmbient = row;
+        } else if (mTrackedAmbient == row) {
+            mTrackedAmbient = null;
+        }
+        updateView(row, false /* animate */);
+    }
+
     private void updateView(ActivatableNotificationView view, boolean animate) {
         boolean changed = updateViewWithoutCallback(view, animate);
         if (changed) {
@@ -125,6 +145,9 @@
             // rounded.
             return 1.0f;
         }
+        if (view == mTrackedAmbient) {
+            return 1.0f;
+        }
         return 0.0f;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 2d1f989..d066567 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -201,12 +201,7 @@
     private int mPaddingBetweenElements;
     private int mIncreasedPaddingBetweenElements;
     private int mMaxTopPadding;
-    private int mRegularTopPadding;
-    private int mDarkTopPadding;
-    // Current padding, will be either mRegularTopPadding or mDarkTopPadding
     private int mTopPadding;
-    // Distance between AOD separator and shelf
-    private int mDarkShelfPadding;
     private int mBottomMargin;
     private int mBottomInset = 0;
     private float mQsExpansionFraction;
@@ -318,7 +313,7 @@
     private HashSet<Pair<ExpandableNotificationRow, Boolean>> mHeadsUpChangeAnimations
             = new HashSet<>();
     private HeadsUpManagerPhone mHeadsUpManager;
-    private NotificationRoundnessManager mRoundnessManager = new NotificationRoundnessManager();
+    private final NotificationRoundnessManager mRoundnessManager;
     private boolean mTrackingHeadsUp;
     private ScrimController mScrimController;
     private boolean mForceNoOverlappingRendering;
@@ -441,7 +436,8 @@
             Dependency.get(NotificationEntryManager.class);
     private final IStatusBarService mBarService = IStatusBarService.Stub.asInterface(
             ServiceManager.getService(Context.STATUS_BAR_SERVICE));
-    private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class);
+    @VisibleForTesting
+    protected final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class);
     private final NotificationRemoteInputManager mRemoteInputManager =
             Dependency.get(NotificationRemoteInputManager.class);
     private final SysuiColorExtractor mColorExtractor = Dependency.get(SysuiColorExtractor.class);
@@ -468,7 +464,8 @@
     public NotificationStackScrollLayout(
             @Named(VIEW_CONTEXT) Context context,
             AttributeSet attrs,
-            @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) boolean allowLongPress) {
+            @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) boolean allowLongPress,
+            NotificationRoundnessManager notificationRoundnessManager) {
         super(context, attrs, 0, 0);
         Resources res = getResources();
 
@@ -479,6 +476,7 @@
         }
 
         mAmbientState = new AmbientState(context);
+        mRoundnessManager = notificationRoundnessManager;
         mBgColor = context.getColor(R.color.notification_shade_background_color);
         int minHeight = res.getDimensionPixelSize(R.dimen.notification_min_height);
         int maxHeight = res.getDimensionPixelSize(R.dimen.notification_max_height);
@@ -495,7 +493,6 @@
                 res.getBoolean(R.bool.config_drawNotificationBackground);
         mFadeNotificationsOnDismiss =
                 res.getBoolean(R.bool.config_fadeNotificationsOnDismiss);
-        mDarkShelfPadding = res.getDimensionPixelSize(R.dimen.widget_bottom_separator_padding);
         mRoundnessManager.setAnimatedChildren(mChildrenToAddAnimated);
         mRoundnessManager.setOnRoundingChangedCallback(this::invalidate);
         addOnExpandedHeightListener(mRoundnessManager::setExpanded);
@@ -684,7 +681,7 @@
         int lockScreenTop = mSections[0].getCurrentBounds().top;
         int lockScreenBottom = mSections[NUM_SECTIONS - 1].getCurrentBounds().bottom;
         int darkLeft = getWidth() / 2;
-        int darkTop = mRegularTopPadding;
+        int darkTop = mTopPadding;
 
         float yProgress = 1 - mInterpolatedDarkAmount;
         float xProgress = mDarkXInterpolator.getInterpolation(
@@ -952,8 +949,6 @@
 
     @ShadeViewRefactor(RefactorComponent.LAYOUT_ALGORITHM)
     private void updateAlgorithmHeightAndPadding() {
-        mTopPadding = (int) MathUtils.lerp(mRegularTopPadding, mDarkTopPadding,
-                mInterpolatedDarkAmount);
         mAmbientState.setLayoutHeight(getLayoutHeight());
         updateAlgorithmLayoutMinHeight();
         mAmbientState.setTopPadding(mTopPadding);
@@ -1091,10 +1086,8 @@
 
     @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
     private void setTopPadding(int topPadding, boolean animate) {
-        if (mRegularTopPadding != topPadding) {
-            mRegularTopPadding = topPadding;
-            mDarkTopPadding = topPadding + mDarkShelfPadding;
-            mAmbientState.setDarkTopPadding(mDarkTopPadding);
+        if (mTopPadding != topPadding) {
+            mTopPadding = topPadding;
             updateAlgorithmHeightAndPadding();
             updateContentHeight();
             if (animate && mAnimationsEnabled && mIsExpanded) {
@@ -2059,10 +2052,7 @@
         }
         mIntrinsicContentHeight = height;
 
-        // We don't want to use the toppadding since that might be interpolated and we want
-        // to take the final value of the animation.
-        int topPadding = mAmbientState.isFullyDark() ? mDarkTopPadding : mRegularTopPadding;
-        mContentHeight = height + topPadding + mBottomMargin;
+        mContentHeight = height + mTopPadding + mBottomMargin;
         updateScrollability();
         clampScrollPosition();
         mAmbientState.setLayoutMaxHeight(mContentHeight);
@@ -2226,13 +2216,16 @@
         int top = 0;
         if (section != null) {
             ActivatableNotificationView firstView = section.getFirstVisibleChild();
-            // Round Y up to avoid seeing the background during animation
-            int finalTranslationY = (int) Math.ceil(ViewState.getFinalTranslationY(firstView));
-            if (alreadyAnimating || section.isTargetTop(finalTranslationY)) {
-                // we're ending up at the same location as we are now, let's just skip the animation
-                top = finalTranslationY;
-            } else {
-                top = (int) Math.ceil(firstView.getTranslationY());
+            if (firstView != null) {
+                // Round Y up to avoid seeing the background during animation
+                int finalTranslationY = (int) Math.ceil(ViewState.getFinalTranslationY(firstView));
+                if (alreadyAnimating || section.isTargetTop(finalTranslationY)) {
+                    // we're ending up at the same location as we are now, let's just skip the
+                    // animation
+                    top = finalTranslationY;
+                } else {
+                    top = (int) Math.ceil(firstView.getTranslationY());
+                }
             }
         }
         return top;
@@ -5218,9 +5211,6 @@
         // another "changeViewPosition" call is ever added.
         changeViewPosition(mShelf,
                 getChildCount() - offsetFromEnd);
-
-        // Scrim opacity varies based on notification count
-        mScrimController.setNotificationCount(getNotGoneChildCount());
     }
 
     @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
@@ -5638,8 +5628,9 @@
       }
     };
 
+    @VisibleForTesting
     @ShadeViewRefactor(RefactorComponent.INPUT)
-    private final OnMenuEventListener mMenuEventListener = new OnMenuEventListener() {
+    protected final OnMenuEventListener mMenuEventListener = new OnMenuEventListener() {
         @Override
         public void onMenuClicked(View view, int x, int y, MenuItem item) {
             if (mLongPressListener == null) {
@@ -5647,8 +5638,10 @@
             }
             if (view instanceof ExpandableNotificationRow) {
                 ExpandableNotificationRow row = (ExpandableNotificationRow) view;
-                MetricsLogger.action(mContext, MetricsEvent.ACTION_TOUCH_GEAR,
-                        row.getStatusBarNotification().getPackageName());
+                mMetricsLogger.write(row.getStatusBarNotification().getLogMaker()
+                        .setCategory(MetricsEvent.ACTION_TOUCH_GEAR)
+                        .setType(MetricsEvent.TYPE_ACTION)
+                        );
             }
             mLongPressListener.onLongPress(view, x, y, item);
         }
@@ -5671,8 +5664,9 @@
         public void onMenuShown(View row) {
             if (row instanceof ExpandableNotificationRow) {
                 ExpandableNotificationRow notificationRow = (ExpandableNotificationRow) row;
-                MetricsLogger.action(mContext, MetricsEvent.ACTION_REVEAL_GEAR,
-                        notificationRow.getStatusBarNotification().getPackageName());
+                mMetricsLogger.write(notificationRow.getStatusBarNotification().getLogMaker()
+                        .setCategory(MetricsEvent.ACTION_REVEAL_GEAR)
+                        .setType(MetricsEvent.TYPE_ACTION));
                 mHeadsUpManager.setMenuShown(notificationRow.getEntry(), true);
             }
             mSwipeHelper.onMenuShown(row);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java
index 19fce48..b4c205a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java
@@ -426,6 +426,9 @@
                     mTmpState.yTranslation += mPulsingAppearingTranslation;
                     mTmpState.alpha = 0;
                     mTmpState.applyToView(changingView);
+
+                    mTmpState.copyFrom(mShelf.getViewState());
+                    mTmpState.applyToView(mShelf);
                 }
             } else if (event.animationType == NotificationStackScrollLayout
                     .AnimationEvent.ANIMATION_TYPE_PULSE_DISAPPEAR) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
index 6f2b63d..1049773 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
@@ -158,8 +158,7 @@
      * @return duration in millis.
      */
     public long getWallpaperAodDuration() {
-        if (mAmbientDisplayConfiguration.wakeLockScreenGestureEnabled(UserHandle.USER_CURRENT)
-                || shouldControlScreenOff()) {
+        if (shouldControlScreenOff()) {
             return DozeScreenState.ENTER_DOZE_HIDE_WALLPAPER_DELAY;
         }
         return mAlwaysOnPolicy.wallpaperVisibilityDuration;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java
index 577e8d6..280dda0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java
@@ -84,14 +84,6 @@
         public void onCancelled() {
             pulseFinished();
         }
-
-        /**
-         * Whether to fade out wallpaper.
-         */
-        @Override
-        public  boolean isFadeOutWallpaper() {
-            return mPulseReason == DozeLog.PULSE_REASON_DOCKING;
-        }
     };
 
     public DozeScrimController(DozeParameters dozeParameters) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java
index a81b7e5..c68fdd4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java
@@ -91,11 +91,6 @@
     private int mBurnInPreventionOffsetY;
 
     /**
-     * Clock vertical padding when pulsing.
-     */
-    private int mPulsingPadding;
-
-    /**
      * Doze/AOD transition amount.
      */
     private float mDarkAmount;
@@ -105,10 +100,6 @@
      */
     private boolean mCurrentlySecure;
 
-    /**
-     * Dozing and receiving a notification (AOD notification.)
-     */
-    private boolean mPulsing;
     private float mEmptyDragAmount;
 
     /**
@@ -123,13 +114,11 @@
                 R.dimen.burn_in_prevention_offset_x);
         mBurnInPreventionOffsetY = res.getDimensionPixelSize(
                 R.dimen.burn_in_prevention_offset_y);
-        mPulsingPadding = res.getDimensionPixelSize(
-                R.dimen.widget_pulsing_bottom_padding);
     }
 
     public void setup(int minTopMargin, int maxShadeBottom, int notificationStackHeight,
             float panelExpansion, int parentHeight, int keyguardStatusHeight, float dark,
-            boolean secure, boolean pulsing, float emptyDragAmount) {
+            boolean secure, float emptyDragAmount) {
         mMinTopMargin = minTopMargin + mContainerTopPadding;
         mMaxShadeBottom = maxShadeBottom;
         mNotificationStackHeight = notificationStackHeight;
@@ -138,7 +127,6 @@
         mKeyguardStatusHeight = keyguardStatusHeight;
         mDarkAmount = dark;
         mCurrentlySecure = secure;
-        mPulsing = pulsing;
         mEmptyDragAmount = emptyDragAmount;
     }
 
@@ -146,7 +134,7 @@
         final int y = getClockY();
         result.clockY = y;
         result.clockAlpha = getClockAlpha(y);
-        result.stackScrollerPadding = y + (mPulsing ? mPulsingPadding : mKeyguardStatusHeight);
+        result.stackScrollerPadding = y + mKeyguardStatusHeight;
         result.clockX = (int) interpolate(0, burnInPreventionOffsetX(), mDarkAmount);
     }
 
@@ -185,9 +173,6 @@
     private int getClockY() {
         // Dark: Align the bottom edge of the clock at about half of the screen:
         float clockYDark = getMaxClockY() + burnInPreventionOffsetY();
-        if (mPulsing) {
-            clockYDark -= mPulsingPadding;
-        }
         clockYDark = MathUtils.max(0, clockYDark);
 
         float clockYRegular = getExpandedClockPosition();
@@ -230,11 +215,6 @@
                 - mBurnInPreventionOffsetX;
     }
 
-    @VisibleForTesting
-    void setPulsingPadding(int padding) {
-        mPulsingPadding = padding;
-    }
-
     public static class Result {
 
         /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 32cc0e6..0d5ebb9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -579,7 +579,6 @@
                     mKeyguardStatusView.getHeight(),
                     mInterpolatedDarkAmount,
                     mStatusBar.isKeyguardCurrentlySecure(),
-                    mPulsing,
                     mEmptyDragAmount);
             mClockPositionAlgorithm.run(mClockPositionResult);
             PropertyAnimator.setProperty(mKeyguardStatusView, AnimatableProperty.X,
@@ -595,7 +594,8 @@
             stackScrollerPadding = mClockPositionResult.stackScrollerPadding;
         }
         mNotificationStackScroller.setIntrinsicPadding(stackScrollerPadding);
-        mNotificationStackScroller.setAntiBurnInOffsetX(mClockPositionResult.clockX);
+        int burnInXOffset = mPulsing ? 0 : mClockPositionResult.clockX;
+        mNotificationStackScroller.setAntiBurnInOffsetX(burnInXOffset);
 
         mStackScrollerMeasuringPass++;
         requestScrollerTopPaddingUpdate(animate);
@@ -2830,7 +2830,7 @@
             mAnimateNextPositionUpdate = false;
         }
         mNotificationStackScroller.setPulsing(pulsing, animatePulse);
-        mKeyguardStatusView.setPulsing(pulsing, animatePulse);
+        mKeyguardStatusView.setPulsing(pulsing);
         mKeyguardBottomArea.setPulsing(pulsing, animatePulse);
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java
index 0cec637..9e91ab7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java
@@ -34,13 +34,20 @@
 import android.graphics.Canvas;
 import android.graphics.Matrix;
 import android.graphics.Rect;
+import android.hardware.input.InputManager;
 import android.os.RemoteException;
+import android.os.SystemClock;
 import android.provider.Settings;
 import android.util.Log;
+import android.view.InputDevice;
 import android.view.MotionEvent;
 import android.view.View;
+import android.view.ViewGroup;
 import android.view.ViewPropertyAnimator;
 
+import android.view.WindowManager;
+import android.view.WindowManager.LayoutParams;
+
 import com.android.systemui.Dependency;
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
@@ -64,7 +71,10 @@
 
     /** Experiment to swipe home button left to execute a back key press */
     private static final String HIDE_BACK_BUTTON_PROP = "quickstepcontroller_hideback";
+    private static final String ENABLE_CLICK_THROUGH_NAV_PROP = "quickstepcontroller_clickthrough";
     private static final long BACK_BUTTON_FADE_IN_ALPHA = 150;
+    private static final long CLICK_THROUGH_TAP_DELAY = 70;
+    private static final long CLICK_THROUGH_TAP_RESET_DELAY = 100;
 
     /** When the home-swipe-back gesture is disallowed, make it harder to pull */
     private static final float HORIZONTAL_GESTURE_DAMPING = 0.3f;
@@ -100,6 +110,9 @@
     private float mMinDragLimit;
     private float mDragDampeningFactor;
     private float mEdgeSwipeThreshold;
+    private boolean mClickThroughPressed;
+    private float mClickThroughPressX;
+    private float mClickThroughPressY;
 
     private NavigationGestureAction mCurrentAction;
     private NavigationGestureAction[] mGestureActions = new NavigationGestureAction[MAX_GESTURES];
@@ -117,6 +130,19 @@
         mOverviewEventSender = Dependency.get(OverviewProxyService.class);
     }
 
+    private final Runnable mClickThroughSendTap = new Runnable() {
+        @Override
+        public void run() {
+            sendTap(mClickThroughPressX, mClickThroughPressY);
+            mNavigationBarView.postDelayed(mClickThroughResetTap, CLICK_THROUGH_TAP_RESET_DELAY);
+        }
+    };
+
+    private final Runnable mClickThroughResetTap = () -> {
+        setWindowTouchable(true);
+        mClickThroughPressed = false;
+    };
+
     public void setComponents(NavigationBarView navigationBarView) {
         mNavigationBarView = navigationBarView;
 
@@ -320,6 +346,25 @@
             case MotionEvent.ACTION_UP:
                 if (mCurrentAction != null) {
                     mCurrentAction.endGesture();
+                } else if (action == MotionEvent.ACTION_UP
+                        && getBoolGlobalSetting(mContext, ENABLE_CLICK_THROUGH_NAV_PROP)
+                        && !mClickThroughPressed) {
+                    // Enable click through functionality where no gesture has been detected and not
+                    // passed the drag slop so inject a touch event at the same location
+                    // after making the navigation bar window untouchable. After a some time, the
+                    // navigation bar will be able to take input events again
+                    float diffX = Math.abs(event.getX() - mTouchDownX);
+                    float diffY = Math.abs(event.getY() - mTouchDownY);
+
+                    if ((diffX <= NavigationBarCompat.getQuickStepDragSlopPx()
+                            && diffY <= NavigationBarCompat.getQuickStepDragSlopPx())) {
+                        setWindowTouchable(false);
+                        mClickThroughPressX = event.getRawX();
+                        mClickThroughPressY = event.getRawY();
+                        mClickThroughPressed = true;
+                        mNavigationBarView.postDelayed(mClickThroughSendTap,
+                                CLICK_THROUGH_TAP_DELAY);
+                    }
                 }
 
                 // Return the hit target back to its original position
@@ -350,6 +395,19 @@
         return mCurrentAction != null || deadZoneConsumed;
     }
 
+    private void setWindowTouchable(boolean flag) {
+        final WindowManager.LayoutParams lp = (WindowManager.LayoutParams)
+                ((ViewGroup) mNavigationBarView.getParent()).getLayoutParams();
+        if (flag) {
+            lp.flags &= ~LayoutParams.FLAG_NOT_TOUCHABLE;
+        } else {
+            lp.flags |= LayoutParams.FLAG_NOT_TOUCHABLE;
+        }
+        final WindowManager wm = (WindowManager) mNavigationBarView.getContext()
+                .getSystemService(Context.WINDOW_SERVICE);
+        wm.updateViewLayout((View) mNavigationBarView.getParent(), lp);
+    }
+
     private boolean isEdgeSwipeAlongNavBar(int touchDown, boolean dragPositiveDirection) {
         // Detect edge swipe from side of 0 -> threshold
         if (dragPositiveDirection) {
@@ -562,6 +620,38 @@
         return false;
     }
 
+    private void sendTap(float x, float y) {
+        long now = SystemClock.uptimeMillis();
+        injectMotionEvent(InputDevice.SOURCE_TOUCHSCREEN, MotionEvent.ACTION_DOWN, now, x, y, 1.0f);
+        injectMotionEvent(InputDevice.SOURCE_TOUCHSCREEN, MotionEvent.ACTION_UP, now, x, y, 0.0f);
+    }
+
+    private int getInputDeviceId(int inputSource) {
+        int[] devIds = InputDevice.getDeviceIds();
+        for (int devId : devIds) {
+            InputDevice inputDev = InputDevice.getDevice(devId);
+            if (inputDev.supportsSource(inputSource)) {
+                return devId;
+            }
+        }
+        return 0;
+    }
+
+    private void injectMotionEvent(int inputSource, int action, long when, float x, float y,
+            float pressure) {
+        final float defaultSize = 1.0f;
+        final int defaultMetaState = 0;
+        final float defaultPrecisionX = 1.0f;
+        final float defaultPrecisionY = 1.0f;
+        final int defaultEdgeFlags = 0;
+        MotionEvent event = MotionEvent.obtain(when, when, action, x, y, pressure, defaultSize,
+                defaultMetaState, defaultPrecisionX, defaultPrecisionY,
+                getInputDeviceId(inputSource), defaultEdgeFlags);
+        event.setSource(inputSource);
+        InputManager.getInstance().injectInputEvent(event,
+                InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
+    }
+
     private boolean proxyMotionEvents(MotionEvent event) {
         final IOverviewProxy overviewProxy = mOverviewEventSender.getProxy();
         event.transform(mTransformGlobalMatrix);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index 3568f28..bf143c8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -88,16 +88,12 @@
     /**
      * Default alpha value for most scrims.
      */
-    public static final float GRADIENT_SCRIM_ALPHA = 0.45f;
+    public static final float GRADIENT_SCRIM_ALPHA = 0.2f;
     /**
      * A scrim varies its opacity based on a busyness factor, for example
      * how many notifications are currently visible.
      */
     public static final float GRADIENT_SCRIM_ALPHA_BUSY = 0.7f;
-    /**
-     * Scrim opacity when a wallpaper doesn't support ambient mode.
-     */
-    public static final float PULSING_WALLPAPER_SCRIM_ALPHA = 0.6f;
 
     /**
      * The most common scrim, the one under the keyguard.
@@ -154,7 +150,6 @@
     private Callback mCallback;
     private boolean mWallpaperSupportsAmbientMode;
     private boolean mScreenOn;
-    private float mNotificationDensity;
 
     // Scrim blanking callbacks
     private Runnable mPendingFrameCallback;
@@ -245,7 +240,7 @@
         mCurrentInFrontTint = state.getFrontTint();
         mCurrentBehindTint = state.getBehindTint();
         mCurrentInFrontAlpha = state.getFrontAlpha();
-        mCurrentBehindAlpha = state.getBehindAlpha(mNotificationDensity);
+        mCurrentBehindAlpha = state.getBehindAlpha();
         applyExpansionToAlpha();
 
         // Scrim might acquire focus when user is navigating with a D-pad or a keyboard.
@@ -279,8 +274,7 @@
         // Docking pulses may take a long time, wallpapers should also fade away after a while.
         if (mWallpaperSupportsAmbientMode && (
                 mDozeParameters.getAlwaysOn() && mState == ScrimState.AOD
-                        || mState == ScrimState.PULSING && mCallback != null
-                        && mCallback.isFadeOutWallpaper())) {
+                        || mState == ScrimState.PULSING && mCallback != null)) {
             if (!mWallpaperVisibilityTimedOut) {
                 mTimeTicker.schedule(mDozeParameters.getWallpaperAodDuration(),
                         AlarmTimeout.MODE_IGNORE_IF_SCHEDULED);
@@ -416,7 +410,7 @@
             // Either darken of make the scrim transparent when you
             // pull down the shade
             float interpolatedFract = getInterpolatedFraction();
-            float alphaBehind = mState.getBehindAlpha(mNotificationDensity);
+            float alphaBehind = mState.getBehindAlpha();
             if (mDarkenWhileDragging) {
                 mCurrentBehindAlpha = MathUtils.lerp(GRADIENT_SCRIM_ALPHA_BUSY, alphaBehind,
                         interpolatedFract);
@@ -430,24 +424,6 @@
     }
 
     /**
-     * Keyguard and shade scrim opacity varies according to how many notifications are visible.
-     * @param notificationCount Number of visible notifications.
-     */
-    public void setNotificationCount(int notificationCount) {
-        final float maxNotificationDensity = 3;
-        float notificationDensity = Math.min(notificationCount / maxNotificationDensity, 1f);
-        if (mNotificationDensity == notificationDensity) {
-            return;
-        }
-        mNotificationDensity = notificationDensity;
-
-        if (mState == ScrimState.KEYGUARD) {
-            applyExpansionToAlpha();
-            scheduleUpdate();
-        }
-    }
-
-    /**
      * Sets the given drawable as the background of the scrim that shows up behind the
      * notifications.
      */
@@ -909,7 +885,7 @@
         // Backdrop event may arrive after state was already applied,
         // in this case, back-scrim needs to be re-evaluated
         if (mState == ScrimState.AOD || mState == ScrimState.PULSING) {
-            float newBehindAlpha = mState.getBehindAlpha(mNotificationDensity);
+            float newBehindAlpha = mState.getBehindAlpha();
             if (mCurrentBehindAlpha != newBehindAlpha) {
                 mCurrentBehindAlpha = newBehindAlpha;
                 updateScrims();
@@ -923,6 +899,10 @@
         }
     }
 
+    public void setPulseReason(int pulseReason) {
+        ScrimState.PULSING.setPulseReason(pulseReason);
+    }
+
     public interface Callback {
         default void onStart() {
         }
@@ -932,9 +912,6 @@
         }
         default void onCancelled() {
         }
-        default boolean isFadeOutWallpaper() {
-            return false;
-        }
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
index 72519ba3..11a2d32 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
@@ -18,8 +18,8 @@
 
 import android.graphics.Color;
 import android.os.Trace;
-import android.util.MathUtils;
 
+import com.android.systemui.doze.DozeLog;
 import com.android.systemui.statusbar.ScrimView;
 import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
 
@@ -57,13 +57,6 @@
             mCurrentBehindAlpha = mScrimBehindAlphaKeyguard;
             mCurrentInFrontAlpha = 0;
         }
-
-        @Override
-        public float getBehindAlpha(float busynessFactor) {
-            return MathUtils.map(0 /* start */, 1 /* stop */,
-                    mScrimBehindAlphaKeyguard, ScrimController.GRADIENT_SCRIM_ALPHA_BUSY,
-                    busynessFactor);
-        }
     },
 
     /**
@@ -117,7 +110,7 @@
         }
 
         @Override
-        public float getBehindAlpha(float busyness) {
+        public float getBehindAlpha() {
             return mWallpaperSupportsAmbientMode && !mHasBackdrop ? 0f : 1f;
         }
 
@@ -133,17 +126,17 @@
     PULSING(5) {
         @Override
         public void prepare(ScrimState previousState) {
-            mCurrentInFrontAlpha = 0;
-            mCurrentInFrontTint = Color.BLACK;
-            mCurrentBehindTint = Color.BLACK;
+            mCurrentInFrontAlpha = 0f;
+            if (mPulseReason == DozeLog.PULSE_REASON_NOTIFICATION
+                    || mPulseReason == DozeLog.PULSE_REASON_DOCKING) {
+                mCurrentBehindAlpha = previousState.getBehindAlpha();
+                mCurrentBehindTint = Color.BLACK;
+            } else {
+                mCurrentBehindAlpha = mScrimBehindAlphaKeyguard;
+                mCurrentBehindTint = Color.TRANSPARENT;
+            }
             mBlankScreen = mDisplayRequiresBlanking;
         }
-
-        @Override
-        public float getBehindAlpha(float busyness) {
-            return mWallpaperSupportsAmbientMode && !mHasBackdrop ? 0f
-                    : ScrimController.PULSING_WALLPAPER_SCRIM_ALPHA;
-        }
     },
 
     /**
@@ -204,6 +197,7 @@
     int mIndex;
     boolean mHasBackdrop;
     boolean mLaunchingAffordanceWithPreview;
+    int mPulseReason;
 
     ScrimState(int index) {
         mIndex = index;
@@ -235,7 +229,7 @@
         return mCurrentInFrontAlpha;
     }
 
-    public float getBehindAlpha(float busyness) {
+    public float getBehindAlpha() {
         return mCurrentBehindAlpha;
     }
 
@@ -276,6 +270,10 @@
         mAodFrontScrimAlpha = aodFrontScrimAlpha;
     }
 
+    public void setPulseReason(int pulseReason) {
+        mPulseReason = pulseReason;
+    }
+
     public void setScrimBehindAlphaKeyguard(float scrimBehindAlphaKeyguard) {
         mScrimBehindAlphaKeyguard = scrimBehindAlphaKeyguard;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index ed71598..1470d0f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -3883,6 +3883,7 @@
 
         @Override
         public void pulseWhileDozing(@NonNull PulseCallback callback, int reason) {
+            mScrimController.setPulseReason(reason);
             if (reason == DozeLog.PULSE_REASON_SENSOR_LONG_PRESS) {
                 mPowerManager.wakeUp(SystemClock.uptimeMillis(), "com.android.systemui:NODOZE");
                 startAssist(new Bundle());
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
index dfb02cf..9c4db34 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
@@ -18,6 +18,7 @@
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
+import android.app.ActivityManager;
 import android.app.Notification;
 import android.app.PendingIntent;
 import android.app.RemoteInput;
@@ -28,6 +29,7 @@
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.SystemClock;
+import android.os.UserHandle;
 import android.text.Editable;
 import android.text.SpannedString;
 import android.text.TextWatcher;
@@ -283,6 +285,11 @@
         focus();
     }
 
+    private static UserHandle computeTextOperationUser(UserHandle notificationUser) {
+        return UserHandle.ALL.equals(notificationUser)
+                ? UserHandle.of(ActivityManager.getCurrentUser()) : notificationUser;
+    }
+
     public void focus() {
         MetricsLogger.action(mContext, MetricsProto.MetricsEvent.ACTION_REMOTE_INPUT_OPEN,
                 mEntry.notification.getPackageName());
@@ -291,6 +298,7 @@
         if (mWrapper != null) {
             mWrapper.setRemoteInputVisible(true);
         }
+        mEditText.setTextOperationUser(computeTextOperationUser(mEntry.notification.getUser()));
         mEditText.setInnerFocusable(true);
         mEditText.mShowImeOnInputConnection = true;
         mEditText.setText(mEntry.remoteInputText);
@@ -320,6 +328,7 @@
         mResetting = true;
         mEntry.remoteInputTextWhenReset = SpannedString.valueOf(mEditText.getText());
 
+        mEditText.setTextOperationUser(null);
         mEditText.getText().clear();
         mEditText.setEnabled(true);
         mSendButton.setVisibility(VISIBLE);
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 8952594..0b24c21 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java
@@ -54,6 +54,8 @@
     public static final String PKG = "com.android.systemui";
     /** System UI id for testing purposes. */
     public static final int UID = 1000;
+    /** Current {@link UserHandle} of the system. */
+    public static final UserHandle USER_HANDLE = UserHandle.of(ActivityManager.getCurrentUser());
 
     private static final String GROUP_KEY = "gruKey";
 
@@ -78,7 +80,7 @@
      * @throws Exception
      */
     public ExpandableNotificationRow createRow() throws Exception {
-        return createRow(PKG, UID);
+        return createRow(PKG, UID, USER_HANDLE);
     }
 
     /**
@@ -89,8 +91,9 @@
      * @return a row with a notification using the package and user id
      * @throws Exception
      */
-    public ExpandableNotificationRow createRow(String pkg, int uid) throws Exception {
-        return createRow(pkg, uid, false /* isGroupSummary */, null /* groupKey */);
+    public ExpandableNotificationRow createRow(String pkg, int uid, UserHandle userHandle)
+            throws Exception {
+        return createRow(pkg, uid, userHandle, false /* isGroupSummary */, null /* groupKey */);
     }
 
     /**
@@ -101,7 +104,7 @@
      * @throws Exception
      */
     public ExpandableNotificationRow createRow(Notification notification) throws Exception {
-        return generateRow(notification, PKG, UID, 0 /* extraInflationFlags */);
+        return generateRow(notification, PKG, UID, USER_HANDLE, 0 /* extraInflationFlags */);
     }
 
     /**
@@ -114,7 +117,7 @@
      */
     public ExpandableNotificationRow createRow(@InflationFlag int extraInflationFlags)
             throws Exception {
-        return generateRow(createNotification(), PKG, UID, extraInflationFlags);
+        return generateRow(createNotification(), PKG, UID, USER_HANDLE, extraInflationFlags);
     }
 
     /**
@@ -136,11 +139,11 @@
     }
 
     private ExpandableNotificationRow createGroupSummary(String groupkey) throws Exception {
-        return createRow(PKG, UID, true /* isGroupSummary */, groupkey);
+        return createRow(PKG, UID, USER_HANDLE, true /* isGroupSummary */, groupkey);
     }
 
     private ExpandableNotificationRow createGroupChild(String groupkey) throws Exception {
-        return createRow(PKG, UID, false /* isGroupSummary */, groupkey);
+        return createRow(PKG, UID, USER_HANDLE, false /* isGroupSummary */, groupkey);
     }
 
     /**
@@ -149,7 +152,7 @@
     public ExpandableNotificationRow createBubble() throws Exception {
         Notification n = createNotification(false /* isGroupSummary */,
                 null /* groupKey */, true /* isBubble */);
-        return generateRow(n, PKG, UID, 0 /* extraInflationFlags */, IMPORTANCE_HIGH);
+        return generateRow(n, PKG, UID, USER_HANDLE, 0 /* extraInflationFlags */, IMPORTANCE_HIGH);
     }
 
     /**
@@ -166,11 +169,12 @@
     private ExpandableNotificationRow createRow(
             String pkg,
             int uid,
+            UserHandle userHandle,
             boolean isGroupSummary,
             @Nullable String groupKey)
             throws Exception {
         Notification notif = createNotification(isGroupSummary, groupKey);
-        return generateRow(notif, pkg, uid, 0 /* inflationFlags */);
+        return generateRow(notif, pkg, uid, userHandle, 0 /* inflationFlags */);
     }
 
     /**
@@ -230,15 +234,18 @@
             Notification notification,
             String pkg,
             int uid,
+            UserHandle userHandle,
             @InflationFlag int extraInflationFlags)
             throws Exception {
-        return generateRow(notification, pkg, uid, extraInflationFlags, IMPORTANCE_DEFAULT);
+        return generateRow(notification, pkg, uid, userHandle, extraInflationFlags,
+                IMPORTANCE_DEFAULT);
     }
 
     private ExpandableNotificationRow generateRow(
             Notification notification,
             String pkg,
             int uid,
+            UserHandle userHandle,
             @InflationFlag int extraInflationFlags,
             int importance)
             throws Exception {
@@ -252,7 +259,6 @@
         row.setGroupManager(mGroupManager);
         row.setHeadsUpManager(mHeadsUpManager);
         row.setAboveShelfChangedListener(aboveShelf -> {});
-        UserHandle mUser = UserHandle.of(ActivityManager.getCurrentUser());
         StatusBarNotification sbn = new StatusBarNotification(
                 pkg,
                 pkg,
@@ -261,7 +267,7 @@
                 uid,
                 2000 /* initialPid */,
                 notification,
-                mUser,
+                userHandle,
                 null /* overrideGroupKey */,
                 System.currentTimeMillis());
         NotificationEntry entry = new NotificationEntry(sbn);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationDataTest.java
index 193f483..b507692 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationDataTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationDataTest.java
@@ -44,6 +44,7 @@
 import android.graphics.drawable.Icon;
 import android.media.session.MediaSession;
 import android.os.Bundle;
+import android.os.Process;
 import android.service.notification.NotificationListenerService;
 import android.service.notification.NotificationListenerService.Ranking;
 import android.service.notification.SnoozeCriterion;
@@ -140,7 +141,8 @@
         ExpandableNotificationRow row2 = new NotificationTestHelper(getContext()).createRow();
         mNotificationData.add(row2.getEntry());
         ExpandableNotificationRow diffPkg =
-                new NotificationTestHelper(getContext()).createRow("pkg", 4000);
+                new NotificationTestHelper(getContext()).createRow("pkg", 4000,
+                        Process.myUserHandle());
         mNotificationData.add(diffPkg.getEntry());
 
         ArraySet<Integer> expectedOps = new ArraySet<>();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java
index 8ae7d52..ff30a4d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java
@@ -29,7 +29,10 @@
 import android.testing.TestableLooper.RunWithLooper;
 
 import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.AmbientPulseManager;
 import com.android.systemui.statusbar.NotificationTestHelper;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.row.ExpandableView;
 
@@ -37,6 +40,8 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 
 import java.util.HashSet;
 
@@ -45,14 +50,18 @@
 @RunWithLooper
 public class NotificationRoundnessManagerTest extends SysuiTestCase {
 
-    private NotificationRoundnessManager mRoundnessManager = new NotificationRoundnessManager();
+    private NotificationRoundnessManager mRoundnessManager;
     private HashSet<ExpandableView> mAnimatedChildren = new HashSet<>();
     private Runnable mRoundnessCallback = mock(Runnable.class);
     private ExpandableNotificationRow mFirst;
     private ExpandableNotificationRow mSecond;
+    @Mock
+    private AmbientPulseManager mAmbientPulseManager;
 
     @Before
     public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mRoundnessManager = new NotificationRoundnessManager(mAmbientPulseManager);
         com.android.systemui.util.Assert.sMainLooper = TestableLooper.get(this).getLooper();
         NotificationTestHelper testHelper = new NotificationTestHelper(getContext());
         mFirst = testHelper.createRow();
@@ -127,6 +136,27 @@
     }
 
     @Test
+    public void testRoundnessPulsing() throws Exception {
+        // Let's create a notification that's neither the first or last item of the stack,
+        // this way we'll ensure that it won't have any rounded corners by default.
+        mRoundnessManager.updateRoundedChildren(new NotificationSection[]{
+                createSection(mFirst, mSecond),
+                createSection(null, null)
+        });
+        ExpandableNotificationRow row = new NotificationTestHelper(getContext()).createRow();
+        NotificationEntry entry = mock(NotificationEntry.class);
+        when(entry.getRow()).thenReturn(row);
+
+        mRoundnessManager.onAmbientStateChanged(entry, true);
+        Assert.assertEquals(1f, row.getCurrentBottomRoundness(), 0.0f);
+        Assert.assertEquals(1f, row.getCurrentTopRoundness(), 0.0f);
+
+        mRoundnessManager.onAmbientStateChanged(entry, false);
+        Assert.assertEquals(0f, row.getCurrentBottomRoundness(), 0.0f);
+        Assert.assertEquals(0f, row.getCurrentTopRoundness(), 0.0f);
+    }
+
+    @Test
     public void testRoundnessSetOnSecondSectionLast() {
         mRoundnessManager.updateRoundedChildren(new NotificationSection[]{
                 createSection(mFirst, mFirst),
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
index c140ba2..736f384 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
@@ -24,6 +24,7 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.atLeastOnce;
@@ -35,17 +36,21 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.metrics.LogMaker;
 import android.provider.Settings;
 import android.support.test.annotation.UiThreadTest;
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 import android.view.View;
 
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto;
 import com.android.systemui.Dependency;
 import com.android.systemui.ExpandHelper;
 import com.android.systemui.InitController;
 import com.android.systemui.R;
 import com.android.systemui.SysuiTestCase;
+import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
 import com.android.systemui.statusbar.EmptyShadeView;
 import com.android.systemui.statusbar.NotificationPresenter;
 import com.android.systemui.statusbar.NotificationRemoteInputManager;
@@ -73,6 +78,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
+import org.mockito.ArgumentMatcher;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
@@ -86,7 +92,8 @@
 @RunWith(AndroidJUnit4.class)
 public class NotificationStackScrollLayoutTest extends SysuiTestCase {
 
-    private NotificationStackScrollLayout mStackScroller;
+    private NotificationStackScrollLayout mStackScroller;  // Normally test this
+    private NotificationStackScrollLayout mStackScrollerInternal;  // See explanation below
 
     @Rule public MockitoRule mockito = MockitoJUnit.rule();
     @Mock private StatusBar mBar;
@@ -99,9 +106,12 @@
     @Mock private NotificationData mNotificationData;
     @Mock private NotificationRemoteInputManager mRemoteInputManager;
     @Mock private RemoteInputController mRemoteInputController;
+    @Mock private MetricsLogger mMetricsLogger;
+    @Mock private NotificationRoundnessManager mNotificationRoundnessManager;
     private TestableNotificationEntryManager mEntryManager;
     private int mOriginalInterruptionModelSetting;
 
+
     @Before
     @UiThreadTest
     public void setUp() throws Exception {
@@ -110,6 +120,7 @@
                 NotificationBlockingHelperManager.class,
                 mBlockingHelperManager);
         mDependency.injectTestDependency(StatusBarStateController.class, mBarState);
+        mDependency.injectTestDependency(MetricsLogger.class, mMetricsLogger);
         mDependency.injectTestDependency(NotificationRemoteInputManager.class,
                 mRemoteInputManager);
         mDependency.injectMockDependency(ShadeController.class);
@@ -123,8 +134,15 @@
 
 
         NotificationShelf notificationShelf = mock(NotificationShelf.class);
-        mStackScroller = spy(new NotificationStackScrollLayout(getContext(), null,
-                true /* allowLongPress */));
+
+        // The actual class under test.  You may need to work with this class directly when
+        // testing anonymous class members of mStackScroller, like mMenuEventListener,
+        // which refer to members of NotificationStackScrollLayout. The spy
+        // holds a copy of the CUT's instances of these classes, so they still refer to the CUT's
+        // member variables, not the spy's member variables.
+        mStackScrollerInternal = new NotificationStackScrollLayout(getContext(), null,
+                true /* allowLongPress */, mNotificationRoundnessManager);
+        mStackScroller = spy(mStackScrollerInternal);
         mStackScroller.setShelf(notificationShelf);
         mStackScroller.setStatusBar(mBar);
         mStackScroller.setScrimController(mock(ScrimController.class));
@@ -422,6 +440,63 @@
         assertNull(swipeActionHelper.getExposedMenuView());
     }
 
+    class LogMatcher implements ArgumentMatcher<LogMaker> {
+        private int mCategory, mType;
+
+        LogMatcher(int category, int type) {
+            mCategory = category;
+            mType = type;
+        }
+        public boolean matches(LogMaker l) {
+            return (l.getCategory() == mCategory)
+                    && (l.getType() == mType);
+        }
+
+        public String toString() {
+            return String.format("LogMaker(%d, %d)", mCategory, mType);
+        }
+    }
+
+    private LogMaker logMatcher(int category, int type) {
+        return argThat(new LogMatcher(category, type));
+    }
+
+    @Test
+    @UiThreadTest
+    public void testOnMenuClickedLogging() {
+        // Set up the object under test to have a valid mLongPressListener.  We're testing an
+        // anonymous-class member, mMenuEventListener, so we need to modify the state of the
+        // class itself, not the Mockito spy copied from it.  See notes in setup.
+        mStackScrollerInternal.setLongPressListener(
+                mock(ExpandableNotificationRow.LongPressListener.class));
+
+        ExpandableNotificationRow row = mock(ExpandableNotificationRow.class, RETURNS_DEEP_STUBS);
+        when(row.getStatusBarNotification().getLogMaker()).thenReturn(new LogMaker(
+                MetricsProto.MetricsEvent.VIEW_UNKNOWN));
+
+        mStackScroller.mMenuEventListener.onMenuClicked(row, 0, 0, mock(
+                NotificationMenuRowPlugin.MenuItem.class));
+        verify(row.getStatusBarNotification()).getLogMaker();  // This writes most of the log data
+        verify(mMetricsLogger).write(logMatcher(MetricsProto.MetricsEvent.ACTION_TOUCH_GEAR,
+                MetricsProto.MetricsEvent.TYPE_ACTION));
+    }
+
+    @Test
+    @UiThreadTest
+    public void testOnMenuShownLogging() {
+        // Set up the object under test to have a valid mHeadsUpManager. See notes in setup.
+        mStackScrollerInternal.setHeadsUpManager(mHeadsUpManager);
+
+        ExpandableNotificationRow row = mock(ExpandableNotificationRow.class, RETURNS_DEEP_STUBS);
+        when(row.getStatusBarNotification().getLogMaker()).thenReturn(new LogMaker(
+                MetricsProto.MetricsEvent.VIEW_UNKNOWN));
+
+        mStackScroller.mMenuEventListener.onMenuShown(row);
+        verify(row.getStatusBarNotification()).getLogMaker();  // This writes most of the log data
+        verify(mMetricsLogger).write(logMatcher(MetricsProto.MetricsEvent.ACTION_REVEAL_GEAR,
+                MetricsProto.MetricsEvent.TYPE_ACTION));
+    }
+
     private void setBarStateForTest(int state) {
         // Can't inject this through the listener or we end up on the actual implementation
         // rather than the mock because the spy just coppied the anonymous inner /shruggie.
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithmTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithmTest.java
index 27ed9c5..cd52e87 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithmTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithmTest.java
@@ -47,7 +47,6 @@
     private float mPanelExpansion;
     private int mKeyguardStatusHeight;
     private float mDark;
-    private boolean mPulsing;
 
     @Before
     public void setUp() {
@@ -208,20 +207,6 @@
     }
 
     @Test
-    public void notifPositionWhilePulsingOnAOD() {
-        // GIVEN on AOD and pulsing
-        givenAOD();
-        mNotificationStackHeight = EMPTY_HEIGHT;
-        mKeyguardStatusHeight = EMPTY_HEIGHT;
-        mPulsing = true;
-        mClockPositionAlgorithm.setPulsingPadding(200);
-        // WHEN the clock position algorithm is run
-        positionClock();
-        // THEN the notif padding doesn't adjust for pulsing.
-        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(1000);
-    }
-
-    @Test
     public void notifPositionMiddleOfScreenOnLockScreen() {
         // GIVEN on lock screen and both stack scroll and clock have 0 height
         givenLockScreen();
@@ -307,20 +292,6 @@
         assertThat(mClockPosition.stackScrollerPadding).isEqualTo(0);
     }
 
-    @Test
-    public void notifPositionWhilePulsingOnLockScreen() {
-        // GIVEN on lock screen and pulsing
-        givenLockScreen();
-        mNotificationStackHeight = EMPTY_HEIGHT;
-        mKeyguardStatusHeight = EMPTY_HEIGHT;
-        mPulsing = true;
-        mClockPositionAlgorithm.setPulsingPadding(200);
-        // WHEN the clock position algorithm is run
-        positionClock();
-        // THEN the notif padding adjusts for pulsing.
-        assertThat(mClockPosition.stackScrollerPadding).isEqualTo(1200);
-    }
-
     private void givenAOD() {
         mPanelExpansion = 1.f;
         mDark = 1.f;
@@ -334,7 +305,7 @@
     private void positionClock() {
         mClockPositionAlgorithm.setup(EMPTY_MARGIN, SCREEN_HEIGHT, mNotificationStackHeight,
                 mPanelExpansion, SCREEN_HEIGHT, mKeyguardStatusHeight, mDark, SECURE_LOCKED,
-                mPulsing, ZERO_DRAG);
+                ZERO_DRAG);
         mClockPositionAlgorithm.run(mClockPosition);
     }
 }
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 8eb42c4..c20d37f 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
@@ -45,6 +45,7 @@
 import com.android.internal.colorextraction.ColorExtractor.GradientColors;
 import com.android.internal.util.function.TriConsumer;
 import com.android.systemui.SysuiTestCase;
+import com.android.systemui.doze.DozeLog;
 import com.android.systemui.statusbar.ScrimView;
 import com.android.systemui.util.wakelock.WakeLock;
 import com.android.systemui.utils.os.FakeHandler;
@@ -133,7 +134,8 @@
         // Back scrim should be transparent
         assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_FULLY_TRANSPARENT);
 
-        // Move on to PULSING and check if the back scrim is still transparent
+        // Pulsing notification should conserve AOD wallpaper.
+        mScrimController.setPulseReason(DozeLog.PULSE_REASON_NOTIFICATION);
         mScrimController.transitionTo(ScrimState.PULSING);
         mScrimController.finishAnimationsImmediately();
         assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_FULLY_TRANSPARENT);
@@ -218,13 +220,14 @@
         mScrimController.finishAnimationsImmediately();
         assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_FULLY_OPAQUE);
 
+        mScrimController.setPulseReason(DozeLog.PULSE_REASON_SENSOR_WAKE_LOCK_SCREEN);
         mScrimController.transitionTo(ScrimState.PULSING);
         mScrimController.finishAnimationsImmediately();
         // Front scrim should be transparent
         // Back scrim should be semi-transparent so the user can see the wallpaper
         // Pulse callback should have been invoked
         assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_SEMI_TRANSPARENT);
-        assertScrimTint(mScrimBehind, true /* tinted */);
+        assertScrimTint(mScrimBehind, false /* tinted */);
     }
 
     @Test
@@ -477,12 +480,8 @@
     @Test
     public void testHoldsPulsingWallpaperAnimationLock() {
         // Pre-conditions
-        mScrimController.transitionTo(ScrimState.PULSING, new ScrimController.Callback() {
-            @Override
-            public boolean isFadeOutWallpaper() {
-                return true;
-            }
-        });
+        mScrimController.setPulseReason(DozeLog.PULSE_REASON_NOTIFICATION);
+        mScrimController.transitionTo(ScrimState.PULSING);
         mScrimController.finishAnimationsImmediately();
         reset(mWakeLock);
 
@@ -491,7 +490,6 @@
         verify(mWakeLock, never()).release();
         mScrimController.finishAnimationsImmediately();
         verify(mWakeLock).release();
-        assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_FULLY_OPAQUE);
     }
 
     @Test
@@ -504,31 +502,27 @@
     }
 
     @Test
-    public void testWillHidePulsingWallpaper_withRequestFadeOut() {
-        mScrimController.setWallpaperSupportsAmbientMode(true);
-        mScrimController.transitionTo(ScrimState.PULSING, new ScrimController.Callback() {
-            @Override
-            public boolean isFadeOutWallpaper() {
-                return true;
-            }
-        });
-        verify(mAlarmManager).setExact(anyInt(), anyLong(), any(), any(), any());
-        mScrimController.transitionTo(ScrimState.KEYGUARD);
-        verify(mAlarmManager).cancel(any(AlarmManager.OnAlarmListener.class));
-    }
-
-    @Test
-    public void testDoesNotHidePulsingWallpaper_withoutRequestFadeOut() {
-        mScrimController.setWallpaperSupportsAmbientMode(true);
-        mScrimController.transitionTo(ScrimState.PULSING, new ScrimController.Callback() {});
-        verify(mAlarmManager, never()).setExact(anyInt(), anyLong(), any(), any(), any());
-    }
-
-    @Test
-    public void testDoesNotHidePulsingWallpaper_withoutCallback() {
-        mScrimController.setWallpaperSupportsAmbientMode(true);
+    public void testWillHidePulsingWallpaper_whenNotification() {
+        mScrimController.setWallpaperSupportsAmbientMode(false);
+        mScrimController.transitionTo(ScrimState.AOD);
+        mScrimController.finishAnimationsImmediately();
+        mScrimController.setPulseReason(DozeLog.PULSE_REASON_NOTIFICATION);
         mScrimController.transitionTo(ScrimState.PULSING);
-        verify(mAlarmManager, never()).setExact(anyInt(), anyLong(), any(), any(), any());
+        mScrimController.finishAnimationsImmediately();
+        assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_FULLY_OPAQUE);
+        assertScrimTint(mScrimBehind, true);
+    }
+
+    @Test
+    public void testWillHidePulsingWallpaper_whenDocking() {
+        mScrimController.setWallpaperSupportsAmbientMode(false);
+        mScrimController.transitionTo(ScrimState.AOD);
+        mScrimController.finishAnimationsImmediately();
+        mScrimController.setPulseReason(DozeLog.PULSE_REASON_DOCKING);
+        mScrimController.transitionTo(ScrimState.PULSING);
+        mScrimController.finishAnimationsImmediately();
+        assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_FULLY_OPAQUE);
+        assertScrimTint(mScrimBehind, true);
     }
 
     @Test
@@ -560,34 +554,6 @@
         Assert.assertTrue(mScrimController.wasAnimationJustCancelled());
     }
 
-    /**
-     * Number of visible notifications affects scrim opacity.
-     */
-    @Test
-    public void testNotificationDensity() {
-        mScrimController.transitionTo(ScrimState.KEYGUARD);
-        mScrimController.finishAnimationsImmediately();
-
-        mScrimController.setNotificationCount(0);
-        mScrimController.finishAnimationsImmediately();
-        Assert.assertEquals("lower density when no notifications",
-                ScrimController.GRADIENT_SCRIM_ALPHA,  mScrimBehind.getViewAlpha(), 0.01f);
-
-        mScrimController.setNotificationCount(3);
-        mScrimController.finishAnimationsImmediately();
-        Assert.assertEquals("stronger density when notifications are visible",
-                ScrimController.GRADIENT_SCRIM_ALPHA_BUSY,  mScrimBehind.getViewAlpha(), 0.01f);
-    }
-
-    /**
-     * Moving from/to states conserves old notification density.
-     */
-    @Test
-    public void testConservesNotificationDensity() {
-        testConservesNotificationDensity(0 /* count */, ScrimController.GRADIENT_SCRIM_ALPHA);
-        testConservesNotificationDensity(3 /* count */, ScrimController.GRADIENT_SCRIM_ALPHA_BUSY);
-    }
-
     @Test
     public void testScrimFocus() {
         mScrimController.transitionTo(ScrimState.AOD);
@@ -662,24 +628,6 @@
                 mScrimBehind.getDefaultFocusHighlightEnabled());
     }
 
-    /**
-     * Conserves old notification density after leaving state and coming back.
-     *
-     * @param count How many notification.
-     * @param expectedAlpha Expected alpha.
-     */
-    private void testConservesNotificationDensity(int count, float expectedAlpha) {
-        mScrimController.setNotificationCount(count);
-        mScrimController.transitionTo(ScrimState.UNLOCKED);
-        mScrimController.finishAnimationsImmediately();
-
-        mScrimController.transitionTo(ScrimState.KEYGUARD);
-        mScrimController.finishAnimationsImmediately();
-
-        Assert.assertEquals("Doesn't respect notification busyness after transition",
-                expectedAlpha,  mScrimBehind.getViewAlpha(), 0.01f);
-    }
-
     private void assertScrimTint(ScrimView scrimView, boolean tinted) {
         final boolean viewIsTinted = scrimView.getTint() != Color.TRANSPARENT;
         final String name = scrimView == mScrimInFront ? "front" : "back";
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 b3ac6be..ed98c62 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
@@ -15,17 +15,23 @@
 package com.android.systemui.statusbar.policy;
 
 import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNotNull;
 
+import android.app.ActivityManager;
 import android.app.PendingIntent;
 import android.app.RemoteInput;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.ShortcutManager;
 import android.os.Handler;
+import android.os.Process;
+import android.os.UserHandle;
 import android.support.test.filters.SmallTest;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
 import android.view.View;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputConnection;
 import android.widget.EditText;
 import android.widget.ImageButton;
 
@@ -53,6 +59,10 @@
     private static final String TEST_REPLY = "hello";
     private static final String TEST_ACTION = "com.android.REMOTE_INPUT_VIEW_ACTION";
 
+    private static final String DUMMY_MESSAGE_APP_PKG =
+            "com.android.sysuitest.dummynotificationsender";
+    private static final int DUMMY_MESSAGE_APP_ID = Process.LAST_APPLICATION_UID - 1;
+
     @Mock private RemoteInputController mController;
     @Mock private ShortcutManager mShortcutManager;
     @Mock private RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler;
@@ -73,9 +83,6 @@
 
         // Avoid SecurityException RemoteInputView#sendRemoteInput().
         mContext.addMockSystemService(ShortcutManager.class, mShortcutManager);
-
-        ExpandableNotificationRow row = new NotificationTestHelper(mContext).createRow();
-        mView = RemoteInputView.inflate(mContext, null, row.getEntry(), mController);
     }
 
     @After
@@ -83,19 +90,27 @@
         mContext.unregisterReceiver(mReceiver);
     }
 
-    @Test
-    public void testSendRemoteInput_intentContainsResultsAndSource() throws InterruptedException {
+    private void setTestPendingIntent(RemoteInputView view) {
         PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0,
                 new Intent(TEST_ACTION), 0);
         RemoteInput input = new RemoteInput.Builder(TEST_RESULT_KEY).build();
 
-        mView.setPendingIntent(pendingIntent);
-        mView.setRemoteInput(new RemoteInput[]{input}, input);
-        mView.focus();
+        view.setPendingIntent(pendingIntent);
+        view.setRemoteInput(new RemoteInput[]{input}, input);
+    }
 
-        EditText editText = mView.findViewById(R.id.remote_input_text);
+    @Test
+    public void testSendRemoteInput_intentContainsResultsAndSource() throws Exception {
+        ExpandableNotificationRow row = new NotificationTestHelper(mContext).createRow();
+        RemoteInputView view = RemoteInputView.inflate(mContext, null, row.getEntry(), mController);
+
+        setTestPendingIntent(view);
+
+        view.focus();
+
+        EditText editText = view.findViewById(R.id.remote_input_text);
         editText.setText(TEST_REPLY);
-        ImageButton sendButton = mView.findViewById(R.id.remote_input_send);
+        ImageButton sendButton = view.findViewById(R.id.remote_input_send);
         sendButton.performClick();
 
         Intent resultIntent = mReceiver.waitForIntent();
@@ -105,10 +120,55 @@
                 RemoteInput.getResultsSource(resultIntent));
     }
 
+    private UserHandle getTargetInputMethodUser(UserHandle fromUser, UserHandle toUser)
+            throws Exception {
+        ExpandableNotificationRow row = new NotificationTestHelper(mContext).createRow(
+                DUMMY_MESSAGE_APP_PKG,
+                UserHandle.getUid(fromUser.getIdentifier(), DUMMY_MESSAGE_APP_ID),
+                toUser);
+        RemoteInputView view = RemoteInputView.inflate(mContext, null, row.getEntry(), mController);
+
+        setTestPendingIntent(view);
+
+        view.focus();
+
+        EditText editText = view.findViewById(R.id.remote_input_text);
+        EditorInfo editorInfo = new EditorInfo();
+        editorInfo.packageName = DUMMY_MESSAGE_APP_PKG;
+        editorInfo.fieldId = editText.getId();
+        InputConnection ic = editText.onCreateInputConnection(editorInfo);
+        assertNotNull(ic);
+        return editorInfo.targetInputMethodUser;
+    }
+
     @Test
-    public void testNoCrashWithoutVisibilityListener() {
-        mView.setOnVisibilityChangedListener(null);
-        mView.setVisibility(View.INVISIBLE);
-        mView.setVisibility(View.VISIBLE);
+    public void testEditorInfoTargetInputMethodUserForCallingUser() throws Exception {
+        UserHandle callingUser = Process.myUserHandle();
+        assertEquals(callingUser, getTargetInputMethodUser(callingUser, callingUser));
+    }
+
+    @Test
+    public void testEditorInfoTargetInputMethodUserForDifferentUser() throws Exception {
+        UserHandle differentUser = UserHandle.of(UserHandle.getCallingUserId() + 1);
+        assertEquals(differentUser, getTargetInputMethodUser(differentUser, differentUser));
+    }
+
+    @Test
+    public void testEditorInfoTargetInputMethodUserForAllUser() throws Exception {
+        // For the special pseudo user UserHandle.ALL, EditorInfo#targetInputMethodUser must be
+        // resolved as the current user.
+        UserHandle callingUser = Process.myUserHandle();
+        assertEquals(UserHandle.of(ActivityManager.getCurrentUser()),
+                getTargetInputMethodUser(callingUser, UserHandle.ALL));
+    }
+
+    @Test
+    public void testNoCrashWithoutVisibilityListener() throws Exception {
+        ExpandableNotificationRow row = new NotificationTestHelper(mContext).createRow();
+        RemoteInputView view = RemoteInputView.inflate(mContext, null, row.getEntry(), mController);
+
+        view.setOnVisibilityChangedListener(null);
+        view.setVisibility(View.INVISIBLE);
+        view.setVisibility(View.VISIBLE);
     }
 }
diff --git a/proto/src/metrics_constants/metrics_constants.proto b/proto/src/metrics_constants/metrics_constants.proto
index a07411d..8261fe8 100644
--- a/proto/src/metrics_constants/metrics_constants.proto
+++ b/proto/src/metrics_constants/metrics_constants.proto
@@ -6814,6 +6814,12 @@
     // OS: Q
     SETTINGS_GESTURE_TAP_SCREEN = 1626;
 
+    // OPEN: Settings > Network & internet > Click Mobile network to land on a page with a list of
+    // SIM/eSIM subscriptions.
+    // CATEGORY: SETTINGS
+    // OS: Q
+    MOBILE_NETWORK_LIST = 1627;
+
     // ---- End Q Constants, all Q constants go above this line ----
     // Add new aosp constants above this line.
     // END OF AOSP CONSTANTS
diff --git a/proto/src/wifi.proto b/proto/src/wifi.proto
index e9ce737..bcc43a7 100644
--- a/proto/src/wifi.proto
+++ b/proto/src/wifi.proto
@@ -485,6 +485,9 @@
 
   // Multiple lists of timestamped link layer stats with labels to represent whether wifi is usable
   repeated WifiUsabilityStats wifi_usability_stats_list = 126;
+
+  // Counts the occurrences of each Wifi usability score provided by external app
+  repeated WifiUsabilityScoreCount wifi_usability_score_count = 127;
 }
 
 // Information that gets logged for every WiFi connection.
@@ -670,6 +673,15 @@
   optional int32 count = 2;
 }
 
+// Counts the number of instances of a specific Wifi Usability Score
+message WifiUsabilityScoreCount {
+  // Wifi Usability Score
+  optional int32 score = 1;
+
+  // Number of Wifi score reports with this score
+  optional int32 count = 2;
+}
+
 // Number of occurrences of a specific link speed (Mbps)
 // and sum of rssi (dBm) and rssi^2 (dBm^2)
 message LinkSpeedCount {
@@ -826,6 +838,10 @@
 
     // Wifi is turned off
     TYPE_WIFI_DISABLED = 19;
+
+    // The NetworkAgent Wifi usability score has changed in a way that may
+    // impact connectivity
+    TYPE_WIFI_USABILITY_SCORE_BREACH = 20;
   }
 
   enum FrameworkDisconnectReason {
@@ -940,6 +956,9 @@
 
   // NetworkAgent score of connected wifi
   optional int32 last_score = 14 [default = -1];
+
+  // NetworkAgent Wifi usability score of connected wifi
+  optional int32 last_wifi_usability_score = 15 [default = -1];
 }
 
 // Wi-Fi Aware metrics
@@ -1653,6 +1672,10 @@
 
   // Firmware alert code. Only valid when the event was triggered by a firmware alert, otherwise -1.
   optional int32 firmware_alert_code = 10 [default = -1];
+
+  // NetworkAgent wifi usability score of connected wifi.
+  // Defaults to -1 if the score was never set.
+  optional int32 last_wifi_usability_score = 11 [default = -1];
 }
 
 message PasspointProfileTypeCount {
@@ -1765,6 +1788,15 @@
   // The total time spent on hotspot2.0 scans and GAS exchange in ms counted from the last radio
   // chip reset
   optional int64 total_hotspot_2_scan_time_ms = 16;
+
+  // Internal framework Wifi score
+  optional int32 wifi_score = 17;
+
+  // Wifi usability score provided by external system app
+  optional int32 wifi_usability_score = 18;
+
+  // Sequence number from external system app to framework
+  optional int32 seq_num_to_framework = 19;
 }
 
 message WifiUsabilityStats {
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index 36ca52a..763c16f 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -16,6 +16,11 @@
 
 package com.android.server.accessibility;
 
+import static android.accessibilityservice.AccessibilityService.SHOW_MODE_AUTO;
+import static android.accessibilityservice.AccessibilityService.SHOW_MODE_HARD_KEYBOARD_ORIGINAL_VALUE;
+import static android.accessibilityservice.AccessibilityService.SHOW_MODE_HARD_KEYBOARD_OVERRIDDEN;
+import static android.accessibilityservice.AccessibilityService.SHOW_MODE_HIDDEN;
+import static android.accessibilityservice.AccessibilityService.SHOW_MODE_IGNORE_HARD_KEYBOARD;
 import static android.accessibilityservice.AccessibilityService.SHOW_MODE_MASK;
 import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
 import static android.view.accessibility.AccessibilityEvent.WINDOWS_CHANGE_ACCESSIBILITY_FOCUSED;
@@ -23,13 +28,9 @@
 import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS;
 import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK;
 import static android.view.accessibility.AccessibilityNodeInfo.ACTION_LONG_CLICK;
+
 import static com.android.internal.util.FunctionalUtils.ignoreRemoteException;
 import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
-import static android.accessibilityservice.AccessibilityService.SHOW_MODE_AUTO;
-import static android.accessibilityservice.AccessibilityService.SHOW_MODE_HIDDEN;
-import static android.accessibilityservice.AccessibilityService.SHOW_MODE_IGNORE_HARD_KEYBOARD;
-import static android.accessibilityservice.AccessibilityService.SHOW_MODE_HARD_KEYBOARD_ORIGINAL_VALUE;
-import static android.accessibilityservice.AccessibilityService.SHOW_MODE_HARD_KEYBOARD_OVERRIDDEN;
 
 import android.Manifest;
 import android.accessibilityservice.AccessibilityService;
@@ -121,6 +122,8 @@
 import com.android.server.wm.ActivityTaskManagerInternal;
 import com.android.server.wm.WindowManagerInternal;
 
+import libcore.util.EmptyArray;
+
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.FileDescriptor;
@@ -139,8 +142,6 @@
 import java.util.function.Consumer;
 import java.util.function.IntSupplier;
 
-import libcore.util.EmptyArray;
-
 /**
  * This class is instantiated by the system as a system level service and can be
  * accessed only by the system. The task of this service is to be a centralized
@@ -1827,8 +1828,6 @@
         updateFilterKeyEventsLocked(userState);
         updateTouchExplorationLocked(userState);
         updatePerformGesturesLocked(userState);
-        updateDisplayDaltonizerLocked(userState);
-        updateDisplayInversionLocked(userState);
         updateMagnificationLocked(userState);
         scheduleUpdateFingerprintGestureHandling(userState);
         scheduleUpdateInputFilter(userState);
@@ -2187,14 +2186,6 @@
         return false;
     }
 
-    private void updateDisplayDaltonizerLocked(UserState userState) {
-        DisplayAdjustmentUtils.applyDaltonizerSetting(mContext, userState.mUserId);
-    }
-
-    private void updateDisplayInversionLocked(UserState userState) {
-        DisplayAdjustmentUtils.applyInversionSetting(mContext, userState.mUserId);
-    }
-
     private void updateMagnificationLocked(UserState userState) {
         if (userState.mUserId != mCurrentUserId) {
             return;
@@ -4104,15 +4095,6 @@
         private final Uri mTouchExplorationGrantedAccessibilityServicesUri = Settings.Secure
                 .getUriFor(Settings.Secure.TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES);
 
-        private final Uri mDisplayInversionEnabledUri = Settings.Secure.getUriFor(
-                Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED);
-
-        private final Uri mDisplayDaltonizerEnabledUri = Settings.Secure.getUriFor(
-                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED);
-
-        private final Uri mDisplayDaltonizerUri = Settings.Secure.getUriFor(
-                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER);
-
         private final Uri mHighTextContrastUri = Settings.Secure.getUriFor(
                 Settings.Secure.ACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED);
 
@@ -4153,12 +4135,6 @@
                     mTouchExplorationGrantedAccessibilityServicesUri,
                     false, this, UserHandle.USER_ALL);
             contentResolver.registerContentObserver(
-                    mDisplayInversionEnabledUri, false, this, UserHandle.USER_ALL);
-            contentResolver.registerContentObserver(
-                    mDisplayDaltonizerEnabledUri, false, this, UserHandle.USER_ALL);
-            contentResolver.registerContentObserver(
-                    mDisplayDaltonizerUri, false, this, UserHandle.USER_ALL);
-            contentResolver.registerContentObserver(
                     mHighTextContrastUri, false, this, UserHandle.USER_ALL);
             contentResolver.registerContentObserver(
                     mAccessibilitySoftKeyboardModeUri, false, this, UserHandle.USER_ALL);
@@ -4202,11 +4178,6 @@
                     if (readTouchExplorationGrantedAccessibilityServicesLocked(userState)) {
                         onUserStateChangedLocked(userState);
                     }
-                } else if (mDisplayDaltonizerEnabledUri.equals(uri)
-                        || mDisplayDaltonizerUri.equals(uri)) {
-                    updateDisplayDaltonizerLocked(userState);
-                } else if (mDisplayInversionEnabledUri.equals(uri)) {
-                    updateDisplayInversionLocked(userState);
                 } else if (mHighTextContrastUri.equals(uri)) {
                     if (readHighTextContrastEnabledSettingLocked(userState)) {
                         onUserStateChangedLocked(userState);
diff --git a/services/accessibility/java/com/android/server/accessibility/DisplayAdjustmentUtils.java b/services/accessibility/java/com/android/server/accessibility/DisplayAdjustmentUtils.java
deleted file mode 100644
index c81a876..0000000
--- a/services/accessibility/java/com/android/server/accessibility/DisplayAdjustmentUtils.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2013 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 com.android.server.accessibility;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.os.Binder;
-import android.provider.Settings.Secure;
-import android.view.accessibility.AccessibilityManager;
-
-import com.android.server.LocalServices;
-import com.android.server.display.DisplayTransformManager;
-
-/**
- * Utility methods for performing accessibility display adjustments.
- */
-class DisplayAdjustmentUtils {
-
-    /** Default inversion mode for display color correction. */
-    private static final int DEFAULT_DISPLAY_DALTONIZER =
-            AccessibilityManager.DALTONIZER_CORRECT_DEUTERANOMALY;
-
-    /** Matrix and offset used for converting color to gray-scale. */
-    private static final float[] MATRIX_GRAYSCALE = new float[] {
-        .2126f, .2126f, .2126f, 0,
-        .7152f, .7152f, .7152f, 0,
-        .0722f, .0722f, .0722f, 0,
-             0,      0,      0, 1
-    };
-
-    /**
-     * Matrix and offset used for luminance inversion. Represents a transform
-     * from RGB to YIQ color space, rotation around the Y axis by 180 degrees,
-     * transform back to RGB color space, and subtraction from 1. The last row
-     * represents a non-multiplied addition, see surfaceflinger's ProgramCache
-     * for full implementation details.
-     */
-    private static final float[] MATRIX_INVERT_COLOR = new float[] {
-        0.402f, -0.598f, -0.599f, 0,
-       -1.174f, -0.174f, -1.175f, 0,
-       -0.228f, -0.228f,  0.772f, 0,
-             1,       1,       1, 1
-    };
-
-    public static void applyDaltonizerSetting(Context context, int userId) {
-        final ContentResolver cr = context.getContentResolver();
-        final DisplayTransformManager dtm = LocalServices.getService(DisplayTransformManager.class);
-
-        int daltonizerMode = AccessibilityManager.DALTONIZER_DISABLED;
-        long identity = Binder.clearCallingIdentity();
-        try {
-            if (Secure.getIntForUser(cr,
-                    Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, 0, userId) != 0) {
-                daltonizerMode = Secure.getIntForUser(cr,
-                        Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, DEFAULT_DISPLAY_DALTONIZER, userId);
-            }
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
-
-        float[] grayscaleMatrix = null;
-        if (daltonizerMode == AccessibilityManager.DALTONIZER_SIMULATE_MONOCHROMACY) {
-            // Monochromacy isn't supported by the native Daltonizer.
-            grayscaleMatrix = MATRIX_GRAYSCALE;
-            daltonizerMode = AccessibilityManager.DALTONIZER_DISABLED;
-        }
-        dtm.setColorMatrix(DisplayTransformManager.LEVEL_COLOR_MATRIX_GRAYSCALE, grayscaleMatrix);
-        dtm.setDaltonizerMode(daltonizerMode);
-    }
-
-    /**
-     * Applies the specified user's display color adjustments.
-     */
-    public static void applyInversionSetting(Context context, int userId) {
-        final ContentResolver cr = context.getContentResolver();
-        final DisplayTransformManager dtm = LocalServices.getService(DisplayTransformManager.class);
-
-        long identity = Binder.clearCallingIdentity();
-        try {
-            final boolean invertColors = Secure.getIntForUser(cr,
-                    Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, 0, userId) != 0;
-            dtm.setColorMatrix(DisplayTransformManager.LEVEL_COLOR_MATRIX_INVERT_COLOR,
-                    invertColors ? MATRIX_INVERT_COLOR : null);
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
-    }
-}
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index d6f3e2b..00550d9 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -1494,6 +1494,9 @@
             newNc.setUids(null);
             newNc.setSSID(null);
         }
+        if (newNc.getNetworkSpecifier() != null) {
+            newNc.setNetworkSpecifier(newNc.getNetworkSpecifier().redact());
+        }
         return newNc;
     }
 
@@ -5358,7 +5361,8 @@
         }
         switch (notificationType) {
             case ConnectivityManager.CALLBACK_AVAILABLE: {
-                putParcelable(bundle, new NetworkCapabilities(networkAgent.networkCapabilities));
+                putParcelable(bundle, networkCapabilitiesRestrictedForCallerPermissions(
+                        networkAgent.networkCapabilities, nri.mPid, nri.mUid));
                 putParcelable(bundle, new LinkProperties(networkAgent.linkProperties));
                 // For this notification, arg1 contains the blocked status.
                 msg.arg1 = arg1;
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index 0b4c01e..add5e5f 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -46,7 +46,6 @@
 import android.content.pm.Signature;
 import android.content.res.Resources;
 import android.database.ContentObserver;
-import android.hardware.location.ActivityRecognitionHardware;
 import android.location.Address;
 import android.location.Criteria;
 import android.location.GeocoderParams;
@@ -93,7 +92,6 @@
 import com.android.internal.util.DumpUtils;
 import com.android.internal.util.Preconditions;
 import com.android.server.location.AbstractLocationProvider;
-import com.android.server.location.ActivityRecognitionProxy;
 import com.android.server.location.GeocoderProxy;
 import com.android.server.location.GeofenceManager;
 import com.android.server.location.GeofenceProxy;
@@ -738,25 +736,6 @@
             Slog.d(TAG, "Unable to bind FLP Geofence proxy.");
         }
 
-        // bind to hardware activity recognition
-        boolean activityRecognitionHardwareIsSupported = ActivityRecognitionHardware.isSupported();
-        ActivityRecognitionHardware activityRecognitionHardware = null;
-        if (activityRecognitionHardwareIsSupported) {
-            activityRecognitionHardware = ActivityRecognitionHardware.getInstance(mContext);
-        } else {
-            Slog.d(TAG, "Hardware Activity-Recognition not supported.");
-        }
-        ActivityRecognitionProxy proxy = ActivityRecognitionProxy.createAndBind(
-                mContext,
-                activityRecognitionHardwareIsSupported,
-                activityRecognitionHardware,
-                com.android.internal.R.bool.config_enableActivityRecognitionHardwareOverlay,
-                com.android.internal.R.string.config_activityRecognitionHardwarePackageName,
-                com.android.internal.R.array.config_locationProviderPackageNames);
-        if (proxy == null) {
-            Slog.d(TAG, "Unable to bind ActivityRecognitionProxy.");
-        }
-
         String[] testProviderStrings = resources.getStringArray(
                 com.android.internal.R.array.config_testLocationProviders);
         for (String testProviderString : testProviderStrings) {
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index 2a80644..7731c04 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -780,6 +780,13 @@
             });
         refreshZramSettings();
 
+        // Schedule zram writeback unless zram is disabled by persist.sys.zram_enabled
+        String zramPropValue = SystemProperties.get(ZRAM_ENABLED_PROPERTY);
+        if (!zramPropValue.equals("0")
+                && mContext.getResources().getBoolean(
+                    com.android.internal.R.bool.config_zramWriteback)) {
+            ZramWriteback.scheduleZramWriteback(mContext);
+        }
         // Toggle isolated-enable system property in response to settings
         mContext.getContentResolver().registerContentObserver(
             Settings.Global.getUriFor(Settings.Global.ISOLATED_STORAGE_REMOTE),
@@ -813,6 +820,12 @@
             // changing the property value. There's no race: we're the
             // sole writer.
             SystemProperties.set(ZRAM_ENABLED_PROPERTY, desiredPropertyValue);
+            // Schedule writeback only if zram is being enabled.
+            if (desiredPropertyValue.equals("1")
+                    && mContext.getResources().getBoolean(
+                        com.android.internal.R.bool.config_zramWriteback)) {
+                ZramWriteback.scheduleZramWriteback(mContext);
+            }
         }
     }
 
@@ -3275,7 +3288,8 @@
         }
 
         final int mountMode = mAmInternal.getStorageMountMode(pid, uid);
-        if (mountMode == Zygote.MOUNT_EXTERNAL_FULL) {
+        if (mountMode == Zygote.MOUNT_EXTERNAL_FULL
+                || mountMode == Zygote.MOUNT_EXTERNAL_LEGACY) {
             return path;
         }
 
@@ -3650,12 +3664,13 @@
                 return Zygote.MOUNT_EXTERNAL_FULL;
             } else if (mIAppOpsService.checkOperation(OP_LEGACY_STORAGE, uid,
                     packageName) == MODE_ALLOWED) {
-                // TODO: define a specific "legacy" mount mode
-                return Zygote.MOUNT_EXTERNAL_FULL;
+                return Zygote.MOUNT_EXTERNAL_LEGACY;
             } else if (mIPackageManager.checkUidPermission(INSTALL_PACKAGES, uid)
                     == PERMISSION_GRANTED || mIAppOpsService.checkOperation(
                             OP_REQUEST_INSTALL_PACKAGES, uid, packageName) == MODE_ALLOWED) {
                 return Zygote.MOUNT_EXTERNAL_INSTALLER;
+            } else if (mPmInternal.isInstantApp(packageName, UserHandle.getUserId(uid))) {
+                return Zygote.MOUNT_EXTERNAL_NONE;
             } else {
                 return Zygote.MOUNT_EXTERNAL_WRITE;
             }
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index cbf6d04..aa23890 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -32,6 +32,8 @@
 import android.os.Message;
 import android.os.RemoteException;
 import android.os.UserHandle;
+import android.telephony.CallAttributes;
+import android.telephony.CallQuality;
 import android.telephony.CellInfo;
 import android.telephony.CellLocation;
 import android.telephony.DataFailCause;
@@ -173,6 +175,8 @@
 
     private ServiceState[] mServiceState;
 
+    private int[] mNetworkType;
+
     private int[] mVoiceActivationState;
 
     private int[] mDataActivationState;
@@ -202,6 +206,10 @@
 
     private Map<Integer, List<EmergencyNumber>> mEmergencyNumberList;
 
+    private CallQuality mCallQuality;
+
+    private CallAttributes mCallAttributes;
+
     private int[] mSrvccState;
 
     private int mDefaultSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
@@ -358,6 +366,7 @@
         mDataConnectionNetworkType = new int[numPhones];
         mCallIncomingNumber = new String[numPhones];
         mServiceState = new ServiceState[numPhones];
+        mNetworkType = new int[numPhones];
         mVoiceActivationState = new int[numPhones];
         mDataActivationState = new int[numPhones];
         mUserMobileDataState = new boolean[numPhones];
@@ -377,6 +386,7 @@
             mDataActivationState[i] = TelephonyManager.SIM_ACTIVATION_STATE_UNKNOWN;
             mCallIncomingNumber[i] =  "";
             mServiceState[i] =  new ServiceState();
+            mNetworkType[i] = mServiceState[i].getVoiceNetworkType();
             mSignalStrength[i] =  new SignalStrength();
             mUserMobileDataState[i] = false;
             mMessageWaiting[i] =  false;
@@ -807,6 +817,13 @@
                             remove(r.binder);
                         }
                     }
+                    if ((events & PhoneStateListener.LISTEN_CALL_ATTRIBUTES_CHANGED) != 0) {
+                        try {
+                            r.callback.onCallAttributesChanged(mCallAttributes);
+                        } catch (RemoteException ex) {
+                            remove(r.binder);
+                        }
+                    }
                 }
             }
         } else {
@@ -957,6 +974,21 @@
             if (validatePhoneId(phoneId)) {
                 mServiceState[phoneId] = state;
 
+                boolean notifyCallAttributes = true;
+                if (mNetworkType[phoneId] != mServiceState[phoneId].getVoiceNetworkType()) {
+                    mNetworkType[phoneId] = state.getVoiceNetworkType();
+                    mCallAttributes = new CallAttributes(mPreciseCallState, mNetworkType[phoneId],
+                            mCallQuality);
+                } else {
+                    // No change to network type, so no need to notify call attributes
+                    notifyCallAttributes = false;
+                }
+
+                if (mCallQuality == null) {
+                    // No call quality reported yet, so no need to notify call attributes
+                    notifyCallAttributes = false;
+                }
+
                 for (Record r : mRecords) {
                     if (VDBG) {
                         log("notifyServiceStateForSubscriber: r=" + r + " subId=" + subId
@@ -975,6 +1007,14 @@
                             mRemoveList.add(r.binder);
                         }
                     }
+                    if (notifyCallAttributes && r.matchPhoneStateListenerEvent(
+                                    PhoneStateListener.LISTEN_CALL_ATTRIBUTES_CHANGED)) {
+                        try {
+                            r.callback.onCallAttributesChanged(mCallAttributes);
+                        } catch (RemoteException ex) {
+                            mRemoveList.add(r.binder);
+                        }
+                    }
                 }
             } else {
                 log("notifyServiceStateForSubscriber: INVALID phoneId=" + phoneId);
@@ -1484,7 +1524,7 @@
     }
 
     public void notifyPreciseCallState(int ringingCallState, int foregroundCallState,
-            int backgroundCallState) {
+            int backgroundCallState, int phoneId) {
         if (!checkNotifyPermission("notifyPreciseCallState()")) {
             return;
         }
@@ -1496,6 +1536,15 @@
                     backgroundCallState,
                     DisconnectCause.NOT_VALID,
                     PreciseDisconnectCause.NOT_VALID);
+            boolean notifyCallAttributes = true;
+            if (mCallQuality == null) {
+                log("notifyPreciseCallState: mCallQuality is null, skipping call attributes");
+                notifyCallAttributes = false;
+            } else {
+                mCallAttributes = new CallAttributes(mPreciseCallState, mNetworkType[phoneId],
+                        mCallQuality);
+            }
+
             for (Record r : mRecords) {
                 if (r.matchPhoneStateListenerEvent(PhoneStateListener.LISTEN_PRECISE_CALL_STATE)) {
                     try {
@@ -1504,6 +1553,14 @@
                         mRemoveList.add(r.binder);
                     }
                 }
+                if (notifyCallAttributes && r.matchPhoneStateListenerEvent(
+                        PhoneStateListener.LISTEN_CALL_ATTRIBUTES_CHANGED)) {
+                    try {
+                        r.callback.onCallAttributesChanged(mCallAttributes);
+                    } catch (RemoteException ex) {
+                        mRemoveList.add(r.binder);
+                    }
+                }
             }
             handleRemoveListLocked();
         }
@@ -1721,6 +1778,36 @@
         }
     }
 
+    @Override
+    public void notifyCallQualityChanged(CallQuality callQuality, int phoneId) {
+        if (!checkNotifyPermission("notifyCallQualityChanged()")) {
+            return;
+        }
+
+        // merge CallQuality with PreciseCallState and network type
+        mCallQuality = callQuality;
+        mCallAttributes = new CallAttributes(mPreciseCallState,
+                mNetworkType[phoneId],
+                callQuality);
+
+        synchronized (mRecords) {
+            TelephonyManager tm = (TelephonyManager) mContext.getSystemService(
+                    Context.TELEPHONY_SERVICE);
+
+            for (Record r : mRecords) {
+                if (r.matchPhoneStateListenerEvent(
+                        PhoneStateListener.LISTEN_CALL_ATTRIBUTES_CHANGED)) {
+                    try {
+                        r.callback.onCallAttributesChanged(mCallAttributes);
+                    } catch (RemoteException ex) {
+                        mRemoveList.add(r.binder);
+                    }
+                }
+            }
+            handleRemoveListLocked();
+        }
+    }
+
 
     @Override
     public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
@@ -1738,6 +1825,7 @@
                 pw.println("mCallState=" + mCallState[i]);
                 pw.println("mCallIncomingNumber=" + mCallIncomingNumber[i]);
                 pw.println("mServiceState=" + mServiceState[i]);
+                pw.println("mNetworkType=" + mNetworkType[i]);
                 pw.println("mVoiceActivationState= " + mVoiceActivationState[i]);
                 pw.println("mDataActivationState= " + mDataActivationState[i]);
                 pw.println("mUserMobileDataState= " + mUserMobileDataState[i]);
@@ -1763,6 +1851,8 @@
             pw.println("mPreferredDataSubId=" + mPreferredDataSubId);
             pw.println("mRadioPowerState=" + mRadioPowerState);
             pw.println("mEmergencyNumberList=" + mEmergencyNumberList);
+            pw.println("mCallQuality=" + mCallQuality);
+            pw.println("mCallAttributes=" + mCallAttributes);
 
             pw.decreaseIndent();
 
@@ -2020,6 +2110,11 @@
                     android.Manifest.permission.READ_PRECISE_PHONE_STATE, null);
         }
 
+        if ((events & PhoneStateListener.LISTEN_CALL_ATTRIBUTES_CHANGED) != 0) {
+            mContext.enforceCallingOrSelfPermission(
+                    android.Manifest.permission.READ_PRECISE_PHONE_STATE, null);
+        }
+
         return true;
     }
 
diff --git a/services/core/java/com/android/server/ZramWriteback.java b/services/core/java/com/android/server/ZramWriteback.java
new file mode 100644
index 0000000..3a4aff2
--- /dev/null
+++ b/services/core/java/com/android/server/ZramWriteback.java
@@ -0,0 +1,187 @@
+/*
+ * 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 com.android.server;
+
+import android.app.job.JobInfo;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
+import android.app.job.JobService;
+import android.content.ComponentName;
+import android.content.Context;
+import android.os.FileUtils;
+import android.os.SystemProperties;
+import android.util.Slog;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Schedules jobs for triggering zram writeback.
+ */
+public final class ZramWriteback extends JobService {
+    private static final String TAG = "ZramWriteback";
+    private static final boolean DEBUG = false;
+
+    private static final ComponentName sZramWriteback =
+            new ComponentName("android", ZramWriteback.class.getName());
+
+    private static final int MARK_IDLE_JOB_ID = 811;
+    private static final int WRITEBACK_IDLE_JOB_ID = 812;
+
+    private static final int MAX_ZRAM_DEVICES = 256;
+    private static int sZramDeviceId = 0;
+
+    private static final String IDLE_SYS = "/sys/block/zram%d/idle";
+    private static final String IDLE_SYS_ALL_PAGES = "all";
+
+    private static final String WB_SYS = "/sys/block/zram%d/writeback";
+    private static final String WB_SYS_IDLE_PAGES = "idle";
+
+    private static final String WB_STATS_SYS = "/sys/block/zram%d/bd_stat";
+    private static final int WB_STATS_MAX_FILE_SIZE = 128;
+
+    private static final String BDEV_SYS = "/sys/block/zram%d/backing_dev";
+
+    private static final String MARK_IDLE_DELAY_PROP = "ro.zram.mark_idle_delay_mins";
+    private static final String FIRST_WB_DELAY_PROP = "ro.zram.first_wb_delay_mins";
+    private static final String PERIODIC_WB_DELAY_PROP = "ro.zram.periodic_wb_delay_hours";
+
+    private void markPagesAsIdle() {
+        String idlePath = String.format(IDLE_SYS, sZramDeviceId);
+        try {
+            FileUtils.stringToFile(new File(idlePath), IDLE_SYS_ALL_PAGES);
+        } catch (IOException e) {
+            Slog.e(TAG, "Failed to write to " + idlePath);
+        }
+    }
+
+    private void flushIdlePages() {
+        if (DEBUG) Slog.d(TAG, "Start writing back idle pages to disk");
+        String wbPath = String.format(WB_SYS, sZramDeviceId);
+        try {
+            FileUtils.stringToFile(new File(wbPath), WB_SYS_IDLE_PAGES);
+        } catch (IOException e) {
+            Slog.e(TAG, "Failed to write to " + wbPath);
+        }
+        if (DEBUG) Slog.d(TAG, "Finished writeback back idle pages");
+    }
+
+    private int getWrittenPageCount() {
+        String wbStatsPath = String.format(WB_STATS_SYS, sZramDeviceId);
+        try {
+            String wbStats = FileUtils
+                    .readTextFile(new File(wbStatsPath), WB_STATS_MAX_FILE_SIZE, "");
+            return Integer.parseInt(wbStats.trim().split("\\s+")[2], 10);
+        } catch (IOException e) {
+            Slog.e(TAG, "Failed to read writeback stats from " + wbStatsPath);
+        }
+
+        return -1;
+    }
+
+    private void markAndFlushPages() {
+        int pageCount = getWrittenPageCount();
+
+        flushIdlePages();
+        markPagesAsIdle();
+
+        if (pageCount != -1) {
+            Slog.i(TAG, "Total pages written to disk is " + (getWrittenPageCount() - pageCount));
+        }
+    }
+
+    private static boolean isWritebackEnabled() {
+        try {
+            String backingDev = FileUtils
+                    .readTextFile(new File(String.format(BDEV_SYS, sZramDeviceId)), 128, "");
+            if (!"none".equals(backingDev.trim())) {
+                return true;
+            } else {
+                Slog.w(TAG, "Writeback device is not set");
+            }
+        } catch (IOException e) {
+            Slog.w(TAG, "Writeback is not enabled on zram");
+        }
+        return false;
+    }
+
+    private static void schedNextWriteback(Context context) {
+        int nextWbDelay = SystemProperties.getInt(PERIODIC_WB_DELAY_PROP, 24);
+        JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+
+        js.schedule(new JobInfo.Builder(WRITEBACK_IDLE_JOB_ID, sZramWriteback)
+                        .setMinimumLatency(TimeUnit.HOURS.toMillis(nextWbDelay))
+                        .setRequiresDeviceIdle(true)
+                        .build());
+    }
+
+    @Override
+    public boolean onStartJob(JobParameters params) {
+
+        if (!isWritebackEnabled()) {
+            jobFinished(params, false);
+            return false;
+        }
+
+        if (params.getJobId() == MARK_IDLE_JOB_ID) {
+            markPagesAsIdle();
+            jobFinished(params, false);
+            return false;
+        } else {
+            new Thread("ZramWriteback_WritebackIdlePages") {
+                @Override
+                public void run() {
+                    markAndFlushPages();
+                    schedNextWriteback(ZramWriteback.this);
+                    jobFinished(params, false);
+                }
+            }.start();
+        }
+        return true;
+    }
+
+    @Override
+    public boolean onStopJob(JobParameters params) {
+        // The thread that triggers the writeback is non-interruptible
+        return false;
+    }
+
+    /**
+     * Schedule the zram writeback job to trigger a writeback when idle
+     */
+    public static void scheduleZramWriteback(Context context) {
+        int markIdleDelay = SystemProperties.getInt(MARK_IDLE_DELAY_PROP, 20);
+        int firstWbDelay = SystemProperties.getInt(FIRST_WB_DELAY_PROP, 180);
+
+        JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+
+        // Schedule a one time job to mark pages as idle. These pages will be written
+        // back at later point if they remain untouched.
+        js.schedule(new JobInfo.Builder(MARK_IDLE_JOB_ID, sZramWriteback)
+                        .setMinimumLatency(TimeUnit.MINUTES.toMillis(markIdleDelay))
+                        .build());
+
+        // Schedule a one time job to flush idle pages to disk.
+        // After the initial writeback, subsequent writebacks are done at interval set
+        // by ro.zram.periodic_wb_delay_hours.
+        js.schedule(new JobInfo.Builder(WRITEBACK_IDLE_JOB_ID, sZramWriteback)
+                        .setMinimumLatency(TimeUnit.MINUTES.toMillis(firstWbDelay))
+                        .setRequiresDeviceIdle(true)
+                        .build());
+    }
+}
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java
index 1f9362e..dc03369 100644
--- a/services/core/java/com/android/server/am/OomAdjuster.java
+++ b/services/core/java/com/android/server/am/OomAdjuster.java
@@ -132,8 +132,11 @@
         mActiveUids = activeUids;
 
         mLocalPowerManager = LocalServices.getService(PowerManagerInternal.class);
-        mAppCompact = new AppCompactor(mService);
         mConstants = mService.mConstants;
+        // mConstants can be null under test, which causes AppCompactor to crash
+        if (mConstants != null) {
+            mAppCompact = new AppCompactor(mService);
+        }
     }
 
     /**
diff --git a/services/core/java/com/android/server/am/PendingIntentRecord.java b/services/core/java/com/android/server/am/PendingIntentRecord.java
index 98c9ad6..55cca95 100644
--- a/services/core/java/com/android/server/am/PendingIntentRecord.java
+++ b/services/core/java/com/android/server/am/PendingIntentRecord.java
@@ -389,8 +389,9 @@
 
                         if (key.allIntents != null && key.allIntents.length > 1) {
                             res = controller.mAtmInternal.startActivitiesInPackage(
-                                    uid, key.packageName, allIntents, allResolvedTypes, resultTo,
-                                    mergedOptions, userId, false /* validateIncomingUser */,
+                                    uid, callingPid, callingUid, key.packageName, allIntents,
+                                    allResolvedTypes, resultTo, mergedOptions, userId,
+                                    false /* validateIncomingUser */,
                                     this /* originatingPendingIntent */,
                                     mAllowBgActivityStartsForActivitySender.contains(whitelistToken));
                         } else {
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index 5bc8845..c1be387 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -1678,12 +1678,14 @@
             AppZygote appZygote = mAppZygotes.get(app.info.processName, app.info.uid);
             final ArrayList<ProcessRecord> zygoteProcessList;
             if (appZygote == null) {
-                final int userId = UserHandle.getUserId(app.info.uid);
                 final IsolatedUidRange uidRange =
                         mAppIsolatedUidRangeAllocator.getIsolatedUidRangeLocked(app.info);
-                // Allocate an isolated UID out of this range for the Zygote itself
-                final int zygoteIsolatedUid = uidRange.allocateIsolatedUidLocked(userId);
-                appZygote = new AppZygote(app.info, zygoteIsolatedUid);
+                final int userId = UserHandle.getUserId(app.info.uid);
+                // Create the app-zygote and provide it with the UID-range it's allowed
+                // to setresuid/setresgid to.
+                final int firstUid = UserHandle.getUid(userId, uidRange.mFirstUid);
+                final int lastUid = UserHandle.getUid(userId, uidRange.mLastUid);
+                appZygote = new AppZygote(app.info, app.info.uid, firstUid, lastUid);
                 mAppZygotes.put(app.info.processName, app.info.uid, appZygote);
                 zygoteProcessList = new ArrayList<ProcessRecord>();
                 mAppZygoteProcesses.put(appZygote, zygoteProcessList);
diff --git a/services/core/java/com/android/server/attention/AttentionManagerService.java b/services/core/java/com/android/server/attention/AttentionManagerService.java
new file mode 100644
index 0000000..f60d6b0
--- /dev/null
+++ b/services/core/java/com/android/server/attention/AttentionManagerService.java
@@ -0,0 +1,548 @@
+/*
+ * 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 com.android.server.attention;
+
+import android.Manifest;
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
+import android.app.ActivityManager;
+import android.attention.AttentionManagerInternal;
+import android.attention.AttentionManagerInternal.AttentionCallbackInternal;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.ServiceConnection;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
+import android.os.Binder;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.RemoteException;
+import android.os.SystemClock;
+import android.os.UserHandle;
+import android.service.attention.AttentionService;
+import android.service.attention.AttentionService.AttentionFailureCodes;
+import android.service.attention.IAttentionCallback;
+import android.service.attention.IAttentionService;
+import android.text.TextUtils;
+import android.util.Slog;
+import android.util.SparseArray;
+
+import com.android.internal.R;
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.DumpUtils;
+import com.android.internal.util.IndentingPrintWriter;
+import com.android.internal.util.Preconditions;
+import com.android.server.SystemService;
+
+import java.io.PrintWriter;
+
+/**
+ * An attention service implementation that runs in System Server process.
+ * This service publishes a LocalService and reroutes calls to a {@link AttentionService} that it
+ * manages.
+ */
+public class AttentionManagerService extends SystemService {
+    private static final String LOG_TAG = "AttentionManagerService";
+
+    /** Service will unbind if connection is not used for that amount of time. */
+    private static final long CONNECTION_TTL_MILLIS = 60_000;
+
+    /** If the check attention called within that period - cached value will be returned. */
+    private static final long STALE_AFTER_MILLIS = 5_000;
+
+    private final Context mContext;
+    private final PowerManager mPowerManager;
+    private final ActivityManager mActivityManager;
+    private final Object mLock;
+    @GuardedBy("mLock")
+    private final SparseArray<UserState> mUserStates = new SparseArray<>();
+    private final AttentionHandler mAttentionHandler;
+
+    private ComponentName mComponentName;
+
+    public AttentionManagerService(Context context) {
+        super(context);
+        mContext = Preconditions.checkNotNull(context);
+        mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+        mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
+        mLock = new Object();
+        mAttentionHandler = new AttentionHandler();
+    }
+
+    @Override
+    public void onStart() {
+        publishLocalService(AttentionManagerInternal.class, new LocalService());
+    }
+
+    @Override
+    public void onStopUser(int userId) {
+        cancelAndUnbindLocked(peekUserStateLocked(userId),
+                AttentionService.ATTENTION_FAILURE_UNKNOWN);
+    }
+
+    @Override
+    public void onBootPhase(int phase) {
+        super.onBootPhase(phase);
+        if (phase == SystemService.PHASE_THIRD_PARTY_APPS_CAN_START) {
+            mComponentName = resolveAttentionService(mContext);
+            if (mComponentName != null) {
+                // If the service is supported we want to keep receiving the screen off events.
+                mContext.registerReceiver(new ScreenStateReceiver(),
+                        new IntentFilter(Intent.ACTION_SCREEN_OFF));
+            }
+        }
+    }
+
+    /**
+     * Returns {@code true} if attention service is supported on this device.
+     */
+    public boolean isAttentionServiceSupported() {
+        return mComponentName != null;
+    }
+
+    /**
+     * Checks whether user attention is at the screen and calls in the provided callback.
+     *
+     * @return {@code true} if the framework was able to send the provided callback to the service
+     */
+    public boolean checkAttention(int requestCode, long timeout,
+            AttentionCallbackInternal callback) {
+        Preconditions.checkNotNull(callback);
+
+        if (!isAttentionServiceSupported()) {
+            Slog.w(LOG_TAG, "Trying to call checkAttention() on an unsupported device.");
+            return false;
+        }
+
+        // don't allow attention check in screen off state
+        if (!mPowerManager.isInteractive()) {
+            return false;
+        }
+
+        synchronized (mLock) {
+            unbindAfterTimeoutLocked();
+
+            final UserState userState = getOrCreateCurrentUserStateLocked();
+            // lazily start the service, which should be very lightweight to start
+            if (!userState.bindLocked()) {
+                return false;
+            }
+
+            if (userState.mService == null) {
+                // make sure every callback is called back
+                if (userState.mPendingAttentionCheck != null) {
+                    userState.mPendingAttentionCheck.cancel(
+                            AttentionService.ATTENTION_FAILURE_UNKNOWN);
+                }
+                userState.mPendingAttentionCheck = new PendingAttentionCheck(requestCode,
+                        callback, () -> checkAttention(requestCode, timeout, callback));
+            } else {
+                try {
+                    // throttle frequent requests
+                    final AttentionCheckCache attentionCheckCache = userState.mAttentionCheckCache;
+                    if (attentionCheckCache != null && SystemClock.uptimeMillis()
+                            < attentionCheckCache.mLastComputed + STALE_AFTER_MILLIS) {
+                        callback.onSuccess(requestCode, attentionCheckCache.mResult,
+                                attentionCheckCache.mTimestamp);
+                        return true;
+                    }
+
+                    cancelAfterTimeoutLocked(timeout);
+
+                    userState.mCurrentAttentionCheckRequestCode = requestCode;
+                    userState.mService.checkAttention(requestCode, new IAttentionCallback.Stub() {
+                        @Override
+                        public void onSuccess(int requestCode, int result, long timestamp) {
+                            callback.onSuccess(requestCode, result, timestamp);
+                            userState.mAttentionCheckCache = new AttentionCheckCache(
+                                    SystemClock.uptimeMillis(), result,
+                                    timestamp);
+                        }
+
+                        @Override
+                        public void onFailure(int requestCode, int error) {
+                            callback.onFailure(requestCode, error);
+                        }
+
+                        @Override
+                        public IBinder asBinder() {
+                            return null;
+                        }
+                    });
+                } catch (RemoteException e) {
+                    Slog.e(LOG_TAG, "Cannot call into the AttentionService");
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
+    /** Cancels the specified attention check. */
+    public void cancelAttentionCheck(int requestCode) {
+        final UserState userState = getOrCreateCurrentUserStateLocked();
+        try {
+            userState.mService.cancelAttentionCheck(requestCode);
+        } catch (RemoteException e) {
+            Slog.e(LOG_TAG, "Cannot call into the AttentionService");
+        }
+    }
+
+    @GuardedBy("mLock")
+    private void unbindAfterTimeoutLocked() {
+        mAttentionHandler.sendEmptyMessageDelayed(AttentionHandler.CONNECTION_EXPIRED,
+                CONNECTION_TTL_MILLIS);
+    }
+
+    @GuardedBy("mLock")
+    private void cancelAfterTimeoutLocked(long timeout) {
+        mAttentionHandler.sendEmptyMessageDelayed(AttentionHandler.ATTENTION_CHECK_TIMEOUT,
+                timeout);
+    }
+
+
+    @GuardedBy("mLock")
+    private UserState getOrCreateCurrentUserStateLocked() {
+        return getOrCreateUserStateLocked(mActivityManager.getCurrentUser());
+    }
+
+    @GuardedBy("mLock")
+    private UserState getOrCreateUserStateLocked(int userId) {
+        UserState result = mUserStates.get(userId);
+        if (result == null) {
+            result = new UserState(userId, mContext, mLock);
+            mUserStates.put(userId, result);
+        }
+        return result;
+    }
+
+    @GuardedBy("mLock")
+    UserState peekCurrentUserStateLocked() {
+        return peekUserStateLocked(mActivityManager.getCurrentUser());
+    }
+
+    @GuardedBy("mLock")
+    UserState peekUserStateLocked(int userId) {
+        return mUserStates.get(userId);
+    }
+
+    /**
+     * Provides attention service component name at runtime, making sure it's provided by the
+     * system.
+     */
+    private static ComponentName resolveAttentionService(Context context) {
+        // TODO(b/111939367): add a flag to turn on/off.
+        final String componentNameString = context.getString(
+                R.string.config_defaultAttentionService);
+
+        if (TextUtils.isEmpty(componentNameString)) {
+            return null;
+        }
+
+        final ComponentName componentName = ComponentName.unflattenFromString(componentNameString);
+        if (componentName == null) {
+            return null;
+        }
+
+        final Intent intent = new Intent(AttentionService.SERVICE_INTERFACE).setPackage(
+                componentName.getPackageName());
+
+        // Make sure that only system apps can declare the AttentionService.
+        final ResolveInfo resolveInfo = context.getPackageManager().resolveService(intent,
+                PackageManager.MATCH_SYSTEM_ONLY);
+        if (resolveInfo == null || resolveInfo.serviceInfo == null) {
+            Slog.wtf(LOG_TAG, String.format("Service %s not found in package %s",
+                    AttentionService.SERVICE_INTERFACE, componentName
+            ));
+            return null;
+        }
+
+        final ServiceInfo serviceInfo = resolveInfo.serviceInfo;
+        final String permission = serviceInfo.permission;
+        if (Manifest.permission.BIND_ATTENTION_SERVICE.equals(permission)) {
+            return serviceInfo.getComponentName();
+        }
+        Slog.e(LOG_TAG, String.format(
+                "Service %s should require %s permission. Found %s permission",
+                serviceInfo.getComponentName(),
+                Manifest.permission.BIND_ATTENTION_SERVICE,
+                serviceInfo.permission));
+        return null;
+    }
+
+    private void dumpInternal(PrintWriter pw) {
+        if (!DumpUtils.checkDumpPermission(mContext, LOG_TAG, pw)) return;
+        IndentingPrintWriter ipw = new IndentingPrintWriter(pw, "  ");
+        ipw.println("Attention Manager Service (dumpsys attention)\n");
+
+        ipw.printPair("context", mContext);
+        pw.println();
+        synchronized (mLock) {
+            int size = mUserStates.size();
+            ipw.print("Number user states: ");
+            pw.println(size);
+            if (size > 0) {
+                ipw.increaseIndent();
+                for (int i = 0; i < size; i++) {
+                    UserState userState = mUserStates.valueAt(i);
+                    ipw.print(i);
+                    ipw.print(":");
+                    userState.dump(ipw);
+                    ipw.println();
+                }
+                ipw.decreaseIndent();
+            }
+        }
+    }
+
+    private final class LocalService extends AttentionManagerInternal {
+        @Override
+        public boolean isAttentionServiceSupported() {
+            return AttentionManagerService.this.isAttentionServiceSupported();
+        }
+
+        @Override
+        public boolean checkAttention(int requestCode, long timeout,
+                AttentionCallbackInternal callback) {
+            return AttentionManagerService.this.checkAttention(requestCode, timeout, callback);
+        }
+
+        @Override
+        public void cancelAttentionCheck(int requestCode) {
+            AttentionManagerService.this.cancelAttentionCheck(requestCode);
+        }
+    }
+
+    private static final class AttentionCheckCache {
+        private final long mLastComputed;
+        private final int mResult;
+        private final long mTimestamp;
+
+        AttentionCheckCache(long lastComputed, @AttentionService.AttentionSuccessCodes int result,
+                long timestamp) {
+            mLastComputed = lastComputed;
+            mResult = result;
+            mTimestamp = timestamp;
+        }
+    }
+
+    private static final class PendingAttentionCheck {
+        private final int mRequestCode;
+        private final AttentionCallbackInternal mCallback;
+        private final Runnable mRunnable;
+
+        PendingAttentionCheck(int requestCode, AttentionCallbackInternal callback,
+                Runnable runnable) {
+            mRequestCode = requestCode;
+            mCallback = callback;
+            mRunnable = runnable;
+        }
+
+        void cancel(@AttentionFailureCodes int failureCode) {
+            mCallback.onFailure(mRequestCode, failureCode);
+        }
+
+        void run() {
+            mRunnable.run();
+        }
+    }
+
+    private static final class UserState {
+        final AttentionServiceConnection mConnection = new AttentionServiceConnection();
+
+        @GuardedBy("mLock")
+        IAttentionService mService;
+        @GuardedBy("mLock")
+        boolean mBinding;
+        @GuardedBy("mLock")
+        int mCurrentAttentionCheckRequestCode;
+        @GuardedBy("mLock")
+        PendingAttentionCheck mPendingAttentionCheck;
+
+        @GuardedBy("mLock")
+        AttentionCheckCache mAttentionCheckCache;
+
+        @UserIdInt
+        final int mUserId;
+        final Context mContext;
+        final Object mLock;
+
+        private UserState(int userId, Context context, Object lock) {
+            mUserId = userId;
+            mContext = Preconditions.checkNotNull(context);
+            mLock = Preconditions.checkNotNull(lock);
+        }
+
+
+        @GuardedBy("mLock")
+        private void handlePendingCallbackLocked() {
+            if (mService != null && mPendingAttentionCheck != null) {
+                mPendingAttentionCheck.run();
+                mPendingAttentionCheck = null;
+            }
+        }
+
+        /** Binds to the system's AttentionService which provides an actual implementation. */
+        @GuardedBy("mLock")
+        private boolean bindLocked() {
+            // No need to bind if service is binding or has already been bound.
+            if (mBinding || mService != null) {
+                return true;
+            }
+
+            final boolean willBind;
+            final long identity = Binder.clearCallingIdentity();
+
+            try {
+                final ComponentName componentName =
+                        resolveAttentionService(mContext);
+                if (componentName == null) {
+                    // Might happen if the storage is encrypted and the user is not unlocked
+                    return false;
+                }
+                final Intent mServiceIntent = new Intent(
+                        AttentionService.SERVICE_INTERFACE).setComponent(
+                        componentName);
+                willBind = mContext.bindServiceAsUser(mServiceIntent, mConnection,
+                        Context.BIND_AUTO_CREATE, UserHandle.CURRENT);
+                mBinding = willBind;
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+            return willBind;
+        }
+
+        private void dump(IndentingPrintWriter pw) {
+            pw.printPair("context", mContext);
+            pw.printPair("userId", mUserId);
+            synchronized (mLock) {
+                pw.printPair("binding", mBinding);
+                pw.printPair("isAttentionCheckPending", mPendingAttentionCheck != null);
+            }
+        }
+
+        private final class AttentionServiceConnection implements ServiceConnection {
+            @Override
+            public void onServiceConnected(ComponentName name, IBinder service) {
+                init(IAttentionService.Stub.asInterface(service));
+            }
+
+            @Override
+            public void onServiceDisconnected(ComponentName name) {
+                cleanupService();
+            }
+
+            @Override
+            public void onBindingDied(ComponentName name) {
+                cleanupService();
+            }
+
+            @Override
+            public void onNullBinding(ComponentName name) {
+                cleanupService();
+            }
+
+            void cleanupService() {
+                init(null);
+            }
+
+            private void init(@Nullable IAttentionService service) {
+                synchronized (mLock) {
+                    mService = service;
+                    mBinding = false;
+                    handlePendingCallbackLocked();
+                }
+            }
+        }
+    }
+
+    private class AttentionHandler extends Handler {
+        private static final int CONNECTION_EXPIRED = 1;
+        private static final int ATTENTION_CHECK_TIMEOUT = 2;
+
+        AttentionHandler() {
+            super(Looper.myLooper());
+        }
+
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                // Do not occupy resources when not in use - unbind proactively.
+                case CONNECTION_EXPIRED: {
+                    for (int i = 0; i < mUserStates.size(); i++) {
+                        cancelAndUnbindLocked(mUserStates.valueAt(i),
+                                AttentionService.ATTENTION_FAILURE_UNKNOWN);
+                    }
+
+                }
+                break;
+
+                // Callee is no longer interested in the attention check result - cancel.
+                case ATTENTION_CHECK_TIMEOUT: {
+                    cancelAndUnbindLocked(peekCurrentUserStateLocked(),
+                            AttentionService.ATTENTION_FAILURE_TIMED_OUT);
+                }
+                break;
+
+                default:
+                    break;
+            }
+        }
+    }
+
+    @GuardedBy("mLock")
+    private void cancelAndUnbindLocked(UserState userState,
+            @AttentionFailureCodes int failureCode) {
+        synchronized (mLock) {
+            if (userState != null && userState.mService != null) {
+                try {
+                    userState.mService.cancelAttentionCheck(
+                            userState.mCurrentAttentionCheckRequestCode);
+                } catch (RemoteException e) {
+                    Slog.e(LOG_TAG, "Unable to cancel attention check");
+                }
+
+                if (userState.mPendingAttentionCheck != null) {
+                    userState.mPendingAttentionCheck.cancel(failureCode);
+                }
+                mContext.unbindService(userState.mConnection);
+                userState.mConnection.cleanupService();
+                mUserStates.remove(userState.mUserId);
+            }
+        }
+    }
+
+    /**
+     * Unbinds and stops the service when the screen off intent is received.
+     * Attention service only makes sense when screen is ON; disconnect and stop service otherwise.
+     */
+    private final class ScreenStateReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (Intent.ACTION_SCREEN_OFF.equals(intent.getAction())) {
+                cancelAndUnbindLocked(peekCurrentUserStateLocked(),
+                        AttentionService.ATTENTION_FAILURE_UNKNOWN);
+            }
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 9a4ca1f..11299b6 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -38,6 +38,8 @@
 import android.bluetooth.BluetoothA2dp;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothCodecConfig;
+import android.bluetooth.BluetoothCodecStatus;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHeadset;
 import android.bluetooth.BluetoothHearingAid;
@@ -268,6 +270,7 @@
     private static final int MSG_DISABLE_AUDIO_FOR_UID = 104;
     private static final int MSG_SET_HEARING_AID_CONNECTION_STATE = 105;
     private static final int MSG_BTA2DP_DOCK_TIMEOUT = 106;
+    private static final int MSG_A2DP_ACTIVE_DEVICE_CHANGE = 107;
     // end of messages handled under wakelock
 
     private static final int BTA2DP_DOCK_TIMEOUT_MILLIS = 8000;
@@ -480,16 +483,20 @@
         int mDeviceType;
         String mDeviceName;
         String mDeviceAddress;
+        int mDeviceCodecFormat;
 
-        public DeviceListSpec(int deviceType, String deviceName, String deviceAddress) {
+        DeviceListSpec(int deviceType, String deviceName, String deviceAddress,
+                int deviceCodecFormat) {
             mDeviceType = deviceType;
             mDeviceName = deviceName;
             mDeviceAddress = deviceAddress;
+            mDeviceCodecFormat = deviceCodecFormat;
         }
 
         public String toString() {
             return "[type:0x" + Integer.toHexString(mDeviceType) + " name:" + mDeviceName
-                    + " address:" + mDeviceAddress + "]";
+                    + " address:" + mDeviceAddress
+                    + " codec: " + Integer.toHexString(mDeviceCodecFormat) + "]";
         }
     }
 
@@ -501,6 +508,52 @@
 
     private final ArrayMap<String, DeviceListSpec> mConnectedDevices = new ArrayMap<>();
 
+    private class BluetoothA2dpDeviceInfo {
+        BluetoothDevice mBtDevice;
+        int mVolume;
+        int mCodec;
+
+        BluetoothA2dpDeviceInfo(BluetoothDevice btDevice) {
+            this(btDevice, -1, AudioSystem.AUDIO_FORMAT_DEFAULT);
+        }
+
+        BluetoothA2dpDeviceInfo(BluetoothDevice btDevice,
+                     int volume, int codec) {
+            mBtDevice = btDevice;
+            mVolume = volume;
+            mCodec = codec;
+        }
+
+        public BluetoothDevice getBtDevice() {
+            return mBtDevice;
+        }
+
+        public int getVolume() {
+            return mVolume;
+        }
+
+        public int getCodec() {
+            return mCodec;
+        }
+    }
+
+    private int mapBluetoothCodecToAudioFormat(int btCodecType) {
+        switch (btCodecType) {
+            case BluetoothCodecConfig.SOURCE_CODEC_TYPE_SBC:
+                return AudioSystem.AUDIO_FORMAT_SBC;
+            case BluetoothCodecConfig.SOURCE_CODEC_TYPE_AAC:
+                return AudioSystem.AUDIO_FORMAT_AAC;
+            case BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX:
+                return AudioSystem.AUDIO_FORMAT_APTX;
+            case BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_HD:
+                return AudioSystem.AUDIO_FORMAT_APTX_HD;
+            case BluetoothCodecConfig.SOURCE_CODEC_TYPE_LDAC:
+                return AudioSystem.AUDIO_FORMAT_LDAC;
+            default:
+                return AudioSystem.AUDIO_FORMAT_DEFAULT;
+        }
+    }
+
     // Forced device usage for communications
     private int mForcedUseForComm;
     private int mForcedUseForCommExt; // External state returned by getters: always consistent
@@ -1020,7 +1073,8 @@
                                                 spec.mDeviceType,
                                                 AudioSystem.DEVICE_STATE_AVAILABLE,
                                                 spec.mDeviceAddress,
-                                                spec.mDeviceName);
+                                                spec.mDeviceName,
+                                                spec.mDeviceCodecFormat);
             }
         }
         // Restore call state
@@ -1614,7 +1668,9 @@
 
         // For notifications/ring, show the ui before making any adjustments
         // Don't suppress mute/unmute requests
-        if (mVolumeController.suppressAdjustment(resolvedStream, flags, isMute)) {
+        // Don't suppress adjustments for single volume device
+        if (mVolumeController.suppressAdjustment(resolvedStream, flags, isMute)
+                && !mIsSingleVolume) {
             direction = 0;
             flags &= ~AudioManager.FLAG_PLAY_SOUND;
             flags &= ~AudioManager.FLAG_VIBRATE;
@@ -3904,8 +3960,8 @@
                             queueMsgUnderWakeLock(mAudioHandler,
                                     MSG_SET_A2DP_SINK_CONNECTION_STATE,
                                     state,
-                                    -1,
-                                    btDevice,
+                                    0 /* arg2 unused */,
+                                    new BluetoothA2dpDeviceInfo(btDevice),
                                     delay);
                         }
                     }
@@ -3922,7 +3978,7 @@
                                 MSG_SET_A2DP_SRC_CONNECTION_STATE,
                                 state,
                                 0 /* arg2 unused */,
-                                btDevice,
+                                new BluetoothA2dpDeviceInfo(btDevice),
                                 0 /* delay */);
                     }
                 }
@@ -4618,6 +4674,7 @@
                 msg == MSG_SET_HEARING_AID_CONNECTION_STATE ||
                 msg == MSG_SET_WIRED_DEVICE_CONNECTION_STATE ||
                 msg == MSG_A2DP_DEVICE_CONFIG_CHANGE ||
+                msg == MSG_A2DP_ACTIVE_DEVICE_CHANGE ||
                 msg == MSG_BTA2DP_DOCK_TIMEOUT) {
                 if (mLastDeviceConnectMsgTime >= time) {
                   // add a little delay to make sure messages are ordered as expected
@@ -4687,6 +4744,17 @@
         }
     }
 
+    private int getA2dpCodec(BluetoothDevice device) {
+        synchronized (mA2dpAvrcpLock) {
+            if (mA2dp != null) {
+                BluetoothCodecStatus btCodecStatus = mA2dp.getCodecStatus(device);
+                BluetoothCodecConfig btCodecConfig = btCodecStatus.getCodecConfig();
+                return mapBluetoothCodecToAudioFormat(btCodecConfig.getCodecType());
+            }
+            return AudioSystem.AUDIO_FORMAT_DEFAULT;
+        }
+    }
+
     /*
      * A class just for packaging up a set of connection parameters.
      */
@@ -4751,14 +4819,16 @@
         return delay;
     }
 
-    public int setBluetoothA2dpDeviceConnectionState(BluetoothDevice device, int state, int profile)
+    public int setBluetoothA2dpDeviceConnectionState(
+            BluetoothDevice device, int state, int profile)
     {
         return setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(
-                device, state, profile, false /* suppressNoisyIntent */, -1 /* a2dpVolume */);
+                device, state, profile, false /* suppressNoisyIntent */,
+                -1 /* a2dpVolume */);
     }
 
     public int setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(BluetoothDevice device,
-                int state, int profile, boolean suppressNoisyIntent, int a2dpVolume)
+            int state, int profile, boolean suppressNoisyIntent, int a2dpVolume)
     {
         mDeviceLogger.log((new AudioEventLogger.StringEvent(
                 "setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent state=" + state
@@ -4771,7 +4841,8 @@
             return 0;
         }
         return setBluetoothA2dpDeviceConnectionStateInt(
-                device, state, profile, suppressNoisyIntent, AudioSystem.DEVICE_NONE, a2dpVolume);
+                device, state, profile, suppressNoisyIntent,
+                AudioSystem.DEVICE_NONE, a2dpVolume);
     }
 
     public int setBluetoothA2dpDeviceConnectionStateInt(
@@ -4791,18 +4862,20 @@
                 delay = 0;
             }
 
+            int a2dpCodec = getA2dpCodec(device);
+
             if (DEBUG_DEVICES) {
                 Log.d(TAG, "setBluetoothA2dpDeviceConnectionStateInt device: " + device
-                      + " state: " + state + " delay(ms): " + delay
-                      + " suppressNoisyIntent: " + suppressNoisyIntent);
+                        + " state: " + state + " delay(ms): " + delay + "codec:" + a2dpCodec
+                        + " suppressNoisyIntent: " + suppressNoisyIntent);
             }
 
             queueMsgUnderWakeLock(mAudioHandler,
                     (profile == BluetoothProfile.A2DP ?
                         MSG_SET_A2DP_SINK_CONNECTION_STATE : MSG_SET_A2DP_SRC_CONNECTION_STATE),
                     state,
-                    a2dpVolume,
-                    device,
+                    0, /* arg2 unused */
+                    new BluetoothA2dpDeviceInfo(device, a2dpVolume, a2dpCodec),
                     delay);
         }
         return delay;
@@ -4811,15 +4884,71 @@
     public void handleBluetoothA2dpDeviceConfigChange(BluetoothDevice device)
     {
         synchronized (mConnectedDevices) {
+            int a2dpCodec = getA2dpCodec(device);
             queueMsgUnderWakeLock(mAudioHandler,
                     MSG_A2DP_DEVICE_CONFIG_CHANGE,
                     0 /* arg1 unused */,
-                    0 /* arg1 unused */,
-                    device,
+                    0 /* arg2 unused */,
+                    new BluetoothA2dpDeviceInfo(device, -1, a2dpCodec),
                     0 /* delay */);
         }
     }
 
+    /**
+     * @see AudioManager#handleBluetoothA2dpActiveDeviceChange(BluetoothDevice, int, int,
+     *                                                          boolean, int)
+     */
+    public int handleBluetoothA2dpActiveDeviceChange(
+            BluetoothDevice device, int state, int profile, boolean suppressNoisyIntent,
+            int a2dpVolume) {
+        if (profile != BluetoothProfile.A2DP && profile != BluetoothProfile.A2DP_SINK) {
+            throw new IllegalArgumentException("invalid profile " + profile);
+        }
+
+        synchronized (mConnectedDevices) {
+            if (state == BluetoothA2dp.STATE_CONNECTED) {
+                for (int i = 0; i < mConnectedDevices.size(); i++) {
+                    DeviceListSpec deviceSpec = mConnectedDevices.valueAt(i);
+                    if (deviceSpec.mDeviceType != AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP) {
+                        continue;
+                    }
+                    // If A2DP device exists, this is either an active device change or
+                    // device config change
+                    String existingDevicekey = mConnectedDevices.keyAt(i);
+                    String deviceName = device.getName();
+                    String address = device.getAddress();
+                    String newDeviceKey = makeDeviceListKey(
+                            AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, address);
+                    int a2dpCodec = getA2dpCodec(device);
+                    // Device not equal to existing device, active device change
+                    if (!TextUtils.equals(existingDevicekey, newDeviceKey)) {
+                        mConnectedDevices.remove(existingDevicekey);
+                        mConnectedDevices.put(newDeviceKey, new DeviceListSpec(
+                                AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, deviceName,
+                                address, a2dpCodec));
+                        queueMsgUnderWakeLock(mAudioHandler,
+                                MSG_A2DP_ACTIVE_DEVICE_CHANGE,
+                                0,
+                                0,
+                                new BluetoothA2dpDeviceInfo(
+                                        device, a2dpVolume, a2dpCodec),
+                                0 /* delay */);
+                        return 0;
+                    } else {
+                        // Device config change for existing device
+                        handleBluetoothA2dpDeviceConfigChange(device);
+                        return 0;
+                    }
+                }
+            }
+        }
+
+        // New device connection or a device disconnect
+        return setBluetoothA2dpDeviceConnectionStateInt(
+                    device, state, profile, suppressNoisyIntent,
+                    AudioSystem.DEVICE_NONE, a2dpVolume);
+    }
+
     private static final int DEVICE_MEDIA_UNMUTED_ON_PLUG =
             AudioSystem.DEVICE_OUT_WIRED_HEADSET | AudioSystem.DEVICE_OUT_WIRED_HEADPHONE |
             AudioSystem.DEVICE_OUT_LINE |
@@ -5697,7 +5826,7 @@
                 case MSG_BTA2DP_DOCK_TIMEOUT:
                     // msg.obj  == address of BTA2DP device
                     synchronized (mConnectedDevices) {
-                        makeA2dpDeviceUnavailableNow( (String) msg.obj );
+                        makeA2dpDeviceUnavailableNow((String) msg.obj, msg.arg1);
                     }
                     mAudioEventWakeLock.release();
                     break;
@@ -5722,12 +5851,12 @@
                     break;
 
                 case MSG_SET_A2DP_SRC_CONNECTION_STATE:
-                    onSetA2dpSourceConnectionState((BluetoothDevice)msg.obj, msg.arg1);
+                    onSetA2dpSourceConnectionState((BluetoothA2dpDeviceInfo) msg.obj, msg.arg1);
                     mAudioEventWakeLock.release();
                     break;
 
                 case MSG_SET_A2DP_SINK_CONNECTION_STATE:
-                    onSetA2dpSinkConnectionState((BluetoothDevice)msg.obj, msg.arg1, msg.arg2);
+                    onSetA2dpSinkConnectionState((BluetoothA2dpDeviceInfo) msg.obj, msg.arg1);
                     mAudioEventWakeLock.release();
                     break;
 
@@ -5737,7 +5866,12 @@
                     break;
 
                 case MSG_A2DP_DEVICE_CONFIG_CHANGE:
-                    onBluetoothA2dpDeviceConfigChange((BluetoothDevice)msg.obj);
+                    onBluetoothA2dpDeviceConfigChange((BluetoothA2dpDeviceInfo) msg.obj);
+                    mAudioEventWakeLock.release();
+                    break;
+
+                case MSG_A2DP_ACTIVE_DEVICE_CHANGE:
+                    onBluetoothA2dpActiveDeviceChange((BluetoothA2dpDeviceInfo) msg.obj);
                     mAudioEventWakeLock.release();
                     break;
 
@@ -5911,19 +6045,20 @@
     }
 
     // must be called synchronized on mConnectedDevices
-    private void makeA2dpDeviceAvailable(String address, String name, String eventSource) {
+    private void makeA2dpDeviceAvailable(
+            String address, String name, String eventSource, int a2dpCodec) {
         // enable A2DP before notifying A2DP connection to avoid unnecessary processing in
         // audio policy manager
         VolumeStreamState streamState = mStreamStates[AudioSystem.STREAM_MUSIC];
         setBluetoothA2dpOnInt(true, eventSource);
         AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP,
-                AudioSystem.DEVICE_STATE_AVAILABLE, address, name);
+                AudioSystem.DEVICE_STATE_AVAILABLE, address, name, a2dpCodec);
         // Reset A2DP suspend state each time a new sink is connected
         AudioSystem.setParameters("A2dpSuspended=false");
         mConnectedDevices.put(
                 makeDeviceListKey(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, address),
                 new DeviceListSpec(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, name,
-                                   address));
+                                   address, a2dpCodec));
         sendMsg(mAudioHandler, MSG_ACCESSORY_PLUG_MEDIA_UNMUTE, SENDMSG_QUEUE,
                 AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, 0, null, 0);
         setCurrentAudioRouteNameIfPossible(name);
@@ -5936,7 +6071,7 @@
     }
 
     // must be called synchronized on mConnectedDevices
-    private void makeA2dpDeviceUnavailableNow(String address) {
+    private void makeA2dpDeviceUnavailableNow(String address, int a2dpCodec) {
         if (address == null) {
             return;
         }
@@ -5944,7 +6079,7 @@
             mAvrcpAbsVolSupported = false;
         }
         AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP,
-                AudioSystem.DEVICE_STATE_UNAVAILABLE, address, "");
+                AudioSystem.DEVICE_STATE_UNAVAILABLE, address, "", a2dpCodec);
         mConnectedDevices.remove(
                 makeDeviceListKey(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, address));
         // Remove A2DP routes as well
@@ -5959,32 +6094,38 @@
         // prevent any activity on the A2DP audio output to avoid unwanted
         // reconnection of the sink.
         AudioSystem.setParameters("A2dpSuspended=true");
+        // Retrieve deviceSpec before removing device
+        String deviceKey = makeDeviceListKey(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, address);
+        DeviceListSpec deviceSpec = mConnectedDevices.get(deviceKey);
+        int a2dpCodec = deviceSpec != null ? deviceSpec.mDeviceCodecFormat :
+                                AudioSystem.AUDIO_FORMAT_DEFAULT;
         // the device will be made unavailable later, so consider it disconnected right away
-        mConnectedDevices.remove(
-                makeDeviceListKey(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, address));
+        mConnectedDevices.remove(deviceKey);
         // send the delayed message to make the device unavailable later
         queueMsgUnderWakeLock(mAudioHandler,
-            MSG_BTA2DP_DOCK_TIMEOUT,
-            0,
-            0,
-            address,
-            delayMs);
+                MSG_BTA2DP_DOCK_TIMEOUT,
+                a2dpCodec,
+                0,
+                address,
+                delayMs);
     }
 
     // must be called synchronized on mConnectedDevices
     private void makeA2dpSrcAvailable(String address) {
         AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_IN_BLUETOOTH_A2DP,
-                AudioSystem.DEVICE_STATE_AVAILABLE, address, "");
+                AudioSystem.DEVICE_STATE_AVAILABLE, address, "",
+                AudioSystem.AUDIO_FORMAT_DEFAULT);
         mConnectedDevices.put(
                 makeDeviceListKey(AudioSystem.DEVICE_IN_BLUETOOTH_A2DP, address),
                 new DeviceListSpec(AudioSystem.DEVICE_IN_BLUETOOTH_A2DP, "",
-                                   address));
+                                   address, AudioSystem.AUDIO_FORMAT_DEFAULT));
     }
 
     // must be called synchronized on mConnectedDevices
     private void makeA2dpSrcUnavailable(String address) {
         AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_IN_BLUETOOTH_A2DP,
-                AudioSystem.DEVICE_STATE_UNAVAILABLE, address, "");
+                AudioSystem.DEVICE_STATE_UNAVAILABLE, address, "",
+                AudioSystem.AUDIO_FORMAT_DEFAULT);
         mConnectedDevices.remove(
                 makeDeviceListKey(AudioSystem.DEVICE_IN_BLUETOOTH_A2DP, address));
     }
@@ -6008,11 +6149,12 @@
         setHearingAidVolume(index, AudioSystem.STREAM_MUSIC);
 
         AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_HEARING_AID,
-                AudioSystem.DEVICE_STATE_AVAILABLE, address, name);
+                AudioSystem.DEVICE_STATE_AVAILABLE, address, name,
+                AudioSystem.AUDIO_FORMAT_DEFAULT);
         mConnectedDevices.put(
                 makeDeviceListKey(AudioSystem.DEVICE_OUT_HEARING_AID, address),
                 new DeviceListSpec(AudioSystem.DEVICE_OUT_HEARING_AID, name,
-                                   address));
+                                   address, AudioSystem.AUDIO_FORMAT_DEFAULT));
         sendMsg(mAudioHandler, MSG_ACCESSORY_PLUG_MEDIA_UNMUTE, SENDMSG_QUEUE,
                 AudioSystem.DEVICE_OUT_HEARING_AID, 0, null, 0);
         sendMsg(mAudioHandler, MSG_SET_DEVICE_VOLUME, SENDMSG_QUEUE,
@@ -6024,7 +6166,8 @@
     // must be called synchronized on mConnectedDevices
     private void makeHearingAidDeviceUnavailable(String address) {
         AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_HEARING_AID,
-                AudioSystem.DEVICE_STATE_UNAVAILABLE, address, "");
+                AudioSystem.DEVICE_STATE_UNAVAILABLE, address, "",
+                AudioSystem.AUDIO_FORMAT_DEFAULT);
         mConnectedDevices.remove(
                 makeDeviceListKey(AudioSystem.DEVICE_OUT_HEARING_AID, address));
         // Remove Hearing Aid routes as well
@@ -6041,15 +6184,23 @@
         return mAudioHandler.hasMessages(MSG_BTA2DP_DOCK_TIMEOUT);
     }
 
-    private void onSetA2dpSinkConnectionState(BluetoothDevice btDevice, int state, int a2dpVolume)
+    private void onSetA2dpSinkConnectionState(BluetoothA2dpDeviceInfo btInfo, int state)
     {
-        if (DEBUG_DEVICES) {
-            Log.d(TAG, "onSetA2dpSinkConnectionState btDevice= " + btDevice+" state= " + state
-                + " is dock: "+btDevice.isBluetoothDock());
+        if (btInfo == null) {
+            return;
         }
+
+        BluetoothDevice btDevice = btInfo.getBtDevice();
+        int a2dpVolume = btInfo.getVolume();
+        int a2dpCodec = btInfo.getCodec();
+
         if (btDevice == null) {
             return;
         }
+        if (DEBUG_DEVICES) {
+            Log.d(TAG, "onSetA2dpSinkConnectionState btDevice= " + btDevice + " state= " + state
+                    + " is dock: " + btDevice.isBluetoothDock());
+        }
         String address = btDevice.getAddress();
         if (!BluetoothAdapter.checkBluetoothAddress(address)) {
             address = "";
@@ -6071,7 +6222,7 @@
                         // the next time isConnected is evaluated, it will be false for the dock
                     }
                 } else {
-                    makeA2dpDeviceUnavailableNow(address);
+                    makeA2dpDeviceUnavailableNow(address, deviceSpec.mDeviceCodecFormat);
                 }
             } else if (!isConnected && state == BluetoothProfile.STATE_CONNECTED) {
                 if (btDevice.isBluetoothDock()) {
@@ -6083,7 +6234,8 @@
                     // a dock: cancel the dock timeout, and make the dock unavailable now
                     if (hasScheduledA2dpDockTimeout() && mDockAddress != null) {
                         cancelA2dpDeviceTimeout();
-                        makeA2dpDeviceUnavailableNow(mDockAddress);
+                        makeA2dpDeviceUnavailableNow(mDockAddress,
+                                AudioSystem.AUDIO_FORMAT_DEFAULT);
                     }
                 }
                 if (a2dpVolume != -1) {
@@ -6095,13 +6247,18 @@
                     setDeviceVolume(streamState, AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP);
                 }
                 makeA2dpDeviceAvailable(address, btDevice.getName(),
-                        "onSetA2dpSinkConnectionState");
+                        "onSetA2dpSinkConnectionState", a2dpCodec);
             }
         }
     }
 
-    private void onSetA2dpSourceConnectionState(BluetoothDevice btDevice, int state)
+    private void onSetA2dpSourceConnectionState(BluetoothA2dpDeviceInfo btInfo, int state)
     {
+        if (btInfo == null) {
+            return;
+        }
+        BluetoothDevice btDevice = btInfo.getBtDevice();
+
         if (DEBUG_VOL) {
             Log.d(TAG, "onSetA2dpSourceConnectionState btDevice=" + btDevice + " state=" + state);
         }
@@ -6176,14 +6333,20 @@
         return false;
     }
 
-    private void onBluetoothA2dpDeviceConfigChange(BluetoothDevice btDevice)
+    private void onBluetoothA2dpDeviceConfigChange(BluetoothA2dpDeviceInfo btInfo)
     {
-        if (DEBUG_DEVICES) {
-            Log.d(TAG, "onBluetoothA2dpDeviceConfigChange btDevice=" + btDevice);
+        if (btInfo == null) {
+            return;
         }
+        BluetoothDevice btDevice = btInfo.getBtDevice();
+        int a2dpCodec = btInfo.getCodec();
+
         if (btDevice == null) {
             return;
         }
+        if (DEBUG_DEVICES) {
+            Log.d(TAG, "onBluetoothA2dpDeviceConfigChange btDevice=" + btDevice);
+        }
         String address = btDevice.getAddress();
         if (!BluetoothAdapter.checkBluetoothAddress(address)) {
             address = "";
@@ -6200,17 +6363,84 @@
             }
             final String key = makeDeviceListKey(device, address);
             final DeviceListSpec deviceSpec = mConnectedDevices.get(key);
-            if (deviceSpec != null) {
-                // Device is connected
-               int musicDevice = getDeviceForStream(AudioSystem.STREAM_MUSIC);
-               if (AudioSystem.handleDeviceConfigChange(device, address,
-                        btDevice.getName()) != AudioSystem.AUDIO_STATUS_OK) {
-                   // force A2DP device disconnection in case of error so that AudioService state is
-                   // consistent with audio policy manager state
-                   setBluetoothA2dpDeviceConnectionStateInt(
-                           btDevice, BluetoothA2dp.STATE_DISCONNECTED, BluetoothProfile.A2DP,
-                           false /* suppressNoisyIntent */, musicDevice, -1 /* a2dpVolume */);
-               }
+            if (deviceSpec == null) {
+                return;
+            }
+            // Device is connected
+            if (deviceSpec.mDeviceCodecFormat != a2dpCodec) {
+                deviceSpec.mDeviceCodecFormat = a2dpCodec;
+                mConnectedDevices.replace(key, deviceSpec);
+            }
+            if (DEBUG_DEVICES) {
+                Log.d(TAG, "onBluetoothA2dpDeviceConfigChange: codec="
+                        + deviceSpec.mDeviceCodecFormat);
+            }
+            if (AudioSystem.handleDeviceConfigChange(device, address,
+                       btDevice.getName(), deviceSpec.mDeviceCodecFormat)
+                       != AudioSystem.AUDIO_STATUS_OK) {
+                int musicDevice = getDeviceForStream(AudioSystem.STREAM_MUSIC);
+                // force A2DP device disconnection in case of error so that AudioService state is
+                // consistent with audio policy manager state
+                setBluetoothA2dpDeviceConnectionStateInt(
+                        btDevice, BluetoothA2dp.STATE_DISCONNECTED, BluetoothProfile.A2DP,
+                        false /* suppressNoisyIntent */, musicDevice, -1 /* a2dpVolume */);
+            }
+        }
+    }
+
+    /** message handler for MSG_A2DP_ACTIVE_DEVICE_CHANGE */
+    public void onBluetoothA2dpActiveDeviceChange(BluetoothA2dpDeviceInfo btInfo) {
+        if (btInfo == null) {
+            return;
+        }
+        BluetoothDevice btDevice = btInfo.getBtDevice();
+        int a2dpVolume = btInfo.getVolume();
+        int a2dpCodec = btInfo.getCodec();
+
+        if (btDevice == null) {
+            return;
+        }
+        if (DEBUG_DEVICES) {
+            Log.d(TAG, "onBluetoothA2dpActiveDeviceChange btDevice=" + btDevice);
+        }
+        String address = btDevice.getAddress();
+        if (!BluetoothAdapter.checkBluetoothAddress(address)) {
+            address = "";
+        }
+        mDeviceLogger.log(new AudioEventLogger.StringEvent(
+                "onBluetoothA2dpActiveDeviceChange addr=" + address));
+
+        int device = AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP;
+        synchronized (mConnectedDevices) {
+            if (mAudioHandler.hasMessages(MSG_SET_A2DP_SINK_CONNECTION_STATE, btDevice)) {
+                mDeviceLogger.log(new AudioEventLogger.StringEvent(
+                        "A2dp config change ignored"));
+                return;
+            }
+            final String key = makeDeviceListKey(device, address);
+            final DeviceListSpec deviceSpec = mConnectedDevices.get(key);
+            if (deviceSpec == null) {
+                return;
+            }
+
+            // Device is connected
+            if (a2dpVolume != -1) {
+                VolumeStreamState streamState = mStreamStates[AudioSystem.STREAM_MUSIC];
+                // Convert index to internal representation in VolumeStreamState
+                a2dpVolume = a2dpVolume * 10;
+                streamState.setIndex(a2dpVolume, device,
+                        "onBluetoothA2dpActiveDeviceChange");
+                setDeviceVolume(streamState, device);
+            }
+
+            if (AudioSystem.handleDeviceConfigChange(device, address,
+                    btDevice.getName(), a2dpCodec) != AudioSystem.AUDIO_STATUS_OK) {
+                int musicDevice = getDeviceForStream(AudioSystem.STREAM_MUSIC);
+                // force A2DP device disconnection in case of error so that AudioService state is
+                // consistent with audio policy manager state
+                setBluetoothA2dpDeviceConnectionStateInt(
+                        btDevice, BluetoothA2dp.STATE_DISCONNECTED, BluetoothProfile.A2DP,
+                        false /* suppressNoisyIntent */, musicDevice, -1 /* a2dpVolume */);
             }
         }
     }
@@ -6243,19 +6473,22 @@
             }
             if (connect && !isConnected) {
                 final int res = AudioSystem.setDeviceConnectionState(device,
-                        AudioSystem.DEVICE_STATE_AVAILABLE, address, deviceName);
+                        AudioSystem.DEVICE_STATE_AVAILABLE, address, deviceName,
+                        AudioSystem.AUDIO_FORMAT_DEFAULT);
                 if (res != AudioSystem.AUDIO_STATUS_OK) {
                     Slog.e(TAG, "not connecting device 0x" + Integer.toHexString(device) +
                             " due to command error " + res );
                     return false;
                 }
-                mConnectedDevices.put(deviceKey, new DeviceListSpec(device, deviceName, address));
+                mConnectedDevices.put(deviceKey, new DeviceListSpec(device,
+                                deviceName, address, AudioSystem.AUDIO_FORMAT_DEFAULT));
                 sendMsg(mAudioHandler, MSG_ACCESSORY_PLUG_MEDIA_UNMUTE, SENDMSG_QUEUE,
                         device, 0, null, 0);
                 return true;
             } else if (!connect && isConnected) {
                 AudioSystem.setDeviceConnectionState(device,
-                        AudioSystem.DEVICE_STATE_UNAVAILABLE, address, deviceName);
+                        AudioSystem.DEVICE_STATE_UNAVAILABLE, address, deviceName,
+                        AudioSystem.AUDIO_FORMAT_DEFAULT);
                 // always remove even if disconnection failed
                 mConnectedDevices.remove(deviceKey);
                 return true;
diff --git a/services/core/java/com/android/server/display/AppSaturationController.java b/services/core/java/com/android/server/display/AppSaturationController.java
new file mode 100644
index 0000000..5d5e4f7
--- /dev/null
+++ b/services/core/java/com/android/server/display/AppSaturationController.java
@@ -0,0 +1,213 @@
+/*
+ * 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 com.android.server.display;
+
+import android.annotation.UserIdInt;
+import android.util.SparseArray;
+
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.display.ColorDisplayService.ColorTransformController;
+
+import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+class AppSaturationController {
+
+    private final Object mLock = new Object();
+
+    /**
+     * A package name has one or more userIds it is running under. Each userId has zero or one
+     * saturation level, and zero or more ColorTransformControllers.
+     */
+    @GuardedBy("mLock")
+    private final Map<String, SparseArray<SaturationController>> mAppsMap = new HashMap<>();
+
+    @VisibleForTesting
+    static final float[] TRANSLATION_VECTOR = {0f, 0f, 0f};
+
+    /**
+     * Add an {@link WeakReference<ColorTransformController>} for a given package and userId.
+     */
+    boolean addColorTransformController(String packageName, @UserIdInt int userId,
+            WeakReference<ColorTransformController> controller) {
+        synchronized (mLock) {
+            return getSaturationControllerLocked(packageName, userId)
+                    .addColorTransformController(controller);
+        }
+    }
+
+    /**
+     * Set the saturation level ({@code ColorDisplayManager#SaturationLevel} constant for a given
+     * package name and userId.
+     */
+    public boolean setSaturationLevel(String packageName, @UserIdInt int userId,
+            int saturationLevel) {
+        synchronized (mLock) {
+            return getSaturationControllerLocked(packageName, userId)
+                    .setSaturationLevel(saturationLevel);
+        }
+    }
+
+    /**
+     * Dump state information.
+     */
+    public void dump(PrintWriter pw) {
+        synchronized (mLock) {
+            pw.println("App Saturation: ");
+            if (mAppsMap.size() == 0) {
+                pw.println("    No packages");
+                return;
+            }
+            final List<String> packageNames = new ArrayList<>(mAppsMap.keySet());
+            Collections.sort(packageNames);
+            for (String packageName : packageNames) {
+                pw.println("    " + packageName + ":");
+                final SparseArray<SaturationController> appUserIdMap = mAppsMap.get(packageName);
+                for (int i = 0; i < appUserIdMap.size(); i++) {
+                    pw.println("        " + appUserIdMap.keyAt(i) + ":");
+                    appUserIdMap.valueAt(i).dump(pw);
+                }
+            }
+        }
+    }
+
+    /**
+     * Retrieve the SaturationController for a given package and userId, creating all intermediate
+     * connections as needed.
+     */
+    private SaturationController getSaturationControllerLocked(String packageName,
+            @UserIdInt int userId) {
+        return getOrCreateSaturationControllerLocked(getOrCreateUserIdMapLocked(packageName),
+                userId);
+    }
+
+    /**
+     * Retrieve or create the mapping between the app's given package name and its userIds (and
+     * their SaturationControllers).
+     */
+    private SparseArray<SaturationController> getOrCreateUserIdMapLocked(String packageName) {
+        if (mAppsMap.get(packageName) != null) {
+            return mAppsMap.get(packageName);
+        }
+
+        final SparseArray<SaturationController> appUserIdMap = new SparseArray<>();
+        mAppsMap.put(packageName, appUserIdMap);
+        return appUserIdMap;
+    }
+
+    /**
+     * Retrieve or create the mapping between an app's given userId and SaturationController.
+     */
+    private SaturationController getOrCreateSaturationControllerLocked(
+            SparseArray<SaturationController> appUserIdMap, @UserIdInt int userId) {
+        if (appUserIdMap.get(userId) != null) {
+            return appUserIdMap.get(userId);
+        }
+
+        final SaturationController saturationController = new SaturationController();
+        appUserIdMap.put(userId, saturationController);
+        return saturationController;
+    }
+
+    @VisibleForTesting
+    static void computeGrayscaleTransformMatrix(float saturation, float[] matrix) {
+        float desaturation = 1.0f - saturation;
+        float[] luminance = {0.231f * desaturation, 0.715f * desaturation,
+                0.072f * desaturation};
+        matrix[0] = luminance[0] + saturation;
+        matrix[1] = luminance[0];
+        matrix[2] = luminance[0];
+        matrix[3] = luminance[1];
+        matrix[4] = luminance[1] + saturation;
+        matrix[5] = luminance[1];
+        matrix[6] = luminance[2];
+        matrix[7] = luminance[2];
+        matrix[8] = luminance[2] + saturation;
+    }
+
+    private static class SaturationController {
+
+        private final List<WeakReference<ColorTransformController>> mControllerRefs =
+                new ArrayList<>();
+        private int mSaturationLevel = 100;
+        private float[] mTransformMatrix = new float[9];
+
+        private boolean setSaturationLevel(int saturationLevel) {
+            mSaturationLevel = saturationLevel;
+            if (!mControllerRefs.isEmpty()) {
+                return updateState();
+            }
+            return false;
+        }
+
+        private boolean addColorTransformController(
+                WeakReference<ColorTransformController> controller) {
+            mControllerRefs.add(controller);
+            if (mSaturationLevel != 100) {
+                return updateState();
+            } else {
+                clearExpiredReferences();
+            }
+            return false;
+        }
+
+        private boolean updateState() {
+            computeGrayscaleTransformMatrix(mSaturationLevel / 100f, mTransformMatrix);
+
+            boolean updated = false;
+            final Iterator<WeakReference<ColorTransformController>> iterator = mControllerRefs
+                    .iterator();
+            while (iterator.hasNext()) {
+                WeakReference<ColorTransformController> controllerRef = iterator.next();
+                final ColorTransformController controller = controllerRef.get();
+                if (controller != null) {
+                    controller.applyAppSaturation(mTransformMatrix, TRANSLATION_VECTOR);
+                    updated = true;
+                } else {
+                    // Purge cleared refs lazily to avoid accumulating a lot of dead windows
+                    iterator.remove();
+                }
+            }
+            return updated;
+
+        }
+
+        private void clearExpiredReferences() {
+            final Iterator<WeakReference<ColorTransformController>> iterator = mControllerRefs
+                    .iterator();
+            while (iterator.hasNext()) {
+                WeakReference<ColorTransformController> controllerRef = iterator.next();
+                final ColorTransformController controller = controllerRef.get();
+                if (controller == null) {
+                    iterator.remove();
+                }
+            }
+        }
+
+        private void dump(PrintWriter pw) {
+            pw.println("            mSaturationLevel: " + mSaturationLevel);
+            pw.println("            mControllerRefs count: " + mControllerRefs.size());
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/display/ColorDisplayService.java b/services/core/java/com/android/server/display/ColorDisplayService.java
index 2fe17d8..9223739 100644
--- a/services/core/java/com/android/server/display/ColorDisplayService.java
+++ b/services/core/java/com/android/server/display/ColorDisplayService.java
@@ -27,6 +27,7 @@
 import android.animation.ValueAnimator;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.Size;
 import android.app.AlarmManager;
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
@@ -36,8 +37,8 @@
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.database.ContentObserver;
-import android.hardware.display.ColorDisplayManager;
 import android.graphics.ColorSpace;
+import android.hardware.display.ColorDisplayManager;
 import android.hardware.display.IColorDisplayManager;
 import android.net.Uri;
 import android.opengl.Matrix;
@@ -50,18 +51,22 @@
 import android.provider.Settings.System;
 import android.util.MathUtils;
 import android.util.Slog;
+import android.view.accessibility.AccessibilityManager;
 import android.view.animation.AnimationUtils;
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.ColorDisplayController;
+import com.android.internal.util.DumpUtils;
 import com.android.server.DisplayThread;
 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.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
 import java.time.DateTimeException;
 import java.time.Instant;
 import java.time.LocalDateTime;
@@ -398,8 +403,33 @@
         }
     };
 
+    /**
+     * Matrix and offset used for converting color to grayscale.
+     */
+    private static final float[] MATRIX_GRAYSCALE = new float[]{
+            .2126f, .2126f, .2126f, 0f,
+            .7152f, .7152f, .7152f, 0f,
+            .0722f, .0722f, .0722f, 0f,
+            0f, 0f, 0f, 1f
+    };
+
+    /**
+     * Matrix and offset used for luminance inversion. Represents a transform from RGB to YIQ color
+     * space, rotation around the Y axis by 180 degrees, transform back to RGB color space, and
+     * subtraction from 1. The last row represents a non-multiplied addition, see surfaceflinger's
+     * ProgramCache for full implementation details.
+     */
+    private static final float[] MATRIX_INVERT_COLOR = new float[] {
+            0.402f, -0.598f, -0.599f, 0f,
+            -1.174f, -0.174f, -1.175f, 0f,
+            -0.228f, -0.228f, 0.772f, 0f,
+            1f, 1f, 1f, 1f
+    };
+
     private final Handler mHandler;
 
+    private final AppSaturationController mAppSaturationController = new AppSaturationController();
+
     private int mCurrentUser = UserHandle.USER_NULL;
     private ContentObserver mUserSetupObserver;
     private boolean mBootCompleted;
@@ -537,9 +567,16 @@
                             case System.DISPLAY_COLOR_MODE:
                                 onDisplayColorModeChanged(mNightDisplayController.getColorMode());
                                 break;
-                            case Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED:
                             case Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED:
-                                onAccessibilityTransformChanged();
+                                onAccessibilityInversionChanged();
+                                onAccessibilityActivated();
+                                break;
+                            case Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED:
+                                onAccessibilityDaltonizerChanged();
+                                onAccessibilityActivated();
+                                break;
+                            case Secure.ACCESSIBILITY_DISPLAY_DALTONIZER:
+                                onAccessibilityDaltonizerChanged();
                                 break;
                             case Secure.DISPLAY_WHITE_BALANCE_ENABLED:
                                 updateDisplayWhiteBalanceStatus();
@@ -568,6 +605,9 @@
         cr.registerContentObserver(
                 Secure.getUriFor(Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED),
                 false /* notifyForDescendants */, mContentObserver, mCurrentUser);
+        cr.registerContentObserver(
+                Secure.getUriFor(Secure.ACCESSIBILITY_DISPLAY_DALTONIZER),
+                false /* notifyForDescendants */, mContentObserver, mCurrentUser);
         cr.registerContentObserver(Secure.getUriFor(Secure.DISPLAY_WHITE_BALANCE_ENABLED),
                 false /* notifyForDescendants */, mContentObserver, mCurrentUser);
 
@@ -698,10 +738,43 @@
         dtm.setColorMode(mode, mNightDisplayTintController.getMatrix());
     }
 
-    private void onAccessibilityTransformChanged() {
+    private void onAccessibilityActivated() {
         onDisplayColorModeChanged(mNightDisplayController.getColorMode());
     }
 
+    /**
+     * Apply the accessibility daltonizer transform based on the settings value.
+     */
+    private void onAccessibilityDaltonizerChanged() {
+        final boolean enabled = Secure.getIntForUser(getContext().getContentResolver(),
+                Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, 0, mCurrentUser) != 0;
+        final int daltonizerMode = enabled ? Secure.getIntForUser(getContext().getContentResolver(),
+                Secure.ACCESSIBILITY_DISPLAY_DALTONIZER,
+                AccessibilityManager.DALTONIZER_CORRECT_DEUTERANOMALY, mCurrentUser)
+                : AccessibilityManager.DALTONIZER_DISABLED;
+
+        final DisplayTransformManager dtm = getLocalService(DisplayTransformManager.class);
+        if (daltonizerMode == AccessibilityManager.DALTONIZER_SIMULATE_MONOCHROMACY) {
+            // Monochromacy isn't supported by the native Daltonizer implementation; use grayscale.
+            dtm.setColorMatrix(DisplayTransformManager.LEVEL_COLOR_MATRIX_GRAYSCALE,
+                    MATRIX_GRAYSCALE);
+            dtm.setDaltonizerMode(AccessibilityManager.DALTONIZER_DISABLED);
+        } else {
+            dtm.setColorMatrix(DisplayTransformManager.LEVEL_COLOR_MATRIX_GRAYSCALE, null);
+            dtm.setDaltonizerMode(daltonizerMode);
+        }
+    }
+
+    /**
+     * Apply the accessibility inversion transform based on the settings value.
+     */
+    private void onAccessibilityInversionChanged() {
+        final boolean enabled = Secure.getIntForUser(getContext().getContentResolver(),
+                Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, 0, mCurrentUser) != 0;
+        final DisplayTransformManager dtm = getLocalService(DisplayTransformManager.class);
+        dtm.setColorMatrix(DisplayTransformManager.LEVEL_COLOR_MATRIX_INVERT_COLOR,
+                enabled ? MATRIX_INVERT_COLOR : null);
+    }
 
     /**
      * Applies current color temperature matrix, or removes it if deactivated.
@@ -829,6 +902,22 @@
         return LocalDateTime.MIN;
     }
 
+    private boolean setAppSaturationLevelInternal(String packageName, int saturationLevel) {
+        return mAppSaturationController
+                .setSaturationLevel(packageName, mCurrentUser, saturationLevel);
+    }
+
+    private void dumpInternal(PrintWriter pw) {
+        pw.println("COLOR DISPLAY MANAGER dumpsys (color_display)");
+        pw.println("Night Display:");
+        if (ColorDisplayManager.isNightDisplayAvailable(getContext())) {
+            pw.println("    Activated: " + mNightDisplayTintController.isActivated());
+        } else {
+            pw.println("    Not available");
+        }
+        mAppSaturationController.dump(pw);
+    }
+
     private abstract class NightDisplayAutoMode {
 
         public abstract void onActivated(boolean activated);
@@ -1132,6 +1221,16 @@
         public void dump(PrintWriter pw) {
             mDisplayWhiteBalanceTintController.dump(pw);
         }
+
+        /**
+         * Adds a {@link WeakReference<ColorTransformController>} for a newly started activity, and
+         * invokes {@link ColorTransformController#applyAppSaturation(float[], float[])} if needed.
+         */
+        public boolean attachColorTransformController(String packageName, int uid,
+                WeakReference<ColorTransformController> controller) {
+            return mAppSaturationController
+                    .addColorTransformController(packageName, uid, controller);
+        }
     }
 
     /**
@@ -1163,6 +1262,15 @@
         }
     }
 
+    /**
+     * Interface for applying transforms to a given AppWindow.
+     */
+    public interface ColorTransformController {
+
+        /** Apply the given saturation (grayscale) matrix to the associated AppWindow. */
+        void applyAppSaturation(@Size(9) float[] matrix, @Size(3) float[] translation);
+    }
+
     private final class BinderService extends IColorDisplayManager.Stub {
 
         @Override
@@ -1196,5 +1304,30 @@
             }
             return true;
         }
+
+        @Override
+        public boolean setAppSaturationLevel(String packageName, int level) {
+            getContext().enforceCallingPermission(
+                    Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS,
+                    "Permission required to set display saturation level");
+            final long token = Binder.clearCallingIdentity();
+            try {
+                return setAppSaturationLevelInternal(packageName, level);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
+
+        @Override
+        public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+            if (!DumpUtils.checkDumpPermission(getContext(), TAG, pw)) return;
+
+            final long token = Binder.clearCallingIdentity();
+            try {
+                dumpInternal(pw);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
+        }
     }
 }
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index 7ff6a2f..7788d26 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -2903,7 +2903,23 @@
             @SoftInputModeFlags int softInputMode, int windowFlags, EditorInfo attribute,
             IInputContext inputContext, @MissingMethodFlags int missingMethods,
             int unverifiedTargetSdkVersion) {
-        final int userId = UserHandle.getUserId(Binder.getCallingUid());
+        final int callingUserId = UserHandle.getCallingUserId();
+        final int userId;
+        if (PER_PROFILE_IME_ENABLED && attribute != null && attribute.targetInputMethodUser != null
+                && attribute.targetInputMethodUser.getIdentifier() != callingUserId) {
+            mContext.enforceCallingPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL,
+                    "Using EditorInfo.user requires INTERACT_ACROSS_USERS_FULL.");
+            userId = attribute.targetInputMethodUser.getIdentifier();
+            if (!mUserManagerInternal.isUserRunning(userId)) {
+                // There is a chance that we hit here because of race condition.  Let's just return
+                // an error code instead of crashing the caller process, which at least has
+                // INTERACT_ACROSS_USERS_FULL permission thus is likely to be an important process.
+                Slog.e(TAG, "User #" + userId + " is not running.");
+                return InputBindResult.INVALID_USER;
+            }
+        } else {
+            userId = callingUserId;
+        }
         InputBindResult res = null;
         synchronized (mMethodMap) {
             // Needs to check the validity before clearing calling identity
diff --git a/services/core/java/com/android/server/job/JobConcurrencyManager.java b/services/core/java/com/android/server/job/JobConcurrencyManager.java
index 827c0f1..4d9b5f5 100644
--- a/services/core/java/com/android/server/job/JobConcurrencyManager.java
+++ b/services/core/java/com/android/server/job/JobConcurrencyManager.java
@@ -18,16 +18,34 @@
 
 import android.app.ActivityManager;
 import android.app.job.JobInfo;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Handler;
+import android.os.PowerManager;
 import android.os.RemoteException;
 import android.util.Slog;
+import android.util.TimeUtils;
+import android.util.proto.ProtoOutputStream;
 
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.procstats.ProcessStats;
+import com.android.internal.os.BackgroundThread;
+import com.android.internal.util.IndentingPrintWriter;
+import com.android.internal.util.StatLogger;
+import com.android.server.job.JobSchedulerService.Constants;
 import com.android.server.job.controllers.JobStatus;
 import com.android.server.job.controllers.StateController;
 
 import java.util.Iterator;
 import java.util.List;
 
+/**
+ * This class decides, given the various configuration and the system status, how many more jobs
+ * can start.
+ */
 class JobConcurrencyManager {
     private static final String TAG = JobSchedulerService.TAG;
     private static final boolean DEBUG = JobSchedulerService.DEBUG;
@@ -35,6 +53,16 @@
     private final Object mLock;
     private final JobSchedulerService mService;
     private final JobSchedulerService.Constants mConstants;
+    private final Context mContext;
+    private final Handler mHandler;
+
+    private PowerManager mPowerManager;
+
+    private boolean mCurrentInteractiveState;
+    private boolean mEffectiveInteractiveState;
+
+    private long mLastScreenOnRealtime;
+    private long mLastScreenOffRealtime;
 
     private static final int MAX_JOB_CONTEXTS_COUNT = JobSchedulerService.MAX_JOB_CONTEXTS_COUNT;
 
@@ -50,10 +78,193 @@
 
     int[] mRecycledPreferredUidForContext = new int[MAX_JOB_CONTEXTS_COUNT];
 
+    /** Max job counts according to the current system state. */
+    private JobSchedulerService.MaxJobCounts mMaxJobCounts;
+
+    private final JobCountTracker mJobCountTracker = new JobCountTracker();
+
+    /** Current memory trim level. */
+    private int mLastMemoryTrimLevel;
+
+    /** Used to throttle heavy API calls. */
+    private long mNextSystemStateRefreshTime;
+    private static final int SYSTEM_STATE_REFRESH_MIN_INTERVAL = 1000;
+
+    private final StatLogger mStatLogger = new StatLogger(new String[]{
+            "assignJobsToContexts",
+            "refreshSystemState",
+    });
+
+    interface Stats {
+        int ASSIGN_JOBS_TO_CONTEXTS = 0;
+        int REFRESH_SYSTEM_STATE = 1;
+
+        int COUNT = REFRESH_SYSTEM_STATE + 1;
+    }
+
     JobConcurrencyManager(JobSchedulerService service) {
         mService = service;
         mLock = mService.mLock;
         mConstants = service.mConstants;
+        mContext = service.getContext();
+
+        mHandler = BackgroundThread.getHandler();
+    }
+
+    public void onSystemReady() {
+        mPowerManager = mContext.getSystemService(PowerManager.class);
+
+        final IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
+        filter.addAction(Intent.ACTION_SCREEN_OFF);
+        mContext.registerReceiver(mReceiver, filter);
+
+        onInteractiveStateChanged(mPowerManager.isInteractive());
+    }
+
+    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            switch (intent.getAction()) {
+                case Intent.ACTION_SCREEN_ON:
+                    onInteractiveStateChanged(true);
+                    break;
+                case Intent.ACTION_SCREEN_OFF:
+                    onInteractiveStateChanged(false);
+                    break;
+            }
+        }
+    };
+
+    /**
+     * Called when the screen turns on / off.
+     */
+    private void onInteractiveStateChanged(boolean interactive) {
+        synchronized (mLock) {
+            if (mCurrentInteractiveState == interactive) {
+                return;
+            }
+            mCurrentInteractiveState = interactive;
+            if (DEBUG) {
+                Slog.d(TAG, "Interactive: " + interactive);
+            }
+
+            final long now = JobSchedulerService.sElapsedRealtimeClock.millis();
+            if (interactive) {
+                mLastScreenOnRealtime = now;
+                mEffectiveInteractiveState = true;
+
+                mHandler.removeCallbacks(mRampUpForScreenOff);
+            } else {
+                mLastScreenOffRealtime = now;
+
+                // Set mEffectiveInteractiveState to false after the delay, when we may increase
+                // the concurrency.
+                // We don't need a wakeup alarm here. When there's a pending job, there should
+                // also be jobs running too, meaning the device should be awake.
+
+                // Note: we can't directly do postDelayed(this::rampUpForScreenOn), because
+                // we need the exact same instance for removeCallbacks().
+                mHandler.postDelayed(mRampUpForScreenOff,
+                        mConstants.SCREEN_OFF_JOB_CONCURRENCY_INCREASE_DELAY_MS.getValue());
+            }
+        }
+    }
+
+    private final Runnable mRampUpForScreenOff = this::rampUpForScreenOff;
+
+    /**
+     * Called in {@link Constants#SCREEN_OFF_JOB_CONCURRENCY_INCREASE_DELAY_MS} after
+     * the screen turns off, in order to increase concurrency.
+     */
+    private void rampUpForScreenOff() {
+        synchronized (mLock) {
+            // Make sure the screen has really been off for the configured duration.
+            // (There could be a race.)
+            if (!mEffectiveInteractiveState) {
+                return;
+            }
+            if (mLastScreenOnRealtime > mLastScreenOffRealtime) {
+                return;
+            }
+            final long now = JobSchedulerService.sElapsedRealtimeClock.millis();
+            if ((mLastScreenOffRealtime
+                    + mConstants.SCREEN_OFF_JOB_CONCURRENCY_INCREASE_DELAY_MS.getValue())
+                    > now) {
+                return;
+            }
+
+            mEffectiveInteractiveState = false;
+
+            if (DEBUG) {
+                Slog.d(TAG, "Ramping up concurrency");
+            }
+
+            mService.maybeRunPendingJobsLocked();
+        }
+    }
+
+    private boolean isFgJob(JobStatus job) {
+        return job.lastEvaluatedPriority >= JobInfo.PRIORITY_TOP_APP;
+    }
+
+    @GuardedBy("mLock")
+    private void refreshSystemStateLocked() {
+        final long nowUptime = JobSchedulerService.sUptimeMillisClock.millis();
+
+        // Only refresh the information every so often.
+        if (nowUptime < mNextSystemStateRefreshTime) {
+            return;
+        }
+
+        final long start = mStatLogger.getTime();
+        mNextSystemStateRefreshTime = nowUptime + SYSTEM_STATE_REFRESH_MIN_INTERVAL;
+
+        mLastMemoryTrimLevel = ProcessStats.ADJ_MEM_FACTOR_NORMAL;
+        try {
+            mLastMemoryTrimLevel = ActivityManager.getService().getMemoryTrimLevel();
+        } catch (RemoteException e) {
+        }
+
+        mStatLogger.logDurationStat(Stats.REFRESH_SYSTEM_STATE, start);
+    }
+
+    @GuardedBy("mLock")
+    private void updateMaxCountsLocked() {
+        refreshSystemStateLocked();
+
+        if (mEffectiveInteractiveState) {
+            // Screen on
+            switch (mLastMemoryTrimLevel) {
+                case ProcessStats.ADJ_MEM_FACTOR_MODERATE:
+                    mMaxJobCounts = mConstants.MAX_JOB_COUNTS_ON_MODERATE;
+                    break;
+                case ProcessStats.ADJ_MEM_FACTOR_LOW:
+                    mMaxJobCounts = mConstants.MAX_JOB_COUNTS_ON_LOW;
+                    break;
+                case ProcessStats.ADJ_MEM_FACTOR_CRITICAL:
+                    mMaxJobCounts = mConstants.MAX_JOB_COUNTS_ON_CRITICAL;
+                    break;
+                default:
+                    mMaxJobCounts = mConstants.MAX_JOB_COUNTS_ON_NORMAL;
+                    break;
+            }
+        } else {
+            // Screen off
+            switch (mLastMemoryTrimLevel) {
+                case ProcessStats.ADJ_MEM_FACTOR_MODERATE:
+                    mMaxJobCounts = mConstants.MAX_JOB_COUNTS_OFF_MODERATE;
+                    break;
+                case ProcessStats.ADJ_MEM_FACTOR_LOW:
+                    mMaxJobCounts = mConstants.MAX_JOB_COUNTS_OFF_LOW;
+                    break;
+                case ProcessStats.ADJ_MEM_FACTOR_CRITICAL:
+                    mMaxJobCounts = mConstants.MAX_JOB_COUNTS_OFF_CRITICAL;
+                    break;
+                default:
+                    mMaxJobCounts = mConstants.MAX_JOB_COUNTS_OFF_NORMAL;
+                    break;
+            }
+        }
     }
 
     /**
@@ -62,7 +273,17 @@
      * run higher priority ones.
      * Lock on mJobs before calling this function.
      */
+    @GuardedBy("mLock")
     void assignJobsToContextsLocked() {
+        final long start = mStatLogger.getTime();
+
+        assignJobsToContextsInternalLocked();
+
+        mStatLogger.logDurationStat(Stats.ASSIGN_JOBS_TO_CONTEXTS, start);
+    }
+
+    @GuardedBy("mLock")
+    private void assignJobsToContextsInternalLocked() {
         if (DEBUG) {
             Slog.d(TAG, printPendingQueueLocked());
         }
@@ -72,60 +293,63 @@
         final List<JobServiceContext> activeServices = mService.mActiveServices;
         final List<StateController> controllers = mService.mControllers;
 
-        int memLevel;
-        try {
-            memLevel = ActivityManager.getService().getMemoryTrimLevel();
-        } catch (RemoteException e) {
-            memLevel = ProcessStats.ADJ_MEM_FACTOR_NORMAL;
-        }
-        switch (memLevel) {
-            case ProcessStats.ADJ_MEM_FACTOR_MODERATE:
-                mService.mMaxActiveJobs = mConstants.BG_MODERATE_JOB_COUNT;
-                break;
-            case ProcessStats.ADJ_MEM_FACTOR_LOW:
-                mService.mMaxActiveJobs = mConstants.BG_LOW_JOB_COUNT;
-                break;
-            case ProcessStats.ADJ_MEM_FACTOR_CRITICAL:
-                mService.mMaxActiveJobs = mConstants.BG_CRITICAL_JOB_COUNT;
-                break;
-            default:
-                mService.mMaxActiveJobs = mConstants.BG_NORMAL_JOB_COUNT;
-                break;
-        }
+        updateMaxCountsLocked();
 
         // To avoid GC churn, we recycle the arrays.
         JobStatus[] contextIdToJobMap = mRecycledAssignContextIdToJobMap;
         boolean[] slotChanged = mRecycledSlotChanged;
         int[] preferredUidForContext = mRecycledPreferredUidForContext;
 
-        int numTotalRunningJobs = 0;
-        int numForegroundJobs = 0;
+
+        // Initialize the work variables and also count running jobs.
+        mJobCountTracker.reset(
+                mMaxJobCounts.getTotalMax(),
+                mMaxJobCounts.getMaxBg(),
+                mMaxJobCounts.getMinBg());
+
         for (int i=0; i<MAX_JOB_CONTEXTS_COUNT; i++) {
             final JobServiceContext js = mService.mActiveServices.get(i);
             final JobStatus status = js.getRunningJobLocked();
+
             if ((contextIdToJobMap[i] = status) != null) {
-                numTotalRunningJobs++;
-                if (status.lastEvaluatedPriority >= JobInfo.PRIORITY_TOP_APP) {
-                    numForegroundJobs++;
-                }
+                mJobCountTracker.incrementRunningJobCount(isFgJob(status));
             }
+
             slotChanged[i] = false;
             preferredUidForContext[i] = js.getPreferredUid();
         }
         if (DEBUG) {
             Slog.d(TAG, printContextIdToJobMap(contextIdToJobMap, "running jobs initial"));
         }
-        for (int i=0; i<pendingJobs.size(); i++) {
-            final JobStatus nextPending = pendingJobs.get(i);
+
+        // Next, update the job priorities, and also count the pending FG / BG jobs.
+        for (int i = 0; i < pendingJobs.size(); i++) {
+            final JobStatus pending = pendingJobs.get(i);
 
             // If job is already running, go to next job.
+            int jobRunningContext = findJobContextIdFromMap(pending, contextIdToJobMap);
+            if (jobRunningContext != -1) {
+                continue;
+            }
+
+            final int priority = mService.evaluateJobPriorityLocked(pending);
+            pending.lastEvaluatedPriority = priority;
+
+            mJobCountTracker.incrementPendingJobCount(isFgJob(pending));
+        }
+
+        mJobCountTracker.onCountDone();
+
+        for (int i = 0; i < pendingJobs.size(); i++) {
+            final JobStatus nextPending = pendingJobs.get(i);
+
+            // Unfortunately we need to repeat this relatively expensive check.
             int jobRunningContext = findJobContextIdFromMap(nextPending, contextIdToJobMap);
             if (jobRunningContext != -1) {
                 continue;
             }
 
-            final int priority = mService.evaluateJobPriorityLocked(nextPending);
-            nextPending.lastEvaluatedPriority = priority;
+            final boolean isPendingFg = isFgJob(nextPending);
 
             // Find an available slot for nextPending. The context should be available OR
             // it should have lowest priority among all running jobs
@@ -137,18 +361,10 @@
                 JobStatus job = contextIdToJobMap[j];
                 int preferredUid = preferredUidForContext[j];
                 if (job == null) {
-                    final boolean totalCountOk = numTotalRunningJobs < mService.mMaxActiveJobs;
-                    final boolean fgCountOk = (priority >= JobInfo.PRIORITY_TOP_APP)
-                            && (numForegroundJobs < mConstants.FG_JOB_COUNT);
                     final boolean preferredUidOkay = (preferredUid == nextPending.getUid())
                             || (preferredUid == JobServiceContext.NO_PREFERRED_UID);
 
-                    // TODO: The following check is slightly wrong.
-                    // Depending on how the pending jobs are sorted, we sometimes cap the total
-                    // job count at mMaxActiveJobs (when all jobs are FG jobs), or
-                    // at [mMaxActiveJobs + FG_JOB_COUNT] (when there are mMaxActiveJobs BG jobs
-                    // and then FG_JOB_COUNT FG jobs.)
-                    if ((totalCountOk || fgCountOk) && preferredUidOkay) {
+                    if (preferredUidOkay && mJobCountTracker.canJobStart(isPendingFg)) {
                         // This slot is free, and we haven't yet hit the limit on
                         // concurrent jobs...  we can just throw the job in to here.
                         selectedContextId = j;
@@ -183,16 +399,18 @@
             }
             if (startingJob) {
                 // Increase the counters when we're going to start a job.
-                numTotalRunningJobs++;
-                if (priority >= JobInfo.PRIORITY_TOP_APP) {
-                    numForegroundJobs++;
-                }
+                mJobCountTracker.onStartingNewJob(isPendingFg);
             }
         }
         if (DEBUG) {
             Slog.d(TAG, printContextIdToJobMap(contextIdToJobMap, "running jobs final"));
         }
-        tracker.noteConcurrency(numTotalRunningJobs, numForegroundJobs);
+
+        mJobCountTracker.logStatus();
+
+        tracker.noteConcurrency(mJobCountTracker.getTotalRunningJobCountToNote(),
+                mJobCountTracker.getFgRunningJobCountToNote());
+
         for (int i=0; i<MAX_JOB_CONTEXTS_COUNT; i++) {
             boolean preservePreferredUid = false;
             if (slotChanged[i]) {
@@ -228,7 +446,7 @@
         }
     }
 
-    int findJobContextIdFromMap(JobStatus jobStatus, JobStatus[] map) {
+    private static int findJobContextIdFromMap(JobStatus jobStatus, JobStatus[] map) {
         for (int i=0; i<map.length; i++) {
             if (map[i] != null && map[i].matches(jobStatus.getUid(), jobStatus.getJobId())) {
                 return i;
@@ -237,6 +455,7 @@
         return -1;
     }
 
+    @GuardedBy("mLock")
     private String printPendingQueueLocked() {
         StringBuilder s = new StringBuilder("Pending queue: ");
         Iterator<JobStatus> it = mService.mPendingJobs.iterator();
@@ -251,7 +470,7 @@
         return s.toString();
     }
 
-    private String printContextIdToJobMap(JobStatus[] map, String initial) {
+    private static String printContextIdToJobMap(JobStatus[] map, String initial) {
         StringBuilder s = new StringBuilder(initial + ": ");
         for (int i=0; i<map.length; i++) {
             s.append("(")
@@ -262,4 +481,222 @@
         return s.toString();
     }
 
+
+    public void dumpLocked(IndentingPrintWriter pw) {
+        final long now = System.currentTimeMillis();
+        final long nowRealtime = JobSchedulerService.sElapsedRealtimeClock.millis();
+
+        pw.println("Concurrency:");
+
+        pw.increaseIndent();
+        try {
+            pw.print("Screen state: current ");
+            pw.print(mCurrentInteractiveState ? "ON" : "OFF");
+            pw.print("  effective ");
+            pw.print(mEffectiveInteractiveState ? "ON" : "OFF");
+            pw.println();
+
+            pw.print("Last screen ON : ");
+            TimeUtils.dumpTimeWithDelta(pw, now - nowRealtime + mLastScreenOnRealtime, now);
+            pw.println();
+
+            pw.print("Last screen OFF: ");
+            TimeUtils.dumpTimeWithDelta(pw, now - nowRealtime + mLastScreenOffRealtime, now);
+            pw.println();
+
+            pw.println();
+
+            pw.println("Current max jobs:");
+            pw.println("  ");
+            pw.println(mJobCountTracker);
+
+            pw.println();
+
+            pw.print("mLastMemoryTrimLevel: ");
+            pw.print(mLastMemoryTrimLevel);
+            pw.println();
+
+            mStatLogger.dump(pw);
+        } finally {
+            pw.decreaseIndent();
+        }
+    }
+
+    public void dumpProtoLocked(ProtoOutputStream proto) {
+        // TODO Implement it.
+    }
+
+    /**
+     * This class decides, taking into account {@link #mMaxJobCounts} and how many jos are running /
+     * pending, how many more job can start.
+     *
+     * Extracted for testing and logging.
+     */
+    @VisibleForTesting
+    static class JobCountTracker {
+        private int mConfigNumTotalMaxJobs;
+        private int mConfigNumMaxBgJobs;
+        private int mConfigNumMinBgJobs;
+
+        private int mNumRunningFgJobs;
+        private int mNumRunningBgJobs;
+
+        private int mNumPendingFgJobs;
+        private int mNumPendingBgJobs;
+
+        private int mNumStartingFgJobs;
+        private int mNumStartingBgJobs;
+
+        private int mNumReservedForBg;
+        private int mNumActualMaxFgJobs;
+        private int mNumActualMaxBgJobs;
+
+        void reset(int numTotalMaxJobs, int numMaxBgJobs, int numMinBgJobs) {
+            mConfigNumTotalMaxJobs = numTotalMaxJobs;
+            mConfigNumMaxBgJobs = numMaxBgJobs;
+            mConfigNumMinBgJobs = numMinBgJobs;
+
+            mNumRunningFgJobs = 0;
+            mNumRunningBgJobs = 0;
+
+            mNumPendingFgJobs = 0;
+            mNumPendingBgJobs = 0;
+
+            mNumStartingFgJobs = 0;
+            mNumStartingBgJobs = 0;
+
+            mNumReservedForBg = 0;
+            mNumActualMaxFgJobs = 0;
+            mNumActualMaxBgJobs = 0;
+        }
+
+        void incrementRunningJobCount(boolean isFg) {
+            if (isFg) {
+                mNumRunningFgJobs++;
+            } else {
+                mNumRunningBgJobs++;
+            }
+        }
+
+        void incrementPendingJobCount(boolean isFg) {
+            if (isFg) {
+                mNumPendingFgJobs++;
+            } else {
+                mNumPendingBgJobs++;
+            }
+        }
+
+        void onStartingNewJob(boolean isFg) {
+            if (isFg) {
+                mNumStartingFgJobs++;
+            } else {
+                mNumStartingBgJobs++;
+            }
+        }
+
+        void onCountDone() {
+            // Note some variables are used only here but are made class members in order to have
+            // them on logcat / dumpsys.
+
+            // How many slots should we allocate to BG jobs at least?
+            // That's basically "getMinBg()", but if there are less jobs, decrease it.
+            // (e.g. even if min-bg is 2, if there's only 1 running+pending job, this has to be 1.)
+            final int reservedForBg = Math.min(
+                    mConfigNumMinBgJobs,
+                    mNumRunningBgJobs + mNumPendingBgJobs);
+
+            // However, if there are FG jobs already running, we have to adjust it.
+            mNumReservedForBg = Math.min(reservedForBg,
+                    mConfigNumTotalMaxJobs - mNumRunningFgJobs);
+
+            // Max FG is [total - [number needed for BG jobs]]
+            // [number needed for BG jobs] is the bigger one of [running BG] or [reserved BG]
+            final int maxFg =
+                    mConfigNumTotalMaxJobs - Math.max(mNumRunningBgJobs, mNumReservedForBg);
+
+            // The above maxFg is the theoretical max. If there are less FG jobs, the actual
+            // max FG will be lower accordingly.
+            mNumActualMaxFgJobs = Math.min(
+                    maxFg,
+                    mNumRunningFgJobs + mNumPendingFgJobs);
+
+            // Max BG is [total - actual max FG], but cap at [config max BG].
+            final int maxBg = Math.min(
+                    mConfigNumMaxBgJobs,
+                    mConfigNumTotalMaxJobs - mNumActualMaxFgJobs);
+
+            // If there are less BG jobs than maxBg, then reduce the actual max BG accordingly.
+            // This isn't needed for the logic to work, but this will give consistent output
+            // on logcat and dumpsys.
+            mNumActualMaxBgJobs = Math.min(
+                    maxBg,
+                    mNumRunningBgJobs + mNumPendingBgJobs);
+        }
+
+        boolean canJobStart(boolean isFg) {
+            if (isFg) {
+                return mNumRunningFgJobs + mNumStartingFgJobs < mNumActualMaxFgJobs;
+            } else {
+                return mNumRunningBgJobs + mNumStartingBgJobs < mNumActualMaxBgJobs;
+            }
+        }
+
+        public int getNumStartingFgJobs() {
+            return mNumStartingFgJobs;
+        }
+
+        public int getNumStartingBgJobs() {
+            return mNumStartingBgJobs;
+        }
+
+        int getTotalRunningJobCountToNote() {
+            return mNumRunningFgJobs + mNumRunningBgJobs
+                    + mNumStartingFgJobs + mNumStartingBgJobs;
+        }
+
+        int getFgRunningJobCountToNote() {
+            return mNumRunningFgJobs + mNumStartingFgJobs;
+        }
+
+        void logStatus() {
+            if (DEBUG) {
+                Slog.d(TAG, "assignJobsToContexts: " + this);
+            }
+        }
+
+        public String toString() {
+            final int totalFg = mNumRunningFgJobs + mNumStartingFgJobs;
+            final int totalBg = mNumRunningBgJobs + mNumStartingBgJobs;
+            return String.format(
+                    "Config={tot=%d bg min/max=%d/%d}"
+                            + " Running: %d / %d (%d)"
+                            + " Pending: %d / %d (%d)"
+                            + " Actual max: %d%s / %d%s (%d%s)"
+                            + " Starting: %d / %d (%d)"
+                            + " Total: %d%s / %d%s (%d%s)",
+                    mConfigNumTotalMaxJobs,
+                    mConfigNumMinBgJobs,
+                    mConfigNumMaxBgJobs,
+
+                    mNumRunningFgJobs, mNumRunningBgJobs,
+                    mNumRunningFgJobs + mNumRunningBgJobs,
+
+                    mNumPendingFgJobs, mNumPendingBgJobs,
+                    mNumPendingFgJobs + mNumPendingBgJobs,
+
+                    mNumActualMaxFgJobs, (totalFg <= mConfigNumTotalMaxJobs) ? "" : "*",
+                    mNumActualMaxBgJobs, (totalBg <= mConfigNumMaxBgJobs) ? "" : "*",
+
+                    mNumActualMaxFgJobs + mNumActualMaxBgJobs,
+                    (mNumActualMaxFgJobs + mNumActualMaxBgJobs <= mConfigNumTotalMaxJobs)
+                            ? "" : "*",
+
+                    mNumStartingFgJobs, mNumStartingBgJobs, mNumStartingFgJobs + mNumStartingBgJobs,
+
+                    totalFg, (totalFg <= mNumActualMaxFgJobs) ? "" : "*",
+                    totalBg, (totalBg <= mNumActualMaxBgJobs) ? "" : "*",
+                    totalFg + totalBg, (totalFg + totalBg <= mConfigNumTotalMaxJobs) ? "" : "*"
+            );
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/job/JobSchedulerService.java b/services/core/java/com/android/server/job/JobSchedulerService.java
index 2464ca7..cc0ac9a 100644
--- a/services/core/java/com/android/server/job/JobSchedulerService.java
+++ b/services/core/java/com/android/server/job/JobSchedulerService.java
@@ -224,12 +224,6 @@
     volatile boolean mInParole;
 
     /**
-     * Current limit on the number of concurrent JobServiceContext entries we want to
-     * keep actively running a job.
-     */
-    int mMaxActiveJobs = 1;
-
-    /**
      * A mapping of which uids are currently in the foreground to their effective priority.
      */
     final SparseIntArray mUidPriorityOverride = new SparseIntArray();
@@ -332,41 +326,68 @@
         }
     }
 
-    private static class MaxJobCounts {
+    static class MaxJobCounts {
         private final KeyValueListParser.IntValue mTotal;
-        private final KeyValueListParser.IntValue mBg;
+        private final KeyValueListParser.IntValue mMaxBg;
+        private final KeyValueListParser.IntValue mMinBg;
 
-        private MaxJobCounts(int totalDefault, String totalKey, int bgDefault, String bgKey) {
+        MaxJobCounts(int totalDefault, String totalKey,
+                int maxBgDefault, String maxBgKey, int minBgDefault, String minBgKey) {
             mTotal = new KeyValueListParser.IntValue(totalKey, totalDefault);
-            mBg = new KeyValueListParser.IntValue(bgKey, bgDefault);
+            mMaxBg = new KeyValueListParser.IntValue(maxBgKey, maxBgDefault);
+            mMinBg = new KeyValueListParser.IntValue(minBgKey, minBgDefault);
         }
 
         public void parse(KeyValueListParser parser) {
             mTotal.parse(parser);
-            mBg.parse(parser);
+            mMaxBg.parse(parser);
+            mMinBg.parse(parser);
 
-            if (mBg.getValue() > mTotal.getValue()) {
-                mBg.setValue(mTotal.getValue());
+            if (mTotal.getValue() < 1) {
+                mTotal.setValue(1);
+            } else if (mTotal.getValue() > MAX_JOB_CONTEXTS_COUNT) {
+                mTotal.setValue(MAX_JOB_CONTEXTS_COUNT);
             }
 
+            if (mMaxBg.getValue() < 1) {
+                mMaxBg.setValue(1);
+            } else if (mMaxBg.getValue() > mTotal.getValue()) {
+                mMaxBg.setValue(mTotal.getValue());
+            }
+            if (mMinBg.getValue() < 0) {
+                mMinBg.setValue(0);
+            } else {
+                if (mMinBg.getValue() > mMaxBg.getValue()) {
+                    mMinBg.setValue(mMaxBg.getValue());
+                }
+                if (mMinBg.getValue() >= mTotal.getValue()) {
+                    mMinBg.setValue(mTotal.getValue() - 1);
+                }
+            }
         }
 
         public int getTotalMax() {
             return mTotal.getValue();
         }
 
-        public int getBgMax() {
-            return mBg.getValue();
+        public int getMaxBg() {
+            return mMaxBg.getValue();
+        }
+
+        public int getMinBg() {
+            return mMinBg.getValue();
         }
 
         public void dump(PrintWriter pw, String prefix) {
             mTotal.dump(pw, prefix);
-            mBg.dump(pw, prefix);
+            mMaxBg.dump(pw, prefix);
+            mMinBg.dump(pw, prefix);
         }
 
         public void dumpProto(ProtoOutputStream proto, long tagTotal, long tagBg) {
             mTotal.dumpProto(proto, tagTotal);
-            mBg.dumpProto(proto, tagBg);
+            mMaxBg.dumpProto(proto, tagBg);
+            mMinBg.dumpProto(proto, tagBg);
         }
     }
 
@@ -386,11 +407,14 @@
         private static final String KEY_MIN_READY_JOBS_COUNT = "min_ready_jobs_count";
         private static final String KEY_HEAVY_USE_FACTOR = "heavy_use_factor";
         private static final String KEY_MODERATE_USE_FACTOR = "moderate_use_factor";
-        private static final String KEY_FG_JOB_COUNT = "fg_job_count";
-        private static final String KEY_BG_NORMAL_JOB_COUNT = "bg_normal_job_count";
-        private static final String KEY_BG_MODERATE_JOB_COUNT = "bg_moderate_job_count";
-        private static final String KEY_BG_LOW_JOB_COUNT = "bg_low_job_count";
-        private static final String KEY_BG_CRITICAL_JOB_COUNT = "bg_critical_job_count";
+
+        // The following values used to be used on P and below. Do not reuse them.
+        private static final String DEPRECATED_KEY_FG_JOB_COUNT = "fg_job_count";
+        private static final String DEPRECATED_KEY_BG_NORMAL_JOB_COUNT = "bg_normal_job_count";
+        private static final String DEPRECATED_KEY_BG_MODERATE_JOB_COUNT = "bg_moderate_job_count";
+        private static final String DEPRECATED_KEY_BG_LOW_JOB_COUNT = "bg_low_job_count";
+        private static final String DEPRECATED_KEY_BG_CRITICAL_JOB_COUNT = "bg_critical_job_count";
+
         private static final String KEY_MAX_STANDARD_RESCHEDULE_COUNT
                 = "max_standard_reschedule_count";
         private static final String KEY_MAX_WORK_RESCHEDULE_COUNT = "max_work_reschedule_count";
@@ -429,11 +453,6 @@
         private static final int DEFAULT_MIN_READY_JOBS_COUNT = 1;
         private static final float DEFAULT_HEAVY_USE_FACTOR = .9f;
         private static final float DEFAULT_MODERATE_USE_FACTOR = .5f;
-        private static final int DEFAULT_FG_JOB_COUNT = 4;
-        private static final int DEFAULT_BG_NORMAL_JOB_COUNT = 6;
-        private static final int DEFAULT_BG_MODERATE_JOB_COUNT = 4;
-        private static final int DEFAULT_BG_LOW_JOB_COUNT = 1;
-        private static final int DEFAULT_BG_CRITICAL_JOB_COUNT = 1;
         private static final int DEFAULT_MAX_STANDARD_RESCHEDULE_COUNT = Integer.MAX_VALUE;
         private static final int DEFAULT_MAX_WORK_RESCHEDULE_COUNT = Integer.MAX_VALUE;
         private static final long DEFAULT_MIN_LINEAR_BACKOFF_TIME = JobInfo.MIN_BACKOFF_MILLIS;
@@ -506,66 +525,52 @@
          * This is the job execution factor that is considered to be moderate use of the system.
          */
         float MODERATE_USE_FACTOR = DEFAULT_MODERATE_USE_FACTOR;
-        /**
-         * The number of MAX_JOB_CONTEXTS_COUNT we reserve for the foreground app.
-         */
-        int FG_JOB_COUNT = DEFAULT_FG_JOB_COUNT;
-        /**
-         * The maximum number of background jobs we allow when the system is in a normal
-         * memory state.
-         */
-        int BG_NORMAL_JOB_COUNT = DEFAULT_BG_NORMAL_JOB_COUNT;
-        /**
-         * The maximum number of background jobs we allow when the system is in a moderate
-         * memory state.
-         */
-        int BG_MODERATE_JOB_COUNT = DEFAULT_BG_MODERATE_JOB_COUNT;
-        /**
-         * The maximum number of background jobs we allow when the system is in a low
-         * memory state.
-         */
-        int BG_LOW_JOB_COUNT = DEFAULT_BG_LOW_JOB_COUNT;
-        /**
-         * The maximum number of background jobs we allow when the system is in a critical
-         * memory state.
-         */
-        int BG_CRITICAL_JOB_COUNT = DEFAULT_BG_CRITICAL_JOB_COUNT;
 
         // Max job counts for screen on / off, for each memory trim level.
-        // TODO Remove the old configs such as FG_JOB_COUNT and BG_*_COUNT, once the code switches
-        // to the below configs.
-
         final MaxJobCounts MAX_JOB_COUNTS_ON_NORMAL = new MaxJobCounts(
-                4, "max_job_total_on_normal",
-                2, "max_job_bg_on_normal");
+                8, "max_job_total_on_normal",
+                6, "max_job_max_bg_on_normal",
+                2, "max_job_min_bg_on_normal");
 
         final MaxJobCounts MAX_JOB_COUNTS_ON_MODERATE = new MaxJobCounts(
-                4, "max_job_total_on_moderate",
-                1, "max_job_bg_on_moderate");
+                8, "max_job_total_on_moderate",
+                4, "max_job_max_bg_on_moderate",
+                2, "max_job_min_bg_on_moderate");
 
         final MaxJobCounts MAX_JOB_COUNTS_ON_LOW = new MaxJobCounts(
-                4, "max_job_total_on_low",
-                1, "max_job_bg_on_low");
+                5, "max_job_total_on_low",
+                1, "max_job_max_bg_on_low",
+                1, "max_job_min_bg_on_low");
 
         final MaxJobCounts MAX_JOB_COUNTS_ON_CRITICAL = new MaxJobCounts(
-                2, "max_job_total_on_critical",
-                1, "max_job_bg_on_critical");
+                5, "max_job_total_on_critical",
+                1, "max_job_max_bg_on_critical",
+                1, "max_job_min_bg_on_critical");
 
         final MaxJobCounts MAX_JOB_COUNTS_OFF_NORMAL = new MaxJobCounts(
-                8, "max_job_total_off_normal",
-                4, "max_job_bg_off_normal");
+                10, "max_job_total_off_normal",
+                6, "max_job_max_bg_off_normal",
+                2, "max_job_min_bg_off_normal");
 
         final MaxJobCounts MAX_JOB_COUNTS_OFF_MODERATE = new MaxJobCounts(
-                6, "max_job_total_off_moderate",
-                4, "max_job_bg_off_moderate");
+                10, "max_job_total_off_moderate",
+                4, "max_job_max_bg_off_moderate",
+                2, "max_job_min_bg_off_moderate");
 
         final MaxJobCounts MAX_JOB_COUNTS_OFF_LOW = new MaxJobCounts(
-                4, "max_job_total_off_low",
-                1, "max_job_bg_off_low");
+                5, "max_job_total_off_low",
+                1, "max_job_max_bg_off_low",
+                1, "max_job_min_bg_off_low");
 
         final MaxJobCounts MAX_JOB_COUNTS_OFF_CRITICAL = new MaxJobCounts(
-                2, "max_job_total_off_critical",
-                1, "max_job_bg_off_critical");
+                5, "max_job_total_off_critical",
+                1, "max_job_max_bg_off_critical",
+                1, "max_job_min_bg_off_critical");
+
+        /** Wait for this long after screen off before increasing the job concurrency. */
+        final KeyValueListParser.IntValue SCREEN_OFF_JOB_CONCURRENCY_INCREASE_DELAY_MS =
+                new KeyValueListParser.IntValue(
+                        "screen_off_job_concurrency_increase_delay_ms", 30_000);
 
         /**
          * The maximum number of times we allow a job to have itself rescheduled before
@@ -706,28 +711,6 @@
                     DEFAULT_HEAVY_USE_FACTOR);
             MODERATE_USE_FACTOR = mParser.getFloat(KEY_MODERATE_USE_FACTOR,
                     DEFAULT_MODERATE_USE_FACTOR);
-            FG_JOB_COUNT = mParser.getInt(KEY_FG_JOB_COUNT,
-                    DEFAULT_FG_JOB_COUNT);
-            BG_NORMAL_JOB_COUNT = mParser.getInt(KEY_BG_NORMAL_JOB_COUNT,
-                    DEFAULT_BG_NORMAL_JOB_COUNT);
-            if ((FG_JOB_COUNT+BG_NORMAL_JOB_COUNT) > MAX_JOB_CONTEXTS_COUNT) {
-                BG_NORMAL_JOB_COUNT = MAX_JOB_CONTEXTS_COUNT - FG_JOB_COUNT;
-            }
-            BG_MODERATE_JOB_COUNT = mParser.getInt(KEY_BG_MODERATE_JOB_COUNT,
-                    DEFAULT_BG_MODERATE_JOB_COUNT);
-            if ((FG_JOB_COUNT+BG_MODERATE_JOB_COUNT) > MAX_JOB_CONTEXTS_COUNT) {
-                BG_MODERATE_JOB_COUNT = MAX_JOB_CONTEXTS_COUNT - FG_JOB_COUNT;
-            }
-            BG_LOW_JOB_COUNT = mParser.getInt(KEY_BG_LOW_JOB_COUNT,
-                    DEFAULT_BG_LOW_JOB_COUNT);
-            if ((FG_JOB_COUNT+BG_LOW_JOB_COUNT) > MAX_JOB_CONTEXTS_COUNT) {
-                BG_LOW_JOB_COUNT = MAX_JOB_CONTEXTS_COUNT - FG_JOB_COUNT;
-            }
-            BG_CRITICAL_JOB_COUNT = mParser.getInt(KEY_BG_CRITICAL_JOB_COUNT,
-                    DEFAULT_BG_CRITICAL_JOB_COUNT);
-            if ((FG_JOB_COUNT+BG_CRITICAL_JOB_COUNT) > MAX_JOB_CONTEXTS_COUNT) {
-                BG_CRITICAL_JOB_COUNT = MAX_JOB_CONTEXTS_COUNT - FG_JOB_COUNT;
-            }
 
             MAX_JOB_COUNTS_ON_NORMAL.parse(mParser);
             MAX_JOB_COUNTS_ON_MODERATE.parse(mParser);
@@ -798,11 +781,6 @@
             pw.printPair(KEY_MIN_READY_JOBS_COUNT, MIN_READY_JOBS_COUNT).println();
             pw.printPair(KEY_HEAVY_USE_FACTOR, HEAVY_USE_FACTOR).println();
             pw.printPair(KEY_MODERATE_USE_FACTOR, MODERATE_USE_FACTOR).println();
-            pw.printPair(KEY_FG_JOB_COUNT, FG_JOB_COUNT).println();
-            pw.printPair(KEY_BG_NORMAL_JOB_COUNT, BG_NORMAL_JOB_COUNT).println();
-            pw.printPair(KEY_BG_MODERATE_JOB_COUNT, BG_MODERATE_JOB_COUNT).println();
-            pw.printPair(KEY_BG_LOW_JOB_COUNT, BG_LOW_JOB_COUNT).println();
-            pw.printPair(KEY_BG_CRITICAL_JOB_COUNT, BG_CRITICAL_JOB_COUNT).println();
 
             MAX_JOB_COUNTS_ON_NORMAL.dump(pw, "");
             MAX_JOB_COUNTS_ON_MODERATE.dump(pw, "");
@@ -859,11 +837,6 @@
             proto.write(ConstantsProto.MIN_READY_JOBS_COUNT, MIN_READY_JOBS_COUNT);
             proto.write(ConstantsProto.HEAVY_USE_FACTOR, HEAVY_USE_FACTOR);
             proto.write(ConstantsProto.MODERATE_USE_FACTOR, MODERATE_USE_FACTOR);
-            proto.write(ConstantsProto.FG_JOB_COUNT, FG_JOB_COUNT);
-            proto.write(ConstantsProto.BG_NORMAL_JOB_COUNT, BG_NORMAL_JOB_COUNT);
-            proto.write(ConstantsProto.BG_MODERATE_JOB_COUNT, BG_MODERATE_JOB_COUNT);
-            proto.write(ConstantsProto.BG_LOW_JOB_COUNT, BG_LOW_JOB_COUNT);
-            proto.write(ConstantsProto.BG_CRITICAL_JOB_COUNT, BG_CRITICAL_JOB_COUNT);
 
             // TODO Dump max job counts.
 
@@ -1558,6 +1531,9 @@
             } catch (RemoteException e) {
                 // ignored; both services live in system_server
             }
+
+            mConcurrencyManager.onSystemReady();
+
             // Remove any jobs that are not associated with any of the current users.
             cancelJobsForNonExistentUsers();
             // Register thermal callback
@@ -1685,7 +1661,7 @@
      * Reschedules the given job based on the job's backoff policy. It doesn't make sense to
      * specify an override deadline on a failed job (the failed job will run even though it's not
      * ready), so we reschedule it with {@link JobStatus#NO_LATEST_RUNTIME}, but specify that any
-     * ready job with {@link JobStatus#numFailures} > 0 will be executed.
+     * ready job with {@link JobStatus#getNumFailures()} > 0 will be executed.
      *
      * @param failureToReschedule Provided job status that we will reschedule.
      * @return A newly instantiated JobStatus with the same constraints as the last job except
@@ -2467,7 +2443,7 @@
      * A controller can force a job into the pending queue even if it's already running, but
      * here is where we decide whether to actually execute it.
      */
-    private void maybeRunPendingJobsLocked() {
+    void maybeRunPendingJobsLocked() {
         if (DEBUG) {
             Slog.d(TAG, "pending queue: " + mPendingJobs.size() + " jobs.");
         }
@@ -3480,9 +3456,12 @@
                 pw.println();
                 pw.print("mReadyToRock="); pw.println(mReadyToRock);
                 pw.print("mReportedActive="); pw.println(mReportedActive);
-                pw.print("mMaxActiveJobs="); pw.println(mMaxActiveJobs);
             }
             pw.println();
+
+            mConcurrencyManager.dumpLocked(pw);
+
+            pw.println();
             pw.print("PersistStats: ");
             pw.println(mJobs.getPersistStats());
         }
@@ -3634,8 +3613,8 @@
             if (filterUid == -1) {
                 proto.write(JobSchedulerServiceDumpProto.IS_READY_TO_ROCK, mReadyToRock);
                 proto.write(JobSchedulerServiceDumpProto.REPORTED_ACTIVE, mReportedActive);
-                proto.write(JobSchedulerServiceDumpProto.MAX_ACTIVE_JOBS, mMaxActiveJobs);
             }
+            mConcurrencyManager.dumpProtoLocked(proto);
         }
 
         proto.flush();
diff --git a/services/core/java/com/android/server/location/ActivityRecognitionProxy.java b/services/core/java/com/android/server/location/ActivityRecognitionProxy.java
deleted file mode 100644
index 22fabb2..0000000
--- a/services/core/java/com/android/server/location/ActivityRecognitionProxy.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.server.location;
-
-import android.content.Context;
-import android.hardware.location.ActivityRecognitionHardware;
-import android.hardware.location.IActivityRecognitionHardwareClient;
-import android.hardware.location.IActivityRecognitionHardwareWatcher;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.util.Log;
-
-import com.android.internal.os.BackgroundThread;
-import com.android.server.ServiceWatcher;
-
-/**
- * Proxy class to bind GmsCore to the ActivityRecognitionHardware.
- *
- * @hide
- */
-public class ActivityRecognitionProxy {
-
-    private static final String TAG = "ActivityRecognitionProxy";
-
-    /**
-     * Creates an instance of the proxy and binds it to the appropriate FusedProvider.
-     *
-     * @return An instance of the proxy if it could be bound, null otherwise.
-     */
-    public static ActivityRecognitionProxy createAndBind(
-            Context context,
-            boolean activityRecognitionHardwareIsSupported,
-            ActivityRecognitionHardware activityRecognitionHardware,
-            int overlaySwitchResId,
-            int defaultServicePackageNameResId,
-            int initialPackageNameResId) {
-        ActivityRecognitionProxy activityRecognitionProxy = new ActivityRecognitionProxy(
-                context,
-                activityRecognitionHardwareIsSupported,
-                activityRecognitionHardware,
-                overlaySwitchResId,
-                defaultServicePackageNameResId,
-                initialPackageNameResId);
-
-        if (activityRecognitionProxy.mServiceWatcher.start()) {
-            return activityRecognitionProxy;
-        } else {
-            return null;
-        }
-    }
-
-    private final ServiceWatcher mServiceWatcher;
-    private final boolean mIsSupported;
-    private final ActivityRecognitionHardware mInstance;
-
-    private ActivityRecognitionProxy(
-            Context context,
-            boolean activityRecognitionHardwareIsSupported,
-            ActivityRecognitionHardware activityRecognitionHardware,
-            int overlaySwitchResId,
-            int defaultServicePackageNameResId,
-            int initialPackageNameResId) {
-        mIsSupported = activityRecognitionHardwareIsSupported;
-        mInstance = activityRecognitionHardware;
-
-        mServiceWatcher = new ServiceWatcher(
-                context,
-                TAG,
-                "com.android.location.service.ActivityRecognitionProvider",
-                overlaySwitchResId,
-                defaultServicePackageNameResId,
-                initialPackageNameResId,
-                BackgroundThread.getHandler()) {
-            @Override
-            protected void onBind() {
-                runOnBinder(ActivityRecognitionProxy.this::initializeService);
-            }
-        };
-    }
-
-    private void initializeService(IBinder binder) {
-        try {
-            String descriptor = binder.getInterfaceDescriptor();
-
-            if (IActivityRecognitionHardwareWatcher.class.getCanonicalName().equals(
-                    descriptor)) {
-                IActivityRecognitionHardwareWatcher watcher =
-                        IActivityRecognitionHardwareWatcher.Stub.asInterface(binder);
-                if (mInstance != null) {
-                    watcher.onInstanceChanged(mInstance);
-                }
-            } else if (IActivityRecognitionHardwareClient.class.getCanonicalName()
-                    .equals(descriptor)) {
-                IActivityRecognitionHardwareClient client =
-                        IActivityRecognitionHardwareClient.Stub.asInterface(binder);
-                client.onAvailabilityChanged(mIsSupported, mInstance);
-            } else {
-                Log.e(TAG, "Invalid descriptor found on connection: " + descriptor);
-            }
-        } catch (RemoteException e) {
-            Log.w(TAG, e);
-        }
-    }
-}
diff --git a/services/core/java/com/android/server/location/GeofenceProxy.java b/services/core/java/com/android/server/location/GeofenceProxy.java
index ca4f7fe..38c7d49 100644
--- a/services/core/java/com/android/server/location/GeofenceProxy.java
+++ b/services/core/java/com/android/server/location/GeofenceProxy.java
@@ -113,8 +113,12 @@
             IGeofenceHardware geofenceHardware = IGeofenceHardware.Stub.asInterface(service);
 
             try {
-                geofenceHardware.setGpsGeofenceHardware(mGpsGeofenceHardware);
-                geofenceHardware.setFusedGeofenceHardware(mFusedGeofenceHardware);
+                if (mGpsGeofenceHardware != null) {
+                    geofenceHardware.setGpsGeofenceHardware(mGpsGeofenceHardware);
+                }
+                if (mFusedGeofenceHardware != null) {
+                    geofenceHardware.setFusedGeofenceHardware(mFusedGeofenceHardware);
+                }
 
                 mGeofenceHardware = geofenceHardware;
                 mServiceWatcher.runOnBinder(mUpdateGeofenceHardware);
diff --git a/services/core/java/com/android/server/location/GnssConfiguration.java b/services/core/java/com/android/server/location/GnssConfiguration.java
index 9e33943..7225926 100644
--- a/services/core/java/com/android/server/location/GnssConfiguration.java
+++ b/services/core/java/com/android/server/location/GnssConfiguration.java
@@ -23,6 +23,7 @@
 import android.telephony.SubscriptionManager;
 import android.text.TextUtils;
 import android.util.Log;
+import android.util.StatsLog;
 
 import libcore.io.IoUtils;
 
@@ -231,6 +232,8 @@
 
         mEsExtensionSec = getRangeCheckedConfigEsExtensionSec();
 
+        logConfigurations();
+
         final HalInterfaceVersion gnssConfigurationIfaceVersion =
                 native_get_gnss_configuration_version();
         if (gnssConfigurationIfaceVersion != null) {
@@ -282,6 +285,23 @@
         }
     }
 
+    private void logConfigurations() {
+        StatsLog.write(StatsLog.GNSS_CONFIGURATION_REPORTED,
+                getSuplHost(),
+                getSuplPort(0),
+                getC2KHost(),
+                getC2KPort(0),
+                getIntConfig(CONFIG_SUPL_VER, 0),
+                getSuplMode(0),
+                getSuplEs(0) == 1,
+                getIntConfig(CONFIG_LPP_PROFILE, 0),
+                getIntConfig(CONFIG_A_GLONASS_POS_PROTOCOL_SELECT, 0),
+                getIntConfig(CONFIG_USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL, 0) == 1,
+                getIntConfig(CONFIG_GPS_LOCK, 0),
+                getEsExtensionSec(),
+                mProperties.getProperty(CONFIG_NFW_PROXY_APPS));
+    }
+
     /**
      * Loads GNSS properties from carrier config file.
      */
diff --git a/services/core/java/com/android/server/location/GnssVisibilityControl.java b/services/core/java/com/android/server/location/GnssVisibilityControl.java
index 845aa9d..591889d 100644
--- a/services/core/java/com/android/server/location/GnssVisibilityControl.java
+++ b/services/core/java/com/android/server/location/GnssVisibilityControl.java
@@ -28,6 +28,7 @@
 import android.os.UserHandle;
 import android.text.TextUtils;
 import android.util.Log;
+import android.util.StatsLog;
 
 import java.util.Arrays;
 import java.util.HashMap;
@@ -278,14 +279,24 @@
         if (DEBUG) Log.d(TAG, nfwNotification.toString());
 
         final String proxyAppPackageName = nfwNotification.mProxyAppPackageName;
+        Boolean isLocationPermissionEnabled = mProxyAppToLocationPermissions.get(
+                proxyAppPackageName);
+        boolean isLocationRequestAccepted =
+                nfwNotification.mResponseType != NfwNotification.NFW_RESPONSE_TYPE_REJECTED;
+        boolean isPermissionMismatched;
+        if (isLocationPermissionEnabled == null) {
+            isPermissionMismatched = isLocationRequestAccepted;
+        } else {
+            isPermissionMismatched = (isLocationPermissionEnabled != isLocationRequestAccepted);
+        }
+        logEvent(nfwNotification, isPermissionMismatched);
+
         if (TextUtils.isEmpty(proxyAppPackageName)) {
             Log.e(TAG, "ProxyAppPackageName field is not set. Not sending intent to proxy app for "
                     + nfwNotification);
             return;
         }
 
-        Boolean isLocationPermissionEnabled = mProxyAppToLocationPermissions.get(
-                proxyAppPackageName);
         if (isLocationPermissionEnabled == null) {
             // App is not in the configured list.
             Log.e(TAG, "Could not find proxy app with name: " + proxyAppPackageName + " in the "
@@ -317,9 +328,7 @@
         mAppOps.noteOpNoThrow(AppOpsManager.OP_FINE_LOCATION, clsAppUid, proxyAppPackageName);
 
         // Log proxy app permission mismatch between framework and GNSS HAL.
-        boolean isLocationRequestAccepted =
-                nfwNotification.mResponseType != NfwNotification.NFW_RESPONSE_TYPE_REJECTED;
-        if (isLocationPermissionEnabled != isLocationRequestAccepted) {
+        if (isPermissionMismatched) {
             Log.w(TAG, "Permission mismatch. Framework proxy app " + proxyAppPackageName
                     + " location permission is set to " + isLocationPermissionEnabled
                     + " but GNSS non-framework location access response type is "
@@ -338,6 +347,19 @@
         }
     }
 
+    private void logEvent(NfwNotification notification, boolean isPermissionMismatched) {
+        StatsLog.write(StatsLog.GNSS_NFW_NOTIFICATION_REPORTED,
+                notification.mProxyAppPackageName,
+                notification.mProtocolStack,
+                notification.mOtherProtocolStackName,
+                notification.mRequestor,
+                notification.mRequestorId,
+                notification.mResponseType,
+                notification.mInEmergencyMode,
+                notification.mIsCachedLocation,
+                isPermissionMismatched);
+    }
+
     private void postEvent(Runnable event) {
         // Hold a wake lock until this message is delivered.
         // Note that this assumes the message will not be removed from the queue before
diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java
index ea8c792..8734ceb6 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsService.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java
@@ -21,10 +21,10 @@
 import static android.content.Context.KEYGUARD_SERVICE;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 
-import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_BOOT;
-import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT;
 import static com.android.internal.widget.LockPatternUtils.SYNTHETIC_PASSWORD_ENABLED_KEY;
 import static com.android.internal.widget.LockPatternUtils.SYNTHETIC_PASSWORD_HANDLE_KEY;
+import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_BOOT;
+import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT;
 import static com.android.internal.widget.LockPatternUtils.USER_FRP;
 import static com.android.internal.widget.LockPatternUtils.frpCredentialEnabled;
 import static com.android.internal.widget.LockPatternUtils.userOwnsFrpCredential;
@@ -81,9 +81,9 @@
 import android.security.keystore.KeyProtection;
 import android.security.keystore.UserNotAuthenticatedException;
 import android.security.keystore.recovery.KeyChainProtectionParams;
+import android.security.keystore.recovery.KeyChainSnapshot;
 import android.security.keystore.recovery.RecoveryCertPath;
 import android.security.keystore.recovery.WrappedApplicationKey;
-import android.security.keystore.recovery.KeyChainSnapshot;
 import android.service.gatekeeper.GateKeeperResponse;
 import android.service.gatekeeper.IGateKeeperService;
 import android.text.TextUtils;
@@ -109,9 +109,9 @@
 import com.android.server.SystemService;
 import com.android.server.locksettings.LockSettingsStorage.CredentialHash;
 import com.android.server.locksettings.LockSettingsStorage.PersistentData;
-import com.android.server.locksettings.recoverablekeystore.RecoverableKeyStoreManager;
 import com.android.server.locksettings.SyntheticPasswordManager.AuthenticationResult;
 import com.android.server.locksettings.SyntheticPasswordManager.AuthenticationToken;
+import com.android.server.locksettings.recoverablekeystore.RecoverableKeyStoreManager;
 import com.android.server.wm.WindowManagerInternal;
 
 import libcore.util.HexEncoding;
@@ -130,8 +130,8 @@
 import java.security.SecureRandom;
 import java.security.UnrecoverableKeyException;
 import java.security.cert.CertificateException;
-import java.util.Arrays;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
@@ -2103,11 +2103,24 @@
     }
 
     @Override
-    public @Nullable String importKey(@NonNull String alias, byte[] keyBytes) throws RemoteException {
+    public @Nullable String generateKeyWithMetadata(
+            @NonNull String alias, @Nullable byte[] metadata) throws RemoteException {
+        return mRecoverableKeyStoreManager.generateKeyWithMetadata(alias, metadata);
+    }
+
+    @Override
+    public @Nullable String importKey(@NonNull String alias, @NonNull byte[] keyBytes)
+            throws RemoteException {
         return mRecoverableKeyStoreManager.importKey(alias, keyBytes);
     }
 
     @Override
+    public @Nullable String importKeyWithMetadata(@NonNull String alias, @NonNull byte[] keyBytes,
+            @Nullable byte[] metadata) throws RemoteException {
+        return mRecoverableKeyStoreManager.importKeyWithMetadata(alias, keyBytes, metadata);
+    }
+
+    @Override
     public @Nullable String getKey(@NonNull String alias) throws RemoteException {
         return mRecoverableKeyStoreManager.getKey(alias);
     }
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncTask.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncTask.java
index f1951b1..1f9b027 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncTask.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncTask.java
@@ -26,6 +26,7 @@
 import android.security.keystore.recovery.KeyDerivationParams;
 import android.security.keystore.recovery.WrappedApplicationKey;
 import android.util.Log;
+import android.util.Pair;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.ArrayUtils;
@@ -258,9 +259,9 @@
             localLskfHash = hashCredentialsBySaltedSha256(salt, mCredential);
         }
 
-        Map<String, SecretKey> rawKeys;
+        Map<String, Pair<SecretKey, byte[]>> rawKeysWithMetadata;
         try {
-            rawKeys = getKeysToSync(recoveryAgentUid);
+            rawKeysWithMetadata = getKeysToSync(recoveryAgentUid);
         } catch (GeneralSecurityException e) {
             Log.e(TAG, "Failed to load recoverable keys for sync", e);
             return;
@@ -278,7 +279,9 @@
         }
         // Only include insecure key material for test
         if (mTestOnlyInsecureCertificateHelper.isTestOnlyCertificateAlias(rootCertAlias)) {
-            rawKeys = mTestOnlyInsecureCertificateHelper.keepOnlyWhitelistedInsecureKeys(rawKeys);
+            rawKeysWithMetadata =
+                    mTestOnlyInsecureCertificateHelper.keepOnlyWhitelistedInsecureKeys(
+                            rawKeysWithMetadata);
         }
 
         SecretKey recoveryKey;
@@ -292,7 +295,7 @@
         Map<String, byte[]> encryptedApplicationKeys;
         try {
             encryptedApplicationKeys = KeySyncUtils.encryptKeysWithRecoveryKey(
-                    recoveryKey, rawKeys);
+                    recoveryKey, rawKeysWithMetadata);
         } catch (InvalidKeyException | NoSuchAlgorithmException e) {
             Log.wtf(TAG,
                     "Should be impossible: could not encrypt application keys with random key",
@@ -356,7 +359,8 @@
                 .setCounterId(counterId)
                 .setServerParams(vaultHandle)
                 .setKeyChainProtectionParams(metadataList)
-                .setWrappedApplicationKeys(createApplicationKeyEntries(encryptedApplicationKeys))
+                .setWrappedApplicationKeys(
+                        createApplicationKeyEntries(encryptedApplicationKeys, rawKeysWithMetadata))
                 .setEncryptedRecoveryKeyBlob(encryptedRecoveryKey);
         try {
             keyChainSnapshotBuilder.setTrustedHardwareCertPath(certPath);
@@ -405,7 +409,7 @@
     /**
      * Returns all of the recoverable keys for the user.
      */
-    private Map<String, SecretKey> getKeysToSync(int recoveryAgentUid)
+    private Map<String, Pair<SecretKey, byte[]>> getKeysToSync(int recoveryAgentUid)
             throws InsecureUserException, KeyStoreException, UnrecoverableKeyException,
             NoSuchAlgorithmException, NoSuchPaddingException, BadPlatformKeyException,
             InvalidKeyException, InvalidAlgorithmParameterException, IOException {
@@ -521,12 +525,14 @@
     }
 
     private static List<WrappedApplicationKey> createApplicationKeyEntries(
-            Map<String, byte[]> encryptedApplicationKeys) {
+            Map<String, byte[]> encryptedApplicationKeys,
+            Map<String, Pair<SecretKey, byte[]>> originalKeysWithMetadata) {
         ArrayList<WrappedApplicationKey> keyEntries = new ArrayList<>();
         for (String alias : encryptedApplicationKeys.keySet()) {
             keyEntries.add(new WrappedApplicationKey.Builder()
                     .setAlias(alias)
                     .setEncryptedKeyMaterial(encryptedApplicationKeys.get(alias))
+                    .setMetadata(originalKeysWithMetadata.get(alias).second)
                     .build());
         }
         return keyEntries;
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncUtils.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncUtils.java
index 8e6f9cb..24d575e 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncUtils.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncUtils.java
@@ -16,6 +16,9 @@
 
 package com.android.server.locksettings.recoverablekeystore;
 
+import android.annotation.Nullable;
+import android.util.Pair;
+
 import com.android.internal.annotations.VisibleForTesting;
 
 import java.nio.ByteBuffer;
@@ -152,15 +155,28 @@
      * @hide
      */
     public static Map<String, byte[]> encryptKeysWithRecoveryKey(
-            SecretKey recoveryKey, Map<String, SecretKey> keys)
+            SecretKey recoveryKey, Map<String, Pair<SecretKey, byte[]>> keys)
             throws NoSuchAlgorithmException, InvalidKeyException {
         HashMap<String, byte[]> encryptedKeys = new HashMap<>();
         for (String alias : keys.keySet()) {
-            SecretKey key = keys.get(alias);
+            SecretKey key = keys.get(alias).first;
+            byte[] metadata = keys.get(alias).second;
+            byte[] header;
+            if (metadata == null) {
+                header = ENCRYPTED_APPLICATION_KEY_HEADER;
+            } else {
+                // The provided metadata, if non-empty, will be bound to the authenticated
+                // encryption process of the key material. As a result, the ciphertext cannot be
+                // decrypted if a wrong metadata is provided during the recovery/decryption process.
+                // Note that Android P devices do not have the API to provide the optional metadata,
+                // so all the keys with non-empty metadata stored on Android Q+ devices cannot be
+                // recovered on Android P devices.
+                header = concat(ENCRYPTED_APPLICATION_KEY_HEADER, metadata);
+            }
             byte[] encryptedKey = SecureBox.encrypt(
                     /*theirPublicKey=*/ null,
                     /*sharedSecret=*/ recoveryKey.getEncoded(),
-                    /*header=*/ ENCRYPTED_APPLICATION_KEY_HEADER,
+                    /*header=*/ header,
                     /*payload=*/ key.getEncoded());
             encryptedKeys.put(alias, encryptedKey);
         }
@@ -257,12 +273,19 @@
      * @throws AEADBadTagException if the message has been tampered with or was encrypted with a
      *     different key.
      */
-    public static byte[] decryptApplicationKey(byte[] recoveryKey, byte[] encryptedApplicationKey)
+    public static byte[] decryptApplicationKey(byte[] recoveryKey, byte[] encryptedApplicationKey,
+            @Nullable byte[] applicationKeyMetadata)
             throws NoSuchAlgorithmException, InvalidKeyException, AEADBadTagException {
+        byte[] header;
+        if (applicationKeyMetadata == null) {
+            header = ENCRYPTED_APPLICATION_KEY_HEADER;
+        } else {
+            header = concat(ENCRYPTED_APPLICATION_KEY_HEADER, applicationKeyMetadata);
+        }
         return SecureBox.decrypt(
                 /*ourPrivateKey=*/ null,
                 /*sharedSecret=*/ recoveryKey,
-                /*header=*/ ENCRYPTED_APPLICATION_KEY_HEADER,
+                /*header=*/ header,
                 /*encryptedPayload=*/ encryptedApplicationKey);
     }
 
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator.java
index c249468..1692e5c 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator.java
@@ -17,6 +17,8 @@
 package com.android.server.locksettings.recoverablekeystore;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.util.Log;
 
 import com.android.server.locksettings.recoverablekeystore.storage.RecoverableKeyStoreDb;
 
@@ -24,7 +26,6 @@
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.util.Locale;
-import android.util.Log;
 
 import javax.crypto.KeyGenerator;
 import javax.crypto.SecretKey;
@@ -84,6 +85,8 @@
      * @param userId The user ID of the profile to which the calling app belongs.
      * @param uid The uid of the application that will own the key.
      * @param alias The alias by which the key will be known in the recoverable key store.
+     * @param metadata The optional metadata that will be authenticated (but unencrypted) together
+     *     with the key material when the key is uploaded to cloud.
      * @throws RecoverableKeyStorageException if there is some error persisting the key either to
      *     the database.
      * @throws KeyStoreException if there is a KeyStore error wrapping the generated key.
@@ -92,12 +95,13 @@
      * @hide
      */
     public byte[] generateAndStoreKey(
-            PlatformEncryptionKey platformKey, int userId, int uid, String alias)
+            PlatformEncryptionKey platformKey, int userId, int uid, String alias,
+            @Nullable byte[] metadata)
             throws RecoverableKeyStorageException, KeyStoreException, InvalidKeyException {
         mKeyGenerator.init(KEY_SIZE_BITS);
         SecretKey key = mKeyGenerator.generateKey();
 
-        WrappedKey wrappedKey = WrappedKey.fromSecretKey(platformKey, key);
+        WrappedKey wrappedKey = WrappedKey.fromSecretKey(platformKey, key, metadata);
         long result = mDatabase.insertKey(userId, uid, alias, wrappedKey);
 
         if (result == RESULT_CANNOT_INSERT_ROW) {
@@ -126,6 +130,8 @@
      * @param uid The uid of the application that will own the key.
      * @param alias The alias by which the key will be known in the recoverable key store.
      * @param keyBytes The raw bytes of the AES key to be imported.
+     * @param metadata The optional metadata that will be authenticated (but unencrypted) together
+     *     with the key material when the key is uploaded to cloud.
      * @throws RecoverableKeyStorageException if there is some error persisting the key either to
      *     the database.
      * @throws KeyStoreException if there is a KeyStore error wrapping the generated key.
@@ -135,11 +141,11 @@
      */
     public void importKey(
             @NonNull PlatformEncryptionKey platformKey, int userId, int uid, @NonNull String alias,
-            @NonNull byte[] keyBytes)
+            @NonNull byte[] keyBytes, @Nullable byte[] metadata)
             throws RecoverableKeyStorageException, KeyStoreException, InvalidKeyException {
         SecretKey key = new SecretKeySpec(keyBytes, SECRET_KEY_ALGORITHM);
 
-        WrappedKey wrappedKey = WrappedKey.fromSecretKey(platformKey, key);
+        WrappedKey wrappedKey = WrappedKey.fromSecretKey(platformKey, key, metadata);
         long result = mDatabase.insertKey(userId, uid, alias, wrappedKey);
 
         if (result == RESULT_CANNOT_INSERT_ROW) {
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager.java
index fc5184d..ed864c0 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager.java
@@ -20,8 +20,8 @@
 import static android.security.keystore.recovery.RecoveryController.ERROR_DECRYPTION_FAILED;
 import static android.security.keystore.recovery.RecoveryController.ERROR_DOWNGRADE_CERTIFICATE;
 import static android.security.keystore.recovery.RecoveryController.ERROR_INSECURE_USER;
-import static android.security.keystore.recovery.RecoveryController.ERROR_INVALID_KEY_FORMAT;
 import static android.security.keystore.recovery.RecoveryController.ERROR_INVALID_CERTIFICATE;
+import static android.security.keystore.recovery.RecoveryController.ERROR_INVALID_KEY_FORMAT;
 import static android.security.keystore.recovery.RecoveryController.ERROR_NO_SNAPSHOT_PENDING;
 import static android.security.keystore.recovery.RecoveryController.ERROR_SERVICE_INTERNAL_ERROR;
 import static android.security.keystore.recovery.RecoveryController.ERROR_SESSION_EXPIRED;
@@ -35,12 +35,12 @@
 import android.os.RemoteException;
 import android.os.ServiceSpecificException;
 import android.os.UserHandle;
+import android.security.KeyStore;
 import android.security.keystore.recovery.KeyChainProtectionParams;
 import android.security.keystore.recovery.KeyChainSnapshot;
 import android.security.keystore.recovery.RecoveryCertPath;
 import android.security.keystore.recovery.RecoveryController;
 import android.security.keystore.recovery.WrappedApplicationKey;
-import android.security.KeyStore;
 import android.util.ArrayMap;
 import android.util.Log;
 
@@ -59,7 +59,6 @@
 
 import java.io.IOException;
 import java.security.InvalidKeyException;
-import java.security.KeyFactory;
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.security.PublicKey;
@@ -70,7 +69,6 @@
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
 import java.security.spec.InvalidKeySpecException;
-import java.security.spec.X509EncodedKeySpec;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
@@ -606,7 +604,8 @@
 
         try {
             byte[] recoveryKey = decryptRecoveryKey(sessionEntry, encryptedRecoveryKey);
-            Map<String, byte[]> keysByAlias = recoverApplicationKeys(recoveryKey, applicationKeys);
+            Map<String, byte[]> keysByAlias = recoverApplicationKeys(recoveryKey,
+                    applicationKeys);
             return importKeyMaterials(userId, uid, keysByAlias);
         } catch (KeyStoreException e) {
             throw new ServiceSpecificException(ERROR_SERVICE_INTERNAL_ERROR, e.getMessage());
@@ -625,7 +624,8 @@
      * @throws KeyStoreException if an error occurs importing the key or getting the grant.
      */
     private @NonNull Map<String, String> importKeyMaterials(
-            int userId, int uid, Map<String, byte[]> keysByAlias) throws KeyStoreException {
+            int userId, int uid, Map<String, byte[]> keysByAlias)
+            throws KeyStoreException {
         ArrayMap<String, String> grantAliasesByAlias = new ArrayMap<>(keysByAlias.size());
         for (String alias : keysByAlias.keySet()) {
             mApplicationKeyStorage.setSymmetricKeyEntry(userId, uid, alias, keysByAlias.get(alias));
@@ -674,9 +674,29 @@
      * Generates a key named {@code alias} in caller's namespace.
      * The key is stored in system service keystore namespace.
      *
+     * @param alias the alias provided by caller as a reference to the key.
      * @return grant alias, which caller can use to access the key.
+     * @throws RemoteException if certain internal errors occur.
+     *
+     * @deprecated Use {@link #generateKeyWithMetadata(String, byte[])} instead.
      */
+    @Deprecated
     public String generateKey(@NonNull String alias) throws RemoteException {
+        return generateKeyWithMetadata(alias, /*metadata=*/ null);
+    }
+
+    /**
+     * Generates a key named {@code alias} with the {@code metadata} in caller's namespace.
+     * The key is stored in system service keystore namespace.
+     *
+     * @param alias the alias provided by caller as a reference to the key.
+     * @param metadata the optional metadata blob that will authenticated (but unencrypted) together
+     *         with the key material when the key is uploaded to cloud.
+     * @return grant alias, which caller can use to access the key.
+     * @throws RemoteException if certain internal errors occur.
+     */
+    public String generateKeyWithMetadata(@NonNull String alias, @Nullable byte[] metadata)
+            throws RemoteException {
         checkRecoverKeyStorePermission();
         Preconditions.checkNotNull(alias, "alias is null");
         int uid = Binder.getCallingUid();
@@ -695,8 +715,8 @@
         }
 
         try {
-            byte[] secretKey =
-                    mRecoverableKeyGenerator.generateAndStoreKey(encryptionKey, userId, uid, alias);
+            byte[] secretKey = mRecoverableKeyGenerator.generateAndStoreKey(encryptionKey, userId,
+                    uid, alias, metadata);
             mApplicationKeyStorage.setSymmetricKeyEntry(userId, uid, alias, secretKey);
             return getAlias(userId, uid, alias);
         } catch (KeyStoreException | InvalidKeyException | RecoverableKeyStorageException e) {
@@ -713,10 +733,30 @@
      * @return grant alias, which caller can use to access the key.
      * @throws RemoteException if the given key is invalid or some internal errors occur.
      *
+     * @deprecated Use {{@link #importKeyWithMetadata(String, byte[], byte[])}} instead.
+     *
      * @hide
      */
+    @Deprecated
     public @Nullable String importKey(@NonNull String alias, @NonNull byte[] keyBytes)
             throws RemoteException {
+        return importKeyWithMetadata(alias, keyBytes, /*metadata=*/ null);
+    }
+
+    /**
+     * Imports a 256-bit AES-GCM key named {@code alias} with the given {@code metadata}. The key is
+     * stored in system service keystore namespace.
+     *
+     * @param alias the alias provided by caller as a reference to the key.
+     * @param keyBytes the raw bytes of the 256-bit AES key.
+     * @param metadata the metadata to be authenticated (but unencrypted) together with the key.
+     * @return grant alias, which caller can use to access the key.
+     * @throws RemoteException if the given key is invalid or some internal errors occur.
+     *
+     * @hide
+     */
+    public @Nullable String importKeyWithMetadata(@NonNull String alias, @NonNull byte[] keyBytes,
+            @Nullable byte[] metadata) throws RemoteException {
         checkRecoverKeyStorePermission();
         Preconditions.checkNotNull(alias, "alias is null");
         Preconditions.checkNotNull(keyBytes, "keyBytes is null");
@@ -745,7 +785,8 @@
 
         try {
             // Wrap the key by the platform key and store the wrapped key locally
-            mRecoverableKeyGenerator.importKey(encryptionKey, userId, uid, alias, keyBytes);
+            mRecoverableKeyGenerator.importKey(encryptionKey, userId, uid, alias, keyBytes,
+                    metadata);
 
             // Import the key to Android KeyStore and get grant
             mApplicationKeyStorage.setSymmetricKeyEntry(userId, uid, alias, keyBytes);
@@ -812,17 +853,17 @@
      * @return Map from alias to raw key material.
      * @throws RemoteException if an error occurred decrypting the keys.
      */
-    private @NonNull Map<String, byte[]> recoverApplicationKeys(
-            @NonNull byte[] recoveryKey,
+    private @NonNull Map<String, byte[]> recoverApplicationKeys(@NonNull byte[] recoveryKey,
             @NonNull List<WrappedApplicationKey> applicationKeys) throws RemoteException {
         HashMap<String, byte[]> keyMaterialByAlias = new HashMap<>();
         for (WrappedApplicationKey applicationKey : applicationKeys) {
             String alias = applicationKey.getAlias();
             byte[] encryptedKeyMaterial = applicationKey.getEncryptedKeyMaterial();
+            byte[] keyMetadata = applicationKey.getMetadata();
 
             try {
-                byte[] keyMaterial =
-                        KeySyncUtils.decryptApplicationKey(recoveryKey, encryptedKeyMaterial);
+                byte[] keyMaterial = KeySyncUtils.decryptApplicationKey(recoveryKey,
+                        encryptedKeyMaterial, keyMetadata);
                 keyMaterialByAlias.put(alias, keyMaterial);
             } catch (NoSuchAlgorithmException e) {
                 Log.wtf(TAG, "Missing SecureBox algorithm. AOSP required to support this.", e);
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper.java
index 5ba3cce..057429c 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper.java
@@ -18,17 +18,20 @@
 
 import static android.security.keystore.recovery.RecoveryController.ERROR_INVALID_CERTIFICATE;
 
-import com.android.internal.widget.LockPatternUtils;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.os.RemoteException;
 import android.os.ServiceSpecificException;
 import android.security.keystore.recovery.TrustedRootCertificates;
 import android.util.Log;
+import android.util.Pair;
 
-import java.util.HashMap;
+import com.android.internal.widget.LockPatternUtils;
+
 import java.security.cert.X509Certificate;
+import java.util.HashMap;
 import java.util.Map;
+
 import javax.crypto.SecretKey;
 
 /**
@@ -90,16 +93,18 @@
             && credential.startsWith(TrustedRootCertificates.INSECURE_PASSWORD_PREFIX);
     }
 
-    public Map<String, SecretKey> keepOnlyWhitelistedInsecureKeys(Map<String, SecretKey> rawKeys) {
+    public Map<String, Pair<SecretKey, byte[]>> keepOnlyWhitelistedInsecureKeys(
+            Map<String, Pair<SecretKey, byte[]>> rawKeys) {
         if (rawKeys == null) {
             return null;
         }
-        Map<String, SecretKey> filteredKeys = new HashMap<>();
-        for (Map.Entry<String, SecretKey> entry : rawKeys.entrySet()) {
+        Map<String, Pair<SecretKey, byte[]>> filteredKeys = new HashMap<>();
+        for (Map.Entry<String, Pair<SecretKey, byte[]>> entry : rawKeys.entrySet()) {
             String alias = entry.getKey();
             if (alias != null
                     && alias.startsWith(TrustedRootCertificates.INSECURE_KEY_ALIAS_PREFIX)) {
-                filteredKeys.put(entry.getKey(), entry.getValue());
+                filteredKeys.put(entry.getKey(),
+                        Pair.create(entry.getValue().first, entry.getValue().second));
                 Log.d(TAG, "adding key with insecure alias " + alias + " to the recovery snapshot");
             }
         }
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/WrappedKey.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/WrappedKey.java
index 0077242..09d7541 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/WrappedKey.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/WrappedKey.java
@@ -16,8 +16,10 @@
 
 package com.android.server.locksettings.recoverablekeystore;
 
+import android.annotation.Nullable;
 import android.security.keystore.recovery.RecoveryController;
 import android.util.Log;
+import android.util.Pair;
 
 import java.security.InvalidAlgorithmParameterException;
 import java.security.InvalidKeyException;
@@ -49,6 +51,7 @@
     private final int mRecoveryStatus;
     private final byte[] mNonce;
     private final byte[] mKeyMaterial;
+    private final byte[] mKeyMetadata;
 
     /**
      * Returns a wrapped form of {@code key}, using {@code wrappingKey} to encrypt the key material.
@@ -58,7 +61,8 @@
      *     {@link android.security.keystore.AndroidKeyStoreKey} for an example of a key that does
      *     not expose its key material.
      */
-    public static WrappedKey fromSecretKey(PlatformEncryptionKey wrappingKey, SecretKey key)
+    public static WrappedKey fromSecretKey(PlatformEncryptionKey wrappingKey, SecretKey key,
+            @Nullable byte[] metadata)
             throws InvalidKeyException, KeyStoreException {
         if (key.getEncoded() == null) {
             throw new InvalidKeyException(
@@ -96,6 +100,7 @@
         return new WrappedKey(
                 /*nonce=*/ cipher.getIV(),
                 /*keyMaterial=*/ encryptedKeyMaterial,
+                /*keyMetadata=*/ metadata,
                 /*platformKeyGenerationId=*/ wrappingKey.getGenerationId(),
                 RecoveryController.RECOVERY_STATUS_SYNC_IN_PROGRESS);
     }
@@ -110,11 +115,10 @@
      * @see RecoveryController#RECOVERY_STATUS_SYNC_IN_PROGRESS
      * @hide
      */
-    public WrappedKey(byte[] nonce, byte[] keyMaterial, int platformKeyGenerationId) {
-        mNonce = nonce;
-        mKeyMaterial = keyMaterial;
-        mPlatformKeyGenerationId = platformKeyGenerationId;
-        mRecoveryStatus = RecoveryController.RECOVERY_STATUS_SYNC_IN_PROGRESS;
+    public WrappedKey(byte[] nonce, byte[] keyMaterial, @Nullable byte[] keyMetadata,
+            int platformKeyGenerationId) {
+        this(nonce, keyMaterial, keyMetadata, platformKeyGenerationId,
+                RecoveryController.RECOVERY_STATUS_SYNC_IN_PROGRESS);
     }
 
     /**
@@ -122,15 +126,18 @@
      *
      * @param nonce The nonce with which the key material was encrypted.
      * @param keyMaterial The encrypted bytes of the key material.
+     * @param keyMetadata The metadata that will be authenticated (but unencrypted) together with
+     *     the key material when the key is uploaded to cloud.
      * @param platformKeyGenerationId The generation ID of the key used to wrap this key.
      * @param recoveryStatus recovery status of the key.
      *
      * @hide
      */
-    public WrappedKey(byte[] nonce, byte[] keyMaterial, int platformKeyGenerationId,
-            int recoveryStatus) {
+    public WrappedKey(byte[] nonce, byte[] keyMaterial, @Nullable byte[] keyMetadata,
+            int platformKeyGenerationId, int recoveryStatus) {
         mNonce = nonce;
         mKeyMaterial = keyMaterial;
+        mKeyMetadata = keyMetadata;
         mPlatformKeyGenerationId = platformKeyGenerationId;
         mRecoveryStatus = recoveryStatus;
     }
@@ -154,6 +161,15 @@
     }
 
     /**
+     * Returns the key metadata.
+     *
+     * @hide
+     */
+    public @Nullable byte[] getKeyMetadata() {
+        return mKeyMetadata;
+    }
+
+    /**
      * Returns the generation ID of the platform key, with which this key was wrapped.
      *
      * @hide
@@ -181,12 +197,12 @@
      *
      * @hide
      */
-    public static Map<String, SecretKey> unwrapKeys(
+    public static Map<String, Pair<SecretKey, byte[]>> unwrapKeys(
             PlatformDecryptionKey platformKey,
             Map<String, WrappedKey> wrappedKeys)
             throws NoSuchAlgorithmException, NoSuchPaddingException, BadPlatformKeyException,
             InvalidKeyException, InvalidAlgorithmParameterException {
-        HashMap<String, SecretKey> unwrappedKeys = new HashMap<>();
+        HashMap<String, Pair<SecretKey, byte[]>> unwrappedKeys = new HashMap<>();
         Cipher cipher = Cipher.getInstance(KEY_WRAP_CIPHER_ALGORITHM);
         int platformKeyGenerationId = platformKey.getGenerationId();
 
@@ -219,7 +235,7 @@
                         e);
                 continue;
             }
-            unwrappedKeys.put(alias, key);
+            unwrappedKeys.put(alias, Pair.create(key, wrappedKey.getKeyMetadata()));
         }
 
         return unwrappedKeys;
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer.java
index b486834..8a19d62 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer.java
@@ -23,19 +23,18 @@
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_ALIAS;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_APPLICATION_KEY;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_APPLICATION_KEYS;
-
-import static com.android.server.locksettings.recoverablekeystore.serialization
-        .KeyChainSnapshotSchema.TAG_BACKEND_PUBLIC_KEY;
+import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_BACKEND_PUBLIC_KEY;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_COUNTER_ID;
-import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_RECOVERY_KEY_MATERIAL;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_CHAIN_PROTECTION_PARAMS;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_CHAIN_PROTECTION_PARAMS_LIST;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_CHAIN_SNAPSHOT;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_DERIVATION_PARAMS;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_MATERIAL;
+import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_METADATA;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_LOCK_SCREEN_UI_TYPE;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_MAX_ATTEMPTS;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_MEMORY_DIFFICULTY;
+import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_RECOVERY_KEY_MATERIAL;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_SALT;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_SERVER_PARAMS;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_SNAPSHOT_VERSION;
@@ -49,6 +48,9 @@
 import android.util.Base64;
 import android.util.Xml;
 
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -59,9 +61,6 @@
 import java.util.List;
 import java.util.Locale;
 
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
 /**
  * Deserializes a {@link android.security.keystore.recovery.KeyChainSnapshot} instance from XML.
  */
@@ -191,6 +190,10 @@
                     builder.setEncryptedKeyMaterial(readBlobTag(parser, TAG_KEY_MATERIAL));
                     break;
 
+                case TAG_KEY_METADATA:
+                    builder.setMetadata(readBlobTag(parser, TAG_KEY_METADATA));
+                    break;
+
                 default:
                     throw new KeyChainSnapshotParserException(String.format(
                             Locale.US, "Unexpected tag %s in wrappedApplicationKey", name));
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSchema.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSchema.java
index 0f2c2fc..8f85a27 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSchema.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSchema.java
@@ -52,6 +52,7 @@
     static final String TAG_APPLICATION_KEY = "applicationKey";
     static final String TAG_ALIAS = "alias";
     static final String TAG_KEY_MATERIAL = "keyMaterial";
+    static final String TAG_KEY_METADATA = "keyMetadata";
 
     // Statics only
     private KeyChainSnapshotSchema() {}
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer.java
index 235df69..527e879 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer.java
@@ -24,25 +24,24 @@
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_ALIAS;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_APPLICATION_KEY;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_APPLICATION_KEYS;
-
-import static com.android.server.locksettings.recoverablekeystore.serialization
-        .KeyChainSnapshotSchema.TAG_BACKEND_PUBLIC_KEY;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_COUNTER_ID;
-import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_RECOVERY_KEY_MATERIAL;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_CHAIN_PROTECTION_PARAMS;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_CHAIN_PROTECTION_PARAMS_LIST;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_CHAIN_SNAPSHOT;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_DERIVATION_PARAMS;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_MATERIAL;
+import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_KEY_METADATA;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_LOCK_SCREEN_UI_TYPE;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_MAX_ATTEMPTS;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_MEMORY_DIFFICULTY;
+import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_RECOVERY_KEY_MATERIAL;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_SALT;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_SERVER_PARAMS;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_SNAPSHOT_VERSION;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_TRUSTED_HARDWARE_CERT_PATH;
 import static com.android.server.locksettings.recoverablekeystore.serialization.KeyChainSnapshotSchema.TAG_USER_SECRET_TYPE;
 
+import android.annotation.Nullable;
 import android.security.keystore.recovery.KeyChainProtectionParams;
 import android.security.keystore.recovery.KeyChainSnapshot;
 import android.security.keystore.recovery.KeyDerivationParams;
@@ -103,6 +102,7 @@
             XmlSerializer xmlSerializer, WrappedApplicationKey applicationKey) throws IOException {
         writePropertyTag(xmlSerializer, TAG_ALIAS, applicationKey.getAlias());
         writePropertyTag(xmlSerializer, TAG_KEY_MATERIAL, applicationKey.getEncryptedKeyMaterial());
+        writePropertyTag(xmlSerializer, TAG_KEY_METADATA, applicationKey.getMetadata());
     }
 
     private static void writeKeyChainProtectionParams(
@@ -181,8 +181,11 @@
     }
 
     private static void writePropertyTag(
-            XmlSerializer xmlSerializer, String propertyName, byte[] propertyValue)
+            XmlSerializer xmlSerializer, String propertyName, @Nullable byte[] propertyValue)
             throws IOException {
+        if (propertyValue == null) {
+            return;
+        }
         xmlSerializer.startTag(NAMESPACE, propertyName);
         xmlSerializer.text(Base64.encodeToString(propertyValue, /*flags=*/ Base64.DEFAULT));
         xmlSerializer.endTag(NAMESPACE, propertyName);
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb.java
index e69f73d..dffaffe 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb.java
@@ -104,6 +104,12 @@
         values.put(KeysEntry.COLUMN_NAME_LAST_SYNCED_AT, LAST_SYNCED_AT_UNSYNCED);
         values.put(KeysEntry.COLUMN_NAME_GENERATION_ID, wrappedKey.getPlatformKeyGenerationId());
         values.put(KeysEntry.COLUMN_NAME_RECOVERY_STATUS, wrappedKey.getRecoveryStatus());
+        byte[] keyMetadata = wrappedKey.getKeyMetadata();
+        if (keyMetadata == null) {
+            values.putNull(KeysEntry.COLUMN_NAME_KEY_METADATA);
+        } else {
+            values.put(KeysEntry.COLUMN_NAME_KEY_METADATA, keyMetadata);
+        }
         return db.replace(KeysEntry.TABLE_NAME, /*nullColumnHack=*/ null, values);
     }
 
@@ -119,7 +125,8 @@
                 KeysEntry.COLUMN_NAME_NONCE,
                 KeysEntry.COLUMN_NAME_WRAPPED_KEY,
                 KeysEntry.COLUMN_NAME_GENERATION_ID,
-                KeysEntry.COLUMN_NAME_RECOVERY_STATUS};
+                KeysEntry.COLUMN_NAME_RECOVERY_STATUS,
+                KeysEntry.COLUMN_NAME_KEY_METADATA};
         String selection =
                 KeysEntry.COLUMN_NAME_UID + " = ? AND "
                 + KeysEntry.COLUMN_NAME_ALIAS + " = ?";
@@ -155,7 +162,17 @@
                     cursor.getColumnIndexOrThrow(KeysEntry.COLUMN_NAME_GENERATION_ID));
             int recoveryStatus = cursor.getInt(
                     cursor.getColumnIndexOrThrow(KeysEntry.COLUMN_NAME_RECOVERY_STATUS));
-            return new WrappedKey(nonce, keyMaterial, generationId, recoveryStatus);
+
+            // Retrieve the metadata associated with the key
+            byte[] keyMetadata;
+            int metadataIdx = cursor.getColumnIndexOrThrow(KeysEntry.COLUMN_NAME_KEY_METADATA);
+            if (cursor.isNull(metadataIdx)) {
+                keyMetadata = null;
+            } else {
+                keyMetadata = cursor.getBlob(metadataIdx);
+            }
+
+            return new WrappedKey(nonce, keyMaterial, keyMetadata, generationId, recoveryStatus);
         }
     }
 
@@ -252,7 +269,8 @@
                 KeysEntry.COLUMN_NAME_NONCE,
                 KeysEntry.COLUMN_NAME_WRAPPED_KEY,
                 KeysEntry.COLUMN_NAME_ALIAS,
-                KeysEntry.COLUMN_NAME_RECOVERY_STATUS};
+                KeysEntry.COLUMN_NAME_RECOVERY_STATUS,
+                KeysEntry.COLUMN_NAME_KEY_METADATA};
         String selection =
                 KeysEntry.COLUMN_NAME_USER_ID + " = ? AND "
                 + KeysEntry.COLUMN_NAME_UID + " = ? AND "
@@ -283,8 +301,18 @@
                         cursor.getColumnIndexOrThrow(KeysEntry.COLUMN_NAME_ALIAS));
                 int recoveryStatus = cursor.getInt(
                         cursor.getColumnIndexOrThrow(KeysEntry.COLUMN_NAME_RECOVERY_STATUS));
-                keys.put(alias, new WrappedKey(nonce, keyMaterial, platformKeyGenerationId,
-                        recoveryStatus));
+
+                // Retrieve the metadata associated with the key
+                byte[] keyMetadata;
+                int metadataIdx = cursor.getColumnIndexOrThrow(KeysEntry.COLUMN_NAME_KEY_METADATA);
+                if (cursor.isNull(metadataIdx)) {
+                    keyMetadata = null;
+                } else {
+                    keyMetadata = cursor.getBlob(metadataIdx);
+                }
+
+                keys.put(alias, new WrappedKey(nonce, keyMaterial, keyMetadata,
+                        platformKeyGenerationId, recoveryStatus));
             }
             return keys;
         }
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbContract.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbContract.java
index 22e77cc..b58ee4b 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbContract.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbContract.java
@@ -67,6 +67,12 @@
          * Status of the key sync {@code RecoveryController#setRecoveryStatus}
          */
         static final String COLUMN_NAME_RECOVERY_STATUS = "recovery_status";
+
+        /**
+         * Data blob that will be authenticated (but encrypted) together with the key when the key
+         * is uploaded to cloud.
+         */
+        static final String COLUMN_NAME_KEY_METADATA = "key_metadata";
     }
 
     /**
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper.java
index 43efe9c..b0613da 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper.java
@@ -32,7 +32,7 @@
 class RecoverableKeyStoreDbHelper extends SQLiteOpenHelper {
     private static final String TAG = "RecoverableKeyStoreDbHp";
 
-    static final int DATABASE_VERSION = 4;
+    static final int DATABASE_VERSION = 5;
     private static final String DATABASE_NAME = "recoverablekeystore.db";
 
     private static final String SQL_CREATE_KEYS_ENTRY =
@@ -46,6 +46,7 @@
                     + KeysEntry.COLUMN_NAME_GENERATION_ID + " INTEGER,"
                     + KeysEntry.COLUMN_NAME_LAST_SYNCED_AT + " INTEGER,"
                     + KeysEntry.COLUMN_NAME_RECOVERY_STATUS + " INTEGER,"
+                    + KeysEntry.COLUMN_NAME_KEY_METADATA + " BLOB,"
                     + "UNIQUE(" + KeysEntry.COLUMN_NAME_UID + ","
                     + KeysEntry.COLUMN_NAME_ALIAS + "))";
 
@@ -135,6 +136,11 @@
             oldVersion = 4;
         }
 
+        if (oldVersion < 5 && newVersion >= 5) {
+            upgradeDbForVersion5(db);
+            oldVersion = 5;
+        }
+
         if (oldVersion != newVersion) {
             Log.e(TAG, "Failed to update recoverablekeystore database to the most recent version");
         }
@@ -166,6 +172,13 @@
                 /*defaultStr=*/ null);
     }
 
+    private void upgradeDbForVersion5(SQLiteDatabase db) {
+        Log.d(TAG, "Updating recoverable keystore database to version 5");
+        // adds a column to store the metadata for application keys
+        addColumnToTable(db, KeysEntry.TABLE_NAME,
+                KeysEntry.COLUMN_NAME_KEY_METADATA, "BLOB", /*defaultStr=*/ null);
+    }
+
     private static void addColumnToTable(
             SQLiteDatabase db, String tableName, String column, String columnType,
             String defaultStr) {
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 7323e93..1798617 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -3509,7 +3509,7 @@
                     getContext().sendBroadcastAsUser(new Intent(
                             NotificationManager.ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED)
                                     .setPackage(pkg)
-                                    .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY),
+                                    .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT),
                             UserHandle.of(userId), null);
                     handleSavePolicyFile();
                 }
diff --git a/services/core/java/com/android/server/os/BugreportManagerServiceImpl.java b/services/core/java/com/android/server/os/BugreportManagerServiceImpl.java
index faa4714..1178cc1 100644
--- a/services/core/java/com/android/server/os/BugreportManagerServiceImpl.java
+++ b/services/core/java/com/android/server/os/BugreportManagerServiceImpl.java
@@ -17,7 +17,9 @@
 package com.android.server.os;
 
 import android.annotation.RequiresPermission;
+import android.app.AppOpsManager;
 import android.content.Context;
+import android.os.Binder;
 import android.os.BugreportParams;
 import android.os.IDumpstate;
 import android.os.IDumpstateListener;
@@ -46,9 +48,11 @@
 
     private IDumpstate mDs = null;
     private final Context mContext;
+    private final AppOpsManager mAppOps;
 
     BugreportManagerServiceImpl(Context context) {
         mContext = context;
+        mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
     }
 
     @Override
@@ -60,21 +64,24 @@
         throw new UnsupportedOperationException("setListener is not allowed on this service");
     }
 
-
     @Override
     @RequiresPermission(android.Manifest.permission.DUMP)
-    public void startBugreport(FileDescriptor bugreportFd, FileDescriptor screenshotFd,
+    public void startBugreport(int callingUidUnused, String callingPackage,
+            FileDescriptor bugreportFd, FileDescriptor screenshotFd,
             int bugreportMode, IDumpstateListener listener) throws RemoteException {
-
+        int callingUid = Binder.getCallingUid();
+        // TODO(b/111441001): validate all arguments & ensure primary user
         validate(bugreportMode);
 
+        mAppOps.checkPackage(callingUid, callingPackage);
         mDs = getDumpstateService();
         if (mDs == null) {
             Slog.w(TAG, "Unable to get bugreport service");
             // TODO(b/111441001): pass error on listener
             return;
         }
-        mDs.startBugreport(bugreportFd, screenshotFd, bugreportMode, listener);
+        mDs.startBugreport(callingUid, callingPackage,
+                bugreportFd, screenshotFd, bugreportMode, listener);
     }
 
     private boolean validate(@BugreportParams.BugreportMode int mode) {
diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
index d6ab5f7..65fc982 100644
--- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java
+++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
@@ -27,24 +27,29 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageInfo;
 import android.os.BatteryManager;
 import android.os.Environment;
 import android.os.ServiceManager;
 import android.os.SystemProperties;
+import android.os.UserHandle;
 import android.os.storage.StorageManager;
 import android.util.ArraySet;
 import android.util.Log;
+import android.util.StatsLog;
 
-import com.android.server.pm.dex.DexManager;
+import com.android.internal.util.ArrayUtils;
 import com.android.server.LocalServices;
 import com.android.server.PinnerService;
+import com.android.server.pm.dex.DexManager;
 import com.android.server.pm.dex.DexoptOptions;
 
 import java.io.File;
+import java.nio.file.Paths;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * {@hide}
@@ -289,6 +294,50 @@
         return result;
     }
 
+    /**
+     * Get the size of the directory. It uses recursion to go over all files.
+     * @param f
+     * @return
+     */
+    private long getDirectorySize(File f) {
+        long size = 0;
+        if (f.isDirectory()) {
+            for (File file: f.listFiles()) {
+                size += getDirectorySize(file);
+            }
+        } else {
+            size = f.length();
+        }
+        return size;
+    }
+
+    /**
+     * Get the size of a package.
+     * @param pkg
+     */
+    private long getPackageSize(PackageManagerService pm, String pkg) {
+        PackageInfo info = pm.getPackageInfo(pkg, 0, UserHandle.USER_SYSTEM);
+        long size = 0;
+        if (info != null && info.applicationInfo != null) {
+            File path = Paths.get(info.applicationInfo.sourceDir).toFile();
+            if (path.isFile()) {
+                path = path.getParentFile();
+            }
+            size += getDirectorySize(path);
+            if (!ArrayUtils.isEmpty(info.applicationInfo.splitSourceDirs)) {
+                for (String splitSourceDir : info.applicationInfo.splitSourceDirs) {
+                    path = Paths.get(splitSourceDir).toFile();
+                    if (path.isFile()) {
+                        path = path.getParentFile();
+                    }
+                    size += getDirectorySize(path);
+                }
+            }
+            return size;
+        }
+        return 0;
+    }
+
     private int optimizePackages(PackageManagerService pm, ArraySet<String> pkgs,
             long lowStorageThreshold, boolean is_for_primary_dex,
             ArraySet<String> failedPackageNames) {
@@ -315,8 +364,10 @@
 
             int reason;
             boolean downgrade;
+            long package_size_before = 0; //used when the app is downgraded
             // Downgrade unused packages.
             if (unusedPackages.contains(pkg) && shouldDowngrade) {
+                package_size_before = getPackageSize(pm, pkg);
                 // This applies for system apps or if packages location is not a directory, i.e.
                 // monolithic install.
                 if (is_for_primary_dex && !pm.canHaveOatDir(pkg)) {
@@ -366,6 +417,10 @@
                 synchronized (failedPackageNames) {
                     failedPackageNames.remove(pkg);
                 }
+                if (downgrade) {
+                    StatsLog.write(StatsLog.APP_DOWNGRADED, pkg, package_size_before,
+                            getPackageSize(pm, pkg), /*aggressive=*/ false);
+                }
             }
         }
         notifyPinService(updatedPackages);
diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java
index a5c083e..8a6105c 100644
--- a/services/core/java/com/android/server/pm/Installer.java
+++ b/services/core/java/com/android/server/pm/Installer.java
@@ -621,6 +621,14 @@
         throw new InstallerException("Invalid instruction set: " + instructionSet);
     }
 
+    public boolean compileLayouts(String apkPath, String packageName, String outDexFile, int uid) {
+        try {
+            return mInstalld.compileLayouts(apkPath, packageName, outDexFile, uid);
+        } catch (RemoteException e) {
+            return false;
+        }
+    }
+
     public static class InstallerException extends Exception {
         public InstallerException(String detailMessage) {
             super(detailMessage);
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 6fe32c5..09fe26d 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -311,6 +311,7 @@
 import com.android.server.pm.dex.DexManager;
 import com.android.server.pm.dex.DexoptOptions;
 import com.android.server.pm.dex.PackageDexUsage;
+import com.android.server.pm.dex.ViewCompiler;
 import com.android.server.pm.permission.BasePermission;
 import com.android.server.pm.permission.DefaultPermissionGrantPolicy;
 import com.android.server.pm.permission.DefaultPermissionGrantPolicy.DefaultPermissionGrantedCallback;
@@ -446,6 +447,9 @@
 
     private static final long BACKUP_TIMEOUT_MILLIS = TimeUnit.SECONDS.toMillis(60);
 
+    private static final boolean PRECOMPILED_LAYOUT_ENABLED =
+            SystemProperties.getBoolean("view.precompiled_layout_enabled", false);
+
     private static final int RADIO_UID = Process.PHONE_UID;
     private static final int LOG_UID = Process.LOG_UID;
     private static final int NFC_UID = Process.NFC_UID;
@@ -888,6 +892,8 @@
     // is used by other apps).
     private final DexManager mDexManager;
 
+    private final ViewCompiler mViewCompiler;
+
     private AtomicInteger mNextMoveId = new AtomicInteger();
     private final MoveCallbacks mMoveCallbacks;
 
@@ -1460,8 +1466,9 @@
                             Trace.asyncTraceEnd(TRACE_TAG_PACKAGE_MANAGER, args.traceMethod,
                                     args.traceCookie);
                         }
-                    } else {
-                        Slog.e(TAG, "Bogus post-install token " + msg.arg1);
+                    } else if (DEBUG_INSTALL) {
+                        // No post-install when we run restore from installExistingPackageForUser
+                        Slog.i(TAG, "Nothing to do for post-install token " + msg.arg1);
                     }
 
                     Trace.asyncTraceEnd(TRACE_TAG_PACKAGE_MANAGER, "postInstall", msg.arg1);
@@ -2261,6 +2268,8 @@
         mArtManagerService = new ArtManagerService(mContext, this, installer, mInstallLock);
         mMoveCallbacks = new MoveCallbacks(FgThread.get().getLooper());
 
+        mViewCompiler = new ViewCompiler(mInstallLock, mInstaller);
+
         mOnPermissionChangeListeners = new OnPermissionChangeListeners(
                 FgThread.get().getLooper());
 
@@ -7883,8 +7892,13 @@
                 if (apex != null) {
                     try {
                         final ApexInfo[] activePkgs = apex.getActivePackages();
-                        for (ApexInfo apexInfo : activePkgs) {
-                            list.add(new PackageInfo(apexInfo));
+                        for (ApexInfo ai : activePkgs) {
+                            try {
+                                 list.add(PackageParser.generatePackageInfoFromApex(
+                                         new File(ai.packagePath), true /* collect certs */));
+                            } catch (PackageParserException pe) {
+                                 throw new IllegalStateException("Unable to parse: " + ai, pe);
+                            }
                         }
                     } catch (RemoteException e) {
                         Log.e(TAG, "Unable to retrieve packages from apexservice: " + e.toString());
@@ -9103,6 +9117,10 @@
                 pkgCompilationReason = PackageManagerService.REASON_BACKGROUND_DEXOPT;
             }
 
+            if (PRECOMPILED_LAYOUT_ENABLED) {
+                mArtManagerService.compileLayouts(pkg);
+            }
+
             // checkProfiles is false to avoid merging profiles during boot which
             // might interfere with background compilation (b/28612421).
             // Unfortunately this will also means that "pm.dexopt.boot=speed-profile" will
@@ -9247,6 +9265,21 @@
         return performDexOpt(new DexoptOptions(packageName, compilerFilter, flags));
     }
 
+    /**
+    * Ask the package manager to compile layouts in the given package.
+    */
+    @Override
+    public boolean compileLayouts(String packageName) {
+        PackageParser.Package pkg;
+        synchronized (mPackages) {
+            pkg = mPackages.get(packageName);
+            if (pkg == null) {
+                return false;
+            }
+        }
+        return mViewCompiler.compileLayouts(pkg);
+    }
+
     /*package*/ boolean performDexOpt(DexoptOptions options) {
         if (getInstantAppPackageName(Binder.getCallingUid()) != null) {
             return false;
@@ -12737,6 +12770,11 @@
     @Override
     public int installExistingPackageAsUser(String packageName, int userId, int installFlags,
             int installReason) {
+        if (DEBUG_INSTALL) {
+            Log.v(TAG, "installExistingPackageAsUser package=" + packageName + " userId=" + userId
+                    + " installFlags=" + installFlags + " installReason=" + installReason);
+        }
+
         final int callingUid = Binder.getCallingUid();
         if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.INSTALL_PACKAGES)
                 != PackageManager.PERMISSION_GRANTED
@@ -12807,6 +12845,11 @@
                 synchronized (mPackages) {
                     updateSequenceNumberLP(pkgSetting, new int[]{ userId });
                 }
+                // start async restore with no post-install since we finish install here
+                PackageInstalledInfo res =
+                        createPackageInstalledInfo(PackageManager.INSTALL_SUCCEEDED);
+                res.pkg = pkgSetting.pkg;
+                restoreAndPostInstall(userId, res, null);
             }
         } finally {
             Binder.restoreCallingIdentity(callingId);
@@ -13746,8 +13789,8 @@
                 }
             }
             for (InstallRequest request : installRequests) {
-                resolvePackageInstalledInfo(request.args,
-                        request.installResult);
+                restoreAndPostInstall(request.args.user.getIdentifier(), request.installResult,
+                        new PostInstallData(request.args, request.installResult));
             }
         });
     }
@@ -13762,7 +13805,14 @@
         return res;
     }
 
-    private void resolvePackageInstalledInfo(InstallArgs args, PackageInstalledInfo res) {
+    /** @param data Post-install is performed only if this is non-null. */
+    private void restoreAndPostInstall(
+            int userId, PackageInstalledInfo res, @Nullable PostInstallData data) {
+        if (DEBUG_INSTALL) {
+            Log.v(TAG, "restoreAndPostInstall userId=" + userId + " package="
+                    + res.pkg.packageName);
+        }
+
         // A restore should be performed at this point if (a) the install
         // succeeded, (b) the operation is not an update, and (c) the new
         // package has not opted out of backup participation.
@@ -13778,9 +13828,12 @@
         int token;
         if (mNextInstallToken < 0) mNextInstallToken = 1;
         token = mNextInstallToken++;
+        if (data != null) {
+            mRunningInstalls.put(token, data);
+        } else if (DEBUG_INSTALL) {
+            Log.v(TAG, "No post-install required for " + token);
+        }
 
-        PostInstallData data = new PostInstallData(args, res);
-        mRunningInstalls.put(token, data);
         if (DEBUG_INSTALL) Log.v(TAG, "+ starting restore round-trip " + token);
 
         if (res.returnCode == PackageManager.INSTALL_SUCCEEDED && doRestore) {
@@ -13791,7 +13844,6 @@
             IBackupManager bm = IBackupManager.Stub.asInterface(
                     ServiceManager.getService(Context.BACKUP_SERVICE));
             if (bm != null) {
-                int userId = args.user.getIdentifier();
                 // For backwards compatibility as USER_ALL previously routed directly to USER_SYSTEM
                 // in the BackupManager. USER_ALL is used in compatibility tests.
                 if (userId == UserHandle.USER_ALL) {
@@ -16123,6 +16175,13 @@
                     && ((pkg.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) == 0);
 
             if (performDexopt) {
+                // Compile the layout resources.
+                if (PRECOMPILED_LAYOUT_ENABLED) {
+                    Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "compileLayouts");
+                    mViewCompiler.compileLayouts(pkg);
+                    Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
+                }
+
                 Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "dexopt");
                 // Do not run PackageDexOptimizer through the local performDexOpt
                 // method because `pkg` may not be in `mPackages` yet.
@@ -23717,6 +23776,21 @@
         public void setEnableRollbackCode(int token, int enableRollbackCode) {
             PackageManagerService.this.setEnableRollbackCode(token, enableRollbackCode);
         }
+
+        /**
+         * Ask the package manager to compile layouts in the given package.
+         */
+        @Override
+        public boolean compileLayouts(String packageName) {
+            PackageParser.Package pkg;
+            synchronized (mPackages) {
+                pkg = mPackages.get(packageName);
+                if (pkg == null) {
+                    return false;
+                }
+            }
+            return mArtManagerService.compileLayouts(pkg);
+        }
     }
 
     @GuardedBy("mPackages")
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index c9d298c..022c1aa 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -40,6 +40,7 @@
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageInstaller;
 import android.content.pm.PackageInstaller.SessionParams;
+import android.content.pm.PackageManagerInternal;
 import android.content.pm.PackageItemInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
@@ -1170,6 +1171,7 @@
         String checkProfilesRaw = null;
         boolean secondaryDex = false;
         String split = null;
+        boolean compileLayouts = false;
 
         String opt;
         while ((opt = getNextOption()) != null) {
@@ -1189,6 +1191,9 @@
                 case "-r":
                     compilationReason = getNextArgRequired();
                     break;
+                case "--compile-layouts":
+                    compileLayouts = true;
+                    break;
                 case "--check-prof":
                     checkProfilesRaw = getNextArgRequired();
                     break;
@@ -1220,14 +1225,16 @@
             }
         }
 
-        if (compilerFilter != null && compilationReason != null) {
-            pw.println("Cannot use compilation filter (\"-m\") and compilation reason (\"-r\") " +
-                    "at the same time");
-            return 1;
-        }
-        if (compilerFilter == null && compilationReason == null) {
-            pw.println("Cannot run without any of compilation filter (\"-m\") and compilation " +
-                    "reason (\"-r\") at the same time");
+        final boolean compilerFilterGiven = compilerFilter != null;
+        final boolean compilationReasonGiven = compilationReason != null;
+        // Make sure exactly one of -m, -r, or --compile-layouts is given.
+        if ((!compilerFilterGiven && !compilationReasonGiven && !compileLayouts)
+            || (!compilerFilterGiven && compilationReasonGiven && compileLayouts)
+            || (compilerFilterGiven && !compilationReasonGiven && compileLayouts)
+            || (compilerFilterGiven && compilationReasonGiven && !compileLayouts)
+            || (compilerFilterGiven && compilationReasonGiven && compileLayouts)) {
+            pw.println("Must specify exactly one of compilation filter (\"-m\"), compilation " +
+                    "reason (\"-r\"), or compile layouts (\"--compile-layouts\")");
             return 1;
         }
 
@@ -1241,15 +1248,16 @@
             return 1;
         }
 
-        String targetCompilerFilter;
-        if (compilerFilter != null) {
+        String targetCompilerFilter = null;
+        if (compilerFilterGiven) {
             if (!DexFile.isValidCompilerFilter(compilerFilter)) {
                 pw.println("Error: \"" + compilerFilter +
                         "\" is not a valid compilation filter.");
                 return 1;
             }
             targetCompilerFilter = compilerFilter;
-        } else {
+        }
+        if (compilationReasonGiven) {
             int reason = -1;
             for (int i = 0; i < PackageManagerServiceCompilerMapping.REASON_STRINGS.length; i++) {
                 if (PackageManagerServiceCompilerMapping.REASON_STRINGS[i].equals(
@@ -1291,12 +1299,19 @@
                 pw.flush();
             }
 
-            boolean result = secondaryDex
+            boolean result = true;
+            if (compileLayouts) {
+                PackageManagerInternal internal = LocalServices.getService(
+                        PackageManagerInternal.class);
+                result = internal.compileLayouts(packageName);
+            } else {
+                result = secondaryDex
                     ? mInterface.performDexOptSecondary(packageName,
                             targetCompilerFilter, forceCompilation)
                     : mInterface.performDexOptMode(packageName,
                             checkProfiles, targetCompilerFilter, forceCompilation,
                             true /* bootComplete */, split);
+            }
             if (!result) {
                 failedPackages.add(packageName);
             }
@@ -3004,6 +3019,7 @@
         pw.println("      --check-prof (true | false): look at profiles when doing dexopt?");
         pw.println("      --secondary-dex: compile app secondary dex files");
         pw.println("      --split SPLIT: compile only the given split name");
+        pw.println("      --compile-layouts: compile layout resources for faster inflation");
         pw.println("");
         pw.println("  force-dex-opt PACKAGE");
         pw.println("    Force immediate execution of dex opt for the given PACKAGE.");
diff --git a/services/core/java/com/android/server/pm/StagingManager.java b/services/core/java/com/android/server/pm/StagingManager.java
index bd14223..7bab0bb 100644
--- a/services/core/java/com/android/server/pm/StagingManager.java
+++ b/services/core/java/com/android/server/pm/StagingManager.java
@@ -19,6 +19,7 @@
 import android.annotation.NonNull;
 import android.apex.ApexInfo;
 import android.apex.ApexInfoList;
+import android.apex.ApexSessionInfo;
 import android.apex.IApexService;
 import android.content.pm.PackageInstaller;
 import android.content.pm.PackageInstaller.SessionInfo;
@@ -138,7 +139,7 @@
         return success;
     }
 
-    void preRebootVerification(@NonNull PackageInstallerSession session) {
+    private void preRebootVerification(@NonNull PackageInstallerSession session) {
         boolean success = true;
         if ((session.params.installFlags & PackageManager.INSTALL_APEX) != 0) {
 
@@ -170,6 +171,30 @@
         }
     }
 
+    private void resumeSession(@NonNull PackageInstallerSession session) {
+        // Check with apexservice whether the apex
+        // packages have been activated.
+        final IApexService apex = IApexService.Stub.asInterface(
+                ServiceManager.getService("apexservice"));
+        ApexSessionInfo apexSessionInfo;
+        try {
+            apexSessionInfo = apex.getStagedSessionInfo(session.sessionId);
+        } catch (RemoteException re) {
+            Slog.e(TAG, "Unable to contact apexservice", re);
+            // TODO should we retry here? Mark the session as failed?
+            return;
+        }
+        if (apexSessionInfo.isActivationFailed || apexSessionInfo.isUnknown) {
+            session.setStagedSessionFailed(SessionInfo.ACTIVATION_FAILED);
+        }
+        if (apexSessionInfo.isActivated) {
+            session.setStagedSessionApplied();
+            // TODO(b/118865310) if multi-package proceed with the installation of APKs.
+        }
+        // TODO(b/118865310) if (apexSessionInfo.isVerified) { /* mark this as staged in apexd */ }
+        // In every other case apexd will retry to apply the session at next boot.
+    }
+
     void commitSession(@NonNull PackageInstallerSession session) {
         updateStoredSession(session);
         mBgHandler.post(() -> preRebootVerification(session));
@@ -190,8 +215,19 @@
 
     void restoreSession(@NonNull PackageInstallerSession session) {
         updateStoredSession(session);
-        // TODO(b/118865310): This method is called when PackageInstaller is re-instantiated, e.g.
-        // at reboot. Staging manager should at this point recover state from apexd and decide what
-        // to do with the session.
+        // Check the state of the session and decide what to do next.
+        if (session.isStagedSessionFailed() || session.isStagedSessionApplied()) {
+            // Final states, nothing to do.
+            return;
+        }
+        if (!session.isStagedSessionReady()) {
+            // The framework got restarted before the pre-reboot verification could complete,
+            // restart the verification.
+            mBgHandler.post(() -> preRebootVerification(session));
+        } else {
+            // Session had already being marked ready. Start the checks to verify if there is any
+            // follow-up work.
+            mBgHandler.post(() -> resumeSession(session));
+        }
     }
 }
diff --git a/services/core/java/com/android/server/pm/dex/ArtManagerService.java b/services/core/java/com/android/server/pm/dex/ArtManagerService.java
index 1f05dc9..863bfd5 100644
--- a/services/core/java/com/android/server/pm/dex/ArtManagerService.java
+++ b/services/core/java/com/android/server/pm/dex/ArtManagerService.java
@@ -472,6 +472,33 @@
     }
 
     /**
+     * Compile layout resources in a given package.
+     */
+    public boolean compileLayouts(PackageParser.Package pkg) {
+        try {
+            final String packageName = pkg.packageName;
+            final String apkPath = pkg.baseCodePath;
+            final ApplicationInfo appInfo = pkg.applicationInfo;
+            final String outDexFile = appInfo.dataDir + "/code_cache/compiled_view.dex";
+            Log.i("PackageManager", "Compiling layouts in " + packageName + " (" + apkPath +
+                    ") to " + outDexFile);
+            long callingId = Binder.clearCallingIdentity();
+            try {
+                synchronized (mInstallLock) {
+                    return mInstaller.compileLayouts(apkPath, packageName, outDexFile,
+                            appInfo.uid);
+                }
+            } finally {
+                Binder.restoreCallingIdentity(callingId);
+            }
+        }
+        catch (Throwable e) {
+            Log.e("PackageManager", "Failed to compile layouts", e);
+            return false;
+        }
+    }
+
+    /**
      * Build the profiles names for all the package code paths (excluding resource only paths).
      * Return the map [code path -> profile name].
      */
diff --git a/services/core/java/com/android/server/pm/dex/ViewCompiler.java b/services/core/java/com/android/server/pm/dex/ViewCompiler.java
new file mode 100644
index 0000000..8d8e17e
--- /dev/null
+++ b/services/core/java/com/android/server/pm/dex/ViewCompiler.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 com.android.server.pm.dex;
+
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageParser;
+import android.os.Binder;
+import android.util.Log;
+import com.android.internal.annotations.GuardedBy;
+import com.android.server.pm.Installer;
+
+public class ViewCompiler {
+    private final Object mInstallLock;
+    @GuardedBy("mInstallLock")
+    private final Installer mInstaller;
+
+    public ViewCompiler(Object installLock, Installer installer) {
+        mInstallLock = installLock;
+        mInstaller = installer;
+    }
+
+    public boolean compileLayouts(PackageParser.Package pkg) {
+        try {
+            final String packageName = pkg.packageName;
+            final String apkPath = pkg.baseCodePath;
+            final ApplicationInfo appInfo = pkg.applicationInfo;
+            final String outDexFile = appInfo.dataDir + "/code_cache/compiled_view.dex";
+            Log.i("PackageManager", "Compiling layouts in " + packageName + " (" + apkPath +
+                ") to " + outDexFile);
+            long callingId = Binder.clearCallingIdentity();
+            try {
+                synchronized (mInstallLock) {
+                    return mInstaller.compileLayouts(apkPath, packageName, outDexFile,
+                        appInfo.uid);
+                }
+            } finally {
+                Binder.restoreCallingIdentity(callingId);
+            }
+        } catch (Throwable e) {
+            Log.e("PackageManager", "Failed to compile layouts", e);
+            return false;
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
index ceaf69d..d5af313 100644
--- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
@@ -535,7 +535,7 @@
         }
 
         // Cell Broadcast Receiver
-        grantPermissionsToSystemPackage(
+        grantSystemFixedPermissionsToSystemPackage(
                 getDefaultSystemHandlerActivityPackage(Intents.SMS_CB_RECEIVED_ACTION, userId),
                 userId, SMS_PERMISSIONS);
 
diff --git a/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
index f7cc443..2700f9d 100644
--- a/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
+++ b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
@@ -24,7 +24,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.net.TrafficStats;
 import android.os.Binder;
 import android.os.Environment;
 import android.os.FileObserver;
@@ -42,13 +41,13 @@
 import android.util.ArrayMap;
 import android.util.DataUnit;
 import android.util.Slog;
+import android.util.StatsLog;
 
 import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
 import com.android.internal.notification.SystemNotificationChannels;
 import com.android.internal.util.DumpUtils;
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.server.EventLogTags;
-import com.android.server.IoThread;
 import com.android.server.SystemService;
 import com.android.server.pm.InstructionSets;
 import com.android.server.pm.PackageManagerService;
@@ -499,9 +498,15 @@
             notification.flags |= Notification.FLAG_NO_CLEAR;
             mNotifManager.notifyAsUser(uuid.toString(), SystemMessage.NOTE_LOW_STORAGE,
                     notification, UserHandle.ALL);
+            StatsLog.write(StatsLog.LOW_STORAGE_STATE_CHANGED,
+                    Objects.toString(vol.getDescription()),
+                    StatsLog.LOW_STORAGE_STATE_CHANGED__STATE__ON);
         } else if (State.isLeaving(State.LEVEL_LOW, oldLevel, newLevel)) {
             mNotifManager.cancelAsUser(uuid.toString(), SystemMessage.NOTE_LOW_STORAGE,
                     UserHandle.ALL);
+            StatsLog.write(StatsLog.LOW_STORAGE_STATE_CHANGED,
+                    Objects.toString(vol.getDescription()),
+                    StatsLog.LOW_STORAGE_STATE_CHANGED__STATE__OFF);
         }
     }
 
diff --git a/services/core/java/com/android/server/textservices/TextServicesManagerService.java b/services/core/java/com/android/server/textservices/TextServicesManagerService.java
index 7236d79..d4aa59d 100644
--- a/services/core/java/com/android/server/textservices/TextServicesManagerService.java
+++ b/services/core/java/com/android/server/textservices/TextServicesManagerService.java
@@ -16,6 +16,8 @@
 
 package com.android.server.textservices;
 
+import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL;
+
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
@@ -513,8 +515,8 @@
     // TODO: Save SpellCheckerService by supported languages. Currently only one spell
     // checker is saved.
     @Override
-    public SpellCheckerInfo getCurrentSpellChecker(String locale) {
-        int userId = UserHandle.getCallingUserId();
+    public SpellCheckerInfo getCurrentSpellChecker(@UserIdInt int userId, String locale) {
+        verifyUser(userId);
         synchronized (mLock) {
             final TextServicesData tsd = getDataFromCallingUserIdLocked(userId);
             if (tsd == null) return null;
@@ -527,11 +529,12 @@
     // TODO: Save SpellCheckerSubtype by supported languages by looking at "locale".
     @Override
     public SpellCheckerSubtype getCurrentSpellCheckerSubtype(
-            boolean allowImplicitlySelectedSubtype) {
+            @UserIdInt int userId, boolean allowImplicitlySelectedSubtype) {
+        verifyUser(userId);
+
         final int subtypeHashCode;
         final SpellCheckerInfo sci;
         final Locale systemLocale;
-        final int userId = UserHandle.getCallingUserId();
 
         synchronized (mLock) {
             final TextServicesData tsd = getDataFromCallingUserIdLocked(userId);
@@ -591,17 +594,17 @@
     }
 
     @Override
-    public void getSpellCheckerService(String sciId, String locale,
+    public void getSpellCheckerService(@UserIdInt int userId, String sciId, String locale,
             ITextServicesSessionListener tsListener, ISpellCheckerSessionListener scListener,
             Bundle bundle) {
+        verifyUser(userId);
         if (TextUtils.isEmpty(sciId) || tsListener == null || scListener == null) {
             Slog.e(TAG, "getSpellCheckerService: Invalid input.");
             return;
         }
-        int callingUserId = UserHandle.getCallingUserId();
 
         synchronized (mLock) {
-            final TextServicesData tsd = getDataFromCallingUserIdLocked(callingUserId);
+            final TextServicesData tsd = getDataFromCallingUserIdLocked(userId);
             if (tsd == null) return;
 
             HashMap<String, SpellCheckerInfo> spellCheckerMap = tsd.mSpellCheckerMap;
@@ -634,8 +637,8 @@
     }
 
     @Override
-    public boolean isSpellCheckerEnabled() {
-        int userId = UserHandle.getCallingUserId();
+    public boolean isSpellCheckerEnabled(@UserIdInt int userId) {
+        verifyUser(userId);
 
         synchronized (mLock) {
             final TextServicesData tsd = getDataFromCallingUserIdLocked(userId);
@@ -671,11 +674,11 @@
     }
 
     @Override
-    public SpellCheckerInfo[] getEnabledSpellCheckers() {
-        int callingUserId = UserHandle.getCallingUserId();
+    public SpellCheckerInfo[] getEnabledSpellCheckers(@UserIdInt int userId) {
+        verifyUser(userId);
 
         synchronized (mLock) {
-            final TextServicesData tsd = getDataFromCallingUserIdLocked(callingUserId);
+            final TextServicesData tsd = getDataFromCallingUserIdLocked(userId);
             if (tsd == null) return null;
 
             ArrayList<SpellCheckerInfo> spellCheckerList = tsd.mSpellCheckerList;
@@ -691,11 +694,12 @@
     }
 
     @Override
-    public void finishSpellCheckerService(ISpellCheckerSessionListener listener) {
+    public void finishSpellCheckerService(@UserIdInt int userId,
+            ISpellCheckerSessionListener listener) {
         if (DBG) {
             Slog.d(TAG, "FinishSpellCheckerService");
         }
-        int userId = UserHandle.getCallingUserId();
+        verifyUser(userId);
 
         synchronized (mLock) {
             final TextServicesData tsd = getDataFromCallingUserIdLocked(userId);
@@ -716,6 +720,15 @@
         }
     }
 
+    private void verifyUser(@UserIdInt int userId) {
+        final int callingUserId = UserHandle.getCallingUserId();
+        if (userId != callingUserId) {
+            mContext.enforceCallingPermission(INTERACT_ACROSS_USERS_FULL,
+                    "Cross-user interaction requires INTERACT_ACROSS_USERS_FULL. userId=" + userId
+                            + " callingUserId=" + callingUserId);
+        }
+    }
+
     private void setCurrentSpellCheckerLocked(@Nullable SpellCheckerInfo sci, TextServicesData tsd) {
         final String sciId = (sci != null) ? sci.getId() : "";
         if (DBG) {
diff --git a/services/core/java/com/android/server/wm/ActivityDisplay.java b/services/core/java/com/android/server/wm/ActivityDisplay.java
index 65d66f4..e817dd4 100644
--- a/services/core/java/com/android/server/wm/ActivityDisplay.java
+++ b/services/core/java/com/android/server/wm/ActivityDisplay.java
@@ -558,22 +558,26 @@
     }
 
     /**
-     * Pause all activities in either all of the stacks or just the back stacks.
+     * Pause all activities in either all of the stacks or just the back stacks. This is done before
+     * resuming a new activity and to make sure that previously active activities are
+     * paused in stacks that are no longer visible or in pinned windowing mode. This does not
+     * pause activities in visible stacks, so if an activity is launched within the same stack/task,
+     * then we should explicitly pause that stack's top activity.
      * @param userLeaving Passed to pauseActivity() to indicate whether to call onUserLeaving().
      * @param resuming The resuming activity.
      * @param dontWait The resuming activity isn't going to wait for all activities to be paused
      *                 before resuming.
-     * @return true if any activity was paused as a result of this call.
+     * @return {@code true} if any activity was paused as a result of this call.
      */
     boolean pauseBackStacks(boolean userLeaving, ActivityRecord resuming, boolean dontWait) {
         boolean someActivityPaused = false;
         for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
             final ActivityStack stack = mStacks.get(stackNdx);
-            // TODO(b/111541062): Check if resumed activity on this display instead
-            if (!mRootActivityContainer.isTopDisplayFocusedStack(stack)
-                    && stack.getResumedActivity() != null) {
+            final ActivityRecord resumedActivity = stack.getResumedActivity();
+            if (resumedActivity != null
+                    && (!stack.shouldBeVisible(resuming) || !stack.isFocusable())) {
                 if (DEBUG_STATES) Slog.d(TAG_STATES, "pauseBackStacks: stack=" + stack +
-                        " mResumedActivity=" + stack.getResumedActivity());
+                        " mResumedActivity=" + resumedActivity);
                 someActivityPaused |= stack.startPausingLocked(userLeaving, false, resuming,
                         dontWait);
             }
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index b8634d8..6213fa0 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -1946,30 +1946,84 @@
         try {
             mAtmService.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
                     WindowVisibilityItem.obtain(true /* showWindow */));
-            if (shouldPauseWhenBecomingVisible()) {
-                // An activity must be in the {@link PAUSING} state for the system to validate
-                // the move to {@link PAUSED}.
-                setState(PAUSING, "makeVisibleIfNeeded");
-                mAtmService.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
-                        PauseActivityItem.obtain(finishing, false /* userLeaving */,
-                                configChangeFlags, false /* dontReport */));
-            }
+            makeActiveIfNeeded(null /* activeActivity*/);
         } catch (Exception e) {
             Slog.w(TAG, "Exception thrown sending visibility update: " + intent.getComponent(), e);
         }
     }
 
-    /** Check if activity should be moved to PAUSED state when it becomes visible. */
-    private boolean shouldPauseWhenBecomingVisible() {
-        // If the activity is stopped or stopping, cycle to the paused state. We avoid doing
+    /**
+     * Make activity resumed or paused if needed.
+     * @param activeActivity an activity that is resumed or just completed pause action.
+     *                       We won't change the state of this activity.
+     */
+    boolean makeActiveIfNeeded(ActivityRecord activeActivity) {
+        if (shouldResumeActivity(activeActivity)) {
+            if (DEBUG_VISIBILITY) {
+                Slog.v("TAG_VISIBILITY", "Resume visible activity, " + this);
+            }
+            return getActivityStack().resumeTopActivityUncheckedLocked(activeActivity /* prev */,
+                    null /* options */);
+        } else if (shouldPauseActivity(activeActivity)) {
+            if (DEBUG_VISIBILITY) {
+                Slog.v("TAG_VISIBILITY", "Pause visible activity, " + this);
+            }
+            // An activity must be in the {@link PAUSING} state for the system to validate
+            // the move to {@link PAUSED}.
+            setState(PAUSING, "makeVisibleIfNeeded");
+            try {
+                mAtmService.getLifecycleManager().scheduleTransaction(app.getThread(), appToken,
+                        PauseActivityItem.obtain(finishing, false /* userLeaving */,
+                                configChangeFlags, false /* dontReport */));
+            } catch (Exception e) {
+                Slog.w(TAG, "Exception thrown sending pause: " + intent.getComponent(), e);
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Check if activity should be moved to PAUSED state. The activity:
+     * - should be eligible to be made active (see {@link #shouldMakeActive(ActivityRecord)})
+     * - should be non-focusable
+     * - should not be currently pausing or paused
+     * @param activeActivity the activity that is active or just completed pause action. We won't
+     *                       resume if this activity is active.
+     */
+    private boolean shouldPauseActivity(ActivityRecord activeActivity) {
+        return shouldMakeActive(activeActivity) && !isFocusable() && !isState(PAUSING, PAUSED);
+    }
+
+    /**
+     * Check if activity should be moved to RESUMED state. The activity:
+     * - should be eligible to be made active (see {@link #shouldMakeActive(ActivityRecord)})
+     * - should be focusable
+     * @param activeActivity the activity that is active or just completed pause action. We won't
+     *                       resume if this activity is active.
+     */
+    private boolean shouldResumeActivity(ActivityRecord activeActivity) {
+        return shouldMakeActive(activeActivity) && isFocusable() && !isState(RESUMED);
+    }
+
+    /**
+     * Check if activity is eligible to be made active (resumed of paused). The activity:
+     * - should be paused, stopped or stopping
+     * - should not be the currently active one
+     * - should be either the topmost in task, or right below the top activity that is finishing
+     * If all of these conditions are not met at the same time, the activity cannot be made active.
+     */
+    private boolean shouldMakeActive(ActivityRecord activeActivity) {
+        // If the activity is stopped, stopping, cycle to an active state. We avoid doing
         // this when there is an activity waiting to become translucent as the extra binder
         // calls will lead to noticeable jank. A later call to
-        // ActivityStack#ensureActivitiesVisibleLocked will bring the activity to the proper
-        // paused state. We also avoid doing this for the activity the stack supervisor
-        // considers the resumed activity, as normal means will bring the activity from STOPPED
-        // to RESUMED. Adding PAUSING in this scenario will lead to double lifecycles.
-        if (!isState(STOPPED, STOPPING) || getActivityStack().mTranslucentActivityWaiting != null
-                || isResumedActivityOnDisplay()) {
+        // ActivityStack#ensureActivitiesVisibleLocked will bring the activity to a proper
+        // active state.
+        if (!isState(RESUMED, PAUSED, STOPPED, STOPPING)
+                || getActivityStack().mTranslucentActivityWaiting != null) {
+            return false;
+        }
+
+        if (this == activeActivity) {
             return false;
         }
 
@@ -1979,14 +2033,14 @@
             throw new IllegalStateException("Activity not found in its task");
         }
         if (positionInTask == task.mActivities.size() - 1) {
-            // It's the topmost activity in the task - should become paused now
+            // It's the topmost activity in the task - should become resumed now
             return true;
         }
         // Check if activity above is finishing now and this one becomes the topmost in task.
         final ActivityRecord activityAbove = task.mActivities.get(positionInTask + 1);
         if (activityAbove.finishing && results == null) {
-            // We will only allow pausing if activity above wasn't launched for result. Otherwise it
-            // will cause this activity to resume before getting result.
+            // We will only allow making active if activity above wasn't launched for result.
+            // Otherwise it will cause this activity to resume before getting result.
             return true;
         }
         return false;
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java
index 891c3da..3aef8e1f 100644
--- a/services/core/java/com/android/server/wm/ActivityStack.java
+++ b/services/core/java/com/android/server/wm/ActivityStack.java
@@ -357,6 +357,11 @@
      */
     boolean mForceHidden = false;
 
+    /**
+     * Used to keep resumeTopActivityUncheckedLocked() from being entered recursively
+     */
+    boolean mInResumeTopActivity = false;
+
     private boolean mUpdateBoundsDeferred;
     private boolean mUpdateBoundsDeferredCalled;
     private boolean mUpdateDisplayedBoundsDeferredCalled;
@@ -1732,6 +1737,7 @@
             "Activity paused: token=" + token + ", timeout=" + timeout);
 
         final ActivityRecord r = isInStackLocked(token);
+
         if (r != null) {
             mHandler.removeMessages(PAUSE_TIMEOUT_MSG, r);
             if (mPausingActivity == r) {
@@ -2088,8 +2094,7 @@
             boolean aboveTop = top != null;
             final boolean stackShouldBeVisible = shouldBeVisible(starting);
             boolean behindFullscreenActivity = !stackShouldBeVisible;
-            boolean resumeNextActivity = mRootActivityContainer.isTopDisplayFocusedStack(this)
-                    && (isInStackLocked(starting) == null);
+            boolean resumeNextActivity = isFocusable() && isInStackLocked(starting) == null;
             final boolean isTopNotPinnedStack =
                     isAttached() && getDisplay().isTopNotPinnedStack(this);
             for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
@@ -2150,6 +2155,10 @@
                             if (r.handleAlreadyVisible()) {
                                 resumeNextActivity = false;
                             }
+
+                            if (notifyClients) {
+                                r.makeActiveIfNeeded(starting);
+                            }
                         } else {
                             r.makeVisibleIfNeeded(starting, notifyClients);
                         }
@@ -2327,7 +2336,7 @@
                 r.setVisible(true);
             }
             if (r != starting) {
-                mStackSupervisor.startSpecificActivityLocked(r, andResume, false);
+                mStackSupervisor.startSpecificActivityLocked(r, andResume, true /* checkConfig */);
                 return true;
             }
         }
@@ -2505,7 +2514,7 @@
      */
     @GuardedBy("mService")
     boolean resumeTopActivityUncheckedLocked(ActivityRecord prev, ActivityOptions options) {
-        if (mStackSupervisor.inResumeTopActivity) {
+        if (mInResumeTopActivity) {
             // Don't even start recursing.
             return false;
         }
@@ -2513,7 +2522,7 @@
         boolean result = false;
         try {
             // Protect against recursion.
-            mStackSupervisor.inResumeTopActivity = true;
+            mInResumeTopActivity = true;
             result = resumeTopActivityInnerLocked(prev, options);
 
             // When resuming the top activity, it may be necessary to pause the top activity (for
@@ -2528,7 +2537,7 @@
                 checkReadyForSleep();
             }
         } finally {
-            mStackSupervisor.inResumeTopActivity = false;
+            mInResumeTopActivity = false;
         }
 
         return result;
@@ -2561,7 +2570,7 @@
         // Find the next top-most activity to resume in this stack that is not finishing and is
         // focusable. If it is not focusable, we will fall into the case below to resume the
         // top activity in the next focusable task.
-        final ActivityRecord next = topRunningActivityLocked(true /* focusableOnly */);
+        ActivityRecord next = topRunningActivityLocked(true /* focusableOnly */);
 
         final boolean hasRunningActivity = next != null;
 
@@ -2649,6 +2658,12 @@
         if (!mRootActivityContainer.allPausedActivitiesComplete()) {
             if (DEBUG_SWITCH || DEBUG_PAUSE || DEBUG_STATES) Slog.v(TAG_PAUSE,
                     "resumeTopActivityLocked: Skip resume: some activity pausing.");
+
+            // Adding previous activity to the waiting visible list, or it would be stopped
+            // before top activity being visible.
+            if (prev != null && !next.nowVisible) {
+                mStackSupervisor.mActivitiesWaitingForVisibleActivity.add(prev);
+            }
             return false;
         }
 
@@ -2858,7 +2873,9 @@
             // the screen based on the new activity order.
             boolean notUpdated = true;
 
-            if (isFocusedStackOnDisplay()) {
+            // Activity should also be visible if set mLaunchTaskBehind to true (see
+            // ActivityRecord#shouldBeVisibleIgnoringKeyguard()).
+            if (shouldBeVisible(next)) {
                 // We have special rotation behavior when here is some active activity that
                 // requests specific orientation or Keyguard is locked. Make sure all activity
                 // visibilities are set correctly as well as the transition is updated if needed
@@ -4087,6 +4104,12 @@
         mStackSupervisor.mFinishingActivities.add(r);
         r.resumeKeyDispatchingLocked();
         mRootActivityContainer.resumeFocusedStacksTopActivities();
+        // If activity was not paused at this point - explicitly pause it to start finishing
+        // process. Finishing will be completed once it reports pause back.
+        if (r.isState(RESUMED) && mPausingActivity != null) {
+            startPausingLocked(false /* userLeaving */, false /* uiSleeping */, next /* resuming */,
+                    false /* dontWait */);
+        }
         return r;
     }
 
diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
index 3a288ca..a83ef34 100644
--- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
@@ -327,9 +327,6 @@
      */
     PowerManager.WakeLock mGoingToSleep;
 
-    /** Used to keep resumeTopActivityUncheckedLocked() from being entered recursively */
-    boolean inResumeTopActivity;
-
     /**
      * Temporary rect used during docked stack resize calculation so we don't need to create a new
      * object each time.
diff --git a/services/core/java/com/android/server/wm/ActivityStartController.java b/services/core/java/com/android/server/wm/ActivityStartController.java
index 0859683..43c1206 100644
--- a/services/core/java/com/android/server/wm/ActivityStartController.java
+++ b/services/core/java/com/android/server/wm/ActivityStartController.java
@@ -179,7 +179,10 @@
                 .setActivityOptions(options.toBundle())
                 .execute();
         mLastHomeActivityStartRecord = tmpOutRecord[0];
-        if (mSupervisor.inResumeTopActivity) {
+        final ActivityDisplay display =
+                mService.mRootActivityContainer.getActivityDisplay(displayId);
+        final ActivityStack homeStack = display != null ? display.getHomeStack() : null;
+        if (homeStack != null && homeStack.mInResumeTopActivity) {
             // If we are in resume section already, home activity will be initialized, but not
             // resumed (to avoid recursive resume) and will stay that way until something pokes it
             // again. We need to schedule another resume.
@@ -297,6 +300,29 @@
             String[] resolvedTypes, IBinder resultTo, SafeActivityOptions options, int userId,
             boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent,
             boolean allowBackgroundActivityStart) {
+        return startActivitiesInPackage(uid, 0 /* realCallingPid */, -1 /* realCallingUid */,
+            callingPackage, intents, resolvedTypes, resultTo, options, userId, validateIncomingUser,
+            originatingPendingIntent, allowBackgroundActivityStart);
+    }
+
+    /**
+     * Start intents as a package.
+     *
+     * @param uid Make a call as if this UID did.
+     * @param realCallingPid PID of the real caller.
+     * @param realCallingUid UID of the real caller.
+     * @param callingPackage Make a call as if this package did.
+     * @param intents Intents to start.
+     * @param userId Start the intents on this user.
+     * @param validateIncomingUser Set true to skip checking {@code userId} with the calling UID.
+     * @param originatingPendingIntent PendingIntentRecord that originated this activity start or
+     *        null if not originated by PendingIntent
+     */
+    final int startActivitiesInPackage(int uid, int realCallingPid, int realCallingUid,
+            String callingPackage, Intent[] intents, String[] resolvedTypes, IBinder resultTo,
+            SafeActivityOptions options, int userId, boolean validateIncomingUser,
+            PendingIntentRecord originatingPendingIntent,
+            boolean allowBackgroundActivityStart) {
 
         final String reason = "startActivityInPackage";
 
@@ -304,12 +330,14 @@
                 Binder.getCallingUid(), reason);
 
         // TODO: Switch to user app stacks here.
-        return startActivities(null, uid, callingPackage, intents, resolvedTypes, resultTo, options,
-                userId, reason, originatingPendingIntent, allowBackgroundActivityStart);
+        return startActivities(null, uid, realCallingPid, realCallingUid, callingPackage, intents,
+                resolvedTypes, resultTo, options, userId, reason, originatingPendingIntent,
+                allowBackgroundActivityStart);
     }
 
-    int startActivities(IApplicationThread caller, int callingUid, String callingPackage,
-            Intent[] intents, String[] resolvedTypes, IBinder resultTo, SafeActivityOptions options,
+    int startActivities(IApplicationThread caller, int callingUid, int incomingRealCallingPid,
+            int incomingRealCallingUid, String callingPackage, Intent[] intents,
+            String[] resolvedTypes, IBinder resultTo, SafeActivityOptions options,
             int userId, String reason, PendingIntentRecord originatingPendingIntent,
             boolean allowBackgroundActivityStart) {
         if (intents == null) {
@@ -322,8 +350,12 @@
             throw new IllegalArgumentException("intents are length different than resolvedTypes");
         }
 
-        final int realCallingPid = Binder.getCallingPid();
-        final int realCallingUid = Binder.getCallingUid();
+        final int realCallingPid = incomingRealCallingPid != 0
+                ? incomingRealCallingPid
+                : Binder.getCallingPid();
+        final int realCallingUid = incomingRealCallingUid != -1
+                ? incomingRealCallingUid
+                : Binder.getCallingUid();
 
         int callingPid;
         if (callingUid >= 0) {
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java
index 916baa0..4e2dffc 100644
--- a/services/core/java/com/android/server/wm/ActivityStarter.java
+++ b/services/core/java/com/android/server/wm/ActivityStarter.java
@@ -294,6 +294,8 @@
     private static class Request {
         private static final int DEFAULT_CALLING_UID = -1;
         private static final int DEFAULT_CALLING_PID = 0;
+        static final int DEFAULT_REAL_CALLING_UID = -1;
+        static final int DEFAULT_REAL_CALLING_PID = 0;
 
         IApplicationThread caller;
         Intent intent;
@@ -306,11 +308,11 @@
         IBinder resultTo;
         String resultWho;
         int requestCode;
-        int callingPid = DEFAULT_CALLING_UID;
-        int callingUid = DEFAULT_CALLING_PID;
+        int callingPid = DEFAULT_CALLING_PID;
+        int callingUid = DEFAULT_CALLING_UID;
         String callingPackage;
-        int realCallingPid;
-        int realCallingUid;
+        int realCallingPid = DEFAULT_REAL_CALLING_PID;
+        int realCallingUid = DEFAULT_REAL_CALLING_UID;
         int startFlags;
         SafeActivityOptions activityOptions;
         boolean ignoreTargetSecurity;
@@ -365,8 +367,8 @@
             callingPid = DEFAULT_CALLING_PID;
             callingUid = DEFAULT_CALLING_UID;
             callingPackage = null;
-            realCallingPid = 0;
-            realCallingUid = 0;
+            realCallingPid = DEFAULT_REAL_CALLING_PID;
+            realCallingUid = DEFAULT_REAL_CALLING_UID;
             startFlags = 0;
             activityOptions = null;
             ignoreTargetSecurity = false;
@@ -502,7 +504,8 @@
             // for transactional diffs and preprocessing.
             if (mRequest.mayWait) {
                 return startActivityMayWait(mRequest.caller, mRequest.callingUid,
-                        mRequest.callingPackage, mRequest.intent, mRequest.resolvedType,
+                        mRequest.callingPackage, mRequest.realCallingPid, mRequest.realCallingUid,
+                        mRequest.intent, mRequest.resolvedType,
                         mRequest.voiceSession, mRequest.voiceInteractor, mRequest.resultTo,
                         mRequest.resultWho, mRequest.requestCode, mRequest.startFlags,
                         mRequest.profilerInfo, mRequest.waitResult, mRequest.globalConfig,
@@ -1092,10 +1095,10 @@
     }
 
     private int startActivityMayWait(IApplicationThread caller, int callingUid,
-            String callingPackage, Intent intent, String resolvedType,
-            IVoiceInteractionSession voiceSession, IVoiceInteractor voiceInteractor,
-            IBinder resultTo, String resultWho, int requestCode, int startFlags,
-            ProfilerInfo profilerInfo, WaitResult outResult,
+            String callingPackage, int requestRealCallingPid, int requestRealCallingUid,
+            Intent intent, String resolvedType, IVoiceInteractionSession voiceSession,
+            IVoiceInteractor voiceInteractor, IBinder resultTo, String resultWho, int requestCode,
+            int startFlags, ProfilerInfo profilerInfo, WaitResult outResult,
             Configuration globalConfig, SafeActivityOptions options, boolean ignoreTargetSecurity,
             int userId, TaskRecord inTask, String reason,
             boolean allowPendingRemoteAnimationRegistryLookup,
@@ -1107,8 +1110,12 @@
         mSupervisor.getActivityMetricsLogger().notifyActivityLaunching(intent);
         boolean componentSpecified = intent.getComponent() != null;
 
-        final int realCallingPid = Binder.getCallingPid();
-        final int realCallingUid = Binder.getCallingUid();
+        final int realCallingPid = requestRealCallingPid != Request.DEFAULT_REAL_CALLING_PID
+                ? requestRealCallingPid
+                : Binder.getCallingPid();
+        final int realCallingUid = requestRealCallingUid != Request.DEFAULT_REAL_CALLING_UID
+                ? requestRealCallingUid
+                : Binder.getCallingUid();
 
         int callingPid;
         if (callingUid >= 0) {
@@ -1622,7 +1629,7 @@
                 // Also, we don't want to resume activities in a task that currently has an overlay
                 // as the starting activity just needs to be in the visible paused state until the
                 // over is removed.
-                mTargetStack.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
+                mTargetStack.ensureActivitiesVisibleLocked(mStartActivity, 0, !PRESERVE_WINDOWS);
                 // Go ahead and tell window manager to execute app transition for this activity
                 // since the app transition will not be triggered through the resume channel.
                 mTargetStack.getDisplay().mDisplayContent.executeAppTransition();
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
index d8644df..67b00b2 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
@@ -192,6 +192,8 @@
      * Start intents as a package.
      *
      * @param uid Make a call as if this UID did.
+     * @param realCallingPid PID of the real caller.
+     * @param realCallingUid UID of the real caller.
      * @param callingPackage Make a call as if this package did.
      * @param intents Intents to start.
      * @param userId Start the intents on this user.
@@ -201,9 +203,10 @@
      * @param allowBackgroundActivityStart Whether the background activity start should be allowed
      *        from originatingPendingIntent
      */
-    public abstract int startActivitiesInPackage(int uid, String callingPackage, Intent[] intents,
-            String[] resolvedTypes, IBinder resultTo, SafeActivityOptions options, int userId,
-            boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent,
+    public abstract int startActivitiesInPackage(int uid, int realCallingPid, int realCallingUid,
+            String callingPackage, Intent[] intents, String[] resolvedTypes, IBinder resultTo,
+            SafeActivityOptions options, int userId, boolean validateIncomingUser,
+            PendingIntentRecord originatingPendingIntent,
             boolean allowBackgroundActivityStart);
 
     public abstract int startActivityInPackage(int uid, int realCallingPid, int realCallingUid,
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 6a495d4..61c4863 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -957,9 +957,10 @@
         enforceNotIsolatedCaller(reason);
         userId = handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(), userId, reason);
         // TODO: Switch to user app stacks here.
-        return getActivityStartController().startActivities(caller, -1, callingPackage, intents,
-                resolvedTypes, resultTo, SafeActivityOptions.fromBundle(bOptions), userId, reason,
-                null /* originatingPendingIntent */, false /* allowBackgroundActivityStart */);
+        return getActivityStartController().startActivities(caller, -1, 0, -1, callingPackage,
+                intents, resolvedTypes, resultTo, SafeActivityOptions.fromBundle(bOptions), userId,
+                reason, null /* originatingPendingIntent */,
+                false /* allowBackgroundActivityStart */);
     }
 
     @Override
@@ -5827,14 +5828,16 @@
         }
 
         @Override
-        public int startActivitiesInPackage(int uid, String callingPackage, Intent[] intents,
-                String[] resolvedTypes, IBinder resultTo, SafeActivityOptions options, int userId,
-                boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent,
+        public int startActivitiesInPackage(int uid, int realCallingPid, int realCallingUid,
+                String callingPackage, Intent[] intents, String[] resolvedTypes, IBinder resultTo,
+                SafeActivityOptions options, int userId, boolean validateIncomingUser,
+                PendingIntentRecord originatingPendingIntent,
                 boolean allowBackgroundActivityStart) {
             synchronized (mGlobalLock) {
-                return getActivityStartController().startActivitiesInPackage(uid, callingPackage,
-                        intents, resolvedTypes, resultTo, options, userId, validateIncomingUser,
-                        originatingPendingIntent, allowBackgroundActivityStart);
+                return getActivityStartController().startActivitiesInPackage(uid, realCallingPid,
+                        realCallingUid, callingPackage, intents, resolvedTypes, resultTo, options,
+                        userId, validateIncomingUser, originatingPendingIntent,
+                        allowBackgroundActivityStart);
             }
         }
 
diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java
index 089640b..5f393ef 100644
--- a/services/core/java/com/android/server/wm/AppTransition.java
+++ b/services/core/java/com/android/server/wm/AppTransition.java
@@ -65,6 +65,8 @@
 import static com.android.internal.R.styleable.WindowAnimation_wallpaperIntraOpenExitAnimation;
 import static com.android.internal.R.styleable.WindowAnimation_wallpaperOpenEnterAnimation;
 import static com.android.internal.R.styleable.WindowAnimation_wallpaperOpenExitAnimation;
+import static com.android.server.wm.AppTransitionProto.APP_TRANSITION_STATE;
+import static com.android.server.wm.AppTransitionProto.LAST_USED_APP_TRANSITION;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_APP_TRANSITIONS;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
@@ -73,8 +75,6 @@
 import static com.android.server.wm.WindowStateAnimator.STACK_CLIP_AFTER_ANIM;
 import static com.android.server.wm.WindowStateAnimator.STACK_CLIP_BEFORE_ANIM;
 import static com.android.server.wm.WindowStateAnimator.STACK_CLIP_NONE;
-import static com.android.server.wm.AppTransitionProto.APP_TRANSITION_STATE;
-import static com.android.server.wm.AppTransitionProto.LAST_USED_APP_TRANSITION;
 
 import android.annotation.DrawableRes;
 import android.annotation.NonNull;
@@ -84,6 +84,7 @@
 import android.content.Context;
 import android.content.res.Configuration;
 import android.content.res.ResourceId;
+import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.Color;
@@ -547,7 +548,7 @@
     }
 
     Animation loadAnimationAttr(LayoutParams lp, int animAttr, int transit) {
-        int resId = ResourceId.ID_NULL;
+        int resId = Resources.ID_NULL;
         Context context = mContext;
         if (animAttr >= 0) {
             AttributeCache.Entry ent = getCachedAnimations(lp);
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index 801c1e7..780eda49 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -82,6 +82,7 @@
 import static com.android.server.wm.WindowStateAnimator.STACK_CLIP_AFTER_ANIM;
 
 import android.annotation.CallSuper;
+import android.annotation.Size;
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.content.ComponentName;
@@ -113,11 +114,14 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.ToBooleanFunction;
 import com.android.server.AttributeCache;
+import com.android.server.LocalServices;
+import com.android.server.display.ColorDisplayService;
 import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.policy.WindowManagerPolicy.StartingSurface;
 import com.android.server.wm.WindowManagerService.H;
 
 import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.function.Consumer;
@@ -289,6 +293,20 @@
     private static final int STARTING_WINDOW_TYPE_SNAPSHOT = 1;
     private static final int STARTING_WINDOW_TYPE_SPLASH_SCREEN = 2;
 
+    private AppSaturationInfo mLastAppSaturationInfo;
+
+    private final ColorDisplayService.ColorTransformController mColorTransformController =
+            (matrix, translation) -> mWmService.mH.post(() -> {
+                synchronized (mWmService.mGlobalLock) {
+                    if (mLastAppSaturationInfo == null) {
+                        mLastAppSaturationInfo = new AppSaturationInfo();
+                    }
+
+                    mLastAppSaturationInfo.setSaturation(matrix, translation);
+                    updateColorTransform();
+                }
+            });
+
     AppWindowToken(WindowManagerService service, IApplicationToken token,
             ComponentName activityComponent, boolean voiceInteraction, DisplayContent dc,
             long inputDispatchingTimeoutNanos, boolean fullscreen, boolean showForAllUsers,
@@ -311,6 +329,11 @@
         // Application tokens start out hidden.
         setHidden(true);
         hiddenRequested = true;
+
+        ColorDisplayService.ColorDisplayServiceInternal cds = LocalServices.getService(
+                ColorDisplayService.ColorDisplayServiceInternal.class);
+        cds.attachColorTransformController(activityRecord.packageName, activityRecord.mUserId,
+                new WeakReference<>(mColorTransformController));
     }
 
     AppWindowToken(WindowManagerService service, IApplicationToken token,
@@ -968,6 +991,8 @@
                 : null;
 
         mLastParent = task;
+
+        updateColorTransform();
     }
 
     void postWindowRemoveStartingWindowCleanup(WindowState win) {
@@ -2816,4 +2841,22 @@
             mDisplayContent.mClosingApps.remove(this);
         }
     }
+
+    private void updateColorTransform() {
+        if (mSurfaceControl != null && mLastAppSaturationInfo != null) {
+            mPendingTransaction.setColorTransform(mSurfaceControl, mLastAppSaturationInfo.mMatrix,
+                    mLastAppSaturationInfo.mTranslation);
+            mWmService.scheduleAnimationLocked();
+        }
+    }
+
+    private static class AppSaturationInfo {
+        float[] mMatrix = new float[9];
+        float[] mTranslation = new float[3];
+
+        void setSaturation(@Size(9) float[] matrix, @Size(3) float[] translation) {
+            System.arraycopy(matrix, 0, mMatrix, 0, mMatrix.length);
+            System.arraycopy(translation, 0, mTranslation, 0, mTranslation.length);
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/wm/RootActivityContainer.java b/services/core/java/com/android/server/wm/RootActivityContainer.java
index 9b72141..c4a853d 100644
--- a/services/core/java/com/android/server/wm/RootActivityContainer.java
+++ b/services/core/java/com/android/server/wm/RootActivityContainer.java
@@ -1108,28 +1108,41 @@
             return false;
         }
 
+        boolean result = false;
         if (targetStack != null && (targetStack.isTopStackOnDisplay()
                 || getTopDisplayFocusedStack() == targetStack)) {
-            return targetStack.resumeTopActivityUncheckedLocked(target, targetOptions);
+            result = targetStack.resumeTopActivityUncheckedLocked(target, targetOptions);
         }
 
-        // Resume all top activities in focused stacks on all displays.
         for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+            boolean resumedOnDisplay = false;
             final ActivityDisplay display = mActivityDisplays.get(displayNdx);
-            final ActivityStack focusedStack = display.getFocusedStack();
-            if (focusedStack == null) {
-                continue;
+            for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
+                final ActivityStack stack = display.getChildAt(stackNdx);
+                final ActivityRecord topRunningActivity = stack.topRunningActivityLocked();
+                if (!stack.isFocusableAndVisible() || topRunningActivity == null) {
+                    continue;
+                }
+                if (topRunningActivity.isState(RESUMED)) {
+                    // Kick off any lingering app transitions form the MoveTaskToFront operation.
+                    stack.executeAppTransition(targetOptions);
+                } else {
+                    resumedOnDisplay |= topRunningActivity.makeActiveIfNeeded(target);
+                }
             }
-            final ActivityRecord r = focusedStack.topRunningActivityLocked();
-            if (r == null || !r.isState(RESUMED)) {
-                focusedStack.resumeTopActivityUncheckedLocked(null, null);
-            } else if (r.isState(RESUMED)) {
-                // Kick off any lingering app transitions form the MoveTaskToFront operation.
-                focusedStack.executeAppTransition(targetOptions);
+            if (!resumedOnDisplay) {
+                // In cases when there are no valid activities (e.g. device just booted or launcher
+                // crashed) it's possible that nothing was resumed on a display. Requesting resume
+                // of top activity in focused stack explicitly will make sure that at least home
+                // activity is started and resumed, and no recursion occurs.
+                final ActivityStack focusedStack = display.getFocusedStack();
+                if (focusedStack != null) {
+                    focusedStack.resumeTopActivityUncheckedLocked(target, targetOptions);
+                }
             }
         }
 
-        return false;
+        return result;
     }
 
     void applySleepTokens(boolean applyToStacks) {
diff --git a/services/core/java/com/android/server/wm/TaskRecord.java b/services/core/java/com/android/server/wm/TaskRecord.java
index 69dcaf4..0529ed1 100644
--- a/services/core/java/com/android/server/wm/TaskRecord.java
+++ b/services/core/java/com/android/server/wm/TaskRecord.java
@@ -698,6 +698,14 @@
             return false;
         }
 
+        final boolean toTopOfStack = position == MAX_VALUE;
+        if (toTopOfStack && toStack.getResumedActivity() != null
+                && toStack.topRunningActivityLocked() != null) {
+            // Pause the resumed activity on the target stack while re-parenting task on top of it.
+            toStack.startPausingLocked(false /* userLeaving */, false /* uiSleeping */,
+                    null /* resuming */, false /* pauseImmediately */);
+        }
+
         final int toStackWindowingMode = toStack.getWindowingMode();
         final ActivityRecord topActivity = getTopActivity();
 
diff --git a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
index dcb2ff5..f3c19d0 100644
--- a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
+++ b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
@@ -81,7 +81,7 @@
 static jmethodID method_correctionSatConstType;
 static jmethodID method_correctionSatId;
 static jmethodID method_correctionSatCarrierFreq;
-static jmethodID method_correctionSatIsLos;
+static jmethodID method_correctionSatIsLosProb;
 static jmethodID method_correctionSatEpl;
 static jmethodID method_correctionSatEplUnc;
 static jmethodID method_correctionSatRefPlane;
@@ -2277,8 +2277,8 @@
                 singleSatCorrClass, "getSatId", "()I");
             method_correctionSatCarrierFreq = env->GetMethodID(
                 singleSatCorrClass, "getCarrierFrequencyHz", "()F");
-            method_correctionSatIsLos = env->GetMethodID(
-                singleSatCorrClass,"getSatIsLos", "()Z");
+            method_correctionSatIsLosProb = env->GetMethodID(
+                singleSatCorrClass,"getProbSatIsLos", "()F");
             method_correctionSatEpl = env->GetMethodID(
                 singleSatCorrClass, "getExcessPathLengthMeters", "()F");
             method_correctionSatEplUnc = env->GetMethodID(
@@ -2296,8 +2296,8 @@
             env->CallIntMethod(singleSatCorrectionObj, method_correctionSatId);
         jfloat carrierFreqHz = env->CallFloatMethod(
             singleSatCorrectionObj, method_correctionSatCarrierFreq);
-        jboolean satIsLos = env->CallBooleanMethod(singleSatCorrectionObj,
-            method_correctionSatIsLos);
+        jfloat probSatIsLos = env->CallFloatMethod(singleSatCorrectionObj,
+            method_correctionSatIsLosProb);
         jfloat eplMeters =
             env->CallFloatMethod(singleSatCorrectionObj, method_correctionSatEpl);
         jfloat eplUncMeters = env->CallFloatMethod(singleSatCorrectionObj,
@@ -2337,7 +2337,7 @@
             .constellation = static_cast<GnssConstellationType>(constType),
             .svid = static_cast<uint16_t>(satId),
             .carrierFrequencyHz = carrierFreqHz,
-            .satIsLos = static_cast<bool>(satIsLos),
+            .probSatIsLos = probSatIsLos,
             .excessPathLengthMeters = eplMeters,
             .excessPathLengthUncertaintyMeters = eplUncMeters,
             .reflectingPlane = reflectingPlane,
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index fef2db9..cef47ca 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -74,6 +74,7 @@
 import com.android.internal.widget.ILockSettings;
 import com.android.server.am.ActivityManagerService;
 import com.android.server.appbinding.AppBindingService;
+import com.android.server.attention.AttentionManagerService;
 import com.android.server.audio.AudioService;
 import com.android.server.biometrics.BiometricService;
 import com.android.server.biometrics.face.FaceService;
@@ -148,10 +149,11 @@
 import com.android.server.wm.ActivityTaskManagerService;
 import com.android.server.wm.WindowManagerGlobalLock;
 import com.android.server.wm.WindowManagerService;
-import com.google.android.startop.iorap.IorapForwardingService;
 
 import dalvik.system.VMRuntime;
 
+import com.google.android.startop.iorap.IorapForwardingService;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.Locale;
@@ -1230,6 +1232,10 @@
                 traceEnd();
             }
 
+            traceBeginAndSlog("StartAttentionManagerService");
+            mSystemServiceManager.startService(AttentionManagerService.class);
+            traceEnd();
+
             traceBeginAndSlog("StartNetworkScoreService");
             mSystemServiceManager.startService(NetworkScoreService.Lifecycle.class);
             traceEnd();
diff --git a/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java b/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java
index 4a48468..c8e6782 100644
--- a/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java
@@ -85,7 +85,6 @@
 import java.util.concurrent.TimeUnit;
 import java.util.function.Consumer;
 
-import androidx.test.filters.FlakyTest;
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
@@ -794,7 +793,6 @@
     }
 
     @Test
-    @FlakyTest(bugId = 114098433)
     public void testAllListeners() throws Exception {
         final AppStateTrackerTestable instance = newInstance();
         callStart(instance);
diff --git a/services/tests/servicestests/src/com/android/server/StorageManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/StorageManagerServiceTest.java
index ec5d93e..68f696b 100644
--- a/services/tests/servicestests/src/com/android/server/StorageManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/StorageManagerServiceTest.java
@@ -227,6 +227,22 @@
     }
 
     @Test
+    public void testPackageInLegacyMode() throws Exception {
+        setStorageMountMode(PID_RED, UID_COLORS, Zygote.MOUNT_EXTERNAL_LEGACY);
+
+        // Both app and system have the same view
+        assertTranslation(
+                "/storage/emulated/0/Android/data/com.red/foo.jpg",
+                "/storage/emulated/0/Android/data/com.red/foo.jpg",
+                PID_RED, UID_COLORS);
+
+        assertTranslation(
+                "/storage/emulated/0/Android/sandbox/com.grey/bar.jpg",
+                "/storage/emulated/0/Android/sandbox/com.grey/bar.jpg",
+                PID_RED, UID_COLORS);
+    }
+
+    @Test
     public void testInstallerPackage() throws Exception {
         setStorageMountMode(PID_GREY, UID_GREY, Zygote.MOUNT_EXTERNAL_INSTALLER);
 
diff --git a/services/tests/servicestests/src/com/android/server/display/AppSaturationControllerTest.java b/services/tests/servicestests/src/com/android/server/display/AppSaturationControllerTest.java
new file mode 100644
index 0000000..e518844
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/display/AppSaturationControllerTest.java
@@ -0,0 +1,115 @@
+/*
+ * 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 com.android.server.display;
+
+import static com.android.server.display.AppSaturationController.TRANSLATION_VECTOR;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.app.ActivityManager;
+import android.os.UserHandle;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.server.display.ColorDisplayService.ColorTransformController;
+
+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 java.lang.ref.WeakReference;
+
+@RunWith(AndroidJUnit4.class)
+public class AppSaturationControllerTest {
+
+    private static final String TEST_PACKAGE_NAME = "com.android.test";
+
+    private int mUserId;
+    private AppSaturationController mAppSaturationController;
+    private float[] mMatrix;
+
+    @Mock
+    private ColorTransformController mColorTransformController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mUserId = ActivityManager.getCurrentUser();
+        mAppSaturationController = new AppSaturationController();
+        mMatrix = new float[9];
+    }
+
+    @After
+    public void tearDown() {
+        mAppSaturationController = null;
+        mUserId = UserHandle.USER_NULL;
+    }
+
+    @Test
+    public void addColorTransformController_appliesExistingSaturation() {
+        final WeakReference<ColorTransformController> ref = new WeakReference<>(
+                mColorTransformController);
+        mAppSaturationController.setSaturationLevel(TEST_PACKAGE_NAME, mUserId, 30);
+        mAppSaturationController.addColorTransformController(TEST_PACKAGE_NAME, mUserId, ref);
+        AppSaturationController.computeGrayscaleTransformMatrix(.3f, mMatrix);
+        verify(mColorTransformController).applyAppSaturation(eq(mMatrix), eq(TRANSLATION_VECTOR));
+    }
+
+    @Test
+    public void setSaturationLevel_resetToDefault() {
+        final WeakReference<ColorTransformController> ref = new WeakReference<>(
+                mColorTransformController);
+        mAppSaturationController.addColorTransformController(TEST_PACKAGE_NAME, mUserId, ref);
+        verify(mColorTransformController, never())
+                .applyAppSaturation(any(), eq(TRANSLATION_VECTOR));
+        mAppSaturationController.setSaturationLevel(TEST_PACKAGE_NAME, mUserId, 30);
+        AppSaturationController.computeGrayscaleTransformMatrix(.3f, mMatrix);
+        verify(mColorTransformController, times(1))
+                .applyAppSaturation(eq(mMatrix), eq(TRANSLATION_VECTOR));
+        mAppSaturationController.setSaturationLevel(TEST_PACKAGE_NAME, mUserId, 100);
+        AppSaturationController.computeGrayscaleTransformMatrix(1.0f, mMatrix);
+        verify(mColorTransformController, times(2))
+                .applyAppSaturation(eq(mMatrix), eq(TRANSLATION_VECTOR));
+    }
+
+    @Test
+    public void setSaturationLevel_updateLevel() {
+        final WeakReference<ColorTransformController> ref = new WeakReference<>(
+                mColorTransformController);
+        mAppSaturationController.addColorTransformController(TEST_PACKAGE_NAME, mUserId, ref);
+        verify(mColorTransformController, never())
+                .applyAppSaturation(any(), eq(TRANSLATION_VECTOR));
+        mAppSaturationController.setSaturationLevel(TEST_PACKAGE_NAME, mUserId, 30);
+        AppSaturationController.computeGrayscaleTransformMatrix(.3f, mMatrix);
+        verify(mColorTransformController).applyAppSaturation(eq(mMatrix), eq(TRANSLATION_VECTOR));
+        mAppSaturationController.setSaturationLevel(TEST_PACKAGE_NAME, mUserId, 70);
+        AppSaturationController.computeGrayscaleTransformMatrix(.7f, mMatrix);
+        verify(mColorTransformController, times(2))
+                .applyAppSaturation(eq(mMatrix), eq(TRANSLATION_VECTOR));
+        mAppSaturationController.setSaturationLevel(TEST_PACKAGE_NAME, mUserId, 100);
+        AppSaturationController.computeGrayscaleTransformMatrix(1.0f, mMatrix);
+        verify(mColorTransformController, times(3))
+                .applyAppSaturation(eq(mMatrix), eq(TRANSLATION_VECTOR));
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/job/JobCountTrackerTest.java b/services/tests/servicestests/src/com/android/server/job/JobCountTrackerTest.java
new file mode 100644
index 0000000..e5529cb
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/job/JobCountTrackerTest.java
@@ -0,0 +1,305 @@
+/*
+ * 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 com.android.server.job;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.util.Log;
+
+import com.android.server.job.JobConcurrencyManager.JobCountTracker;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Random;
+
+import androidx.test.filters.MediumTest;
+import androidx.test.runner.AndroidJUnit4;
+
+/**
+ * Test for {@link com.android.server.job.JobConcurrencyManager.JobCountTracker}.
+ */
+@RunWith(AndroidJUnit4.class)
+@MediumTest
+public class JobCountTrackerTest {
+    private static final String TAG = "JobCountTrackerTest";
+
+    private Random mRandom;
+    private JobCountTracker mJobCountTracker;
+
+    @Before
+    public void setUp() {
+        mRandom = new Random(1); // Always use the same series of pseudo random values.
+        mJobCountTracker = new JobCountTracker();
+    }
+
+    /**
+     * Represents running and pending jobs.
+     */
+    class Jobs {
+        public int runningFg;
+        public int runningBg;
+        public int pendingFg;
+        public int pendingBg;
+
+        public void maybeEnqueueJobs(double startRatio, double fgJobRatio) {
+            while (mRandom.nextDouble() < startRatio) {
+                if (mRandom.nextDouble() < fgJobRatio) {
+                    pendingFg++;
+                } else {
+                    pendingBg++;
+                }
+            }
+        }
+
+        public void maybeFinishJobs(double stopRatio) {
+            for (int i = runningBg; i > 0; i--) {
+                if (mRandom.nextDouble() < stopRatio) {
+                    runningBg--;
+                }
+            }
+            for (int i = runningFg; i > 0; i--) {
+                if (mRandom.nextDouble() < stopRatio) {
+                    runningFg--;
+                }
+            }
+        }
+    }
+
+
+    private void startPendingJobs(Jobs jobs, int totalMax, int maxBg, int minBg) {
+        mJobCountTracker.reset(totalMax, maxBg, minBg);
+
+        for (int i = 0; i < jobs.runningFg; i++) {
+            mJobCountTracker.incrementRunningJobCount(true);
+        }
+        for (int i = 0; i < jobs.runningBg; i++) {
+            mJobCountTracker.incrementRunningJobCount(false);
+        }
+
+        for (int i = 0; i < jobs.pendingFg; i++) {
+            mJobCountTracker.incrementPendingJobCount(true);
+        }
+        for (int i = 0; i < jobs.pendingBg; i++) {
+            mJobCountTracker.incrementPendingJobCount(false);
+        }
+
+        mJobCountTracker.onCountDone();
+
+        while ((jobs.pendingFg > 0 && mJobCountTracker.canJobStart(true))
+                || (jobs.pendingBg > 0 && mJobCountTracker.canJobStart(false))) {
+            final boolean isStartingFg = mRandom.nextBoolean();
+
+            if (isStartingFg) {
+                if (jobs.pendingFg > 0 && mJobCountTracker.canJobStart(true)) {
+                    jobs.pendingFg--;
+                    jobs.runningFg++;
+                    mJobCountTracker.onStartingNewJob(true);
+                }
+            } else {
+                if (jobs.pendingBg > 0 && mJobCountTracker.canJobStart(false)) {
+                    jobs.pendingBg--;
+                    jobs.runningBg++;
+                    mJobCountTracker.onStartingNewJob(false);
+                }
+            }
+        }
+
+        Log.i(TAG, "" + mJobCountTracker);
+    }
+
+    /**
+     * Used by the following testRandom* tests.
+     */
+    private void checkRandom(Jobs jobs, int numTests, int totalMax, int maxBg, int minBg,
+            double startRatio, double fgJobRatio, double stopRatio) {
+        for (int i = 0; i < numTests; i++) {
+
+            jobs.maybeFinishJobs(stopRatio);
+            jobs.maybeEnqueueJobs(startRatio, fgJobRatio);
+
+            startPendingJobs(jobs, totalMax, maxBg, minBg);
+
+            assertThat(jobs.runningFg).isAtMost(totalMax);
+            assertThat(jobs.runningBg).isAtMost(totalMax);
+            assertThat(jobs.runningFg + jobs.runningBg).isAtMost(totalMax);
+            assertThat(jobs.runningBg).isAtMost(maxBg);
+        }
+    }
+
+    /**
+     * Randomly enqueue / stop jobs and make sure we won't run more jobs than we should.
+     */
+    @Test
+    public void testRandom1() {
+        final Jobs jobs = new Jobs();
+
+        final int numTests = 5000;
+        final int totalMax = 6;
+        final int maxBg = 4;
+        final int minBg = 2;
+        final double stopRatio = 0.1;
+        final double fgJobRatio = 0.5;
+        final double startRatio = 0.1;
+
+        checkRandom(jobs, numTests, totalMax, maxBg, minBg, startRatio, fgJobRatio , stopRatio);
+    }
+
+    @Test
+    public void testRandom2() {
+        final Jobs jobs = new Jobs();
+
+        final int numTests = 5000;
+        final int totalMax = 2;
+        final int maxBg = 2;
+        final int minBg = 0;
+        final double stopRatio = 0.5;
+        final double fgJobRatio = 0.5;
+        final double startRatio = 0.5;
+
+        checkRandom(jobs, numTests, totalMax, maxBg, minBg, startRatio, fgJobRatio, stopRatio);
+    }
+
+    @Test
+    public void testRandom3() {
+        final Jobs jobs = new Jobs();
+
+        final int numTests = 5000;
+        final int totalMax = 2;
+        final int maxBg = 2;
+        final int minBg = 2;
+        final double stopRatio = 0.5;
+        final double fgJobRatio = 0.5;
+        final double startRatio = 0.5;
+
+        checkRandom(jobs, numTests, totalMax, maxBg, minBg, startRatio, fgJobRatio, stopRatio);
+    }
+
+    @Test
+    public void testRandom4() {
+        final Jobs jobs = new Jobs();
+
+        final int numTests = 5000;
+        final int totalMax = 10;
+        final int maxBg = 2;
+        final int minBg = 0;
+        final double stopRatio = 0.5;
+        final double fgJobRatio = 0.5;
+        final double startRatio = 0.5;
+
+        checkRandom(jobs, numTests, totalMax, maxBg, minBg, startRatio, fgJobRatio, stopRatio);
+    }
+
+    @Test
+    public void testRandom5() {
+        final Jobs jobs = new Jobs();
+
+        final int numTests = 5000;
+        final int totalMax = 6;
+        final int maxBg = 4;
+        final int minBg = 2;
+        final double stopRatio = 0.5;
+        final double fgJobRatio = 0.1;
+        final double startRatio = 0.5;
+
+        checkRandom(jobs, numTests, totalMax, maxBg, minBg, startRatio, fgJobRatio, stopRatio);
+    }
+
+    @Test
+    public void testRandom6() {
+        final Jobs jobs = new Jobs();
+
+        final int numTests = 5000;
+        final int totalMax = 6;
+        final int maxBg = 4;
+        final int minBg = 2;
+        final double stopRatio = 0.5;
+        final double fgJobRatio = 0.9;
+        final double startRatio = 0.5;
+
+        checkRandom(jobs, numTests, totalMax, maxBg, minBg, startRatio, fgJobRatio, stopRatio);
+    }
+
+    @Test
+    public void testRandom7() {
+        final Jobs jobs = new Jobs();
+
+        final int numTests = 5000;
+        final int totalMax = 6;
+        final int maxBg = 4;
+        final int minBg = 2;
+        final double stopRatio = 0.4;
+        final double fgJobRatio = 0.1;
+        final double startRatio = 0.5;
+
+        checkRandom(jobs, numTests, totalMax, maxBg, minBg, startRatio, fgJobRatio, stopRatio);
+    }
+
+    @Test
+    public void testRandom8() {
+        final Jobs jobs = new Jobs();
+
+        final int numTests = 5000;
+        final int totalMax = 6;
+        final int maxBg = 4;
+        final int minBg = 2;
+        final double stopRatio = 0.4;
+        final double fgJobRatio = 0.9;
+        final double startRatio = 0.5;
+
+        checkRandom(jobs, numTests, totalMax, maxBg, minBg, startRatio, fgJobRatio, stopRatio);
+    }
+
+    /** Used by the following tests */
+    private void checkSimple(int totalMax, int maxBg, int minBg,
+            int runningFg, int runningBg, int pendingFg, int pendingBg,
+            int resultRunningFg, int resultRunningBg, int resultPendingFg, int resultPendingBg) {
+        final Jobs jobs = new Jobs();
+        jobs.runningFg = runningFg;
+        jobs.runningBg = runningBg;
+        jobs.pendingFg = pendingFg;
+        jobs.pendingBg = pendingBg;
+
+        startPendingJobs(jobs, totalMax, maxBg, minBg);
+
+        assertThat(jobs.runningFg).isEqualTo(resultRunningFg);
+        assertThat(jobs.runningBg).isEqualTo(resultRunningBg);
+
+        assertThat(jobs.pendingFg).isEqualTo(resultPendingFg);
+        assertThat(jobs.pendingBg).isEqualTo(resultPendingBg);
+    }
+
+
+    @Test
+    public void testBasic() {
+        // Args are:
+        // First 3: Total-max, bg-max, bg-min.
+        // Next 2:  Running FG / BG
+        // Next 2:  Pending FG / BG
+        // Next 4:  Result running FG / BG, pending FG/BG.
+        checkSimple(6, 4, 2, /*run=*/ 0, 0, /*pen=*/ 1, 0, /*res run/pen=*/ 1, 0, 0, 0);
+
+        checkSimple(6, 4, 2, /*run=*/ 0, 0, /*pen=*/ 10, 0, /*res run/pen=*/ 6, 0, 4, 0);
+
+        // When there are BG jobs pending, 2 (min-BG) jobs should run.
+        checkSimple(6, 4, 2, /*run=*/ 0, 0, /*pen=*/ 10, 1, /*res run/pen=*/ 5, 1, 5, 0);
+        checkSimple(6, 4, 2, /*run=*/ 0, 0, /*pen=*/ 10, 3, /*res run/pen=*/ 4, 2, 6, 1);
+
+        checkSimple(6, 4, 2, /*run=*/ 6, 0, /*pen=*/ 10, 3, /*res run/pen=*/ 6, 0, 10, 3);
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/job/MaxJobCountsTest.java b/services/tests/servicestests/src/com/android/server/job/MaxJobCountsTest.java
new file mode 100644
index 0000000..01199a3
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/job/MaxJobCountsTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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 com.android.server.job;
+
+import android.util.KeyValueListParser;
+
+import com.android.server.job.JobSchedulerService.MaxJobCounts;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class MaxJobCountsTest {
+
+    private void check(String config,
+            int defaultTotal, int defaultMaxBg, int defaultMinBg,
+            int expectedTotal, int expectedMaxBg, int expectedMinBg) {
+        final KeyValueListParser parser = new KeyValueListParser(',');
+        parser.setString(config);
+
+        final MaxJobCounts counts = new JobSchedulerService.MaxJobCounts(
+                defaultTotal, "total",
+                defaultMaxBg, "maxbg",
+                defaultMinBg, "minbg");
+
+        counts.parse(parser);
+
+        Assert.assertEquals(expectedTotal, counts.getTotalMax());
+        Assert.assertEquals(expectedMaxBg, counts.getMaxBg());
+        Assert.assertEquals(expectedMinBg, counts.getMinBg());
+    }
+
+    @Test
+    public void test() {
+        check("", /*default*/ 5, 1, 0, /*expected*/ 5, 1, 0);
+        check("", /*default*/ 5, 0, 0, /*expected*/ 5, 1, 0);
+        check("", /*default*/ 0, 0, 0, /*expected*/ 1, 1, 0);
+        check("", /*default*/ -1, -1, -1, /*expected*/ 1, 1, 0);
+        check("", /*default*/ 5, 5, 5, /*expected*/ 5, 5, 4);
+        check("", /*default*/ 6, 5, 6, /*expected*/ 6, 5, 5);
+        check("", /*default*/ 4, 5, 6, /*expected*/ 4, 4, 3);
+        check("", /*default*/ 5, 1, 1, /*expected*/ 5, 1, 1);
+
+        check("total=5,maxbg=4,minbg=3", /*default*/ 9, 9, 9, /*expected*/ 5, 4, 3);
+        check("total=5", /*default*/ 9, 9, 9, /*expected*/ 5, 5, 4);
+        check("maxbg=4", /*default*/ 9, 9, 9, /*expected*/ 9, 4, 4);
+        check("minbg=3", /*default*/ 9, 9, 9, /*expected*/ 9, 9, 3);
+    }
+}
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 8a9e5d1..c2d4846 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
@@ -23,6 +23,7 @@
 
 import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PASSWORD;
 import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertArrayEquals;
@@ -91,6 +92,9 @@
     private static final byte[] TEST_VAULT_HANDLE =
             new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
     private static final String TEST_APP_KEY_ALIAS = "rcleaver";
+    private static final byte[] TEST_APP_KEY_METADATA_NULL = null;
+    private static final byte[] TEST_APP_KEY_METADATA_NON_NULL =
+            "mdata".getBytes(StandardCharsets.UTF_8);
     private static final int TEST_GENERATION_ID = 2;
     private static final int TEST_CREDENTIAL_TYPE = CREDENTIAL_TYPE_PATTERN;
     private static final String TEST_CREDENTIAL = "pas123";
@@ -251,7 +255,7 @@
                 TEST_USER_ID,
                 TEST_RECOVERY_AGENT_UID,
                 TEST_APP_KEY_ALIAS,
-                WrappedKey.fromSecretKey(mEncryptKey, applicationKey));
+                WrappedKey.fromSecretKey(mEncryptKey, applicationKey, TEST_APP_KEY_METADATA_NULL));
         when(mSnapshotListenersStorage.hasListener(TEST_RECOVERY_AGENT_UID)).thenReturn(true);
 
         mKeySyncTask.run();
@@ -267,7 +271,7 @@
                 TEST_USER_ID,
                 TEST_RECOVERY_AGENT_UID,
                 TEST_APP_KEY_ALIAS,
-                WrappedKey.fromSecretKey(mEncryptKey, applicationKey));
+                WrappedKey.fromSecretKey(mEncryptKey, applicationKey, TEST_APP_KEY_METADATA_NULL));
         mRecoverableKeyStoreDb.setRecoveryServiceCertPath(
                 TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_ROOT_CERT_ALIAS, TestData.CERT_PATH_1);
         when(mSnapshotListenersStorage.hasListener(TEST_RECOVERY_AGENT_UID)).thenReturn(true);
@@ -545,18 +549,20 @@
         assertEquals(TEST_APP_KEY_ALIAS, keyData.getAlias());
         assertThat(keyData.getAlias()).isEqualTo(keyData.getAlias());
         byte[] appKey = KeySyncUtils.decryptApplicationKey(
-                recoveryKey, keyData.getEncryptedKeyMaterial());
+                recoveryKey, keyData.getEncryptedKeyMaterial(), TEST_APP_KEY_METADATA_NULL);
         assertThat(appKey).isEqualTo(applicationKey.getEncoded());
     }
 
     @Test
-    public void run_sendsEncryptedKeysIfAvailableToSync_withCertPath() throws Exception {
+    public void run_sendsEncryptedKeysIfAvailableToSync_withCertPath_withNullKeyMetadata()
+            throws Exception {
         mRecoverableKeyStoreDb.setRecoveryServiceCertPath(
                 TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_ROOT_CERT_ALIAS, TestData.CERT_PATH_1);
         mRecoverableKeyStoreDb.setServerParams(
                 TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_VAULT_HANDLE);
         when(mSnapshotListenersStorage.hasListener(TEST_RECOVERY_AGENT_UID)).thenReturn(true);
-        addApplicationKey(TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_APP_KEY_ALIAS);
+        addApplicationKey(TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_APP_KEY_ALIAS,
+                TEST_APP_KEY_METADATA_NULL);
 
         mKeySyncTask.run();
 
@@ -564,6 +570,33 @@
         verify(mSnapshotListenersStorage).recoverySnapshotAvailable(TEST_RECOVERY_AGENT_UID);
         List<WrappedApplicationKey> applicationKeys = keyChainSnapshot.getWrappedApplicationKeys();
         assertThat(applicationKeys).hasSize(1);
+        WrappedApplicationKey keyData = applicationKeys.get(0);
+        assertThat(keyData.getAlias()).isEqualTo(TEST_APP_KEY_ALIAS);
+        assertThat(keyData.getMetadata()).isEqualTo(TEST_APP_KEY_METADATA_NULL);
+        assertThat(keyChainSnapshot.getTrustedHardwareCertPath())
+                .isEqualTo(TestData.CERT_PATH_1);
+    }
+
+    @Test
+    public void run_sendsEncryptedKeysIfAvailableToSync_withCertPath_withNonNullKeyMetadata()
+            throws Exception {
+        mRecoverableKeyStoreDb.setRecoveryServiceCertPath(
+                TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_ROOT_CERT_ALIAS, TestData.CERT_PATH_1);
+        mRecoverableKeyStoreDb.setServerParams(
+                TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_VAULT_HANDLE);
+        when(mSnapshotListenersStorage.hasListener(TEST_RECOVERY_AGENT_UID)).thenReturn(true);
+        addApplicationKey(TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_APP_KEY_ALIAS,
+                TEST_APP_KEY_METADATA_NON_NULL);
+
+        mKeySyncTask.run();
+
+        KeyChainSnapshot keyChainSnapshot = mRecoverySnapshotStorage.get(TEST_RECOVERY_AGENT_UID);
+        verify(mSnapshotListenersStorage).recoverySnapshotAvailable(TEST_RECOVERY_AGENT_UID);
+        List<WrappedApplicationKey> applicationKeys = keyChainSnapshot.getWrappedApplicationKeys();
+        assertThat(applicationKeys).hasSize(1);
+        WrappedApplicationKey keyData = applicationKeys.get(0);
+        assertThat(keyData.getAlias()).isEqualTo(TEST_APP_KEY_ALIAS);
+        assertThat(keyData.getMetadata()).isEqualTo(TEST_APP_KEY_METADATA_NON_NULL);
         assertThat(keyChainSnapshot.getTrustedHardwareCertPath())
                 .isEqualTo(TestData.CERT_PATH_1);
     }
@@ -788,6 +821,11 @@
 
     private SecretKey addApplicationKey(int userId, int recoveryAgentUid, String alias)
             throws Exception{
+        return addApplicationKey(userId, recoveryAgentUid, alias, TEST_APP_KEY_METADATA_NULL);
+    }
+
+    private SecretKey addApplicationKey(int userId, int recoveryAgentUid, String alias,
+            byte[] metadata) throws Exception {
         SecretKey applicationKey = generateKey();
         mRecoverableKeyStoreDb.setServerParams(
                 userId, recoveryAgentUid, TEST_VAULT_HANDLE);
@@ -800,7 +838,7 @@
                 userId,
                 recoveryAgentUid,
                 alias,
-                WrappedKey.fromSecretKey(mEncryptKey, applicationKey));
+                WrappedKey.fromSecretKey(mEncryptKey, applicationKey, metadata));
         return applicationKey;
     }
 
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 f832d3c..178fd10 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,6 +22,8 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 
+import android.util.Pair;
+
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
@@ -65,7 +67,8 @@
     private static final byte[] RECOVERY_RESPONSE_HEADER =
             "V1 reencrypted_recovery_key".getBytes(StandardCharsets.UTF_8);
     private static final int PUBLIC_KEY_LENGTH_BYTES = 65;
-
+    private static final byte[] NULL_METADATA = null;
+    private static final byte[] NON_NULL_METADATA = "somemetadata".getBytes(StandardCharsets.UTF_8);
 
     @Test
     public void calculateThmKfHash_isShaOfLockScreenHashWithPrefix() throws Exception {
@@ -125,18 +128,35 @@
     }
 
     @Test
-    public void decryptApplicationKey_decryptsAnApplicationKeyEncryptedWithSecureBox()
-            throws Exception {
+    public void decryptApplicationKey_decryptsAnApplicationKey_nullMetadata() throws Exception {
         String alias = "phoebe";
         SecretKey recoveryKey = KeySyncUtils.generateRecoveryKey();
         SecretKey applicationKey = generateApplicationKey();
         Map<String, byte[]> encryptedKeys =
                 KeySyncUtils.encryptKeysWithRecoveryKey(
-                        recoveryKey, ImmutableMap.of(alias, applicationKey));
+                        recoveryKey,
+                        ImmutableMap.of(alias, Pair.create(applicationKey, NULL_METADATA)));
         byte[] encryptedKey = encryptedKeys.get(alias);
 
-        byte[] keyMaterial =
-                KeySyncUtils.decryptApplicationKey(recoveryKey.getEncoded(), encryptedKey);
+        byte[] keyMaterial = KeySyncUtils.decryptApplicationKey(recoveryKey.getEncoded(),
+                encryptedKey, NULL_METADATA);
+
+        assertArrayEquals(applicationKey.getEncoded(), keyMaterial);
+    }
+
+    @Test
+    public void decryptApplicationKey_decryptsAnApplicationKey_nonNullMetadata() throws Exception {
+        String alias = "phoebe";
+        SecretKey recoveryKey = KeySyncUtils.generateRecoveryKey();
+        SecretKey applicationKey = generateApplicationKey();
+        Map<String, byte[]> encryptedKeys =
+                KeySyncUtils.encryptKeysWithRecoveryKey(
+                        recoveryKey,
+                        ImmutableMap.of(alias, Pair.create(applicationKey, NON_NULL_METADATA)));
+        byte[] encryptedKey = encryptedKeys.get(alias);
+
+        byte[] keyMaterial = KeySyncUtils.decryptApplicationKey(recoveryKey.getEncoded(),
+                encryptedKey, NON_NULL_METADATA);
 
         assertArrayEquals(applicationKey.getEncoded(), keyMaterial);
     }
@@ -147,12 +167,13 @@
         Map<String, byte[]> encryptedKeys =
                 KeySyncUtils.encryptKeysWithRecoveryKey(
                         KeySyncUtils.generateRecoveryKey(),
-                        ImmutableMap.of("casper", generateApplicationKey()));
+                        ImmutableMap.of("casper",
+                                Pair.create(generateApplicationKey(), NULL_METADATA)));
         byte[] encryptedKey = encryptedKeys.get(alias);
 
         try {
-            KeySyncUtils.decryptApplicationKey(
-                    KeySyncUtils.generateRecoveryKey().getEncoded(), encryptedKey);
+            KeySyncUtils.decryptApplicationKey(KeySyncUtils.generateRecoveryKey().getEncoded(),
+                    encryptedKey, NULL_METADATA);
             fail("Did not throw decrypting with bad key.");
         } catch (AEADBadTagException error) {
             // expected
@@ -160,6 +181,47 @@
     }
 
     @Test
+    public void decryptApplicationKey_throwsIfWrongMetadata() throws Exception {
+        String alias1 = "casper1";
+        String alias2 = "casper2";
+        String alias3 = "casper3";
+        SecretKey recoveryKey = KeySyncUtils.generateRecoveryKey();
+
+        Map<String, byte[]> encryptedKeys =
+                KeySyncUtils.encryptKeysWithRecoveryKey(
+                        recoveryKey,
+                        ImmutableMap.of(
+                                alias1,
+                                Pair.create(generateApplicationKey(), NULL_METADATA),
+                                alias2,
+                                Pair.create(generateApplicationKey(), NON_NULL_METADATA),
+                                alias3,
+                                Pair.create(generateApplicationKey(), NON_NULL_METADATA)));
+
+        try {
+            KeySyncUtils.decryptApplicationKey(recoveryKey.getEncoded(),
+                    encryptedKeys.get(alias1), NON_NULL_METADATA);
+            fail("Did not throw decrypting with wrong metadata.");
+        } catch (AEADBadTagException error) {
+            // expected
+        }
+        try {
+            KeySyncUtils.decryptApplicationKey(recoveryKey.getEncoded(),
+                    encryptedKeys.get(alias2), NULL_METADATA);
+            fail("Did not throw decrypting with wrong metadata.");
+        } catch (AEADBadTagException error) {
+            // expected
+        }
+        try {
+            KeySyncUtils.decryptApplicationKey(recoveryKey.getEncoded(),
+                    encryptedKeys.get(alias3), "different".getBytes(StandardCharsets.UTF_8));
+            fail("Did not throw decrypting with wrong metadata.");
+        } catch (AEADBadTagException error) {
+            // expected
+        }
+    }
+
+    @Test
     public void decryptRecoveryKey_decryptsALocallyEncryptedKey() throws Exception {
         SecretKey recoveryKey = KeySyncUtils.generateRecoveryKey();
         byte[] encrypted = KeySyncUtils.locallyEncryptRecoveryKey(
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 48afb8b..c295177 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
@@ -20,6 +20,7 @@
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 
 import android.content.Context;
 import android.security.keystore.AndroidKeyStoreSecretKey;
@@ -60,6 +61,9 @@
     private static final int TEST_USER_ID = 1000;
     private static final int KEYSTORE_UID_SELF = -1;
     private static final int GCM_TAG_LENGTH_BITS = 128;
+    private static final byte[] NULL_METADATA = null;
+    private static final byte[] NON_NULL_METADATA = "test-metadata".getBytes(
+            StandardCharsets.UTF_8);
 
     private PlatformEncryptionKey mPlatformKey;
     private PlatformDecryptionKey mDecryptKey;
@@ -90,18 +94,29 @@
     }
 
     @Test
-    public void generateAndStoreKey_storesWrappedKey() throws Exception {
+    public void generateAndStoreKey_storesWrappedKey_nullMetadata() throws Exception {
         mRecoverableKeyGenerator.generateAndStoreKey(
-                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS);
+                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS, NULL_METADATA);
 
         WrappedKey wrappedKey = mRecoverableKeyStoreDb.getKey(KEYSTORE_UID_SELF, TEST_ALIAS);
         assertNotNull(wrappedKey);
+        assertNull(wrappedKey.getKeyMetadata());
+    }
+
+    @Test
+    public void generateAndStoreKey_storesWrappedKey_nonNullMetadata() throws Exception {
+        mRecoverableKeyGenerator.generateAndStoreKey(
+                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS, NON_NULL_METADATA);
+
+        WrappedKey wrappedKey = mRecoverableKeyStoreDb.getKey(KEYSTORE_UID_SELF, TEST_ALIAS);
+        assertNotNull(wrappedKey);
+        assertArrayEquals(NON_NULL_METADATA, wrappedKey.getKeyMetadata());
     }
 
     @Test
     public void generateAndStoreKey_returnsRawMaterialOfCorrectLength() throws Exception {
         byte[] rawKey = mRecoverableKeyGenerator.generateAndStoreKey(
-                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS);
+                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS, NON_NULL_METADATA);
 
         assertEquals(KEY_SIZE_BYTES, rawKey.length);
     }
@@ -109,7 +124,7 @@
     @Test
     public void generateAndStoreKey_storesTheWrappedVersionOfTheRawMaterial() throws Exception {
         byte[] rawMaterial = mRecoverableKeyGenerator.generateAndStoreKey(
-                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS);
+                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS, NULL_METADATA);
 
         WrappedKey wrappedKey = mRecoverableKeyStoreDb.getKey(KEYSTORE_UID_SELF, TEST_ALIAS);
         Cipher cipher = Cipher.getInstance(KEY_WRAP_ALGORITHM);
@@ -120,10 +135,30 @@
     }
 
     @Test
+    public void importKey_storesNullMetadata() throws Exception {
+        mRecoverableKeyGenerator.importKey(
+                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS,
+                randomBytes(KEY_SIZE_BYTES),
+                NULL_METADATA);
+        assertNull(mRecoverableKeyStoreDb.getKey(KEYSTORE_UID_SELF, TEST_ALIAS).getKeyMetadata());
+    }
+
+    @Test
+    public void importKey_storesNonNullMetadata() throws Exception {
+        mRecoverableKeyGenerator.importKey(
+                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS,
+                randomBytes(KEY_SIZE_BYTES),
+                NON_NULL_METADATA);
+        assertArrayEquals(NON_NULL_METADATA,
+                mRecoverableKeyStoreDb.getKey(KEYSTORE_UID_SELF, TEST_ALIAS).getKeyMetadata());
+    }
+
+    @Test
     public void importKey_storesTheWrappedVersionOfTheRawMaterial() throws Exception {
         byte[] rawMaterial = randomBytes(KEY_SIZE_BYTES);
         mRecoverableKeyGenerator.importKey(
-                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS, rawMaterial);
+                mPlatformKey, TEST_USER_ID, KEYSTORE_UID_SELF, TEST_ALIAS, rawMaterial,
+                NULL_METADATA);
 
         WrappedKey wrappedKey = mRecoverableKeyStoreDb.getKey(KEYSTORE_UID_SELF, TEST_ALIAS);
         Cipher cipher = Cipher.getInstance(KEY_WRAP_ALGORITHM);
@@ -145,10 +180,6 @@
         return (AndroidKeyStoreSecretKey) keyGenerator.generateKey();
     }
 
-    private static byte[] getUtf8Bytes(String s) {
-        return s.getBytes(StandardCharsets.UTF_8);
-    }
-
     private static byte[] randomBytes(int n) {
         byte[] bytes = new byte[n];
         new Random().nextBytes(bytes);
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 b15863d..c78b96d 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
@@ -52,6 +52,7 @@
 import android.security.keystore.recovery.RecoveryCertPath;
 import android.security.keystore.recovery.TrustedRootCertificates;
 import android.security.keystore.recovery.WrappedApplicationKey;
+import android.util.Pair;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
@@ -134,6 +135,8 @@
     private static final int GENERATION_ID = 1;
     private static final byte[] NONCE = getUtf8Bytes("nonce");
     private static final byte[] KEY_MATERIAL = getUtf8Bytes("keymaterial");
+    private static final byte[] KEY_METADATA_NULL = null;
+    private static final byte[] KEY_METADATA_NON_NULL = getUtf8Bytes("keymetametadata");
     private static final String KEY_ALGORITHM = "AES";
     private static final String ANDROID_KEY_STORE_PROVIDER = "AndroidKeyStore";
     private static final String WRAPPING_KEY_ALIAS = "RecoverableKeyStoreManagerTest/WrappingKey";
@@ -231,6 +234,77 @@
     }
 
     @Test
+    public void importKeyWithMetadata_nullMetadata_storesTheKey() throws Exception {
+        int uid = Binder.getCallingUid();
+        int userId = UserHandle.getCallingUserId();
+        byte[] keyMaterial = randomBytes(APPLICATION_KEY_SIZE_BYTES);
+
+        mRecoverableKeyStoreManager.importKeyWithMetadata(
+                TEST_ALIAS, keyMaterial, KEY_METADATA_NULL);
+
+        assertThat(mRecoverableKeyStoreDb.getKey(uid, TEST_ALIAS)).isNotNull();
+        assertThat(mRecoverableKeyStoreDb.getShouldCreateSnapshot(userId, uid)).isTrue();
+    }
+
+    @Test
+    public void importKeyWithMetadata_nonNullMetadata_storesTheKey() throws Exception {
+        int uid = Binder.getCallingUid();
+        int userId = UserHandle.getCallingUserId();
+        byte[] keyMaterial = randomBytes(APPLICATION_KEY_SIZE_BYTES);
+
+        mRecoverableKeyStoreManager.importKeyWithMetadata(
+                TEST_ALIAS, keyMaterial, KEY_METADATA_NON_NULL);
+
+        assertThat(mRecoverableKeyStoreDb.getKey(uid, TEST_ALIAS)).isNotNull();
+        assertThat(mRecoverableKeyStoreDb.getShouldCreateSnapshot(userId, uid)).isTrue();
+    }
+
+    @Test
+    public void importKeyWithMetadata_throwsIfInvalidLength() throws Exception {
+        byte[] keyMaterial = randomBytes(APPLICATION_KEY_SIZE_BYTES - 1);
+        try {
+            mRecoverableKeyStoreManager.importKeyWithMetadata(
+                    TEST_ALIAS, keyMaterial, KEY_METADATA_NON_NULL);
+            fail("should have thrown");
+        } catch (ServiceSpecificException e) {
+            assertThat(e.getMessage()).contains("not contain 256 bits");
+        }
+    }
+
+    @Test
+    public void importKeyWithMetadata_throwsIfNullKey() throws Exception {
+        try {
+            mRecoverableKeyStoreManager.importKeyWithMetadata(
+                    TEST_ALIAS, /*keyBytes=*/ null, KEY_METADATA_NON_NULL);
+            fail("should have thrown");
+        } catch (NullPointerException e) {
+            assertThat(e.getMessage()).contains("is null");
+        }
+    }
+
+    @Test
+    public void generateKeyWithMetadata_nullMetadata_storesTheKey() throws Exception {
+        int uid = Binder.getCallingUid();
+        int userId = UserHandle.getCallingUserId();
+
+        mRecoverableKeyStoreManager.generateKeyWithMetadata(TEST_ALIAS, KEY_METADATA_NULL);
+
+        assertThat(mRecoverableKeyStoreDb.getKey(uid, TEST_ALIAS)).isNotNull();
+        assertThat(mRecoverableKeyStoreDb.getShouldCreateSnapshot(userId, uid)).isTrue();
+    }
+
+    @Test
+    public void generateKeyWithMetadata_nonNullMetadata_storesTheKey() throws Exception {
+        int uid = Binder.getCallingUid();
+        int userId = UserHandle.getCallingUserId();
+
+        mRecoverableKeyStoreManager.generateKeyWithMetadata(TEST_ALIAS, KEY_METADATA_NON_NULL);
+
+        assertThat(mRecoverableKeyStoreDb.getKey(uid, TEST_ALIAS)).isNotNull();
+        assertThat(mRecoverableKeyStoreDb.getShouldCreateSnapshot(userId, uid)).isTrue();
+    }
+
+    @Test
     public void removeKey_removesAKey() throws Exception {
         int uid = Binder.getCallingUid();
         mRecoverableKeyStoreManager.generateKey(TEST_ALIAS);
@@ -1143,7 +1217,10 @@
         int status = 100;
         int status2 = 200;
         String alias = "key1";
-        WrappedKey wrappedKey = new WrappedKey(NONCE, KEY_MATERIAL, GENERATION_ID, status);
+        byte[] keyMetadata = null;
+
+        WrappedKey wrappedKey = new WrappedKey(NONCE, KEY_MATERIAL, keyMetadata, GENERATION_ID,
+                status);
         mRecoverableKeyStoreDb.insertKey(userId, uid, alias, wrappedKey);
         Map<String, Integer> statuses =
                 mRecoverableKeyStoreManager.getRecoveryStatus();
@@ -1169,7 +1246,8 @@
     private static byte[] encryptedApplicationKey(
             SecretKey recoveryKey, byte[] applicationKey) throws Exception {
         return KeySyncUtils.encryptKeysWithRecoveryKey(recoveryKey, ImmutableMap.of(
-                TEST_ALIAS, new SecretKeySpec(applicationKey, "AES")
+                TEST_ALIAS,
+                Pair.create(new SecretKeySpec(applicationKey, "AES"), /*metadata=*/ null)
         )).get(TEST_ALIAS);
     }
 
@@ -1203,7 +1281,7 @@
 
     private void generateKeyAndSimulateSync(int userId, int uid, int snapshotVersion)
             throws Exception{
-        mRecoverableKeyStoreManager.generateKey(TEST_ALIAS);
+        mRecoverableKeyStoreManager.generateKeyWithMetadata(TEST_ALIAS, KEY_METADATA_NULL);
         // Simulate key sync.
         mRecoverableKeyStoreDb.setSnapshotVersion(userId, uid, snapshotVersion);
         mRecoverableKeyStoreDb.setShouldCreateSnapshot(userId, uid, false);
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 944d6e0..9b4c3be 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,6 +3,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.security.keystore.recovery.TrustedRootCertificates;
+import android.util.Pair;
 
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
@@ -64,10 +65,10 @@
 
     @Test
     public void testKeepOnlyWhitelistedInsecureKeys_emptyKeysList() throws Exception {
-        Map<String, SecretKey> rawKeys = new HashMap<>();
-        Map<String, SecretKey> expectedResult = new HashMap<>();
+        Map<String, Pair<SecretKey, byte[]>> rawKeys = new HashMap<>();
+        Map<String, Pair<SecretKey, byte[]>> expectedResult = new HashMap<>();
 
-        Map<String, SecretKey> filteredKeys =
+        Map<String, Pair<SecretKey, byte[]>> filteredKeys =
                 mHelper.keepOnlyWhitelistedInsecureKeys(rawKeys);
         assertThat(filteredKeys.entrySet()).containsExactlyElementsIn(expectedResult.entrySet());
         assertThat(filteredKeys.entrySet()).containsAllIn(rawKeys.entrySet());
@@ -75,13 +76,13 @@
 
     @Test
     public void testKeepOnlyWhitelistedInsecureKeys_singleNonWhitelistedKey() throws Exception {
-        Map<String, SecretKey> rawKeys = new HashMap<>();
-        Map<String, SecretKey> expectedResult = new HashMap<>();
+        Map<String, Pair<SecretKey, byte[]>> rawKeys = new HashMap<>();
+        Map<String, Pair<SecretKey, byte[]>> expectedResult = new HashMap<>();
 
         String alias = "secureAlias";
-        rawKeys.put(alias, TestData.generateKey());
+        rawKeys.put(alias, Pair.create(TestData.generateKey(), /*metadata=*/ null));
 
-        Map<String, SecretKey> filteredKeys =
+        Map<String, Pair<SecretKey, byte[]>> filteredKeys =
                 mHelper.keepOnlyWhitelistedInsecureKeys(rawKeys);
         assertThat(filteredKeys.entrySet()).containsExactlyElementsIn(expectedResult.entrySet());
         assertThat(rawKeys.entrySet()).containsAllIn(filteredKeys.entrySet());
@@ -89,14 +90,14 @@
 
     @Test
     public void testKeepOnlyWhitelistedInsecureKeys_singleWhitelistedKey() throws Exception {
-        Map<String, SecretKey> rawKeys = new HashMap<>();
-        Map<String, SecretKey> expectedResult = new HashMap<>();
+        Map<String, Pair<SecretKey, byte[]>> rawKeys = new HashMap<>();
+        Map<String, Pair<SecretKey, byte[]>> expectedResult = new HashMap<>();
 
         String alias = TrustedRootCertificates.INSECURE_KEY_ALIAS_PREFIX;
-        rawKeys.put(alias, TestData.generateKey());
+        rawKeys.put(alias, Pair.create(TestData.generateKey(), /*metadata=*/ null));
         expectedResult.put(alias, rawKeys.get(alias));
 
-        Map<String, SecretKey> filteredKeys =
+        Map<String, Pair<SecretKey, byte[]>> filteredKeys =
                 mHelper.keepOnlyWhitelistedInsecureKeys(rawKeys);
         assertThat(filteredKeys.entrySet()).containsExactlyElementsIn(expectedResult.entrySet());
         assertThat(rawKeys.entrySet()).containsAllIn(filteredKeys.entrySet());
@@ -104,21 +105,21 @@
 
     @Test
     public void testKeepOnlyWhitelistedInsecureKeys() throws Exception {
-        Map<String, SecretKey> rawKeys = new HashMap<>();
-        Map<String, SecretKey> expectedResult = new HashMap<>();
+        Map<String, Pair<SecretKey, byte[]>> rawKeys = new HashMap<>();
+        Map<String, Pair<SecretKey, byte[]>> expectedResult = new HashMap<>();
 
         String alias = "SECURE_ALIAS" + TrustedRootCertificates.INSECURE_KEY_ALIAS_PREFIX;
-        rawKeys.put(alias, TestData.generateKey());
+        rawKeys.put(alias, Pair.create(TestData.generateKey(), /*metadata=*/ null));
 
         alias = TrustedRootCertificates.INSECURE_KEY_ALIAS_PREFIX + "1";
-        rawKeys.put(alias, TestData.generateKey());
+        rawKeys.put(alias, Pair.create(TestData.generateKey(), /*metadata=*/ null));
         expectedResult.put(alias, rawKeys.get(alias));
 
         alias = TrustedRootCertificates.INSECURE_KEY_ALIAS_PREFIX + "2";
-        rawKeys.put(alias, TestData.generateKey());
+        rawKeys.put(alias, Pair.create(TestData.generateKey(), /*metadata=*/ null));
         expectedResult.put(alias, rawKeys.get(alias));
 
-        Map<String, SecretKey> filteredKeys =
+        Map<String, Pair<SecretKey, byte[]>> filteredKeys =
                 mHelper.keepOnlyWhitelistedInsecureKeys(rawKeys);
         assertThat(filteredKeys.entrySet()).containsExactlyElementsIn(expectedResult.entrySet());
         assertThat(rawKeys.entrySet()).containsAllIn(filteredKeys.entrySet());
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 b5ee60e..9813ab7 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,6 +24,7 @@
 import android.security.keystore.AndroidKeyStoreSecretKey;
 import android.security.keystore.KeyGenParameterSpec;
 import android.security.keystore.KeyProperties;
+import android.util.Pair;
 
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
@@ -32,6 +33,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.nio.charset.StandardCharsets;
 import java.security.KeyStore;
 import java.util.HashMap;
 import java.util.Map;
@@ -47,26 +49,49 @@
     private static final String ANDROID_KEY_STORE_PROVIDER = "AndroidKeyStore";
     private static final String KEY_ALGORITHM = "AES";
     private static final String CIPHER_ALGORITHM = "AES/GCM/NoPadding";
-    private static final String WRAPPING_KEY_ALIAS = "WrappedKeyTestWrappingKeyAlias";
+    private static final String WRAPPED_KEY_ALIAS = "WrappedKeyTestWrappingKeyAlias";
     private static final int GENERATION_ID = 1;
     private static final int GCM_TAG_LENGTH_BYTES = 16;
     private static final int BITS_PER_BYTE = 8;
     private static final int GCM_TAG_LENGTH_BITS = GCM_TAG_LENGTH_BYTES * BITS_PER_BYTE;
+    private static final byte[] NULL_METADATA = null;
+    private static final byte[] NON_NULL_METADATA = "keyMetadata".getBytes(StandardCharsets.UTF_8);
 
     @After
     public void tearDown() throws Exception {
         KeyStore keyStore = KeyStore.getInstance(ANDROID_KEY_STORE_PROVIDER);
         keyStore.load(/*param=*/ null);
-        keyStore.deleteEntry(WRAPPING_KEY_ALIAS);
+        keyStore.deleteEntry(WRAPPED_KEY_ALIAS);
     }
 
+    // TODO: Add tests for non-null metadata
+
     @Test
-    public void fromSecretKey_createsWrappedKeyThatCanBeUnwrapped() throws Exception {
+    public void fromSecretKey_createsWrappedKeyThatCanBeUnwrapped_nullMetadata() throws Exception {
         PlatformEncryptionKey wrappingKey = new PlatformEncryptionKey(
                 GENERATION_ID, generateAndroidKeyStoreKey());
         SecretKey rawKey = generateKey();
 
-        WrappedKey wrappedKey = WrappedKey.fromSecretKey(wrappingKey, rawKey);
+        WrappedKey wrappedKey = WrappedKey.fromSecretKey(wrappingKey, rawKey, NULL_METADATA);
+
+        Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
+        cipher.init(
+                Cipher.UNWRAP_MODE,
+                wrappingKey.getKey(),
+                new GCMParameterSpec(GCM_TAG_LENGTH_BITS, wrappedKey.getNonce()));
+        SecretKey unwrappedKey = (SecretKey) cipher.unwrap(
+                wrappedKey.getKeyMaterial(), KEY_ALGORITHM, Cipher.SECRET_KEY);
+        assertEquals(rawKey, unwrappedKey);
+    }
+
+    @Test
+    public void fromSecretKey_createsWrappedKeyThatCanBeUnwrapped_nonNullMetadata()
+            throws Exception {
+        PlatformEncryptionKey wrappingKey = new PlatformEncryptionKey(
+                GENERATION_ID, generateAndroidKeyStoreKey());
+        SecretKey rawKey = generateKey();
+
+        WrappedKey wrappedKey = WrappedKey.fromSecretKey(wrappingKey, rawKey, NON_NULL_METADATA);
 
         Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
         cipher.init(
@@ -84,27 +109,47 @@
                 GENERATION_ID, generateAndroidKeyStoreKey());
         SecretKey rawKey = generateKey();
 
-        WrappedKey wrappedKey = WrappedKey.fromSecretKey(wrappingKey, rawKey);
+        WrappedKey wrappedKey = WrappedKey.fromSecretKey(wrappingKey, rawKey, NULL_METADATA);
 
         assertEquals(GENERATION_ID, wrappedKey.getPlatformKeyGenerationId());
     }
 
     @Test
-    public void decryptWrappedKeys_decryptsWrappedKeys() throws Exception {
+    public void decryptWrappedKeys_decryptsWrappedKeys_nullMetadata() throws Exception {
         String alias = "karlin";
         AndroidKeyStoreSecretKey platformKey = generateAndroidKeyStoreKey();
         SecretKey appKey = generateKey();
         WrappedKey wrappedKey = WrappedKey.fromSecretKey(
-                new PlatformEncryptionKey(GENERATION_ID, platformKey), appKey);
+                new PlatformEncryptionKey(GENERATION_ID, platformKey), appKey, NULL_METADATA);
         HashMap<String, WrappedKey> keysByAlias = new HashMap<>();
         keysByAlias.put(alias, wrappedKey);
 
-        Map<String, SecretKey> unwrappedKeys = WrappedKey.unwrapKeys(
+        Map<String, Pair<SecretKey, byte[]>> unwrappedKeys = WrappedKey.unwrapKeys(
                 new PlatformDecryptionKey(GENERATION_ID, platformKey), keysByAlias);
 
         assertEquals(1, unwrappedKeys.size());
         assertTrue(unwrappedKeys.containsKey(alias));
-        assertArrayEquals(appKey.getEncoded(), unwrappedKeys.get(alias).getEncoded());
+        assertArrayEquals(appKey.getEncoded(), unwrappedKeys.get(alias).first.getEncoded());
+        assertArrayEquals(null, unwrappedKeys.get(alias).second);
+    }
+
+    @Test
+    public void decryptWrappedKeys_decryptsWrappedKeys_nonNullMetadata() throws Exception {
+        String alias = "karlin";
+        AndroidKeyStoreSecretKey platformKey = generateAndroidKeyStoreKey();
+        SecretKey appKey = generateKey();
+        WrappedKey wrappedKey = WrappedKey.fromSecretKey(
+                new PlatformEncryptionKey(GENERATION_ID, platformKey), appKey, NON_NULL_METADATA);
+        HashMap<String, WrappedKey> keysByAlias = new HashMap<>();
+        keysByAlias.put(alias, wrappedKey);
+
+        Map<String, Pair<SecretKey, byte[]>> unwrappedKeys = WrappedKey.unwrapKeys(
+                new PlatformDecryptionKey(GENERATION_ID, platformKey), keysByAlias);
+
+        assertEquals(1, unwrappedKeys.size());
+        assertTrue(unwrappedKeys.containsKey(alias));
+        assertArrayEquals(appKey.getEncoded(), unwrappedKeys.get(alias).first.getEncoded());
+        assertArrayEquals(NON_NULL_METADATA, unwrappedKeys.get(alias).second);
     }
 
     @Test
@@ -113,11 +158,11 @@
         AndroidKeyStoreSecretKey platformKey = generateAndroidKeyStoreKey();
         SecretKey appKey = generateKey();
         WrappedKey wrappedKey = WrappedKey.fromSecretKey(
-                new PlatformEncryptionKey(GENERATION_ID, platformKey), appKey);
+                new PlatformEncryptionKey(GENERATION_ID, platformKey), appKey, NULL_METADATA);
         HashMap<String, WrappedKey> keysByAlias = new HashMap<>();
         keysByAlias.put(alias, wrappedKey);
 
-        Map<String, SecretKey> unwrappedKeys = WrappedKey.unwrapKeys(
+        Map<String, Pair<SecretKey, byte[]>> unwrappedKeys = WrappedKey.unwrapKeys(
                 new PlatformDecryptionKey(GENERATION_ID, generateAndroidKeyStoreKey()),
                 keysByAlias);
 
@@ -128,7 +173,8 @@
     public void decryptWrappedKeys_throwsIfPlatformKeyGenerationIdDoesNotMatch() throws Exception {
         AndroidKeyStoreSecretKey platformKey = generateAndroidKeyStoreKey();
         WrappedKey wrappedKey = WrappedKey.fromSecretKey(
-                new PlatformEncryptionKey(GENERATION_ID, platformKey), generateKey());
+                new PlatformEncryptionKey(GENERATION_ID, platformKey), generateKey(),
+                /*metadata=*/ null);
         HashMap<String, WrappedKey> keysByAlias = new HashMap<>();
         keysByAlias.put("benji", wrappedKey);
 
@@ -156,19 +202,11 @@
                 KEY_ALGORITHM,
                 ANDROID_KEY_STORE_PROVIDER);
         keyGenerator.init(new KeyGenParameterSpec.Builder(
-                WRAPPING_KEY_ALIAS,
+                WRAPPED_KEY_ALIAS,
                 KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
                 .setBlockModes(KeyProperties.BLOCK_MODE_GCM)
                 .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
                 .build());
         return (AndroidKeyStoreSecretKey) keyGenerator.generateKey();
     }
-
-    private PlatformDecryptionKey generatePlatformDecryptionKey() throws Exception {
-        return generatePlatformDecryptionKey(GENERATION_ID);
-    }
-
-    private PlatformDecryptionKey generatePlatformDecryptionKey(int generationId) throws Exception {
-        return new PlatformDecryptionKey(generationId, generateAndroidKeyStoreKey());
-    }
 }
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 880255d..9c03df8 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
@@ -55,12 +55,15 @@
 
     private static final String TEST_KEY_1_ALIAS = "key1";
     private static final byte[] TEST_KEY_1_BYTES = new byte[] { 66, 77, 88 };
+    private static final byte[] TEST_KEY_1_METADATA = new byte[] { 89, 87 };
 
     private static final String TEST_KEY_2_ALIAS = "key2";
     private static final byte[] TEST_KEY_2_BYTES = new byte[] { 99, 33, 11 };
+    private static final byte[] TEST_KEY_2_METADATA = new byte[] {};
 
     private static final String TEST_KEY_3_ALIAS = "key3";
     private static final byte[] TEST_KEY_3_BYTES = new byte[] { 2, 8, 100 };
+    private static final byte[] TEST_KEY_3_METADATA = new byte[] { 121 };
 
     @Test
     public void roundTrip_persistsCounterId() throws Exception {
@@ -144,6 +147,17 @@
     }
 
     @Test
+    public void roundTripKeys_0_persistsKeyMetadata_absent() throws Exception {
+        assertThat(roundTripKeys(/*withKeyMetadata=*/ false).get(0).getMetadata()).isEqualTo(null);
+    }
+
+    @Test
+    public void roundTripKeys_0_persistsKeyMetadata_present() throws Exception {
+        assertThat(roundTripKeys(/*withKeyMetadata=*/ true).get(0).getMetadata())
+                .isEqualTo(TEST_KEY_1_METADATA);
+    }
+
+    @Test
     public void roundTripKeys_1_persistsAlias() throws Exception {
         assertThat(roundTripKeys().get(1).getAlias()).isEqualTo(TEST_KEY_2_ALIAS);
     }
@@ -154,6 +168,17 @@
     }
 
     @Test
+    public void roundTripKeys_1_persistsKeyMetadata_absent() throws Exception {
+        assertThat(roundTripKeys(/*withKeyMetadata=*/ false).get(1).getMetadata()).isEqualTo(null);
+    }
+
+    @Test
+    public void roundTripKeys_1_persistsKeyMetadata_present() throws Exception {
+        assertThat(roundTripKeys(/*withKeyMetadata=*/ true).get(1).getMetadata())
+                .isEqualTo(TEST_KEY_2_METADATA);
+    }
+
+    @Test
     public void roundTripKeys_2_persistsAlias() throws Exception {
         assertThat(roundTripKeys().get(2).getAlias()).isEqualTo(TEST_KEY_3_ALIAS);
     }
@@ -164,28 +189,74 @@
     }
 
     @Test
-    public void serialize_doesNotThrowForTestSnapshot() throws Exception {
+    public void roundTripKeys_2_persistsKeyMetadata_absent() throws Exception {
+        assertThat(roundTripKeys(/*withKeyMetadata=*/ false).get(2).getMetadata()).isEqualTo(null);
+    }
+
+    @Test
+    public void roundTripKeys_2_persistsKeyMetadata_present() throws Exception {
+        assertThat(roundTripKeys(/*withKeyMetadata=*/ true).get(2).getMetadata())
+                .isEqualTo(TEST_KEY_3_METADATA);
+    }
+
+    @Test
+    public void serialize_doesNotThrowForTestSnapshotWithoutKeyMetadata() throws Exception {
         KeyChainSnapshotSerializer.serialize(
-                createTestKeyChainSnapshot(), new ByteArrayOutputStream());
+                createTestKeyChainSnapshot(/*withKeyMetadata=*/ false),
+                new ByteArrayOutputStream());
+    }
+
+    @Test
+    public void serialize_doesNotThrowForTestSnapshotWithKeyMetadata() throws Exception {
+        KeyChainSnapshotSerializer.serialize(
+                createTestKeyChainSnapshotWithKeyMetadata(), new ByteArrayOutputStream());
     }
 
     private static List<WrappedApplicationKey> roundTripKeys() throws Exception {
         return roundTrip().getWrappedApplicationKeys();
     }
 
+    private static List<WrappedApplicationKey> roundTripKeys(boolean withKeyMetadata)
+            throws Exception {
+        return roundTrip(withKeyMetadata).getWrappedApplicationKeys();
+    }
+
     private static KeyChainProtectionParams roundTripParams() throws Exception {
-        return roundTrip().getKeyChainProtectionParams().get(0);
+        return roundTrip(/*withKeyMetadata=*/ false).getKeyChainProtectionParams().get(0);
     }
 
     public static KeyChainSnapshot roundTrip() throws Exception {
-        KeyChainSnapshot snapshot = createTestKeyChainSnapshot();
+        return roundTrip(/*withKeyMetadata=*/ false);
+    }
+
+    public static KeyChainSnapshot roundTrip(boolean withKeyMetadata) throws Exception {
+        KeyChainSnapshot snapshot = createTestKeyChainSnapshot(withKeyMetadata);
         ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
         KeyChainSnapshotSerializer.serialize(snapshot, byteArrayOutputStream);
         return KeyChainSnapshotDeserializer.deserialize(
                 new ByteArrayInputStream(byteArrayOutputStream.toByteArray()));
     }
 
-    private static KeyChainSnapshot createTestKeyChainSnapshot() throws Exception {
+    private static KeyChainSnapshot createTestKeyChainSnapshot(boolean withKeyMetadata)
+            throws Exception {
+        KeyChainSnapshot.Builder builder = new KeyChainSnapshot.Builder()
+                .setCounterId(COUNTER_ID)
+                .setSnapshotVersion(SNAPSHOT_VERSION)
+                .setServerParams(SERVER_PARAMS)
+                .setMaxAttempts(MAX_ATTEMPTS)
+                .setEncryptedRecoveryKeyBlob(KEY_BLOB)
+                .setKeyChainProtectionParams(createKeyChainProtectionParamsList())
+                .setTrustedHardwareCertPath(CERT_PATH);
+        if (withKeyMetadata) {
+            builder.setWrappedApplicationKeys(createKeysWithMetadata());
+        } else {
+            builder.setWrappedApplicationKeys(createKeysWithoutMetadata());
+        }
+        return builder.build();
+    }
+
+    private static KeyChainSnapshot createTestKeyChainSnapshotWithKeyMetadata()
+            throws Exception {
         return new KeyChainSnapshot.Builder()
                 .setCounterId(COUNTER_ID)
                 .setSnapshotVersion(SNAPSHOT_VERSION)
@@ -193,16 +264,24 @@
                 .setMaxAttempts(MAX_ATTEMPTS)
                 .setEncryptedRecoveryKeyBlob(KEY_BLOB)
                 .setKeyChainProtectionParams(createKeyChainProtectionParamsList())
-                .setWrappedApplicationKeys(createKeys())
+                .setWrappedApplicationKeys(createKeysWithMetadata())
                 .setTrustedHardwareCertPath(CERT_PATH)
                 .build();
     }
 
-    private static List<WrappedApplicationKey> createKeys() {
+    private static List<WrappedApplicationKey> createKeysWithoutMetadata() {
         ArrayList<WrappedApplicationKey> keyList = new ArrayList<>();
-        keyList.add(createKey(TEST_KEY_1_ALIAS, TEST_KEY_1_BYTES));
-        keyList.add(createKey(TEST_KEY_2_ALIAS, TEST_KEY_2_BYTES));
-        keyList.add(createKey(TEST_KEY_3_ALIAS, TEST_KEY_3_BYTES));
+        keyList.add(createKey(TEST_KEY_1_ALIAS, TEST_KEY_1_BYTES, /*metadata=*/ null));
+        keyList.add(createKey(TEST_KEY_2_ALIAS, TEST_KEY_2_BYTES, /*metadata=*/ null));
+        keyList.add(createKey(TEST_KEY_3_ALIAS, TEST_KEY_3_BYTES, /*metadata=*/ null));
+        return keyList;
+    }
+
+    private static List<WrappedApplicationKey> createKeysWithMetadata() {
+        ArrayList<WrappedApplicationKey> keyList = new ArrayList<>();
+        keyList.add(createKey(TEST_KEY_1_ALIAS, TEST_KEY_1_BYTES, TEST_KEY_1_METADATA));
+        keyList.add(createKey(TEST_KEY_2_ALIAS, TEST_KEY_2_BYTES, TEST_KEY_2_METADATA));
+        keyList.add(createKey(TEST_KEY_3_ALIAS, TEST_KEY_3_BYTES, TEST_KEY_3_METADATA));
         return keyList;
     }
 
@@ -221,10 +300,13 @@
         return keyChainProtectionParamsList;
     }
 
-    private static WrappedApplicationKey createKey(String alias, byte[] bytes) {
-        return new WrappedApplicationKey.Builder()
+    private static WrappedApplicationKey createKey(String alias, byte[] bytes, byte[] metadata) {
+        WrappedApplicationKey.Builder builder = new WrappedApplicationKey.Builder()
                 .setAlias(alias)
-                .setEncryptedKeyMaterial(bytes)
-                .build();
+                .setEncryptedKeyMaterial(bytes);
+        if (metadata != null) {
+            builder.setMetadata(metadata);
+        }
+        return builder.build();
     }
 }
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 7130b42..35215c3 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
@@ -60,6 +60,7 @@
     private static final String TEST_ROOT_ALIAS = "root_cert_alias";
     private static final byte[] TEST_CERT_PATH = "test-cert-path".getBytes(UTF_8);
     private static final long TEST_CERT_SERIAL = 1000L;
+    private static final byte[] TEST_KEY_METADATA = "test-key-metadata".getBytes(UTF_8);
 
     private static final String SQL_CREATE_V2_TABLE_KEYS =
             "CREATE TABLE " + KeysEntry.TABLE_NAME + "( "
@@ -120,14 +121,14 @@
     @Test
     public void onCreate() throws Exception {
         mDatabaseHelper.onCreate(mDatabase);
-        checkAllColumns();
+        checkAllColumns_latest();
     }
 
     @Test
     public void onUpgrade_beforeV2() throws Exception {
         mDatabaseHelper.onUpgrade(mDatabase, /*oldVersion=*/ 1,
                 RecoverableKeyStoreDbHelper.DATABASE_VERSION);
-        checkAllColumns();
+        checkAllColumns_latest();
     }
 
     @Test
@@ -135,11 +136,11 @@
         createV2Tables();
         mDatabaseHelper.onUpgrade(mDatabase, /*oldVersion=*/ 2,
                 RecoverableKeyStoreDbHelper.DATABASE_VERSION);
-        checkAllColumns();
+        checkAllColumns_latest();
     }
 
     @Test
-    public void onUpgrade_v2_to_v3_to_v4() throws Exception {
+    public void onUpgrade_v2_to_v3_to_v4_to_latest() throws Exception {
         createV2Tables();
 
         assertThat(isRootOfTrustTableAvailable()).isFalse(); // V2 doesn't have the table;
@@ -148,9 +149,12 @@
 
         assertThat(isRootOfTrustTableAvailable()).isFalse(); // V3 doesn't have the table;
 
-        mDatabaseHelper.onUpgrade(mDatabase, /*oldVersion=*/ 3,
+        mDatabaseHelper.onUpgrade(mDatabase, /*oldVersion=*/ 3, /*newVersion=*/ 4);
+        checkAllColumns_v4();
+
+        mDatabaseHelper.onUpgrade(mDatabase, /*oldVersion=*/ 4,
                 RecoverableKeyStoreDbHelper.DATABASE_VERSION);
-        checkAllColumns();
+        checkAllColumns_latest();
     }
 
     private boolean isRootOfTrustTableAvailable() {
@@ -160,11 +164,11 @@
         values.put(RootOfTrustEntry.COLUMN_NAME_ROOT_ALIAS, TEST_ROOT_ALIAS);
         values.put(RootOfTrustEntry.COLUMN_NAME_CERT_PATH, TEST_CERT_PATH);
         values.put(RootOfTrustEntry.COLUMN_NAME_CERT_SERIAL, TEST_CERT_SERIAL);
-        return mDatabase.insert(RootOfTrustEntry.TABLE_NAME, /*nullColumnHack=*/ null, values)
+        return mDatabase.replace(RootOfTrustEntry.TABLE_NAME, /*nullColumnHack=*/ null, values)
                 > -1;
     }
 
-    private void checkAllColumns() throws Exception {
+    private void checkAllColumns_v4() throws Exception {
         // Check the table containing encrypted application keys
         ContentValues values = new ContentValues();
         values.put(KeysEntry.COLUMN_NAME_USER_ID, TEST_USER_ID);
@@ -175,7 +179,7 @@
         values.put(KeysEntry.COLUMN_NAME_GENERATION_ID, TEST_GENERATION_ID);
         values.put(KeysEntry.COLUMN_NAME_LAST_SYNCED_AT, TEST_LAST_SYNCED_AT);
         values.put(KeysEntry.COLUMN_NAME_RECOVERY_STATUS, TEST_RECOVERY_STATUS);
-        assertThat(mDatabase.insert(KeysEntry.TABLE_NAME, /*nullColumnHack=*/ null, values))
+        assertThat(mDatabase.replace(KeysEntry.TABLE_NAME, /*nullColumnHack=*/ null, values))
                 .isGreaterThan(-1L);
 
         // Check the table about user metadata
@@ -183,7 +187,8 @@
         values.put(UserMetadataEntry.COLUMN_NAME_USER_ID, TEST_USER_ID);
         values.put(UserMetadataEntry.COLUMN_NAME_PLATFORM_KEY_GENERATION_ID,
                 TEST_PLATFORM_KEY_GENERATION_ID);
-        assertThat(mDatabase.insert(UserMetadataEntry.TABLE_NAME, /*nullColumnHack=*/ null, values))
+        assertThat(
+                mDatabase.replace(UserMetadataEntry.TABLE_NAME, /*nullColumnHack=*/ null, values))
                 .isGreaterThan(-1L);
 
         // Check the table about recovery service metadata
@@ -202,11 +207,32 @@
         values.put(RecoveryServiceMetadataEntry.COLUMN_NAME_CERT_PATH, TEST_CERT_PATH);
         values.put(RecoveryServiceMetadataEntry.COLUMN_NAME_CERT_SERIAL, TEST_CERT_SERIAL);
         assertThat(
-                mDatabase.insert(RecoveryServiceMetadataEntry.TABLE_NAME, /*nullColumnHack=*/ null,
+                mDatabase.replace(RecoveryServiceMetadataEntry.TABLE_NAME, /*nullColumnHack=*/ null,
                         values))
                 .isGreaterThan(-1L);
 
         // Check the table about recovery service and root of trust data introduced in V4
         assertThat(isRootOfTrustTableAvailable()).isTrue();
     }
+
+    private void checkAllColumns_latest() throws Exception {
+        // Check all columns of the previous version first.
+        checkAllColumns_v4();
+
+        ContentValues values = new ContentValues();
+        values.put(KeysEntry.COLUMN_NAME_USER_ID, TEST_USER_ID);
+        values.put(KeysEntry.COLUMN_NAME_UID, TEST_UID);
+        values.put(KeysEntry.COLUMN_NAME_ALIAS, TEST_ALIAS);
+        values.put(KeysEntry.COLUMN_NAME_NONCE, TEST_NONCE);
+        values.put(KeysEntry.COLUMN_NAME_WRAPPED_KEY, TEST_WRAPPED_KEY);
+        values.put(KeysEntry.COLUMN_NAME_GENERATION_ID, TEST_GENERATION_ID);
+        values.put(KeysEntry.COLUMN_NAME_LAST_SYNCED_AT, TEST_LAST_SYNCED_AT);
+        values.put(KeysEntry.COLUMN_NAME_RECOVERY_STATUS, TEST_RECOVERY_STATUS);
+
+        // This column is added when upgrading from v4 to v5
+        values.put(KeysEntry.COLUMN_NAME_KEY_METADATA, TEST_KEY_METADATA);
+
+        assertThat(mDatabase.replace(KeysEntry.TABLE_NAME, /*nullColumnHack=*/ null, values))
+                .isGreaterThan(-1L);
+    }
 }
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 6a26f8c..7de9ffc 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
@@ -80,25 +80,33 @@
     public void insertKey_replacesOldKey() {
         int userId = 12;
         int uid = 10009;
-        String alias = "test";
-        WrappedKey oldWrappedKey = new WrappedKey(
-                getUtf8Bytes("nonce1"),
-                getUtf8Bytes("keymaterial1"),
-                /*platformKeyGenerationId=*/ 1);
-        mRecoverableKeyStoreDb.insertKey(
-                userId, uid, alias, oldWrappedKey);
-        byte[] nonce = getUtf8Bytes("nonce2");
-        byte[] keyMaterial = getUtf8Bytes("keymaterial2");
-        WrappedKey newWrappedKey = new WrappedKey(
-                nonce, keyMaterial, /*platformKeyGenerationId=*/2);
+        String alias = "test-alias";
 
-        mRecoverableKeyStoreDb.insertKey(
-                userId, uid, alias, newWrappedKey);
+        byte[] nonce = getUtf8Bytes("nonce1");
+        byte[] keyMaterial = getUtf8Bytes("keymaterial1");
+        byte[] keyMetadata = null;
+        int generationId = 1;
+        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, keyMetadata, generationId);
+        mRecoverableKeyStoreDb.insertKey(userId, uid, alias, wrappedKey);
 
         WrappedKey retrievedKey = mRecoverableKeyStoreDb.getKey(uid, alias);
         assertArrayEquals(nonce, retrievedKey.getNonce());
         assertArrayEquals(keyMaterial, retrievedKey.getKeyMaterial());
-        assertEquals(2, retrievedKey.getPlatformKeyGenerationId());
+        assertArrayEquals(keyMetadata, retrievedKey.getKeyMetadata());
+        assertEquals(generationId, retrievedKey.getPlatformKeyGenerationId());
+
+        nonce = getUtf8Bytes("nonce2");
+        keyMaterial = getUtf8Bytes("keymaterial2");
+        keyMetadata = getUtf8Bytes("keymetadata2");
+        generationId = 2;
+        wrappedKey = new WrappedKey(nonce, keyMaterial, keyMetadata, generationId);
+        mRecoverableKeyStoreDb.insertKey(userId, uid, alias, wrappedKey);
+
+        retrievedKey = mRecoverableKeyStoreDb.getKey(uid, alias);
+        assertArrayEquals(nonce, retrievedKey.getNonce());
+        assertArrayEquals(keyMaterial, retrievedKey.getKeyMaterial());
+        assertArrayEquals(keyMetadata, retrievedKey.getKeyMetadata());
+        assertEquals(generationId, retrievedKey.getPlatformKeyGenerationId());
     }
 
     @Test
@@ -108,10 +116,12 @@
         WrappedKey key1 = new WrappedKey(
                 getUtf8Bytes("nonce1"),
                 getUtf8Bytes("key1"),
+                /*metadata=*/ null,
                 /*platformKeyGenerationId=*/ 1);
         WrappedKey key2 = new WrappedKey(
                 getUtf8Bytes("nonce2"),
                 getUtf8Bytes("key2"),
+                /*metadata=*/ null,
                 /*platformKeyGenerationId=*/ 1);
 
         mRecoverableKeyStoreDb.insertKey(userId, /*uid=*/ 1, alias, key1);
@@ -133,6 +143,7 @@
         WrappedKey key = new WrappedKey(
                 getUtf8Bytes("nonce1"),
                 getUtf8Bytes("key1"),
+                /*metadata=*/ null,
                 /*platformKeyGenerationId=*/ 1);
         mRecoverableKeyStoreDb.insertKey(userId, uid, alias, key);
 
@@ -158,13 +169,16 @@
         String alias = "test";
         byte[] nonce = getUtf8Bytes("nonce");
         byte[] keyMaterial = getUtf8Bytes("keymaterial");
-        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, generationId, 120);
+        byte[] keyMetadata = getUtf8Bytes("keymetametametadata");
+
+        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, keyMetadata, generationId, 120);
         mRecoverableKeyStoreDb.insertKey(userId, uid, alias, wrappedKey);
 
         WrappedKey retrievedKey = mRecoverableKeyStoreDb.getKey(uid, alias);
 
         assertArrayEquals(nonce, retrievedKey.getNonce());
         assertArrayEquals(keyMaterial, retrievedKey.getKeyMaterial());
+        assertArrayEquals(keyMetadata, retrievedKey.getKeyMetadata());
         assertEquals(generationId, retrievedKey.getPlatformKeyGenerationId());
         assertEquals(status,retrievedKey.getRecoveryStatus());
     }
@@ -174,20 +188,37 @@
         int userId = 12;
         int uid = 1009;
         int generationId = 6;
-        String alias = "test";
-        byte[] nonce = getUtf8Bytes("nonce");
-        byte[] keyMaterial = getUtf8Bytes("keymaterial");
-        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, generationId);
-        mRecoverableKeyStoreDb.insertKey(userId, uid, alias, wrappedKey);
+
+        String alias1 = "alias1";
+        byte[] nonce1 = getUtf8Bytes("nonce1");
+        byte[] keyMaterial1 = getUtf8Bytes("keymaterial1");
+        byte[] keyMetadata1 = getUtf8Bytes("keyallmetadata1");
+        WrappedKey wrappedKey1 = new WrappedKey(nonce1, keyMaterial1, keyMetadata1, generationId);
+        mRecoverableKeyStoreDb.insertKey(userId, uid, alias1, wrappedKey1);
+
+        String alias2 = "alias2";
+        byte[] nonce2 = getUtf8Bytes("nonce2");
+        byte[] keyMaterial2 = getUtf8Bytes("keymaterial2");
+        byte[] keyMetadata2 = null;
+        WrappedKey wrappedKey2 = new WrappedKey(nonce2, keyMaterial2, keyMetadata2, generationId);
+        mRecoverableKeyStoreDb.insertKey(userId, uid, alias2, wrappedKey2);
 
         Map<String, WrappedKey> keys = mRecoverableKeyStoreDb.getAllKeys(userId, uid, generationId);
+        assertEquals(2, keys.size());
 
-        assertEquals(1, keys.size());
-        assertTrue(keys.containsKey(alias));
-        WrappedKey retrievedKey = keys.get(alias);
-        assertArrayEquals(nonce, retrievedKey.getNonce());
-        assertArrayEquals(keyMaterial, retrievedKey.getKeyMaterial());
-        assertEquals(generationId, retrievedKey.getPlatformKeyGenerationId());
+        assertTrue(keys.containsKey(alias1));
+        WrappedKey retrievedKey1 = keys.get(alias1);
+        assertArrayEquals(nonce1, retrievedKey1.getNonce());
+        assertArrayEquals(keyMaterial1, retrievedKey1.getKeyMaterial());
+        assertArrayEquals(keyMetadata1, retrievedKey1.getKeyMetadata());
+        assertEquals(generationId, retrievedKey1.getPlatformKeyGenerationId());
+
+        assertTrue(keys.containsKey(alias2));
+        WrappedKey retrievedKey2 = keys.get(alias2);
+        assertArrayEquals(nonce2, retrievedKey2.getNonce());
+        assertArrayEquals(keyMaterial2, retrievedKey2.getKeyMaterial());
+        assertArrayEquals(keyMetadata2, retrievedKey2.getKeyMetadata());
+        assertEquals(generationId, retrievedKey2.getPlatformKeyGenerationId());
     }
 
     @Test
@@ -197,6 +228,7 @@
         WrappedKey wrappedKey = new WrappedKey(
                 getUtf8Bytes("nonce"),
                 getUtf8Bytes("keymaterial"),
+                /*metadata=*/ null,
                 /*platformKeyGenerationId=*/ 5);
         mRecoverableKeyStoreDb.insertKey(
                 userId, uid, /*alias=*/ "test", wrappedKey);
@@ -212,7 +244,8 @@
         int generationId = 12;
         int uid = 10009;
         WrappedKey wrappedKey = new WrappedKey(
-                getUtf8Bytes("nonce"), getUtf8Bytes("keymaterial"), generationId);
+                getUtf8Bytes("nonce"), getUtf8Bytes("keymaterial"), /*metadata=*/ null,
+                generationId);
         mRecoverableKeyStoreDb.insertKey(
                 /*userId=*/ 1, uid, /*alias=*/ "test", wrappedKey);
 
@@ -255,7 +288,10 @@
         String alias = "test";
         byte[] nonce = getUtf8Bytes("nonce");
         byte[] keyMaterial = getUtf8Bytes("keymaterial");
-        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, generationId, status);
+        byte[] keyMetadata = null;
+
+        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, keyMetadata, generationId,
+                status);
         mRecoverableKeyStoreDb.insertKey(userId, uid, alias, wrappedKey);
 
         WrappedKey retrievedKey = mRecoverableKeyStoreDb.getKey(uid, alias);
@@ -279,12 +315,16 @@
         String alias3 = "test3";
         byte[] nonce = getUtf8Bytes("nonce");
         byte[] keyMaterial = getUtf8Bytes("keymaterial");
+        byte[] keyMetadata = null;
 
-        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, generationId, status);
+        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, keyMetadata, generationId,
+                status);
         mRecoverableKeyStoreDb.insertKey(userId, uid, alias2, wrappedKey);
-        WrappedKey wrappedKey2 = new WrappedKey(nonce, keyMaterial, generationId, status);
-        mRecoverableKeyStoreDb.insertKey(userId, uid, alias3, wrappedKey);
-        WrappedKey wrappedKeyWithDefaultStatus = new WrappedKey(nonce, keyMaterial, generationId);
+        WrappedKey wrappedKey2 = new WrappedKey(nonce, keyMaterial, keyMetadata, generationId,
+                status);
+        mRecoverableKeyStoreDb.insertKey(userId, uid, alias3, wrappedKey2);
+        WrappedKey wrappedKeyWithDefaultStatus = new WrappedKey(nonce, keyMaterial, keyMetadata,
+                generationId);
         mRecoverableKeyStoreDb.insertKey(userId, uid, alias, wrappedKeyWithDefaultStatus);
 
         Map<String, Integer> statuses = mRecoverableKeyStoreDb.getStatusForAllKeys(uid);
@@ -333,7 +373,10 @@
         String alias = "test";
         byte[] nonce = getUtf8Bytes("nonce");
         byte[] keyMaterial = getUtf8Bytes("keymaterial");
-        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, generationId, status);
+        byte[] keyMetadata = null;
+
+        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, keyMetadata, generationId,
+                status);
         mRecoverableKeyStoreDb.insertKey(userId, uid, alias, wrappedKey);
 
         WrappedKey retrievedKey = mRecoverableKeyStoreDb.getKey(uid, alias);
@@ -357,7 +400,10 @@
         String alias = "test";
         byte[] nonce = getUtf8Bytes("nonce");
         byte[] keyMaterial = getUtf8Bytes("keymaterial");
-        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, generationId, status);
+        byte[] keyMetadata = null;
+
+        WrappedKey wrappedKey = new WrappedKey(nonce, keyMaterial, keyMetadata, generationId,
+                status);
         mRecoverableKeyStoreDb.insertKey(userId, uid, alias, wrappedKey);
 
         WrappedKey retrievedKey = mRecoverableKeyStoreDb.getKey(uid, alias);
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 ce59e6e..85909d5 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
@@ -276,6 +276,7 @@
         assertEquals(a.mRestrictedAccountType, b.mRestrictedAccountType);
         assertEquals(a.mRequiredAccountType, b.mRequiredAccountType);
         assertEquals(a.mOverlayTarget, b.mOverlayTarget);
+        assertEquals(a.mOverlayTargetName, b.mOverlayTargetName);
         assertEquals(a.mOverlayCategory, b.mOverlayCategory);
         assertEquals(a.mOverlayPriority, b.mOverlayPriority);
         assertEquals(a.mOverlayIsStatic, b.mOverlayIsStatic);
@@ -545,6 +546,7 @@
 
         pkg.mOverlayCategory = "foo24";
         pkg.mOverlayIsStatic = true;
+        pkg.mOverlayTargetName = "foo26";
 
         pkg.baseHardwareAccelerated = true;
         pkg.coreApp = true;
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
index 8be63fc..319ffed 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
@@ -31,6 +31,7 @@
 import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_RIGHT;
 import static com.android.server.wm.ActivityStack.ActivityState.INITIALIZING;
 import static com.android.server.wm.ActivityStack.ActivityState.PAUSING;
+import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
 import static com.android.server.wm.ActivityStack.ActivityState.STOPPED;
 import static com.android.server.wm.ActivityStack.REMOVE_TASK_MODE_MOVING;
 
@@ -75,6 +76,9 @@
         mStack = (TestActivityStack) new StackBuilder(mRootActivityContainer).build();
         mTask = mStack.getChildAt(0);
         mActivity = mTask.getTopActivity();
+
+        doReturn(false).when(mService).isBooting();
+        doReturn(true).when(mService).isBooted();
     }
 
     @Test
@@ -117,22 +121,23 @@
 
         mActivity.setState(STOPPED, "testPausingWhenVisibleFromStopped");
 
-        // The activity is in the focused stack so it should not move to paused.
+        // The activity is in the focused stack so it should be resumed.
         mActivity.makeVisibleIfNeeded(null /* starting */, true /* reportToClient */);
-        assertTrue(mActivity.isState(STOPPED));
+        assertTrue(mActivity.isState(RESUMED));
         assertFalse(pauseFound.value);
 
-        // Clear focused stack
-        final ActivityDisplay display = mRootActivityContainer.getDefaultDisplay();
-        when(display.getFocusedStack()).thenReturn(null);
+        // Make the activity non focusable
+        mActivity.setState(STOPPED, "testPausingWhenVisibleFromStopped");
+        doReturn(false).when(mActivity).isFocusable();
 
-        // In the unfocused stack, the activity should move to paused.
+        // If the activity is not focusable, it should move to paused.
         mActivity.makeVisibleIfNeeded(null /* starting */, true /* reportToClient */);
         assertTrue(mActivity.isState(PAUSING));
         assertTrue(pauseFound.value);
 
         // Make sure that the state does not change for current non-stopping states.
         mActivity.setState(INITIALIZING, "testPausingWhenVisibleFromStopped");
+        doReturn(true).when(mActivity).isFocusable();
 
         mActivity.makeVisibleIfNeeded(null /* starting */, true /* reportToClient */);
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
index 68df87e..ea8f33f 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
@@ -55,6 +55,7 @@
 import android.hardware.display.DisplayManagerGlobal;
 import android.os.Handler;
 import android.os.Looper;
+import android.os.PowerManager;
 import android.os.Process;
 import android.os.UserHandle;
 import android.service.voice.IVoiceInteractionSession;
@@ -425,6 +426,7 @@
             doReturn(mock(IPackageManager.class)).when(this).getPackageManager();
             // allow background activity starts by default
             doReturn(true).when(this).isBackgroundActivityStartsEnabled();
+            doNothing().when(this).updateCpuStats();
         }
 
         void setup(IntentFirewall intentFirewall, PendingIntentController intentController,
@@ -580,6 +582,8 @@
             doNothing().when(this).acquireLaunchWakelock();
             doReturn(mKeyguardController).when(this).getKeyguardController();
 
+            mLaunchingActivity = mock(PowerManager.WakeLock.class);
+
             initialize();
         }
 
diff --git a/telephony/java/android/provider/Telephony.java b/telephony/java/android/provider/Telephony.java
index c115a4b..15abdb7 100644
--- a/telephony/java/android/provider/Telephony.java
+++ b/telephony/java/android/provider/Telephony.java
@@ -2019,6 +2019,12 @@
 
     /**
      * Helper functions for the "threads" table used by MMS and SMS.
+     *
+     * Thread IDs are determined by the participants in a conversation and can be used to match
+     * both SMS and MMS messages.
+     *
+     * To avoid issues where applications might cache a thread ID, the thread ID of a deleted thread
+     * must not be reused to point at a new thread.
      */
     public static final class Threads implements ThreadsColumns {
 
@@ -2072,14 +2078,10 @@
         }
 
         /**
-         * Given the recipients list and subject of an unsaved message,
-         * return its thread ID.  If the message starts a new thread,
-         * allocate a new thread ID.  Otherwise, use the appropriate
-         * existing thread ID.
-         *
-         * <p>Find the thread ID of the same set of recipients (in any order,
-         * without any additions). If one is found, return it. Otherwise,
-         * return a unique thread ID.</p>
+         * Given a set of recipients return its thread ID.
+         * <p>
+         * If a thread exists containing the provided participants, return its thread ID. Otherwise,
+         * this will create a new thread containing the provided participants and return its ID.
          */
         public static long getOrCreateThreadId(
                 Context context, Set<String> recipients) {
diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java
index e77042d..ad3ca6d 100644
--- a/telephony/java/android/telephony/SignalStrength.java
+++ b/telephony/java/android/telephony/SignalStrength.java
@@ -86,11 +86,6 @@
     CellSignalStrengthTdscdma mTdscdma;
     CellSignalStrengthLte mLte;
 
-    /** Parameters from the framework */
-    @UnsupportedAppUsage
-    private int mLteRsrpBoost; // offset to be reduced from the rsrp threshold while calculating
-                                // signal strength level
-
     /**
      * Create a new SignalStrength from a intent notifier Bundle
      *
@@ -140,7 +135,6 @@
         mWcdma = wcdma;
         mTdscdma = tdscdma;
         mLte = lte;
-        mLteRsrpBoost = 0;
     }
 
     /**
@@ -211,7 +205,6 @@
 
     /** @hide */
     public void updateLevel(PersistableBundle cc, ServiceState ss) {
-        mLteRsrpBoost = ss.getLteEarfcnRsrpBoost();
         mCdma.updateLevel(cc, ss);
         mGsm.updateLevel(cc, ss);
         mWcdma.updateLevel(cc, ss);
@@ -241,7 +234,6 @@
         mWcdma = new CellSignalStrengthWcdma(s.mWcdma);
         mTdscdma = new CellSignalStrengthTdscdma(s.mTdscdma);
         mLte = new CellSignalStrengthLte(s.mLte);
-        mLteRsrpBoost = s.mLteRsrpBoost;
     }
 
     /**
@@ -258,7 +250,6 @@
         mWcdma = in.readParcelable(CellSignalStrengthWcdma.class.getClassLoader());
         mTdscdma = in.readParcelable(CellSignalStrengthTdscdma.class.getClassLoader());
         mLte = in.readParcelable(CellSignalStrengthLte.class.getClassLoader());
-        mLteRsrpBoost = in.readInt();
     }
 
     /**
@@ -270,8 +261,6 @@
         out.writeParcelable(mWcdma, flags);
         out.writeParcelable(mTdscdma, flags);
         out.writeParcelable(mLte, flags);
-
-        out.writeInt(mLteRsrpBoost);
     }
 
     /**
@@ -384,11 +373,6 @@
         return mLte.getCqi();
     }
 
-    /** @hide */
-    public int getLteRsrpBoost() {
-        return mLteRsrpBoost;
-    }
-
     /**
      * Retrieve an abstract level value for the overall signal strength.
      *
@@ -616,7 +600,7 @@
      */
     @Override
     public int hashCode() {
-        return Objects.hash(mCdma, mGsm, mWcdma, mTdscdma, mLte, mLteRsrpBoost);
+        return Objects.hash(mCdma, mGsm, mWcdma, mTdscdma, mLte);
     }
 
     /**
@@ -632,8 +616,7 @@
             && mGsm.equals(s.mGsm)
             && mWcdma.equals(s.mWcdma)
             && mTdscdma.equals(s.mTdscdma)
-            && mLte.equals(s.mLte)
-            && mLteRsrpBoost == s.mLteRsrpBoost;
+            && mLte.equals(s.mLte);
     }
 
     /**
@@ -647,7 +630,6 @@
             .append(",mWcdma=").append(mWcdma)
             .append(",mTdscdma=").append(mTdscdma)
             .append(",mLte=").append(mLte)
-            .append(",mLteRsrpBoost=").append(mLteRsrpBoost)
             .append(",primary=").append(getPrimary().getClass().getSimpleName())
             .append("}")
             .toString();
@@ -666,8 +648,6 @@
         mWcdma = m.getParcelable("Wcdma");
         mTdscdma = m.getParcelable("Tdscdma");
         mLte = m.getParcelable("Lte");
-
-        mLteRsrpBoost = m.getInt("LteRsrpBoost");
     }
 
     /**
@@ -683,8 +663,6 @@
         m.putParcelable("Wcdma", mWcdma);
         m.putParcelable("Tdscdma", mTdscdma);
         m.putParcelable("Lte", mLte);
-
-        m.putInt("LteRsrpBoost", mLteRsrpBoost);
     }
 
     /**
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 75b1177..8053353 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -10074,4 +10074,33 @@
         }
         return ret;
     }
+
+    /**
+     * Enable or disable a logical modem stack. When a logical modem is disabled, the corresponding
+     * SIM will still be visible to the user but its mapping modem will not have any radio activity.
+     * For example, we will disable a modem when user or system believes the corresponding SIM
+     * is temporarily not needed (e.g. out of coverage), and will enable it back on when needed.
+     *
+     * Requires that the calling app has permission
+     * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}.
+     * @param slotIndex which corresponding modem will operate on.
+     * @param enable whether to enable or disable the modem stack.
+     * @return whether the operation is successful.
+     *
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+    public boolean enableModemForSlot(int slotIndex, boolean enable) {
+        boolean ret = false;
+        try {
+            ITelephony telephony = getITelephony();
+            if (telephony != null) {
+                ret = telephony.enableModemForSlot(slotIndex, enable);
+            }
+        } catch (RemoteException ex) {
+            Log.e(TAG, "enableModem RemoteException", ex);
+        }
+        return ret;
+    }
 }
diff --git a/telephony/java/android/telephony/euicc/EuiccManager.java b/telephony/java/android/telephony/euicc/EuiccManager.java
index 42a788d..0e5c71d 100644
--- a/telephony/java/android/telephony/euicc/EuiccManager.java
+++ b/telephony/java/android/telephony/euicc/EuiccManager.java
@@ -361,7 +361,7 @@
     public boolean isEnabled() {
         // In the future, this may reach out to IEuiccController (if non-null) to check any dynamic
         // restrictions.
-        return getIEuiccController() != null;
+        return getIEuiccController() != null && mCardId != TelephonyManager.INVALID_CARD_ID;
     }
 
     /**
diff --git a/telephony/java/android/telephony/ims/ImsCallSession.java b/telephony/java/android/telephony/ims/ImsCallSession.java
index 397d5d9..47c4681 100644
--- a/telephony/java/android/telephony/ims/ImsCallSession.java
+++ b/telephony/java/android/telephony/ims/ImsCallSession.java
@@ -18,6 +18,7 @@
 
 import android.os.Message;
 import android.os.RemoteException;
+import android.telephony.CallQuality;
 import android.telephony.ims.aidl.IImsCallSessionListener;
 import android.util.Log;
 
@@ -450,6 +451,13 @@
         public void callSessionRttAudioIndicatorChanged(ImsStreamMediaProfile profile) {
             // no-op
         }
+
+        /**
+         * Called when the IMS service reports a change to the call quality.
+         */
+        public void callQualityChanged(CallQuality callQuality) {
+            // no-op
+        }
     }
 
     private final IImsCallSession miSession;
@@ -1414,6 +1422,16 @@
                 mListener.callSessionRttAudioIndicatorChanged(profile);
             }
         }
+
+        /**
+         * Call quality updated
+         */
+        @Override
+        public void callQualityChanged(CallQuality callQuality) {
+            if (mListener != null) {
+                mListener.callQualityChanged(callQuality);
+            }
+        }
     }
 
     /**
diff --git a/telephony/java/android/telephony/ims/ImsCallSessionListener.java b/telephony/java/android/telephony/ims/ImsCallSessionListener.java
index a4696a3..337375a 100644
--- a/telephony/java/android/telephony/ims/ImsCallSessionListener.java
+++ b/telephony/java/android/telephony/ims/ImsCallSessionListener.java
@@ -18,6 +18,7 @@
 
 import android.annotation.SystemApi;
 import android.os.RemoteException;
+import android.telephony.CallQuality;
 import android.telephony.ims.aidl.IImsCallSessionListener;
 import android.telephony.ims.stub.ImsCallSessionImplBase;
 
@@ -612,5 +613,18 @@
             throw new RuntimeException(e);
         }
     }
+
+    /**
+     * The call quality has changed.
+     *
+     * @param callQuality The new call quality
+     */
+    public void callQualityChanged(CallQuality callQuality) {
+        try {
+            mListener.callQualityChanged(callQuality);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
 }
 
diff --git a/telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl b/telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl
index d0b31e1..d64e67a 100644
--- a/telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl
+++ b/telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl
@@ -16,6 +16,7 @@
 
 package android.telephony.ims.aidl;
 
+import android.telephony.CallQuality;
 import android.telephony.ims.ImsStreamMediaProfile;
 import android.telephony.ims.ImsCallProfile;
 import android.telephony.ims.ImsReasonInfo;
@@ -126,22 +127,29 @@
      */
     void callSessionRttModifyRequestReceived(in ImsCallProfile callProfile);
 
-    /* Device issued RTT modify request and inturn received response
+    /**
+     * Device issued RTT modify request and inturn received response
      * from Remote UE
      * @param status Will be one of the following values from:
      * - {@link Connection.RttModifyStatus}
      */
     void callSessionRttModifyResponseReceived(int status);
 
-    /*
+    /**
      * While in call, device received RTT message from Remote UE
      * @param rttMessage Received RTT message
      */
     void callSessionRttMessageReceived(in String rttMessage);
 
-    /*
+    /**
      * While in call, there has been a change in RTT audio indicator.
      * @param profile updated ImsStreamMediaProfile
      */
     void callSessionRttAudioIndicatorChanged(in ImsStreamMediaProfile profile);
+
+    /**
+     * Notifies of a change to the call quality.
+     * @param callQuality then updated call quality
+     */
+    void callQualityChanged(in CallQuality callQuality);
 }
diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java
index bc58e46..38566fe 100644
--- a/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java
+++ b/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java
@@ -18,19 +18,18 @@
 
 import android.os.Message;
 import android.os.RemoteException;
-
+import android.telephony.CallQuality;
 import android.telephony.ims.ImsCallProfile;
+import android.telephony.ims.ImsCallSession;
 import android.telephony.ims.ImsConferenceState;
 import android.telephony.ims.ImsReasonInfo;
 import android.telephony.ims.ImsStreamMediaProfile;
 import android.telephony.ims.ImsSuppServiceNotification;
 import android.telephony.ims.aidl.IImsCallSessionListener;
+
 import com.android.ims.internal.IImsCallSession;
 import com.android.ims.internal.IImsVideoCallProvider;
 
-import android.annotation.UnsupportedAppUsage;
-import android.telephony.ims.ImsCallSession;
-
 /**
  * Compat implementation of ImsCallSessionImplBase for older implementations.
  *
@@ -597,5 +596,10 @@
                 throws RemoteException {
             mNewListener.callSessionRttAudioIndicatorChanged(profile);
         }
+
+        @Override
+        public void callQualityChanged(CallQuality callQuality) throws RemoteException {
+            mNewListener.callQualityChanged(callQuality);
+        }
     }
 }
diff --git a/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl b/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl
index bbb27af..579369f 100644
--- a/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl
+++ b/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl
@@ -16,6 +16,7 @@
 
 package com.android.ims.internal;
 
+import android.telephony.CallQuality;
 import android.telephony.ims.ImsStreamMediaProfile;
 import android.telephony.ims.ImsCallProfile;
 import android.telephony.ims.ImsReasonInfo;
@@ -140,22 +141,29 @@
     void callSessionRttModifyRequestReceived(in IImsCallSession session,
             in ImsCallProfile callProfile);
 
-    /* Device issued RTT modify request and inturn received response
+    /**
+     * Device issued RTT modify request and inturn received response
      * from Remote UE
      * @param status Will be one of the following values from:
      * - {@link Connection.RttModifyStatus}
      */
     void callSessionRttModifyResponseReceived(in int status);
 
-    /*
+    /**
      * While in call, device received RTT message from Remote UE
      * @param rttMessage Received RTT message
      */
     void callSessionRttMessageReceived(in String rttMessage);
 
-    /*
+    /**
      * While in call, there has been a change in RTT audio indicator.
      * @param profile updated ImsStreamMediaProfile
      */
     void callSessionRttAudioIndicatorChanged(in ImsStreamMediaProfile profile);
+
+    /**
+     * Notifies of a change to the call quality.
+     * @param callQuality then updated call quality
+     */
+    void callQualityChanged(in CallQuality callQuality);
 }
diff --git a/telephony/java/com/android/internal/telephony/DctConstants.java b/telephony/java/com/android/internal/telephony/DctConstants.java
index 17516bc2..6e8d038 100644
--- a/telephony/java/com/android/internal/telephony/DctConstants.java
+++ b/telephony/java/com/android/internal/telephony/DctConstants.java
@@ -87,7 +87,7 @@
     public static final int CMD_NET_STAT_POLL = BASE + 40;
     public static final int EVENT_DATA_RAT_CHANGED = BASE + 41;
     public static final int CMD_CLEAR_PROVISIONING_SPINNER = BASE + 42;
-    public static final int EVENT_REDIRECTION_DETECTED = BASE + 44;
+    public static final int EVENT_NETWORK_STATUS_CHANGED = BASE + 44;
     public static final int EVENT_PCO_DATA_RECEIVED = BASE + 45;
     public static final int EVENT_DATA_ENABLED_CHANGED = BASE + 46;
     public static final int EVENT_DATA_RECONNECT = BASE + 47;
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index 62b9d36..5736a46 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -1793,4 +1793,9 @@
      * Get the full emergency number list for Test Mode.
      */
     List<String> getEmergencyNumberListTestMode();
+
+    /**
+     * Enable or disable a logical modem stack associated with the slotIndex.
+     */
+    boolean enableModemForSlot(int slotIndex, boolean enable);
 }
diff --git a/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl b/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
index 5632c63..2be1f41 100644
--- a/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
@@ -20,6 +20,7 @@
 import android.net.LinkProperties;
 import android.net.NetworkCapabilities;
 import android.os.Bundle;
+import android.telephony.CallQuality;
 import android.telephony.CellInfo;
 import android.telephony.PhoneCapability;
 import android.telephony.PhysicalChannelConfig;
@@ -65,7 +66,7 @@
     void notifyPhysicalChannelConfigurationForSubscriber(in int subId,
             in List<PhysicalChannelConfig> configs);
     void notifyPreciseCallState(int ringingCallState, int foregroundCallState,
-            int backgroundCallState);
+            int backgroundCallState, int phoneId);
     void notifyDisconnectCause(int disconnectCause, int preciseDisconnectCause);
     void notifyPreciseDataConnectionFailed(String apnType, String apn,
             int failCause);
@@ -82,4 +83,5 @@
     void notifyPreferredDataSubIdChanged(int preferredSubId);
     void notifyRadioPowerStateChanged(in int state);
     void notifyEmergencyNumberList();
+    void notifyCallQualityChanged(in CallQuality callQuality, int phoneId);
 }
diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java
index 1c103a9..9300034 100644
--- a/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -489,6 +489,7 @@
     int RIL_REQUEST_STOP_NETWORK_SCAN = 143;
     int RIL_REQUEST_START_KEEPALIVE = 144;
     int RIL_REQUEST_STOP_KEEPALIVE = 145;
+    int RIL_REQUEST_ENABLE_MODEM = 146;
 
     /* The following requests are not defined in RIL.h */
     int RIL_REQUEST_HAL_NON_RIL_BASE = 200;
diff --git a/test-base/api/current.txt b/test-base/api/current.txt
index 91fcca5..750fb59 100644
--- a/test-base/api/current.txt
+++ b/test-base/api/current.txt
@@ -1,84 +1,87 @@
+// Signature format: 2.0
 package android.test {
 
-  public deprecated class AndroidTestCase extends junit.framework.TestCase {
-    ctor public AndroidTestCase();
-    method public void assertActivityRequiresPermission(java.lang.String, java.lang.String, java.lang.String);
-    method public void assertReadingContentUriRequiresPermission(android.net.Uri, java.lang.String);
-    method public void assertWritingContentUriRequiresPermission(android.net.Uri, java.lang.String);
-    method public android.content.Context getContext();
-    method protected void scrubClass(java.lang.Class<?>) throws java.lang.IllegalAccessException;
-    method public void setContext(android.content.Context);
-    method public void testAndroidTestCaseSetupProperly();
-    field protected android.content.Context mContext;
+  @Deprecated public class AndroidTestCase extends junit.framework.TestCase {
+    ctor @Deprecated public AndroidTestCase();
+    method @Deprecated public void assertActivityRequiresPermission(String, String, String);
+    method @Deprecated public void assertReadingContentUriRequiresPermission(android.net.Uri, String);
+    method @Deprecated public void assertWritingContentUriRequiresPermission(android.net.Uri, String);
+    method @Deprecated public android.content.Context getContext();
+    method @Deprecated protected void scrubClass(Class<?>) throws java.lang.IllegalAccessException;
+    method @Deprecated public void setContext(android.content.Context);
+    method @Deprecated @android.test.suitebuilder.annotation.Suppress public void testAndroidTestCaseSetupProperly();
+    field @Deprecated protected android.content.Context mContext;
   }
 
-  public abstract deprecated class FlakyTest implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface FlakyTest {
+    method @Deprecated public abstract int tolerance() default 1;
   }
 
-  public deprecated class InstrumentationTestCase extends junit.framework.TestCase {
-    ctor public InstrumentationTestCase();
-    method public android.app.Instrumentation getInstrumentation();
-    method public deprecated void injectInsrumentation(android.app.Instrumentation);
-    method public void injectInstrumentation(android.app.Instrumentation);
-    method public final <T extends android.app.Activity> T launchActivity(java.lang.String, java.lang.Class<T>, android.os.Bundle);
-    method public final <T extends android.app.Activity> T launchActivityWithIntent(java.lang.String, java.lang.Class<T>, android.content.Intent);
-    method public void runTestOnUiThread(java.lang.Runnable) throws java.lang.Throwable;
-    method public void sendKeys(java.lang.String);
-    method public void sendKeys(int...);
-    method public void sendRepeatedKeys(int...);
+  @Deprecated public class InstrumentationTestCase extends junit.framework.TestCase {
+    ctor @Deprecated public InstrumentationTestCase();
+    method @Deprecated public android.app.Instrumentation getInstrumentation();
+    method @Deprecated public void injectInsrumentation(android.app.Instrumentation);
+    method @Deprecated public void injectInstrumentation(android.app.Instrumentation);
+    method @Deprecated public final <T extends android.app.Activity> T launchActivity(String, Class<T>, android.os.Bundle);
+    method @Deprecated public final <T extends android.app.Activity> T launchActivityWithIntent(String, Class<T>, android.content.Intent);
+    method @Deprecated public void runTestOnUiThread(Runnable) throws java.lang.Throwable;
+    method @Deprecated public void sendKeys(String);
+    method @Deprecated public void sendKeys(int...);
+    method @Deprecated public void sendRepeatedKeys(int...);
   }
 
-  public deprecated class InstrumentationTestSuite extends junit.framework.TestSuite {
-    ctor public InstrumentationTestSuite(android.app.Instrumentation);
-    ctor public InstrumentationTestSuite(java.lang.String, android.app.Instrumentation);
-    ctor public InstrumentationTestSuite(java.lang.Class, android.app.Instrumentation);
-    method public void addTestSuite(java.lang.Class);
+  @Deprecated public class InstrumentationTestSuite extends junit.framework.TestSuite {
+    ctor @Deprecated public InstrumentationTestSuite(android.app.Instrumentation);
+    ctor @Deprecated public InstrumentationTestSuite(String, android.app.Instrumentation);
+    ctor @Deprecated public InstrumentationTestSuite(Class, android.app.Instrumentation);
+    method @Deprecated public void addTestSuite(Class);
   }
 
-  public abstract deprecated interface PerformanceTestCase {
-    method public abstract boolean isPerformanceOnly();
-    method public abstract int startPerformance(android.test.PerformanceTestCase.Intermediates);
+  @Deprecated public interface PerformanceTestCase {
+    method @Deprecated public boolean isPerformanceOnly();
+    method @Deprecated public int startPerformance(android.test.PerformanceTestCase.Intermediates);
   }
 
-  public static abstract interface PerformanceTestCase.Intermediates {
-    method public abstract void addIntermediate(java.lang.String);
-    method public abstract void addIntermediate(java.lang.String, long);
-    method public abstract void finishTiming(boolean);
-    method public abstract void setInternalIterations(int);
-    method public abstract void startTiming(boolean);
+  @Deprecated public static interface PerformanceTestCase.Intermediates {
+    method @Deprecated public void addIntermediate(String);
+    method @Deprecated public void addIntermediate(String, long);
+    method @Deprecated public void finishTiming(boolean);
+    method @Deprecated public void setInternalIterations(int);
+    method @Deprecated public void startTiming(boolean);
   }
 
-  public abstract deprecated class RepetitiveTest implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface RepetitiveTest {
+    method @Deprecated public abstract int numIterations() default 1;
   }
 
-  public abstract deprecated class UiThreadTest implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface UiThreadTest {
   }
 
 }
 
 package android.test.suitebuilder.annotation {
 
-  public abstract deprecated class LargeTest implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE}) public @interface LargeTest {
   }
 
-  public abstract deprecated class MediumTest implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE}) public @interface MediumTest {
   }
 
-  public abstract deprecated class SmallTest implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE}) public @interface SmallTest {
   }
 
-  public abstract deprecated class Smoke implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE}) public @interface Smoke {
   }
 
-  public abstract deprecated class Suppress implements java.lang.annotation.Annotation {
+  @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE}) public @interface Suppress {
   }
 
 }
 
 package com.android.internal.util {
 
-  public abstract deprecated interface Predicate<T> {
-    method public abstract boolean apply(T);
+  @Deprecated public interface Predicate<T> {
+    method @Deprecated public boolean apply(T);
   }
 
 }
@@ -87,117 +90,117 @@
 
   public class Assert {
     ctor protected Assert();
-    method public static void assertEquals(java.lang.String, java.lang.Object, java.lang.Object);
-    method public static void assertEquals(java.lang.Object, java.lang.Object);
-    method public static void assertEquals(java.lang.String, java.lang.String, java.lang.String);
-    method public static void assertEquals(java.lang.String, java.lang.String);
-    method public static void assertEquals(java.lang.String, double, double, double);
+    method public static void assertEquals(String, Object, Object);
+    method public static void assertEquals(Object, Object);
+    method public static void assertEquals(String, String, String);
+    method public static void assertEquals(String, String);
+    method public static void assertEquals(String, double, double, double);
     method public static void assertEquals(double, double, double);
-    method public static void assertEquals(java.lang.String, float, float, float);
+    method public static void assertEquals(String, float, float, float);
     method public static void assertEquals(float, float, float);
-    method public static void assertEquals(java.lang.String, long, long);
+    method public static void assertEquals(String, long, long);
     method public static void assertEquals(long, long);
-    method public static void assertEquals(java.lang.String, boolean, boolean);
+    method public static void assertEquals(String, boolean, boolean);
     method public static void assertEquals(boolean, boolean);
-    method public static void assertEquals(java.lang.String, byte, byte);
+    method public static void assertEquals(String, byte, byte);
     method public static void assertEquals(byte, byte);
-    method public static void assertEquals(java.lang.String, char, char);
+    method public static void assertEquals(String, char, char);
     method public static void assertEquals(char, char);
-    method public static void assertEquals(java.lang.String, short, short);
+    method public static void assertEquals(String, short, short);
     method public static void assertEquals(short, short);
-    method public static void assertEquals(java.lang.String, int, int);
+    method public static void assertEquals(String, int, int);
     method public static void assertEquals(int, int);
-    method public static void assertFalse(java.lang.String, boolean);
+    method public static void assertFalse(String, boolean);
     method public static void assertFalse(boolean);
-    method public static void assertNotNull(java.lang.Object);
-    method public static void assertNotNull(java.lang.String, java.lang.Object);
-    method public static void assertNotSame(java.lang.String, java.lang.Object, java.lang.Object);
-    method public static void assertNotSame(java.lang.Object, java.lang.Object);
-    method public static void assertNull(java.lang.Object);
-    method public static void assertNull(java.lang.String, java.lang.Object);
-    method public static void assertSame(java.lang.String, java.lang.Object, java.lang.Object);
-    method public static void assertSame(java.lang.Object, java.lang.Object);
-    method public static void assertTrue(java.lang.String, boolean);
+    method public static void assertNotNull(Object);
+    method public static void assertNotNull(String, Object);
+    method public static void assertNotSame(String, Object, Object);
+    method public static void assertNotSame(Object, Object);
+    method public static void assertNull(Object);
+    method public static void assertNull(String, Object);
+    method public static void assertSame(String, Object, Object);
+    method public static void assertSame(Object, Object);
+    method public static void assertTrue(String, boolean);
     method public static void assertTrue(boolean);
-    method public static void fail(java.lang.String);
+    method public static void fail(String);
     method public static void fail();
-    method public static void failNotEquals(java.lang.String, java.lang.Object, java.lang.Object);
-    method public static void failNotSame(java.lang.String, java.lang.Object, java.lang.Object);
-    method public static void failSame(java.lang.String);
-    method public static java.lang.String format(java.lang.String, java.lang.Object, java.lang.Object);
+    method public static void failNotEquals(String, Object, Object);
+    method public static void failNotSame(String, Object, Object);
+    method public static void failSame(String);
+    method public static String format(String, Object, Object);
   }
 
   public class AssertionFailedError extends java.lang.AssertionError {
     ctor public AssertionFailedError();
-    ctor public AssertionFailedError(java.lang.String);
+    ctor public AssertionFailedError(String);
   }
 
   public class ComparisonFailure extends junit.framework.AssertionFailedError {
-    ctor public ComparisonFailure(java.lang.String, java.lang.String, java.lang.String);
-    method public java.lang.String getActual();
-    method public java.lang.String getExpected();
+    ctor public ComparisonFailure(String, String, String);
+    method public String getActual();
+    method public String getExpected();
   }
 
-  public abstract interface Protectable {
-    method public abstract void protect() throws java.lang.Throwable;
+  public interface Protectable {
+    method public void protect() throws java.lang.Throwable;
   }
 
-  public abstract interface Test {
-    method public abstract int countTestCases();
-    method public abstract void run(junit.framework.TestResult);
+  public interface Test {
+    method public int countTestCases();
+    method public void run(junit.framework.TestResult);
   }
 
   public abstract class TestCase extends junit.framework.Assert implements junit.framework.Test {
     ctor public TestCase();
-    ctor public TestCase(java.lang.String);
+    ctor public TestCase(String);
     method public int countTestCases();
     method protected junit.framework.TestResult createResult();
-    method public java.lang.String getName();
+    method public String getName();
     method public junit.framework.TestResult run();
     method public void run(junit.framework.TestResult);
     method public void runBare() throws java.lang.Throwable;
     method protected void runTest() throws java.lang.Throwable;
-    method public void setName(java.lang.String);
+    method public void setName(String);
     method protected void setUp() throws java.lang.Exception;
     method protected void tearDown() throws java.lang.Exception;
   }
 
   public class TestFailure {
-    ctor public TestFailure(junit.framework.Test, java.lang.Throwable);
-    method public java.lang.String exceptionMessage();
+    ctor public TestFailure(junit.framework.Test, Throwable);
+    method public String exceptionMessage();
     method public junit.framework.Test failedTest();
     method public boolean isFailure();
-    method public java.lang.Throwable thrownException();
-    method public java.lang.String trace();
+    method public Throwable thrownException();
+    method public String trace();
     field protected junit.framework.Test fFailedTest;
-    field protected java.lang.Throwable fThrownException;
+    field protected Throwable fThrownException;
   }
 
-  public abstract interface TestListener {
-    method public abstract void addError(junit.framework.Test, java.lang.Throwable);
-    method public abstract void addFailure(junit.framework.Test, junit.framework.AssertionFailedError);
-    method public abstract void endTest(junit.framework.Test);
-    method public abstract void startTest(junit.framework.Test);
+  public interface TestListener {
+    method public void addError(junit.framework.Test, Throwable);
+    method public void addFailure(junit.framework.Test, junit.framework.AssertionFailedError);
+    method public void endTest(junit.framework.Test);
+    method public void startTest(junit.framework.Test);
   }
 
   public class TestResult {
     ctor public TestResult();
-    method public synchronized void addError(junit.framework.Test, java.lang.Throwable);
-    method public synchronized void addFailure(junit.framework.Test, junit.framework.AssertionFailedError);
-    method public synchronized void addListener(junit.framework.TestListener);
+    method public void addError(junit.framework.Test, Throwable);
+    method public void addFailure(junit.framework.Test, junit.framework.AssertionFailedError);
+    method public void addListener(junit.framework.TestListener);
     method public void endTest(junit.framework.Test);
-    method public synchronized int errorCount();
-    method public synchronized java.util.Enumeration<junit.framework.TestFailure> errors();
-    method public synchronized int failureCount();
-    method public synchronized java.util.Enumeration<junit.framework.TestFailure> failures();
-    method public synchronized void removeListener(junit.framework.TestListener);
+    method public int errorCount();
+    method public java.util.Enumeration<junit.framework.TestFailure> errors();
+    method public int failureCount();
+    method public java.util.Enumeration<junit.framework.TestFailure> failures();
+    method public void removeListener(junit.framework.TestListener);
     method protected void run(junit.framework.TestCase);
-    method public synchronized int runCount();
+    method public int runCount();
     method public void runProtected(junit.framework.Test, junit.framework.Protectable);
-    method public synchronized boolean shouldStop();
+    method public boolean shouldStop();
     method public void startTest(junit.framework.Test);
-    method public synchronized void stop();
-    method public synchronized boolean wasSuccessful();
+    method public void stop();
+    method public boolean wasSuccessful();
     field protected java.util.Vector<junit.framework.TestFailure> fErrors;
     field protected java.util.Vector<junit.framework.TestFailure> fFailures;
     field protected java.util.Vector<junit.framework.TestListener> fListeners;
@@ -206,24 +209,24 @@
 
   public class TestSuite implements junit.framework.Test {
     ctor public TestSuite();
-    ctor public TestSuite(java.lang.Class<?>);
-    ctor public TestSuite(java.lang.Class<? extends junit.framework.TestCase>, java.lang.String);
-    ctor public TestSuite(java.lang.String);
-    ctor public TestSuite(java.lang.Class<?>...);
-    ctor public TestSuite(java.lang.Class<? extends junit.framework.TestCase>[], java.lang.String);
+    ctor public TestSuite(Class<?>);
+    ctor public TestSuite(Class<? extends junit.framework.TestCase>, String);
+    ctor public TestSuite(String);
+    ctor public TestSuite(Class<?>...);
+    ctor public TestSuite(Class<? extends junit.framework.TestCase>[], String);
     method public void addTest(junit.framework.Test);
-    method public void addTestSuite(java.lang.Class<? extends junit.framework.TestCase>);
+    method public void addTestSuite(Class<? extends junit.framework.TestCase>);
     method public int countTestCases();
-    method public static junit.framework.Test createTest(java.lang.Class<?>, java.lang.String);
-    method public java.lang.String getName();
-    method public static java.lang.reflect.Constructor<?> getTestConstructor(java.lang.Class<?>) throws java.lang.NoSuchMethodException;
+    method public static junit.framework.Test createTest(Class<?>, String);
+    method public String getName();
+    method public static java.lang.reflect.Constructor<?> getTestConstructor(Class<?>) throws java.lang.NoSuchMethodException;
     method public void run(junit.framework.TestResult);
     method public void runTest(junit.framework.Test, junit.framework.TestResult);
-    method public void setName(java.lang.String);
+    method public void setName(String);
     method public junit.framework.Test testAt(int);
     method public int testCount();
     method public java.util.Enumeration<junit.framework.Test> tests();
-    method public static junit.framework.Test warning(java.lang.String);
+    method public static junit.framework.Test warning(String);
   }
 
 }
diff --git a/test-base/api/removed.txt b/test-base/api/removed.txt
index e69de29..d802177 100644
--- a/test-base/api/removed.txt
+++ b/test-base/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-base/api/system-current.txt b/test-base/api/system-current.txt
index e69de29..d802177 100644
--- a/test-base/api/system-current.txt
+++ b/test-base/api/system-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-base/api/system-removed.txt b/test-base/api/system-removed.txt
index e69de29..d802177 100644
--- a/test-base/api/system-removed.txt
+++ b/test-base/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-base/api/test-current.txt b/test-base/api/test-current.txt
index e69de29..d802177 100644
--- a/test-base/api/test-current.txt
+++ b/test-base/api/test-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-base/api/test-removed.txt b/test-base/api/test-removed.txt
index e69de29..d802177 100644
--- a/test-base/api/test-removed.txt
+++ b/test-base/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-mock/api/current.txt b/test-mock/api/current.txt
index 5b58dd5..a181bc38 100644
--- a/test-mock/api/current.txt
+++ b/test-mock/api/current.txt
@@ -1,126 +1,127 @@
+// Signature format: 2.0
 package android.test.mock {
 
-  public deprecated class MockAccountManager {
-    method public static android.accounts.AccountManager newMockAccountManager(android.content.Context);
+  @Deprecated public class MockAccountManager {
+    method @Deprecated public static android.accounts.AccountManager newMockAccountManager(android.content.Context);
   }
 
-  public deprecated class MockApplication extends android.app.Application {
-    ctor public MockApplication();
+  @Deprecated public class MockApplication extends android.app.Application {
+    ctor @Deprecated public MockApplication();
   }
 
   public class MockContentProvider extends android.content.ContentProvider {
     ctor protected MockContentProvider();
     ctor public MockContentProvider(android.content.Context);
-    ctor public MockContentProvider(android.content.Context, java.lang.String, java.lang.String, android.content.pm.PathPermission[]);
+    ctor public MockContentProvider(android.content.Context, String, String, android.content.pm.PathPermission[]);
     method public android.content.ContentProviderResult[] applyBatch(java.util.ArrayList<android.content.ContentProviderOperation>);
-    method public static deprecated void attachInfoForTesting(android.content.ContentProvider, android.content.Context, android.content.pm.ProviderInfo);
-    method public int delete(android.net.Uri, java.lang.String, java.lang.String[]);
-    method public java.lang.String getType(android.net.Uri);
+    method @Deprecated public static void attachInfoForTesting(android.content.ContentProvider, android.content.Context, android.content.pm.ProviderInfo);
+    method public int delete(android.net.Uri, String, String[]);
+    method public String getType(android.net.Uri);
     method public android.net.Uri insert(android.net.Uri, android.content.ContentValues);
     method public boolean onCreate();
-    method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle);
-    method public android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
-    method public int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
+    method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, String, android.os.Bundle);
+    method public android.database.Cursor query(android.net.Uri, String[], String, String[], String);
+    method public int update(android.net.Uri, android.content.ContentValues, String, String[]);
   }
 
   public class MockContentResolver extends android.content.ContentResolver {
     ctor public MockContentResolver();
     ctor public MockContentResolver(android.content.Context);
-    method public void addProvider(java.lang.String, android.content.ContentProvider);
+    method public void addProvider(String, android.content.ContentProvider);
   }
 
   public class MockContext extends android.content.Context {
     ctor public MockContext();
-    method public boolean bindIsolatedService(android.content.Intent, android.content.ServiceConnection, int, java.lang.String);
+    method public boolean bindIsolatedService(android.content.Intent, android.content.ServiceConnection, int, String);
     method public boolean bindService(android.content.Intent, android.content.ServiceConnection, int);
-    method public int checkCallingOrSelfPermission(java.lang.String);
+    method public int checkCallingOrSelfPermission(String);
     method public int checkCallingOrSelfUriPermission(android.net.Uri, int);
-    method public int checkCallingPermission(java.lang.String);
+    method public int checkCallingPermission(String);
     method public int checkCallingUriPermission(android.net.Uri, int);
-    method public int checkPermission(java.lang.String, int, int);
-    method public int checkSelfPermission(java.lang.String);
+    method public int checkPermission(String, int, int);
+    method public int checkSelfPermission(String);
     method public int checkUriPermission(android.net.Uri, int, int, int);
-    method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int);
+    method public int checkUriPermission(android.net.Uri, String, String, int, int, int);
     method public void clearWallpaper();
     method public android.content.Context createConfigurationContext(android.content.res.Configuration);
-    method public android.content.Context createContextForSplit(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public android.content.Context createContextForSplit(String) throws android.content.pm.PackageManager.NameNotFoundException;
     method public android.content.Context createDeviceProtectedStorageContext();
     method public android.content.Context createDisplayContext(android.view.Display);
-    method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public java.lang.String[] databaseList();
-    method public boolean deleteDatabase(java.lang.String);
-    method public boolean deleteFile(java.lang.String);
-    method public boolean deleteSharedPreferences(java.lang.String);
-    method public void enforceCallingOrSelfPermission(java.lang.String, java.lang.String);
-    method public void enforceCallingOrSelfUriPermission(android.net.Uri, int, java.lang.String);
-    method public void enforceCallingPermission(java.lang.String, java.lang.String);
-    method public void enforceCallingUriPermission(android.net.Uri, int, java.lang.String);
-    method public void enforcePermission(java.lang.String, int, int, java.lang.String);
-    method public void enforceUriPermission(android.net.Uri, int, int, int, java.lang.String);
-    method public void enforceUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int, java.lang.String);
-    method public java.lang.String[] fileList();
+    method public android.content.Context createPackageContext(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public String[] databaseList();
+    method public boolean deleteDatabase(String);
+    method public boolean deleteFile(String);
+    method public boolean deleteSharedPreferences(String);
+    method public void enforceCallingOrSelfPermission(String, String);
+    method public void enforceCallingOrSelfUriPermission(android.net.Uri, int, String);
+    method public void enforceCallingPermission(String, String);
+    method public void enforceCallingUriPermission(android.net.Uri, int, String);
+    method public void enforcePermission(String, int, int, String);
+    method public void enforceUriPermission(android.net.Uri, int, int, int, String);
+    method public void enforceUriPermission(android.net.Uri, String, String, int, int, int, String);
+    method public String[] fileList();
     method public android.content.Context getApplicationContext();
     method public android.content.pm.ApplicationInfo getApplicationInfo();
     method public android.content.res.AssetManager getAssets();
     method public java.io.File getCacheDir();
-    method public java.lang.ClassLoader getClassLoader();
+    method public ClassLoader getClassLoader();
     method public java.io.File getCodeCacheDir();
     method public android.content.ContentResolver getContentResolver();
     method public java.io.File getDataDir();
-    method public java.io.File getDatabasePath(java.lang.String);
-    method public java.io.File getDir(java.lang.String, int);
+    method public java.io.File getDatabasePath(String);
+    method public java.io.File getDir(String, int);
     method public java.io.File getExternalCacheDir();
     method public java.io.File[] getExternalCacheDirs();
-    method public java.io.File getExternalFilesDir(java.lang.String);
-    method public java.io.File[] getExternalFilesDirs(java.lang.String);
+    method public java.io.File getExternalFilesDir(String);
+    method public java.io.File[] getExternalFilesDirs(String);
     method public java.io.File[] getExternalMediaDirs();
-    method public java.io.File getFileStreamPath(java.lang.String);
+    method public java.io.File getFileStreamPath(String);
     method public java.io.File getFilesDir();
     method public android.os.Looper getMainLooper();
     method public java.io.File getNoBackupFilesDir();
     method public java.io.File getObbDir();
     method public java.io.File[] getObbDirs();
-    method public java.lang.String getOpPackageName();
-    method public java.lang.String getPackageCodePath();
+    method public String getOpPackageName();
+    method public String getPackageCodePath();
     method public android.content.pm.PackageManager getPackageManager();
-    method public java.lang.String getPackageName();
-    method public java.lang.String getPackageResourcePath();
+    method public String getPackageName();
+    method public String getPackageResourcePath();
     method public android.content.res.Resources getResources();
-    method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int);
-    method public java.lang.Object getSystemService(java.lang.String);
-    method public java.lang.String getSystemServiceName(java.lang.Class<?>);
+    method public android.content.SharedPreferences getSharedPreferences(String, int);
+    method public Object getSystemService(String);
+    method public String getSystemServiceName(Class<?>);
     method public android.content.res.Resources.Theme getTheme();
     method public android.graphics.drawable.Drawable getWallpaper();
     method public int getWallpaperDesiredMinimumHeight();
     method public int getWallpaperDesiredMinimumWidth();
-    method public void grantUriPermission(java.lang.String, android.net.Uri, int);
+    method public void grantUriPermission(String, android.net.Uri, int);
     method public boolean isDeviceProtectedStorage();
-    method public boolean moveDatabaseFrom(android.content.Context, java.lang.String);
-    method public boolean moveSharedPreferencesFrom(android.content.Context, java.lang.String);
-    method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException;
-    method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException;
-    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
-    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory, android.database.DatabaseErrorHandler);
+    method public boolean moveDatabaseFrom(android.content.Context, String);
+    method public boolean moveSharedPreferencesFrom(android.content.Context, String);
+    method public java.io.FileInputStream openFileInput(String) throws java.io.FileNotFoundException;
+    method public java.io.FileOutputStream openFileOutput(String, int) throws java.io.FileNotFoundException;
+    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
+    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(String, int, android.database.sqlite.SQLiteDatabase.CursorFactory, android.database.DatabaseErrorHandler);
     method public android.graphics.drawable.Drawable peekWallpaper();
     method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter);
     method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, int);
-    method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler);
-    method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler, int);
+    method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, String, android.os.Handler);
+    method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, String, android.os.Handler, int);
     method public void removeStickyBroadcast(android.content.Intent);
     method public void removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
     method public void revokeUriPermission(android.net.Uri, int);
-    method public void revokeUriPermission(java.lang.String, android.net.Uri, int);
+    method public void revokeUriPermission(String, android.net.Uri, int);
     method public void sendBroadcast(android.content.Intent);
-    method public void sendBroadcast(android.content.Intent, java.lang.String);
+    method public void sendBroadcast(android.content.Intent, String);
     method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle);
-    method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String);
-    method public void sendOrderedBroadcast(android.content.Intent, java.lang.String);
-    method public void sendOrderedBroadcast(android.content.Intent, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
-    method public void sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+    method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, String);
+    method public void sendOrderedBroadcast(android.content.Intent, String);
+    method public void sendOrderedBroadcast(android.content.Intent, String, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
+    method public void sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, String, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
     method public void sendStickyBroadcast(android.content.Intent);
     method public void sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
-    method public void sendStickyOrderedBroadcast(android.content.Intent, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
-    method public void sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+    method public void sendStickyOrderedBroadcast(android.content.Intent, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
+    method public void sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
     method public void setTheme(int);
     method public void setWallpaper(android.graphics.Bitmap) throws java.io.IOException;
     method public void setWallpaper(java.io.InputStream) throws java.io.IOException;
@@ -129,7 +130,7 @@
     method public void startActivity(android.content.Intent);
     method public void startActivity(android.content.Intent, android.os.Bundle);
     method public android.content.ComponentName startForegroundService(android.content.Intent);
-    method public boolean startInstrumentation(android.content.ComponentName, java.lang.String, android.os.Bundle);
+    method public boolean startInstrumentation(android.content.ComponentName, String, android.os.Bundle);
     method public void startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int) throws android.content.IntentSender.SendIntentException;
     method public void startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
     method public android.content.ComponentName startService(android.content.Intent);
@@ -139,168 +140,168 @@
     method public void updateServiceGroup(android.content.ServiceConnection, int, int);
   }
 
-  public deprecated class MockCursor implements android.database.Cursor {
-    ctor public MockCursor();
-    method public void close();
-    method public void copyStringToBuffer(int, android.database.CharArrayBuffer);
-    method public deprecated void deactivate();
-    method public byte[] getBlob(int);
-    method public int getColumnCount();
-    method public int getColumnIndex(java.lang.String);
-    method public int getColumnIndexOrThrow(java.lang.String);
-    method public java.lang.String getColumnName(int);
-    method public java.lang.String[] getColumnNames();
-    method public int getCount();
-    method public double getDouble(int);
-    method public android.os.Bundle getExtras();
-    method public float getFloat(int);
-    method public int getInt(int);
-    method public long getLong(int);
-    method public android.net.Uri getNotificationUri();
-    method public int getPosition();
-    method public short getShort(int);
-    method public java.lang.String getString(int);
-    method public int getType(int);
-    method public boolean getWantsAllOnMoveCalls();
-    method public boolean isAfterLast();
-    method public boolean isBeforeFirst();
-    method public boolean isClosed();
-    method public boolean isFirst();
-    method public boolean isLast();
-    method public boolean isNull(int);
-    method public boolean move(int);
-    method public boolean moveToFirst();
-    method public boolean moveToLast();
-    method public boolean moveToNext();
-    method public boolean moveToPosition(int);
-    method public boolean moveToPrevious();
-    method public void registerContentObserver(android.database.ContentObserver);
-    method public void registerDataSetObserver(android.database.DataSetObserver);
-    method public deprecated boolean requery();
-    method public android.os.Bundle respond(android.os.Bundle);
-    method public void setExtras(android.os.Bundle);
-    method public void setNotificationUri(android.content.ContentResolver, android.net.Uri);
-    method public void unregisterContentObserver(android.database.ContentObserver);
-    method public void unregisterDataSetObserver(android.database.DataSetObserver);
+  @Deprecated public class MockCursor implements android.database.Cursor {
+    ctor @Deprecated public MockCursor();
+    method @Deprecated public void close();
+    method @Deprecated public void copyStringToBuffer(int, android.database.CharArrayBuffer);
+    method @Deprecated public void deactivate();
+    method @Deprecated public byte[] getBlob(int);
+    method @Deprecated public int getColumnCount();
+    method @Deprecated public int getColumnIndex(String);
+    method @Deprecated public int getColumnIndexOrThrow(String);
+    method @Deprecated public String getColumnName(int);
+    method @Deprecated public String[] getColumnNames();
+    method @Deprecated public int getCount();
+    method @Deprecated public double getDouble(int);
+    method @Deprecated public android.os.Bundle getExtras();
+    method @Deprecated public float getFloat(int);
+    method @Deprecated public int getInt(int);
+    method @Deprecated public long getLong(int);
+    method @Deprecated public android.net.Uri getNotificationUri();
+    method @Deprecated public int getPosition();
+    method @Deprecated public short getShort(int);
+    method @Deprecated public String getString(int);
+    method @Deprecated public int getType(int);
+    method @Deprecated public boolean getWantsAllOnMoveCalls();
+    method @Deprecated public boolean isAfterLast();
+    method @Deprecated public boolean isBeforeFirst();
+    method @Deprecated public boolean isClosed();
+    method @Deprecated public boolean isFirst();
+    method @Deprecated public boolean isLast();
+    method @Deprecated public boolean isNull(int);
+    method @Deprecated public boolean move(int);
+    method @Deprecated public boolean moveToFirst();
+    method @Deprecated public boolean moveToLast();
+    method @Deprecated public boolean moveToNext();
+    method @Deprecated public boolean moveToPosition(int);
+    method @Deprecated public boolean moveToPrevious();
+    method @Deprecated public void registerContentObserver(android.database.ContentObserver);
+    method @Deprecated public void registerDataSetObserver(android.database.DataSetObserver);
+    method @Deprecated public boolean requery();
+    method @Deprecated public android.os.Bundle respond(android.os.Bundle);
+    method @Deprecated public void setExtras(android.os.Bundle);
+    method @Deprecated public void setNotificationUri(android.content.ContentResolver, android.net.Uri);
+    method @Deprecated public void unregisterContentObserver(android.database.ContentObserver);
+    method @Deprecated public void unregisterDataSetObserver(android.database.DataSetObserver);
   }
 
-  public deprecated class MockDialogInterface implements android.content.DialogInterface {
-    ctor public MockDialogInterface();
-    method public void cancel();
-    method public void dismiss();
+  @Deprecated public class MockDialogInterface implements android.content.DialogInterface {
+    ctor @Deprecated public MockDialogInterface();
+    method @Deprecated public void cancel();
+    method @Deprecated public void dismiss();
   }
 
-  public deprecated class MockPackageManager extends android.content.pm.PackageManager {
-    ctor public MockPackageManager();
-    method public void addPackageToPreferred(java.lang.String);
-    method public boolean addPermission(android.content.pm.PermissionInfo);
-    method public boolean addPermissionAsync(android.content.pm.PermissionInfo);
-    method public void addPreferredActivity(android.content.IntentFilter, int, android.content.ComponentName[], android.content.ComponentName);
-    method public boolean canRequestPackageInstalls();
-    method public java.lang.String[] canonicalToCurrentPackageNames(java.lang.String[]);
-    method public int checkPermission(java.lang.String, java.lang.String);
-    method public int checkSignatures(java.lang.String, java.lang.String);
-    method public int checkSignatures(int, int);
+  @Deprecated public class MockPackageManager extends android.content.pm.PackageManager {
+    ctor @Deprecated public MockPackageManager();
+    method @Deprecated public void addPackageToPreferred(String);
+    method @Deprecated public boolean addPermission(android.content.pm.PermissionInfo);
+    method @Deprecated public boolean addPermissionAsync(android.content.pm.PermissionInfo);
+    method @Deprecated public void addPreferredActivity(android.content.IntentFilter, int, android.content.ComponentName[], android.content.ComponentName);
+    method @Deprecated public boolean canRequestPackageInstalls();
+    method @Deprecated public String[] canonicalToCurrentPackageNames(String[]);
+    method @Deprecated public int checkPermission(String, String);
+    method @Deprecated public int checkSignatures(String, String);
+    method @Deprecated public int checkSignatures(int, int);
     method public void clearInstantAppCookie();
-    method public void clearPackagePreferredActivities(java.lang.String);
-    method public java.lang.String[] currentToCanonicalPackageNames(java.lang.String[]);
-    method public void extendVerificationTimeout(int, int, long);
-    method public android.graphics.drawable.Drawable getActivityBanner(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.graphics.drawable.Drawable getActivityBanner(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.graphics.drawable.Drawable getActivityIcon(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.graphics.drawable.Drawable getActivityIcon(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.pm.ActivityInfo getActivityInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.graphics.drawable.Drawable getActivityLogo(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.graphics.drawable.Drawable getActivityLogo(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public java.util.List<android.content.IntentFilter> getAllIntentFilters(java.lang.String);
-    method public java.util.List<android.content.pm.PermissionGroupInfo> getAllPermissionGroups(int);
-    method public android.graphics.drawable.Drawable getApplicationBanner(android.content.pm.ApplicationInfo);
-    method public android.graphics.drawable.Drawable getApplicationBanner(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public int getApplicationEnabledSetting(java.lang.String);
-    method public android.graphics.drawable.Drawable getApplicationIcon(android.content.pm.ApplicationInfo);
-    method public android.graphics.drawable.Drawable getApplicationIcon(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.pm.ApplicationInfo getApplicationInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public java.lang.CharSequence getApplicationLabel(android.content.pm.ApplicationInfo);
-    method public android.graphics.drawable.Drawable getApplicationLogo(android.content.pm.ApplicationInfo);
-    method public android.graphics.drawable.Drawable getApplicationLogo(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public void clearPackagePreferredActivities(String);
+    method @Deprecated public String[] currentToCanonicalPackageNames(String[]);
+    method @Deprecated public void extendVerificationTimeout(int, int, long);
+    method @Deprecated public android.graphics.drawable.Drawable getActivityBanner(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.graphics.drawable.Drawable getActivityBanner(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.graphics.drawable.Drawable getActivityIcon(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.graphics.drawable.Drawable getActivityIcon(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.pm.ActivityInfo getActivityInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.graphics.drawable.Drawable getActivityLogo(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.graphics.drawable.Drawable getActivityLogo(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public java.util.List<android.content.IntentFilter> getAllIntentFilters(String);
+    method @Deprecated public java.util.List<android.content.pm.PermissionGroupInfo> getAllPermissionGroups(int);
+    method @Deprecated public android.graphics.drawable.Drawable getApplicationBanner(android.content.pm.ApplicationInfo);
+    method @Deprecated public android.graphics.drawable.Drawable getApplicationBanner(String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public int getApplicationEnabledSetting(String);
+    method @Deprecated public android.graphics.drawable.Drawable getApplicationIcon(android.content.pm.ApplicationInfo);
+    method @Deprecated public android.graphics.drawable.Drawable getApplicationIcon(String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.pm.ApplicationInfo getApplicationInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public CharSequence getApplicationLabel(android.content.pm.ApplicationInfo);
+    method @Deprecated public android.graphics.drawable.Drawable getApplicationLogo(android.content.pm.ApplicationInfo);
+    method @Deprecated public android.graphics.drawable.Drawable getApplicationLogo(String) throws android.content.pm.PackageManager.NameNotFoundException;
     method public android.content.pm.ChangedPackages getChangedPackages(int);
-    method public int getComponentEnabledSetting(android.content.ComponentName);
-    method public android.graphics.drawable.Drawable getDefaultActivityIcon();
-    method public android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo);
-    method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int);
-    method public java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int);
-    method public java.lang.String getInstallerPackageName(java.lang.String);
+    method @Deprecated public int getComponentEnabledSetting(android.content.ComponentName);
+    method @Deprecated public android.graphics.drawable.Drawable getDefaultActivityIcon();
+    method @Deprecated public android.graphics.drawable.Drawable getDrawable(String, int, android.content.pm.ApplicationInfo);
+    method @Deprecated public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int);
+    method @Deprecated public java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int);
+    method @Deprecated public String getInstallerPackageName(String);
     method public byte[] getInstantAppCookie();
     method public int getInstantAppCookieMaxBytes();
-    method public android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.Intent getLaunchIntentForPackage(java.lang.String);
-    method public android.content.Intent getLeanbackLaunchIntentForPackage(java.lang.String);
-    method public java.lang.String getNameForUid(int);
-    method public int[] getPackageGids(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public int[] getPackageGids(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.pm.PackageInfo getPackageInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.pm.PackageInfo getPackageInfo(android.content.pm.VersionedPackage, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.Intent getLaunchIntentForPackage(String);
+    method @Deprecated public android.content.Intent getLeanbackLaunchIntentForPackage(String);
+    method @Deprecated public String getNameForUid(int);
+    method @Deprecated public int[] getPackageGids(String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public int[] getPackageGids(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.pm.PackageInfo getPackageInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.pm.PackageInfo getPackageInfo(android.content.pm.VersionedPackage, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method public android.content.pm.PackageInstaller getPackageInstaller();
-    method public int getPackageUid(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public java.lang.String[] getPackagesForUid(int);
-    method public java.util.List<android.content.pm.PackageInfo> getPackagesHoldingPermissions(java.lang.String[], int);
-    method public android.content.pm.PermissionGroupInfo getPermissionGroupInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.pm.PermissionInfo getPermissionInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public int getPreferredActivities(java.util.List<android.content.IntentFilter>, java.util.List<android.content.ComponentName>, java.lang.String);
-    method public java.util.List<android.content.pm.PackageInfo> getPreferredPackages(int);
-    method public android.content.pm.ProviderInfo getProviderInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.pm.ActivityInfo getReceiverInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.res.Resources getResourcesForActivity(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.res.Resources getResourcesForApplication(android.content.pm.ApplicationInfo);
-    method public android.content.res.Resources getResourcesForApplication(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public android.content.pm.ServiceInfo getServiceInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public java.util.List<android.content.pm.SharedLibraryInfo> getSharedLibraries(int);
-    method public android.content.pm.FeatureInfo[] getSystemAvailableFeatures();
-    method public java.lang.String[] getSystemSharedLibraryNames();
-    method public java.lang.CharSequence getText(java.lang.String, int, android.content.pm.ApplicationInfo);
-    method public android.graphics.drawable.Drawable getUserBadgedDrawableForDensity(android.graphics.drawable.Drawable, android.os.UserHandle, android.graphics.Rect, int);
-    method public android.graphics.drawable.Drawable getUserBadgedIcon(android.graphics.drawable.Drawable, android.os.UserHandle);
-    method public java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle);
-    method public android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo);
-    method public boolean hasSystemFeature(java.lang.String);
-    method public boolean hasSystemFeature(java.lang.String, int);
+    method @Deprecated public int getPackageUid(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public String[] getPackagesForUid(int);
+    method @Deprecated public java.util.List<android.content.pm.PackageInfo> getPackagesHoldingPermissions(String[], int);
+    method @Deprecated public android.content.pm.PermissionGroupInfo getPermissionGroupInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.pm.PermissionInfo getPermissionInfo(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public int getPreferredActivities(java.util.List<android.content.IntentFilter>, java.util.List<android.content.ComponentName>, String);
+    method @Deprecated public java.util.List<android.content.pm.PackageInfo> getPreferredPackages(int);
+    method @Deprecated public android.content.pm.ProviderInfo getProviderInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.pm.ActivityInfo getReceiverInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.res.Resources getResourcesForActivity(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.res.Resources getResourcesForApplication(android.content.pm.ApplicationInfo);
+    method @Deprecated public android.content.res.Resources getResourcesForApplication(String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public android.content.pm.ServiceInfo getServiceInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated @NonNull public java.util.List<android.content.pm.SharedLibraryInfo> getSharedLibraries(int);
+    method @Deprecated public android.content.pm.FeatureInfo[] getSystemAvailableFeatures();
+    method @Deprecated public String[] getSystemSharedLibraryNames();
+    method @Deprecated public CharSequence getText(String, int, android.content.pm.ApplicationInfo);
+    method @Deprecated public android.graphics.drawable.Drawable getUserBadgedDrawableForDensity(android.graphics.drawable.Drawable, android.os.UserHandle, android.graphics.Rect, int);
+    method @Deprecated public android.graphics.drawable.Drawable getUserBadgedIcon(android.graphics.drawable.Drawable, android.os.UserHandle);
+    method @Deprecated public CharSequence getUserBadgedLabel(CharSequence, android.os.UserHandle);
+    method @Deprecated public android.content.res.XmlResourceParser getXml(String, int, android.content.pm.ApplicationInfo);
+    method @Deprecated public boolean hasSystemFeature(String);
+    method @Deprecated public boolean hasSystemFeature(String, int);
     method public boolean isInstantApp();
-    method public boolean isInstantApp(java.lang.String);
-    method public boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String);
-    method public boolean isSafeMode();
-    method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int);
-    method public java.util.List<android.content.pm.ProviderInfo> queryContentProviders(java.lang.String, int, int);
-    method public java.util.List<android.content.pm.InstrumentationInfo> queryInstrumentation(java.lang.String, int);
-    method public java.util.List<android.content.pm.ResolveInfo> queryIntentActivities(android.content.Intent, int);
-    method public java.util.List<android.content.pm.ResolveInfo> queryIntentActivityOptions(android.content.ComponentName, android.content.Intent[], android.content.Intent, int);
-    method public java.util.List<android.content.pm.ResolveInfo> queryIntentContentProviders(android.content.Intent, int);
-    method public java.util.List<android.content.pm.ResolveInfo> queryIntentServices(android.content.Intent, int);
-    method public java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public void removePackageFromPreferred(java.lang.String);
-    method public void removePermission(java.lang.String);
-    method public android.content.pm.ResolveInfo resolveActivity(android.content.Intent, int);
-    method public android.content.pm.ProviderInfo resolveContentProvider(java.lang.String, int);
-    method public android.content.pm.ResolveInfo resolveService(android.content.Intent, int);
-    method public android.content.pm.ResolveInfo resolveServiceAsUser(android.content.Intent, int, int);
-    method public void setApplicationCategoryHint(java.lang.String, int);
-    method public void setApplicationEnabledSetting(java.lang.String, int, int);
-    method public void setComponentEnabledSetting(android.content.ComponentName, int, int);
-    method public void setInstallerPackageName(java.lang.String, java.lang.String);
-    method public void updateInstantAppCookie(byte[]);
-    method public void verifyPendingInstall(int, int);
+    method public boolean isInstantApp(String);
+    method @Deprecated public boolean isPermissionRevokedByPolicy(String, String);
+    method @Deprecated public boolean isSafeMode();
+    method @Deprecated public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int);
+    method @Deprecated public java.util.List<android.content.pm.ProviderInfo> queryContentProviders(String, int, int);
+    method @Deprecated public java.util.List<android.content.pm.InstrumentationInfo> queryInstrumentation(String, int);
+    method @Deprecated public java.util.List<android.content.pm.ResolveInfo> queryIntentActivities(android.content.Intent, int);
+    method @Deprecated public java.util.List<android.content.pm.ResolveInfo> queryIntentActivityOptions(android.content.ComponentName, android.content.Intent[], android.content.Intent, int);
+    method @Deprecated public java.util.List<android.content.pm.ResolveInfo> queryIntentContentProviders(android.content.Intent, int);
+    method @Deprecated public java.util.List<android.content.pm.ResolveInfo> queryIntentServices(android.content.Intent, int);
+    method @Deprecated public java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @Deprecated public void removePackageFromPreferred(String);
+    method @Deprecated public void removePermission(String);
+    method @Deprecated public android.content.pm.ResolveInfo resolveActivity(android.content.Intent, int);
+    method @Deprecated public android.content.pm.ProviderInfo resolveContentProvider(String, int);
+    method @Deprecated public android.content.pm.ResolveInfo resolveService(android.content.Intent, int);
+    method @Deprecated public android.content.pm.ResolveInfo resolveServiceAsUser(android.content.Intent, int, int);
+    method public void setApplicationCategoryHint(String, int);
+    method @Deprecated public void setApplicationEnabledSetting(String, int, int);
+    method @Deprecated public void setComponentEnabledSetting(android.content.ComponentName, int, int);
+    method @Deprecated public void setInstallerPackageName(String, String);
+    method public void updateInstantAppCookie(@NonNull byte[]);
+    method @Deprecated public void verifyPendingInstall(int, int);
   }
 
-  public deprecated class MockResources extends android.content.res.Resources {
-    ctor public MockResources();
-    method public int getColor(int) throws android.content.res.Resources.NotFoundException;
-    method public android.content.res.ColorStateList getColorStateList(int) throws android.content.res.Resources.NotFoundException;
-    method public android.graphics.drawable.Drawable getDrawable(int) throws android.content.res.Resources.NotFoundException;
-    method public android.graphics.Movie getMovie(int) throws android.content.res.Resources.NotFoundException;
-    method public void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
+  @Deprecated public class MockResources extends android.content.res.Resources {
+    ctor @Deprecated public MockResources();
+    method @Deprecated public int getColor(int) throws android.content.res.Resources.NotFoundException;
+    method @Deprecated public android.content.res.ColorStateList getColorStateList(int) throws android.content.res.Resources.NotFoundException;
+    method @Deprecated public android.graphics.drawable.Drawable getDrawable(int) throws android.content.res.Resources.NotFoundException;
+    method @Deprecated public android.graphics.Movie getMovie(int) throws android.content.res.Resources.NotFoundException;
+    method @Deprecated public void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
   }
 
-  public deprecated class MockService {
-    method public static <T extends android.app.Service> void attachForTesting(android.app.Service, android.content.Context, java.lang.String, android.app.Application);
+  @Deprecated public class MockService {
+    method @Deprecated public static <T extends android.app.Service> void attachForTesting(android.app.Service, android.content.Context, String, android.app.Application);
   }
 
 }
diff --git a/test-mock/api/removed.txt b/test-mock/api/removed.txt
index bd109a8..1496c35 100644
--- a/test-mock/api/removed.txt
+++ b/test-mock/api/removed.txt
@@ -1,14 +1,15 @@
+// Signature format: 2.0
 package android.test.mock {
 
   public class MockContext extends android.content.Context {
     method public android.content.SharedPreferences getSharedPreferences(java.io.File, int);
-    method public java.io.File getSharedPreferencesPath(java.lang.String);
+    method public java.io.File getSharedPreferencesPath(String);
   }
 
-  public deprecated class MockPackageManager extends android.content.pm.PackageManager {
-    method public deprecated java.lang.String getDefaultBrowserPackageName(int);
-    method public deprecated boolean setDefaultBrowserPackageName(java.lang.String, int);
-    method public boolean setInstantAppCookie(byte[]);
+  @Deprecated public class MockPackageManager extends android.content.pm.PackageManager {
+    method @Deprecated public String getDefaultBrowserPackageName(int);
+    method @Deprecated public boolean setDefaultBrowserPackageName(String, int);
+    method public boolean setInstantAppCookie(@NonNull byte[]);
   }
 
 }
diff --git a/test-mock/api/system-current.txt b/test-mock/api/system-current.txt
index 2b968ae..f87785b 100644
--- a/test-mock/api/system-current.txt
+++ b/test-mock/api/system-current.txt
@@ -1,38 +1,39 @@
+// Signature format: 2.0
 package android.test.mock {
 
   public class MockContext extends android.content.Context {
     method public android.content.Context createCredentialProtectedStorageContext();
     method public java.io.File getPreloadsFileCache();
     method public boolean isCredentialProtectedStorage();
-    method public void sendBroadcast(android.content.Intent, java.lang.String, android.os.Bundle);
-    method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.os.Bundle);
-    method public void sendOrderedBroadcast(android.content.Intent, java.lang.String, android.os.Bundle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+    method public void sendBroadcast(android.content.Intent, String, android.os.Bundle);
+    method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, String, android.os.Bundle);
+    method public void sendOrderedBroadcast(android.content.Intent, String, android.os.Bundle, android.content.BroadcastReceiver, android.os.Handler, int, String, android.os.Bundle);
   }
 
-  public deprecated class MockPackageManager extends android.content.pm.PackageManager {
+  @Deprecated public class MockPackageManager extends android.content.pm.PackageManager {
     method public void addOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
     method public boolean arePermissionsIndividuallyControlled();
-    method public java.util.List<android.content.IntentFilter> getAllIntentFilters(java.lang.String);
-    method public java.lang.String getDefaultBrowserPackageNameAsUser(int);
+    method @Deprecated public java.util.List<android.content.IntentFilter> getAllIntentFilters(String);
+    method public String getDefaultBrowserPackageNameAsUser(int);
     method public java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
-    method public android.graphics.drawable.Drawable getInstantAppIcon(java.lang.String);
+    method public android.graphics.drawable.Drawable getInstantAppIcon(String);
     method public android.content.ComponentName getInstantAppInstallerComponent();
     method public android.content.ComponentName getInstantAppResolverSettingsComponent();
     method public java.util.List<android.content.pm.InstantAppInfo> getInstantApps();
-    method public java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(java.lang.String);
-    method public int getIntentVerificationStatusAsUser(java.lang.String, int);
-    method public int getPermissionFlags(java.lang.String, java.lang.String, android.os.UserHandle);
-    method public void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
-    method public int installExistingPackage(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public int installExistingPackage(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
-    method public void registerDexModule(java.lang.String, android.content.pm.PackageManager.DexModuleRegisterCallback);
+    method public java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(String);
+    method public int getIntentVerificationStatusAsUser(String, int);
+    method public int getPermissionFlags(String, String, android.os.UserHandle);
+    method public void grantRuntimePermission(String, String, android.os.UserHandle);
+    method public int installExistingPackage(String) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public int installExistingPackage(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+    method public void registerDexModule(String, @Nullable android.content.pm.PackageManager.DexModuleRegisterCallback);
     method public void removeOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
-    method public void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
-    method public boolean setDefaultBrowserPackageNameAsUser(java.lang.String, int);
-    method public java.lang.String[] setPackagesSuspended(java.lang.String[], boolean, android.os.PersistableBundle, android.os.PersistableBundle, java.lang.String);
-    method public void setUpdateAvailable(java.lang.String, boolean);
-    method public boolean updateIntentVerificationStatusAsUser(java.lang.String, int, int);
-    method public void updatePermissionFlags(java.lang.String, java.lang.String, int, int, android.os.UserHandle);
+    method public void revokeRuntimePermission(String, String, android.os.UserHandle);
+    method public boolean setDefaultBrowserPackageNameAsUser(String, int);
+    method public String[] setPackagesSuspended(String[], boolean, android.os.PersistableBundle, android.os.PersistableBundle, String);
+    method public void setUpdateAvailable(String, boolean);
+    method public boolean updateIntentVerificationStatusAsUser(String, int, int);
+    method public void updatePermissionFlags(String, String, int, int, android.os.UserHandle);
     method public void verifyIntentFilter(int, int, java.util.List<java.lang.String>);
   }
 
diff --git a/test-mock/api/system-removed.txt b/test-mock/api/system-removed.txt
index e69de29..d802177 100644
--- a/test-mock/api/system-removed.txt
+++ b/test-mock/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-mock/api/test-current.txt b/test-mock/api/test-current.txt
index 8b2c815..ab10800 100644
--- a/test-mock/api/test-current.txt
+++ b/test-mock/api/test-current.txt
@@ -1,17 +1,18 @@
+// Signature format: 2.0
 package android.test.mock {
 
-  public deprecated class MockPackageManager extends android.content.pm.PackageManager {
+  @Deprecated public class MockPackageManager extends android.content.pm.PackageManager {
     method public boolean arePermissionsIndividuallyControlled();
-    method public java.lang.String getDefaultBrowserPackageNameAsUser(int);
-    method public int getInstallReason(java.lang.String, android.os.UserHandle);
+    method public String getDefaultBrowserPackageNameAsUser(int);
+    method public int getInstallReason(String, android.os.UserHandle);
     method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplicationsAsUser(int, int);
     method public java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
-    method public java.lang.String[] getNamesForUids(int[]);
-    method public java.lang.String getPermissionControllerPackageName();
-    method public java.lang.String getServicesSystemSharedLibraryPackageName();
-    method public java.lang.String getSharedSystemSharedLibraryPackageName();
-    method public void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
-    method public void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
+    method public String[] getNamesForUids(int[]);
+    method public String getPermissionControllerPackageName();
+    method @NonNull public String getServicesSystemSharedLibraryPackageName();
+    method @NonNull public String getSharedSystemSharedLibraryPackageName();
+    method public void grantRuntimePermission(String, String, android.os.UserHandle);
+    method public void revokeRuntimePermission(String, String, android.os.UserHandle);
   }
 
 }
diff --git a/test-mock/api/test-removed.txt b/test-mock/api/test-removed.txt
index e69de29..d802177 100644
--- a/test-mock/api/test-removed.txt
+++ b/test-mock/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-runner/api/current.txt b/test-runner/api/current.txt
index 4ba1b8f..c093ac7 100644
--- a/test-runner/api/current.txt
+++ b/test-runner/api/current.txt
@@ -1,102 +1,103 @@
+// Signature format: 2.0
 package android.test {
 
-  public abstract deprecated class ActivityInstrumentationTestCase<T extends android.app.Activity> extends android.test.ActivityTestCase {
-    ctor public ActivityInstrumentationTestCase(java.lang.String, java.lang.Class<T>);
-    ctor public ActivityInstrumentationTestCase(java.lang.String, java.lang.Class<T>, boolean);
-    method public T getActivity();
-    method public void testActivityTestCaseSetUpProperly() throws java.lang.Exception;
+  @Deprecated public abstract class ActivityInstrumentationTestCase<T extends android.app.Activity> extends android.test.ActivityTestCase {
+    ctor @Deprecated public ActivityInstrumentationTestCase(String, Class<T>);
+    ctor @Deprecated public ActivityInstrumentationTestCase(String, Class<T>, boolean);
+    method @Deprecated public T getActivity();
+    method @Deprecated public void testActivityTestCaseSetUpProperly() throws java.lang.Exception;
   }
 
-  public abstract deprecated class ActivityInstrumentationTestCase2<T extends android.app.Activity> extends android.test.ActivityTestCase {
-    ctor public deprecated ActivityInstrumentationTestCase2(java.lang.String, java.lang.Class<T>);
-    ctor public ActivityInstrumentationTestCase2(java.lang.Class<T>);
-    method public T getActivity();
-    method public void setActivityInitialTouchMode(boolean);
-    method public void setActivityIntent(android.content.Intent);
+  @Deprecated public abstract class ActivityInstrumentationTestCase2<T extends android.app.Activity> extends android.test.ActivityTestCase {
+    ctor @Deprecated public ActivityInstrumentationTestCase2(String, Class<T>);
+    ctor @Deprecated public ActivityInstrumentationTestCase2(Class<T>);
+    method @Deprecated public T getActivity();
+    method @Deprecated public void setActivityInitialTouchMode(boolean);
+    method @Deprecated public void setActivityIntent(android.content.Intent);
   }
 
-  public abstract deprecated class ActivityTestCase extends android.test.InstrumentationTestCase {
-    ctor public ActivityTestCase();
-    method protected android.app.Activity getActivity();
-    method protected void scrubClass(java.lang.Class<?>) throws java.lang.IllegalAccessException;
-    method protected void setActivity(android.app.Activity);
+  @Deprecated public abstract class ActivityTestCase extends android.test.InstrumentationTestCase {
+    ctor @Deprecated public ActivityTestCase();
+    method @Deprecated protected android.app.Activity getActivity();
+    method @Deprecated protected void scrubClass(Class<?>) throws java.lang.IllegalAccessException;
+    method @Deprecated protected void setActivity(android.app.Activity);
   }
 
-  public abstract deprecated class ActivityUnitTestCase<T extends android.app.Activity> extends android.test.ActivityTestCase {
-    ctor public ActivityUnitTestCase(java.lang.Class<T>);
-    method public T getActivity();
-    method public int getFinishedActivityRequest();
-    method public int getRequestedOrientation();
-    method public android.content.Intent getStartedActivityIntent();
-    method public int getStartedActivityRequest();
-    method public boolean isFinishCalled();
-    method public void setActivityContext(android.content.Context);
-    method public void setApplication(android.app.Application);
-    method protected T startActivity(android.content.Intent, android.os.Bundle, java.lang.Object);
+  @Deprecated public abstract class ActivityUnitTestCase<T extends android.app.Activity> extends android.test.ActivityTestCase {
+    ctor @Deprecated public ActivityUnitTestCase(Class<T>);
+    method @Deprecated public T getActivity();
+    method @Deprecated public int getFinishedActivityRequest();
+    method @Deprecated public int getRequestedOrientation();
+    method @Deprecated public android.content.Intent getStartedActivityIntent();
+    method @Deprecated public int getStartedActivityRequest();
+    method @Deprecated public boolean isFinishCalled();
+    method @Deprecated public void setActivityContext(android.content.Context);
+    method @Deprecated public void setApplication(android.app.Application);
+    method @Deprecated protected T startActivity(android.content.Intent, android.os.Bundle, Object);
   }
 
-  public deprecated class AndroidTestRunner extends junit.runner.BaseTestRunner {
-    ctor public AndroidTestRunner();
-    method public void addTestListener(junit.framework.TestListener);
-    method public void clearTestListeners();
-    method protected junit.framework.TestResult createTestResult();
-    method public java.util.List<junit.framework.TestCase> getTestCases();
-    method public java.lang.String getTestClassName();
-    method public junit.framework.TestResult getTestResult();
-    method protected java.lang.Class loadSuiteClass(java.lang.String) throws java.lang.ClassNotFoundException;
-    method protected void runFailed(java.lang.String);
-    method public void runTest();
-    method public void runTest(junit.framework.TestResult);
-    method public void setContext(android.content.Context);
-    method public deprecated void setInstrumentaiton(android.app.Instrumentation);
-    method public void setInstrumentation(android.app.Instrumentation);
-    method public void setTest(junit.framework.Test);
-    method public void setTestClassName(java.lang.String, java.lang.String);
-    method public void testEnded(java.lang.String);
-    method public void testFailed(int, junit.framework.Test, java.lang.Throwable);
-    method public void testStarted(java.lang.String);
+  @Deprecated public class AndroidTestRunner extends junit.runner.BaseTestRunner {
+    ctor @Deprecated public AndroidTestRunner();
+    method @Deprecated public void addTestListener(junit.framework.TestListener);
+    method @Deprecated public void clearTestListeners();
+    method @Deprecated protected junit.framework.TestResult createTestResult();
+    method @Deprecated public java.util.List<junit.framework.TestCase> getTestCases();
+    method @Deprecated public String getTestClassName();
+    method @Deprecated public junit.framework.TestResult getTestResult();
+    method @Deprecated protected Class loadSuiteClass(String) throws java.lang.ClassNotFoundException;
+    method @Deprecated protected void runFailed(String);
+    method @Deprecated public void runTest();
+    method @Deprecated public void runTest(junit.framework.TestResult);
+    method @Deprecated public void setContext(android.content.Context);
+    method @Deprecated public void setInstrumentaiton(android.app.Instrumentation);
+    method @Deprecated public void setInstrumentation(android.app.Instrumentation);
+    method @Deprecated public void setTest(junit.framework.Test);
+    method @Deprecated public void setTestClassName(String, String);
+    method @Deprecated public void testEnded(String);
+    method @Deprecated public void testFailed(int, junit.framework.Test, Throwable);
+    method @Deprecated public void testStarted(String);
   }
 
-  public abstract deprecated class ApplicationTestCase<T extends android.app.Application> extends android.test.AndroidTestCase {
-    ctor public ApplicationTestCase(java.lang.Class<T>);
-    method protected final void createApplication();
-    method public T getApplication();
-    method public android.content.Context getSystemContext();
-    method protected final void terminateApplication();
-    method public final void testApplicationTestCaseSetUpProperly() throws java.lang.Exception;
+  @Deprecated public abstract class ApplicationTestCase<T extends android.app.Application> extends android.test.AndroidTestCase {
+    ctor @Deprecated public ApplicationTestCase(Class<T>);
+    method @Deprecated protected final void createApplication();
+    method @Deprecated public T getApplication();
+    method @Deprecated public android.content.Context getSystemContext();
+    method @Deprecated protected final void terminateApplication();
+    method @Deprecated public final void testApplicationTestCaseSetUpProperly() throws java.lang.Exception;
   }
 
-  public deprecated class AssertionFailedError extends java.lang.Error {
-    ctor public AssertionFailedError();
-    ctor public AssertionFailedError(java.lang.String);
+  @Deprecated public class AssertionFailedError extends java.lang.Error {
+    ctor @Deprecated public AssertionFailedError();
+    ctor @Deprecated public AssertionFailedError(String);
   }
 
-  public deprecated class ComparisonFailure extends android.test.AssertionFailedError {
-    ctor public ComparisonFailure(java.lang.String, java.lang.String, java.lang.String);
+  @Deprecated public class ComparisonFailure extends android.test.AssertionFailedError {
+    ctor @Deprecated public ComparisonFailure(String, String, String);
   }
 
-  public deprecated class InstrumentationTestRunner extends android.app.Instrumentation implements android.test.TestSuiteProvider {
-    ctor public InstrumentationTestRunner();
-    method public junit.framework.TestSuite getAllTests();
-    method protected android.test.AndroidTestRunner getAndroidTestRunner();
-    method public android.os.Bundle getArguments();
-    method public java.lang.ClassLoader getLoader();
-    method public junit.framework.TestSuite getTestSuite();
-    field public static final java.lang.String REPORT_KEY_NAME_CLASS = "class";
-    field public static final java.lang.String REPORT_KEY_NAME_TEST = "test";
-    field public static final java.lang.String REPORT_KEY_NUM_CURRENT = "current";
-    field public static final java.lang.String REPORT_KEY_NUM_TOTAL = "numtests";
-    field public static final java.lang.String REPORT_KEY_STACK = "stack";
-    field public static final java.lang.String REPORT_VALUE_ID = "InstrumentationTestRunner";
-    field public static final int REPORT_VALUE_RESULT_ERROR = -1; // 0xffffffff
-    field public static final int REPORT_VALUE_RESULT_FAILURE = -2; // 0xfffffffe
-    field public static final int REPORT_VALUE_RESULT_OK = 0; // 0x0
-    field public static final int REPORT_VALUE_RESULT_START = 1; // 0x1
+  @Deprecated public class InstrumentationTestRunner extends android.app.Instrumentation implements android.test.TestSuiteProvider {
+    ctor @Deprecated public InstrumentationTestRunner();
+    method @Deprecated public junit.framework.TestSuite getAllTests();
+    method @Deprecated protected android.test.AndroidTestRunner getAndroidTestRunner();
+    method @Deprecated public android.os.Bundle getArguments();
+    method @Deprecated public ClassLoader getLoader();
+    method @Deprecated public junit.framework.TestSuite getTestSuite();
+    field @Deprecated public static final String REPORT_KEY_NAME_CLASS = "class";
+    field @Deprecated public static final String REPORT_KEY_NAME_TEST = "test";
+    field @Deprecated public static final String REPORT_KEY_NUM_CURRENT = "current";
+    field @Deprecated public static final String REPORT_KEY_NUM_TOTAL = "numtests";
+    field @Deprecated public static final String REPORT_KEY_STACK = "stack";
+    field @Deprecated public static final String REPORT_VALUE_ID = "InstrumentationTestRunner";
+    field @Deprecated public static final int REPORT_VALUE_RESULT_ERROR = -1; // 0xffffffff
+    field @Deprecated public static final int REPORT_VALUE_RESULT_FAILURE = -2; // 0xfffffffe
+    field @Deprecated public static final int REPORT_VALUE_RESULT_OK = 0; // 0x0
+    field @Deprecated public static final int REPORT_VALUE_RESULT_START = 1; // 0x1
   }
 
-  public deprecated class IsolatedContext extends android.content.ContextWrapper {
-    ctor public IsolatedContext(android.content.ContentResolver, android.content.Context);
-    method public java.util.List<android.content.Intent> getAndClearBroadcastIntents();
+  @Deprecated public class IsolatedContext extends android.content.ContextWrapper {
+    ctor @Deprecated public IsolatedContext(android.content.ContentResolver, android.content.Context);
+    method @Deprecated public java.util.List<android.content.Intent> getAndClearBroadcastIntents();
   }
 
   public class LoaderTestCase extends android.test.AndroidTestCase {
@@ -104,184 +105,184 @@
     method public <T> T getLoaderResultSynchronously(android.content.Loader<T>);
   }
 
-  public final deprecated class MoreAsserts {
-    method public static void assertAssignableFrom(java.lang.Class<?>, java.lang.Object);
-    method public static void assertAssignableFrom(java.lang.Class<?>, java.lang.Class<?>);
-    method public static java.util.regex.MatchResult assertContainsRegex(java.lang.String, java.lang.String, java.lang.String);
-    method public static java.util.regex.MatchResult assertContainsRegex(java.lang.String, java.lang.String);
-    method public static void assertContentsInAnyOrder(java.lang.String, java.lang.Iterable<?>, java.lang.Object...);
-    method public static void assertContentsInAnyOrder(java.lang.Iterable<?>, java.lang.Object...);
-    method public static void assertContentsInOrder(java.lang.String, java.lang.Iterable<?>, java.lang.Object...);
-    method public static void assertContentsInOrder(java.lang.Iterable<?>, java.lang.Object...);
-    method public static void assertEmpty(java.lang.String, java.lang.Iterable<?>);
-    method public static void assertEmpty(java.lang.Iterable<?>);
-    method public static void assertEmpty(java.lang.String, java.util.Map<?, ?>);
-    method public static void assertEmpty(java.util.Map<?, ?>);
-    method public static void assertEquals(java.lang.String, byte[], byte[]);
-    method public static void assertEquals(byte[], byte[]);
-    method public static void assertEquals(java.lang.String, int[], int[]);
-    method public static void assertEquals(int[], int[]);
-    method public static void assertEquals(java.lang.String, double[], double[]);
-    method public static void assertEquals(double[], double[]);
-    method public static void assertEquals(java.lang.String, java.lang.Object[], java.lang.Object[]);
-    method public static void assertEquals(java.lang.Object[], java.lang.Object[]);
-    method public static void assertEquals(java.lang.String, java.util.Set<?>, java.util.Set<?>);
-    method public static void assertEquals(java.util.Set<?>, java.util.Set<?>);
-    method public static java.util.regex.MatchResult assertMatchesRegex(java.lang.String, java.lang.String, java.lang.String);
-    method public static java.util.regex.MatchResult assertMatchesRegex(java.lang.String, java.lang.String);
-    method public static void assertNotContainsRegex(java.lang.String, java.lang.String, java.lang.String);
-    method public static void assertNotContainsRegex(java.lang.String, java.lang.String);
-    method public static void assertNotEmpty(java.lang.String, java.lang.Iterable<?>);
-    method public static void assertNotEmpty(java.lang.Iterable<?>);
-    method public static void assertNotEmpty(java.lang.String, java.util.Map<?, ?>);
-    method public static void assertNotEmpty(java.util.Map<?, ?>);
-    method public static void assertNotEqual(java.lang.String, java.lang.Object, java.lang.Object);
-    method public static void assertNotEqual(java.lang.Object, java.lang.Object);
-    method public static void assertNotMatchesRegex(java.lang.String, java.lang.String, java.lang.String);
-    method public static void assertNotMatchesRegex(java.lang.String, java.lang.String);
-    method public static void checkEqualsAndHashCodeMethods(java.lang.String, java.lang.Object, java.lang.Object, boolean);
-    method public static void checkEqualsAndHashCodeMethods(java.lang.Object, java.lang.Object, boolean);
+  @Deprecated public final class MoreAsserts {
+    method @Deprecated public static void assertAssignableFrom(Class<?>, Object);
+    method @Deprecated public static void assertAssignableFrom(Class<?>, Class<?>);
+    method @Deprecated public static java.util.regex.MatchResult assertContainsRegex(String, String, String);
+    method @Deprecated public static java.util.regex.MatchResult assertContainsRegex(String, String);
+    method @Deprecated public static void assertContentsInAnyOrder(String, Iterable<?>, java.lang.Object...);
+    method @Deprecated public static void assertContentsInAnyOrder(Iterable<?>, java.lang.Object...);
+    method @Deprecated public static void assertContentsInOrder(String, Iterable<?>, java.lang.Object...);
+    method @Deprecated public static void assertContentsInOrder(Iterable<?>, java.lang.Object...);
+    method @Deprecated public static void assertEmpty(String, Iterable<?>);
+    method @Deprecated public static void assertEmpty(Iterable<?>);
+    method @Deprecated public static void assertEmpty(String, java.util.Map<?,?>);
+    method @Deprecated public static void assertEmpty(java.util.Map<?,?>);
+    method @Deprecated public static void assertEquals(String, byte[], byte[]);
+    method @Deprecated public static void assertEquals(byte[], byte[]);
+    method @Deprecated public static void assertEquals(String, int[], int[]);
+    method @Deprecated public static void assertEquals(int[], int[]);
+    method @Deprecated public static void assertEquals(String, double[], double[]);
+    method @Deprecated public static void assertEquals(double[], double[]);
+    method @Deprecated public static void assertEquals(String, Object[], Object[]);
+    method @Deprecated public static void assertEquals(Object[], Object[]);
+    method @Deprecated public static void assertEquals(String, java.util.Set<?>, java.util.Set<?>);
+    method @Deprecated public static void assertEquals(java.util.Set<?>, java.util.Set<?>);
+    method @Deprecated public static java.util.regex.MatchResult assertMatchesRegex(String, String, String);
+    method @Deprecated public static java.util.regex.MatchResult assertMatchesRegex(String, String);
+    method @Deprecated public static void assertNotContainsRegex(String, String, String);
+    method @Deprecated public static void assertNotContainsRegex(String, String);
+    method @Deprecated public static void assertNotEmpty(String, Iterable<?>);
+    method @Deprecated public static void assertNotEmpty(Iterable<?>);
+    method @Deprecated public static void assertNotEmpty(String, java.util.Map<?,?>);
+    method @Deprecated public static void assertNotEmpty(java.util.Map<?,?>);
+    method @Deprecated public static void assertNotEqual(String, Object, Object);
+    method @Deprecated public static void assertNotEqual(Object, Object);
+    method @Deprecated public static void assertNotMatchesRegex(String, String, String);
+    method @Deprecated public static void assertNotMatchesRegex(String, String);
+    method @Deprecated public static void checkEqualsAndHashCodeMethods(String, Object, Object, boolean);
+    method @Deprecated public static void checkEqualsAndHashCodeMethods(Object, Object, boolean);
   }
 
-  public abstract deprecated class ProviderTestCase<T extends android.content.ContentProvider> extends android.test.InstrumentationTestCase {
-    ctor public ProviderTestCase(java.lang.Class<T>, java.lang.String);
-    method public android.test.mock.MockContentResolver getMockContentResolver();
-    method public android.test.IsolatedContext getMockContext();
-    method public T getProvider();
-    method public static <T extends android.content.ContentProvider> android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.Class<T>, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+  @Deprecated public abstract class ProviderTestCase<T extends android.content.ContentProvider> extends android.test.InstrumentationTestCase {
+    ctor @Deprecated public ProviderTestCase(Class<T>, String);
+    method @Deprecated public android.test.mock.MockContentResolver getMockContentResolver();
+    method @Deprecated public android.test.IsolatedContext getMockContext();
+    method @Deprecated public T getProvider();
+    method @Deprecated public static <T extends android.content.ContentProvider> android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, Class<T>, String, String, int, String) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
   }
 
   public abstract class ProviderTestCase2<T extends android.content.ContentProvider> extends android.test.AndroidTestCase {
-    ctor public ProviderTestCase2(java.lang.Class<T>, java.lang.String);
+    ctor public ProviderTestCase2(Class<T>, String);
     method public android.test.mock.MockContentResolver getMockContentResolver();
     method public android.test.IsolatedContext getMockContext();
     method public T getProvider();
-    method public static <T extends android.content.ContentProvider> android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.String, java.lang.Class<T>, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method public static <T extends android.content.ContentProvider> android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, String, Class<T>, String, String, int, String) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
   }
 
-  public deprecated class RenamingDelegatingContext extends android.content.ContextWrapper {
-    ctor public RenamingDelegatingContext(android.content.Context, java.lang.String);
-    ctor public RenamingDelegatingContext(android.content.Context, android.content.Context, java.lang.String);
-    method public java.lang.String getDatabasePrefix();
-    method public void makeExistingFilesAndDbsAccessible();
-    method public static <T extends android.content.ContentProvider> T providerWithRenamedContext(java.lang.Class<T>, android.content.Context, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
-    method public static <T extends android.content.ContentProvider> T providerWithRenamedContext(java.lang.Class<T>, android.content.Context, java.lang.String, boolean) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+  @Deprecated public class RenamingDelegatingContext extends android.content.ContextWrapper {
+    ctor @Deprecated public RenamingDelegatingContext(android.content.Context, String);
+    ctor @Deprecated public RenamingDelegatingContext(android.content.Context, android.content.Context, String);
+    method @Deprecated public String getDatabasePrefix();
+    method @Deprecated public void makeExistingFilesAndDbsAccessible();
+    method @Deprecated public static <T extends android.content.ContentProvider> T providerWithRenamedContext(Class<T>, android.content.Context, String) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+    method @Deprecated public static <T extends android.content.ContentProvider> T providerWithRenamedContext(Class<T>, android.content.Context, String, boolean) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
   }
 
-  public abstract deprecated class ServiceTestCase<T extends android.app.Service> extends android.test.AndroidTestCase {
-    ctor public ServiceTestCase(java.lang.Class<T>);
-    method protected android.os.IBinder bindService(android.content.Intent);
-    method public android.app.Application getApplication();
-    method public T getService();
-    method public android.content.Context getSystemContext();
-    method public void setApplication(android.app.Application);
-    method protected void setupService();
-    method protected void shutdownService();
-    method protected void startService(android.content.Intent);
-    method public void testServiceTestCaseSetUpProperly() throws java.lang.Exception;
+  @Deprecated public abstract class ServiceTestCase<T extends android.app.Service> extends android.test.AndroidTestCase {
+    ctor @Deprecated public ServiceTestCase(Class<T>);
+    method @Deprecated protected android.os.IBinder bindService(android.content.Intent);
+    method @Deprecated public android.app.Application getApplication();
+    method @Deprecated public T getService();
+    method @Deprecated public android.content.Context getSystemContext();
+    method @Deprecated public void setApplication(android.app.Application);
+    method @Deprecated protected void setupService();
+    method @Deprecated protected void shutdownService();
+    method @Deprecated protected void startService(android.content.Intent);
+    method @Deprecated public void testServiceTestCaseSetUpProperly() throws java.lang.Exception;
   }
 
-  public abstract deprecated class SingleLaunchActivityTestCase<T extends android.app.Activity> extends android.test.InstrumentationTestCase {
-    ctor public SingleLaunchActivityTestCase(java.lang.String, java.lang.Class<T>);
-    method public T getActivity();
-    method public void testActivityTestCaseSetUpProperly() throws java.lang.Exception;
+  @Deprecated public abstract class SingleLaunchActivityTestCase<T extends android.app.Activity> extends android.test.InstrumentationTestCase {
+    ctor @Deprecated public SingleLaunchActivityTestCase(String, Class<T>);
+    method @Deprecated public T getActivity();
+    method @Deprecated public void testActivityTestCaseSetUpProperly() throws java.lang.Exception;
   }
 
-  public deprecated class SyncBaseInstrumentation extends android.test.InstrumentationTestCase {
-    ctor public SyncBaseInstrumentation();
-    method protected void cancelSyncsandDisableAutoSync();
-    method protected void syncProvider(android.net.Uri, java.lang.String, java.lang.String) throws java.lang.Exception;
+  @Deprecated public class SyncBaseInstrumentation extends android.test.InstrumentationTestCase {
+    ctor @Deprecated public SyncBaseInstrumentation();
+    method @Deprecated protected void cancelSyncsandDisableAutoSync();
+    method @Deprecated protected void syncProvider(android.net.Uri, String, String) throws java.lang.Exception;
   }
 
-  public abstract deprecated interface TestSuiteProvider {
-    method public abstract junit.framework.TestSuite getTestSuite();
+  @Deprecated public interface TestSuiteProvider {
+    method @Deprecated public junit.framework.TestSuite getTestSuite();
   }
 
-  public deprecated class TouchUtils {
-    ctor public TouchUtils();
-    method public static void clickView(android.test.InstrumentationTestCase, android.view.View);
-    method public static deprecated void drag(android.test.ActivityInstrumentationTestCase, float, float, float, float, int);
-    method public static void drag(android.test.InstrumentationTestCase, float, float, float, float, int);
-    method public static deprecated void dragQuarterScreenDown(android.test.ActivityInstrumentationTestCase);
-    method public static void dragQuarterScreenDown(android.test.InstrumentationTestCase, android.app.Activity);
-    method public static deprecated void dragQuarterScreenUp(android.test.ActivityInstrumentationTestCase);
-    method public static void dragQuarterScreenUp(android.test.InstrumentationTestCase, android.app.Activity);
-    method public static deprecated int dragViewBy(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int);
-    method public static deprecated int dragViewBy(android.test.InstrumentationTestCase, android.view.View, int, int, int);
-    method public static deprecated int dragViewTo(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int);
-    method public static int dragViewTo(android.test.InstrumentationTestCase, android.view.View, int, int, int);
-    method public static deprecated void dragViewToBottom(android.test.ActivityInstrumentationTestCase, android.view.View);
-    method public static void dragViewToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.View);
-    method public static deprecated void dragViewToBottom(android.test.ActivityInstrumentationTestCase, android.view.View, int);
-    method public static void dragViewToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.View, int);
-    method public static deprecated void dragViewToTop(android.test.ActivityInstrumentationTestCase, android.view.View);
-    method public static deprecated void dragViewToTop(android.test.ActivityInstrumentationTestCase, android.view.View, int);
-    method public static void dragViewToTop(android.test.InstrumentationTestCase, android.view.View);
-    method public static void dragViewToTop(android.test.InstrumentationTestCase, android.view.View, int);
-    method public static deprecated int dragViewToX(android.test.ActivityInstrumentationTestCase, android.view.View, int, int);
-    method public static int dragViewToX(android.test.InstrumentationTestCase, android.view.View, int, int);
-    method public static deprecated int dragViewToY(android.test.ActivityInstrumentationTestCase, android.view.View, int, int);
-    method public static int dragViewToY(android.test.InstrumentationTestCase, android.view.View, int, int);
-    method public static deprecated void longClickView(android.test.ActivityInstrumentationTestCase, android.view.View);
-    method public static void longClickView(android.test.InstrumentationTestCase, android.view.View);
-    method public static deprecated void scrollToBottom(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup);
-    method public static void scrollToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup);
-    method public static deprecated void scrollToTop(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup);
-    method public static void scrollToTop(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup);
-    method public static void tapView(android.test.InstrumentationTestCase, android.view.View);
-    method public static void touchAndCancelView(android.test.InstrumentationTestCase, android.view.View);
+  @Deprecated public class TouchUtils {
+    ctor @Deprecated public TouchUtils();
+    method @Deprecated public static void clickView(android.test.InstrumentationTestCase, android.view.View);
+    method @Deprecated public static void drag(android.test.ActivityInstrumentationTestCase, float, float, float, float, int);
+    method @Deprecated public static void drag(android.test.InstrumentationTestCase, float, float, float, float, int);
+    method @Deprecated public static void dragQuarterScreenDown(android.test.ActivityInstrumentationTestCase);
+    method @Deprecated public static void dragQuarterScreenDown(android.test.InstrumentationTestCase, android.app.Activity);
+    method @Deprecated public static void dragQuarterScreenUp(android.test.ActivityInstrumentationTestCase);
+    method @Deprecated public static void dragQuarterScreenUp(android.test.InstrumentationTestCase, android.app.Activity);
+    method @Deprecated public static int dragViewBy(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int);
+    method @Deprecated public static int dragViewBy(android.test.InstrumentationTestCase, android.view.View, int, int, int);
+    method @Deprecated public static int dragViewTo(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int);
+    method @Deprecated public static int dragViewTo(android.test.InstrumentationTestCase, android.view.View, int, int, int);
+    method @Deprecated public static void dragViewToBottom(android.test.ActivityInstrumentationTestCase, android.view.View);
+    method @Deprecated public static void dragViewToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.View);
+    method @Deprecated public static void dragViewToBottom(android.test.ActivityInstrumentationTestCase, android.view.View, int);
+    method @Deprecated public static void dragViewToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.View, int);
+    method @Deprecated public static void dragViewToTop(android.test.ActivityInstrumentationTestCase, android.view.View);
+    method @Deprecated public static void dragViewToTop(android.test.ActivityInstrumentationTestCase, android.view.View, int);
+    method @Deprecated public static void dragViewToTop(android.test.InstrumentationTestCase, android.view.View);
+    method @Deprecated public static void dragViewToTop(android.test.InstrumentationTestCase, android.view.View, int);
+    method @Deprecated public static int dragViewToX(android.test.ActivityInstrumentationTestCase, android.view.View, int, int);
+    method @Deprecated public static int dragViewToX(android.test.InstrumentationTestCase, android.view.View, int, int);
+    method @Deprecated public static int dragViewToY(android.test.ActivityInstrumentationTestCase, android.view.View, int, int);
+    method @Deprecated public static int dragViewToY(android.test.InstrumentationTestCase, android.view.View, int, int);
+    method @Deprecated public static void longClickView(android.test.ActivityInstrumentationTestCase, android.view.View);
+    method @Deprecated public static void longClickView(android.test.InstrumentationTestCase, android.view.View);
+    method @Deprecated public static void scrollToBottom(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup);
+    method @Deprecated public static void scrollToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup);
+    method @Deprecated public static void scrollToTop(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup);
+    method @Deprecated public static void scrollToTop(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup);
+    method @Deprecated public static void tapView(android.test.InstrumentationTestCase, android.view.View);
+    method @Deprecated public static void touchAndCancelView(android.test.InstrumentationTestCase, android.view.View);
   }
 
-  public deprecated class ViewAsserts {
-    method public static void assertBaselineAligned(android.view.View, android.view.View);
-    method public static void assertBottomAligned(android.view.View, android.view.View);
-    method public static void assertBottomAligned(android.view.View, android.view.View, int);
-    method public static void assertGroupContains(android.view.ViewGroup, android.view.View);
-    method public static void assertGroupIntegrity(android.view.ViewGroup);
-    method public static void assertGroupNotContains(android.view.ViewGroup, android.view.View);
-    method public static void assertHasScreenCoordinates(android.view.View, android.view.View, int, int);
-    method public static void assertHorizontalCenterAligned(android.view.View, android.view.View);
-    method public static void assertLeftAligned(android.view.View, android.view.View);
-    method public static void assertLeftAligned(android.view.View, android.view.View, int);
-    method public static void assertOffScreenAbove(android.view.View, android.view.View);
-    method public static void assertOffScreenBelow(android.view.View, android.view.View);
-    method public static void assertOnScreen(android.view.View, android.view.View);
-    method public static void assertRightAligned(android.view.View, android.view.View);
-    method public static void assertRightAligned(android.view.View, android.view.View, int);
-    method public static void assertTopAligned(android.view.View, android.view.View);
-    method public static void assertTopAligned(android.view.View, android.view.View, int);
-    method public static void assertVerticalCenterAligned(android.view.View, android.view.View);
+  @Deprecated public class ViewAsserts {
+    method @Deprecated public static void assertBaselineAligned(android.view.View, android.view.View);
+    method @Deprecated public static void assertBottomAligned(android.view.View, android.view.View);
+    method @Deprecated public static void assertBottomAligned(android.view.View, android.view.View, int);
+    method @Deprecated public static void assertGroupContains(android.view.ViewGroup, android.view.View);
+    method @Deprecated public static void assertGroupIntegrity(android.view.ViewGroup);
+    method @Deprecated public static void assertGroupNotContains(android.view.ViewGroup, android.view.View);
+    method @Deprecated public static void assertHasScreenCoordinates(android.view.View, android.view.View, int, int);
+    method @Deprecated public static void assertHorizontalCenterAligned(android.view.View, android.view.View);
+    method @Deprecated public static void assertLeftAligned(android.view.View, android.view.View);
+    method @Deprecated public static void assertLeftAligned(android.view.View, android.view.View, int);
+    method @Deprecated public static void assertOffScreenAbove(android.view.View, android.view.View);
+    method @Deprecated public static void assertOffScreenBelow(android.view.View, android.view.View);
+    method @Deprecated public static void assertOnScreen(android.view.View, android.view.View);
+    method @Deprecated public static void assertRightAligned(android.view.View, android.view.View);
+    method @Deprecated public static void assertRightAligned(android.view.View, android.view.View, int);
+    method @Deprecated public static void assertTopAligned(android.view.View, android.view.View);
+    method @Deprecated public static void assertTopAligned(android.view.View, android.view.View, int);
+    method @Deprecated public static void assertVerticalCenterAligned(android.view.View, android.view.View);
   }
 
 }
 
 package android.test.suitebuilder {
 
-  public deprecated class TestMethod {
-    ctor public TestMethod(java.lang.reflect.Method, java.lang.Class<? extends junit.framework.TestCase>);
-    ctor public TestMethod(java.lang.String, java.lang.Class<? extends junit.framework.TestCase>);
-    ctor public TestMethod(junit.framework.TestCase);
-    method public junit.framework.TestCase createTest() throws java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException;
-    method public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T>);
-    method public java.lang.Class<? extends junit.framework.TestCase> getEnclosingClass();
-    method public java.lang.String getEnclosingClassname();
-    method public java.lang.String getName();
+  @Deprecated public class TestMethod {
+    ctor @Deprecated public TestMethod(java.lang.reflect.Method, Class<? extends junit.framework.TestCase>);
+    ctor @Deprecated public TestMethod(String, Class<? extends junit.framework.TestCase>);
+    ctor @Deprecated public TestMethod(junit.framework.TestCase);
+    method @Deprecated public junit.framework.TestCase createTest() throws java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException;
+    method @Deprecated public <T extends java.lang.annotation.Annotation> T getAnnotation(Class<T>);
+    method @Deprecated public Class<? extends junit.framework.TestCase> getEnclosingClass();
+    method @Deprecated public String getEnclosingClassname();
+    method @Deprecated public String getName();
   }
 
-  public deprecated class TestSuiteBuilder {
-    ctor public TestSuiteBuilder(java.lang.Class);
-    ctor public TestSuiteBuilder(java.lang.String, java.lang.ClassLoader);
-    method public final junit.framework.TestSuite build();
-    method public android.test.suitebuilder.TestSuiteBuilder excludePackages(java.lang.String...);
-    method protected java.lang.String getSuiteName();
-    method public final android.test.suitebuilder.TestSuiteBuilder includeAllPackagesUnderHere();
-    method public android.test.suitebuilder.TestSuiteBuilder includePackages(java.lang.String...);
-    method public android.test.suitebuilder.TestSuiteBuilder named(java.lang.String);
+  @Deprecated public class TestSuiteBuilder {
+    ctor @Deprecated public TestSuiteBuilder(Class);
+    ctor @Deprecated public TestSuiteBuilder(String, ClassLoader);
+    method @Deprecated public final junit.framework.TestSuite build();
+    method @Deprecated public android.test.suitebuilder.TestSuiteBuilder excludePackages(java.lang.String...);
+    method @Deprecated protected String getSuiteName();
+    method @Deprecated public final android.test.suitebuilder.TestSuiteBuilder includeAllPackagesUnderHere();
+    method @Deprecated public android.test.suitebuilder.TestSuiteBuilder includePackages(java.lang.String...);
+    method @Deprecated public android.test.suitebuilder.TestSuiteBuilder named(String);
   }
 
-  public static deprecated class TestSuiteBuilder.FailedToCreateTests extends junit.framework.TestCase {
-    ctor public TestSuiteBuilder.FailedToCreateTests(java.lang.Exception);
-    method public void testSuiteConstructionFailed();
+  @Deprecated public static class TestSuiteBuilder.FailedToCreateTests extends junit.framework.TestCase {
+    ctor @Deprecated public TestSuiteBuilder.FailedToCreateTests(Exception);
+    method @Deprecated public void testSuiteConstructionFailed();
   }
 
 }
@@ -290,44 +291,44 @@
 
   public abstract class BaseTestRunner implements junit.framework.TestListener {
     ctor public BaseTestRunner();
-    method public synchronized void addError(junit.framework.Test, java.lang.Throwable);
-    method public synchronized void addFailure(junit.framework.Test, junit.framework.AssertionFailedError);
+    method public void addError(junit.framework.Test, Throwable);
+    method public void addFailure(junit.framework.Test, junit.framework.AssertionFailedError);
     method protected void clearStatus();
-    method public java.lang.String elapsedTimeAsString(long);
-    method public synchronized void endTest(junit.framework.Test);
-    method public java.lang.String extractClassName(java.lang.String);
-    method public static java.lang.String getFilteredTrace(java.lang.Throwable);
-    method public static java.lang.String getFilteredTrace(java.lang.String);
-    method public deprecated junit.runner.TestSuiteLoader getLoader();
-    method public static java.lang.String getPreference(java.lang.String);
-    method public static int getPreference(java.lang.String, int);
+    method public String elapsedTimeAsString(long);
+    method public void endTest(junit.framework.Test);
+    method public String extractClassName(String);
+    method public static String getFilteredTrace(Throwable);
+    method public static String getFilteredTrace(String);
+    method @Deprecated public junit.runner.TestSuiteLoader getLoader();
+    method public static String getPreference(String);
+    method public static int getPreference(String, int);
     method protected static java.util.Properties getPreferences();
-    method public junit.framework.Test getTest(java.lang.String);
-    method public static deprecated boolean inVAJava();
-    method protected java.lang.Class<?> loadSuiteClass(java.lang.String) throws java.lang.ClassNotFoundException;
-    method protected java.lang.String processArguments(java.lang.String[]);
-    method protected abstract void runFailed(java.lang.String);
+    method public junit.framework.Test getTest(String);
+    method @Deprecated public static boolean inVAJava();
+    method protected Class<?> loadSuiteClass(String) throws java.lang.ClassNotFoundException;
+    method protected String processArguments(String[]);
+    method protected abstract void runFailed(String);
     method public static void savePreferences() throws java.io.IOException;
     method public void setLoading(boolean);
-    method public void setPreference(java.lang.String, java.lang.String);
+    method public void setPreference(String, String);
     method protected static void setPreferences(java.util.Properties);
     method protected static boolean showStackRaw();
-    method public synchronized void startTest(junit.framework.Test);
-    method public abstract void testEnded(java.lang.String);
-    method public abstract void testFailed(int, junit.framework.Test, java.lang.Throwable);
-    method public abstract void testStarted(java.lang.String);
-    method public static java.lang.String truncate(java.lang.String);
+    method public void startTest(junit.framework.Test);
+    method public abstract void testEnded(String);
+    method public abstract void testFailed(int, junit.framework.Test, Throwable);
+    method public abstract void testStarted(String);
+    method public static String truncate(String);
     method protected boolean useReloadingTestSuiteLoader();
-    field public static final java.lang.String SUITE_METHODNAME = "suite";
+    field public static final String SUITE_METHODNAME = "suite";
   }
 
-  public abstract interface TestSuiteLoader {
-    method public abstract java.lang.Class load(java.lang.String) throws java.lang.ClassNotFoundException;
-    method public abstract java.lang.Class reload(java.lang.Class) throws java.lang.ClassNotFoundException;
+  public interface TestSuiteLoader {
+    method public Class load(String) throws java.lang.ClassNotFoundException;
+    method public Class reload(Class) throws java.lang.ClassNotFoundException;
   }
 
   public class Version {
-    method public static java.lang.String id();
+    method public static String id();
   }
 
 }
diff --git a/test-runner/api/removed.txt b/test-runner/api/removed.txt
index e69de29..d802177 100644
--- a/test-runner/api/removed.txt
+++ b/test-runner/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-runner/api/system-current.txt b/test-runner/api/system-current.txt
index e69de29..d802177 100644
--- a/test-runner/api/system-current.txt
+++ b/test-runner/api/system-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-runner/api/system-removed.txt b/test-runner/api/system-removed.txt
index e69de29..d802177 100644
--- a/test-runner/api/system-removed.txt
+++ b/test-runner/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-runner/api/test-current.txt b/test-runner/api/test-current.txt
index e69de29..d802177 100644
--- a/test-runner/api/test-current.txt
+++ b/test-runner/api/test-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/test-runner/api/test-removed.txt b/test-runner/api/test-removed.txt
index e69de29..d802177 100644
--- a/test-runner/api/test-removed.txt
+++ b/test-runner/api/test-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/tests/RollbackTest/src/com/android/tests/rollback/RollbackTest.java b/tests/RollbackTest/src/com/android/tests/rollback/RollbackTest.java
index 77cd9d8..c2e735e 100644
--- a/tests/RollbackTest/src/com/android/tests/rollback/RollbackTest.java
+++ b/tests/RollbackTest/src/com/android/tests/rollback/RollbackTest.java
@@ -178,10 +178,10 @@
     }
 
     /**
-     * Test that rollback data is properly persisted.
+     * Test that multiple available rollbacks are properly persisted.
      */
     @Test
-    public void testRollbackDataPersistence() throws Exception {
+    public void testAvailableRollbackPersistence() throws Exception {
         try {
             RollbackTestUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
@@ -190,9 +190,145 @@
 
             RollbackManager rm = RollbackTestUtils.getRollbackManager();
 
-            // TODO: Test this with multi-package rollback, not just single
-            // package rollback.
-            // Prep installation of TEST_APP_A
+            RollbackTestUtils.uninstall(TEST_APP_A);
+            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
+            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
+            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+
+            RollbackTestUtils.uninstall(TEST_APP_B);
+            RollbackTestUtils.install("RollbackTestAppBv1.apk", false);
+            RollbackTestUtils.install("RollbackTestAppBv2.apk", true);
+            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+
+            // Both test apps should now be available for rollback.
+            // TODO: See if there is a way to remove this race condition
+            // between when the app is installed and when the rollback
+            // is made available.
+            Thread.sleep(1000);
+
+            assertTrue(rm.getPackagesWithAvailableRollbacks().contains(TEST_APP_A));
+            RollbackInfo rollbackA = rm.getAvailableRollback(TEST_APP_A);
+            assertNotNull(rollbackA);
+            assertEquals(TEST_APP_A, rollbackA.targetPackage.packageName);
+            assertEquals(2, rollbackA.targetPackage.higherVersion.versionCode);
+            assertEquals(1, rollbackA.targetPackage.lowerVersion.versionCode);
+
+            assertTrue(rm.getPackagesWithAvailableRollbacks().contains(TEST_APP_B));
+            RollbackInfo rollbackB = rm.getAvailableRollback(TEST_APP_B);
+            assertNotNull(rollbackB);
+            assertEquals(TEST_APP_B, rollbackB.targetPackage.packageName);
+            assertEquals(2, rollbackB.targetPackage.higherVersion.versionCode);
+            assertEquals(1, rollbackB.targetPackage.lowerVersion.versionCode);
+
+            // Reload the persisted data.
+            rm.reloadPersistedData();
+
+            // The apps should still be available for rollback.
+            rollbackA = rm.getAvailableRollback(TEST_APP_A);
+            assertNotNull(rollbackA);
+            assertEquals(TEST_APP_A, rollbackA.targetPackage.packageName);
+            assertEquals(2, rollbackA.targetPackage.higherVersion.versionCode);
+            assertEquals(1, rollbackA.targetPackage.lowerVersion.versionCode);
+
+            assertTrue(rm.getPackagesWithAvailableRollbacks().contains(TEST_APP_B));
+            rollbackB = rm.getAvailableRollback(TEST_APP_B);
+            assertNotNull(rollbackB);
+            assertEquals(TEST_APP_B, rollbackB.targetPackage.packageName);
+            assertEquals(2, rollbackB.targetPackage.higherVersion.versionCode);
+            assertEquals(1, rollbackB.targetPackage.lowerVersion.versionCode);
+
+            // Rollback of B should not rollback A
+            RollbackTestUtils.rollback(rollbackB);
+            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+        } finally {
+            RollbackTestUtils.dropShellPermissionIdentity();
+        }
+    }
+
+    /**
+     * Test that available multi-package rollbacks are properly persisted.
+     */
+    @Test
+    public void testAvailableMultiPackageRollbackPersistence() throws Exception {
+        try {
+            RollbackTestUtils.adoptShellPermissionIdentity(
+                    Manifest.permission.INSTALL_PACKAGES,
+                    Manifest.permission.DELETE_PACKAGES,
+                    Manifest.permission.MANAGE_ROLLBACKS);
+
+            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+
+            RollbackTestUtils.uninstall(TEST_APP_A);
+            RollbackTestUtils.uninstall(TEST_APP_B);
+            RollbackTestUtils.installMultiPackage(false,
+                    "RollbackTestAppAv1.apk",
+                    "RollbackTestAppBv1.apk");
+            RollbackTestUtils.installMultiPackage(true,
+                    "RollbackTestAppAv2.apk",
+                    "RollbackTestAppBv2.apk");
+            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+
+            // The app should now be available for rollback.
+            // TODO: See if there is a way to remove this race condition
+            // between when the app is installed and when the rollback
+            // is made available.
+            Thread.sleep(1000);
+
+            assertTrue(rm.getPackagesWithAvailableRollbacks().contains(TEST_APP_A));
+            RollbackInfo rollbackA = rm.getAvailableRollback(TEST_APP_A);
+            assertNotNull(rollbackA);
+            assertEquals(TEST_APP_A, rollbackA.targetPackage.packageName);
+            assertEquals(2, rollbackA.targetPackage.higherVersion.versionCode);
+            assertEquals(1, rollbackA.targetPackage.lowerVersion.versionCode);
+
+            assertTrue(rm.getPackagesWithAvailableRollbacks().contains(TEST_APP_B));
+            RollbackInfo rollbackB = rm.getAvailableRollback(TEST_APP_B);
+            assertNotNull(rollbackB);
+            assertEquals(TEST_APP_B, rollbackB.targetPackage.packageName);
+            assertEquals(2, rollbackB.targetPackage.higherVersion.versionCode);
+            assertEquals(1, rollbackB.targetPackage.lowerVersion.versionCode);
+
+            // Reload the persisted data.
+            rm.reloadPersistedData();
+
+            // The apps should still be available for rollback.
+            rollbackA = rm.getAvailableRollback(TEST_APP_A);
+            assertNotNull(rollbackA);
+            assertEquals(TEST_APP_A, rollbackA.targetPackage.packageName);
+            assertEquals(2, rollbackA.targetPackage.higherVersion.versionCode);
+            assertEquals(1, rollbackA.targetPackage.lowerVersion.versionCode);
+
+            assertTrue(rm.getPackagesWithAvailableRollbacks().contains(TEST_APP_B));
+            rollbackB = rm.getAvailableRollback(TEST_APP_B);
+            assertNotNull(rollbackB);
+            assertEquals(TEST_APP_B, rollbackB.targetPackage.packageName);
+            assertEquals(2, rollbackB.targetPackage.higherVersion.versionCode);
+            assertEquals(1, rollbackB.targetPackage.lowerVersion.versionCode);
+
+            // Rollback of B should rollback A as well
+            RollbackTestUtils.rollback(rollbackB);
+            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+        } finally {
+            RollbackTestUtils.dropShellPermissionIdentity();
+        }
+    }
+
+    /**
+     * Test that recently executed rollback data is properly persisted.
+     */
+    @Test
+    public void testRecentlyExecutedRollbackPersistence() throws Exception {
+        try {
+            RollbackTestUtils.adoptShellPermissionIdentity(
+                    Manifest.permission.INSTALL_PACKAGES,
+                    Manifest.permission.DELETE_PACKAGES,
+                    Manifest.permission.MANAGE_ROLLBACKS);
+
+            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+
             RollbackTestUtils.uninstall(TEST_APP_A);
             RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
             RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
@@ -205,21 +341,6 @@
             Thread.sleep(1000);
             assertTrue(rm.getPackagesWithAvailableRollbacks().contains(TEST_APP_A));
             RollbackInfo rollback = rm.getAvailableRollback(TEST_APP_A);
-            assertNotNull(rollback);
-            assertEquals(TEST_APP_A, rollback.targetPackage.packageName);
-            assertEquals(2, rollback.targetPackage.higherVersion.versionCode);
-            assertEquals(1, rollback.targetPackage.lowerVersion.versionCode);
-
-            // Reload the persisted data.
-            rm.reloadPersistedData();
-
-            // The app should still be available for rollback.
-            assertTrue(rm.getPackagesWithAvailableRollbacks().contains(TEST_APP_A));
-            rollback = rm.getAvailableRollback(TEST_APP_A);
-            assertNotNull(rollback);
-            assertEquals(TEST_APP_A, rollback.targetPackage.packageName);
-            assertEquals(2, rollback.targetPackage.higherVersion.versionCode);
-            assertEquals(1, rollback.targetPackage.lowerVersion.versionCode);
 
             // Roll back the app.
             RollbackTestUtils.rollback(rollback);
diff --git a/tests/net/Android.mk b/tests/net/Android.mk
index f6f35fd..6850673 100644
--- a/tests/net/Android.mk
+++ b/tests/net/Android.mk
@@ -54,6 +54,7 @@
     libnativehelper \
     libpackagelistparser \
     libpcre2 \
+    libprocessgroup \
     libselinux \
     libui \
     libutils \
diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java
index 2a92a7d..882babf 100644
--- a/tests/net/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java
@@ -122,7 +122,6 @@
 import android.net.NetworkStack;
 import android.net.NetworkUtils;
 import android.net.RouteInfo;
-import android.net.StringNetworkSpecifier;
 import android.net.UidRange;
 import android.net.metrics.IpConnectivityLog;
 import android.net.shared.NetworkMonitorUtils;
@@ -145,6 +144,7 @@
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 import android.test.mock.MockContentResolver;
+import android.text.TextUtils;
 import android.util.ArraySet;
 import android.util.Log;
 
@@ -2567,16 +2567,76 @@
         return new NetworkRequest.Builder().addTransportType(TRANSPORT_WIFI);
     }
 
+    /**
+     * Verify request matching behavior with network specifiers.
+     *
+     * Note: this test is somewhat problematic since it involves removing capabilities from
+     * agents - i.e. agents rejecting requests which they previously accepted. This is flagged
+     * as a WTF bug in
+     * {@link ConnectivityService#mixInCapabilities(NetworkAgentInfo, NetworkCapabilities)} but
+     * does work.
+     */
     @Test
     public void testNetworkSpecifier() {
+        // A NetworkSpecifier subclass that matches all networks but must not be visible to apps.
+        class ConfidentialMatchAllNetworkSpecifier extends NetworkSpecifier implements
+                Parcelable {
+            @Override
+            public boolean satisfiedBy(NetworkSpecifier other) {
+                return true;
+            }
+
+            @Override
+            public int describeContents() {
+                return 0;
+            }
+
+            @Override
+            public void writeToParcel(Parcel dest, int flags) {}
+
+            @Override
+            public NetworkSpecifier redact() {
+                return null;
+            }
+        }
+
+        // A network specifier that matches either another LocalNetworkSpecifier with the same
+        // string or a ConfidentialMatchAllNetworkSpecifier, and can be passed to apps as is.
+        class LocalStringNetworkSpecifier extends NetworkSpecifier implements Parcelable {
+            private String mString;
+
+            LocalStringNetworkSpecifier(String string) {
+                mString = string;
+            }
+
+            @Override
+            public boolean satisfiedBy(NetworkSpecifier other) {
+                if (other instanceof LocalStringNetworkSpecifier) {
+                    return TextUtils.equals(mString,
+                            ((LocalStringNetworkSpecifier) other).mString);
+                }
+                if (other instanceof ConfidentialMatchAllNetworkSpecifier) return true;
+                return false;
+            }
+
+            @Override
+            public int describeContents() {
+                return 0;
+            }
+            @Override
+            public void writeToParcel(Parcel dest, int flags) {}
+        }
+
+
         NetworkRequest rEmpty1 = newWifiRequestBuilder().build();
         NetworkRequest rEmpty2 = newWifiRequestBuilder().setNetworkSpecifier((String) null).build();
         NetworkRequest rEmpty3 = newWifiRequestBuilder().setNetworkSpecifier("").build();
         NetworkRequest rEmpty4 = newWifiRequestBuilder().setNetworkSpecifier(
             (NetworkSpecifier) null).build();
-        NetworkRequest rFoo = newWifiRequestBuilder().setNetworkSpecifier("foo").build();
+        NetworkRequest rFoo = newWifiRequestBuilder().setNetworkSpecifier(
+                new LocalStringNetworkSpecifier("foo")).build();
         NetworkRequest rBar = newWifiRequestBuilder().setNetworkSpecifier(
-                new StringNetworkSpecifier("bar")).build();
+                new LocalStringNetworkSpecifier("bar")).build();
 
         TestNetworkCallback cEmpty1 = new TestNetworkCallback();
         TestNetworkCallback cEmpty2 = new TestNetworkCallback();
@@ -2585,7 +2645,7 @@
         TestNetworkCallback cFoo = new TestNetworkCallback();
         TestNetworkCallback cBar = new TestNetworkCallback();
         TestNetworkCallback[] emptyCallbacks = new TestNetworkCallback[] {
-                cEmpty1, cEmpty2, cEmpty3 };
+                cEmpty1, cEmpty2, cEmpty3, cEmpty4 };
 
         mCm.registerNetworkCallback(rEmpty1, cEmpty1);
         mCm.registerNetworkCallback(rEmpty2, cEmpty2);
@@ -2594,6 +2654,9 @@
         mCm.registerNetworkCallback(rFoo, cFoo);
         mCm.registerNetworkCallback(rBar, cBar);
 
+        LocalStringNetworkSpecifier nsFoo = new LocalStringNetworkSpecifier("foo");
+        LocalStringNetworkSpecifier nsBar = new LocalStringNetworkSpecifier("bar");
+
         mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
         mWiFiNetworkAgent.connect(false);
         cEmpty1.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
@@ -2602,30 +2665,54 @@
         cEmpty4.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
         assertNoCallbacks(cFoo, cBar);
 
-        mWiFiNetworkAgent.setNetworkSpecifier(new StringNetworkSpecifier("foo"));
+        mWiFiNetworkAgent.setNetworkSpecifier(nsFoo);
         cFoo.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
         for (TestNetworkCallback c: emptyCallbacks) {
-            c.expectCallback(CallbackState.NETWORK_CAPABILITIES, mWiFiNetworkAgent);
+            c.expectCapabilitiesLike((caps) -> caps.getNetworkSpecifier().equals(nsFoo),
+                    mWiFiNetworkAgent);
         }
-        cFoo.expectCallback(CallbackState.NETWORK_CAPABILITIES, mWiFiNetworkAgent);
+        cFoo.expectCapabilitiesLike((caps) -> caps.getNetworkSpecifier().equals(nsFoo),
+                mWiFiNetworkAgent);
+        assertEquals(nsFoo,
+                mCm.getNetworkCapabilities(mWiFiNetworkAgent.getNetwork()).getNetworkSpecifier());
         cFoo.assertNoCallback();
 
-        mWiFiNetworkAgent.setNetworkSpecifier(new StringNetworkSpecifier("bar"));
+        mWiFiNetworkAgent.setNetworkSpecifier(nsBar);
         cFoo.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         cBar.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
         for (TestNetworkCallback c: emptyCallbacks) {
-            c.expectCallback(CallbackState.NETWORK_CAPABILITIES, mWiFiNetworkAgent);
+            c.expectCapabilitiesLike((caps) -> caps.getNetworkSpecifier().equals(nsBar),
+                    mWiFiNetworkAgent);
         }
-        cBar.expectCallback(CallbackState.NETWORK_CAPABILITIES, mWiFiNetworkAgent);
+        cBar.expectCapabilitiesLike((caps) -> caps.getNetworkSpecifier().equals(nsBar),
+                mWiFiNetworkAgent);
+        assertEquals(nsBar,
+                mCm.getNetworkCapabilities(mWiFiNetworkAgent.getNetwork()).getNetworkSpecifier());
+        cBar.assertNoCallback();
+
+        mWiFiNetworkAgent.setNetworkSpecifier(new ConfidentialMatchAllNetworkSpecifier());
+        cFoo.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
+        for (TestNetworkCallback c : emptyCallbacks) {
+            c.expectCapabilitiesLike((caps) -> caps.getNetworkSpecifier() == null,
+                    mWiFiNetworkAgent);
+        }
+        cFoo.expectCapabilitiesLike((caps) -> caps.getNetworkSpecifier() == null,
+                mWiFiNetworkAgent);
+        cBar.expectCapabilitiesLike((caps) -> caps.getNetworkSpecifier() == null,
+                mWiFiNetworkAgent);
+        assertNull(
+                mCm.getNetworkCapabilities(mWiFiNetworkAgent.getNetwork()).getNetworkSpecifier());
+        cFoo.assertNoCallback();
         cBar.assertNoCallback();
 
         mWiFiNetworkAgent.setNetworkSpecifier(null);
+        cFoo.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         cBar.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
         for (TestNetworkCallback c: emptyCallbacks) {
             c.expectCallback(CallbackState.NETWORK_CAPABILITIES, mWiFiNetworkAgent);
         }
 
-        assertNoCallbacks(cEmpty1, cEmpty2, cEmpty3, cFoo, cBar);
+        assertNoCallbacks(cEmpty1, cEmpty2, cEmpty3, cEmpty4, cFoo, cBar);
     }
 
     @Test
diff --git a/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java b/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java
index d8f9618..a844cfe 100644
--- a/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java
+++ b/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java
@@ -535,7 +535,10 @@
 
         IpSecTransformResponse createTransformResp =
                 mIpSecService.createTransform(ipSecConfig, new Binder(), "blessedPackage");
-        ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(new Socket());
+
+        Socket socket = new Socket();
+        socket.bind(null);
+        ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
 
         int resourceId = createTransformResp.resourceId;
         mIpSecService.applyTransportModeTransform(pfd, IpSecManager.DIRECTION_OUT, resourceId);
@@ -552,7 +555,9 @@
 
     @Test
     public void testRemoveTransportModeTransform() throws Exception {
-        ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(new Socket());
+        Socket socket = new Socket();
+        socket.bind(null);
+        ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
         mIpSecService.removeTransportModeTransforms(pfd);
 
         verify(mMockNetd).ipSecRemoveTransportModeTransform(pfd);
diff --git a/tests/net/java/com/android/server/IpSecServiceTest.java b/tests/net/java/com/android/server/IpSecServiceTest.java
index 724446e..5be7c7b 100644
--- a/tests/net/java/com/android/server/IpSecServiceTest.java
+++ b/tests/net/java/com/android/server/IpSecServiceTest.java
@@ -422,7 +422,9 @@
 
     @Test
     public void testRemoveTransportModeTransform() throws Exception {
-        ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(new Socket());
+        Socket socket = new Socket();
+        socket.bind(null);
+        ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
         mIpSecService.removeTransportModeTransforms(pfd);
 
         verify(mMockNetd).ipSecRemoveTransportModeTransform(pfd);
diff --git a/tools/aapt2/ResourceParser.cpp b/tools/aapt2/ResourceParser.cpp
index e0d2f48..2f8ca2d 100644
--- a/tools/aapt2/ResourceParser.cpp
+++ b/tools/aapt2/ResourceParser.cpp
@@ -714,7 +714,8 @@
     }
   }
 
-  diag_->Warn(DiagMessage(out_resource->source)
+  // If the resource type was not recognized, write the error and return false.
+  diag_->Error(DiagMessage(out_resource->source)
               << "unknown resource type '" << parser->element_name() << "'");
   return false;
 }
diff --git a/tools/aapt2/cmd/Compile.cpp b/tools/aapt2/cmd/Compile.cpp
index 52375a3..92beb4e 100644
--- a/tools/aapt2/cmd/Compile.cpp
+++ b/tools/aapt2/cmd/Compile.cpp
@@ -701,7 +701,10 @@
     }
 
     const std::string out_path = BuildIntermediateContainerFilename(path_data);
-    error |= !compile_func(context, options, path_data, file, output_writer, out_path);
+    if (!compile_func(context, options, path_data, file, output_writer, out_path)) {
+      context->GetDiagnostics()->Error(DiagMessage(file->GetSource()) << "file failed to compile");
+      error = true;
+    }
   }
 
   return error ? 1 : 0;
diff --git a/tools/processors/view_inspector/Android.bp b/tools/processors/view_inspector/Android.bp
index ca6b3c4..9b5df56 100644
--- a/tools/processors/view_inspector/Android.bp
+++ b/tools/processors/view_inspector/Android.bp
@@ -5,7 +5,7 @@
     java_resource_dirs: ["src/resources"],
 
     static_libs: [
-    	"javapoet",
+        "javapoet",
     ],
 
     use_tools_jar: true,
@@ -18,9 +18,9 @@
     java_resource_dirs: ["test/resources"],
 
     static_libs: [
-        "guava",
         "junit",
-        "view-inspector-annotation-processor",
+        "guava",
+        "view-inspector-annotation-processor"
     ],
 
     test_suites: ["general-tests"],
diff --git a/tools/processors/view_inspector/TEST_MAPPING b/tools/processors/view_inspector/TEST_MAPPING
index a91b5b4..b4c9cab 100644
--- a/tools/processors/view_inspector/TEST_MAPPING
+++ b/tools/processors/view_inspector/TEST_MAPPING
@@ -2,6 +2,8 @@
   "presubmit": [
     {
       "name": "view-inspector-annotation-processor-test"
+    }, {
+      "name": "CtsViewInspectorAnnotationProcessorTestCases"
     }
   ]
 }
diff --git a/tools/processors/view_inspector/src/java/android/processor/view/inspector/AnnotationUtils.java b/tools/processors/view_inspector/src/java/android/processor/view/inspector/AnnotationUtils.java
index f157949..fc4cd01 100644
--- a/tools/processors/view_inspector/src/java/android/processor/view/inspector/AnnotationUtils.java
+++ b/tools/processors/view_inspector/src/java/android/processor/view/inspector/AnnotationUtils.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
@@ -24,6 +24,7 @@
 import javax.lang.model.element.AnnotationValue;
 import javax.lang.model.element.Element;
 import javax.lang.model.element.ExecutableElement;
+import javax.lang.model.element.TypeElement;
 import javax.lang.model.type.TypeMirror;
 import javax.lang.model.util.Elements;
 import javax.lang.model.util.Types;
@@ -78,40 +79,126 @@
     }
 
     /**
-     * Extract a string-valued property from an {@link AnnotationMirror}.
+     * Determine if an annotation with the supplied qualified name is present on the element.
      *
-     * @param propertyName The name of the requested property
-     * @param annotationMirror The mirror to search for the property
-     * @return The String value of the annotation or null
+     * @param element The element to check for the presence of an annotation
+     * @param annotationQualifiedName The name of the annotation to check for
+     * @return True if the annotation is present, false otherwise
      */
-    Optional<String> stringProperty(String propertyName, AnnotationMirror annotationMirror) {
-        final AnnotationValue value = valueByName(propertyName, annotationMirror);
-        if (value != null) {
-            return Optional.of((String) value.getValue());
-        } else {
-            return Optional.empty();
+    boolean hasAnnotation(Element element, String annotationQualifiedName) {
+        final TypeElement namedElement = mElementUtils.getTypeElement(annotationQualifiedName);
+
+        if (namedElement != null) {
+            final TypeMirror annotationType = namedElement.asType();
+
+            for (AnnotationMirror annotation : element.getAnnotationMirrors()) {
+                if (mTypeUtils.isSubtype(annotation.getAnnotationType(), annotationType)) {
+                    return true;
+                }
+            }
         }
+
+        return false;
     }
 
+    /**
+     * Get the typed value of an annotation property by name.
+     *
+     * The returned optional will be empty if the value was left at the default, or if the value
+     * of the property is null.
+     *
+     * @param propertyName The name of the property to search for
+     * @param valueClass The expected class of the property value
+     * @param element The element the annotation is on, used for exceptions
+     * @param annotationMirror An annotation mirror to search for the property
+     * @param <T> The type of the value
+     * @return An optional containing the typed value of the named property
+     */
+    <T> Optional<T> typedValueByName(
+            String propertyName,
+            Class<T> valueClass,
+            Element element,
+            AnnotationMirror annotationMirror) {
+        return valueByName(propertyName, annotationMirror).map(annotationValue -> {
+            final Object value = annotationValue.getValue();
+
+            if (value == null) {
+                throw new ProcessingException(
+                        String.format(
+                                "Unexpected null value for annotation property \"%s\".",
+                                propertyName),
+                        element,
+                        annotationMirror,
+                        annotationValue);
+            }
+
+            if (valueClass.isAssignableFrom(value.getClass())) {
+                return valueClass.cast(value);
+            } else {
+                throw new ProcessingException(
+                        String.format(
+                                "Expected annotation property \"%s\" to have type %s, but got %s.",
+                                propertyName,
+                                valueClass.getCanonicalName(),
+                                value.getClass().getCanonicalName()),
+                        element,
+                        annotationMirror,
+                        annotationValue);
+            }
+        });
+    }
+
+    /**
+     * Get the untyped value of an annotation property by name.
+     *
+     * The returned optional will be empty if the value was left at the default, or if the value
+     * of the property is null.
+     *
+     * @param propertyName The name of the property to search for
+     * @param element The element the annotation is on, used for exceptions
+     * @param annotationMirror An annotation mirror to search for the property
+     * @return An optional containing the untyped value of the named property
+     * @see AnnotationValue#getValue()
+     */
+    Optional<Object> untypedValueByName(
+            String propertyName,
+            Element element,
+            AnnotationMirror annotationMirror) {
+        return valueByName(propertyName, annotationMirror).map(annotationValue -> {
+            final Object value = annotationValue.getValue();
+
+            if (value == null) {
+                throw new ProcessingException(
+                        String.format(
+                                "Unexpected null value for annotation property \"%s\".",
+                                propertyName),
+                        element,
+                        annotationMirror,
+                        annotationValue);
+            }
+
+            return value;
+        });
+    }
 
     /**
      * Extract a {@link AnnotationValue} from a mirror by string property name.
      *
      * @param propertyName The name of the property requested property
-     * @param annotationMirror
-     * @return
+     * @param annotationMirror The mirror to search for the property
+     * @return The value of the property
      */
-    AnnotationValue valueByName(String propertyName, AnnotationMirror annotationMirror) {
+    Optional<AnnotationValue> valueByName(String propertyName, AnnotationMirror annotationMirror) {
         final Map<? extends ExecutableElement, ? extends AnnotationValue> valueMap =
                 annotationMirror.getElementValues();
 
         for (ExecutableElement method : valueMap.keySet()) {
             if (method.getSimpleName().contentEquals(propertyName)) {
-                return valueMap.get(method);
+                return Optional.ofNullable(valueMap.get(method));
             }
         }
 
-        return null;
+        // Property not explicitly defined, use default value.
+        return Optional.empty();
     }
-
 }
diff --git a/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectableClassModel.java b/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectableClassModel.java
index 579745d..f1ebb87 100644
--- a/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectableClassModel.java
+++ b/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectableClassModel.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
@@ -21,6 +21,7 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 
 /**
@@ -70,7 +71,7 @@
      * @return The property or an empty optional
      */
     public Optional<Property> getProperty(String name) {
-        return Optional.of(mPropertyMap.get(name));
+        return Optional.ofNullable(mPropertyMap.get(name));
     }
 
     /**
@@ -87,13 +88,15 @@
      */
     public static final class Property {
         private final String mName;
-        private String mGetter;
-        private Type mType;
+        private final String mGetter;
+        private final Type mType;
         private boolean mAttributeIdInferrableFromR = true;
         private int mAttributeId = 0;
 
-        public Property(String name) {
-            mName = name;
+        public Property(String name, String getter, Type type) {
+            mName = Objects.requireNonNull(name, "Name must not be null");
+            mGetter = Objects.requireNonNull(getter, "Getter must not be null");
+            mType = Objects.requireNonNull(type, "Type must not be null");
         }
 
         public int getAttributeId() {
@@ -126,18 +129,10 @@
             return mGetter;
         }
 
-        public void setGetter(String getter) {
-            mGetter = getter;
-        }
-
         public Type getType() {
             return mType;
         }
 
-        public void setType(Type type) {
-            mType = type;
-        }
-
         public enum Type {
             /** Primitive or boxed {@code boolean} */
             BOOLEAN,
diff --git a/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectableNodeNameProcessor.java b/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectableNodeNameProcessor.java
index a186a82..46819b2 100644
--- a/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectableNodeNameProcessor.java
+++ b/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectableNodeNameProcessor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
@@ -23,7 +23,7 @@
 import javax.lang.model.element.Element;
 
 /**
- * Process {InspectableNodeName} annotations
+ * Process {@code @InspectableNodeName} annotations.
  *
  * @see android.view.inspector.InspectableNodeName
  */
@@ -58,7 +58,8 @@
         try {
             final AnnotationMirror mirror =
                     mAnnotationUtils.exactlyOneMirror(mQualifiedName, element);
-            final Optional<String> nodeName = mAnnotationUtils.stringProperty("value", mirror);
+            final Optional<String> nodeName = mAnnotationUtils
+                    .typedValueByName("value", String.class, element, mirror);
 
             if (!model.getNodeName().isPresent() || model.getNodeName().equals(nodeName)) {
                 model.setNodeName(nodeName);
diff --git a/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectablePropertyProcessor.java b/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectablePropertyProcessor.java
new file mode 100644
index 0000000..f666be7
--- /dev/null
+++ b/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectablePropertyProcessor.java
@@ -0,0 +1,408 @@
+/*
+ * 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.
+ */
+
+package android.processor.view.inspector;
+
+import android.processor.view.inspector.InspectableClassModel.Property;
+
+import java.util.Set;
+import java.util.regex.Pattern;
+
+import javax.annotation.processing.ProcessingEnvironment;
+import javax.lang.model.element.AnnotationMirror;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.ElementKind;
+import javax.lang.model.element.ExecutableElement;
+import javax.lang.model.element.Modifier;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.type.NoType;
+import javax.lang.model.type.TypeKind;
+import javax.lang.model.type.TypeMirror;
+
+/**
+ * Process {@code @InspectableProperty} annotations.
+ *
+ * @see android.view.inspector.InspectableProperty
+ */
+public final class InspectablePropertyProcessor implements ModelProcessor {
+    private final String mQualifiedName;
+    private final ProcessingEnvironment mProcessingEnv;
+    private final AnnotationUtils mAnnotationUtils;
+
+    /**
+     * Regex that matches methods names of the form {@code #getValue()}.
+     */
+    private static final Pattern GETTER_GET_PREFIX = Pattern.compile("\\Aget[A-Z]");
+
+    /**
+     * Regex that matches method name of the form {@code #isPredicate()}.
+     */
+    private static final Pattern GETTER_IS_PREFIX = Pattern.compile("\\Ais[A-Z]");
+
+    /**
+     * Set of android and androidx annotation qualified names for colors packed into {@code int}.
+     *
+     * @see android.annotation.ColorInt
+     */
+    private static final String[] COLOR_INT_ANNOTATION_NAMES = {
+            "android.annotation.ColorInt",
+            "androidx.annotation.ColorInt"};
+
+    /**
+     * Set of android and androidx annotation qualified names for colors packed into {@code long}.
+     * @see android.annotation.ColorLong
+     */
+    private static final String[] COLOR_LONG_ANNOTATION_NAMES = {
+            "android.annotation.ColorLong",
+            "androidx.annotation.ColorLong"};
+
+    /**
+     * @param annotationQualifiedName The qualified name of the annotation to process
+     * @param processingEnv The processing environment from the parent processor
+     */
+    public InspectablePropertyProcessor(
+            String annotationQualifiedName,
+            ProcessingEnvironment processingEnv) {
+        mQualifiedName = annotationQualifiedName;
+        mProcessingEnv = processingEnv;
+        mAnnotationUtils = new AnnotationUtils(processingEnv);
+    }
+
+    @Override
+    public void process(Element element, InspectableClassModel model) {
+        try {
+            final AnnotationMirror annotation =
+                    mAnnotationUtils.exactlyOneMirror(mQualifiedName, element);
+            final ExecutableElement getter = ensureGetter(element);
+            final Property property = buildProperty(getter, annotation);
+
+            model.getProperty(property.getName()).ifPresent(p -> {
+                throw new ProcessingException(
+                        String.format(
+                                "Property \"%s\" is already defined on #%s().",
+                                p.getName(),
+                                p.getGetter()),
+                        getter,
+                        annotation);
+            });
+
+            model.putProperty(property);
+        } catch (ProcessingException processingException) {
+            processingException.print(mProcessingEnv.getMessager());
+        }
+    }
+
+    /**
+     * Check that an element is shaped like a getter.
+     *
+     * @param element An element that hopefully represents a getter
+     * @throws ProcessingException if the element isn't a getter
+     * @return An {@link ExecutableElement} that represents a getter method.
+     */
+    private ExecutableElement ensureGetter(Element element) {
+        if (element.getKind() != ElementKind.METHOD) {
+            throw new ProcessingException(
+                    String.format("Expected a method, got a %s", element.getKind()),
+                    element);
+        }
+
+        final ExecutableElement method = (ExecutableElement) element;
+        final Set<Modifier> modifiers = method.getModifiers();
+
+        if (modifiers.contains(Modifier.PRIVATE)) {
+            throw new ProcessingException(
+                    "Property getter methods must not be private.",
+                    element);
+        }
+
+        if (modifiers.contains(Modifier.ABSTRACT)) {
+            throw new ProcessingException(
+                    "Property getter methods must not be abstract.",
+                    element);
+        }
+
+        if (modifiers.contains(Modifier.STATIC)) {
+            throw new ProcessingException(
+                    "Property getter methods must not be static.",
+                    element);
+        }
+
+        if (!method.getParameters().isEmpty()) {
+            throw new ProcessingException(
+                    String.format(
+                            "Expected a getter method to take no parameters, "
+                            + "but got %d parameters.",
+                            method.getParameters().size()),
+                    element);
+        }
+
+        if (method.isVarArgs()) {
+            throw new ProcessingException(
+                    "Expected a getter method to take no arguments, but got a var args method.",
+                    element);
+        }
+
+        if (method.getReturnType() instanceof NoType) {
+            throw new ProcessingException(
+                    "Expected a getter to have a return type, got void.",
+                    element);
+        }
+
+        return method;
+    }
+
+    /**
+     * Build a {@link Property} from a getter and an inspectable property annotation.
+     *
+     * @param getter An element representing the getter to build from
+     * @param annotation A mirror of an inspectable property-shaped annotation
+     * @throws ProcessingException If the supplied data is invalid and a property cannot be modeled
+     * @return A property for the getter and annotation
+     */
+    private Property buildProperty(ExecutableElement getter, AnnotationMirror annotation) {
+        final String name = mAnnotationUtils
+                .typedValueByName("name", String.class, getter, annotation)
+                .orElseGet(() -> inferPropertyNameFromGetter(getter));
+
+        final Property property = new Property(
+                name,
+                getter.getSimpleName().toString(),
+                determinePropertyType(getter, annotation));
+
+        mAnnotationUtils
+                .typedValueByName("hasAttributeId", Boolean.class, getter, annotation)
+                .ifPresent(property::setAttributeIdInferrableFromR);
+
+        mAnnotationUtils
+                .typedValueByName("attributeId", Integer.class, getter, annotation)
+                .ifPresent(property::setAttributeId);
+
+        return property;
+    }
+
+    /**
+     * Determine the property type from the annotation, return type, or context clues.
+     *
+     * @param getter An element representing the getter to build from
+     * @param annotation A mirror of an inspectable property-shaped annotation
+     * @return The resolved property type
+     * @throws ProcessingException If the property type cannot be resolved
+     * @see android.view.inspector.InspectableProperty#valueType()
+     */
+    private Property.Type determinePropertyType(
+            ExecutableElement getter,
+            AnnotationMirror annotation) {
+
+        final String valueType = mAnnotationUtils
+                .untypedValueByName("valueType", getter, annotation)
+                .map(Object::toString)
+                .orElse("INFERRED");
+
+        final Property.Type returnType = convertReturnTypeToPropertyType(getter);
+
+        switch (valueType) {
+            case "INFERRED":
+                if (hasColorAnnotation(getter)) {
+                    return Property.Type.COLOR;
+                } else {
+                    return returnType;
+                }
+            case "NONE":
+                return returnType;
+            case "COLOR":
+                switch (returnType) {
+                    case COLOR:
+                    case INT:
+                    case LONG:
+                        return Property.Type.COLOR;
+                    default:
+                        throw new ProcessingException(
+                                "Color must be a long, integer, or android.graphics.Color",
+                                getter,
+                                annotation);
+                }
+            case "GRAVITY":
+                if (returnType == Property.Type.INT) {
+                    return Property.Type.GRAVITY;
+                } else {
+                    throw new ProcessingException(
+                            String.format("Gravity must be an integer, got %s", returnType),
+                            getter,
+                            annotation);
+                }
+            case "INT_ENUM":
+            case "INT_FLAG":
+                throw new ProcessingException("Not implemented", getter, annotation);
+            default:
+                throw new ProcessingException(
+                        String.format("Unknown value type enumeration value: %s", valueType),
+                        getter,
+                        annotation);
+        }
+    }
+
+    /**
+     * Get a property type from the return type of a getter.
+     *
+     * @param getter The getter to extract the return type of
+     * @throws ProcessingException If the return type is not a primitive or an object
+     * @return The property type returned by the getter
+     */
+    private Property.Type convertReturnTypeToPropertyType(ExecutableElement getter) {
+        final TypeMirror returnType = getter.getReturnType();
+
+        switch (unboxType(returnType)) {
+            case BOOLEAN:
+                return Property.Type.BOOLEAN;
+            case BYTE:
+                return Property.Type.BYTE;
+            case CHAR:
+                return Property.Type.CHAR;
+            case DOUBLE:
+                return Property.Type.DOUBLE;
+            case FLOAT:
+                return Property.Type.FLOAT;
+            case INT:
+                return Property.Type.INT;
+            case LONG:
+                return Property.Type.LONG;
+            case SHORT:
+                return Property.Type.SHORT;
+            case DECLARED:
+                if (isColorType(returnType)) {
+                    return Property.Type.COLOR;
+                } else {
+                    return Property.Type.OBJECT;
+                }
+            default:
+                throw new ProcessingException(
+                        String.format("Unsupported return type %s.", returnType),
+                        getter);
+        }
+    }
+
+    /**
+     * Determine if a getter is annotated with color annotation matching its return type.
+     *
+     * Note that an {@code int} return value annotated with {@link android.annotation.ColorLong} is
+     * not considered to be annotated, nor is a {@code long} annotated with
+     * {@link android.annotation.ColorInt}.
+     *
+     * @param getter The getter to query
+     * @return True if the getter has a color annotation, false otherwise
+     *
+     */
+    private boolean hasColorAnnotation(ExecutableElement getter) {
+        switch (unboxType(getter.getReturnType())) {
+            case INT:
+                for (String name : COLOR_INT_ANNOTATION_NAMES) {
+                    if (mAnnotationUtils.hasAnnotation(getter, name)) {
+                        return true;
+                    }
+                }
+                return false;
+            case LONG:
+                for (String name : COLOR_LONG_ANNOTATION_NAMES) {
+                    if (mAnnotationUtils.hasAnnotation(getter, name)) {
+                        return true;
+                    }
+                }
+                return false;
+            default:
+                return false;
+        }
+    }
+
+    /**
+     * Infer a property name from a getter method.
+     *
+     * If the method is prefixed with {@code get}, the prefix will be stripped, and the
+     * capitalization fixed. E.g.: {@code getSomeProperty} to {@code someProperty}.
+     *
+     * Additionally, if the method's return type is a boolean, an {@code is} prefix will also be
+     * stripped. E.g.: {@code isPropertyEnabled} to {@code propertyEnabled}.
+     *
+     * Failing that, this method will just return the full name of the getter.
+     *
+     * @param getter An element representing a getter
+     * @return A string property name
+     */
+    private String inferPropertyNameFromGetter(ExecutableElement getter) {
+        final String name = getter.getSimpleName().toString();
+
+        if (GETTER_GET_PREFIX.matcher(name).find()) {
+            return name.substring(3, 4).toLowerCase() + name.substring(4);
+        } else if (isBoolean(getter.getReturnType()) && GETTER_IS_PREFIX.matcher(name).find()) {
+            return name.substring(2, 3).toLowerCase() + name.substring(3);
+        } else {
+            return name;
+        }
+    }
+
+    /**
+     * Determine if a {@link TypeMirror} is a boxed or unboxed boolean.
+     *
+     * @param type The type mirror to check
+     * @return True if the type is a boolean
+     */
+    private boolean isBoolean(TypeMirror type) {
+        if (type.getKind() == TypeKind.DECLARED) {
+            return mProcessingEnv.getTypeUtils().unboxedType(type).getKind() == TypeKind.BOOLEAN;
+        } else {
+            return type.getKind() == TypeKind.BOOLEAN;
+        }
+    }
+
+    /**
+     * Unbox a type mirror if it represents a boxed type, otherwise pass it through.
+     *
+     * @param typeMirror The type mirror to unbox
+     * @return The same type mirror, or an unboxed primitive version
+     */
+    private TypeKind unboxType(TypeMirror typeMirror) {
+        final TypeKind typeKind = typeMirror.getKind();
+
+        if (typeKind.isPrimitive()) {
+            return typeKind;
+        } else if (typeKind == TypeKind.DECLARED) {
+            try {
+                return mProcessingEnv.getTypeUtils().unboxedType(typeMirror).getKind();
+            } catch (IllegalArgumentException e) {
+                return typeKind;
+            }
+        } else {
+            return typeKind;
+        }
+    }
+
+    /**
+     * Determine if a type mirror represents a subtype of {@link android.graphics.Color}.
+     *
+     * @param typeMirror The type mirror to test
+     * @return True if it represents a subclass of color, false otherwise
+     */
+    private boolean isColorType(TypeMirror typeMirror) {
+        final TypeElement colorType = mProcessingEnv
+                .getElementUtils()
+                .getTypeElement("android.graphics.Color");
+
+        if (colorType == null) {
+            return false;
+        } else {
+            return mProcessingEnv.getTypeUtils().isSubtype(typeMirror, colorType.asType());
+        }
+    }
+}
diff --git a/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectionCompanionGenerator.java b/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectionCompanionGenerator.java
index 3b85dbb..dd4d8f5 100644
--- a/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectionCompanionGenerator.java
+++ b/tools/processors/view_inspector/src/java/android/processor/view/inspector/InspectionCompanionGenerator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
@@ -51,12 +51,6 @@
     private static final ClassName R_CLASS_NAME = ClassName.get("android", "R");
 
     /**
-     * The class name of {@link android.content.res.ResourceId}.
-     */
-    private static final ClassName RESOURCE_ID_CLASS_NAME = ClassName.get(
-            "android.content.res", "ResourceId");
-
-    /**
      * The class name of {@link android.view.inspector.InspectionCompanion}.
      */
     private static final ClassName INSPECTION_COMPANION = ClassName.get(
@@ -91,11 +85,11 @@
     private static final String GENERATED_CLASS_SUFFIX = "$$InspectionCompanion";
 
     /**
-     * The null resource ID.
+     * The null resource ID, copied to avoid a host dependency on platform code.
      *
-     * @see android.content.res.ResourceId#ID_NULL
+     * @see android.content.res.Resources#ID_NULL
      */
-    private static final int NO_ID = 0;
+    private static final int ID_NULL = 0;
 
     /**
      * @param filer A filer to write the generated source to
@@ -289,8 +283,8 @@
         if (property.isAttributeIdInferrableFromR()) {
             builder.add("$T.attr.$L", R_CLASS_NAME, property.getName());
         } else {
-            if (property.getAttributeId() == NO_ID) {
-                builder.add("$T.ID_NULL", RESOURCE_ID_CLASS_NAME);
+            if (property.getAttributeId() == ID_NULL) {
+                builder.add("$L", ID_NULL);
             } else {
                 builder.add("$L", String.format("0x%08x", property.getAttributeId()));
             }
diff --git a/tools/processors/view_inspector/src/java/android/processor/view/inspector/ModelProcessor.java b/tools/processors/view_inspector/src/java/android/processor/view/inspector/ModelProcessor.java
index 3ffcff8..6f52260 100644
--- a/tools/processors/view_inspector/src/java/android/processor/view/inspector/ModelProcessor.java
+++ b/tools/processors/view_inspector/src/java/android/processor/view/inspector/ModelProcessor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
diff --git a/tools/processors/view_inspector/src/java/android/processor/view/inspector/PlatformInspectableProcessor.java b/tools/processors/view_inspector/src/java/android/processor/view/inspector/PlatformInspectableProcessor.java
index e531b67..455f5b0 100644
--- a/tools/processors/view_inspector/src/java/android/processor/view/inspector/PlatformInspectableProcessor.java
+++ b/tools/processors/view_inspector/src/java/android/processor/view/inspector/PlatformInspectableProcessor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
@@ -46,11 +46,14 @@
  * @see android.view.inspector.InspectableProperty
  */
 @SupportedAnnotationTypes({
-        PlatformInspectableProcessor.NODE_NAME_QUALIFIED_NAME
+        PlatformInspectableProcessor.NODE_NAME_QUALIFIED_NAME,
+        PlatformInspectableProcessor.PROPERTY_QUALIFIED_NAME
 })
 public final class PlatformInspectableProcessor extends AbstractProcessor {
     static final String NODE_NAME_QUALIFIED_NAME =
             "android.view.inspector.InspectableNodeName";
+    static final String PROPERTY_QUALIFIED_NAME =
+            "android.view.inspector.InspectableProperty";
 
     @Override
     public SourceVersion getSupportedSourceVersion() {
@@ -68,6 +71,11 @@
                         new InspectableNodeNameProcessor(NODE_NAME_QUALIFIED_NAME, processingEnv),
                         modelMap);
 
+            } else if (annotation.getQualifiedName().contentEquals(PROPERTY_QUALIFIED_NAME)) {
+                runModelProcessor(
+                        roundEnv.getElementsAnnotatedWith(annotation),
+                        new InspectablePropertyProcessor(PROPERTY_QUALIFIED_NAME, processingEnv),
+                        modelMap);
 
             } else {
                 fail("Unexpected annotation type", annotation);
diff --git a/tools/processors/view_inspector/src/java/android/processor/view/inspector/ProcessingException.java b/tools/processors/view_inspector/src/java/android/processor/view/inspector/ProcessingException.java
index 6360e0a..b4c6466 100644
--- a/tools/processors/view_inspector/src/java/android/processor/view/inspector/ProcessingException.java
+++ b/tools/processors/view_inspector/src/java/android/processor/view/inspector/ProcessingException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
diff --git a/tools/processors/view_inspector/src/resources/META-INF/services/javax.annotation.processing.Processor b/tools/processors/view_inspector/src/resources/META-INF/services/javax.annotation.processing.Processor
index fa4f71f..79185cc 100644
--- a/tools/processors/view_inspector/src/resources/META-INF/services/javax.annotation.processing.Processor
+++ b/tools/processors/view_inspector/src/resources/META-INF/services/javax.annotation.processing.Processor
@@ -1 +1 @@
-android.processor.inspector.view.PlatformInspectableProcessor
+android.processor.view.inspector.PlatformInspectableProcessor
diff --git a/tools/processors/view_inspector/test/java/android/processor/view/inspector/InspectionCompanionGeneratorTest.java b/tools/processors/view_inspector/test/java/android/processor/view/inspector/InspectionCompanionGeneratorTest.java
index f639719..b0775dc 100644
--- a/tools/processors/view_inspector/test/java/android/processor/view/inspector/InspectionCompanionGeneratorTest.java
+++ b/tools/processors/view_inspector/test/java/android/processor/view/inspector/InspectionCompanionGeneratorTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
@@ -20,7 +20,7 @@
 
 import static junit.framework.Assert.assertEquals;
 import static junit.framework.Assert.assertNotNull;
-import static junit.framework.TestCase.fail;
+import static junit.framework.Assert.fail;
 
 import com.google.common.base.Charsets;
 import com.google.common.io.Resources;
@@ -65,27 +65,28 @@
 
     @Test
     public void testSimpleProperties() {
-        addProperty("boolean", Property.Type.BOOLEAN, "getBoolean");
-        addProperty("byte", Property.Type.BYTE, "getByte");
-        addProperty("char", Property.Type.CHAR, "getChar");
-        addProperty("double", Property.Type.DOUBLE, "getDouble");
-        addProperty("float", Property.Type.FLOAT, "getFloat");
-        addProperty("int", Property.Type.INT, "getInt");
-        addProperty("long", Property.Type.LONG, "getLong");
-        addProperty("short", Property.Type.SHORT, "getShort");
+        addProperty("boolean", "getBoolean", Property.Type.BOOLEAN);
+        addProperty("byte", "getByte", Property.Type.BYTE);
+        addProperty("char", "getChar", Property.Type.CHAR);
+        addProperty("double", "getDouble", Property.Type.DOUBLE);
+        addProperty("float", "getFloat", Property.Type.FLOAT);
+        addProperty("int", "getInt", Property.Type.INT);
+        addProperty("long", "getLong", Property.Type.LONG);
+        addProperty("short", "getShort", Property.Type.SHORT);
 
-        addProperty("object", Property.Type.OBJECT, "getObject");
-        addProperty("color", Property.Type.COLOR, "getColor");
-        addProperty("gravity", Property.Type.GRAVITY, "getGravity");
+        addProperty("object", "getObject", Property.Type.OBJECT);
+        addProperty("color", "getColor", Property.Type.COLOR);
+        addProperty("gravity", "getGravity", Property.Type.GRAVITY);
 
         assertGeneratedFileEquals("SimpleProperties");
     }
 
     @Test
     public void testNoAttributeId() {
-        final Property property = new Property("noAttributeProperty");
-        property.setType(Property.Type.INT);
-        property.setGetter("getNoAttributeProperty");
+        final Property property = new Property(
+                "noAttributeProperty",
+                "getNoAttributeProperty",
+                Property.Type.INT);
         property.setAttributeIdInferrableFromR(false);
         mModel.putProperty(property);
 
@@ -94,19 +95,18 @@
 
     @Test
     public void testSuppliedAttributeId() {
-        final Property property = new Property("suppliedAttributeProperty");
-        property.setType(Property.Type.INT);
-        property.setGetter("getSuppliedAttributeProperty");
+        final Property property = new Property(
+                "suppliedAttributeProperty",
+                "getSuppliedAttributeProperty",
+                Property.Type.INT);
         property.setAttributeId(0xdecafbad);
         mModel.putProperty(property);
 
         assertGeneratedFileEquals("SuppliedAttributeId");
     }
 
-    private Property addProperty(String name, Property.Type type, String getter) {
-        final Property property = new Property(name);
-        property.setType(type);
-        property.setGetter(getter);
+    private Property addProperty(String name, String getter, Property.Type type) {
+        final Property property = new Property(name, getter, type);
         mModel.putProperty(property);
         return property;
     }
diff --git a/tools/processors/view_inspector/test/resources/android/processor/view/inspector/InspectionCompanionGeneratorTest/NoAttributeId.java.txt b/tools/processors/view_inspector/test/resources/android/processor/view/inspector/InspectionCompanionGeneratorTest/NoAttributeId.java.txt
index 277e840..23d0f78 100644
--- a/tools/processors/view_inspector/test/resources/android/processor/view/inspector/InspectionCompanionGeneratorTest/NoAttributeId.java.txt
+++ b/tools/processors/view_inspector/test/resources/android/processor/view/inspector/InspectionCompanionGeneratorTest/NoAttributeId.java.txt
@@ -1,6 +1,5 @@
 package com.android.inspectable;
 
-import android.content.res.ResourceId;
 import android.view.inspector.InspectionCompanion;
 import android.view.inspector.PropertyMapper;
 import android.view.inspector.PropertyReader;
@@ -25,7 +24,7 @@
 
     @Override
     public void mapProperties(PropertyMapper propertyMapper) {
-        mNoAttributePropertyId = propertyMapper.mapInt("noAttributeProperty", ResourceId.ID_NULL);
+        mNoAttributePropertyId = propertyMapper.mapInt("noAttributeProperty", 0);
         mPropertiesMapped = true;
     }
 
diff --git a/wifi/java/android/net/wifi/EasyConnectStatusCallback.java b/wifi/java/android/net/wifi/EasyConnectStatusCallback.java
index 3b4a6cd..b8c82fd 100644
--- a/wifi/java/android/net/wifi/EasyConnectStatusCallback.java
+++ b/wifi/java/android/net/wifi/EasyConnectStatusCallback.java
@@ -101,7 +101,7 @@
     /**
      * Easy Connect Failure event: General protocol failure.
      */
-    public static final int EASY_CONNECT_EVENT_FAILURE = -7;
+    public static final int EASY_CONNECT_EVENT_FAILURE_GENERIC = -7;
 
     /**
      * Easy Connect Failure event: Feature or option is not supported.
@@ -123,7 +123,7 @@
             EASY_CONNECT_EVENT_FAILURE_CONFIGURATION,
             EASY_CONNECT_EVENT_FAILURE_BUSY,
             EASY_CONNECT_EVENT_FAILURE_TIMEOUT,
-            EASY_CONNECT_EVENT_FAILURE,
+            EASY_CONNECT_EVENT_FAILURE_GENERIC,
             EASY_CONNECT_EVENT_FAILURE_NOT_SUPPORTED,
             EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK,
     })
diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl
index 07f7cb3..46c4191 100644
--- a/wifi/java/android/net/wifi/IWifiManager.aidl
+++ b/wifi/java/android/net/wifi/IWifiManager.aidl
@@ -46,7 +46,7 @@
  */
 interface IWifiManager
 {
-    int getSupportedFeatures();
+    long getSupportedFeatures();
 
     WifiActivityEnergyInfo reportActivityInfo();
 
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index e019f28..d2d711f 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -955,9 +955,12 @@
     }
 
     /**
-     * @hide
      * Returns MAC address set to be the local randomized MAC address.
      * Does not guarantee that the returned address is valid for use.
+     * <p>
+     * Information is restricted to Device Owner, Profile Owner, and Carrier apps
+     * (which will only obtain addresses for configurations which they create). Other callers
+     * will receive a default "02:00:00:00:00:00" MAC address.
      */
     public @NonNull MacAddress getRandomizedMacAddress() {
         return mRandomizedMacAddress;
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 801342d..8c00ceb 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -20,6 +20,7 @@
 import static android.Manifest.permission.ACCESS_WIFI_STATE;
 import static android.Manifest.permission.READ_WIFI_CREDENTIAL;
 
+import android.annotation.CallbackExecutor;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -68,6 +69,7 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Executor;
 
 /**
  * This class provides the primary API for managing all aspects of Wi-Fi
@@ -1176,7 +1178,9 @@
      * {@link #removeNetworkSuggestions(List)} for new API to add Wi-Fi networks for consideration
      * when auto-connecting to wifi.
      * <b>Compatibility Note:</b> For applications targeting
-     * {@link android.os.Build.VERSION_CODES#Q} or above, this API will always return an empty list.
+     * {@link android.os.Build.VERSION_CODES#Q} or above, this API will return an empty list,
+     * except to callers with Carrier privilege which will receive a restricted list only
+     * containing configurations which they created.
      */
     @Deprecated
     @RequiresPermission(allOf = {ACCESS_COARSE_LOCATION, ACCESS_WIFI_STATE})
@@ -2081,7 +2085,7 @@
     /** @hide */
     public static final int WIFI_FEATURE_DPP              = 0x80000000; // DPP (Easy-Connect)
 
-    private int getSupportedFeatures() {
+    private long getSupportedFeatures() {
         try {
             return mService.getSupportedFeatures();
         } catch (RemoteException e) {
@@ -2089,7 +2093,7 @@
         }
     }
 
-    private boolean isFeatureSupported(int feature) {
+    private boolean isFeatureSupported(long feature) {
         return (getSupportedFeatures() & feature) == feature;
     }
     /**
@@ -4531,9 +4535,14 @@
     }
 
     /**
-     * @return true if this device supports Wi-Fi Device Provisioning Protocol (Easy-connect)
+     * Wi-Fi Easy Connect (DPP) introduces standardized mechanisms to simplify the provisioning and
+     * configuration of Wi-Fi devices.
+     * For more details, visit <a href="https://www.wi-fi.org/">https://www.wi-fi.org/</a> and
+     * search for "Easy Connect" or "Device Provisioning Protocol specification".
+     *
+     * @return true if this device supports Wi-Fi Easy-connect (Device Provisioning Protocol)
      */
-    public boolean isDppSupported() {
+    public boolean isEasyConnectSupported() {
         return isFeatureSupported(WIFI_FEATURE_DPP);
     }
 
@@ -4653,8 +4662,7 @@
      * @param selectedNetworkId   Selected network ID to be sent to the peer
      * @param enrolleeNetworkRole The network role of the enrollee
      * @param callback            Callback for status updates
-     * @param handler             The handler on whose thread to execute the callbacks. Null for
-     *                            main thread.
+     * @param executor            The Executor on which to run the callback.
      * @hide
      */
     @SystemApi
@@ -4663,12 +4671,12 @@
             android.Manifest.permission.NETWORK_SETUP_WIZARD})
     public void startEasyConnectAsConfiguratorInitiator(@NonNull String enrolleeUri,
             int selectedNetworkId, @EasyConnectNetworkRole int enrolleeNetworkRole,
-            @Nullable Handler handler, @NonNull EasyConnectStatusCallback callback) {
-        Looper looper = (handler == null) ? Looper.getMainLooper() : handler.getLooper();
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull EasyConnectStatusCallback callback) {
         Binder binder = new Binder();
         try {
             mService.startDppAsConfiguratorInitiator(binder, enrolleeUri, selectedNetworkId,
-                    enrolleeNetworkRole, new EasyConnectCallbackProxy(looper, callback));
+                    enrolleeNetworkRole, new EasyConnectCallbackProxy(executor, callback));
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -4681,8 +4689,7 @@
      *
      * @param configuratorUri URI of the Configurator obtained separately (e.g. QR code scanning)
      * @param callback        Callback for status updates
-     * @param handler         The handler on whose thread to execute the callbacks. Null for main
-     *                        thread.
+     * @param executor        The Executor on which to run the callback.
      * @hide
      */
     @SystemApi
@@ -4690,19 +4697,22 @@
             android.Manifest.permission.NETWORK_SETTINGS,
             android.Manifest.permission.NETWORK_SETUP_WIZARD})
     public void startEasyConnectAsEnrolleeInitiator(@NonNull String configuratorUri,
-            @Nullable Handler handler, @NonNull EasyConnectStatusCallback callback) {
-        Looper looper = (handler == null) ? Looper.getMainLooper() : handler.getLooper();
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull EasyConnectStatusCallback callback) {
         Binder binder = new Binder();
         try {
             mService.startDppAsEnrolleeInitiator(binder, configuratorUri,
-                    new EasyConnectCallbackProxy(looper, callback));
+                    new EasyConnectCallbackProxy(executor, callback));
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
     }
 
     /**
-     * Stop or abort a current Easy Connect (DPP) session.
+     * Stop or abort a current Easy Connect (DPP) session. This call, once processed, will
+     * terminate any ongoing transaction, and clean up all associated resources. Caller should not
+     * expect any callbacks once this call is made. However, due to the asynchronous nature of
+     * this call, a callback may be fired if it was already pending in the queue.
      *
      * @hide
      */
@@ -4726,19 +4736,19 @@
      */
     @SystemApi
     private static class EasyConnectCallbackProxy extends IDppCallback.Stub {
-        private final Handler mHandler;
+        private final Executor mExecutor;
         private final EasyConnectStatusCallback mEasyConnectStatusCallback;
 
-        EasyConnectCallbackProxy(Looper looper,
+        EasyConnectCallbackProxy(Executor executor,
                 EasyConnectStatusCallback easyConnectStatusCallback) {
-            mHandler = new Handler(looper);
+            mExecutor = executor;
             mEasyConnectStatusCallback = easyConnectStatusCallback;
         }
 
         @Override
         public void onSuccessConfigReceived(int newNetworkId) {
             Log.d(TAG, "Easy Connect onSuccessConfigReceived callback");
-            mHandler.post(() -> {
+            mExecutor.execute(() -> {
                 mEasyConnectStatusCallback.onEnrolleeSuccess(newNetworkId);
             });
         }
@@ -4746,7 +4756,7 @@
         @Override
         public void onSuccess(int status) {
             Log.d(TAG, "Easy Connect onSuccess callback");
-            mHandler.post(() -> {
+            mExecutor.execute(() -> {
                 mEasyConnectStatusCallback.onConfiguratorSuccess(status);
             });
         }
@@ -4754,7 +4764,7 @@
         @Override
         public void onFailure(int status) {
             Log.d(TAG, "Easy Connect onFailure callback");
-            mHandler.post(() -> {
+            mExecutor.execute(() -> {
                 mEasyConnectStatusCallback.onFailure(status);
             });
         }
@@ -4762,7 +4772,7 @@
         @Override
         public void onProgress(int status) {
             Log.d(TAG, "Easy Connect onProgress callback");
-            mHandler.post(() -> {
+            mExecutor.execute(() -> {
                 mEasyConnectStatusCallback.onProgress(status);
             });
         }
diff --git a/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java b/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java
index 955e040..aa1669e 100644
--- a/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java
+++ b/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java
@@ -168,8 +168,9 @@
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder("WifiNetworkAgentSpecifier [");
-        sb.append("WifiConfiguration=").append(
-                mWifiConfiguration == null ? null : mWifiConfiguration.configKey())
+        sb.append("WifiConfiguration=")
+                .append(", SSID=").append(mWifiConfiguration.SSID)
+                .append(", BSSID=").append(mWifiConfiguration.BSSID)
                 .append(", mOriginalRequestorUid=").append(mOriginalRequestorUid)
                 .append("]");
         return sb.toString();
@@ -180,4 +181,9 @@
         throw new IllegalStateException("WifiNetworkAgentSpecifier should never be used "
                 + "for requests.");
     }
+
+    @Override
+    public NetworkSpecifier redact() {
+        return null;
+    }
 }
diff --git a/wifi/java/android/net/wifi/WifiNetworkSpecifier.java b/wifi/java/android/net/wifi/WifiNetworkSpecifier.java
index 4348399..6e4eeef 100644
--- a/wifi/java/android/net/wifi/WifiNetworkSpecifier.java
+++ b/wifi/java/android/net/wifi/WifiNetworkSpecifier.java
@@ -162,11 +162,11 @@
     @Override
     public String toString() {
         return new StringBuilder()
-                .append("WifiNetworkSpecifierWifiNetworkSpecifier [")
+                .append("WifiNetworkSpecifier [")
                 .append(", SSID Match pattern=").append(ssidPatternMatcher)
                 .append(", BSSID Match pattern=").append(bssidPatternMatcher)
-                .append(", WifiConfiguration=").append(
-                wifiConfiguration == null ? null : wifiConfiguration.configKey())
+                .append(", SSID=").append(wifiConfiguration.SSID)
+                .append(", BSSID=").append(wifiConfiguration.BSSID)
                 .append(", requestorUid=").append(requestorUid)
                 .append("]")
                 .toString();
diff --git a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
index 760f1e6..3c90eb7 100644
--- a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
+++ b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
@@ -130,7 +130,8 @@
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder("WifiNetworkSuggestion [")
-                .append(", WifiConfiguration=").append(wifiConfiguration)
+                .append(", SSID=").append(wifiConfiguration.SSID)
+                .append(", BSSID=").append(wifiConfiguration.BSSID)
                 .append(", isAppInteractionRequired=").append(isAppInteractionRequired)
                 .append(", isUserInteractionRequired=").append(isUserInteractionRequired)
                 .append(", suggestorUid=").append(suggestorUid)
diff --git a/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java b/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java
index 1426383..4bee837 100644
--- a/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java
+++ b/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java
@@ -149,6 +149,11 @@
                 "WifiAwareAgentNetworkSpecifier should not be used in network requests");
     }
 
+    @Override
+    public NetworkSpecifier redact() {
+        return null;
+    }
+
     private void initialize() {
         try {
             mDigester = MessageDigest.getInstance("SHA-256");
diff --git a/wifi/java/com/android/server/wifi/BaseWifiService.java b/wifi/java/com/android/server/wifi/BaseWifiService.java
index 2c96c05..b3ac9f1 100644
--- a/wifi/java/com/android/server/wifi/BaseWifiService.java
+++ b/wifi/java/com/android/server/wifi/BaseWifiService.java
@@ -64,7 +64,7 @@
     private static final String TAG = BaseWifiService.class.getSimpleName();
 
     @Override
-    public int getSupportedFeatures() {
+    public long getSupportedFeatures() {
         throw new UnsupportedOperationException();
     }